mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 72b903812a | |||
| 9933ce3186 | |||
| 8e1681505a | |||
| afd526afe2 | |||
| 94775fd541 | |||
| 3b4b444f6f | |||
| 94a10dc971 | |||
| 744c796981 | |||
| 5ef14ca95e | |||
| 886dc56de8 | |||
| bd2ca74987 | |||
| 586671c307 | |||
| ff504702de | |||
| 69e23ad58f | |||
| e9bf229a9d | |||
| 60e0e454e8 | |||
| de76e271a8 | |||
| 5f66c29dbd | |||
| 97cd2682d7 | |||
| 4f8a70a6c1 | |||
| 784e135873 |
@@ -26,6 +26,7 @@ enum NtfCallAction {
|
||||
class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
|
||||
static let shared = NtfManager()
|
||||
|
||||
public var navigatingToChat = false
|
||||
private var granted = false
|
||||
private var prevNtfTime: Dictionary<ChatId, Date> = [:]
|
||||
|
||||
@@ -74,7 +75,10 @@ class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
|
||||
}
|
||||
} else {
|
||||
if let chatId = content.targetContentIdentifier {
|
||||
ItemsModel.shared.loadOpenChat(chatId)
|
||||
self.navigatingToChat = true
|
||||
ItemsModel.shared.loadOpenChat(chatId) {
|
||||
self.navigatingToChat = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,7 +143,8 @@ struct SimpleXApp: App {
|
||||
let chats = try await apiGetChatsAsync()
|
||||
await MainActor.run { chatModel.updateChats(chats) }
|
||||
if let id = chatModel.chatId,
|
||||
let chat = chatModel.getChat(id) {
|
||||
let chat = chatModel.getChat(id),
|
||||
!NtfManager.shared.navigatingToChat {
|
||||
Task { await loadChat(chat: chat, clearItems: false) }
|
||||
}
|
||||
if let ncr = chatModel.ntfContactRequest {
|
||||
|
||||
@@ -23,7 +23,7 @@ struct CIMemberCreatedContactView: View {
|
||||
.onTapGesture {
|
||||
dismissAllSheets(animated: true)
|
||||
DispatchQueue.main.async {
|
||||
m.chatId = "@\(contactId)"
|
||||
ItemsModel.shared.loadOpenChat("@\(contactId)")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -323,7 +323,7 @@ struct ChooseServerOperators: View {
|
||||
VStack(alignment: .leading, spacing: 20) {
|
||||
if !operatorsWithConditionsAccepted.isEmpty {
|
||||
Text("Conditions are already accepted for following operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("Same conditions will apply to operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("The same conditions will apply to operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
} else {
|
||||
Text("Conditions will be accepted for operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ struct SetNotificationsMode: View {
|
||||
GeometryReader { g in
|
||||
ScrollView {
|
||||
VStack(alignment: .center, spacing: 20) {
|
||||
Text("Push Notifications")
|
||||
Text("Push notifications")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 50)
|
||||
@@ -119,6 +119,7 @@ struct NtfModeSelector: View {
|
||||
Text(ntfModeShortDescription(mode))
|
||||
.lineLimit(2)
|
||||
.font(.callout)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
}
|
||||
}
|
||||
.padding(.vertical, 12)
|
||||
|
||||
@@ -450,7 +450,7 @@ struct SingleOperatorUsageConditionsView: View {
|
||||
Group {
|
||||
viewHeader()
|
||||
Text("Conditions are already accepted for following operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("Same conditions will apply to operator **\(userServers[operatorIndex].operator_.legalName_)**.")
|
||||
Text("The same conditions will apply to operator **\(userServers[operatorIndex].operator_.legalName_)**.")
|
||||
conditionsAppliedToOtherOperatorsText()
|
||||
usageConditionsNavLinkButton()
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ struct UserProfilesView: View {
|
||||
action()
|
||||
} else {
|
||||
authenticate(
|
||||
reason: NSLocalizedString("Change user profiles", comment: "authentication reason")
|
||||
reason: NSLocalizedString("Change chat profiles", comment: "authentication reason")
|
||||
) { laResult in
|
||||
switch laResult {
|
||||
case .success, .unavailable:
|
||||
|
||||
@@ -1288,6 +1288,10 @@
|
||||
<target>Промени</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Промяна на паролата на базата данни?</target>
|
||||
@@ -1334,10 +1338,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5344,10 +5344,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push известия</target>
|
||||
@@ -5752,14 +5748,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>По-безопасни групи</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Запази</target>
|
||||
@@ -6850,6 +6838,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>Профилът се споделя само с вашите контакти.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -1247,6 +1247,10 @@
|
||||
<target>Změnit</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Změnit přístupovou frázi databáze?</target>
|
||||
@@ -1293,10 +1297,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5166,10 +5166,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Nabízená oznámení</target>
|
||||
@@ -5562,14 +5558,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Uložit</target>
|
||||
@@ -6638,6 +6626,14 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
|
||||
<target>Profil je sdílen pouze s vašimi kontakty.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -1341,6 +1341,11 @@
|
||||
<target>Ändern</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Chat-Profile wechseln</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Datenbank-Passwort ändern?</target>
|
||||
@@ -1387,11 +1392,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Chat-Profile wechseln</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5590,11 +5590,6 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
<target>Der Proxy benötigt ein Passwort</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push-Benachrichtigungen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-Benachrichtigungen</target>
|
||||
@@ -6021,16 +6016,6 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
<target>Sicherere Gruppen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Speichern</target>
|
||||
@@ -7191,6 +7176,16 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
|
||||
<target>Das Profil wird nur mit Ihren Kontakten geteilt.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Der zweite voreingestellte Netzwerk-Betreiber in der App!</target>
|
||||
|
||||
@@ -1346,6 +1346,11 @@
|
||||
<target>Change</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Change chat profiles</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Change database passphrase?</target>
|
||||
@@ -1392,11 +1397,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Change user profiles</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
@@ -5611,11 +5611,6 @@ Enable in *Network & servers* settings.</target>
|
||||
<target>Proxy requires password</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push Notifications</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push notifications</target>
|
||||
@@ -6042,16 +6037,6 @@ Enable in *Network & servers* settings.</target>
|
||||
<target>Safer groups</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Same conditions will apply to operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Same conditions will apply to operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Save</target>
|
||||
@@ -7213,6 +7198,16 @@ It can happen because of some bug or when the connection is compromised.</target
|
||||
<target>The profile is only shared with your contacts.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>The same conditions will apply to operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>The same conditions will apply to operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>The second preset operator in the app!</target>
|
||||
|
||||
@@ -1341,6 +1341,11 @@
|
||||
<target>Cambiar</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Cambiar perfil de usuario</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>¿Cambiar contraseña de la base de datos?</target>
|
||||
@@ -1387,11 +1392,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Cambiar perfil de usuario</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5590,14 +5590,9 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
<target>El proxy requiere contraseña</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Notificaciones push</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Notificaciones automáticas</target>
|
||||
<target>Notificaciones push</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push server" xml:space="preserve">
|
||||
@@ -6021,16 +6016,6 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
<target>Grupos más seguros</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán al operador **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán a el/los operador(es) **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Guardar</target>
|
||||
@@ -7191,6 +7176,16 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
|
||||
<target>El perfil sólo se comparte con tus contactos.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán al operador **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán a el/los operador(es) **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>El segundo operador predefinido!</target>
|
||||
|
||||
@@ -1240,6 +1240,10 @@
|
||||
<target>Muuta</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Muutetaanko tietokannan tunnuslause?</target>
|
||||
@@ -1286,10 +1290,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5154,10 +5154,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-ilmoitukset</target>
|
||||
@@ -5550,14 +5546,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Tallenna</target>
|
||||
@@ -6624,6 +6612,14 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
|
||||
<target>Profiili jaetaan vain kontaktiesi kanssa.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -1329,6 +1329,10 @@
|
||||
<target>Changer</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Changer la phrase secrète de la base de données ?</target>
|
||||
@@ -1375,10 +1379,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5530,10 +5530,6 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||
<target>Le proxy est protégé par un mot de passe</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Notifications push</target>
|
||||
@@ -5958,14 +5954,6 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||
<target>Groupes plus sûrs</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Enregistrer</target>
|
||||
@@ -7113,6 +7101,14 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
|
||||
<target>Le profil n'est partagé qu'avec vos contacts.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -637,6 +637,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Barátok hozzáadása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -656,6 +657,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Csapattagok hozzáadása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -670,6 +672,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Adja hozzá csapattagjait a beszélgetésekhez.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -1209,7 +1212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
<source>Blur media</source>
|
||||
<target>Média elhomályosítása</target>
|
||||
<target>Médiatartalom elhomályosítása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
|
||||
@@ -1244,10 +1247,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Üzleti cím</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Üzleti csevegések</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1341,6 +1346,11 @@
|
||||
<target>Változtatás</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Felhasználói profilok megváltoztatása</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Adatbázis-jelmondat megváltoztatása?</target>
|
||||
@@ -1387,21 +1397,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Felhasználói profilok megváltoztatása</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Csevegés</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>A csevegés már létezik</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>A csevegés már létezik!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1489,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>A csevegés minden tag számára törlésre kerül - ezt a műveletet nem lehet visszavonni!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>A csevegés törlésre kerül az Ön számára - ezt a műveletet nem lehet visszavonni!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -2243,6 +2253,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Csevegés törlése</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2268,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Csevegés törlése?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2526,6 +2538,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>A tagok közötti közvetlen üzenetek le vannak tiltva ebben a csevegésben.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -4101,6 +4114,7 @@ További fejlesztések hamarosan!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Meghívás a csevegésbe</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4263,10 +4277,12 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Csevegés elhagyása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Csevegés elhagyása?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4417,7 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>A tag szerepeköre meg fog változni a következőre: "%@". A csevegés tagjai értesítést fognak kapni.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4432,7 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>A tag el lesz távolítva a csevegésből - ezt a műveletet nem lehet visszavonni!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -5032,6 +5050,7 @@ VPN engedélyezése szükséges.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Csak a csevegés tulajdonosai módosíthatják a beállításokat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5166,6 +5185,7 @@ VPN engedélyezése szükséges.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>Vagy archívumfájl importálása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5431,6 +5451,7 @@ Hiba: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Az Ön ügyfeleinek adatvédelme.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5590,11 +5611,6 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<target>A proxy jelszót igényel</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push értesítések</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-értesítések</target>
|
||||
@@ -6021,16 +6037,6 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<target>Biztonságosabb csoportok</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Mentés</target>
|
||||
@@ -6119,7 +6125,7 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
</trans-unit>
|
||||
<trans-unit id="Saved from" xml:space="preserve">
|
||||
<source>Saved from</source>
|
||||
<target>Mentve innen:</target>
|
||||
<target>Elmentve innen:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Saved message" xml:space="preserve">
|
||||
@@ -7017,6 +7023,7 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Koppintson a SimpleX-cím létrehozása menüpontra a későbbi létrehozáshoz.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,6 +7198,16 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
|
||||
<target>A profilja csak az ismerőseivel kerül megosztásra.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>A második előre beállított üzemeltető az alkalmazásban!</target>
|
||||
@@ -8057,6 +8074,7 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Ön már kapcsolódva van vele: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8335,6 +8353,7 @@ Kapcsolatkérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Ön nem fog több üzenetet kapni ebből a csevegésből, de a csevegés előzményei megmaradnak.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -9211,7 +9230,7 @@ Kapcsolatkérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved from %@" xml:space="preserve">
|
||||
<source>saved from %@</source>
|
||||
<target>mentve innen: %@</target>
|
||||
<target>elmentve innen: %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="search" xml:space="preserve">
|
||||
|
||||
@@ -637,6 +637,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Aggiungi amici</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -656,6 +657,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Aggiungi membri del team</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -670,6 +672,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Aggiungi i membri del tuo team alle conversazioni.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -1244,10 +1247,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Indirizzo di lavoro</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Chat di lavoro</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1341,6 +1346,11 @@
|
||||
<target>Cambia</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Modifica profili utente</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Cambiare password del database?</target>
|
||||
@@ -1387,21 +1397,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Modifica profili utente</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>La chat esiste già</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>La chat esiste già!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1489,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>La chat verrà eliminata per tutti i membri, non è reversibile!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>La chat verrà eliminata solo per te, non è reversibile!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -2243,6 +2253,7 @@ Questo è il tuo link una tantum!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Elimina chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2268,7 @@ Questo è il tuo link una tantum!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Eliminare la chat?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2526,6 +2538,7 @@ Questo è il tuo link una tantum!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>I messaggi diretti tra i membri sono vietati in questa chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -4101,6 +4114,7 @@ Altri miglioramenti sono in arrivo!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Invita in chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4263,10 +4277,12 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Esci dalla chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Uscire dalla chat?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4417,7 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>Il ruolo del membro verrà cambiato in "%@". Verranno notificati tutti i membri della chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4432,7 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>Il membro verrà rimosso dalla chat, non è reversibile!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -5032,6 +5050,7 @@ Richiede l'attivazione della VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Solo i proprietari della chat possono modificarne le preferenze.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5166,6 +5185,7 @@ Richiede l'attivazione della VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>O importa file archivio</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5431,6 +5451,7 @@ Errore: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Privacy per i tuoi clienti.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5590,11 +5611,6 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
<target>Il proxy richiede una password</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Notifiche push</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Notifiche push</target>
|
||||
@@ -6021,16 +6037,6 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
<target>Gruppi più sicuri</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno all'operatore **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno agli operatori **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Salva</target>
|
||||
@@ -7017,6 +7023,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Tocca "Crea indirizzo SimpleX" nel menu per crearlo più tardi.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,6 +7198,16 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
|
||||
<target>Il profilo è condiviso solo con i tuoi contatti.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno all'operatore **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno agli operatori **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Il secondo operatore preimpostato nell'app!</target>
|
||||
@@ -8057,6 +8074,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Sei già connesso/a con %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8335,6 +8353,7 @@ Ripetere la richiesta di connessione?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Non riceverai più messaggi da questa chat. La cronologia della chat verrà conservata.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
|
||||
@@ -1264,6 +1264,10 @@
|
||||
<target>変更</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>データベースのパスフレーズを更新しますか?</target>
|
||||
@@ -1310,10 +1314,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5204,10 +5204,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>プッシュ通知</target>
|
||||
@@ -5599,14 +5595,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>保存</target>
|
||||
@@ -6667,6 +6655,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>プロフィールは連絡先にしか共有されません。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -637,6 +637,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Vrienden toevoegen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -656,6 +657,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Teamleden toevoegen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -670,6 +672,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Voeg uw teamleden toe aan de gesprekken.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -829,7 +832,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||
<target>Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</target>
|
||||
<target>Sta het definitief verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow message reactions only if your contact allows them." xml:space="preserve">
|
||||
@@ -859,7 +862,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||
<source>Allow to irreversibly delete sent messages. (24 hours)</source>
|
||||
<target>Sta toe om verzonden berichten onomkeerbaar te verwijderen. (24 uur)</target>
|
||||
<target>Sta toe om verzonden berichten definitief te verwijderen. (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||
@@ -899,7 +902,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow your contacts to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||
<source>Allow your contacts to irreversibly delete sent messages. (24 hours)</source>
|
||||
<target>Laat uw contacten verzonden berichten onomkeerbaar verwijderen. (24 uur)</target>
|
||||
<target>Laat uw contacten verzonden berichten definitief verwijderen. (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow your contacts to send disappearing messages." xml:space="preserve">
|
||||
@@ -1054,7 +1057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Audio/video calls are prohibited." xml:space="preserve">
|
||||
<source>Audio/video calls are prohibited.</source>
|
||||
<target>Audio/video gesprekken zijn verboden.</target>
|
||||
<target>Audio/video gesprekken zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Authentication cancelled" xml:space="preserve">
|
||||
@@ -1244,10 +1247,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Zakelijk adres</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Zakelijke chats</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1267,7 +1272,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Calls prohibited!" xml:space="preserve">
|
||||
<source>Calls prohibited!</source>
|
||||
<target>Bellen verboden!</target>
|
||||
<target>Bellen niet toegestaan!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Camera not available" xml:space="preserve">
|
||||
@@ -1341,6 +1346,11 @@
|
||||
<target>Veranderen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Gebruikersprofielen wijzigen</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Wachtwoord database wijzigen?</target>
|
||||
@@ -1387,21 +1397,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Gebruikersprofielen wijzigen</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>Chat bestaat al</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>Chat bestaat al!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1489,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>De chat wordt voor alle leden verwijderd - dit kan niet ongedaan worden gemaakt!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>De chat wordt voor je verwijderd - dit kan niet ongedaan worden gemaakt!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -2243,6 +2253,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Chat verwijderen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2268,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Chat verwijderen?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2526,11 +2538,12 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>Directe berichten tussen leden zijn in deze chat niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited.</source>
|
||||
<target>Directe berichten tussen leden zijn verboden in deze groep.</target>
|
||||
<target>Directe berichten tussen leden zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disable (keep overrides)" xml:space="preserve">
|
||||
@@ -2565,12 +2578,12 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disappearing messages are prohibited in this chat." xml:space="preserve">
|
||||
<source>Disappearing messages are prohibited in this chat.</source>
|
||||
<target>Verdwijnende berichten zijn verboden in dit gesprek.</target>
|
||||
<target>Verdwijnende berichten zijn niet toegestaan in dit gesprek.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
|
||||
<source>Disappearing messages are prohibited.</source>
|
||||
<target>Verdwijnende berichten zijn verboden in deze groep.</target>
|
||||
<target>Verdwijnende berichten zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disappears at" xml:space="preserve">
|
||||
@@ -3428,7 +3441,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Files and media are prohibited." xml:space="preserve">
|
||||
<source>Files and media are prohibited.</source>
|
||||
<target>Bestanden en media zijn verboden in deze groep.</target>
|
||||
<target>Bestanden en media zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||
@@ -3438,7 +3451,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||
<source>Files and media prohibited!</source>
|
||||
<target>Bestanden en media verboden!</target>
|
||||
<target>Bestanden en media niet toegestaan!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter unread and favorite chats." xml:space="preserve">
|
||||
@@ -3842,7 +3855,7 @@ Fout: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="If you enter this passcode when opening the app, all app data will be irreversibly removed!" xml:space="preserve">
|
||||
<source>If you enter this passcode when opening the app, all app data will be irreversibly removed!</source>
|
||||
<target>Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens onomkeerbaar verwijderd!</target>
|
||||
<target>Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens definitief verwijderd!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="If you enter your self-destruct passcode while opening the app:" xml:space="preserve">
|
||||
@@ -4101,6 +4114,7 @@ Binnenkort meer verbeteringen!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Uitnodigen voor een chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4115,12 +4129,12 @@ Binnenkort meer verbeteringen!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Irreversible message deletion is prohibited in this chat." xml:space="preserve">
|
||||
<source>Irreversible message deletion is prohibited in this chat.</source>
|
||||
<target>Het onomkeerbaar verwijderen van berichten is verboden in dit gesprek.</target>
|
||||
<target>Het definitief verwijderen van berichten is niet toegestaan in dit gesprek.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
|
||||
<source>Irreversible message deletion is prohibited.</source>
|
||||
<target>Het onomkeerbaar verwijderen van berichten is verboden in deze groep.</target>
|
||||
<target>Het definitief verwijderen van berichten is verbHet definitief verwijderen van berichten is niet toegestaan..</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
|
||||
@@ -4263,10 +4277,12 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Chat verlaten</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Chat verlaten?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4417,7 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>De rol van het lid wordt gewijzigd naar "%@". Alle chatleden worden op de hoogte gebracht.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4432,7 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>Lid wordt verwijderd uit de chat - dit kan niet ongedaan worden gemaakt!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -4504,12 +4522,12 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message reactions are prohibited in this chat." xml:space="preserve">
|
||||
<source>Message reactions are prohibited in this chat.</source>
|
||||
<target>Reacties op berichten zijn verboden in deze chat.</target>
|
||||
<target>Reacties op berichten zijn niet toegestaan in deze chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message reactions are prohibited." xml:space="preserve">
|
||||
<source>Message reactions are prohibited.</source>
|
||||
<target>Reacties op berichten zijn verboden in deze groep.</target>
|
||||
<target>Reacties op berichten zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message reception" xml:space="preserve">
|
||||
@@ -5032,6 +5050,7 @@ Vereist het inschakelen van VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Alleen chateigenaren kunnen voorkeuren wijzigen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5066,7 +5085,7 @@ Vereist het inschakelen van VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" xml:space="preserve">
|
||||
<source>Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)</source>
|
||||
<target>Alleen jij kunt berichten onomkeerbaar verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)</target>
|
||||
<target>Alleen jij kunt berichten definitief verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only you can make calls." xml:space="preserve">
|
||||
@@ -5166,6 +5185,7 @@ Vereist het inschakelen van VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>Of importeer archiefbestand</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5431,6 +5451,7 @@ Fout: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Privacy voor uw klanten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5505,7 +5526,7 @@ Fout: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Prohibit irreversible message deletion." xml:space="preserve">
|
||||
<source>Prohibit irreversible message deletion.</source>
|
||||
<target>Verbied het onomkeerbaar verwijderen van berichten.</target>
|
||||
<target>Verbied het definitief verwijderen van berichten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Prohibit message reactions." xml:space="preserve">
|
||||
@@ -5590,11 +5611,6 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
<target>Proxy vereist wachtwoord</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Pushmeldingen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push meldingen</target>
|
||||
@@ -6021,16 +6037,6 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
<target>Veiligere groepen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Opslaan</target>
|
||||
@@ -6765,7 +6771,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX links are prohibited." xml:space="preserve">
|
||||
<source>SimpleX links are prohibited.</source>
|
||||
<target>SimpleX-links zijn in deze groep verboden.</target>
|
||||
<target>SimpleX-links zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||
@@ -7017,6 +7023,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Tik op SimpleX-adres maken in het menu om het later te maken.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,6 +7198,16 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
|
||||
<target>Het profiel wordt alleen gedeeld met uw contacten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>De tweede vooraf ingestelde operator in de app!</target>
|
||||
@@ -7258,7 +7275,7 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." xml:space="preserve">
|
||||
<source>This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost.</source>
|
||||
<target>Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</target>
|
||||
<target>Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan definitief verloren.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This chat is protected by end-to-end encryption." xml:space="preserve">
|
||||
@@ -7857,12 +7874,12 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages are prohibited in this chat." xml:space="preserve">
|
||||
<source>Voice messages are prohibited in this chat.</source>
|
||||
<target>Spraak berichten zijn verboden in deze chat.</target>
|
||||
<target>Spraak berichten zijn niet toegestaan in dit gesprek.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages are prohibited." xml:space="preserve">
|
||||
<source>Voice messages are prohibited.</source>
|
||||
<target>Spraak berichten zijn verboden in deze groep.</target>
|
||||
<target>Spraak berichten zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||
@@ -7872,7 +7889,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||
<source>Voice messages prohibited!</source>
|
||||
<target>Spraak berichten verboden!</target>
|
||||
<target>Spraak berichten niet toegestaan!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice message…" xml:space="preserve">
|
||||
@@ -8057,6 +8074,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>U bent al verbonden met %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8335,6 +8353,7 @@ Verbindingsverzoek herhalen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>U ontvangt geen berichten meer van deze chat. De chatgeschiedenis blijft bewaard.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
|
||||
@@ -1324,6 +1324,10 @@
|
||||
<target>Zmień</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Zmienić hasło bazy danych?</target>
|
||||
@@ -1370,10 +1374,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5520,10 +5520,6 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||
<target>Proxy wymaga hasła</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Powiadomienia push</target>
|
||||
@@ -5948,14 +5944,6 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||
<target>Bezpieczniejsze grupy</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Zapisz</target>
|
||||
@@ -7100,6 +7088,14 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
|
||||
<target>Profil jest udostępniany tylko Twoim kontaktom.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -114,10 +114,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ server" xml:space="preserve">
|
||||
<source>%@ server</source>
|
||||
<target>%@ сервер</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ servers" xml:space="preserve">
|
||||
<source>%@ servers</source>
|
||||
<target>%@ серверы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ uploaded" xml:space="preserve">
|
||||
@@ -382,6 +384,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="**Scan / Paste link**: to connect via a link you received." xml:space="preserve">
|
||||
<source>**Scan / Paste link**: to connect via a link you received.</source>
|
||||
<target>**Сканировать / Вставить ссылку**: чтобы соединится через полученную ссылку.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="**Warning**: Instant push notifications require passphrase saved in Keychain." xml:space="preserve">
|
||||
@@ -492,10 +495,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1-time link" xml:space="preserve">
|
||||
<source>1-time link</source>
|
||||
<target>Одноразовая ссылка</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="1-time link can be used *with one contact only* - share in person or via any messenger." xml:space="preserve">
|
||||
<source>1-time link can be used *with one contact only* - share in person or via any messenger.</source>
|
||||
<target>Одноразовая ссылка может быть использована *только с одним контактом* - поделитесь при встрече или через любой мессенджер.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5 minutes" xml:space="preserve">
|
||||
@@ -586,6 +591,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept conditions" xml:space="preserve">
|
||||
<source>Accept conditions</source>
|
||||
<target>Принять условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept connection request?" xml:space="preserve">
|
||||
@@ -606,6 +612,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Accepted conditions" xml:space="preserve">
|
||||
<source>Accepted conditions</source>
|
||||
<target>Принятые условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Acknowledged" xml:space="preserve">
|
||||
@@ -630,6 +637,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Добавить друзей</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -649,6 +657,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Добавить сотрудников</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -663,14 +672,17 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Добавьте сотрудников в разговор.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
<source>Added media & file servers</source>
|
||||
<target>Дополнительные серверы файлов и медиа</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added message servers" xml:space="preserve">
|
||||
<source>Added message servers</source>
|
||||
<target>Дополнительные серверы сообщений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Additional accent" xml:space="preserve">
|
||||
@@ -700,10 +712,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Address or 1-time link?" xml:space="preserve">
|
||||
<source>Address or 1-time link?</source>
|
||||
<target>Адрес или одноразовая ссылка?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Address settings" xml:space="preserve">
|
||||
<source>Address settings</source>
|
||||
<target>Настройки адреса</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admins can block a member for all." xml:space="preserve">
|
||||
@@ -1233,10 +1247,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Бизнес адрес</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Бизнес разговоры</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1330,6 +1346,11 @@
|
||||
<target>Поменять</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Поменять профили</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Поменять пароль базы данных?</target>
|
||||
@@ -1376,20 +1397,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>Разговор уже существует</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>Разговор уже существует!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1469,10 +1489,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>Разговор будет удален для всех участников - это действие нельзя отменить!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>Разговор будет удален для Вас - это действие нельзя отменить!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -1482,10 +1504,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Check messages every 20 min." xml:space="preserve">
|
||||
<source>Check messages every 20 min.</source>
|
||||
<target>Проверять сообщения каждые 20 минут.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Check messages when allowed." xml:space="preserve">
|
||||
<source>Check messages when allowed.</source>
|
||||
<target>Проверять сообщения по возможности.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Check server address and try again." xml:space="preserve">
|
||||
@@ -1580,38 +1604,47 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions accepted on: %@." xml:space="preserve">
|
||||
<source>Conditions accepted on: %@.</source>
|
||||
<target>Условия приняты: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are accepted for the operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<target>Условия приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<target>Условия уже приняты для следующих оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
<source>Conditions of use</source>
|
||||
<target>Условия использования</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted for enabled operators after 30 days." xml:space="preserve">
|
||||
<source>Conditions will be accepted for enabled operators after 30 days.</source>
|
||||
<target>Условия будут приняты для включенных операторов через 30 дней.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted for operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions will be accepted for operator(s): **%@**.</source>
|
||||
<target>Условия будут приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted for the operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions will be accepted for the operator(s): **%@**.</source>
|
||||
<target>Условия будут приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted on: %@." xml:space="preserve">
|
||||
<source>Conditions will be accepted on: %@.</source>
|
||||
<target>Условия будут приняты: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be automatically accepted for enabled operators on: %@." xml:space="preserve">
|
||||
<source>Conditions will be automatically accepted for enabled operators on: %@.</source>
|
||||
<target>Условия будут автоматически приняты для включенных операторов: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Configure ICE servers" xml:space="preserve">
|
||||
@@ -1810,6 +1843,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connection security" xml:space="preserve">
|
||||
<source>Connection security</source>
|
||||
<target>Безопасность соединения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connection terminated" xml:space="preserve">
|
||||
@@ -1929,6 +1963,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create 1-time link" xml:space="preserve">
|
||||
<source>Create 1-time link</source>
|
||||
<target>Создать одноразовую ссылку</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create SimpleX address" xml:space="preserve">
|
||||
@@ -2018,6 +2053,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Current conditions text couldn't be loaded, you can review conditions via this link:" xml:space="preserve">
|
||||
<source>Current conditions text couldn't be loaded, you can review conditions via this link:</source>
|
||||
<target>Текст условий использования не может быть показан, вы можете посмотреть их через ссылку:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Current passphrase…" xml:space="preserve">
|
||||
@@ -2217,6 +2253,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Удалить разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2231,6 +2268,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Удалить разговор?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2395,6 +2433,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delivered even when Apple drops them." xml:space="preserve">
|
||||
<source>Delivered even when Apple drops them.</source>
|
||||
<target>Доставляются даже тогда, когда Apple их теряет.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delivery" xml:space="preserve">
|
||||
@@ -2499,6 +2538,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>Прямые сообщения между членами запрещены в этом разговоре.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -2684,6 +2724,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="E2E encrypted notifications." xml:space="preserve">
|
||||
<source>E2E encrypted notifications.</source>
|
||||
<target>E2E зашифрованные нотификации.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Edit" xml:space="preserve">
|
||||
@@ -2708,6 +2749,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enable Flux" xml:space="preserve">
|
||||
<source>Enable Flux</source>
|
||||
<target>Включить Flux</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enable SimpleX Lock" xml:space="preserve">
|
||||
@@ -2917,6 +2959,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error accepting conditions" xml:space="preserve">
|
||||
<source>Error accepting conditions</source>
|
||||
<target>Ошибка приема условий</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error accepting contact request" xml:space="preserve">
|
||||
@@ -2931,6 +2974,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error adding server" xml:space="preserve">
|
||||
<source>Error adding server</source>
|
||||
<target>Ошибка добавления сервера</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error changing address" xml:space="preserve">
|
||||
@@ -3075,6 +3119,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error loading servers" xml:space="preserve">
|
||||
<source>Error loading servers</source>
|
||||
<target>Ошибка загрузки серверов</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error migrating settings" xml:space="preserve">
|
||||
@@ -3134,6 +3179,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error saving servers" xml:space="preserve">
|
||||
<source>Error saving servers</source>
|
||||
<target>Ошибка сохранения серверов</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error saving settings" xml:space="preserve">
|
||||
@@ -3208,6 +3254,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error updating server" xml:space="preserve">
|
||||
<source>Error updating server</source>
|
||||
<target>Ошибка сохранения сервера</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error updating settings" xml:space="preserve">
|
||||
@@ -3257,6 +3304,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Errors in servers configuration." xml:space="preserve">
|
||||
<source>Errors in servers configuration.</source>
|
||||
<target>Ошибки в настройках серверов.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Even when disabled in the conversation." xml:space="preserve">
|
||||
@@ -3463,6 +3511,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="For chat profile %@:" xml:space="preserve">
|
||||
<source>For chat profile %@:</source>
|
||||
<target>Для профиля чата %@:</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For console" xml:space="preserve">
|
||||
@@ -3472,14 +3521,17 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." xml:space="preserve">
|
||||
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
|
||||
<target>Например, если Ваш контакт получает сообщения через сервер SimpleX Chat, Ваше приложение доставит их через сервер Flux.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For private routing" xml:space="preserve">
|
||||
<source>For private routing</source>
|
||||
<target>Для доставки сообщений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For social media" xml:space="preserve">
|
||||
<source>For social media</source>
|
||||
<target>Для социальных сетей</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Forward" xml:space="preserve">
|
||||
@@ -3758,10 +3810,12 @@ Error: %2$@</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="How it affects privacy" xml:space="preserve">
|
||||
<source>How it affects privacy</source>
|
||||
<target>Как это влияет на конфиденциальность</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="How it helps privacy" xml:space="preserve">
|
||||
<source>How it helps privacy</source>
|
||||
<target>Как это улучшает конфиденциальность</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="How to" xml:space="preserve">
|
||||
@@ -4059,6 +4113,7 @@ More improvements are coming soon!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Пригласить в разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4221,10 +4276,12 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Покинуть разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Покинуть разговор?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4359,6 +4416,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>Роль участника будет изменена на "%@". Все участники разговора получат уведомление.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4373,6 +4431,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>Член будет удален из разговора - это действие нельзя отменить!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -4637,6 +4696,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="More reliable notifications" xml:space="preserve">
|
||||
<source>More reliable notifications</source>
|
||||
<target>Более надежные уведомления</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||
@@ -4676,6 +4736,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network decentralization" xml:space="preserve">
|
||||
<source>Network decentralization</source>
|
||||
<target>Децентрализация сети</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||
@@ -4690,6 +4751,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network operator" xml:space="preserve">
|
||||
<source>Network operator</source>
|
||||
<target>Оператор сети</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network settings" xml:space="preserve">
|
||||
@@ -4749,6 +4811,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New events" xml:space="preserve">
|
||||
<source>New events</source>
|
||||
<target>Новые события</target>
|
||||
<note>notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New in %@" xml:space="preserve">
|
||||
@@ -4778,6 +4841,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New server" xml:space="preserve">
|
||||
<source>New server</source>
|
||||
<target>Новый сервер</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
@@ -4837,10 +4901,12 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="No media & file servers." xml:space="preserve">
|
||||
<source>No media & file servers.</source>
|
||||
<target>Нет серверов файлов и медиа.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No message servers." xml:space="preserve">
|
||||
<source>No message servers.</source>
|
||||
<target>Нет серверов сообщений.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No network connection" xml:space="preserve">
|
||||
@@ -4875,18 +4941,22 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers for private message routing." xml:space="preserve">
|
||||
<source>No servers for private message routing.</source>
|
||||
<target>Нет серверов для доставки сообщений.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to receive files." xml:space="preserve">
|
||||
<source>No servers to receive files.</source>
|
||||
<target>Нет серверов для приема файлов.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to receive messages." xml:space="preserve">
|
||||
<source>No servers to receive messages.</source>
|
||||
<target>Нет серверов для приема сообщений.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to send files." xml:space="preserve">
|
||||
<source>No servers to send files.</source>
|
||||
<target>Нет серверов для отправки файлов.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No user identifiers." xml:space="preserve">
|
||||
@@ -4921,6 +4991,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Notifications privacy" xml:space="preserve">
|
||||
<source>Notifications privacy</source>
|
||||
<target>Конфиденциальность уведомлений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Now admins can: - delete members' messages. - disable members ("observer" role)" xml:space="preserve">
|
||||
@@ -4978,6 +5049,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Только владельцы разговора могут поменять предпочтения.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5067,6 +5139,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open changes" xml:space="preserve">
|
||||
<source>Open changes</source>
|
||||
<target>Открыть изменения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open chat" xml:space="preserve">
|
||||
@@ -5081,6 +5154,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open conditions" xml:space="preserve">
|
||||
<source>Open conditions</source>
|
||||
<target>Открыть условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open group" xml:space="preserve">
|
||||
@@ -5100,14 +5174,17 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Operator" xml:space="preserve">
|
||||
<source>Operator</source>
|
||||
<target>Оператор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Operator server" xml:space="preserve">
|
||||
<source>Operator server</source>
|
||||
<target>Сервер оператора</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>Или импортировать файл архива</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5132,6 +5209,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or to share privately" xml:space="preserve">
|
||||
<source>Or to share privately</source>
|
||||
<target>Или поделиться конфиденциально</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Other" xml:space="preserve">
|
||||
@@ -5352,6 +5430,7 @@ Error: %@</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Preset servers" xml:space="preserve">
|
||||
<source>Preset servers</source>
|
||||
<target>Серверы по умолчанию</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Preview" xml:space="preserve">
|
||||
@@ -5371,6 +5450,7 @@ Error: %@</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Конфиденциальность для ваших покупателей.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5530,10 +5610,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Прокси требует пароль</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Доставка уведомлений</target>
|
||||
@@ -5907,10 +5983,12 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Review conditions" xml:space="preserve">
|
||||
<source>Review conditions</source>
|
||||
<target>Посмотреть условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Review later" xml:space="preserve">
|
||||
<source>Review later</source>
|
||||
<target>Посмотреть позже</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Revoke" xml:space="preserve">
|
||||
@@ -5958,14 +6036,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Более безопасные группы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Сохранить</target>
|
||||
@@ -6369,6 +6439,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server added to operator %@." xml:space="preserve">
|
||||
<source>Server added to operator %@.</source>
|
||||
<target>Сервер добавлен к оператору %@.</target>
|
||||
<note>alert message</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server address" xml:space="preserve">
|
||||
@@ -6388,14 +6459,17 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server operator changed." xml:space="preserve">
|
||||
<source>Server operator changed.</source>
|
||||
<target>Оператор серверов изменен.</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server operators" xml:space="preserve">
|
||||
<source>Server operators</source>
|
||||
<target>Операторы серверов</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server protocol changed." xml:space="preserve">
|
||||
<source>Server protocol changed.</source>
|
||||
<target>Протокол сервера изменен.</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||
@@ -6526,10 +6600,12 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share 1-time link with a friend" xml:space="preserve">
|
||||
<source>Share 1-time link with a friend</source>
|
||||
<target>Поделитесь одноразовой ссылкой с другом</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share SimpleX address on social media." xml:space="preserve">
|
||||
<source>Share SimpleX address on social media.</source>
|
||||
<target>Поделитесь SimpleX адресом в социальных сетях.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address" xml:space="preserve">
|
||||
@@ -6539,6 +6615,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address publicly" xml:space="preserve">
|
||||
<source>Share address publicly</source>
|
||||
<target>Поделитесь адресом</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address with contacts?" xml:space="preserve">
|
||||
@@ -6663,10 +6740,12 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX address and 1-time links are safe to share via any messenger." xml:space="preserve">
|
||||
<source>SimpleX address and 1-time links are safe to share via any messenger.</source>
|
||||
<target>Адрес SimpleX и одноразовые ссылки безопасно отправлять через любой мессенджер.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX address or 1-time link?" xml:space="preserve">
|
||||
<source>SimpleX address or 1-time link?</source>
|
||||
<target>Адрес SimpleX или одноразовая ссылка?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX contact address" xml:space="preserve">
|
||||
@@ -6762,6 +6841,8 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Some servers failed the test: %@" xml:space="preserve">
|
||||
<source>Some servers failed the test:
|
||||
%@</source>
|
||||
<target>Серверы не прошли тест:
|
||||
%@</target>
|
||||
<note>alert message</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Somebody" xml:space="preserve">
|
||||
@@ -6941,6 +7022,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Нажмите Создать адрес SimpleX в меню, чтобы создать его позже.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7032,6 +7114,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="The app protects your privacy by using different operators in each conversation." xml:space="preserve">
|
||||
<source>The app protects your privacy by using different operators in each conversation.</source>
|
||||
<target>Приложение улучшает конфиденциальность используя разных операторов в каждом разговоре.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||
@@ -7051,6 +7134,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="The connection reached the limit of undelivered messages, your contact may be offline." xml:space="preserve">
|
||||
<source>The connection reached the limit of undelivered messages, your contact may be offline.</source>
|
||||
<target>Соединение достигло предела недоставленных сообщений. Возможно, Ваш контакт не в сети.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The connection you accepted will be cancelled!" xml:space="preserve">
|
||||
@@ -7113,8 +7197,19 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>Профиль отправляется только Вашим контактам.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Те же самые условия будут приняты для оператора **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Те же самые условия будут приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Второй оператор серверов в приложении!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second tick we missed! ✅" xml:space="preserve">
|
||||
@@ -7134,6 +7229,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
|
||||
<source>The servers for new files of your current chat profile **%@**.</source>
|
||||
<target>Серверы для новых файлов Вашего текущего профиля **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
|
||||
@@ -7153,6 +7249,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="These conditions will also apply for: **%@**." xml:space="preserve">
|
||||
<source>These conditions will also apply for: **%@**.</source>
|
||||
<target>Эти условия также будут применены к: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="These settings are for your current profile **%@**." xml:space="preserve">
|
||||
@@ -7257,6 +7354,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="To protect against your link being replaced, you can compare contact security codes." xml:space="preserve">
|
||||
<source>To protect against your link being replaced, you can compare contact security codes.</source>
|
||||
<target>Чтобы защитить Вашу ссылку от замены, Вы можете сравнить код безопасности.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To protect timezone, image/voice files use UTC." xml:space="preserve">
|
||||
@@ -7283,6 +7381,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="To receive" xml:space="preserve">
|
||||
<source>To receive</source>
|
||||
<target>Для получения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To record speech please grant permission to use Microphone." xml:space="preserve">
|
||||
@@ -7307,6 +7406,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="To send" xml:space="preserve">
|
||||
<source>To send</source>
|
||||
<target>Для оправки</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To support instant push notifications the chat database has to be migrated." xml:space="preserve">
|
||||
@@ -7316,6 +7416,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="To use the servers of **%@**, accept conditions of use." xml:space="preserve">
|
||||
<source>To use the servers of **%@**, accept conditions of use.</source>
|
||||
<target>Чтобы использовать серверы оператора **%@**, примите условия использования.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To verify end-to-end encryption with your contact compare (or scan) the code on your devices." xml:space="preserve">
|
||||
@@ -7410,6 +7511,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="Undelivered messages" xml:space="preserve">
|
||||
<source>Undelivered messages</source>
|
||||
<target>Недоставленные сообщения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||
@@ -7571,6 +7673,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="Use %@" xml:space="preserve">
|
||||
<source>Use %@</source>
|
||||
<target>Использовать %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use .onion hosts" xml:space="preserve">
|
||||
@@ -7600,10 +7703,12 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="Use for files" xml:space="preserve">
|
||||
<source>Use for files</source>
|
||||
<target>Использовать для файлов</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use for messages" xml:space="preserve">
|
||||
<source>Use for messages</source>
|
||||
<target>Использовать для сообщений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use for new connections" xml:space="preserve">
|
||||
@@ -7648,6 +7753,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="Use servers" xml:space="preserve">
|
||||
<source>Use servers</source>
|
||||
<target>Использовать серверы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use the app while in the call." xml:space="preserve">
|
||||
@@ -7742,6 +7848,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="View conditions" xml:space="preserve">
|
||||
<source>View conditions</source>
|
||||
<target>Посмотреть условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="View security code" xml:space="preserve">
|
||||
@@ -7751,6 +7858,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="View updated conditions" xml:space="preserve">
|
||||
<source>View updated conditions</source>
|
||||
<target>Посмотреть измененные условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Visible history" xml:space="preserve">
|
||||
@@ -7865,6 +7973,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="When more than one operator is enabled, none of them has metadata to learn who communicates with whom." xml:space="preserve">
|
||||
<source>When more than one operator is enabled, none of them has metadata to learn who communicates with whom.</source>
|
||||
<target>Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." xml:space="preserve">
|
||||
@@ -7964,6 +8073,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Вы уже соединены с %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8030,10 +8140,12 @@ Repeat join request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can configure operators in Network & servers settings." xml:space="preserve">
|
||||
<source>You can configure operators in Network & servers settings.</source>
|
||||
<target>Вы можете настроить операторов в настройках Сеть и серверы.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can configure servers via settings." xml:space="preserve">
|
||||
<source>You can configure servers via settings.</source>
|
||||
<target>Вы можете сконфигурировать серверы через настройки.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
@@ -8078,6 +8190,7 @@ Repeat join request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can set connection name, to remember who the link was shared with." xml:space="preserve">
|
||||
<source>You can set connection name, to remember who the link was shared with.</source>
|
||||
<target>Вы можете установить имя соединения, чтобы запомнить кому Вы отправили ссылку.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can set lock screen notification preview via settings." xml:space="preserve">
|
||||
@@ -8239,6 +8352,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Вы прекратите получать сообщения в этом разговоре. История будет сохранена.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -8383,6 +8497,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your servers" xml:space="preserve">
|
||||
<source>Your servers</source>
|
||||
<target>Ваши серверы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your settings" xml:space="preserve">
|
||||
@@ -8807,6 +8922,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="for better metadata privacy." xml:space="preserve">
|
||||
<source>for better metadata privacy.</source>
|
||||
<target>для лучшей конфиденциальности метаданных.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="forwarded" xml:space="preserve">
|
||||
@@ -9438,22 +9554,27 @@ last received msg: %2$@</source>
|
||||
<body>
|
||||
<trans-unit id="%d new events" xml:space="preserve">
|
||||
<source>%d new events</source>
|
||||
<target>%d новых сообщений</target>
|
||||
<note>notification body</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="From: %@" xml:space="preserve">
|
||||
<source>From: %@</source>
|
||||
<target>От: %@</target>
|
||||
<note>notification body</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New events" xml:space="preserve">
|
||||
<source>New events</source>
|
||||
<target>Новые события</target>
|
||||
<note>notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New messages" xml:space="preserve">
|
||||
<source>New messages</source>
|
||||
<target>Новые сообщения</target>
|
||||
<note>notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New messages in %d chats" xml:space="preserve">
|
||||
<source>New messages in %d chats</source>
|
||||
<target>Новые сообщения в %d разговоре(ах)</target>
|
||||
<note>notification body</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
||||
@@ -1232,6 +1232,10 @@
|
||||
<target>เปลี่ยน</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>เปลี่ยนรหัสผ่านฐานข้อมูล?</target>
|
||||
@@ -1278,10 +1282,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5133,10 +5133,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>การแจ้งเตือนแบบทันที</target>
|
||||
@@ -5527,14 +5523,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>บันทึก</target>
|
||||
@@ -6598,6 +6586,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -1329,6 +1329,10 @@
|
||||
<target>Değiştir</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Veritabanı parolasını değiştir?</target>
|
||||
@@ -1375,10 +1379,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5530,10 +5530,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Proxy şifre gerektirir</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Anında bildirimler</target>
|
||||
@@ -5958,14 +5954,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Daha güvenli gruplar</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Kaydet</target>
|
||||
@@ -7113,6 +7101,14 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.
|
||||
<target>Profil sadece kişilerinle paylaşılacak.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -1341,6 +1341,11 @@
|
||||
<target>Зміна</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Зміна профілів користувачів</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Змінити пароль до бази даних?</target>
|
||||
@@ -1387,11 +1392,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Зміна профілів користувачів</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5590,14 +5590,9 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Проксі вимагає пароль</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push-сповіщення</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-повідомлення</target>
|
||||
<target>Push-сповіщення</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push server" xml:space="preserve">
|
||||
@@ -6021,16 +6016,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Безпечніші групи</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Такі ж умови діятимуть і для оператора **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Такі ж умови будуть застосовуватися до оператора(ів): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Зберегти</target>
|
||||
@@ -7191,6 +7176,16 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>Профіль доступний лише вашим контактам.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Такі ж умови діятимуть і для оператора **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Такі ж умови будуть застосовуватися до оператора(ів): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Другий попередньо встановлений оператор у застосунку!</target>
|
||||
|
||||
@@ -1316,6 +1316,10 @@
|
||||
<target>更改</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>更改数据库密码?</target>
|
||||
@@ -1362,10 +1366,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -5485,10 +5485,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>推送通知</target>
|
||||
@@ -5911,14 +5907,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>更安全的群组</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>保存</target>
|
||||
@@ -7055,6 +7043,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>该资料仅与您的联系人共享。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
/*
|
||||
Localizable.strings
|
||||
SimpleX
|
||||
/* notification body */
|
||||
"%d new events" = "%d новых сообщений";
|
||||
|
||||
/* notification body */
|
||||
"From: %@" = "От: %@";
|
||||
|
||||
/* notification */
|
||||
"New events" = "Новые события";
|
||||
|
||||
/* notification */
|
||||
"New messages" = "Новые сообщения";
|
||||
|
||||
/* notification body */
|
||||
"New messages in %d chats" = "Новые сообщения в %d разговоре(ах)";
|
||||
|
||||
Created by EP on 30/07/2024.
|
||||
Copyright © 2024 SimpleX Chat. All rights reserved.
|
||||
*/
|
||||
|
||||
@@ -156,11 +156,6 @@
|
||||
6442E0BE2880182D00CEC0F9 /* GroupChatInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6442E0BD2880182D00CEC0F9 /* GroupChatInfoView.swift */; };
|
||||
64466DCC29FFE3E800E3D48D /* MailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64466DCB29FFE3E800E3D48D /* MailView.swift */; };
|
||||
6448BBB628FA9D56000D2AB9 /* GroupLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6448BBB528FA9D56000D2AB9 /* GroupLinkView.swift */; };
|
||||
6449333A2AF8E51000AC506E /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933352AF8E51000AC506E /* libgmpxx.a */; };
|
||||
6449333B2AF8E51000AC506E /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933362AF8E51000AC506E /* libgmp.a */; };
|
||||
6449333C2AF8E51000AC506E /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933372AF8E51000AC506E /* libffi.a */; };
|
||||
6449333D2AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933382AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a */; };
|
||||
6449333E2AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933392AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a */; };
|
||||
644EFFDE292BCD9D00525D5B /* ComposeVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFDD292BCD9D00525D5B /* ComposeVoiceView.swift */; };
|
||||
644EFFE0292CFD7F00525D5B /* CIVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFDF292CFD7F00525D5B /* CIVoiceView.swift */; };
|
||||
644EFFE2292D089800525D5B /* FramedCIVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFE1292D089800525D5B /* FramedCIVoiceView.swift */; };
|
||||
@@ -172,9 +167,9 @@
|
||||
648010AB281ADD15009009B9 /* CIFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648010AA281ADD15009009B9 /* CIFileView.swift */; };
|
||||
648679AB2BC96A74006456E7 /* ChatItemForwardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */; };
|
||||
649B28DD2CFE07CF00536B68 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D82CFE07CF00536B68 /* libffi.a */; };
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP-ghc9.6.3.a */; };
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a */; };
|
||||
649B28DF2CFE07CF00536B68 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DA2CFE07CF00536B68 /* libgmpxx.a */; };
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP.a */; };
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a */; };
|
||||
649B28E12CFE07CF00536B68 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DC2CFE07CF00536B68 /* libgmp.a */; };
|
||||
649BCDA0280460FD00C3A862 /* ComposeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCD9F280460FD00C3A862 /* ComposeImageView.swift */; };
|
||||
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; };
|
||||
@@ -509,11 +504,6 @@
|
||||
6442E0BD2880182D00CEC0F9 /* GroupChatInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupChatInfoView.swift; sourceTree = "<group>"; };
|
||||
64466DCB29FFE3E800E3D48D /* MailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MailView.swift; sourceTree = "<group>"; };
|
||||
6448BBB528FA9D56000D2AB9 /* GroupLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupLinkView.swift; sourceTree = "<group>"; };
|
||||
644933352AF8E51000AC506E /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
644933362AF8E51000AC506E /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
644933372AF8E51000AC506E /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
644933382AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
644933392AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a"; sourceTree = "<group>"; };
|
||||
644EFFDD292BCD9D00525D5B /* ComposeVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeVoiceView.swift; sourceTree = "<group>"; };
|
||||
644EFFDF292CFD7F00525D5B /* CIVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIVoiceView.swift; sourceTree = "<group>"; };
|
||||
644EFFE1292D089800525D5B /* FramedCIVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FramedCIVoiceView.swift; sourceTree = "<group>"; };
|
||||
@@ -526,9 +516,9 @@
|
||||
648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemForwardingView.swift; sourceTree = "<group>"; };
|
||||
6493D667280ED77F007A76FB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
649B28D82CFE07CF00536B68 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
649B28DA2CFE07CF00536B68 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP.a"; sourceTree = "<group>"; };
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a"; sourceTree = "<group>"; };
|
||||
649B28DC2CFE07CF00536B68 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
649BCD9F280460FD00C3A862 /* ComposeImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeImageView.swift; sourceTree = "<group>"; };
|
||||
649BCDA12805D6EF00C3A862 /* CIImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIImageView.swift; sourceTree = "<group>"; };
|
||||
@@ -681,9 +671,9 @@
|
||||
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
|
||||
649B28E12CFE07CF00536B68 /* libgmp.a in Frameworks */,
|
||||
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP.a in Frameworks */,
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a in Frameworks */,
|
||||
CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */,
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP-ghc9.6.3.a in Frameworks */,
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a in Frameworks */,
|
||||
649B28DD2CFE07CF00536B68 /* libffi.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -764,8 +754,8 @@
|
||||
649B28D82CFE07CF00536B68 /* libffi.a */,
|
||||
649B28DC2CFE07CF00536B68 /* libgmp.a */,
|
||||
649B28DA2CFE07CF00536B68 /* libgmpxx.a */,
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP-ghc9.6.3.a */,
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.5-592uBhlQO6KIf70TJf5KpP.a */,
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a */,
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a */,
|
||||
);
|
||||
path = Libraries;
|
||||
sourceTree = "<group>";
|
||||
@@ -1941,7 +1931,7 @@
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -1990,7 +1980,7 @@
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -2031,7 +2021,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
@@ -2051,7 +2041,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
@@ -2076,7 +2066,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = s;
|
||||
@@ -2113,7 +2103,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_CODE_COVERAGE = NO;
|
||||
@@ -2150,7 +2140,7 @@
|
||||
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@@ -2201,7 +2191,7 @@
|
||||
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@@ -2252,7 +2242,7 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
@@ -2286,7 +2276,7 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 251;
|
||||
CURRENT_PROJECT_VERSION = 253;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
|
||||
@@ -1962,8 +1962,9 @@ public struct GroupProfile: Codable, NamedChat, Hashable {
|
||||
}
|
||||
|
||||
public struct BusinessChatInfo: Decodable, Hashable {
|
||||
public var memberId: String
|
||||
public var chatType: BusinessChatType
|
||||
public var businessId: String
|
||||
public var customerId: String
|
||||
}
|
||||
|
||||
public enum BusinessChatType: String, Codable, Hashable {
|
||||
|
||||
@@ -1905,27 +1905,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Групови линкове";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Членовете на групата могат да добавят реакции към съобщенията.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Членовете на групата могат да изпращат лични съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Членовете на групата могат да изпращат изчезващи съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Групово съобщение:";
|
||||
|
||||
@@ -2376,6 +2355,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Членът ще бъде премахнат от групата - това не може да бъде отменено!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Членовете на групата могат да добавят реакции към съобщенията.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Членовете на групата могат да изпращат лични съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Членовете на групата могат да изпращат изчезващи съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "Грешка при доставката на съобщението";
|
||||
|
||||
|
||||
@@ -1544,24 +1544,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Odkazy na skupiny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Členové skupin mohou přidávat reakce na zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Členové skupiny mohou posílat přímé zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Členové skupiny mohou posílat mizící zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Členové skupiny mohou posílat soubory a média.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Členové skupiny mohou posílat hlasové zprávy.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Skupinová zpráva:";
|
||||
|
||||
@@ -1934,6 +1916,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Člen bude odstraněn ze skupiny - toto nelze vzít zpět!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Členové skupin mohou přidávat reakce na zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Členové skupiny mohou posílat přímé zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Členové skupiny mohou posílat mizící zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Členové skupiny mohou posílat soubory a média.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Členové skupiny mohou posílat hlasové zprávy.";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "Chyba doručení zprávy";
|
||||
|
||||
|
||||
@@ -892,7 +892,7 @@
|
||||
"Change self-destruct passcode" = "Selbstzerstörungs-Zugangscode ändern";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Chat-Profile wechseln";
|
||||
"Change chat profiles" = "Chat-Profile wechseln";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "Wechselte die Empfängeradresse von Ihnen";
|
||||
@@ -2424,27 +2424,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Gruppen-Links";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Gruppenmitglieder können eine Reaktion auf Nachrichten geben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen. (24 Stunden)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Gruppenmitglieder können Direktnachrichten versenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Gruppenmitglieder können verschwindende Nachrichten senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Gruppenmitglieder können SimpleX-Links senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Grppennachricht:";
|
||||
|
||||
@@ -2934,6 +2913,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Das Mitglied wird aus der Gruppe entfernt. Dies kann nicht rückgängig gemacht werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Gruppenmitglieder können eine Reaktion auf Nachrichten geben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen. (24 Stunden)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Gruppenmitglieder können Direktnachrichten versenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Gruppenmitglieder können verschwindende Nachrichten senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Gruppenmitglieder können SimpleX-Links senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menüs";
|
||||
|
||||
@@ -3671,9 +3671,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Push-Benachrichtigungen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Push-Benachrichtigungen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push-Server";
|
||||
|
||||
@@ -3949,10 +3946,10 @@
|
||||
"Safer groups" = "Sicherere Gruppen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.";
|
||||
"The same conditions will apply to operator **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.";
|
||||
"The same conditions will apply to operator(s): **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
|
||||
@@ -892,7 +892,7 @@
|
||||
"Change self-destruct passcode" = "Cambiar código autodestrucción";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Cambiar perfil de usuario";
|
||||
"Change chat profiles" = "Cambiar perfil de usuario";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "ha cambiado tu servidor de envío";
|
||||
@@ -2424,27 +2424,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Enlaces de grupo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Los miembros pueden añadir reacciones a los mensajes.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Los miembros del grupo pueden eliminar mensajes de forma irreversible. (24 horas)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Los miembros del grupo pueden enviar mensajes directos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Los miembros del grupo pueden enviar mensajes temporales.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Los miembros del grupo pueden enviar archivos y multimedia.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Los miembros del grupo pueden enviar enlaces SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Los miembros del grupo pueden enviar mensajes de voz.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Mensaje de grupo:";
|
||||
|
||||
@@ -2934,6 +2913,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "El miembro será expulsado del grupo. ¡No podrá deshacerse!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Los miembros pueden añadir reacciones a los mensajes.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Los miembros del grupo pueden eliminar mensajes de forma irreversible. (24 horas)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Los miembros del grupo pueden enviar mensajes directos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Los miembros del grupo pueden enviar mensajes temporales.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Los miembros del grupo pueden enviar archivos y multimedia.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Los miembros del grupo pueden enviar enlaces SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Los miembros del grupo pueden enviar mensajes de voz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menus";
|
||||
|
||||
@@ -3669,10 +3669,7 @@
|
||||
"Proxy requires password" = "El proxy requiere contraseña";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Notificaciones automáticas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Notificaciones push";
|
||||
"Push notifications" = "Notificaciones push";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Servidor push";
|
||||
@@ -3949,10 +3946,10 @@
|
||||
"Safer groups" = "Grupos más seguros";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Las mismas condiciones se aplicarán al operador **%@**.";
|
||||
"The same conditions will apply to operator **%@**." = "Las mismas condiciones se aplicarán al operador **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Las mismas condiciones se aplicarán a el/los operador(es) **%@**.";
|
||||
"The same conditions will apply to operator(s): **%@**." = "Las mismas condiciones se aplicarán a el/los operador(es) **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
|
||||
@@ -1520,24 +1520,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Ryhmälinkit";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Ryhmän jäsenet voivat lisätä viestireaktioita.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Ryhmän jäsenet voivat lähettää suoraviestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Ryhmän jäsenet voivat lähettää katoavia viestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Ryhmän jäsenet voivat lähettää ääniviestejä.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Ryhmäviesti:";
|
||||
|
||||
@@ -1910,6 +1892,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Jäsen poistetaan ryhmästä - tätä ei voi perua!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Ryhmän jäsenet voivat lisätä viestireaktioita.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Ryhmän jäsenet voivat lähettää suoraviestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Ryhmän jäsenet voivat lähettää katoavia viestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Ryhmän jäsenet voivat lähettää ääniviestejä.";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "Viestin toimitusvirhe";
|
||||
|
||||
|
||||
@@ -2301,27 +2301,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Liens de groupe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Les membres du groupe peuvent ajouter des réactions aux messages.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Les membres du groupe peuvent envoyer des messages directs.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Les membres du groupes peuvent envoyer des messages éphémères.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Les membres du groupe peuvent envoyer des liens SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Message du groupe :";
|
||||
|
||||
@@ -2805,6 +2784,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Ce membre sera retiré du groupe - impossible de revenir en arrière !";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Les membres du groupe peuvent ajouter des réactions aux messages.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Les membres du groupe peuvent envoyer des messages directs.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Les membres du groupes peuvent envoyer des messages éphémères.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Les membres du groupe peuvent envoyer des liens SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menus";
|
||||
|
||||
|
||||
@@ -388,6 +388,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Cím hozzáadása a profilhoz, hogy az ismerősei megoszthassák másokkal. A profilfrissítés elküldésre kerül az ismerősei számára.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Barátok hozzáadása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Profil hozzáadása";
|
||||
|
||||
@@ -397,12 +400,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Kiszolgáló hozzáadása QR-kód beolvasásával.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Csapattagok hozzáadása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Hozzáadás egy másik eszközhöz";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Üdvözlőüzenet hozzáadása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Adja hozzá csapattagjait a beszélgetésekhez.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Hozzáadott média- és fájlkiszolgálók";
|
||||
|
||||
@@ -770,7 +779,7 @@
|
||||
"Blur for better privacy." = "Elhomályosítás a jobb adatvédelemért.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Média elhomályosítása";
|
||||
"Blur media" = "Médiatartalom elhomályosítása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"bold" = "félkövér";
|
||||
@@ -793,6 +802,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bolgár, finn, thai és ukrán – köszönet a felhasználóknak és a [Weblate-nek](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Üzleti cím";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Üzleti csevegések";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "A csevegési profillal (alapértelmezett), vagy a [kapcsolattal] (https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BÉTA).";
|
||||
|
||||
@@ -892,7 +907,7 @@
|
||||
"Change self-destruct passcode" = "Önmegsemmisító jelkód megváltoztatása";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Felhasználói profilok megváltoztatása";
|
||||
"Change chat profiles" = "Felhasználói profilok megváltoztatása";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "cím megváltoztatva";
|
||||
@@ -909,6 +924,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "cím megváltoztatása…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Csevegés";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "A csevegés már létezik";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "A csevegés már létezik!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Csevegés színei";
|
||||
|
||||
@@ -954,6 +978,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Csevegés témája";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "A csevegés minden tag számára törlésre kerül - ezt a műveletet nem lehet visszavonni!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "A csevegés törlésre kerül az Ön számára - ezt a műveletet nem lehet visszavonni!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Csevegések";
|
||||
|
||||
@@ -1475,12 +1505,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Törlés, és az ismerős értesítése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Csevegés törlése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Csevegési profil törlése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Csevegési profil törlése?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Csevegés törlése?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Kapcsolat törlése";
|
||||
|
||||
@@ -1655,6 +1691,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Közvetlen üzenetek";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "A tagok közötti közvetlen üzenetek le vannak tiltva ebben a csevegésben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "A közvetlen üzenetek küldése a tagok között le van tiltva ebben a csoportban.";
|
||||
|
||||
@@ -2424,27 +2463,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Csoporthivatkozások";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Csoporttagok üzenetreakciókat adhatnak hozzá.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "A csoport tagjai véglegesen törölhetik az elküldött üzeneteiket. (24 óra)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "A csoport tagjai küldhetnek egymásnak közvetlen üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "A csoport tagjai küldhetnek eltűnő üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "A csoport tagjai küldhetnek fájlokat és médiatartalmakat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "A csoport tagjai küldhetnek SimpleX-hivatkozásokat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "A csoport tagjai küldhetnek hangüzeneteket.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Csoport üzenet:";
|
||||
|
||||
@@ -2715,6 +2733,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Tagok meghívása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Meghívás a csevegésbe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Meghívás a csoportba";
|
||||
|
||||
@@ -2829,6 +2850,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Elhagyás";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Csevegés elhagyása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Csevegés elhagyása?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Csoport elhagyása";
|
||||
|
||||
@@ -2925,15 +2952,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Inaktív tag";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "A tag szerepeköre meg fog változni a következőre: \"%@\". A csevegés tagjai értesítést fognak kapni.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "A tag szerepköre meg fog változni erre: „%@”. A csoportban az összes tag értesítve lesz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "A tag szerepköre meg fog változni erre: „%@”. A tag új meghívást fog kapni.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "A tag el lesz távolítva a csevegésből - ezt a műveletet nem lehet visszavonni!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "A tag eltávolítása a csoportból - ez a művelet nem vonható vissza!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Csoporttagok üzenetreakciókat adhatnak hozzá.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "A csoport tagjai véglegesen törölhetik az elküldött üzeneteiket. (24 óra)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "A csoport tagjai küldhetnek egymásnak közvetlen üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "A csoport tagjai küldhetnek eltűnő üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "A csoport tagjai küldhetnek fájlokat és médiatartalmakat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "A csoport tagjai küldhetnek SimpleX-hivatkozásokat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "A csoport tagjai küldhetnek hangüzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menük";
|
||||
|
||||
@@ -3329,6 +3383,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Onion-kiszolgálók nem lesznek használva.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Csak a csevegés tulajdonosai módosíthatják a beállításokat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Csak az eszközök alkalmazásai tárolják a felhasználó-profilokat, névjegyeket, csoportokat és a **2 rétegű végpontok közötti titkosítással** küldött üzeneteket.";
|
||||
|
||||
@@ -3407,6 +3464,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Kiszolgáló üzemeltető";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "Vagy archívumfájl importálása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "Vagy az archívum hivatkozásának beillesztése";
|
||||
|
||||
@@ -3575,6 +3635,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Adatvédelem és biztonság";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Az Ön ügyfeleinek adatvédelme.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Adatvédelem újraértelmezve";
|
||||
|
||||
@@ -3671,9 +3734,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Push-értesítések";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Push értesítések";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push-kiszolgáló";
|
||||
|
||||
@@ -3949,10 +4009,10 @@
|
||||
"Safer groups" = "Biztonságosabb csoportok";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.";
|
||||
"The same conditions will apply to operator **%@**." = "Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.";
|
||||
"The same conditions will apply to operator(s): **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
@@ -4007,10 +4067,10 @@
|
||||
"Saved" = "Mentett";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Saved from" = "Mentve innen:";
|
||||
"Saved from" = "Elmentve innen:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"saved from %@" = "mentve innen: %@";
|
||||
"saved from %@" = "elmentve innen: %@";
|
||||
|
||||
/* message info title */
|
||||
"Saved message" = "Mentett üzenet";
|
||||
@@ -4580,6 +4640,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Koppintson a ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Koppintson a SimpleX-cím létrehozása menüpontra a későbbi létrehozáshoz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "A profil aktiválásához koppintson az ikonra.";
|
||||
|
||||
@@ -5282,6 +5345,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Ön már kapcsolódva van ehhez: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Ön már kapcsolódva van vele: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Már folyamatban van a kapcsolódás ehhez: %@.";
|
||||
|
||||
@@ -5480,6 +5546,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "Továbbra is kap hívásokat és értesítéseket a némított profiloktól, ha azok aktívak.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Ön nem fog több üzenetet kapni ebből a csevegésből, de a csevegés előzményei megmaradnak.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Ettől a csoporttól nem fog értesítéseket kapni. A csevegési előzmények megmaradnak.";
|
||||
|
||||
|
||||
@@ -388,6 +388,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Aggiungi l'indirizzo al tuo profilo, in modo che i tuoi contatti possano condividerlo con altre persone. L'aggiornamento del profilo verrà inviato ai tuoi contatti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Aggiungi amici";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Aggiungi profilo";
|
||||
|
||||
@@ -397,12 +400,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Aggiungi server scansionando codici QR.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Aggiungi membri del team";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Aggiungi ad un altro dispositivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Aggiungi messaggio di benvenuto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Aggiungi i membri del tuo team alle conversazioni.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Server di multimediali e file aggiunti";
|
||||
|
||||
@@ -793,6 +802,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bulgaro, finlandese, tailandese e ucraino - grazie agli utenti e a [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Indirizzo di lavoro";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Chat di lavoro";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Per profilo di chat (predefinito) o [per connessione](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
|
||||
|
||||
@@ -892,7 +907,7 @@
|
||||
"Change self-destruct passcode" = "Cambia codice di autodistruzione";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Modifica profili utente";
|
||||
"Change chat profiles" = "Modifica profili utente";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "indirizzo cambiato per te";
|
||||
@@ -909,6 +924,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "cambio indirizzo…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "La chat esiste già";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "La chat esiste già!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Colori della chat";
|
||||
|
||||
@@ -954,6 +978,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Tema della chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "La chat verrà eliminata per tutti i membri, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "La chat verrà eliminata solo per te, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Chat";
|
||||
|
||||
@@ -1475,12 +1505,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Elimina e avvisa il contatto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Elimina chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Elimina il profilo di chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Eliminare il profilo di chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Eliminare la chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Elimina connessione";
|
||||
|
||||
@@ -1655,6 +1691,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Messaggi diretti";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "I messaggi diretti tra i membri sono vietati in questa chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "I messaggi diretti tra i membri sono vietati in questo gruppo.";
|
||||
|
||||
@@ -2424,27 +2463,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Link del gruppo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "I membri del gruppo possono aggiungere reazioni ai messaggi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "I membri del gruppo possono inviare messaggi diretti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "I membri del gruppo possono inviare messaggi a tempo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "I membri del gruppo possono inviare link di Simplex.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Messaggio del gruppo:";
|
||||
|
||||
@@ -2715,6 +2733,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Invita membri";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Invita in chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Invita al gruppo";
|
||||
|
||||
@@ -2829,6 +2850,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Esci";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Esci dalla chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Uscire dalla chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Esci dal gruppo";
|
||||
|
||||
@@ -2925,15 +2952,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Membro inattivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "Il ruolo del membro verrà cambiato in \"%@\". Verranno notificati tutti i membri della chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "Il ruolo del membro verrà cambiato in \"%@\". Tutti i membri del gruppo verranno avvisati.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "Il ruolo del membro verrà cambiato in \"%@\". Il membro riceverà un invito nuovo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "Il membro verrà rimosso dalla chat, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Il membro verrà rimosso dal gruppo, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "I membri del gruppo possono aggiungere reazioni ai messaggi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "I membri del gruppo possono inviare messaggi diretti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "I membri del gruppo possono inviare messaggi a tempo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "I membri del gruppo possono inviare link di Simplex.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menu";
|
||||
|
||||
@@ -3329,6 +3383,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Gli host Onion non verranno usati.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Solo i proprietari della chat possono modificarne le preferenze.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Solo i dispositivi client archiviano profili utente, i contatti, i gruppi e i messaggi inviati con la **crittografia end-to-end a 2 livelli**.";
|
||||
|
||||
@@ -3407,6 +3464,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Server dell'operatore";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "O importa file archivio";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "O incolla il link dell'archivio";
|
||||
|
||||
@@ -3575,6 +3635,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Privacy e sicurezza";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Privacy per i tuoi clienti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Privacy ridefinita";
|
||||
|
||||
@@ -3671,9 +3734,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Notifiche push";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Notifiche push";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Server push";
|
||||
|
||||
@@ -3949,10 +4009,10 @@
|
||||
"Safer groups" = "Gruppi più sicuri";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Le stesse condizioni si applicheranno all'operatore **%@**.";
|
||||
"The same conditions will apply to operator **%@**." = "Le stesse condizioni si applicheranno all'operatore **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Le stesse condizioni si applicheranno agli operatori **%@**.";
|
||||
"The same conditions will apply to operator(s): **%@**." = "Le stesse condizioni si applicheranno agli operatori **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
@@ -4580,6 +4640,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Tocca il pulsante ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Tocca \"Crea indirizzo SimpleX\" nel menu per crearlo più tardi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Tocca per attivare il profilo.";
|
||||
|
||||
@@ -5282,6 +5345,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Sei già connesso/a a %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Sei già connesso/a con %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Ti stai già connettendo a %@.";
|
||||
|
||||
@@ -5480,6 +5546,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "Continuerai a ricevere chiamate e notifiche da profili silenziati quando sono attivi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Non riceverai più messaggi da questa chat. La cronologia della chat verrà conservata.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Non riceverai più messaggi da questo gruppo. La cronologia della chat verrà conservata.";
|
||||
|
||||
|
||||
@@ -1661,24 +1661,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "グループのリンク";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。(24時間)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "グループのメンバーが消えるメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "グループメンバーはファイルやメディアを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "グループのメンバーが音声メッセージを送信できます。";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "グループメッセージ:";
|
||||
|
||||
@@ -2051,6 +2033,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "メンバーをグループから除名する (※元に戻せません※)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。(24時間)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "グループのメンバーが消えるメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "グループメンバーはファイルやメディアを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "グループのメンバーが音声メッセージを送信できます。";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "メッセージ送信エラー";
|
||||
|
||||
|
||||
@@ -388,6 +388,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Voeg een adres toe aan uw profiel, zodat uw contacten het met andere mensen kunnen delen. Profiel update wordt naar uw contacten verzonden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Vrienden toevoegen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Profiel toevoegen";
|
||||
|
||||
@@ -397,12 +400,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Servers toevoegen door QR-codes te scannen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Teamleden toevoegen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Toevoegen aan een ander apparaat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Welkom bericht toevoegen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Voeg uw teamleden toe aan de gesprekken.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Media- en bestandsservers toegevoegd";
|
||||
|
||||
@@ -512,7 +521,7 @@
|
||||
"Allow downgrade" = "Downgraden toestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)";
|
||||
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Sta het definitief verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow message reactions only if your contact allows them." = "Sta bericht reacties alleen toe als uw contact dit toestaat.";
|
||||
@@ -530,7 +539,7 @@
|
||||
"Allow sharing" = "Delen toestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow to irreversibly delete sent messages. (24 hours)" = "Sta toe om verzonden berichten onomkeerbaar te verwijderen. (24 uur)";
|
||||
"Allow to irreversibly delete sent messages. (24 hours)" = "Sta toe om verzonden berichten definitief te verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow to send files and media." = "Sta toe om bestanden en media te verzenden.";
|
||||
@@ -554,7 +563,7 @@
|
||||
"Allow your contacts to call you." = "Sta toe dat uw contacten u bellen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow your contacts to irreversibly delete sent messages. (24 hours)" = "Laat uw contacten verzonden berichten onomkeerbaar verwijderen. (24 uur)";
|
||||
"Allow your contacts to irreversibly delete sent messages. (24 hours)" = "Laat uw contacten verzonden berichten definitief verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow your contacts to send disappearing messages." = "Sta toe dat uw contacten verdwijnende berichten verzenden.";
|
||||
@@ -659,7 +668,7 @@
|
||||
"Audio/video calls" = "Audio/video oproepen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Audio/video calls are prohibited." = "Audio/video gesprekken zijn verboden.";
|
||||
"Audio/video calls are prohibited." = "Audio/video gesprekken zijn niet toegestaan.";
|
||||
|
||||
/* PIN entry */
|
||||
"Authentication cancelled" = "Verificatie geannuleerd";
|
||||
@@ -793,6 +802,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bulgaars, Fins, Thais en Oekraïens - dankzij de gebruikers en [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Zakelijk adres";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Zakelijke chats";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Via chatprofiel (standaard) of [via verbinding](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
|
||||
|
||||
@@ -815,7 +830,7 @@
|
||||
"Calls" = "Oproepen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Calls prohibited!" = "Bellen verboden!";
|
||||
"Calls prohibited!" = "Bellen niet toegestaan!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Camera not available" = "Camera niet beschikbaar";
|
||||
@@ -892,7 +907,7 @@
|
||||
"Change self-destruct passcode" = "Zelfvernietigings code wijzigen";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Gebruikersprofielen wijzigen";
|
||||
"Change chat profiles" = "Gebruikersprofielen wijzigen";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "adres voor u gewijzigd";
|
||||
@@ -909,6 +924,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "adres wijzigen…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "Chat bestaat al";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "Chat bestaat al!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Chat kleuren";
|
||||
|
||||
@@ -954,6 +978,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Chat thema";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "De chat wordt voor alle leden verwijderd - dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "De chat wordt voor je verwijderd - dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Chats";
|
||||
|
||||
@@ -1475,12 +1505,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Verwijderen en contact op de hoogte stellen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Chat verwijderen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Chatprofiel verwijderen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Chatprofiel verwijderen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Chat verwijderen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Verbinding verwijderen";
|
||||
|
||||
@@ -1656,7 +1692,10 @@
|
||||
"Direct messages" = "Directe berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "Directe berichten tussen leden zijn verboden in deze groep.";
|
||||
"Direct messages between members are prohibited in this chat." = "Directe berichten tussen leden zijn in deze chat niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "Directe berichten tussen leden zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disable (keep overrides)" = "Uitschakelen (overschrijvingen behouden)";
|
||||
@@ -1680,10 +1719,10 @@
|
||||
"Disappearing messages" = "Verdwijnende berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disappearing messages are prohibited in this chat." = "Verdwijnende berichten zijn verboden in dit gesprek.";
|
||||
"Disappearing messages are prohibited in this chat." = "Verdwijnende berichten zijn niet toegestaan in dit gesprek.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disappearing messages are prohibited." = "Verdwijnende berichten zijn verboden in deze groep.";
|
||||
"Disappearing messages are prohibited." = "Verdwijnende berichten zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disappears at" = "Verdwijnt op";
|
||||
@@ -2254,13 +2293,13 @@
|
||||
"Files and media" = "Bestanden en media";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Files and media are prohibited." = "Bestanden en media zijn verboden in deze groep.";
|
||||
"Files and media are prohibited." = "Bestanden en media zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Files and media not allowed" = "Bestanden en media niet toegestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Files and media prohibited!" = "Bestanden en media verboden!";
|
||||
"Files and media prohibited!" = "Bestanden en media niet toegestaan!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Filter unread and favorite chats." = "Filter ongelezen en favoriete chats.";
|
||||
@@ -2424,27 +2463,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Groep links";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Groepsleden kunnen bericht reacties toevoegen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Groepsleden kunnen verzonden berichten onherroepelijk verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Groepsleden kunnen directe berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Groepsleden kunnen verdwijnende berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Groepsleden kunnen bestanden en media verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Groepsleden kunnen SimpleX-links verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Groepsleden kunnen spraak berichten verzenden.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Groep bericht:";
|
||||
|
||||
@@ -2533,7 +2551,7 @@
|
||||
"If you can't meet in person, show QR code in a video call, or share the link." = "Als je elkaar niet persoonlijk kunt ontmoeten, laat dan de QR-code zien in een videogesprek of deel de link.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you enter this passcode when opening the app, all app data will be irreversibly removed!" = "Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens onomkeerbaar verwijderd!";
|
||||
"If you enter this passcode when opening the app, all app data will be irreversibly removed!" = "Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens definitief verwijderd!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you enter your self-destruct passcode while opening the app:" = "Als u uw zelfvernietigings wachtwoord invoert tijdens het openen van de app:";
|
||||
@@ -2715,6 +2733,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Nodig leden uit";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Uitnodigen voor een chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Uitnodigen voor groep";
|
||||
|
||||
@@ -2743,10 +2764,10 @@
|
||||
"Irreversible message deletion" = "Onomkeerbare berichtverwijdering";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Irreversible message deletion is prohibited in this chat." = "Het onomkeerbaar verwijderen van berichten is verboden in dit gesprek.";
|
||||
"Irreversible message deletion is prohibited in this chat." = "Het definitief verwijderen van berichten is niet toegestaan in dit gesprek.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Irreversible message deletion is prohibited." = "Het onomkeerbaar verwijderen van berichten is verboden in deze groep.";
|
||||
"Irreversible message deletion is prohibited." = "Het definitief verwijderen van berichten is verbHet definitief verwijderen van berichten is niet toegestaan..";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Het maakt het mogelijk om veel anonieme verbindingen te hebben zonder enige gedeelde gegevens tussen hen in een enkel chatprofiel.";
|
||||
@@ -2829,6 +2850,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Verlaten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Chat verlaten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Chat verlaten?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Groep verlaten";
|
||||
|
||||
@@ -2925,15 +2952,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Lid inactief";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "De rol van het lid wordt gewijzigd naar \"%@\". Alle chatleden worden op de hoogte gebracht.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "De rol van lid wordt gewijzigd in \"%@\". Alle groepsleden worden op de hoogte gebracht.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "De rol van lid wordt gewijzigd in \"%@\". Het lid ontvangt een nieuwe uitnodiging.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "Lid wordt verwijderd uit de chat - dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Lid wordt uit de groep verwijderd, dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Groepsleden kunnen bericht reacties toevoegen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Groepsleden kunnen verzonden berichten onherroepelijk verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Groepsleden kunnen directe berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Groepsleden kunnen verdwijnende berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Groepsleden kunnen bestanden en media verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Groepsleden kunnen SimpleX-links verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Groepsleden kunnen spraak berichten verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menu's";
|
||||
|
||||
@@ -2965,10 +3019,10 @@
|
||||
"Message reactions" = "Reacties op berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Message reactions are prohibited in this chat." = "Reacties op berichten zijn verboden in deze chat.";
|
||||
"Message reactions are prohibited in this chat." = "Reacties op berichten zijn niet toegestaan in deze chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Message reactions are prohibited." = "Reacties op berichten zijn verboden in deze groep.";
|
||||
"Message reactions are prohibited." = "Reacties op berichten zijn niet toegestaan.";
|
||||
|
||||
/* notification */
|
||||
"message received" = "bericht ontvangen";
|
||||
@@ -3329,6 +3383,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Onion hosts worden niet gebruikt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Alleen chateigenaren kunnen voorkeuren wijzigen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Alleen client apparaten slaan gebruikers profielen, contacten, groepen en berichten op die zijn verzonden met **2-laags end-to-end-codering**.";
|
||||
|
||||
@@ -3348,7 +3405,7 @@
|
||||
"Only you can add message reactions." = "Alleen jij kunt bericht reacties toevoegen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" = "Alleen jij kunt berichten onomkeerbaar verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)";
|
||||
"Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" = "Alleen jij kunt berichten definitief verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only you can make calls." = "Alleen jij kunt bellen.";
|
||||
@@ -3407,6 +3464,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Operatorserver";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "Of importeer archiefbestand";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "Of plak de archief link";
|
||||
|
||||
@@ -3575,6 +3635,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Privacy en beveiliging";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Privacy voor uw klanten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Privacy opnieuw gedefinieerd";
|
||||
|
||||
@@ -3618,7 +3681,7 @@
|
||||
"Prohibit audio/video calls." = "Audio/video gesprekken verbieden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Prohibit irreversible message deletion." = "Verbied het onomkeerbaar verwijderen van berichten.";
|
||||
"Prohibit irreversible message deletion." = "Verbied het definitief verwijderen van berichten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Prohibit message reactions." = "Bericht reacties verbieden.";
|
||||
@@ -3671,9 +3734,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Push meldingen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Pushmeldingen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push server";
|
||||
|
||||
@@ -3949,10 +4009,10 @@
|
||||
"Safer groups" = "Veiligere groepen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Dezelfde voorwaarden gelden voor operator **%@**.";
|
||||
"The same conditions will apply to operator **%@**." = "Dezelfde voorwaarden gelden voor operator **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Dezelfde voorwaarden gelden voor operator(s): **%@**.";
|
||||
"The same conditions will apply to operator(s): **%@**." = "Dezelfde voorwaarden gelden voor operator(s): **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
@@ -4416,7 +4476,7 @@
|
||||
"SimpleX links" = "SimpleX links";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX links are prohibited." = "SimpleX-links zijn in deze groep verboden.";
|
||||
"SimpleX links are prohibited." = "SimpleX-links zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX links not allowed" = "SimpleX-links zijn niet toegestaan";
|
||||
@@ -4580,6 +4640,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Tik op de knop ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Tik op SimpleX-adres maken in het menu om het later te maken.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Tik hier om profiel te activeren.";
|
||||
|
||||
@@ -4734,7 +4797,7 @@
|
||||
"This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes." = "Deze actie kan niet ongedaan worden gemaakt, de berichten die eerder zijn verzonden en ontvangen dan geselecteerd, worden verwijderd. Het kan enkele minuten duren.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.";
|
||||
"This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan definitief verloren.";
|
||||
|
||||
/* E2EE info chat item */
|
||||
"This chat is protected by end-to-end encryption." = "Deze chat is beveiligd met end-to-end codering.";
|
||||
@@ -5145,16 +5208,16 @@
|
||||
"Voice messages" = "Spraak berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages are prohibited in this chat." = "Spraak berichten zijn verboden in deze chat.";
|
||||
"Voice messages are prohibited in this chat." = "Spraak berichten zijn niet toegestaan in dit gesprek.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages are prohibited." = "Spraak berichten zijn verboden in deze groep.";
|
||||
"Voice messages are prohibited." = "Spraak berichten zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages not allowed" = "Spraakberichten niet toegestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages prohibited!" = "Spraak berichten verboden!";
|
||||
"Voice messages prohibited!" = "Spraak berichten niet toegestaan!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"waiting for answer…" = "wachten op antwoord…";
|
||||
@@ -5282,6 +5345,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "U bent al verbonden met %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "U bent al verbonden met %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "U maakt al verbinding met %@.";
|
||||
|
||||
@@ -5480,6 +5546,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "U ontvangt nog steeds oproepen en meldingen van gedempte profielen wanneer deze actief zijn.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "U ontvangt geen berichten meer van deze chat. De chatgeschiedenis blijft bewaard.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Je ontvangt geen berichten meer van deze groep. Je gesprek geschiedenis blijft behouden.";
|
||||
|
||||
|
||||
@@ -2277,27 +2277,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Linki grupowe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Członkowie grupy mogą dodawać reakcje wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Członkowie grupy mogą wysyłać bezpośrednie wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Członkowie grupy mogą wysyłać znikające wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Członkowie grupy mogą wysyłać pliki i media.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Członkowie grupy mogą wysyłać linki SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Wiadomość grupowa:";
|
||||
|
||||
@@ -2778,6 +2757,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Członek zostanie usunięty z grupy - nie można tego cofnąć!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Członkowie grupy mogą dodawać reakcje wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Członkowie grupy mogą wysyłać bezpośrednie wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Członkowie grupy mogą wysyłać znikające wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Członkowie grupy mogą wysyłać pliki i media.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Członkowie grupy mogą wysyłać linki SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menu";
|
||||
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"**Recommended**: device token and end-to-end encrypted notifications are sent to SimpleX Chat push server, but it does not see the message content, size or who it is from." = "**Рекомендовано**: токен устройства и уведомления отправляются на сервер SimpleX Chat, но сервер не получает сами сообщения, их размер или от кого они.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"**Scan / Paste link**: to connect via a link you received." = "**Сканировать / Вставить ссылку**: чтобы соединится через полученную ссылку.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: для работы мгновенных уведомлений пароль должен быть сохранен в Keychain.";
|
||||
|
||||
@@ -142,6 +145,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"%@ is verified" = "%@ подтверждён";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ server" = "%@ сервер";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ servers" = "%@ серверы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ uploaded" = "%@ загружено";
|
||||
|
||||
@@ -295,6 +304,12 @@
|
||||
/* time interval */
|
||||
"1 week" = "1 неделю";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1-time link" = "Одноразовая ссылка";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1-time link can be used *with one contact only* - share in person or via any messenger." = "Одноразовая ссылка может быть использована *только с одним контактом* - поделитесь при встрече или через любой мессенджер.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"5 minutes" = "5 минут";
|
||||
|
||||
@@ -342,6 +357,9 @@
|
||||
swipe action */
|
||||
"Accept" = "Принять";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accept conditions" = "Принять условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accept connection request?" = "Принять запрос?";
|
||||
|
||||
@@ -355,6 +373,9 @@
|
||||
/* call status */
|
||||
"accepted call" = "принятый звонок";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accepted conditions" = "Принятые условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledged" = "Подтверждено";
|
||||
|
||||
@@ -367,6 +388,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Добавьте адрес в свой профиль, чтобы Ваши контакты могли поделиться им. Профиль будет отправлен Вашим контактам.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Добавить друзей";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Добавить профиль";
|
||||
|
||||
@@ -376,12 +400,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Добавить серверы через QR код.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Добавить сотрудников";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Добавить на другое устройство";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Добавить приветственное сообщение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Добавьте сотрудников в разговор.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Дополнительные серверы файлов и медиа";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added message servers" = "Дополнительные серверы сообщений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Additional accent" = "Дополнительный акцент";
|
||||
|
||||
@@ -397,6 +433,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Address change will be aborted. Old receiving address will be used." = "Изменение адреса будет прекращено. Будет использоваться старый адрес.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Address or 1-time link?" = "Адрес или одноразовая ссылка?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Address settings" = "Настройки адреса";
|
||||
|
||||
/* member role */
|
||||
"admin" = "админ";
|
||||
|
||||
@@ -760,6 +802,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Болгарский, финский, тайский и украинский - благодаря пользователям и [Weblate] (https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Бизнес адрес";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Бизнес разговоры";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "По профилю чата или [по соединению](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (БЕТА).";
|
||||
|
||||
@@ -858,6 +906,9 @@
|
||||
set passcode view */
|
||||
"Change self-destruct passcode" = "Изменить код самоуничтожения";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Поменять профили";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "поменял(а) адрес для Вас";
|
||||
|
||||
@@ -873,6 +924,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "смена адреса…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "Разговор уже существует";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "Разговор уже существует!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Цвета чата";
|
||||
|
||||
@@ -918,9 +978,21 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Тема чата";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "Разговор будет удален для всех участников - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "Разговор будет удален для Вас - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Чаты";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Check messages every 20 min." = "Проверять сообщения каждые 20 минут.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Check messages when allowed." = "Проверять сообщения по возможности.";
|
||||
|
||||
/* alert title */
|
||||
"Check server address and try again." = "Проверьте адрес сервера и попробуйте снова.";
|
||||
|
||||
@@ -981,6 +1053,33 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Completed" = "Готово";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions accepted on: %@." = "Условия приняты: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are accepted for the operator(s): **%@**." = "Условия приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for following operator(s): **%@**." = "Условия уже приняты для следующих оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Условия использования";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted for enabled operators after 30 days." = "Условия будут приняты для включенных операторов через 30 дней.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted for operator(s): **%@**." = "Условия будут приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted for the operator(s): **%@**." = "Условия будут приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted on: %@." = "Условия будут приняты: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be automatically accepted for enabled operators on: %@." = "Условия будут автоматически приняты для включенных операторов: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Configure ICE servers" = "Настройка ICE серверов";
|
||||
|
||||
@@ -1128,6 +1227,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connection request sent!" = "Запрос на соединение отправлен!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection security" = "Безопасность соединения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection terminated" = "Подключение прервано";
|
||||
|
||||
@@ -1209,6 +1311,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Create" = "Создать";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Create 1-time link" = "Создать одноразовую ссылку";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Create a group using a random profile." = "Создайте группу, используя случайный профиль.";
|
||||
|
||||
@@ -1260,6 +1365,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"creator" = "создатель";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Current conditions text couldn't be loaded, you can review conditions via this link:" = "Текст условий использования не может быть показан, вы можете посмотреть их через ссылку:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Current Passcode" = "Текущий Код";
|
||||
|
||||
@@ -1397,12 +1505,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Удалить и уведомить контакт";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Удалить разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Удалить профиль чата";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Удалить профиль?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Удалить разговор?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Удалить соединение";
|
||||
|
||||
@@ -1508,6 +1622,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Deletion errors" = "Ошибки удаления";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delivered even when Apple drops them." = "Доставляются даже тогда, когда Apple их теряет.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delivery" = "Доставка";
|
||||
|
||||
@@ -1574,6 +1691,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Прямые сообщения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "Прямые сообщения между членами запрещены в этом разговоре.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "Прямые сообщения между членами группы запрещены.";
|
||||
|
||||
@@ -1695,6 +1815,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"e2e encrypted" = "e2e зашифровано";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"E2E encrypted notifications." = "E2E зашифрованные нотификации.";
|
||||
|
||||
/* chat item action */
|
||||
"Edit" = "Редактировать";
|
||||
|
||||
@@ -1713,6 +1836,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Enable camera access" = "Включить доступ к камере";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable Flux" = "Включить Flux";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable for all" = "Включить для всех";
|
||||
|
||||
@@ -1872,12 +1998,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error aborting address change" = "Ошибка при прекращении изменения адреса";
|
||||
|
||||
/* alert title */
|
||||
"Error accepting conditions" = "Ошибка приема условий";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error accepting contact request" = "Ошибка при принятии запроса на соединение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error adding member(s)" = "Ошибка при добавлении членов группы";
|
||||
|
||||
/* alert title */
|
||||
"Error adding server" = "Ошибка добавления сервера";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error changing address" = "Ошибка при изменении адреса";
|
||||
|
||||
@@ -1962,6 +2094,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error joining group" = "Ошибка при вступлении в группу";
|
||||
|
||||
/* alert title */
|
||||
"Error loading servers" = "Ошибка загрузки серверов";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error migrating settings" = "Ошибка миграции настроек";
|
||||
|
||||
@@ -1995,6 +2130,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error saving passphrase to keychain" = "Ошибка сохранения пароля в Keychain";
|
||||
|
||||
/* alert title */
|
||||
"Error saving servers" = "Ошибка сохранения серверов";
|
||||
|
||||
/* when migrating */
|
||||
"Error saving settings" = "Ошибка сохранения настроек";
|
||||
|
||||
@@ -2037,6 +2175,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error updating message" = "Ошибка при обновлении сообщения";
|
||||
|
||||
/* alert title */
|
||||
"Error updating server" = "Ошибка сохранения сервера";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error updating settings" = "Ошибка при сохранении настроек сети";
|
||||
|
||||
@@ -2064,6 +2205,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Errors" = "Ошибки";
|
||||
|
||||
/* servers error */
|
||||
"Errors in servers configuration." = "Ошибки в настройках серверов.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Even when disabled in the conversation." = "Даже когда они выключены в разговоре.";
|
||||
|
||||
@@ -2190,9 +2334,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Fix not supported by group member" = "Починка не поддерживается членом группы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"for better metadata privacy." = "для лучшей конфиденциальности метаданных.";
|
||||
|
||||
/* servers error */
|
||||
"For chat profile %@:" = "Для профиля чата %@:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For console" = "Для консоли";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." = "Например, если Ваш контакт получает сообщения через сервер SimpleX Chat, Ваше приложение доставит их через сервер Flux.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For private routing" = "Для доставки сообщений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For social media" = "Для социальных сетей";
|
||||
|
||||
/* chat item action */
|
||||
"Forward" = "Переслать";
|
||||
|
||||
@@ -2304,27 +2463,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Ссылки групп";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Члены группы могут добавлять реакции на сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Члены группы могут необратимо удалять отправленные сообщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Члены группы могут посылать прямые сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Члены группы могут посылать исчезающие сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Члены группы могут слать файлы и медиа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Члены группы могут отправлять ссылки SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Члены группы могут отправлять голосовые сообщения.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Групповое сообщение:";
|
||||
|
||||
@@ -2385,6 +2523,12 @@
|
||||
/* time unit */
|
||||
"hours" = "часов";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"How it affects privacy" = "Как это влияет на конфиденциальность";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"How it helps privacy" = "Как это улучшает конфиденциальность";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"How SimpleX works" = "Как SimpleX работает";
|
||||
|
||||
@@ -2589,6 +2733,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Пригласить членов группы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Пригласить в разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Пригласить в группу";
|
||||
|
||||
@@ -2703,6 +2850,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Выйти";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Покинуть разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Покинуть разговор?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Выйти из группы";
|
||||
|
||||
@@ -2799,15 +2952,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Член неактивен";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "Роль участника будет изменена на \"%@\". Все участники разговора получат уведомление.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "Роль члена группы будет изменена на \"%@\". Все члены группы получат сообщение.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "Роль члена группы будет изменена на \"%@\". Будет отправлено новое приглашение.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "Член будет удален из разговора - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Член группы будет удален - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Члены группы могут добавлять реакции на сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Члены группы могут необратимо удалять отправленные сообщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Члены группы могут посылать прямые сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Члены группы могут посылать исчезающие сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Члены группы могут слать файлы и медиа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Члены группы могут отправлять ссылки SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Члены группы могут отправлять голосовые сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Меню";
|
||||
|
||||
@@ -2961,6 +3141,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"More reliable network connection." = "Более надежное соединение с сетью.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"More reliable notifications" = "Более надежные уведомления";
|
||||
|
||||
/* item status description */
|
||||
"Most likely this connection is deleted." = "Скорее всего, соединение удалено.";
|
||||
|
||||
@@ -2985,12 +3168,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Network connection" = "Интернет-соединение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network decentralization" = "Децентрализация сети";
|
||||
|
||||
/* snd error text */
|
||||
"Network issues - message expired after many attempts to send it." = "Ошибка сети - сообщение не было отправлено после многократных попыток.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network management" = "Статус сети";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network operator" = "Оператор сети";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network settings" = "Настройки сети";
|
||||
|
||||
@@ -3018,6 +3207,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New display name" = "Новое имя";
|
||||
|
||||
/* notification */
|
||||
"New events" = "Новые события";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Новое в %@";
|
||||
|
||||
@@ -3039,6 +3231,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New passphrase…" = "Новый пароль…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New server" = "Новый сервер";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New SOCKS credentials will be used every time you start the app." = "Новые учетные данные SOCKS будут использоваться при каждом запуске приложения.";
|
||||
|
||||
@@ -3084,6 +3279,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"No info, try to reload" = "Нет информации, попробуйте перезагрузить";
|
||||
|
||||
/* servers error */
|
||||
"No media & file servers." = "Нет серверов файлов и медиа.";
|
||||
|
||||
/* servers error */
|
||||
"No message servers." = "Нет серверов сообщений.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No network connection" = "Нет интернет-соединения";
|
||||
|
||||
@@ -3102,6 +3303,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"No received or sent files" = "Нет полученных или отправленных файлов";
|
||||
|
||||
/* servers error */
|
||||
"No servers for private message routing." = "Нет серверов для доставки сообщений.";
|
||||
|
||||
/* servers error */
|
||||
"No servers to receive files." = "Нет серверов для приема файлов.";
|
||||
|
||||
/* servers error */
|
||||
"No servers to receive messages." = "Нет серверов для приема сообщений.";
|
||||
|
||||
/* servers error */
|
||||
"No servers to send files." = "Нет серверов для отправки файлов.";
|
||||
|
||||
/* copied message info in history */
|
||||
"no text" = "нет текста";
|
||||
|
||||
@@ -3123,6 +3336,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Notifications are disabled!" = "Уведомления выключены";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Notifications privacy" = "Конфиденциальность уведомлений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Now admins can:\n- delete members' messages.\n- disable members (\"observer\" role)" = "Теперь админы могут:\n- удалять сообщения членов.\n- приостанавливать членов (роль \"наблюдатель\")";
|
||||
|
||||
@@ -3167,6 +3383,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Onion хосты не используются.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Только владельцы разговора могут поменять предпочтения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Только пользовательские устройства хранят контакты, группы и сообщения.";
|
||||
|
||||
@@ -3215,12 +3434,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Open" = "Открыть";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open changes" = "Открыть изменения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open chat" = "Открыть чат";
|
||||
|
||||
/* authentication reason */
|
||||
"Open chat console" = "Открыть консоль";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open conditions" = "Открыть условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open group" = "Открыть группу";
|
||||
|
||||
@@ -3233,6 +3458,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Opening app…" = "Приложение отрывается…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Operator" = "Оператор";
|
||||
|
||||
/* alert title */
|
||||
"Operator server" = "Сервер оператора";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "Или импортировать файл архива";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "Или вставьте ссылку архива";
|
||||
|
||||
@@ -3245,6 +3479,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Or show this code" = "Или покажите этот код";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or to share privately" = "Или поделиться конфиденциально";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"other" = "другое";
|
||||
|
||||
@@ -3386,6 +3623,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Preset server address" = "Адрес сервера по умолчанию";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preset servers" = "Серверы по умолчанию";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preview" = "Просмотр";
|
||||
|
||||
@@ -3395,6 +3635,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Конфиденциальность";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Конфиденциальность для ваших покупателей.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Более конфиденциальный";
|
||||
|
||||
@@ -3738,6 +3981,12 @@
|
||||
/* chat item action */
|
||||
"Reveal" = "Показать";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Review conditions" = "Посмотреть условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Review later" = "Посмотреть позже";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Revoke" = "Отозвать";
|
||||
|
||||
@@ -3759,6 +4008,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Safer groups" = "Более безопасные группы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator **%@**." = "Те же самые условия будут приняты для оператора **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Те же самые условия будут приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
"Save" = "Сохранить";
|
||||
@@ -4024,6 +4279,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Server" = "Сервер";
|
||||
|
||||
/* alert message */
|
||||
"Server added to operator %@." = "Сервер добавлен к оператору %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Server address" = "Адрес сервера";
|
||||
|
||||
@@ -4033,6 +4291,15 @@
|
||||
/* srv error text. */
|
||||
"Server address is incompatible with network settings." = "Адрес сервера несовместим с настройками сети.";
|
||||
|
||||
/* alert title */
|
||||
"Server operator changed." = "Оператор серверов изменен.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Server operators" = "Операторы серверов";
|
||||
|
||||
/* alert title */
|
||||
"Server protocol changed." = "Протокол сервера изменен.";
|
||||
|
||||
/* queue info */
|
||||
"server queue info: %@\n\nlast received msg: %@" = "информация сервера об очереди: %1$@\n\nпоследнее полученное сообщение: %2$@";
|
||||
|
||||
@@ -4118,9 +4385,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share 1-time link" = "Поделиться одноразовой ссылкой";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share 1-time link with a friend" = "Поделитесь одноразовой ссылкой с другом";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share address" = "Поделиться адресом";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share address publicly" = "Поделитесь адресом";
|
||||
|
||||
/* alert title */
|
||||
"Share address with contacts?" = "Поделиться адресом с контактами?";
|
||||
|
||||
@@ -4133,6 +4406,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share profile" = "Поделиться профилем";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share SimpleX address on social media." = "Поделитесь SimpleX адресом в социальных сетях.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share this 1-time invite link" = "Поделиться одноразовой ссылкой-приглашением";
|
||||
|
||||
@@ -4178,6 +4454,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Address" = "Адрес SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address and 1-time links are safe to share via any messenger." = "Адрес SimpleX и одноразовые ссылки безопасно отправлять через любой мессенджер.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address or 1-time link?" = "Адрес SimpleX или одноразовая ссылка?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat security was audited by Trail of Bits." = "Безопасность SimpleX Chat была проверена Trail of Bits.";
|
||||
|
||||
@@ -4253,6 +4535,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Some non-fatal errors occurred during import:" = "Во время импорта произошли некоторые ошибки:";
|
||||
|
||||
/* alert message */
|
||||
"Some servers failed the test:\n%@" = "Серверы не прошли тест:\n%@";
|
||||
|
||||
/* notification title */
|
||||
"Somebody" = "Контакт";
|
||||
|
||||
@@ -4355,6 +4640,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Нажмите кнопку ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Нажмите Создать адрес SimpleX в меню, чтобы создать его позже.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Нажмите, чтобы сделать профиль активным.";
|
||||
|
||||
@@ -4415,6 +4703,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "Приложение может посылать Вам уведомления о сообщениях и запросах на соединение - уведомления можно включить в Настройках.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The app protects your privacy by using different operators in each conversation." = "Приложение улучшает конфиденциальность используя разных операторов в каждом разговоре.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The app will ask to confirm downloads from unknown file servers (except .onion)." = "Приложение будет запрашивать подтверждение загрузки с неизвестных серверов (за исключением .onion адресов).";
|
||||
|
||||
@@ -4424,6 +4715,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The code you scanned is not a SimpleX link QR code." = "Этот QR код не является SimpleX-ccылкой.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The connection reached the limit of undelivered messages, your contact may be offline." = "Соединение достигло предела недоставленных сообщений. Возможно, Ваш контакт не в сети.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The connection you accepted will be cancelled!" = "Подтвержденное соединение будет отменено!";
|
||||
|
||||
@@ -4463,6 +4757,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The profile is only shared with your contacts." = "Профиль отправляется только Вашим контактам.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "Второй оператор серверов в приложении!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second tick we missed! ✅" = "Вторая галочка - знать, что доставлено! ✅";
|
||||
|
||||
@@ -4472,6 +4769,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new connections of your current chat profile **%@**." = "Серверы для новых соединений Вашего текущего профиля чата **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new files of your current chat profile **%@**." = "Серверы для новых файлов Вашего текущего профиля **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The text you pasted is not a SimpleX link." = "Вставленный текст не является SimpleX-ссылкой.";
|
||||
|
||||
@@ -4481,6 +4781,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Themes" = "Темы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"These conditions will also apply for: **%@**." = "Эти условия также будут применены к: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"These settings are for your current profile **%@**." = "Установки для Вашего активного профиля **%@**.";
|
||||
|
||||
@@ -4544,6 +4847,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To make a new connection" = "Чтобы соединиться";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To protect against your link being replaced, you can compare contact security codes." = "Чтобы защитить Вашу ссылку от замены, Вы можете сравнить код безопасности.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To protect timezone, image/voice files use UTC." = "Чтобы защитить Ваш часовой пояс, файлы картинок и голосовых сообщений используют UTC.";
|
||||
|
||||
@@ -4556,6 +4862,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To protect your privacy, SimpleX uses separate IDs for each of your contacts." = "Чтобы защитить Вашу конфиденциальность, SimpleX использует разные идентификаторы для каждого Вашeго контакта.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To receive" = "Для получения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To record speech please grant permission to use Microphone." = "Для записи речи, пожалуйста, дайте разрешение на использование микрофона.";
|
||||
|
||||
@@ -4568,9 +4877,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." = "Чтобы показать Ваш скрытый профиль, введите его пароль в поле поиска на странице **Ваши профили чата**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To send" = "Для оправки";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To support instant push notifications the chat database has to be migrated." = "Для поддержки мгновенный доставки уведомлений данные чата должны быть перемещены.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To use the servers of **%@**, accept conditions of use." = "Чтобы использовать серверы оператора **%@**, примите условия использования.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Чтобы подтвердить end-to-end шифрование с Вашим контактом сравните (или сканируйте) код безопасности на Ваших устройствах.";
|
||||
|
||||
@@ -4628,6 +4943,9 @@
|
||||
/* rcv group event chat item */
|
||||
"unblocked %@" = "%@ разблокирован";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Undelivered messages" = "Недоставленные сообщения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Unexpected migration state" = "Неожиданная ошибка при перемещении данных чата";
|
||||
|
||||
@@ -4745,12 +5063,21 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Use .onion hosts" = "Использовать .onion хосты";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use %@" = "Использовать %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use chat" = "Использовать чат";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use current profile" = "Использовать активный профиль";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use for files" = "Использовать для файлов";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use for messages" = "Использовать для сообщений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use for new connections" = "Использовать для новых соединений";
|
||||
|
||||
@@ -4775,6 +5102,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Use server" = "Использовать сервер";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use servers" = "Использовать серверы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use SimpleX Chat servers?" = "Использовать серверы предосталенные SimpleX Chat?";
|
||||
|
||||
@@ -4859,9 +5189,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Videos and files up to 1gb" = "Видео и файлы до 1гб";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"View conditions" = "Посмотреть условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"View security code" = "Показать код безопасности";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"View updated conditions" = "Посмотреть измененные условия";
|
||||
|
||||
/* chat feature */
|
||||
"Visible history" = "Доступ к истории";
|
||||
|
||||
@@ -4943,6 +5279,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"when IP hidden" = "когда IP защищен";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"When more than one operator is enabled, none of them has metadata to learn who communicates with whom." = "Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Когда Вы соединены с контактом инкогнито, тот же самый инкогнито профиль будет использоваться для групп с этим контактом.";
|
||||
|
||||
@@ -5006,6 +5345,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Вы уже соединены с контактом %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Вы уже соединены с %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Вы уже соединяетесь с %@.";
|
||||
|
||||
@@ -5051,6 +5393,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "Вы можете изменить это в настройках Интерфейса.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can configure operators in Network & servers settings." = "Вы можете настроить операторов в настройках Сеть и серверы.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can configure servers via settings." = "Вы можете настроить серверы позже.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Вы можете создать его позже";
|
||||
|
||||
@@ -5075,6 +5423,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can send messages to %@ from Archived contacts." = "Вы можете отправлять сообщения %@ из Архивированных контактов.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can set connection name, to remember who the link was shared with." = "Вы можете установить имя соединения, чтобы запомнить кому Вы отправили ссылку.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can set lock screen notification preview via settings." = "Вы можете установить просмотр уведомлений на экране блокировки в настройках.";
|
||||
|
||||
@@ -5195,6 +5546,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "Вы все равно получите звонки и уведомления в профилях без звука, когда они активные.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Вы прекратите получать сообщения в этом разговоре. История будет сохранена.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Вы перестанете получать сообщения от этой группы. История чата будет сохранена.";
|
||||
|
||||
@@ -5276,6 +5630,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Your server address" = "Адрес Вашего сервера";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Your servers" = "Ваши серверы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Your settings" = "Настройки";
|
||||
|
||||
|
||||
@@ -1469,24 +1469,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "ลิงค์กลุ่ม";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "สมาชิกกลุ่มสามารถส่งข้อความเสียง";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "ข้อความกลุ่ม:";
|
||||
|
||||
@@ -1853,6 +1835,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "สมาชิกจะถูกลบออกจากกลุ่ม - ไม่สามารถยกเลิกได้!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "สมาชิกกลุ่มสามารถส่งข้อความเสียง";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "ข้อผิดพลาดในการส่งข้อความ";
|
||||
|
||||
|
||||
@@ -2301,27 +2301,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Grup bağlantıları";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Grup üyeleri mesaj tepkileri ekleyebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Grup üyeleri doğrudan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Grup üyeleri kaybolan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Grup üyeleri dosyalar ve medya gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Grup üyeleri SimpleX bağlantıları gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Grup mesajı:";
|
||||
|
||||
@@ -2805,6 +2784,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Üye gruptan çıkarılacaktır - bu geri alınamaz!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Grup üyeleri mesaj tepkileri ekleyebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Grup üyeleri doğrudan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Grup üyeleri kaybolan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Grup üyeleri dosyalar ve medya gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Grup üyeleri SimpleX bağlantıları gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menüler";
|
||||
|
||||
|
||||
@@ -892,7 +892,7 @@
|
||||
"Change self-destruct passcode" = "Змінити пароль самознищення";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Зміна профілів користувачів";
|
||||
"Change chat profiles" = "Зміна профілів користувачів";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "змінили для вас адресу";
|
||||
@@ -2424,27 +2424,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Групові посилання";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Учасники групи можуть додавати реакції на повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Учасники групи можуть безповоротно видаляти надіслані повідомлення. (24 години)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Учасники групи можуть надсилати прямі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Учасники групи можуть надсилати зникаючі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Учасники групи можуть надсилати файли та медіа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Учасники групи можуть надсилати посилання SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Учасники групи можуть надсилати голосові повідомлення.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Групове повідомлення:";
|
||||
|
||||
@@ -2934,6 +2913,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Учасник буде видалений з групи - це неможливо скасувати!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Учасники групи можуть додавати реакції на повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Учасники групи можуть безповоротно видаляти надіслані повідомлення. (24 години)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Учасники групи можуть надсилати прямі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Учасники групи можуть надсилати зникаючі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Учасники групи можуть надсилати файли та медіа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Учасники групи можуть надсилати посилання SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Учасники групи можуть надсилати голосові повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Меню";
|
||||
|
||||
@@ -3672,7 +3672,7 @@
|
||||
"Push notifications" = "Push-повідомлення";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Push-сповіщення";
|
||||
"Push notifications" = "Push-сповіщення";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push-сервер";
|
||||
@@ -3949,10 +3949,10 @@
|
||||
"Safer groups" = "Безпечніші групи";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Такі ж умови діятимуть і для оператора **%@**.";
|
||||
"The same conditions will apply to operator **%@**." = "Такі ж умови діятимуть і для оператора **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Такі ж умови будуть застосовуватися до оператора(ів): **%@**.";
|
||||
"The same conditions will apply to operator(s): **%@**." = "Такі ж умови будуть застосовуватися до оператора(ів): **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
|
||||
@@ -2214,27 +2214,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "群组链接";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "群组成员可以添加信息回应。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "群组成员可以不可撤回地删除已发送的消息";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "群组成员可以私信。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "群组成员可以发送限时消息。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "群组成员可以发送文件和媒体。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "群成员可发送 SimpleX 链接。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "群组成员可以发送语音消息。";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "群组消息:";
|
||||
|
||||
@@ -2712,6 +2691,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "成员将被移出群组——此操作无法撤消!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "群组成员可以添加信息回应。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "群组成员可以不可撤回地删除已发送的消息";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "群组成员可以私信。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "群组成员可以发送限时消息。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "群组成员可以发送文件和媒体。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "群成员可发送 SimpleX 链接。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "群组成员可以发送语音消息。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "菜单";
|
||||
|
||||
|
||||
+24
-18
@@ -33,6 +33,7 @@ import com.google.accompanist.permissions.rememberPermissionState
|
||||
import com.google.common.util.concurrent.ListenableFuture
|
||||
import dev.icerock.moko.resources.compose.painterResource
|
||||
import dev.icerock.moko.resources.compose.stringResource
|
||||
import kotlinx.coroutines.delay
|
||||
import java.util.concurrent.*
|
||||
|
||||
// Adapted from learntodroid - https://gist.github.com/learntodroid/8f839be0b29d0378f843af70607bd7f5
|
||||
@@ -41,13 +42,13 @@ import java.util.concurrent.*
|
||||
actual fun QRCodeScanner(
|
||||
showQRCodeScanner: MutableState<Boolean>,
|
||||
padding: PaddingValues,
|
||||
onBarcode: (String) -> Unit
|
||||
onBarcode: suspend (String) -> Boolean
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
val lifecycleOwner = LocalLifecycleOwner.current
|
||||
var preview by remember { mutableStateOf<Preview?>(null) }
|
||||
var lastAnalyzedTimeStamp = 0L
|
||||
var contactLink = ""
|
||||
val preview = remember { mutableStateOf<Preview?>(null) }
|
||||
val contactLink = remember { mutableStateOf("") }
|
||||
val checkingLink = remember { mutableStateOf(false) }
|
||||
|
||||
val cameraProviderFuture by produceState<ListenableFuture<ProcessCameraProvider>?>(initialValue = null) {
|
||||
value = ProcessCameraProvider.getInstance(context)
|
||||
@@ -86,28 +87,33 @@ actual fun QRCodeScanner(
|
||||
.build()
|
||||
val cameraExecutor: ExecutorService = Executors.newSingleThreadExecutor()
|
||||
cameraProviderFuture?.addListener({
|
||||
preview = Preview.Builder().build().also {
|
||||
preview.value = Preview.Builder().build().also {
|
||||
it.setSurfaceProvider(previewView.surfaceProvider)
|
||||
}
|
||||
val detector: QrCodeDetector<GrayU8> = FactoryFiducial.qrcode(null, GrayU8::class.java)
|
||||
fun getQR(imageProxy: ImageProxy) {
|
||||
val currentTimeStamp = System.currentTimeMillis()
|
||||
if (currentTimeStamp - lastAnalyzedTimeStamp >= TimeUnit.SECONDS.toMillis(1)) {
|
||||
detector.process(imageProxyToGrayU8(imageProxy))
|
||||
val found = detector.detections
|
||||
val qr = found.firstOrNull()
|
||||
if (qr != null) {
|
||||
if (qr.message != contactLink) {
|
||||
// Make sure link is new and not a repeat
|
||||
contactLink = qr.message
|
||||
onBarcode(contactLink)
|
||||
suspend fun getQR(imageProxy: ImageProxy) {
|
||||
if (checkingLink.value) return
|
||||
checkingLink.value = true
|
||||
|
||||
detector.process(imageProxyToGrayU8(imageProxy))
|
||||
val found = detector.detections
|
||||
val qr = found.firstOrNull()
|
||||
if (qr != null) {
|
||||
if (qr.message != contactLink.value) {
|
||||
// Make sure link is new and not a repeat if that link was handled successfully
|
||||
if (onBarcode(qr.message)) {
|
||||
contactLink.value = qr.message
|
||||
}
|
||||
// just some delay to not spam endlessly with alert in case the user scan something wrong, and it fails fast
|
||||
// (for example, scan user's address while verifying contact code - it prevents alert spam)
|
||||
delay(1000)
|
||||
}
|
||||
}
|
||||
checkingLink.value = false
|
||||
imageProxy.close()
|
||||
}
|
||||
|
||||
val imageAnalyzer = ImageAnalysis.Analyzer { proxy -> getQR(proxy) }
|
||||
val imageAnalyzer = ImageAnalysis.Analyzer { proxy -> withApi { getQR(proxy) } }
|
||||
val imageAnalysis: ImageAnalysis = ImageAnalysis.Builder()
|
||||
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
|
||||
.setImageQueueDepth(1)
|
||||
@@ -115,7 +121,7 @@ actual fun QRCodeScanner(
|
||||
.also { it.setAnalyzer(cameraExecutor, imageAnalyzer) }
|
||||
try {
|
||||
cameraProviderFuture?.get()?.unbindAll()
|
||||
cameraProviderFuture?.get()?.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis)
|
||||
cameraProviderFuture?.get()?.bindToLifecycle(lifecycleOwner, cameraSelector, preview.value, imageAnalysis)
|
||||
} catch (e: Exception) {
|
||||
Log.d(TAG, "CameraPreview: ${e.localizedMessage}")
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ if(NOT APPLE)
|
||||
else()
|
||||
# Without direct linking it can't find hs_init in linking step
|
||||
add_library( rts SHARED IMPORTED )
|
||||
FILE(GLOB RTSLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/deps/libHSrts*_thr-*.${OS_LIB_EXT})
|
||||
FILE(GLOB RTSLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/libHSrts*_thr-*.${OS_LIB_EXT})
|
||||
set_target_properties( rts PROPERTIES IMPORTED_LOCATION ${RTSLIB})
|
||||
|
||||
target_link_libraries(app-lib rts simplex)
|
||||
|
||||
+3
-2
@@ -1546,8 +1546,9 @@ data class GroupProfile (
|
||||
|
||||
@Serializable
|
||||
data class BusinessChatInfo (
|
||||
val memberId: String,
|
||||
val chatType: BusinessChatType
|
||||
val chatType: BusinessChatType,
|
||||
val businessId: String,
|
||||
val customerId: String,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
|
||||
+13
-7
@@ -2436,9 +2436,7 @@ object ChatController {
|
||||
) {
|
||||
receiveFile(rhId, r.user, file.fileId, auto = true)
|
||||
}
|
||||
if (cItem.showNotification && (allowedToShowNotification() || chatModel.chatId.value != cInfo.id || chatModel.remoteHostId() != rhId)) {
|
||||
ntfManager.notifyMessageReceived(r.user, cInfo, cItem)
|
||||
}
|
||||
ntfManager.notifyMessageReceived(rhId, r.user, cInfo, cItem)
|
||||
}
|
||||
}
|
||||
is CR.ChatItemsStatusesUpdated ->
|
||||
@@ -2452,7 +2450,7 @@ object ChatController {
|
||||
}
|
||||
}
|
||||
is CR.ChatItemUpdated ->
|
||||
chatItemSimpleUpdate(rhId, r.user, r.chatItem)
|
||||
chatItemUpdateNotify(rhId, r.user, r.chatItem)
|
||||
is CR.ChatItemReaction -> {
|
||||
if (active(r.user)) {
|
||||
withChats {
|
||||
@@ -2950,9 +2948,17 @@ object ChatController {
|
||||
}
|
||||
|
||||
private suspend fun chatItemSimpleUpdate(rh: Long?, user: UserLike, aChatItem: AChatItem) {
|
||||
if (activeUser(rh, user)) {
|
||||
val cInfo = aChatItem.chatInfo
|
||||
val cItem = aChatItem.chatItem
|
||||
withChats { upsertChatItem(rh, cInfo, cItem) }
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun chatItemUpdateNotify(rh: Long?, user: UserLike, aChatItem: AChatItem) {
|
||||
val cInfo = aChatItem.chatInfo
|
||||
val cItem = aChatItem.chatItem
|
||||
val notify = { ntfManager.notifyMessageReceived(user, cInfo, cItem) }
|
||||
val notify = { ntfManager.notifyMessageReceived(rh, user, cInfo, cItem) }
|
||||
if (!activeUser(rh, user)) {
|
||||
notify()
|
||||
} else if (withChats { upsertChatItem(rh, cInfo, cItem) }) {
|
||||
@@ -6498,7 +6504,7 @@ sealed class SQLiteError {
|
||||
@Serializable
|
||||
sealed class AgentErrorType {
|
||||
val string: String get() = when (this) {
|
||||
is CMD -> "CMD ${cmdErr.string}"
|
||||
is CMD -> "CMD ${cmdErr.string} $errContext"
|
||||
is CONN -> "CONN ${connErr.string}"
|
||||
is SMP -> "SMP ${smpErr.string}"
|
||||
// is NTF -> "NTF ${ntfErr.string}"
|
||||
@@ -6511,7 +6517,7 @@ sealed class AgentErrorType {
|
||||
is CRITICAL -> "CRITICAL $offerRestart $criticalErr"
|
||||
is INACTIVE -> "INACTIVE"
|
||||
}
|
||||
@Serializable @SerialName("CMD") class CMD(val cmdErr: CommandErrorType): AgentErrorType()
|
||||
@Serializable @SerialName("CMD") class CMD(val cmdErr: CommandErrorType, val errContext: String): AgentErrorType()
|
||||
@Serializable @SerialName("CONN") class CONN(val connErr: ConnectionErrorType): AgentErrorType()
|
||||
@Serializable @SerialName("SMP") class SMP(val serverAddress: String, val smpErr: SMPErrorType): AgentErrorType()
|
||||
// @Serializable @SerialName("NTF") class NTF(val ntfErr: SMPErrorType): AgentErrorType()
|
||||
|
||||
+11
-3
@@ -36,9 +36,17 @@ abstract class NtfManager {
|
||||
)
|
||||
)
|
||||
|
||||
fun notifyMessageReceived(user: UserLike, cInfo: ChatInfo, cItem: ChatItem) {
|
||||
if (!cInfo.ntfsEnabled) return
|
||||
displayNotification(user = user, chatId = cInfo.id, displayName = cInfo.displayName, msgText = hideSecrets(cItem))
|
||||
fun notifyMessageReceived(rhId: Long?, user: UserLike, cInfo: ChatInfo, cItem: ChatItem) {
|
||||
if (
|
||||
cItem.showNotification &&
|
||||
cInfo.ntfsEnabled &&
|
||||
(
|
||||
allowedToShowNotification() ||
|
||||
chatModel.chatId.value != cInfo.id ||
|
||||
chatModel.remoteHostId() != rhId)
|
||||
) {
|
||||
displayNotification(user = user, chatId = cInfo.id, displayName = cInfo.displayName, msgText = hideSecrets(cItem))
|
||||
}
|
||||
}
|
||||
|
||||
fun acceptContactRequestAction(userId: Long?, incognito: Boolean, chatId: ChatId) {
|
||||
|
||||
+9
-9
@@ -13,19 +13,19 @@ import chat.simplex.res.MR
|
||||
import dev.icerock.moko.resources.compose.stringResource
|
||||
|
||||
@Composable
|
||||
fun ScanCodeView(verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit, close: () -> Unit) {
|
||||
fun ScanCodeView(verifyCode: suspend (String?) -> Boolean, close: () -> Unit) {
|
||||
ColumnWithScrollBar {
|
||||
AppBarTitle(stringResource(MR.strings.scan_code))
|
||||
QRCodeScanner { text ->
|
||||
verifyCode(text) {
|
||||
if (it) {
|
||||
close()
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.incorrect_code)
|
||||
)
|
||||
}
|
||||
val success = verifyCode(text)
|
||||
if (success) {
|
||||
close()
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.incorrect_code)
|
||||
)
|
||||
}
|
||||
success
|
||||
}
|
||||
Text(stringResource(MR.strings.scan_code_from_contacts_app), Modifier.padding(horizontal = DEFAULT_PADDING))
|
||||
SectionBottomSpacer()
|
||||
|
||||
+12
-11
@@ -35,14 +35,14 @@ fun VerifyCodeView(
|
||||
displayName,
|
||||
connectionCode,
|
||||
connectionVerified,
|
||||
verifyCode = { newCode, cb ->
|
||||
withBGApi {
|
||||
val res = verify(newCode)
|
||||
if (res != null) {
|
||||
val (verified) = res
|
||||
cb(verified)
|
||||
if (verified) close()
|
||||
}
|
||||
verifyCode = { newCode ->
|
||||
val res = verify(newCode)
|
||||
if (res != null) {
|
||||
val (verified) = res
|
||||
if (verified) close()
|
||||
verified
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
)
|
||||
@@ -54,7 +54,7 @@ private fun VerifyCodeLayout(
|
||||
displayName: String,
|
||||
connectionCode: String,
|
||||
connectionVerified: Boolean,
|
||||
verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit,
|
||||
verifyCode: suspend (String?) -> Boolean,
|
||||
) {
|
||||
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING)) {
|
||||
AppBarTitle(stringResource(MR.strings.security_code), withPadding = false)
|
||||
@@ -100,7 +100,7 @@ private fun VerifyCodeLayout(
|
||||
) {
|
||||
if (connectionVerified) {
|
||||
SimpleButton(generalGetString(MR.strings.clear_verification), painterResource(MR.images.ic_shield)) {
|
||||
verifyCode(null) {}
|
||||
withApi { verifyCode(null) }
|
||||
}
|
||||
} else {
|
||||
if (appPlatform.isAndroid) {
|
||||
@@ -111,7 +111,8 @@ private fun VerifyCodeLayout(
|
||||
}
|
||||
}
|
||||
SimpleButton(generalGetString(MR.strings.mark_code_verified), painterResource(MR.images.ic_verified_user)) {
|
||||
verifyCode(connectionCode) { verified ->
|
||||
withApi {
|
||||
val verified = verifyCode(connectionCode)
|
||||
if (!verified) {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.incorrect_code)
|
||||
|
||||
+1
-1
@@ -347,7 +347,7 @@ fun ChatPreviewView(
|
||||
chatItemContentPreview(chat, ci)
|
||||
}
|
||||
if (mc !is MsgContent.MCVoice || !showContentPreview || mc.text.isNotEmpty() || chatModelDraftChatId == chat.id) {
|
||||
Box(Modifier.offset(x = if (mc is MsgContent.MCFile) -15.sp.toDp() else 0.dp)) {
|
||||
Box(Modifier.offset(x = if (mc is MsgContent.MCFile && ci.meta.itemDeleted == null) -15.sp.toDp() else 0.dp)) {
|
||||
chatPreviewText()
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -203,7 +203,7 @@ private fun MutableState<MigrationToState?>.PasteOrScanLinkView(close: () -> Uni
|
||||
if (appPlatform.isAndroid) {
|
||||
SectionView(stringResource(MR.strings.scan_QR_code).replace('\n', ' ').uppercase()) {
|
||||
QRCodeScanner(showQRCodeScanner = remember { mutableStateOf(true) }) { text ->
|
||||
withBGApi { checkUserLink(text) }
|
||||
checkUserLink(text)
|
||||
}
|
||||
}
|
||||
SectionSpacer()
|
||||
@@ -518,8 +518,8 @@ private fun ProgressView() {
|
||||
DefaultProgressView(null)
|
||||
}
|
||||
|
||||
private suspend fun MutableState<MigrationToState?>.checkUserLink(link: String) {
|
||||
if (strHasSimplexFileLink(link.trim())) {
|
||||
private suspend fun MutableState<MigrationToState?>.checkUserLink(link: String): Boolean {
|
||||
return if (strHasSimplexFileLink(link.trim())) {
|
||||
val data = MigrationFileLinkData.readFromLink(link)
|
||||
val hasProxyConfigured = data?.networkConfig?.hasProxyConfigured() ?: false
|
||||
val networkConfig = data?.networkConfig?.transformToPlatformSupported()
|
||||
@@ -537,11 +537,13 @@ private suspend fun MutableState<MigrationToState?>.checkUserLink(link: String)
|
||||
networkProxy = null
|
||||
)
|
||||
}
|
||||
true
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.invalid_file_link),
|
||||
text = generalGetString(MR.strings.the_text_you_pasted_is_not_a_link)
|
||||
)
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+16
-3
@@ -12,6 +12,7 @@ import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.views.chatlist.*
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.res.MR
|
||||
import kotlinx.coroutines.*
|
||||
import java.net.URI
|
||||
|
||||
enum class ConnectionLinkType {
|
||||
@@ -26,8 +27,18 @@ suspend fun planAndConnect(
|
||||
cleanup: (() -> Unit)? = null,
|
||||
filterKnownContact: ((Contact) -> Unit)? = null,
|
||||
filterKnownGroup: ((GroupInfo) -> Unit)? = null,
|
||||
) {
|
||||
val connectionPlan = chatModel.controller.apiConnectPlan(rhId, uri.toString())
|
||||
): CompletableDeferred<Boolean> {
|
||||
val completable = CompletableDeferred<Boolean>()
|
||||
val close: (() -> Unit)? = {
|
||||
close?.invoke()
|
||||
// if close was called, it means the connection was created
|
||||
completable.complete(true)
|
||||
}
|
||||
val cleanup: (() -> Unit)? = {
|
||||
cleanup?.invoke()
|
||||
completable.complete(!completable.isActive)
|
||||
}
|
||||
val connectionPlan = chatModel.controller.apiConnectPlan(rhId, uri)
|
||||
if (connectionPlan != null) {
|
||||
val link = strHasSingleSimplexLink(uri.trim())
|
||||
val linkText = if (link?.format is Format.SimplexLink)
|
||||
@@ -333,6 +344,7 @@ suspend fun planAndConnect(
|
||||
)
|
||||
}
|
||||
}
|
||||
return completable
|
||||
}
|
||||
|
||||
suspend fun connectViaUri(
|
||||
@@ -343,7 +355,7 @@ suspend fun connectViaUri(
|
||||
connectionPlan: ConnectionPlan?,
|
||||
close: (() -> Unit)?,
|
||||
cleanup: (() -> Unit)?,
|
||||
) {
|
||||
): Boolean {
|
||||
val pcc = chatModel.controller.apiConnect(rhId, incognito, uri)
|
||||
val connLinkType = if (connectionPlan != null) planToConnectionLinkType(connectionPlan) else ConnectionLinkType.INVITATION
|
||||
if (pcc != null) {
|
||||
@@ -363,6 +375,7 @@ suspend fun connectViaUri(
|
||||
)
|
||||
}
|
||||
cleanup?.invoke()
|
||||
return pcc != null
|
||||
}
|
||||
|
||||
fun planToConnectionLinkType(connectionPlan: ConnectionPlan): ConnectionLinkType {
|
||||
|
||||
+16
-16
@@ -38,8 +38,7 @@ import chat.simplex.common.views.chat.topPaddingToContent
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.common.views.usersettings.*
|
||||
import chat.simplex.res.MR
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.*
|
||||
import java.net.URI
|
||||
|
||||
enum class NewChatOption {
|
||||
@@ -559,15 +558,14 @@ private fun ConnectView(rhId: Long?, showQRCodeScanner: MutableState<Boolean>, p
|
||||
|
||||
SectionView(stringResource(MR.strings.or_scan_qr_code).uppercase(), headerBottomPadding = 5.dp) {
|
||||
QRCodeScanner(showQRCodeScanner) { text ->
|
||||
withBGApi {
|
||||
val res = verify(rhId, text, close)
|
||||
if (!res) {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.invalid_qr_code),
|
||||
text = generalGetString(MR.strings.code_you_scanned_is_not_simplex_link_qr_code)
|
||||
)
|
||||
}
|
||||
val linkVerified = verifyOnly(text)
|
||||
if (!linkVerified) {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.invalid_qr_code),
|
||||
text = generalGetString(MR.strings.code_you_scanned_is_not_simplex_link_qr_code)
|
||||
)
|
||||
}
|
||||
verifyAndConnect(rhId, text, close)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -656,23 +654,25 @@ private fun filteredProfiles(users: List<User>, searchTextOrPassword: String): L
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun verify(rhId: Long?, text: String?, close: () -> Unit): Boolean {
|
||||
private fun verifyOnly(text: String?): Boolean = text != null && strIsSimplexLink(text)
|
||||
|
||||
private suspend fun verifyAndConnect(rhId: Long?, text: String?, close: () -> Unit): Boolean {
|
||||
if (text != null && strIsSimplexLink(text)) {
|
||||
connect(rhId, text, close)
|
||||
return true
|
||||
return withContext(Dispatchers.Default) {
|
||||
connect(rhId, text, close)
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
private suspend fun connect(rhId: Long?, link: String, close: () -> Unit, cleanup: (() -> Unit)? = null) {
|
||||
private suspend fun connect(rhId: Long?, link: String, close: () -> Unit, cleanup: (() -> Unit)? = null): Boolean =
|
||||
planAndConnect(
|
||||
rhId,
|
||||
link,
|
||||
close = close,
|
||||
cleanup = cleanup,
|
||||
incognito = null
|
||||
)
|
||||
}
|
||||
).await()
|
||||
|
||||
private fun createInvitation(
|
||||
rhId: Long?,
|
||||
|
||||
+1
-1
@@ -10,5 +10,5 @@ import chat.simplex.common.ui.theme.DEFAULT_PADDING_HALF
|
||||
expect fun QRCodeScanner(
|
||||
showQRCodeScanner: MutableState<Boolean> = remember { mutableStateOf(true) },
|
||||
padding: PaddingValues = PaddingValues(horizontal = DEFAULT_PADDING * 2f, vertical = DEFAULT_PADDING_HALF),
|
||||
onBarcode: (String) -> Unit
|
||||
onBarcode: suspend (String) -> Boolean
|
||||
)
|
||||
|
||||
+1
@@ -342,6 +342,7 @@ private fun ChooseServerOperatorsInfoView() {
|
||||
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING)) {
|
||||
AppBarTitle(stringResource(MR.strings.onboarding_network_operators), withPadding = false)
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_different_operators))
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_cant_see_who_talks_to_whom))
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_for_routing))
|
||||
SectionBottomSpacer()
|
||||
}
|
||||
|
||||
+1
-1
@@ -181,7 +181,7 @@ fun OnboardingInformationButton(
|
||||
.clip(CircleShape)
|
||||
.clickable { onClick() }
|
||||
) {
|
||||
Row(Modifier.padding(8.dp), horizontalArrangement = Arrangement.spacedBy(4.dp) ) {
|
||||
Row(Modifier.padding(8.dp), horizontalArrangement = Arrangement.spacedBy(4.dp)) {
|
||||
Icon(
|
||||
painterResource(MR.images.ic_info),
|
||||
null,
|
||||
|
||||
+38
-37
@@ -40,6 +40,8 @@ import chat.simplex.res.MR
|
||||
import dev.icerock.moko.resources.ImageResource
|
||||
import dev.icerock.moko.resources.compose.painterResource
|
||||
import dev.icerock.moko.resources.compose.stringResource
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@Composable
|
||||
fun ConnectDesktopView(close: () -> Unit) {
|
||||
@@ -233,7 +235,7 @@ private fun FoundDesktop(
|
||||
SectionSpacer()
|
||||
|
||||
if (compatible) {
|
||||
SectionItemView({ confirmKnownDesktop(sessionAddress, rc) }) {
|
||||
SectionItemView({ withBGApi { confirmKnownDesktop(sessionAddress, rc) } }) {
|
||||
Icon(painterResource(MR.images.ic_check), generalGetString(MR.strings.connect_button), tint = MaterialTheme.colors.secondary)
|
||||
TextIconSpaced(false)
|
||||
Text(generalGetString(MR.strings.connect_button))
|
||||
@@ -356,7 +358,7 @@ private fun ScanDesktopAddressView(sessionAddress: MutableState<String>) {
|
||||
SectionView(stringResource(MR.strings.scan_qr_code_from_desktop).uppercase()) {
|
||||
QRCodeScanner { text ->
|
||||
sessionAddress.value = text
|
||||
processDesktopQRCode(sessionAddress, text)
|
||||
connectDesktopAddress(sessionAddress, text)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -398,7 +400,7 @@ private fun DesktopAddressView(sessionAddress: MutableState<String>) {
|
||||
stringResource(MR.strings.connect_to_desktop),
|
||||
disabled = sessionAddress.value.isEmpty(),
|
||||
click = {
|
||||
connectDesktopAddress(sessionAddress, sessionAddress.value)
|
||||
withBGApi { connectDesktopAddress(sessionAddress, sessionAddress.value) }
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -461,10 +463,6 @@ private suspend fun updateRemoteCtrls(remoteCtrls: SnapshotStateList<RemoteCtrlI
|
||||
}
|
||||
}
|
||||
|
||||
private fun processDesktopQRCode(sessionAddress: MutableState<String>, resp: String) {
|
||||
connectDesktopAddress(sessionAddress, resp)
|
||||
}
|
||||
|
||||
private fun findKnownDesktop(showConnectScreen: MutableState<Boolean>) {
|
||||
withBGApi {
|
||||
if (controller.findKnownRemoteCtrl()) {
|
||||
@@ -478,45 +476,48 @@ private fun findKnownDesktop(showConnectScreen: MutableState<Boolean>) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun confirmKnownDesktop(sessionAddress: MutableState<String>, rc: RemoteCtrlInfo) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.confirmRemoteCtrl(rc.remoteCtrlId)
|
||||
private suspend fun confirmKnownDesktop(sessionAddress: MutableState<String>, rc: RemoteCtrlInfo): Boolean {
|
||||
return withContext(Dispatchers.Default) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.confirmRemoteCtrl(rc.remoteCtrlId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun connectDesktopAddress(sessionAddress: MutableState<String>, addr: String) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.connectRemoteCtrl(addr)
|
||||
private suspend fun connectDesktopAddress(sessionAddress: MutableState<String>, addr: String): Boolean {
|
||||
return withContext(Dispatchers.Default) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.connectRemoteCtrl(addr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun connectDesktop(sessionAddress: MutableState<String>, connect: suspend () -> Pair<SomeRemoteCtrl?, CR.ChatCmdError?>) {
|
||||
withBGApi {
|
||||
val res = connect()
|
||||
if (res.first != null) {
|
||||
val (rc_, ctrlAppInfo, v) = res.first!!
|
||||
sessionAddress.value = ""
|
||||
chatModel.remoteCtrlSession.value = RemoteCtrlSession(
|
||||
ctrlAppInfo = ctrlAppInfo,
|
||||
appVersion = v,
|
||||
sessionState = UIRemoteCtrlSessionState.Connecting(remoteCtrl_ = rc_)
|
||||
)
|
||||
} else {
|
||||
val e = res.second ?: return@withBGApi
|
||||
when {
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadInvitation -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorChat && e.chatError.errorType is ChatErrorType.CommandError -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadVersion -> showBadVersionAlert(v = e.chatError.remoteCtrlError.appVersion)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.VERSION -> showBadVersionAlert(v = null)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.CTRL_AUTH -> showDesktopDisconnectedErrorAlert()
|
||||
else -> {
|
||||
val errMsg = "${e.responseType}: ${e.details}"
|
||||
Log.e(TAG, "bad response: $errMsg")
|
||||
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error), errMsg)
|
||||
}
|
||||
private suspend fun connectDesktop(sessionAddress: MutableState<String>, connect: suspend () -> Pair<SomeRemoteCtrl?, CR.ChatCmdError?>): Boolean {
|
||||
val res = connect()
|
||||
if (res.first != null) {
|
||||
val (rc_, ctrlAppInfo, v) = res.first!!
|
||||
sessionAddress.value = ""
|
||||
chatModel.remoteCtrlSession.value = RemoteCtrlSession(
|
||||
ctrlAppInfo = ctrlAppInfo,
|
||||
appVersion = v,
|
||||
sessionState = UIRemoteCtrlSessionState.Connecting(remoteCtrl_ = rc_)
|
||||
)
|
||||
} else {
|
||||
val e = res.second ?: return false
|
||||
when {
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadInvitation -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorChat && e.chatError.errorType is ChatErrorType.CommandError -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadVersion -> showBadVersionAlert(v = e.chatError.remoteCtrlError.appVersion)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.VERSION -> showBadVersionAlert(v = null)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.CTRL_AUTH -> showDesktopDisconnectedErrorAlert()
|
||||
else -> {
|
||||
val errMsg = "${e.responseType}: ${e.details}"
|
||||
Log.e(TAG, "bad response: $errMsg")
|
||||
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error), errMsg)
|
||||
}
|
||||
}
|
||||
}
|
||||
return res.first != null
|
||||
}
|
||||
|
||||
private fun verifyDesktopSessionCode(remoteCtrls: SnapshotStateList<RemoteCtrlInfo>, sessCode: String) {
|
||||
|
||||
+1
@@ -26,6 +26,7 @@ fun ScanProtocolServerLayout(rhId: Long?, onNext: (UserServer) -> Unit) {
|
||||
text = generalGetString(MR.strings.smp_servers_check_address)
|
||||
)
|
||||
}
|
||||
res != null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">لا يمكن التراجع عن هذا الإجراء - سيتم فقد ملف التعريف وجهات الاتصال والرسائل والملفات الخاصة بك بشكل نهائي.</string>
|
||||
<string name="alert_message_no_group">هذه المجموعة لم تعد موجودة.</string>
|
||||
<string name="this_QR_code_is_not_a_link">رمز QR هذا ليس رابطًا!</string>
|
||||
<string name="next_generation_of_private_messaging">الجيل القادم من
|
||||
\nالرسائل الخاصة</string>
|
||||
<string name="next_generation_of_private_messaging">الجيل القادم من \nالرسائل الخاصة</string>
|
||||
<string name="delete_files_and_media_desc">لا يمكن التراجع عن هذا الإجراء - سيتم حذف جميع الملفات والوسائط المستلمة والمرسلة. ستبقى الصور منخفضة الدقة.</string>
|
||||
<string name="enable_automatic_deletion_message">لا يمكن التراجع عن هذا الإجراء - سيتم حذف الرسائل المرسلة والمستلمة قبل التحديد. قد تأخذ عدة دقائق.</string>
|
||||
<string name="messages_section_description">ينطبق هذا الإعداد على الرسائل الموجودة في ملف تعريف الدردشة الحالي الخاص بك</string>
|
||||
|
||||
@@ -1075,8 +1075,9 @@
|
||||
<!-- ChooseServerOperators.kt -->
|
||||
<string name="onboarding_choose_server_operators">Server operators</string>
|
||||
<string name="onboarding_network_operators">Network operators</string>
|
||||
<string name="onboarding_network_operators_app_will_use_different_operators">When more than one network operator is enabled, the app will use the servers of different operators for each conversation.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_for_routing">For example, if you receive messages via SimpleX Chat server, the app will use one of Flux servers for private routing.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_different_operators">The app protects your privacy by using different operators in each conversation.</string>
|
||||
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">When more than one operator is enabled, none of them has metadata to learn who communicates with whom.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_for_routing">For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</string>
|
||||
<string name="onboarding_select_network_operators_to_use">Select network operators to use.</string>
|
||||
<string name="how_it_helps_privacy">How it helps privacy</string>
|
||||
<string name="onboarding_network_operators_configure_via_settings">You can configure servers via settings.</string>
|
||||
@@ -1745,10 +1746,10 @@
|
||||
<string name="use_servers_of_operator_x">Use %s</string>
|
||||
<string name="operator_conditions_failed_to_load">Current conditions text couldn\'t be loaded, you can review conditions via this link:</string>
|
||||
<string name="operator_conditions_accepted_for_some"><![CDATA[Conditions are already accepted for following operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[Same conditions will apply to operator <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Same conditions will apply to operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[The same conditions will apply to operator <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[The same conditions will apply to operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_will_be_applied"><![CDATA[These conditions will also apply for: <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[Same conditions will apply to operator: <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[The same conditions will apply to operator: <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Conditions will be accepted for operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operators_conditions_will_also_apply"><![CDATA[These conditions will also apply for: <b>%s</b>.]]></string>
|
||||
<string name="view_conditions">View conditions</string>
|
||||
|
||||
@@ -462,8 +462,7 @@
|
||||
<string name="callstate_connected">Verbunden</string>
|
||||
<string name="callstate_ended">Beendet</string>
|
||||
<!-- SimpleXInfo -->
|
||||
<string name="next_generation_of_private_messaging">Die nächste Generation
|
||||
\ndes privaten Messagings</string>
|
||||
<string name="next_generation_of_private_messaging">Die nächste Generation \ndes privaten Messagings</string>
|
||||
<string name="privacy_redefined">Datenschutz neu definiert</string>
|
||||
<string name="first_platform_without_user_ids">Keine Benutzerkennungen.</string>
|
||||
<string name="immune_to_spam_and_abuse">Immun gegen Spam</string>
|
||||
|
||||
@@ -737,8 +737,7 @@
|
||||
<string name="connection_you_accepted_will_be_cancelled">¡La conexión que has aceptado se cancelará!</string>
|
||||
<string name="database_initialization_error_desc">La base de datos no funciona correctamente. Pulsa para conocer más</string>
|
||||
<string name="moderate_message_will_be_marked_warning">El mensaje será marcado como moderado para todos los miembros.</string>
|
||||
<string name="next_generation_of_private_messaging">La nueva generación
|
||||
\nde mensajería privada</string>
|
||||
<string name="next_generation_of_private_messaging">La nueva generación \nde mensajería privada</string>
|
||||
<string name="delete_files_and_media_desc">Esta acción es irreversible. Se eliminarán todos los archivos y multimedia recibidos y enviados. Las imágenes de baja resolución permanecerán.</string>
|
||||
<string name="enable_automatic_deletion_message">Esta acción es irreversible. Los mensajes enviados y recibidos anteriores a la selección serán eliminados. Podría tardar varios minutos.</string>
|
||||
<string name="messages_section_description">Esta configuración se aplica a los mensajes del perfil actual</string>
|
||||
|
||||
@@ -438,8 +438,7 @@
|
||||
<string name="callstate_waiting_for_confirmation">en attente de confirmation…</string>
|
||||
<string name="callstate_connected">connecté</string>
|
||||
<string name="callstate_ended">terminé</string>
|
||||
<string name="next_generation_of_private_messaging">La nouvelle génération
|
||||
\nde messagerie privée</string>
|
||||
<string name="next_generation_of_private_messaging">La nouvelle génération \nde messagerie privée</string>
|
||||
<string name="privacy_redefined">La vie privée redéfinie</string>
|
||||
<string name="first_platform_without_user_ids">Aucun identifiant d\'utilisateur.</string>
|
||||
<string name="immune_to_spam_and_abuse">Protégé du spam</string>
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
<string name="allow_disappearing_messages_only_if">Az eltűnő üzenetek küldése csak abban az esetben van engedélyezve, ha az ismerőse is engedélyezi.</string>
|
||||
<string name="icon_descr_audio_off">Hang kikapcsolva</string>
|
||||
<string name="allow_direct_messages">A közvetlen üzenetek küldése a tagok között engedélyezve van.</string>
|
||||
<string name="settings_section_title_app">Alkalmazás</string>
|
||||
<string name="settings_section_title_app">ALKALMAZÁS</string>
|
||||
<string name="icon_descr_call_progress">Hívás folyamatban</string>
|
||||
<string name="both_you_and_your_contact_can_add_message_reactions">Mindkét fél küldhet üzenetreakciókat.</string>
|
||||
<string name="both_you_and_your_contact_can_make_calls">Mindkét fél tud hívásokat kezdeményezni.</string>
|
||||
@@ -360,7 +360,7 @@
|
||||
<string name="receipts_groups_disable_for_all">Letiltás az összes csoport számára</string>
|
||||
<string name="receipts_groups_enable_for_all">Engedélyezés az összes csoport számára</string>
|
||||
<string name="feature_enabled_for_contact">engedélyezve az ismerős számára</string>
|
||||
<string name="disappearing_messages_are_prohibited">Az eltűnő üzenetek küldése le van tiltva ebben a csoportban.</string>
|
||||
<string name="disappearing_messages_are_prohibited">Az eltűnő üzenetek küldése le van tiltva.</string>
|
||||
<string name="delete_address">Cím törlése</string>
|
||||
<string name="ttl_week">%d hét</string>
|
||||
<string name="desktop_address">Számítógép címe</string>
|
||||
@@ -547,15 +547,15 @@
|
||||
<string name="from_gallery_button">A galériából</string>
|
||||
<string name="receipts_groups_enable_keep_overrides">Engedélyezés (csoport felülírások megtartásával)</string>
|
||||
<string name="error_deleting_contact">Hiba az ismerős törlésekor</string>
|
||||
<string name="group_members_can_delete">A csoport tagjai véglegesen törölhetik az elküldött üzeneteiket. (24 óra)</string>
|
||||
<string name="group_members_can_delete">A tagok véglegesen törölhetik az elküldött üzeneteiket. (24 óra)</string>
|
||||
<string name="error_changing_role">Hiba a szerepkör megváltoztatásakor</string>
|
||||
<string name="fix_connection_confirm">Javítás</string>
|
||||
<string name="group_members_can_send_disappearing">A csoport tagjai küldhetnek eltűnő üzeneteket.</string>
|
||||
<string name="group_members_can_send_disappearing">A tagok küldhetnek eltűnő üzeneteket.</string>
|
||||
<string name="fix_connection">Kapcsolat javítása</string>
|
||||
<string name="failed_to_create_user_title">Hiba a profil létrehozásakor!</string>
|
||||
<string name="error_adding_members">Hiba a tag(ok) hozzáadásakor</string>
|
||||
<string name="icon_descr_file">Fájl</string>
|
||||
<string name="group_members_can_send_files">A csoport tagjai küldhetnek fájlokat és médiatartalmakat.</string>
|
||||
<string name="group_members_can_send_files">A tagok küldhetnek fájlokat és médiatartalmakat.</string>
|
||||
<string name="delete_after">Törlés ennyi idő után</string>
|
||||
<string name="error_changing_message_deletion">Hiba a beállítás megváltoztatásakor</string>
|
||||
<string name="error_updating_link_for_group">Hiba a csoporthivatkozás frissítésekor</string>
|
||||
@@ -565,7 +565,7 @@
|
||||
<string name="error_importing_database">Hiba a csevegési adatbázis importálásakor</string>
|
||||
<string name="error_enabling_delivery_receipts">Hiba a kézbesítési jelentések engedélyezésekor!</string>
|
||||
<string name="error_saving_xftp_servers">Hiba az XFTP-kiszolgálók mentésekor</string>
|
||||
<string name="group_members_can_send_dms">A csoport tagjai küldhetnek egymásnak közvetlen üzeneteket.</string>
|
||||
<string name="group_members_can_send_dms">A tagok küldhetnek egymásnak közvetlen üzeneteket.</string>
|
||||
<string name="error_removing_member">Hiba a tag eltávolításakor</string>
|
||||
<string name="callstate_ended">befejeződött</string>
|
||||
<string name="v4_6_group_welcome_message">A csoport üdvözlőüzenete</string>
|
||||
@@ -589,7 +589,7 @@
|
||||
<string name="fix_connection_not_supported_by_contact">Ismerős általi javítás nem támogatott</string>
|
||||
<string name="file_not_found">Fájl nem található</string>
|
||||
<string name="smp_server_test_disconnect">Kapcsolat bontása</string>
|
||||
<string name="group_members_can_add_message_reactions">A csoport tagjai üzenetreakciókat adhatnak hozzá.</string>
|
||||
<string name="group_members_can_add_message_reactions">A tagok reakciókat adhatnak hozzá az üzenetekhez.</string>
|
||||
<string name="export_database">Adatbázis exportálása</string>
|
||||
<string name="full_name__field">Teljes név:</string>
|
||||
<string name="v4_6_reduced_battery_usage">Tovább csökkentett akkumulátor-használat</string>
|
||||
@@ -600,7 +600,7 @@
|
||||
<string name="error_deleting_database">Hiba a csevegési adatbázis törlésekor</string>
|
||||
<string name="simplex_link_mode_full">Teljes hivatkozás</string>
|
||||
<string name="error_changing_address">Hiba a cím megváltoztatásakor</string>
|
||||
<string name="group_members_can_send_voice">A csoport tagjai küldhetnek hangüzeneteket.</string>
|
||||
<string name="group_members_can_send_voice">A tagok küldhetnek hangüzeneteket.</string>
|
||||
<string name="group_preferences">Csoportbeállítások</string>
|
||||
<string name="error_with_info">Hiba: %s</string>
|
||||
<string name="v4_4_disappearing_messages">Eltűnő üzenetek</string>
|
||||
@@ -614,7 +614,7 @@
|
||||
<string name="conn_event_ratchet_sync_required">titkosítás-újraegyeztetés szükséges</string>
|
||||
<string name="v4_6_hidden_chat_profiles">Rejtett csevegési profilok</string>
|
||||
<string name="files_and_media_section">Fájlok és médiatartalmak</string>
|
||||
<string name="image_saved">A kép mentve a „Galériába”</string>
|
||||
<string name="image_saved">A kép elmentve a „Galériába”</string>
|
||||
<string name="hide_notification">Elrejtés</string>
|
||||
<string name="la_immediately">Azonnal</string>
|
||||
<string name="files_and_media_prohibited">A fájlok- és a médiatartalmak küldése le van tiltva!</string>
|
||||
@@ -657,7 +657,7 @@
|
||||
<string name="service_notifications_disabled">Az azonnali értesítések le vannak tiltva!</string>
|
||||
<string name="service_notifications">Azonnali értesítések!</string>
|
||||
<string name="image_descr">Kép</string>
|
||||
<string name="files_are_prohibited_in_group">A fájlok- és a médiatartalmak le vannak tiltva ebben a csoportban.</string>
|
||||
<string name="files_are_prohibited_in_group">A fájlok- és a médiatartalmak küldése le van tiltva.</string>
|
||||
<string name="how_it_works">Hogyan működik</string>
|
||||
<string name="hide_dev_options">Elrejtés:</string>
|
||||
<string name="error_creating_member_contact">Hiba az ismerőssel történő kapcsolat létrehozásában</string>
|
||||
@@ -721,11 +721,11 @@
|
||||
<string name="v5_3_new_desktop_app">Új számítógép-alkalmazás!</string>
|
||||
<string name="v4_6_group_moderation_descr">Most már az adminisztrátorok is:\n- törölhetik a tagok üzeneteit.\n- letilthatnak tagokat (megfigyelő szerepkör)</string>
|
||||
<string name="rcv_group_event_member_added">meghívta őt: %1$s</string>
|
||||
<string name="message_reactions_are_prohibited">Az üzenetreakciók küldése le van tiltva ebben a csoportban.</string>
|
||||
<string name="message_reactions_are_prohibited">A reakciók küldése az üzenetekre le van tiltva.</string>
|
||||
<string name="network_use_onion_hosts_no">Nem</string>
|
||||
<string name="item_info_no_text">nincs szöveg</string>
|
||||
<string name="member_info_section_title_member">TAG</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Ez később a beállításokon keresztül módosítható.</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Hogyan befolyásolja az akkumulátort</string>
|
||||
<string name="new_member_role">Új tag szerepköre</string>
|
||||
<string name="la_mode_off">Kikapcsolva</string>
|
||||
<string name="invalid_contact_link">Érvénytelen hivatkozás!</string>
|
||||
@@ -751,7 +751,7 @@
|
||||
<string name="moderate_verb">Moderálás</string>
|
||||
<string name="chat_preferences_on">bekapcsolva</string>
|
||||
<string name="v5_1_japanese_portuguese_interface">Japán és portugál kezelőfelület</string>
|
||||
<string name="message_deletion_prohibited_in_chat">Az üzenetek végleges törlése le van tiltva ebben a csoportban.</string>
|
||||
<string name="message_deletion_prohibited_in_chat">Az üzenetek végleges törlése le van tiltva.</string>
|
||||
<string name="remote_host_was_disconnected_toast"><![CDATA[Kapcsolat bontva a(z) <b>%s</b> nevű hordozható eszközzel]]></string>
|
||||
<string name="custom_time_unit_months">hónap</string>
|
||||
<string name="privacy_message_draft">Üzenetvázlat</string>
|
||||
@@ -793,7 +793,7 @@
|
||||
<string name="link_a_mobile">Hordozható eszköz társítása</string>
|
||||
<string name="settings_notifications_mode_title">Értesítési szolgáltatás</string>
|
||||
<string name="only_group_owners_can_enable_voice">Csak a csoporttulajdonosok engedélyezhetik a hangüzenetek küldését.</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Csak az alkalmazások tárolják a felhasználó-profilokat, ismerősöket, csoportokat és a <b>2 rétegű végpontok közötti titkosítással</b> küldött üzeneteket.]]></string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">A felhasználói profilok, névjegyek, csoportok és üzenetek csak az eszközön kerülnek tárolásra a kliensen belül.</string>
|
||||
<string name="invalid_migration_confirmation">Érvénytelen átköltöztetési visszaigazolás</string>
|
||||
<string name="only_group_owners_can_change_prefs">Csak a csoporttulajdonosok módosíthatják a csoportbeállításokat.</string>
|
||||
<string name="no_history">Nincsenek előzmények</string>
|
||||
@@ -801,7 +801,7 @@
|
||||
<string name="mark_read">Megjelölés olvasottként</string>
|
||||
<string name="live">ÉLŐ</string>
|
||||
<string name="mark_unread">Megjelölés olvasatlanként</string>
|
||||
<string name="icon_descr_more_button">Több</string>
|
||||
<string name="icon_descr_more_button">Továbbiak</string>
|
||||
<string name="auth_log_in_using_credential">Bejelentkezés hitelesítőadatokkal</string>
|
||||
<string name="invalid_message_format">érvénytelen üzenet formátum</string>
|
||||
<string name="join_group_button">Csatlakozás</string>
|
||||
@@ -1163,7 +1163,7 @@
|
||||
<string name="prohibit_sending_voice_messages">A hangüzenetek küldése le van tiltva.</string>
|
||||
<string name="set_contact_name">Ismerős nevének beállítása</string>
|
||||
<string name="only_you_can_send_disappearing">Csak Ön tud eltűnő üzeneteket küldeni.</string>
|
||||
<string name="share_image">Média megosztása…</string>
|
||||
<string name="share_image">Médiatartalom megosztása…</string>
|
||||
<string name="group_info_member_you">Ön: %1$s</string>
|
||||
<string name="your_preferences">Beállítások</string>
|
||||
<string name="reset_color">Színek visszaállítása</string>
|
||||
@@ -1272,7 +1272,7 @@
|
||||
<string name="database_downgrade_warning">Figyelmeztetés: néhány adat elveszhet!</string>
|
||||
<string name="tap_to_start_new_chat">Koppintson ide az új csevegés indításához</string>
|
||||
<string name="waiting_for_desktop">Várakozás a számítógépre…</string>
|
||||
<string name="next_generation_of_private_messaging">A privát üzenetküldés\nkövetkező generációja</string>
|
||||
<string name="next_generation_of_private_messaging">Az üzenetküldés jövője</string>
|
||||
<string name="update_network_settings_question">Hálózati beállítások megváltoztatása?</string>
|
||||
<string name="waiting_for_mobile_to_connect">Várakozás a hordozható eszköz társítására:</string>
|
||||
<string name="v4_4_verify_connection_security">Biztonságos kapcsolat hitelesítése</string>
|
||||
@@ -1287,7 +1287,7 @@
|
||||
<string name="periodic_notifications_desc">Az új üzenetek rendszeresen letöltésre kerülnek az alkalmazás által – naponta néhány százalékot használ az akkumulátorból. Az alkalmazás nem használ push-értesítéseket – az eszközről származó adatok nem kerülnek elküldésre a kiszolgálóknak.</string>
|
||||
<string name="paste_desktop_address">Számítógép címének beillesztése</string>
|
||||
<string name="description_via_contact_address_link">kapcsolattartási cím-hivatkozáson keresztül</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Az adatvédelem megőrzése érdekében a push-értesítési rendszer helyett az alkalmazás a <b>SimpleX-háttérszolgáltatást</b> használja - az akkumulátornak csak néhány százalékát használja naponta.]]></string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Az adatvédelem növelése érdekében <b> a SimpleX a háttérben fut</b> a push értesítések használata helyett.]]></string>
|
||||
<string name="alert_text_connection_pending_they_need_to_be_online_can_delete_and_retry">Az ismerősének online kell lennie ahhoz, hogy a kapcsolat létrejöjjön.\nVisszavonhatja ezt az ismerőskérelmet és eltávolíthatja az ismerőst (ezt később ismét megpróbálhatja egy új hivatkozással).</string>
|
||||
<string name="restore_passphrase_not_found_desc">A jelszó nem található a Keystore-ban, ezért kézzel szükséges megadni. Ez akkor történhetett meg, ha visszaállította az alkalmazás adatait egy biztonságimentési eszközzel. Ha nem így történt, akkor lépjen kapcsolatba a fejlesztőkkel.</string>
|
||||
<string name="your_contacts_will_remain_connected">Az ismerősei továbbra is kapcsolódva maradnak.</string>
|
||||
@@ -1306,7 +1306,7 @@
|
||||
<string name="profile_will_be_sent_to_contact_sending_link">A profilja elküldésre kerül az ismerőse számára, akitől ezt a hivatkozást kapta.</string>
|
||||
<string name="system_restricted_background_in_call_desc">Az alkalmazás 1 perc után bezárható a háttérben.</string>
|
||||
<string name="group_preview_you_are_invited">meghívást kapott a csoportba</string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[Használatához <b>engedélyezze a SimpleX háttérben történő futását</b> a következő párbeszédpanelen. Ellenkező esetben az értesítések letiltásra kerülnek.]]></string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[<b>Engedélyezze</b> a következő párbeszédpanelen az azonnali értesítések fogadásához.]]></string>
|
||||
<string name="error_smp_test_server_auth">A kiszolgálónak engedélyre van szüksége a sorbaállítás létrehozásához, ellenőrizze jelszavát</string>
|
||||
<string name="you_will_join_group">Kapcsolódni fog a csoport összes tagjához.</string>
|
||||
<string name="error_smp_test_certificate">Lehetséges, hogy a kiszolgáló címében szereplő tanúsítvány-ujjlenyomat helytelen</string>
|
||||
@@ -1349,7 +1349,7 @@
|
||||
<string name="alert_title_cant_invite_contacts_descr">Inkognitóprofilt használ ehhez a csoporthoz - fő profilja megosztásának elkerülése érdekében a meghívók küldése le van tiltva</string>
|
||||
<string name="v4_5_transport_isolation">Átvitel-izoláció</string>
|
||||
<string name="you_will_be_connected_when_your_connection_request_is_accepted">Akkor lesz kapcsolódva, ha a kapcsolatkérése elfogadásra kerül, várjon, vagy ellenőrizze később!</string>
|
||||
<string name="voice_messages_are_prohibited">A hangüzenetek küldése le van tiltva ebben a csoportban.</string>
|
||||
<string name="voice_messages_are_prohibited">A hangüzenetek küldése le van tiltva.</string>
|
||||
<string name="system_restricted_background_in_call_warn"><![CDATA[A háttérben való hívásokhoz válassza ki az <b>Alkalmazás akkumulátor-használata</b> / <b>Korlátlan</b> módot az alkalmazás beállításaiban.]]></string>
|
||||
<string name="v5_4_link_mobile_desktop_descr">Biztonságos kvantumrezisztens-protokollon keresztül.</string>
|
||||
<string name="v5_1_better_messages_descr">- 5 perc hosszúságú hangüzenetek.\n- egyéni üzenet-eltűnési időkorlát.\n- előzmények szerkesztése.</string>
|
||||
@@ -1363,7 +1363,7 @@
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">A profilja az eszközén van tárolva és csak az ismerőseivel kerül megosztásra. A SimpleX-kiszolgálók nem láthatják a profilját.</string>
|
||||
<string name="snd_group_event_changed_member_role">Ön megváltoztatta %s szerepkörét erre: %s</string>
|
||||
<string name="you_rejected_group_invitation">Csoportmeghívó elutasítva</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Az adatvédelem érdekében (a más csevegési platformokon megszokott felhasználó-azonosítók helyett) a SimpleX csak az üzenetek sorbaállításához használ azonosítókat, az összes ismerőséhez különbözőt.</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Az Ön adatainak védelme érdekében a SimpleX külön üzenet-azonosítókat használ minden egyes kapcsolatához.</string>
|
||||
<string name="to_share_with_your_contact">(a megosztáshoz az ismerősével)</string>
|
||||
<string name="you_sent_group_invitation">Csoportmeghívó elküldve</string>
|
||||
<string name="update_network_session_mode_question">Átvitel-izoláció módjának frissítése?</string>
|
||||
@@ -1450,7 +1450,7 @@
|
||||
<string name="v4_5_message_draft_descr">Az utolsó üzenet tervezetének megőrzése a mellékletekkel együtt.</string>
|
||||
<string name="saved_ICE_servers_will_be_removed">A mentett WebRTC ICE-kiszolgálók eltávolításra kerülnek.</string>
|
||||
<string name="receipts_groups_override_enabled">A kézbesítési jelentések engedélyezve vannak %d csoportban</string>
|
||||
<string name="member_role_will_be_changed_with_notification">A szerepkör meg fog változni erre: %s. A csoportban az összes tag értesítve lesz.</string>
|
||||
<string name="member_role_will_be_changed_with_notification">A szerepkör meg fog változni erre: %s. A csoport tagjai értesítést fognak kapni.</string>
|
||||
<string name="users_delete_with_connections">Profil és kiszolgálókapcsolatok</string>
|
||||
<string name="the_messaging_and_app_platform_protecting_your_privacy_and_security">Egy üzenetküldő- és alkalmazásplatform, amely védi az adatait és biztonságát.</string>
|
||||
<string name="tap_to_activate_profile">A profil aktiválásához koppintson az ikonra.</string>
|
||||
@@ -1685,23 +1685,23 @@
|
||||
<string name="network_type_network_wifi">Wi-Fi</string>
|
||||
<string name="forwarded_description">továbbított</string>
|
||||
<string name="simplex_links_not_allowed">A SimpleX-hivatkozások küldése le van tiltva</string>
|
||||
<string name="group_members_can_send_simplex_links">A csoport tagjai küldhetnek SimpleX-hivatkozásokat.</string>
|
||||
<string name="group_members_can_send_simplex_links">A tagok küldhetnek SimpleX-hivatkozásokat.</string>
|
||||
<string name="feature_roles_owners">tulajdonosok</string>
|
||||
<string name="feature_roles_admins">adminisztrátorok</string>
|
||||
<string name="feature_roles_all_members">összes tag</string>
|
||||
<string name="simplex_links">SimpleX-hivatkozások</string>
|
||||
<string name="voice_messages_not_allowed">A hangüzenetek küldése le van tiltva</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">A SimpleX-hivatkozások küldése le van tiltva ebben a csoportban.</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">A SimpleX-hivatkozások küldése le van tiltva.</string>
|
||||
<string name="prohibit_sending_simplex_links">A SimpleX-hivatkozások küldése le van tiltva</string>
|
||||
<string name="files_and_media_not_allowed">A fájlok- és médiatartalmak nincsenek engedélyezve</string>
|
||||
<string name="allow_to_send_simplex_links">A SimpleX-hivatkozások küldése engedélyezve van.</string>
|
||||
<string name="feature_enabled_for">Számukra engedélyezve:</string>
|
||||
<string name="saved_description">mentett</string>
|
||||
<string name="saved_from_description">mentve innen: %s</string>
|
||||
<string name="saved_from_description">elmentve innen: %s</string>
|
||||
<string name="forwarded_from_chat_item_info_title">Továbbítva innen:</string>
|
||||
<string name="recipients_can_not_see_who_message_from">A címzett(ek) nem látja(k), hogy kitől származik ez az üzenet.</string>
|
||||
<string name="saved_chat_item_info_tab">Mentett</string>
|
||||
<string name="saved_from_chat_item_info_title">Mentve innen:</string>
|
||||
<string name="saved_from_chat_item_info_title">Elmentve innen:</string>
|
||||
<string name="download_file">Letöltés</string>
|
||||
<string name="forward_chat_item">Továbbítás</string>
|
||||
<string name="forwarded_chat_item_info_tab">Továbbított</string>
|
||||
@@ -1790,7 +1790,7 @@
|
||||
<string name="color_primary_variant2">További kiemelés 2</string>
|
||||
<string name="theme_destination_app_theme">Alkalmazás téma</string>
|
||||
<string name="v5_8_persian_ui">Perzsa kezelőfelület</string>
|
||||
<string name="v5_8_private_routing_descr">Védje IP-címét az ismerősei által kiválasztott üzenet-közvetítő-kiszolgálókkal szemben.\nEngedélyezze a „Beállítások / Hálózat és kiszolgálók” menüben.</string>
|
||||
<string name="v5_8_private_routing_descr">Védje IP-címét az ismerősei által kiválasztott üzenet-közvetítő-kiszolgálókkal szemben.\nEngedélyezze a *Hálózat és kiszolgálók* menüben.</string>
|
||||
<string name="v5_8_safe_files_descr">Ismeretlen kiszolgálókról származó fájlok megerősítése.</string>
|
||||
<string name="v5_8_message_delivery">Javított üzenetkézbesítés</string>
|
||||
<string name="chat_theme_reset_to_app_theme">Alkalmazás témájának visszaállítása</string>
|
||||
@@ -1938,7 +1938,7 @@
|
||||
<string name="proxy_destination_error_broker_version">A(z) %1$s célkiszolgáló verziója nem kompatibilis a(z) %2$s továbbító kiszolgálóval.</string>
|
||||
<string name="proxy_destination_error_failed_to_connect">A(z) %1$s továbbító-kiszolgáló nem tudott csatlakozni a(z) %2$s célkiszolgálóhoz. Próbálja meg később.</string>
|
||||
<string name="proxy_destination_error_broker_host">A(z) %1$s célkiszolgáló címe nem kompatibilis a(z) %2$s továbbító-kiszolgáló beállításaival.</string>
|
||||
<string name="privacy_media_blur_radius">Média elhomályosítása</string>
|
||||
<string name="privacy_media_blur_radius">Médiatartalom elhomályosítása</string>
|
||||
<string name="privacy_media_blur_radius_medium">Közepes</string>
|
||||
<string name="privacy_media_blur_radius_off">Kikapcsolva</string>
|
||||
<string name="privacy_media_blur_radius_soft">Enyhe</string>
|
||||
@@ -1966,7 +1966,7 @@
|
||||
<string name="keep_conversation">Beszélgetés megtartása</string>
|
||||
<string name="confirm_delete_contact_question">Biztosan törli az ismerőst?</string>
|
||||
<string name="info_view_connect_button">kapcsolódás</string>
|
||||
<string name="one_hand_ui">Könnyen elérhető eszköztár</string>
|
||||
<string name="one_hand_ui">Könnyen elérhető alkalmazás-eszköztárak</string>
|
||||
<string name="delete_without_notification">Törlés értesítés nélkül</string>
|
||||
<string name="toolbar_settings">Beállítások</string>
|
||||
<string name="info_view_search_button">keresés</string>
|
||||
@@ -2108,7 +2108,7 @@
|
||||
<string name="or_to_share_privately">Vagy a privát megosztáshoz</string>
|
||||
<string name="simplex_address_or_1_time_link">SimpleX-cím vagy egyszer használható meghívó-hivatkozás?</string>
|
||||
<string name="create_1_time_link">Egyszer használható meghívó-hivatkozás létrehozása</string>
|
||||
<string name="onboarding_choose_server_operators">Üzemeltetők kiválasztása</string>
|
||||
<string name="onboarding_choose_server_operators">Kiszolgáló-üzemeltetők</string>
|
||||
<string name="onboarding_network_operators">Hálózati üzemeltetők</string>
|
||||
<string name="onboarding_network_operators_app_will_use_different_operators">Amikor egynél több hálózati üzemeltető van engedélyezve, akkor az alkalmazás minden egyes beszélgetéshez a különböző üzemeltetők kiszolgálóit használja.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_for_routing">Ha például a SimpleX Chat kiszolgálón keresztül fogadja az üzeneteket, az alkalmazás a Flux egyik kiszolgálóját használja a privát útválasztáshoz.</string>
|
||||
@@ -2170,4 +2170,39 @@
|
||||
<string name="xftp_servers_per_user">Az Ön jelenlegi csevegőprofiljához tartozó új fájlok kiszolgálói</string>
|
||||
<string name="chat_archive">Vagy archívumfájl importálása</string>
|
||||
<string name="remote_hosts_section">Távoli hordozható eszközök</string>
|
||||
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Xiaomi eszközök</b>: engedélyezze az automatikus indítást a rendszerbeállításokban, hogy az értesítések működjenek.]]></string>
|
||||
<string name="maximum_message_size_reached_forwarding">A küldéshez másolhatja és csökkentheti az üzenet méretét.</string>
|
||||
<string name="add_your_team_members_to_conversations">Adja hozzá csapattagjait a beszélgetésekhez.</string>
|
||||
<string name="business_address">Üzleti cím</string>
|
||||
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Az összes üzenet és fájl <b>végpontok közötti titkosítással</b>, a közvetlen üzenetek továbbá kvantumrezisztens titkosítással is rendelkeznek.]]></string>
|
||||
<string name="how_it_helps_privacy">Hogyan segíti az adatvédelmet</string>
|
||||
<string name="onboarding_notifications_mode_off_desc_short">Nincs háttérszolgáltatás</string>
|
||||
<string name="onboarding_notifications_mode_battery">Értesítések és akkumulátor</string>
|
||||
<string name="onboarding_notifications_mode_service_desc_short">Az alkalmazás mindig fut a háttérben</string>
|
||||
<string name="leave_chat_question">Csevegés elhagyása?</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">Ön nem fog több üzenetet kapni ebből a csevegésből, de a csevegés előzményei megmaradnak.</string>
|
||||
<string name="button_delete_chat">Csevegés törlése</string>
|
||||
<string name="invite_to_chat_button">Meghívás a csevegésbe</string>
|
||||
<string name="button_add_friends">Barátok hozzáadása</string>
|
||||
<string name="button_add_team_members">Csapattagok hozzáadása</string>
|
||||
<string name="delete_chat_for_all_members_cannot_undo_warning">A csevegés minden tag számára törlésre kerül - ezt a műveletet nem lehet visszavonni!</string>
|
||||
<string name="delete_chat_for_self_cannot_undo_warning">A csevegés törlésre kerül az Ön számára - ezt a műveletet nem lehet visszavonni!</string>
|
||||
<string name="delete_chat_question">Csevegés törlése?</string>
|
||||
<string name="button_leave_chat">Csevegés elhagyása</string>
|
||||
<string name="only_chat_owners_can_change_prefs">Csak a csevegés tulajdonosai módosíthatják a beállításokat.</string>
|
||||
<string name="chat_bottom_bar">Könnyen elérhető csevegési eszköztár</string>
|
||||
<string name="member_will_be_removed_from_chat_cannot_be_undone">A tag el lesz távolítva a csevegésből - ezt a műveletet nem lehet visszavonni!</string>
|
||||
<string name="info_row_chat">Csevegés</string>
|
||||
<string name="member_role_will_be_changed_with_notification_chat">A szerepkör meg fog változni a következőre: %s. A csevegés tagjai értesítést fognak kapni.</string>
|
||||
<string name="chat_main_profile_sent">Az Ön csevegési profilja el lesz küldve a csevegésben résztvevő tagok számára</string>
|
||||
<string name="direct_messages_are_prohibited">A tagok közötti közvetlen üzenetek le vannak tiltva.</string>
|
||||
<string name="v6_2_business_chats">Üzleti csevegések</string>
|
||||
<string name="v6_2_business_chats_descr">Az Ön ügyfeleinek adatvédelme.</string>
|
||||
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Ön már kapcsolódva van vele: <b>%1$s</b>.]]></string>
|
||||
<string name="connect_plan_chat_already_exists">A csevegés már létezik!</string>
|
||||
<string name="maximum_message_size_reached_text">Csökkentse az üzenet méretét, és küldje el újra.</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc_short">Üzenetek ellenőrzése 10 percenként</string>
|
||||
<string name="maximum_message_size_title">Az üzenet túl nagy!</string>
|
||||
<string name="maximum_message_size_reached_non_text">Csökkentse az üzenet méretét vagy távolítsa el a médiát, és küldje el újra.</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">A tagok közötti közvetlen üzenetek le vannak tiltva ebben a csevegésben.</string>
|
||||
</resources>
|
||||
@@ -1294,4 +1294,57 @@
|
||||
<string name="button_remove_member_question">Hapus anggota?</string>
|
||||
<string name="button_remove_member">Hapus anggota</string>
|
||||
<string name="saved_message_title">Pesan tersimpan</string>
|
||||
<string name="cant_call_member_alert_title">Tak dapat memanggil anggota grup</string>
|
||||
<string name="operators_conditions_accepted_for"><![CDATA[Ketentuan diterima untuk operator: <b>%s</b>.]]></string>
|
||||
<string name="operators_conditions_will_be_accepted_for"><![CDATA[Ketentuan akan diterima untuk operator: <b>%s</b>.]]></string>
|
||||
<string name="operator">Operator</string>
|
||||
<string name="operator_use_operator_toggle_description">Gunakan server</string>
|
||||
<string name="use_servers_of_operator_x">Gunakan %s</string>
|
||||
<string name="cant_send_message_to_member_alert_title">Tak dapat kirim pesan ke anggota grup</string>
|
||||
<string name="group_welcome_title">Pesan sambutan</string>
|
||||
<string name="save_welcome_message_question">Simpan pesan sambutan?</string>
|
||||
<string name="fix_connection_not_supported_by_group_member">Perbaikan tidak didukung oleh anggota grup</string>
|
||||
<string name="create_secret_group_title">Buat grup rahasia</string>
|
||||
<string name="renegotiate_encryption">Negosiasi ulang enkripsi</string>
|
||||
<string name="group_display_name_field">Masukkan nama grup:</string>
|
||||
<string name="group_welcome_preview">Pratinjau</string>
|
||||
<string name="cant_call_member_send_message_alert_text">Kirim pesan untuk aktifkan panggilan.</string>
|
||||
<string name="cant_call_contact_deleted_alert_text">Kontak dihapus.</string>
|
||||
<string name="cant_call_contact_alert_title">Tak dapat memanggil kontak</string>
|
||||
<string name="fix_connection_confirm">Perbaiki</string>
|
||||
<string name="group_is_decentralized">Sepenuhnya terdesentralisasi – hanya terlihat oleh anggota.</string>
|
||||
<string name="fix_connection">Perbaiki koneksi</string>
|
||||
<string name="fix_connection_question">Perbaiki koneksi?</string>
|
||||
<string name="operator_review_conditions">Tinjau ketentuan</string>
|
||||
<string name="network_preset_servers_title">Server prasetel</string>
|
||||
<string name="operator_conditions_accepted">Ketentuan diterima</string>
|
||||
<string name="operator_conditions_accepted_for_enabled_operators_on">Ketentuan akan otomatis diterima untuk operator yang diaktifkan pada: %s.</string>
|
||||
<string name="you_need_to_allow_calls">Anda perlu izinkan kontak Anda agar dapat memanggilnya.</string>
|
||||
<string name="message_too_large">Pesan terlalu besar</string>
|
||||
<string name="enter_welcome_message">Masukkan pesan sambutan…</string>
|
||||
<string name="save_and_update_group_profile">Simpan dan perbarui profil grup</string>
|
||||
<string name="welcome_message_is_too_long">Pesan sambutan terlalu panjang</string>
|
||||
<string name="fix_connection_not_supported_by_contact">Perbaikan tidak didukung oleh kontak</string>
|
||||
<string name="info_row_chat">Obrolan</string>
|
||||
<string name="accept_conditions">Terima kondisi</string>
|
||||
<string name="conn_stats_section_title_servers">SERVER</string>
|
||||
<string name="create_group_button">Buat grup</string>
|
||||
<string name="group_full_name_field">Nama lengkap grup:</string>
|
||||
<string name="save_group_profile">Simpan profil grup</string>
|
||||
<string name="operator_website">Peramban</string>
|
||||
<string name="your_servers">Server Anda</string>
|
||||
<string name="error_saving_group_profile">Gagal simpan profil grup</string>
|
||||
<string name="operator_servers_title">%s server</string>
|
||||
<string name="operator_info_title">Operator jaringan</string>
|
||||
<string name="operator_conditions_accepted_on">Ketentuan diterima pada: %s.</string>
|
||||
<string name="operator_conditions_will_be_accepted_on">Ketentuan akan diterima pada: %s.</string>
|
||||
<string name="info_row_connection">Koneksi</string>
|
||||
<string name="role_in_group">Rol</string>
|
||||
<string name="change_role">Ganti rol</string>
|
||||
<string name="group_main_profile_sent">Profil obrolan Anda akan dikirim ke anggota grup</string>
|
||||
<string name="chat_main_profile_sent">Profil obrolan Anda akan dikirim ke anggota obrolan</string>
|
||||
<string name="group_profile_is_stored_on_members_devices">Profil grup disimpan di perangkat anggota, bukan di server.</string>
|
||||
<string name="conn_level_desc_direct">langsung</string>
|
||||
<string name="sending_via">Kirim via</string>
|
||||
<string name="receiving_via">Terima via</string>
|
||||
</resources>
|
||||
@@ -211,8 +211,8 @@
|
||||
<string name="connection_error_auth_desc">A meno che il tuo contatto non abbia eliminato la connessione o che questo link non sia già stato usato, potrebbe essere un errore; per favore segnalalo.
|
||||
\nPer connetterti, chiedi al tuo contatto di creare un altro link di connessione e controlla di avere una connessione di rete stabile.</string>
|
||||
<string name="error_smp_test_certificate">Probabilmente l\'impronta del certificato nell\'indirizzo del server è sbagliata</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Per rispettare la tua privacy, invece delle notifiche push l\'app ha un <b>servizio SimpleX in secondo piano</b>; usa una piccola percentuale di batteria al giorno.]]></string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[Per usarlo, <b>consenti a SimpleX di funzionare in secondo piano</b> nella prossima schermata. Altrimenti le notifiche saranno disattivate.]]></string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Per migliorare la privacy, <b>SimpleX funziona in secondo piano</b> invece di usare le notifiche push.]]></string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[<b>Consentilo</b> nella prossima schermata per ricevere le notifiche immediatamente.]]></string>
|
||||
<string name="simplex_service_notification_title">Servizio SimpleX Chat</string>
|
||||
<string name="notifications_mode_service_desc">Servizio in secondo piano sempre attivo. Le notifiche verranno mostrate appena i messaggi saranno disponibili.</string>
|
||||
<string name="la_notice_title_simplex_lock">SimpleX Lock</string>
|
||||
@@ -478,7 +478,7 @@
|
||||
<string name="ttl_h">%do</string>
|
||||
<string name="ttl_hour">%d ora</string>
|
||||
<string name="ttl_hours">%d ore</string>
|
||||
<string name="disappearing_messages_are_prohibited">I messaggi a tempo sono vietati in questo gruppo.</string>
|
||||
<string name="disappearing_messages_are_prohibited">I messaggi a tempo sono vietati.</string>
|
||||
<string name="ttl_m">%dm</string>
|
||||
<string name="ttl_min">%d min</string>
|
||||
<string name="ttl_month">%d mese</string>
|
||||
@@ -490,10 +490,10 @@
|
||||
<string name="ttl_week">%d settimana</string>
|
||||
<string name="ttl_weeks">%d settimane</string>
|
||||
<string name="v4_2_group_links">Link del gruppo</string>
|
||||
<string name="group_members_can_delete">I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)</string>
|
||||
<string name="group_members_can_send_dms">I membri del gruppo possono inviare messaggi diretti.</string>
|
||||
<string name="group_members_can_send_disappearing">I membri del gruppo possono inviare messaggi a tempo.</string>
|
||||
<string name="group_members_can_send_voice">I membri del gruppo possono inviare messaggi vocali.</string>
|
||||
<string name="group_members_can_delete">I membri possono eliminare irreversibilmente i messaggi inviati. (24 ore)</string>
|
||||
<string name="group_members_can_send_dms">I membri possono inviare messaggi diretti.</string>
|
||||
<string name="group_members_can_send_disappearing">I membri possono inviare messaggi a tempo.</string>
|
||||
<string name="group_members_can_send_voice">I membri possono inviare messaggi vocali.</string>
|
||||
<string name="v4_4_verify_connection_security_desc">Confronta i codici di sicurezza con i tuoi contatti.</string>
|
||||
<string name="v4_4_disappearing_messages">Messaggi a tempo</string>
|
||||
<string name="v4_3_improved_privacy_and_security_desc">Nascondi la schermata dell\'app nelle app recenti.</string>
|
||||
@@ -648,9 +648,9 @@
|
||||
<string name="incoming_audio_call">Chiamata in arrivo</string>
|
||||
<string name="incoming_video_call">Videochiamata in arrivo</string>
|
||||
<string name="onboarding_notifications_mode_service">Istantaneo</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Può essere cambiato in seguito via impostazioni.</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Come influisce sulla batteria</string>
|
||||
<string name="make_private_connection">Crea una connessione privata</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Solo i dispositivi client memorizzano i profili utente, i contatti, i gruppi e i messaggi inviati con <b>crittografia end-to-end a 2 livelli</b>.]]></string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Solo i dispositivi client memorizzano i profili utente, i contatti, i gruppi e i messaggi.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Chiunque può installare i server.</string>
|
||||
<string name="paste_the_link_you_received">Incolla il link che hai ricevuto</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Sei tu a decidere chi può connettersi.</string>
|
||||
@@ -660,9 +660,8 @@
|
||||
<string name="read_more_in_github_with_link"><![CDATA[Maggiori informazioni nel nostro <font color="#0088ff">repository GitHub</font>.]]></string>
|
||||
<string name="reject">Rifiuta</string>
|
||||
<string name="first_platform_without_user_ids">Nessun identificatore utente.</string>
|
||||
<string name="next_generation_of_private_messaging">La nuova generazione
|
||||
\ndi messaggistica privata</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Per proteggere la privacy, invece degli ID utente usati da tutte le altre piattaforme, SimpleX dispone di identificatori per le code dei messaggi, separati per ciascuno dei tuoi contatti.</string>
|
||||
<string name="next_generation_of_private_messaging">Il futuro dei messaggi</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Per proteggere la tua privacy, SimpleX usa ID separati per ciascuno dei tuoi contatti.</string>
|
||||
<string name="use_chat">Usa la chat</string>
|
||||
<string name="icon_descr_video_call">videochiamata</string>
|
||||
<string name="video_call_no_encryption">videochiamata (non crittografata e2e)</string>
|
||||
@@ -843,7 +842,7 @@
|
||||
<string name="your_preferences">Le tue preferenze</string>
|
||||
<string name="v4_3_improved_server_configuration">Configurazione del server migliorata</string>
|
||||
<string name="v4_3_irreversible_message_deletion">Eliminazione irreversibile del messaggio</string>
|
||||
<string name="message_deletion_prohibited_in_chat">L\'eliminazione irreversibile dei messaggi è vietata in questo gruppo.</string>
|
||||
<string name="message_deletion_prohibited_in_chat">L\'eliminazione irreversibile dei messaggi è vietata.</string>
|
||||
<string name="v4_3_voice_messages_desc">Max 40 secondi, ricevuto istantaneamente.</string>
|
||||
<string name="new_in_version">Novità nella %s</string>
|
||||
<string name="only_you_can_send_voice">Solo tu puoi inviare messaggi vocali.</string>
|
||||
@@ -856,7 +855,7 @@
|
||||
<string name="v4_2_security_assessment_desc">La sicurezza di SimpleX Chat è stata verificata da Trail of Bits.</string>
|
||||
<string name="v4_3_voice_messages">Messaggi vocali</string>
|
||||
<string name="voice_prohibited_in_this_chat">I messaggi vocali sono vietati in questa chat.</string>
|
||||
<string name="voice_messages_are_prohibited">I messaggi vocali sono vietati in questo gruppo.</string>
|
||||
<string name="voice_messages_are_prohibited">I messaggi vocali sono vietati.</string>
|
||||
<string name="whats_new">Novità</string>
|
||||
<string name="v4_2_auto_accept_contact_requests_desc">Con messaggio di benvenuto facoltativo.</string>
|
||||
<string name="v4_3_irreversible_message_deletion_desc">I tuoi contatti possono consentire l\'eliminazione completa dei messaggi.</string>
|
||||
@@ -1171,7 +1170,7 @@
|
||||
<string name="change_self_destruct_passcode">Cambia codice di autodistruzione</string>
|
||||
<string name="message_reactions">Reazioni ai messaggi</string>
|
||||
<string name="message_reactions_prohibited_in_this_chat">Le reazioni ai messaggi sono vietate in questa chat.</string>
|
||||
<string name="message_reactions_are_prohibited">Le reazioni ai messaggi sono vietate in questo gruppo.</string>
|
||||
<string name="message_reactions_are_prohibited">Le reazioni ai messaggi sono vietate.</string>
|
||||
<string name="only_you_can_add_message_reactions">Solo tu puoi aggiungere reazioni ai messaggi.</string>
|
||||
<string name="prohibit_message_reactions">Proibisci le reazioni ai messaggi.</string>
|
||||
<string name="prohibit_message_reactions_group">Proibisci le reazioni ai messaggi.</string>
|
||||
@@ -1180,7 +1179,7 @@
|
||||
<string name="only_your_contact_can_add_message_reactions">Solo il tuo contatto può aggiungere reazioni ai messaggi.</string>
|
||||
<string name="allow_your_contacts_adding_message_reactions">Consenti ai tuoi contatti di aggiungere reazioni ai messaggi.</string>
|
||||
<string name="allow_message_reactions_only_if">Consenti reazioni ai messaggi solo se il tuo contatto le consente.</string>
|
||||
<string name="group_members_can_add_message_reactions">I membri del gruppo possono aggiungere reazioni ai messaggi.</string>
|
||||
<string name="group_members_can_add_message_reactions">I membri possono aggiungere reazioni ai messaggi.</string>
|
||||
<string name="send_disappearing_message_30_seconds">30 secondi</string>
|
||||
<string name="send_disappearing_message_send">Invia</string>
|
||||
<string name="send_disappearing_message">Invia messaggio a tempo</string>
|
||||
@@ -1244,10 +1243,10 @@
|
||||
<string name="error_aborting_address_change">Errore nell\'interruzione del cambio di indirizzo</string>
|
||||
<string name="only_owners_can_enable_files_and_media">Solo i proprietari del gruppo possono attivare file e contenuti multimediali.</string>
|
||||
<string name="files_and_media">File e multimediali</string>
|
||||
<string name="group_members_can_send_files">I membri del gruppo possono inviare file e contenuti multimediali.</string>
|
||||
<string name="group_members_can_send_files">I membri possono inviare file e contenuti multimediali.</string>
|
||||
<string name="prohibit_sending_files">Proibisci l\'invio di file e contenuti multimediali.</string>
|
||||
<string name="abort_switch_receiving_address_desc">Il cambio di indirizzo verrà interrotto. Verrà usato il vecchio indirizzo di ricezione.</string>
|
||||
<string name="files_are_prohibited_in_group">File e contenuti multimediali sono vietati in questo gruppo.</string>
|
||||
<string name="files_are_prohibited_in_group">File e contenuti multimediali sono vietati.</string>
|
||||
<string name="files_and_media_prohibited">File e contenuti multimediali vietati!</string>
|
||||
<string name="la_mode_off">Off</string>
|
||||
<string name="no_filtered_chats">Nessuna chat filtrata</string>
|
||||
@@ -1723,11 +1722,11 @@
|
||||
<string name="allow_to_send_simplex_links">Consenti di inviare link di SimpleX.</string>
|
||||
<string name="prohibit_sending_simplex_links">Vieta l\'invio di link di SimpleX</string>
|
||||
<string name="feature_enabled_for">Attivo per</string>
|
||||
<string name="group_members_can_send_simplex_links">I membri del gruppo possono inviare link di Simplex.</string>
|
||||
<string name="group_members_can_send_simplex_links">I membri possono inviare link di Simplex.</string>
|
||||
<string name="feature_roles_owners">proprietari</string>
|
||||
<string name="feature_roles_admins">amministratori</string>
|
||||
<string name="feature_roles_all_members">tutti i membri</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">I link di SimpleX sono vietati in questo gruppo.</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">I link di SimpleX sono vietati.</string>
|
||||
<string name="saved_description">salvato</string>
|
||||
<string name="saved_from_chat_item_info_title">Salvato da</string>
|
||||
<string name="forward_message">Inoltra messaggio…</string>
|
||||
@@ -1999,7 +1998,7 @@
|
||||
<string name="no_filtered_contacts">Nessun contatto filtrato</string>
|
||||
<string name="paste_link">Incolla link</string>
|
||||
<string name="contact_list_header_title">I tuoi contatti</string>
|
||||
<string name="one_hand_ui">Barra degli strumenti di chat accessibile</string>
|
||||
<string name="one_hand_ui">Barre degli strumenti dell\'app accessibili</string>
|
||||
<string name="action_button_add_members">Invita</string>
|
||||
<string name="allow_calls_question">Consentire le chiamate?</string>
|
||||
<string name="calls_prohibited_alert_title">Chiamate proibite!</string>
|
||||
@@ -2135,7 +2134,7 @@
|
||||
<string name="onboarding_network_operators">Operatori di rete</string>
|
||||
<string name="onboarding_network_operators_app_will_use_different_operators">Quando più di un operatore di rete è attivato, l\'app userà i server di diversi operatori per ogni conversazione.</string>
|
||||
<string name="onboarding_network_operators_conditions_you_can_configure">Puoi configurare gli operatori nelle impostazioni di rete e server.</string>
|
||||
<string name="onboarding_choose_server_operators">Scegli gli operatori</string>
|
||||
<string name="onboarding_choose_server_operators">Operatori del server</string>
|
||||
<string name="onboarding_select_network_operators_to_use">Seleziona gli operatori di rete da usare.</string>
|
||||
<string name="onboarding_network_operators_continue">Continua</string>
|
||||
<string name="onboarding_network_operators_update">Aggiorna</string>
|
||||
@@ -2213,4 +2212,39 @@
|
||||
<string name="share_simplex_address_on_social_media">Condividi indirizzo SimpleX sui social media.</string>
|
||||
<string name="chat_archive">O importa file archivio</string>
|
||||
<string name="remote_hosts_section">Telefoni remoti</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">I messaggi diretti tra i membri sono vietati in questa chat.</string>
|
||||
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Dispositivi Xiaomi</b>: attiva l\'avvio automatico nelle impostazioni di sistema per fare funzionare le notifiche.]]></string>
|
||||
<string name="add_your_team_members_to_conversations">Aggiungi i membri del tuo team alle conversazioni.</string>
|
||||
<string name="business_address">Indirizzo di lavoro</string>
|
||||
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Tutti i messaggi e i file sono <b>cifrati end-to-end</b>, con sicurezza quantistica nei messaggi diretti.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc_short">Controlla i messaggi ogni 10 minuti</string>
|
||||
<string name="how_it_helps_privacy">Come aiuta la privacy</string>
|
||||
<string name="invite_to_chat_button">Invita in chat</string>
|
||||
<string name="button_add_team_members">Aggiungi membri del team</string>
|
||||
<string name="info_row_chat">Chat</string>
|
||||
<string name="direct_messages_are_prohibited">I messaggi diretti tra i membri sono vietati.</string>
|
||||
<string name="connect_plan_chat_already_exists">La chat esiste già!</string>
|
||||
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Sei già connesso/a con <b>%1$s</b>.]]></string>
|
||||
<string name="leave_chat_question">Uscire dalla chat?</string>
|
||||
<string name="delete_chat_for_self_cannot_undo_warning">La chat verrà eliminata solo per te, non è reversibile!</string>
|
||||
<string name="button_leave_chat">Esci dalla chat</string>
|
||||
<string name="v6_2_business_chats">Chat di lavoro</string>
|
||||
<string name="delete_chat_for_all_members_cannot_undo_warning">La chat verrà eliminata per tutti i membri, non è reversibile!</string>
|
||||
<string name="button_add_friends">Aggiungi amici</string>
|
||||
<string name="onboarding_notifications_mode_service_desc_short">L\'app funziona sempre in secondo piano</string>
|
||||
<string name="button_delete_chat">Elimina chat</string>
|
||||
<string name="delete_chat_question">Eliminare la chat?</string>
|
||||
<string name="maximum_message_size_title">Il messaggio è troppo grande!</string>
|
||||
<string name="maximum_message_size_reached_text">Riduci la dimensione del messaggio e invialo di nuovo.</string>
|
||||
<string name="maximum_message_size_reached_non_text">Riduci la dimensione del messaggio o rimuovi i media e invialo di nuovo.</string>
|
||||
<string name="onboarding_notifications_mode_off_desc_short">Nessun servizio in secondo piano</string>
|
||||
<string name="member_will_be_removed_from_chat_cannot_be_undone">Il membro verrà rimosso dalla chat, non è reversibile!</string>
|
||||
<string name="v6_2_business_chats_descr">Privacy per i tuoi clienti.</string>
|
||||
<string name="chat_bottom_bar">Barra degli strumenti di chat accessibile</string>
|
||||
<string name="only_chat_owners_can_change_prefs">Solo i proprietari della chat possono modificarne le preferenze.</string>
|
||||
<string name="onboarding_notifications_mode_battery">Notifiche e batteria</string>
|
||||
<string name="maximum_message_size_reached_forwarding">Puoi copiare e ridurre la dimensione del messaggio per inviarlo.</string>
|
||||
<string name="member_role_will_be_changed_with_notification_chat">Il ruolo verrà cambiato in %s. Verrà notificato a tutti nella chat.</string>
|
||||
<string name="chat_main_profile_sent">Il tuo profilo di chat verrà inviato ai membri della chat</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">Non riceverai più messaggi da questa chat. La cronologia della chat verrà conservata.</string>
|
||||
</resources>
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="network_enable_socks_info">Toegang tot de servers via SOCKS proxy op poort %d\? De proxy moet worden gestart voordat u deze optie inschakelt.</string>
|
||||
<string name="alert_title_cant_invite_contacts">Kan geen contacten uitnodigen!</string>
|
||||
<string name="allow_direct_messages">Sta het verzenden van directe berichten naar leden toe.</string>
|
||||
<string name="allow_to_delete_messages">Sta toe om verzonden berichten onomkeerbaar te verwijderen. (24 uur)</string>
|
||||
<string name="allow_to_delete_messages">Sta toe om verzonden berichten definitief te verwijderen. (24 uur)</string>
|
||||
<string name="allow_to_send_voice">Sta toe om spraak berichten te verzenden.</string>
|
||||
<string name="chat_is_running">Chat is actief</string>
|
||||
<string name="clear_chat_menu_action">Wissen</string>
|
||||
@@ -57,7 +57,7 @@
|
||||
<string name="v4_2_auto_accept_contact_requests">Contact verzoeken automatisch accepteren</string>
|
||||
<string name="bold_text">vetgedrukt</string>
|
||||
<string name="attach">Bijvoegen</string>
|
||||
<string name="allow_irreversible_message_deletion_only_if">Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</string>
|
||||
<string name="allow_irreversible_message_deletion_only_if">Sta het definitief verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</string>
|
||||
<string name="allow_to_send_disappearing">Sta toe om verdwijnende berichten te verzenden.</string>
|
||||
<string name="allow_your_contacts_to_send_voice_messages">Sta toe dat uw contacten spraak berichten verzenden.</string>
|
||||
<string name="all_your_contacts_will_remain_connected">Al uw contacten blijven verbonden.</string>
|
||||
@@ -74,7 +74,7 @@
|
||||
<string name="clear_chat_warning">Alle berichten worden verwijderd, dit kan niet ongedaan worden gemaakt! De berichten worden ALLEEN voor jou verwijderd.</string>
|
||||
<string name="allow_disappearing_messages_only_if">Sta verdwijnende berichten alleen toe als uw contact dit toestaat.</string>
|
||||
<string name="allow_voice_messages_only_if">Sta spraak berichten alleen toe als uw contact ze toestaat.</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">Laat uw contacten verzonden berichten onomkeerbaar verwijderen. (24 uur)</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">Laat uw contacten verzonden berichten definitief verwijderen. (24 uur)</string>
|
||||
<string name="allow_your_contacts_to_send_disappearing_messages">Sta toe dat uw contacten verdwijnende berichten verzenden.</string>
|
||||
<string name="chat_preferences_always">altijd</string>
|
||||
<string name="icon_descr_audio_off">Geluid uit</string>
|
||||
@@ -95,7 +95,7 @@
|
||||
<string name="turning_off_service_and_periodic">Batterijoptimalisatie is actief, waardoor achtergrondservice en periodieke verzoeken om nieuwe berichten worden uitgeschakeld. Je kunt ze weer inschakelen via instellingen.</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Het beste voor de batterij</b>. U ontvangt alleen meldingen wanneer de app wordt uitgevoerd (GEEN achtergrondservice).]]></string>
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><![CDATA[<b>Het kan worden uitgeschakeld via instellingen</b>, meldingen worden nog steeds weergegeven terwijl de app actief is.]]></string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Zowel u als uw contact kunnen verzonden berichten onomkeerbaar verwijderen. (24 uur)</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Zowel u als uw contact kunnen verzonden berichten definitief verwijderen. (24 uur)</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Zowel jij als je contact kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">Zowel jij als je contact kunnen spraak berichten verzenden.</string>
|
||||
<string name="impossible_to_recover_passphrase"><![CDATA[<b>Let op</b>: u kunt het wachtwoord NIET herstellen of wijzigen als u het kwijt raakt.]]></string>
|
||||
@@ -254,12 +254,12 @@
|
||||
<string name="auth_device_authentication_is_disabled_turning_off">Apparaatverificatie is uitgeschakeld. SimpleX Vergrendelen uitschakelen.</string>
|
||||
<string name="display_name">Vul uw naam in:</string>
|
||||
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">Apparaatverificatie is niet ingeschakeld. Je kunt SimpleX Vergrendelen inschakelen via Instellingen zodra je apparaatverificatie hebt ingeschakeld.</string>
|
||||
<string name="direct_messages_are_prohibited_in_group">Directe berichten tussen leden zijn verboden in deze groep.</string>
|
||||
<string name="direct_messages_are_prohibited_in_group">Directe berichten tussen leden zijn niet toegestaan in deze groep.</string>
|
||||
<string name="total_files_count_and_size">%d bestand(en) met een totale grootte van %s</string>
|
||||
<string name="ttl_hour">%d uur</string>
|
||||
<string name="no_call_on_lock_screen">Uitzetten</string>
|
||||
<string name="v4_4_disappearing_messages">Verdwijnende berichten</string>
|
||||
<string name="disappearing_prohibited_in_this_chat">Verdwijnende berichten zijn verboden in dit gesprek.</string>
|
||||
<string name="disappearing_prohibited_in_this_chat">Verdwijnende berichten zijn niet toegestaan in dit gesprek.</string>
|
||||
<string name="auth_disable_simplex_lock">SimpleX Vergrendelen uitschakelen</string>
|
||||
<string name="timed_messages">Verdwijnende berichten</string>
|
||||
<string name="smp_server_test_disconnect">Verbinding verbreken</string>
|
||||
@@ -272,7 +272,7 @@
|
||||
<string name="ttl_s">%ds</string>
|
||||
<string name="button_delete_contact">Verwijder contact</string>
|
||||
<string name="smp_servers_delete_server">Server verwijderen</string>
|
||||
<string name="disappearing_messages_are_prohibited">Verdwijnende berichten zijn verboden in deze groep.</string>
|
||||
<string name="disappearing_messages_are_prohibited">Verdwijnende berichten zijn niet toegestaan.</string>
|
||||
<string name="ttl_sec">%d sec</string>
|
||||
<string name="ttl_m">%dm</string>
|
||||
<string name="ttl_mth">%dmth</string>
|
||||
@@ -338,9 +338,9 @@
|
||||
<string name="feature_enabled">ingeschakeld</string>
|
||||
<string name="feature_enabled_for_contact">ingeschakeld voor contact</string>
|
||||
<string name="feature_enabled_for_you">voor u ingeschakeld</string>
|
||||
<string name="group_members_can_delete">Groepsleden kunnen verzonden berichten onomkeerbaar verwijderen. (24 uur)</string>
|
||||
<string name="group_members_can_send_dms">Groepsleden kunnen directe berichten sturen</string>
|
||||
<string name="group_members_can_send_voice">Groepsleden kunnen spraak berichten verzenden.</string>
|
||||
<string name="group_members_can_delete">Leden kunnen verzonden berichten definitief verwijderen. (24 uur)</string>
|
||||
<string name="group_members_can_send_dms">Leden kunnen directe berichten sturen.</string>
|
||||
<string name="group_members_can_send_voice">Leden kunnen spraak berichten verzenden.</string>
|
||||
<string name="v4_5_transport_isolation_descr">Per chatprofiel (standaard) of per verbinding (BETA).</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">Verschillende namen, avatars en transportisolatie.</string>
|
||||
<string name="v4_4_french_interface">Franse interface</string>
|
||||
@@ -373,7 +373,7 @@
|
||||
<string name="gallery_video_button">Video</string>
|
||||
<string name="error_saving_ICE_servers">Fout bij opslaan van ICE servers</string>
|
||||
<string name="callstate_ended">geëindigd</string>
|
||||
<string name="group_members_can_send_disappearing">Groepsleden kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="group_members_can_send_disappearing">Leden kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="ttl_week">%d week</string>
|
||||
<string name="ttl_w">%dw</string>
|
||||
<string name="ttl_weeks">%d weken</string>
|
||||
@@ -396,7 +396,7 @@
|
||||
<string name="icon_descr_image_snd_complete">Afbeelding verzonden</string>
|
||||
<string name="live_message">Live bericht!</string>
|
||||
<string name="if_you_received_simplex_invitation_link_you_can_open_in_browser">Als je een uitnodiging link voor SimpleX Chat hebt ontvangen, kun je deze in je browser openen:</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Dit kan later worden gewijzigd via instellingen.</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Hoe dit de batterij beïnvloedt</string>
|
||||
<string name="join_group_question">Deelnemen aan groep\?</string>
|
||||
<string name="icon_descr_add_members">Nodig leden uit</string>
|
||||
<string name="no_contacts_selected">Geen contacten geselecteerd</string>
|
||||
@@ -439,7 +439,7 @@
|
||||
<string name="button_leave_group">Groep verlaten</string>
|
||||
<string name="info_row_local_name">Lokale naam</string>
|
||||
<string name="users_delete_data_only">Alleen lokale profielgegevens</string>
|
||||
<string name="message_deletion_prohibited_in_chat">Het onomkeerbaar verwijderen van berichten is verboden in deze groep.</string>
|
||||
<string name="message_deletion_prohibited_in_chat">Het definitief verwijderen van berichten is niet toegestaan.</string>
|
||||
<string name="v4_3_improved_privacy_and_security_desc">App scherm verbergen in de recente apps.</string>
|
||||
<string name="settings_section_title_incognito">Incognito modus</string>
|
||||
<string name="messages_section_title">Berichten</string>
|
||||
@@ -458,7 +458,7 @@
|
||||
<string name="v4_5_reduced_battery_usage_descr">Meer verbeteringen volgen snel!</string>
|
||||
<string name="button_add_members">Nodig leden uit</string>
|
||||
<string name="notification_display_mode_hidden_desc">Verberg contact en bericht</string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[Om het te gebruiken, kunt u Simplex in het volgende dialoogvenster \u0020<b>op de achtergrond uitvoeren</b>. Anders worden de meldingen uitgeschakeld.]]></string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[<b>Sta dit toe</b> in het volgende dialoogvenster om direct meldingen te ontvangen.]]></string>
|
||||
<string name="if_you_choose_to_reject_the_sender_will_not_be_notified">Als u ervoor kiest om te weigeren, wordt de afzender NIET op de hoogte gesteld.</string>
|
||||
<string name="onboarding_notifications_mode_service">Onmiddellijk</string>
|
||||
<string name="rcv_group_event_member_added">heeft %1$s uitgenodigd</string>
|
||||
@@ -508,7 +508,7 @@
|
||||
<string name="network_use_onion_hosts_no">Nee</string>
|
||||
<string name="immune_to_spam_and_abuse">Immuun voor spam</string>
|
||||
<string name="make_private_connection">Maak een privéverbinding</string>
|
||||
<string name="message_deletion_prohibited">Het onomkeerbaar verwijderen van berichten is verboden in dit gesprek.</string>
|
||||
<string name="message_deletion_prohibited">Het definitief verwijderen van berichten is niet toegestaan in dit gesprek.</string>
|
||||
<string name="new_in_version">Nieuw in %s</string>
|
||||
<string name="v4_3_voice_messages_desc">Max 40 seconden, direct ontvangen.</string>
|
||||
<string name="v4_3_improved_server_configuration">Verbeterde serverconfiguratie</string>
|
||||
@@ -552,7 +552,7 @@
|
||||
<string name="chat_preferences_on">aan</string>
|
||||
<string name="only_you_can_send_disappearing">Alleen jij kunt verdwijnende berichten verzenden.</string>
|
||||
<string name="only_your_contact_can_send_disappearing">Alleen uw contact kan verdwijnende berichten verzenden.</string>
|
||||
<string name="only_you_can_delete_messages">Alleen u kunt berichten onomkeerbaar verwijderen (uw contact kan ze markeren voor verwijdering). (24 uur)</string>
|
||||
<string name="only_you_can_delete_messages">Alleen u kunt berichten definitief verwijderen (uw contact kan ze markeren voor verwijdering). (24 uur)</string>
|
||||
<string name="feature_offered_item_with_param">voorgesteld %s: %2s</string>
|
||||
<string name="old_database_archive">Oud database archief</string>
|
||||
<string name="enter_correct_current_passphrase">Voer het juiste huidige wachtwoord in.</string>
|
||||
@@ -581,7 +581,7 @@
|
||||
<string name="only_your_contact_can_delete">Alleen uw contact kan berichten onherroepelijk verwijderen (u kunt ze markeren voor verwijdering). (24 uur)</string>
|
||||
<string name="only_you_can_send_voice">Alleen jij kunt spraak berichten verzenden.</string>
|
||||
<string name="only_your_contact_can_send_voice">Alleen uw contact kan spraak berichten verzenden.</string>
|
||||
<string name="prohibit_message_deletion">Verbied het onomkeerbaar verwijderen van berichten.</string>
|
||||
<string name="prohibit_message_deletion">Verbied het definitief verwijderen van berichten.</string>
|
||||
<string name="feature_offered_item">voorgesteld %s</string>
|
||||
<string name="store_passphrase_securely_without_recover">Sla het wachtwoord veilig op. Als u deze kwijtraakt, heeft u GEEN toegang tot de chats.</string>
|
||||
<string name="store_passphrase_securely">Bewaar het wachtwoord veilig, u kunt deze NIET wijzigen als u deze kwijtraakt.</string>
|
||||
@@ -590,7 +590,7 @@
|
||||
<string name="icon_descr_call_pending_sent">Oproep in behandeling</string>
|
||||
<string name="simplex_link_mode_browser_warning">Het openen van de link in de browser kan de privacy en beveiliging van de verbinding verminderen. Niet vertrouwde SimpleX links worden rood weergegeven.</string>
|
||||
<string name="contact_developers">Werk de app bij en neem contact op met de ontwikkelaars.</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Alleen client apparaten slaan gebruikers profielen, contacten, groepen en berichten op die zijn verzonden met <b>2-laags end-to-end codering</b>.]]></string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Alleen clientapparaten slaan gebruikersprofielen, contacten, groepen en berichten op.</string>
|
||||
<string name="sender_may_have_deleted_the_connection_request">De afzender heeft mogelijk het verbindingsverzoek verwijderd.</string>
|
||||
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">Schakel SimpleX Vergrendelen in om uw informatie te beschermen.
|
||||
\nU wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingeschakeld.</string>
|
||||
@@ -611,7 +611,7 @@
|
||||
<string name="your_profile_is_stored_on_your_device">Uw profiel, contacten en afgeleverde berichten worden op uw apparaat opgeslagen.</string>
|
||||
<string name="callstate_starting">beginnen…</string>
|
||||
<string name="icon_descr_video_on">Video aan</string>
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</string>
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan definitief verloren.</string>
|
||||
<string name="messages_section_description">Deze instelling is van toepassing op berichten in uw huidige chatprofiel</string>
|
||||
<string name="rcv_group_event_updated_group_profile">bijgewerkt groep profiel</string>
|
||||
<string name="group_member_status_removed">verwijderd</string>
|
||||
@@ -710,10 +710,9 @@
|
||||
<string name="you_can_use_markdown_to_format_messages__prompt">U kunt markdown gebruiken voor opmaak in berichten:</string>
|
||||
<string name="callstatus_rejected">geweigerde oproep</string>
|
||||
<string name="secret_text">geheim</string>
|
||||
<string name="next_generation_of_private_messaging">De volgende generatie
|
||||
\nprivéberichten</string>
|
||||
<string name="next_generation_of_private_messaging">De toekomst van berichtenuitwisseling</string>
|
||||
<string name="callstate_waiting_for_answer">wachten op antwoord…</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Om de privacy te beschermen, heeft SimpleX in plaats van gebruikers-ID\'s die door alle andere platforms worden gebruikt, ID\'s voor berichten wachtrijen, afzonderlijk voor elk van uw contacten.</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Om uw privacy te beschermen, gebruikt SimpleX voor elk van uw contacten afzonderlijke ID\'s.</string>
|
||||
<string name="use_chat">Gebruik chat</string>
|
||||
<string name="onboarding_notifications_mode_off">Wanneer de app actief is</string>
|
||||
<string name="video_call_no_encryption">video gesprek (niet e2e versleuteld)</string>
|
||||
@@ -764,7 +763,7 @@
|
||||
<string name="group_is_decentralized">Volledig gedecentraliseerd – alleen zichtbaar voor leden.</string>
|
||||
<string name="network_option_tcp_connection_timeout">Timeout van TCP-verbinding</string>
|
||||
<string name="voice_messages">Spraak berichten</string>
|
||||
<string name="voice_prohibited_in_this_chat">Spraak berichten zijn verboden in dit gesprek.</string>
|
||||
<string name="voice_prohibited_in_this_chat">Spraak berichten zijn niet toegestaan in dit gesprek.</string>
|
||||
<string name="prohibit_sending_disappearing">Verbied het verzenden van verdwijnende berichten.</string>
|
||||
<string name="v4_5_reduced_battery_usage">Verminderd batterijgebruik</string>
|
||||
<string name="v4_5_private_filenames_descr">Om de tijdzone te beschermen, gebruiken afbeeldings-/spraakbestanden UTC.</string>
|
||||
@@ -804,7 +803,7 @@
|
||||
<string name="reset_color">Kleuren resetten</string>
|
||||
<string name="theme_system">Systeem</string>
|
||||
<string name="chat_preferences_yes">ja</string>
|
||||
<string name="feature_received_prohibited">gekregen, verboden</string>
|
||||
<string name="feature_received_prohibited">gekregen, niet toegestaan</string>
|
||||
<string name="your_preferences">Jouw voorkeuren</string>
|
||||
<string name="accept_feature_set_1_day">Stel 1 dag in</string>
|
||||
<string name="whats_new">Wat is er nieuw</string>
|
||||
@@ -824,7 +823,7 @@
|
||||
<string name="voice_message_send_text">Spraakbericht…</string>
|
||||
<string name="voice_message_with_duration">Spraakbericht (%1$s)</string>
|
||||
<string name="text_field_set_contact_placeholder">Contactnaam instellen…</string>
|
||||
<string name="voice_messages_prohibited">Spraak berichten verboden!</string>
|
||||
<string name="voice_messages_prohibited">Spraak berichten niet toegestaan!</string>
|
||||
<string name="reset_verb">Resetten</string>
|
||||
<string name="send_verb">Verstuur</string>
|
||||
<string name="send_live_message_desc">Stuur een live bericht, het wordt bijgewerkt voor de ontvanger(s) terwijl u het typt</string>
|
||||
@@ -886,21 +885,20 @@
|
||||
<string name="this_string_is_not_a_connection_link">Deze string is geen verbinding link!</string>
|
||||
<string name="enable_automatic_deletion_message">Deze actie kan niet ongedaan worden gemaakt, de berichten die eerder zijn verzonden en ontvangen dan geselecteerd, worden verwijderd. Het kan enkele minuten duren.</string>
|
||||
<string name="switch_receiving_address_desc">Het ontvangstadres wordt gewijzigd naar een andere server. Adres wijziging wordt voltooid nadat de afzender online is.</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Om je privacy te behouden, heeft de app in plaats van push meldingen een <b>SimpleX achtergrond service</b> - deze gebruikt een paar procent van de batterij per dag.]]></string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Om de privacy te verbeteren, <b>draait SimpleX op de achtergrond</b> in plaats van pushmeldingen te gebruiken.]]></string>
|
||||
<string name="chat_preferences_you_allow">Jij staat toe</string>
|
||||
<string name="you_are_invited_to_group">Je bent uitgenodigd voor de groep</string>
|
||||
<string name="you_can_connect_to_simplex_chat_founder"><![CDATA[U kunt <font color="#0088ff">verbinding maken met SimpleX Chat ontwikkelaars om vragen te stellen en updates te ontvangen</font>.]]></string>
|
||||
<string name="connection_error_auth_desc">Tenzij uw contact de verbinding heeft verwijderd of deze link al is gebruikt, kan het een bug zijn. Meld het alstublieft.
|
||||
\nOm verbinding te maken, vraagt u uw contact om een andere verbinding link te maken en te controleren of u een stabiele netwerkverbinding heeft.</string>
|
||||
<string name="use_simplex_chat_servers__question">SimpleX Chat servers gebruiken\?</string>
|
||||
<string name="voice_messages_are_prohibited">Spraak berichten zijn verboden in deze groep.</string>
|
||||
<string name="voice_messages_are_prohibited">Spraak berichten zijn niet toegestaan.</string>
|
||||
<string name="personal_welcome">Welkom %1$s!</string>
|
||||
<string name="you_can_start_chat_via_setting_or_by_restarting_the_app">U kunt de chat starten via app Instellingen / Database of door de app opnieuw op te starten.</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed_for_member">je hebt het adres gewijzigd voor %s</string>
|
||||
<string name="snd_group_event_member_deleted">je hebt %1$s verwijderd</string>
|
||||
<string name="contact_sent_large_file">Je contact heeft een bestand verzonden dat groter is dan de momenteel ondersteunde maximale grootte (%1$s).</string>
|
||||
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">Uw huidige chatdatabase wordt VERWIJDERD en VERVANGEN door de geïmporteerde.
|
||||
\nDeze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</string>
|
||||
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">Uw huidige chatdatabase wordt VERWIJDERD en VERVANGEN door de geïmporteerde. \nDeze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan definitief verloren.</string>
|
||||
<string name="invite_prohibited_description">Je probeert een contact met wie je een incognito profiel hebt gedeeld uit te nodigen voor de groep waarin je je hoofdprofiel gebruikt</string>
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">Uw profiel wordt op uw apparaat opgeslagen en alleen gedeeld met uw contacten. SimpleX servers kunnen uw profiel niet zien.</string>
|
||||
<string name="auth_you_will_be_required_to_authenticate_when_you_start_or_resume">U moet zich authenticeren wanneer u de app na 30 seconden op de achtergrond start of hervat.</string>
|
||||
@@ -1090,7 +1088,7 @@
|
||||
<string name="available_in_v51">"
|
||||
\nBeschikbaar in v5.1"</string>
|
||||
<string name="prohibit_calls">Audio/video gesprekken verbieden.</string>
|
||||
<string name="calls_prohibited_with_this_contact">Audio/video gesprekken zijn verboden.</string>
|
||||
<string name="calls_prohibited_with_this_contact">Audio/video gesprekken zijn niet toegestaan.</string>
|
||||
<string name="v5_0_large_files_support_descr">Snel en niet wachten tot de afzender online is!</string>
|
||||
<string name="v5_0_app_passcode">App toegangscode</string>
|
||||
<string name="v5_0_app_passcode_descr">Stel het in in plaats van systeemverificatie.</string>
|
||||
@@ -1165,19 +1163,19 @@
|
||||
<string name="self_destruct_passcode_enabled">Zelfvernietigings wachtwoord ingeschakeld!</string>
|
||||
<string name="app_passcode_replaced_with_self_destruct">De app-toegangscode wordt vervangen door een zelfvernietigings wachtwoord.</string>
|
||||
<string name="if_you_enter_self_destruct_code">Als u uw zelfvernietigings wachtwoord invoert tijdens het openen van de app:</string>
|
||||
<string name="if_you_enter_passcode_data_removed">Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens onomkeerbaar verwijderd!</string>
|
||||
<string name="if_you_enter_passcode_data_removed">Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens definitief verwijderd!</string>
|
||||
<string name="set_passcode">Toegangscode instellen</string>
|
||||
<string name="prohibit_message_reactions">Bericht reacties verbieden.</string>
|
||||
<string name="only_you_can_add_message_reactions">Alleen jij kunt bericht reacties toevoegen.</string>
|
||||
<string name="message_reactions_are_prohibited">Reacties op berichten zijn verboden in deze groep.</string>
|
||||
<string name="message_reactions_are_prohibited">Reacties op berichten zijn niet toegestaan.</string>
|
||||
<string name="prohibit_message_reactions_group">Berichten reacties verbieden.</string>
|
||||
<string name="allow_message_reactions_only_if">Sta bericht reacties alleen toe als uw contact dit toestaat.</string>
|
||||
<string name="allow_your_contacts_adding_message_reactions">Sta uw contactpersonen toe om bericht reacties toe te voegen.</string>
|
||||
<string name="allow_message_reactions">Sta bericht reacties toe.</string>
|
||||
<string name="group_members_can_add_message_reactions">Groepsleden kunnen bericht reacties toevoegen.</string>
|
||||
<string name="group_members_can_add_message_reactions">Leden kunnen reacties op berichten toevoegen.</string>
|
||||
<string name="both_you_and_your_contact_can_add_message_reactions">Zowel u als uw contact kunnen bericht reacties toevoegen.</string>
|
||||
<string name="message_reactions">Reacties op berichten</string>
|
||||
<string name="message_reactions_prohibited_in_this_chat">Reacties op berichten zijn verboden in deze chat.</string>
|
||||
<string name="message_reactions_prohibited_in_this_chat">Reacties op berichten zijn niet toegestaan in deze chat.</string>
|
||||
<string name="only_your_contact_can_add_message_reactions">Alleen uw contact kan bericht reacties toevoegen.</string>
|
||||
<string name="custom_time_unit_days">dagen</string>
|
||||
<string name="custom_time_unit_hours">uren</string>
|
||||
@@ -1241,14 +1239,14 @@
|
||||
<string name="abort_switch_receiving_address_confirm">Afbreken</string>
|
||||
<string name="no_filtered_chats">Geen gefilterde chats</string>
|
||||
<string name="only_owners_can_enable_files_and_media">Alleen groep eigenaren kunnen bestanden en media inschakelen.</string>
|
||||
<string name="files_are_prohibited_in_group">Bestanden en media zijn verboden in deze groep.</string>
|
||||
<string name="files_are_prohibited_in_group">Bestanden en media zijn niet toegestaan.</string>
|
||||
<string name="favorite_chat">Favoriet</string>
|
||||
<string name="files_and_media_prohibited">Bestanden en media verboden!</string>
|
||||
<string name="files_and_media_prohibited">Bestanden en media niet toegestaan!</string>
|
||||
<string name="unfavorite_chat">Niet favoriet</string>
|
||||
<string name="files_and_media">Bestanden en media</string>
|
||||
<string name="prohibit_sending_files">Verbied het verzenden van bestanden en media.</string>
|
||||
<string name="allow_to_send_files">Sta toe om bestanden en media te verzenden.</string>
|
||||
<string name="group_members_can_send_files">Groepsleden kunnen bestanden en media verzenden.</string>
|
||||
<string name="group_members_can_send_files">Leden kunnen bestanden en media verzenden.</string>
|
||||
<string name="search_verb">Zoeken</string>
|
||||
<string name="la_mode_off">Uit</string>
|
||||
<string name="network_option_protocol_timeout_per_kb">Protocol timeout per KB</string>
|
||||
@@ -1722,10 +1720,10 @@
|
||||
<string name="feature_roles_admins">beheerders</string>
|
||||
<string name="feature_roles_all_members">alle leden</string>
|
||||
<string name="feature_roles_owners">eigenaren</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">SimpleX-links zijn in deze groep verboden.</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">SimpleX-links zijn niet toegestaan.</string>
|
||||
<string name="feature_enabled_for">Ingeschakeld voor</string>
|
||||
<string name="allow_to_send_simplex_links">Sta het verzenden van SimpleX-links toe.</string>
|
||||
<string name="group_members_can_send_simplex_links">Groepsleden kunnen SimpleX-links verzenden.</string>
|
||||
<string name="group_members_can_send_simplex_links">Leden kunnen SimpleX-links verzenden.</string>
|
||||
<string name="saved_description">opgeslagen</string>
|
||||
<string name="saved_from_description">opgeslagen van %s</string>
|
||||
<string name="forward_chat_item">Doorsturen</string>
|
||||
@@ -1988,7 +1986,7 @@
|
||||
<string name="allow_calls_question">Oproepen toestaan?</string>
|
||||
<string name="info_view_call_button">bellen</string>
|
||||
<string name="cant_call_member_alert_title">Kan geen groepslid bellen</string>
|
||||
<string name="calls_prohibited_alert_title">Bellen verboden!</string>
|
||||
<string name="calls_prohibited_alert_title">Bellen niet toegestaan!</string>
|
||||
<string name="confirm_delete_contact_question">Contact verwijderen bevestigen?</string>
|
||||
<string name="conversation_deleted">Gesprek verwijderd!</string>
|
||||
<string name="delete_without_notification">Verwijderen zonder melding</string>
|
||||
@@ -2009,7 +2007,7 @@
|
||||
<string name="info_view_open_button">open</string>
|
||||
<string name="paste_link">Plak de link</string>
|
||||
<string name="action_button_add_members">Uitnodiging</string>
|
||||
<string name="one_hand_ui">Toegankelijke chatwerkbalk</string>
|
||||
<string name="one_hand_ui">Bereikbare app-toolbars</string>
|
||||
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Vraag uw contactpersoon om oproepen in te schakelen.</string>
|
||||
<string name="no_filtered_contacts">Geen gefilterde contacten</string>
|
||||
<string name="select_verb">Selecteer</string>
|
||||
@@ -2144,7 +2142,7 @@
|
||||
<string name="or_to_share_privately">Of om privé te delen</string>
|
||||
<string name="address_settings">Adres instellingen</string>
|
||||
<string name="create_1_time_link">Eenmalige link maken</string>
|
||||
<string name="onboarding_choose_server_operators">Operators kiezen</string>
|
||||
<string name="onboarding_choose_server_operators">Serverbeheerders</string>
|
||||
<string name="onboarding_network_operators_conditions_will_be_accepted">Voor ingeschakelde operators worden de voorwaarden na 30 dagen geaccepteerd.</string>
|
||||
<string name="onboarding_network_operators">Netwerkbeheerders</string>
|
||||
<string name="onboarding_network_operators_review_later">Later beoordelen</string>
|
||||
@@ -2209,4 +2207,40 @@
|
||||
<string name="operator_use_for_sending">Om te verzenden</string>
|
||||
<string name="onboarding_network_operators_configure_via_settings">U kunt servers configureren via instellingen.</string>
|
||||
<string name="chat_archive">Of importeer archiefbestand</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">Directe berichten tussen leden zijn in deze chat niet toegestaan.</string>
|
||||
<string name="remote_hosts_section">Externe mobiele telefoons</string>
|
||||
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Xiaomi-apparaten</b>: schakel Automatisch starten in de systeeminstellingen in om meldingen te laten werken.]]></string>
|
||||
<string name="maximum_message_size_title">Bericht is te groot!</string>
|
||||
<string name="maximum_message_size_reached_text">Verklein het bericht en verstuur het opnieuw.</string>
|
||||
<string name="maximum_message_size_reached_forwarding">U kunt het bericht kopiëren en verkleinen om het te verzenden.</string>
|
||||
<string name="add_your_team_members_to_conversations">Voeg uw teamleden toe aan de gesprekken.</string>
|
||||
<string name="business_address">Zakelijk adres</string>
|
||||
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Alle berichten en bestanden worden <b>end-to-end-versleuteld</b> verzonden, met post-kwantumbeveiliging in directe berichten.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc_short">App draait altijd op de achtergrond</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc_short">Controleer berichten elke 10 minuten</string>
|
||||
<string name="onboarding_notifications_mode_battery">Meldingen en batterij</string>
|
||||
<string name="how_it_helps_privacy">Hoe het de privacy helpt</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">U ontvangt geen berichten meer van deze chat. De chatgeschiedenis blijft bewaard.</string>
|
||||
<string name="leave_chat_question">Chat verlaten?</string>
|
||||
<string name="button_add_friends">Vrienden toevoegen</string>
|
||||
<string name="button_add_team_members">Teamleden toevoegen</string>
|
||||
<string name="invite_to_chat_button">Uitnodigen voor een chat</string>
|
||||
<string name="delete_chat_for_self_cannot_undo_warning">De chat wordt voor je verwijderd - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="info_row_chat">Chat</string>
|
||||
<string name="direct_messages_are_prohibited">Directe berichten tussen leden zijn niet toegestaan.</string>
|
||||
<string name="connect_plan_chat_already_exists">Chat bestaat al!</string>
|
||||
<string name="button_delete_chat">Chat verwijderen</string>
|
||||
<string name="delete_chat_question">Chat verwijderen?</string>
|
||||
<string name="button_leave_chat">Chat verlaten</string>
|
||||
<string name="member_will_be_removed_from_chat_cannot_be_undone">Lid wordt verwijderd uit de chat - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="member_role_will_be_changed_with_notification_chat">De rol wordt gewijzigd naar %s. Iedereen in de chat wordt op de hoogte gebracht.</string>
|
||||
<string name="chat_main_profile_sent">Uw chatprofiel wordt naar chatleden verzonden</string>
|
||||
<string name="v6_2_business_chats_descr">Privacy voor uw klanten.</string>
|
||||
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[U bent al verbonden met <b>%1$s</b>.]]></string>
|
||||
<string name="delete_chat_for_all_members_cannot_undo_warning">De chat wordt voor alle leden verwijderd - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="chat_bottom_bar">Bereikbare chat-toolbar</string>
|
||||
<string name="v6_2_business_chats">Zakelijke chats</string>
|
||||
<string name="onboarding_notifications_mode_off_desc_short">Geen achtergrondservice</string>
|
||||
<string name="only_chat_owners_can_change_prefs">Alleen chateigenaren kunnen voorkeuren wijzigen.</string>
|
||||
<string name="maximum_message_size_reached_non_text">Verklein de berichtgrootte of verwijder de media en verzend het bericht opnieuw.</string>
|
||||
</resources>
|
||||
@@ -420,8 +420,7 @@
|
||||
<string name="callstate_starting">uruchamianie…</string>
|
||||
<string name="strikethrough_text">strajk</string>
|
||||
<string name="first_platform_without_user_ids">Brak identyfikatorów użytkownika.</string>
|
||||
<string name="next_generation_of_private_messaging">Następna generacja
|
||||
\nprywatnych wiadomości</string>
|
||||
<string name="next_generation_of_private_messaging">Następna generacja \nprywatnych wiadomości</string>
|
||||
<string name="callstate_waiting_for_answer">oczekiwanie na odpowiedź…</string>
|
||||
<string name="callstate_waiting_for_confirmation">oczekiwanie na potwierdzenie…</string>
|
||||
<string name="you_can_use_markdown_to_format_messages__prompt">Możesz używać markdown do formatowania wiadomości:</string>
|
||||
|
||||
@@ -849,8 +849,7 @@
|
||||
<string name="to_start_a_new_chat_help_header">Para começar um novo bate-papo</string>
|
||||
<string name="la_notice_turn_on">Ligar</string>
|
||||
<string name="welcome">Bem-vindo(a)!</string>
|
||||
<string name="next_generation_of_private_messaging">A próxima geração
|
||||
\nde mensageiros privados</string>
|
||||
<string name="next_generation_of_private_messaging">A próxima geração \nde mensageiros privados</string>
|
||||
<string name="settings_section_title_socks">PROXY SOCKS</string>
|
||||
<string name="database_backup_can_be_restored">A tentativa de alterar a senha do banco de dados não foi concluída.</string>
|
||||
<string name="stop_chat_to_export_import_or_delete_chat_database">Pare o bate-papo para exportar, importar ou excluir o banco de dados do chat. Você não poderá receber e enviar mensagens enquanto o chat estiver interrompido.</string>
|
||||
|
||||
@@ -88,9 +88,9 @@
|
||||
<string name="icon_descr_instant_notifications">Мгновенные уведомления</string>
|
||||
<string name="service_notifications">Мгновенные уведомления!</string>
|
||||
<string name="service_notifications_disabled">Мгновенные уведомления выключены!</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Чтобы защитить Ваши личные данные, вместо уведомлений от сервера приложение запускает <b>фоновый сервис SimpleX</b>, который потребляет несколько процентов батареи в день.]]></string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Чтобы улучшить конфиденциальность, <b>SimpleX выполняется в фоне</b> вместо уведомлений через сервер.]]></string>
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><![CDATA[<b>Он может быть выключен через Настройки</b> – Вы продолжите получать уведомления о сообщениях пока приложение запущено.]]></string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[Для использования этой функции, <b>разрешите SimpleX выполняться в фоне</b> в следующем диалоге. Иначе уведомления будут выключены.]]></string>
|
||||
<string name="turn_off_battery_optimization"><![CDATA[<b>Разрешите это</b> в следующем окне чтобы получать нотификации мгновенно.]]></string>
|
||||
<string name="turning_off_service_and_periodic">Оптимизация батареи включена, поэтому сервис уведомлений выключен. Вы можете снова включить его через Настройки.</string>
|
||||
<string name="periodic_notifications">Периодические уведомления</string>
|
||||
<string name="periodic_notifications_disabled">Периодические уведомления выключены!</string>
|
||||
@@ -463,7 +463,7 @@
|
||||
<string name="callstate_connected">соединено</string>
|
||||
<string name="callstate_ended">завершен</string>
|
||||
<!-- SimpleXInfo -->
|
||||
<string name="next_generation_of_private_messaging">Новое поколение\nприватных сообщений</string>
|
||||
<string name="next_generation_of_private_messaging">Будущее коммуникаций</string>
|
||||
<string name="privacy_redefined">Более конфиденциальный</string>
|
||||
<string name="first_platform_without_user_ids">Без идентификаторов пользователей.</string>
|
||||
<string name="immune_to_spam_and_abuse">Защищен от спама</string>
|
||||
@@ -475,8 +475,8 @@
|
||||
<string name="how_it_works">Как это работает</string>
|
||||
<!-- How SimpleX Works -->
|
||||
<string name="how_simplex_works">Как SimpleX работает</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Чтобы защитить Вашу конфиденциальность, вместо ID пользователей, которые есть в других платформах, SimpleX использует ID для очередей сообщений, разные для каждого контакта.</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Только пользовательские устройства хранят контакты, группы и сообщения, которые отправляются <b>с двухуровневым end-to-end шифрованием</b>.]]></string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Чтобы защитить Вашу конфиденциальность, SimpleX использует разные ID для всех ваших контактов.</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Только пользовательские устройства хранят контакты, группы и сообщения.</string>
|
||||
<string name="read_more_in_github_with_link"><![CDATA[Узнайте больше из нашего <font color="#0088ff">GitHub репозитория</font>.]]></string>
|
||||
<!-- SetNotificationsMode.kt -->
|
||||
<string name="use_chat">Использовать чат</string>
|
||||
@@ -878,12 +878,12 @@
|
||||
<string name="prohibit_message_deletion">Запретить необратимое удаление сообщений.</string>
|
||||
<string name="allow_to_send_voice">Разрешить отправлять голосовые сообщения.</string>
|
||||
<string name="prohibit_sending_voice">Запретить отправлять голосовые сообщений.</string>
|
||||
<string name="group_members_can_send_dms">Члены группы могут посылать прямые сообщения.</string>
|
||||
<string name="group_members_can_send_dms">Члены могут посылать прямые сообщения.</string>
|
||||
<string name="direct_messages_are_prohibited_in_group">Прямые сообщения между членами группы запрещены.</string>
|
||||
<string name="group_members_can_delete">Члены группы могут необратимо удалять отправленные сообщения. (24 часа)</string>
|
||||
<string name="message_deletion_prohibited_in_chat">Необратимое удаление сообщений запрещено в этой группе.</string>
|
||||
<string name="group_members_can_send_voice">Члены группы могут отправлять голосовые сообщения.</string>
|
||||
<string name="voice_messages_are_prohibited">Голосовые сообщения запрещены в этой группе.</string>
|
||||
<string name="group_members_can_delete">Члены могут необратимо удалять отправленные сообщения. (24 часа)</string>
|
||||
<string name="message_deletion_prohibited_in_chat">Необратимое удаление сообщений запрещено.</string>
|
||||
<string name="group_members_can_send_voice">Члены могут отправлять голосовые сообщения.</string>
|
||||
<string name="voice_messages_are_prohibited">Голосовые сообщения запрещены.</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Минимальный расход батареи</b>. Вы получите уведомления только когда приложение запущено, без фонового сервиса.]]></string>
|
||||
<string name="onboarding_notifications_mode_title">Уведомления</string>
|
||||
<string name="onboarding_notifications_mode_off">Когда приложение запущено</string>
|
||||
@@ -891,7 +891,7 @@
|
||||
<string name="onboarding_notifications_mode_service">Мгновенно</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Больше расход батареи</b>! Приложение постоянно запущено в фоне - уведомления будут показаны сразу же.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Меньше расход батареи</b>. Приложение проверяет сообщения каждые 10 минут. Вы можете пропустить звонки и срочные сообщения.]]></string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Можно изменить позже в настройках.</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Как это влияет на потребление энергии</string>
|
||||
<string name="live">LIVE</string>
|
||||
<string name="send_live_message">Отправить живое сообщение</string>
|
||||
<string name="live_message">Живое сообщение!</string>
|
||||
@@ -927,7 +927,7 @@
|
||||
<string name="send_live_message_desc">Отправить живое сообщение — оно будет обновляться для получателей по мере того, как Вы его вводите</string>
|
||||
<string name="create_group_link">Создать ссылку группы</string>
|
||||
<string name="prohibit_sending_disappearing_messages">Запретить отправлять исчезающие сообщения.</string>
|
||||
<string name="disappearing_messages_are_prohibited">Исчезающие сообщения запрещены в этой группе.</string>
|
||||
<string name="disappearing_messages_are_prohibited">Исчезающие сообщения запрещены.</string>
|
||||
<string name="ttl_w">%dнед</string>
|
||||
<string name="ttl_d">%dд</string>
|
||||
<string name="ttl_weeks">%d нед.</string>
|
||||
@@ -940,7 +940,7 @@
|
||||
<string name="clear_verification">Сбросить подтверждение</string>
|
||||
<string name="allow_disappearing_messages_only_if">Разрешить исчезающие сообщения, только если Ваш контакт разрешает их Вам.</string>
|
||||
<string name="prohibit_sending_disappearing">Запретить посылать исчезающие сообщения.</string>
|
||||
<string name="group_members_can_send_disappearing">Члены группы могут посылать исчезающие сообщения.</string>
|
||||
<string name="group_members_can_send_disappearing">Члены могут посылать исчезающие сообщения.</string>
|
||||
<string name="whats_new">Что нового</string>
|
||||
<string name="new_in_version">Новое в %s</string>
|
||||
<string name="v4_2_security_assessment">Аудит безопасности</string>
|
||||
@@ -1193,7 +1193,7 @@
|
||||
<string name="set_passcode">Установить код доступа</string>
|
||||
<string name="edit_history">История</string>
|
||||
<string name="info_menu">Информация</string>
|
||||
<string name="auth_open_chat_profiles">Открыть профили чата</string>
|
||||
<string name="auth_open_chat_profiles">Изменить профили чата</string>
|
||||
<string name="received_message">Полученное сообщение</string>
|
||||
<string name="sent_message">Отправленное сообщение</string>
|
||||
<string name="disappearing_message">Исчезающее сообщение</string>
|
||||
@@ -1227,9 +1227,9 @@
|
||||
<string name="allow_message_reactions">Разрешить реакции на сообщения.</string>
|
||||
<string name="allow_message_reactions_only_if">Разрешить реакции на сообщения, только если ваш контакт разрешает их.</string>
|
||||
<string name="allow_your_contacts_adding_message_reactions">Разрешить контактам добавлять реакции на сообщения.</string>
|
||||
<string name="group_members_can_add_message_reactions">Члены группы могут добавлять реакции на сообщения.</string>
|
||||
<string name="group_members_can_add_message_reactions">Члены могут добавлять реакции на сообщения.</string>
|
||||
<string name="message_reactions_prohibited_in_this_chat">Реакции на сообщения в этом чате запрещены.</string>
|
||||
<string name="message_reactions_are_prohibited">Реакции на сообщения запрещены в этой группе.</string>
|
||||
<string name="message_reactions_are_prohibited">Реакции на сообщения запрещены.</string>
|
||||
<string name="only_your_contact_can_add_message_reactions">Только Ваш контакт может добавлять реакции на сообщения.</string>
|
||||
<string name="prohibit_message_reactions">Запретить реакции на сообщения.</string>
|
||||
<string name="prohibit_message_reactions_group">Запретить реакции на сообщения.</string>
|
||||
@@ -1348,8 +1348,8 @@
|
||||
<string name="shutdown_alert_desc">Нотификации перестанут работать, пока вы не перезапустите приложение</string>
|
||||
<string name="network_option_protocol_timeout_per_kb">Таймаут протокола на KB</string>
|
||||
<string name="allow_to_send_files">Разрешить посылать файлы и медиа.</string>
|
||||
<string name="group_members_can_send_files">Члены группы могут слать файлы и медиа.</string>
|
||||
<string name="files_are_prohibited_in_group">Файлы и медиа запрещены в этой группе.</string>
|
||||
<string name="group_members_can_send_files">Члены могут слать файлы и медиа.</string>
|
||||
<string name="files_are_prohibited_in_group">Файлы и медиа запрещены.</string>
|
||||
<string name="files_and_media_prohibited">Файлы и медиа запрещены!</string>
|
||||
<string name="only_owners_can_enable_files_and_media">Только владельцы группы могут разрешить файлы и медиа.</string>
|
||||
<string name="files_and_media">Файлы и медиа</string>
|
||||
@@ -1818,7 +1818,7 @@
|
||||
<string name="simplex_links">Ссылки SimpleX</string>
|
||||
<string name="allow_to_send_simplex_links">Разрешить отправлять ссылки SimpleX.</string>
|
||||
<string name="prohibit_sending_simplex_links">Запретить отправку ссылок SimpleX</string>
|
||||
<string name="group_members_can_send_simplex_links">Члены группы могут отправлять ссылки SimpleX</string>
|
||||
<string name="group_members_can_send_simplex_links">Члены могут отправлять ссылки SimpleX</string>
|
||||
<string name="feature_roles_admins">админы</string>
|
||||
<string name="feature_roles_all_members">все члены</string>
|
||||
<string name="feature_roles_owners">владельцы</string>
|
||||
@@ -1828,7 +1828,7 @@
|
||||
<string name="feature_enabled_for">Включено для</string>
|
||||
<string name="forward_chat_item">Переслать</string>
|
||||
<string name="v5_7_forward">Переслать и сохранить сообщение</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">Ссылки SimpleX запрещены в этой группе.</string>
|
||||
<string name="simplex_links_are_prohibited_in_group">Ссылки SimpleX запрещены.</string>
|
||||
<string name="forward_message">Переслать сообщение…</string>
|
||||
<string name="v5_7_new_interface_languages">Литовский интерфейс</string>
|
||||
<string name="v5_7_forward_descr">Источник сообщения остаётся конфиденциальным.</string>
|
||||
@@ -2021,7 +2021,7 @@
|
||||
<string name="privacy_media_blur_radius_soft">Слабое</string>
|
||||
<string name="privacy_media_blur_radius_medium">Среднее</string>
|
||||
<string name="privacy_media_blur_radius_off">Выключено</string>
|
||||
<string name="one_hand_ui">Доступная панель чата</string>
|
||||
<string name="one_hand_ui">Доступная панель приложения</string>
|
||||
<string name="current_user">Текущий профиль</string>
|
||||
<string name="servers_info_missing">Нет информации, попробуйте перезагрузить</string>
|
||||
<string name="servers_info">Информация о серверах</string>
|
||||
@@ -2199,4 +2199,135 @@
|
||||
<string name="network_proxy_auth_mode_username_password">Ваши учетные данные могут быть отправлены в незашифрованном виде.</string>
|
||||
<string name="migrate_from_device_remove_archive_question">Удалить архив?</string>
|
||||
<string name="migrate_from_device_uploaded_archive_will_be_removed">Загруженный архив базы данных будет навсегда удален с серверов.</string>
|
||||
<string name="operator_conditions_accepted">Принятые условия</string>
|
||||
<string name="accept_conditions">Принять условия</string>
|
||||
<string name="no_message_servers_configured">Нет серверов сообщений.</string>
|
||||
<string name="no_message_servers_configured_for_receiving">Нет серверов для приема сообщений.</string>
|
||||
<string name="errors_in_servers_configuration">Ошибки в настройках серверов.</string>
|
||||
<string name="for_chat_profile">Для профиля %s:</string>
|
||||
<string name="no_media_servers_configured">Нет серверов файлов и медиа.</string>
|
||||
<string name="no_media_servers_configured_for_private_routing">Нет серверов для приема файлов.</string>
|
||||
<string name="no_media_servers_configured_for_sending">Нет серверов для отправки файлов.</string>
|
||||
<string name="connection_error_quota">Недоставленные сообщения</string>
|
||||
<string name="address_creation_instruction">Нажмите Создать адрес SimpleX в меню, чтобы создать его позже.</string>
|
||||
<string name="address_or_1_time_link">Адрес или одноразовая ссылка?</string>
|
||||
<string name="connection_security">Безопасность соединения</string>
|
||||
<string name="onboarding_choose_server_operators">Операторы серверов</string>
|
||||
<string name="your_servers">Ваши серверы</string>
|
||||
<string name="view_conditions">Посмотреть условия</string>
|
||||
<string name="operator_review_conditions">Посмотреть условия</string>
|
||||
<string name="operators_conditions_accepted_for"><![CDATA[Условия приняты для оператора(ов): <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_accepted_for_enabled_operators_on">Условия будут автоматически приняты для включенных операторов: %s</string>
|
||||
<string name="operator_conditions_accepted_on">Условия приняты: %s.</string>
|
||||
<string name="operator_website">Вебсайт</string>
|
||||
<string name="operator_conditions_accepted_for_some"><![CDATA[Условия уже приняты для следующих операторов: <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_will_be_applied"><![CDATA[Эти условия также будут применены к: <b>%s</b>.]]></string>
|
||||
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[Чтобы использовать серверы оператора <b>%s</b>, примите условия использования.]]></string>
|
||||
<string name="operator_use_for_sending">Для оправки</string>
|
||||
<string name="operator_added_message_servers">Дополнительные серверы сообщений</string>
|
||||
<string name="operator_use_for_files">Использовать для файлов</string>
|
||||
<string name="operator_open_conditions">Открыть условия</string>
|
||||
<string name="error_adding_server">Ошибка добавления сервера</string>
|
||||
<string name="operator_server_alert_title">Сервер оператора</string>
|
||||
<string name="server_added_to_operator__name">Сервер добавлен к оператору %s.</string>
|
||||
<string name="appearance_app_toolbars">Тулбары приложения</string>
|
||||
<string name="appearance_in_app_bars_alpha">Прозрачность</string>
|
||||
<string name="v6_2_network_decentralization">Децентрализация сети</string>
|
||||
<string name="v6_2_network_decentralization_descr">Второй оператор серверов в приложении!</string>
|
||||
<string name="v6_2_network_decentralization_enable_flux">Включить Flux</string>
|
||||
<string name="v6_2_network_decentralization_enable_flux_reason">для лучшей конфиденциальности метаданных.</string>
|
||||
<string name="v6_2_improved_chat_navigation">Улучшенная навигация в разговоре</string>
|
||||
<string name="view_updated_conditions">Посмотреть измененные условия</string>
|
||||
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Устройства Xiaomi</b>: пожалуйста, включите опцию Autostart в системных настройках для работы нотификаций.]]></string>
|
||||
<string name="message_deleted_or_not_received_error_title">Нет сообщения</string>
|
||||
<string name="message_deleted_or_not_received_error_desc">Это сообщение было удалено или еще не получено.</string>
|
||||
<string name="maximum_message_size_title">Сообщение слишком большое!</string>
|
||||
<string name="maximum_message_size_reached_text">Пожалуйста, уменьшите размер сообщения и отправьте снова.</string>
|
||||
<string name="maximum_message_size_reached_non_text">Пожалуйста, уменьшите размер сообщения или уберите медиа и отправьте снова.</string>
|
||||
<string name="maximum_message_size_reached_forwarding">Чтобы отправить сообщение, скопируйте и уменьшите его размер.</string>
|
||||
<string name="share_1_time_link_with_a_friend">Поделитесь одноразовой ссылкой с другом</string>
|
||||
<string name="share_address_publicly">Поделитесь адресом</string>
|
||||
<string name="share_simplex_address_on_social_media">Поделитесь SimpleX адресом в социальных сетях.</string>
|
||||
<string name="simplex_address_and_1_time_links_are_safe_to_share">Адрес SimpleX и одноразовые ссылки безопасно отправлять через любой мессенджер.</string>
|
||||
<string name="you_can_set_connection_name_to_remember">Вы можете установить имя соединения, чтобы запомнить кому Вы отправили ссылку.</string>
|
||||
<string name="smp_servers_new_server">Новый сервер</string>
|
||||
<string name="create_1_time_link">Создать одноразовую ссылку</string>
|
||||
<string name="for_social_media">Для социальных сетей</string>
|
||||
<string name="or_to_share_privately">Или поделиться конфиденциально</string>
|
||||
<string name="simplex_address_or_1_time_link">Адрес SimpleX или одноразовая ссылка?</string>
|
||||
<string name="address_settings">Настройки адреса</string>
|
||||
<string name="add_your_team_members_to_conversations">Добавьте сотрудников в разговор.</string>
|
||||
<string name="business_address">Бизнес адрес</string>
|
||||
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Все сообщения и файлы отправляются с <b>end-to-end шифрованием</b>, с пост-квантовой безопасностью в прямых разговорах.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc_short">Приложение всегда выполняется в фоне</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc_short">Проверять сообщения каждые 10 минут</string>
|
||||
<string name="onboarding_notifications_mode_off_desc_short">Без фонового сервиса</string>
|
||||
<string name="onboarding_notifications_mode_battery">Нотификации и батарейка</string>
|
||||
<string name="how_it_helps_privacy">Как это улучшает конфиденциальность</string>
|
||||
<string name="onboarding_network_operators">Операторы серверов</string>
|
||||
<string name="onboarding_select_network_operators_to_use">Выберите операторов сети.</string>
|
||||
<string name="onboarding_network_operators_conditions_you_can_configure">Вы можете настроить операторов в настройках Сеть и серверы.</string>
|
||||
<string name="onboarding_network_operators_continue">Продолжить</string>
|
||||
<string name="onboarding_network_operators_review_later">Посмотреть позже</string>
|
||||
<string name="onboarding_network_operators_update">Обновить</string>
|
||||
<string name="remote_hosts_section">Связанные мобильные устройства</string>
|
||||
<string name="leave_chat_question">Покинуть разговор?</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">Вы прекратите получать сообщения в этом разговоре. История будет сохранена.</string>
|
||||
<string name="button_add_friends">Добавить друзей</string>
|
||||
<string name="button_add_team_members">Добавить сотрудников</string>
|
||||
<string name="button_delete_chat">Удалить разговор</string>
|
||||
<string name="delete_chat_question">Удалить разговор?</string>
|
||||
<string name="invite_to_chat_button">Пригласить в разговор</string>
|
||||
<string name="delete_chat_for_all_members_cannot_undo_warning">Разговор будет удален для всех участников - это действие нельзя отменить!</string>
|
||||
<string name="operator">Оператор</string>
|
||||
<string name="operator_servers_title">%s серверы</string>
|
||||
<string name="operators_conditions_will_be_accepted_for"><![CDATA[Условия будут приняты для оператора(ов): <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_will_be_accepted_on">Условия будут приняты: %s</string>
|
||||
<string name="operator_info_title">Оператор сети</string>
|
||||
<string name="use_servers_of_operator_x">Использовать %s</string>
|
||||
<string name="operator_use_operator_toggle_description">Использовать серверы</string>
|
||||
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Условия будут приняты для оператора(ов): <b>%s</b>.]]></string>
|
||||
<string name="operators_conditions_will_also_apply"><![CDATA[Эти условия также будут применены к: <b>%s</b>.]]></string>
|
||||
<string name="chat_archive">Или импортировать файл архива</string>
|
||||
<string name="chat_bottom_bar">Доступная панель чата</string>
|
||||
<string name="delete_chat_for_self_cannot_undo_warning">Разговор будет удален для Вас - это действие нельзя отменить!</string>
|
||||
<string name="button_leave_chat">Покинуть разговор</string>
|
||||
<string name="only_chat_owners_can_change_prefs">Только владельцы разговора могут поменять предпочтения.</string>
|
||||
<string name="operator_conditions_failed_to_load">Текст условий использования не может быть показан, вы можете посмотреть их через ссылку:</string>
|
||||
<string name="info_row_chat">Разговор</string>
|
||||
<string name="member_will_be_removed_from_chat_cannot_be_undone">Член будет удален из разговора - это действие нельзя отменить!</string>
|
||||
<string name="network_preset_servers_title">Серверы по умолчанию</string>
|
||||
<string name="member_role_will_be_changed_with_notification_chat">Роль будет изменена на %s. Все участники разговора получат уведомление.</string>
|
||||
<string name="chat_main_profile_sent">Ваш профиль будет отправлен участникам разговора.</string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[Те же самые условия будут приняты для оператора <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Те же самые условия будут приняты для оператора(ов): <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_of_use">Условия использования</string>
|
||||
<string name="operator_added_xftp_servers">Дополнительные серверы файлов и медиа</string>
|
||||
<string name="error_updating_server_title">Ошибка сохранения сервера</string>
|
||||
<string name="operator_use_for_messages_private_routing">Для доставки сообщений</string>
|
||||
<string name="operator_open_changes">Открыть изменения</string>
|
||||
<string name="error_server_operator_changed">Оператор серверов изменен.</string>
|
||||
<string name="error_server_protocol_changed">Протокол сервера изменен.</string>
|
||||
<string name="xftp_servers_per_user">Серверы для новых файлов Вашего текущего профиля</string>
|
||||
<string name="operator_use_for_messages_receiving">Для получения</string>
|
||||
<string name="operator_use_for_messages">Использовать для сообщений</string>
|
||||
<string name="appearance_bars_blur_radius">Размыть</string>
|
||||
<string name="direct_messages_are_prohibited">Прямые сообщения между членами запрещены.</string>
|
||||
<string name="v6_2_business_chats">Бизнес разговоры</string>
|
||||
<string name="v6_2_improved_chat_navigation_descr">- Открывает разговор на первом непрочитанном сообщении.\n- Перейти к цитируемому сообщению.</string>
|
||||
<string name="v6_2_business_chats_descr">Конфиденциальность для ваших покупателей.</string>
|
||||
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Вы уже соединены с <b>%1$s</b>.]]></string>
|
||||
<string name="connect_plan_chat_already_exists">Разговор уже существует!</string>
|
||||
<string name="one_time_link_can_be_used_with_one_contact_only"><![CDATA[Одноразовая ссылка может быть использована <i>только с одним контактом</i> - поделитесь при встрече или через любой мессенджер.]]></string>
|
||||
<string name="no_message_servers_configured_for_private_routing">Нет серверов для доставки сообщений.</string>
|
||||
<string name="onboarding_network_operators_configure_via_settings">Вы можете настроить серверы позже.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_different_operators">Приложение улучшает конфиденциальность используя разных операторов в каждом разговоре.</string>
|
||||
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем.</string>
|
||||
<string name="failed_to_save_servers">Ошибка сохранения серверов</string>
|
||||
<string name="onboarding_network_operators_conditions_will_be_accepted">Условия будут приняты для включенных операторов через 30 дней.</string>
|
||||
<string name="error_accepting_operator_conditions">Ошибка приема условий</string>
|
||||
<string name="connection_error_quota_desc">Соединение достигло предела недоставленных сообщений. Возможно, Ваш контакт не в сети.</string>
|
||||
<string name="to_protect_against_your_link_replaced_compare_codes">Чтобы защитить Вашу ссылку от замены, Вы можете сравнить код безопасности.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_for_routing">Например, если Ваш контакт получает сообщения через сервер SimpleX Chat, Ваше приложение доставит их через сервер Flux.</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">Прямые сообщения между членами запрещены в этом разговоре.</string>
|
||||
</resources>
|
||||
@@ -1162,8 +1162,7 @@
|
||||
<string name="colored_text">кольоровий</string>
|
||||
<string name="callstatus_ended">дзвінок завершено %1$s</string>
|
||||
<string name="callstatus_error">помилка дзвінка</string>
|
||||
<string name="next_generation_of_private_messaging">Наступне покоління
|
||||
\nприватних повідомлень</string>
|
||||
<string name="next_generation_of_private_messaging">Наступне покоління \nприватних повідомлень</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Кожен може хостити сервери.</string>
|
||||
<string name="settings_developer_tools">Інструменти розробника</string>
|
||||
<string name="settings_experimental_features">Експериментальні функції</string>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -7,7 +7,7 @@ import androidx.compose.runtime.*
|
||||
actual fun QRCodeScanner(
|
||||
showQRCodeScanner: MutableState<Boolean>,
|
||||
padding: PaddingValues,
|
||||
onBarcode: (String) -> Unit
|
||||
onBarcode: suspend (String) -> Boolean
|
||||
) {
|
||||
//LALAL
|
||||
}
|
||||
|
||||
@@ -24,11 +24,11 @@ android.nonTransitiveRClass=true
|
||||
kotlin.mpp.androidSourceSetLayoutVersion=2
|
||||
kotlin.jvm.target=11
|
||||
|
||||
android.version_name=6.2-beta.5
|
||||
android.version_code=256
|
||||
android.version_name=6.2-beta.6
|
||||
android.version_code=258
|
||||
|
||||
desktop.version_name=6.2-beta.5
|
||||
desktop.version_code=80
|
||||
desktop.version_name=6.2-beta.6
|
||||
desktop.version_code=81
|
||||
|
||||
kotlin.version=1.9.23
|
||||
gradle.plugin.version=8.2.0
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ constraints: zip +disable-bzip2 +disable-zstd
|
||||
source-repository-package
|
||||
type: git
|
||||
location: https://github.com/simplex-chat/simplexmq.git
|
||||
tag: 966b9990e0bf5fdb701f79b6efd722baddd1ee1d
|
||||
tag: 3f177b8c8a91de124dfe871af82bd7433f275efb
|
||||
|
||||
source-repository-package
|
||||
type: git
|
||||
|
||||
Generated
+281
-469
@@ -16,21 +16,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"blank": {
|
||||
"locked": {
|
||||
"lastModified": 1625557891,
|
||||
"narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=",
|
||||
"owner": "divnix",
|
||||
"repo": "blank",
|
||||
"rev": "5a5d2684073d9f563072ed07c871d577a6c614a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "blank",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cabal-32": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -98,64 +83,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1663445644,
|
||||
"narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dmerge": {
|
||||
"inputs": {
|
||||
"nixlib": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
],
|
||||
"yants": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"yants"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1659548052,
|
||||
"narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=",
|
||||
"owner": "divnix",
|
||||
"repo": "data-merge",
|
||||
"rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "data-merge",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -173,74 +100,34 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1650374568,
|
||||
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||
"lastModified": 1698579227,
|
||||
"narHash": "sha256-KVWjFZky+gRuWennKsbo6cWyo7c/z/VgCte5pR9pEKg=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f76e870d64779109e41370848074ac4eaa1606ec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1676283394,
|
||||
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
|
||||
"type": "github"
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -266,33 +153,51 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gomod2nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"utils": "utils"
|
||||
},
|
||||
"ghc98X": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1655245309,
|
||||
"narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=",
|
||||
"owner": "tweag",
|
||||
"repo": "gomod2nix",
|
||||
"rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58",
|
||||
"type": "github"
|
||||
"lastModified": 1715066704,
|
||||
"narHash": "sha256-F0EVR8x/fcpj1st+hz96Wdsz5uwVIOziGKAwRxLOYJw=",
|
||||
"ref": "ghc-9.8",
|
||||
"rev": "78a253543d466ac511a1664a3e6aff032ca684d5",
|
||||
"revCount": 61757,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tweag",
|
||||
"repo": "gomod2nix",
|
||||
"type": "github"
|
||||
"ref": "ghc-9.8",
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
}
|
||||
},
|
||||
"ghc99": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726585445,
|
||||
"narHash": "sha256-IdwQBex4boY6s0Plj5+ixf36rfYSUyMdTWrztKvZH30=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "7fd9e5e29ab54eb406880077463e8552e2ddd39a",
|
||||
"revCount": 67238,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
},
|
||||
"original": {
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
}
|
||||
},
|
||||
"hackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1702340598,
|
||||
"narHash": "sha256-CC0HI+6iKPtH+8r/ZfcpW5v/OYvL7zMwpr0xfkXV1zU=",
|
||||
"lastModified": 1702513363,
|
||||
"narHash": "sha256-kloro9uEe8aYhPMoMjVNq2rfrXNgMOZhOPwVH5DH2K0=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"rev": "24617c569995e38bf3b83b48eec6628a50fdb4fb",
|
||||
"rev": "a9d931d0398da67846fa257922a924829233cb91",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -309,33 +214,43 @@
|
||||
"cabal-36": "cabal-36",
|
||||
"cardano-shell": "cardano-shell",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk",
|
||||
"ghc98X": "ghc98X",
|
||||
"ghc99": "ghc99",
|
||||
"hackage": [
|
||||
"hackage"
|
||||
],
|
||||
"hls-1.10": "hls-1.10",
|
||||
"hls-2.0": "hls-2.0",
|
||||
"hls-2.2": "hls-2.2",
|
||||
"hls-2.3": "hls-2.3",
|
||||
"hls-2.4": "hls-2.4",
|
||||
"hls-2.5": "hls-2.5",
|
||||
"hls-2.6": "hls-2.6",
|
||||
"hpc-coveralls": "hpc-coveralls",
|
||||
"hydra": "hydra",
|
||||
"iserv-proxy": "iserv-proxy",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
"haskellNix",
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"nixpkgs-2003": "nixpkgs-2003",
|
||||
"nixpkgs-2105": "nixpkgs-2105",
|
||||
"nixpkgs-2111": "nixpkgs-2111",
|
||||
"nixpkgs-2205": "nixpkgs-2205",
|
||||
"nixpkgs-2211": "nixpkgs-2211",
|
||||
"nixpkgs-2305": "nixpkgs-2305",
|
||||
"nixpkgs-2311": "nixpkgs-2311",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"old-ghc-nix": "old-ghc-nix",
|
||||
"stackage": "stackage",
|
||||
"tullia": "tullia"
|
||||
"stackage": "stackage"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1677975916,
|
||||
"narHash": "sha256-dbe8lEEPyfzjdRwpePClv7J9p9lQg7BwbBqAMCw4RLw=",
|
||||
"lastModified": 1705833500,
|
||||
"narHash": "sha256-rUIr6JNbCedt1g4gVYVvE9t0oFU6FUspCA0DS5cA8Bg=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "haskell.nix",
|
||||
"rev": "ab5efd87ce3fd8ade38a01d97693d29a4f1ae7e4",
|
||||
"rev": "d0c35e75cbbc6858770af42ac32b0b85495fbd71",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -345,6 +260,125 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-1.10": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1680000865,
|
||||
"narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "1.10.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.0": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1687698105,
|
||||
"narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "783905f211ac63edf982dd1889c671653327e441",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.0.0.1",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1693064058,
|
||||
"narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.2.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1695910642,
|
||||
"narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.3.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1699862708,
|
||||
"narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.4.0.1",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.5": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1701080174,
|
||||
"narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "27f8c3d3892e38edaef5bea3870161815c4d014c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.5.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.6": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1705325287,
|
||||
"narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.6.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hpc-coveralls": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -384,37 +418,14 @@
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"incl": {
|
||||
"inputs": {
|
||||
"nixlib": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1669263024,
|
||||
"narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=",
|
||||
"owner": "divnix",
|
||||
"repo": "incl",
|
||||
"rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "incl",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"iserv-proxy": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1670983692,
|
||||
"narHash": "sha256-avLo34JnI9HNyOuauK5R69usJm+GfW3MlyGlYxZhTgY=",
|
||||
"lastModified": 1707968597,
|
||||
"narHash": "sha256-C53NqToxl+n9s1pQ0iLtiH6P5vX3rM+NW/mFt4Ykpsk=",
|
||||
"ref": "hkm/remote-iserv",
|
||||
"rev": "50d0abb3317ac439a4e7495b185a64af9b7b9300",
|
||||
"revCount": 10,
|
||||
"rev": "1b7f8aeb37bbc7c00f04e44d9379aa15a4409e8b",
|
||||
"revCount": 18,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"
|
||||
},
|
||||
@@ -440,32 +451,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"n2c": {
|
||||
"mac2ios": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1665039323,
|
||||
"narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a",
|
||||
"lastModified": 1699767871,
|
||||
"narHash": "sha256-kxeCUfwC/Vgh2FvVMlBUq0eVx1JvfHyN+5MPKUik9mE=",
|
||||
"owner": "zw3rk",
|
||||
"repo": "mobile-core-tools",
|
||||
"rev": "4dcb77d5ea896d749381806dfab5358851b08951",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"owner": "zw3rk",
|
||||
"repo": "mobile-core-tools",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -490,95 +491,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-nomad": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"nix2container",
|
||||
"flake-utils"
|
||||
],
|
||||
"gomod2nix": "gomod2nix",
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-lib": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1658277770,
|
||||
"narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=",
|
||||
"owner": "tristanpemble",
|
||||
"repo": "nix-nomad",
|
||||
"rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tristanpemble",
|
||||
"repo": "nix-nomad",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix2container": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1658567952,
|
||||
"narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "60bb43d405991c1378baf15a40b5811a53e32ffa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixago-exts": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1661824785,
|
||||
"narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1657693803,
|
||||
@@ -645,11 +557,11 @@
|
||||
},
|
||||
"nixpkgs-2205": {
|
||||
"locked": {
|
||||
"lastModified": 1672580127,
|
||||
"narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=",
|
||||
"lastModified": 1685573264,
|
||||
"narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0874168639713f547c05947c76124f78441ea46c",
|
||||
"rev": "380be19fbd2d9079f677978361792cb25e8a3635",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -661,11 +573,11 @@
|
||||
},
|
||||
"nixpkgs-2211": {
|
||||
"locked": {
|
||||
"lastModified": 1675730325,
|
||||
"narHash": "sha256-uNvD7fzO5hNlltNQUAFBPlcEjNG5Gkbhl/ROiX+GZU4=",
|
||||
"lastModified": 1688392541,
|
||||
"narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b7ce17b1ebf600a72178f6302c77b6382d09323f",
|
||||
"rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -675,6 +587,56 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2305": {
|
||||
"locked": {
|
||||
"lastModified": 1705033721,
|
||||
"narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-23.05-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2311": {
|
||||
"locked": {
|
||||
"lastModified": 1719957072,
|
||||
"narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7144d6241f02d171d25fba3edeaf15e0f2592105",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-23.11-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"dir": "lib",
|
||||
"lastModified": 1696019113,
|
||||
"narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"dir": "lib",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
@@ -693,98 +655,36 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1675758091,
|
||||
"narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=",
|
||||
"lastModified": 1694822471,
|
||||
"narHash": "sha256-6fSDCj++lZVMZlyqOe9SIOL8tYSBz1bI8acwovRwoX8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87",
|
||||
"rev": "47585496bcb13fb72e4a90daeea2f434e2501998",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "47585496bcb13fb72e4a90daeea2f434e2501998",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1653581809,
|
||||
"narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=",
|
||||
"lastModified": 1698434055,
|
||||
"narHash": "sha256-Phxi5mUKSoL7A0IYUiYtkI9e8NcGaaV5PJEaJApU1Ko=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "83658b28fe638a170a19b8933aa008b30640fbd1",
|
||||
"rev": "1a3c95e3b23b3cdb26750621c08cc2f1560cb883",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "nixos-23.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1654807842,
|
||||
"narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fc909087cc3386955f21b4665731dbdaceefb1d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1665087388,
|
||||
"narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1676726892,
|
||||
"narHash": "sha256-M7OYVR6dKmzmlebIjybFf3l18S2uur8lMyWWnHQooLY=",
|
||||
"owner": "angerman",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "729469087592bdea58b360de59dadf6d58714c42",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "angerman",
|
||||
"ref": "release-22.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nosys": {
|
||||
"locked": {
|
||||
"lastModified": 1667881534,
|
||||
"narHash": "sha256-FhwJ15uPLRsvaxtt/bNuqE/ykMpNAPF0upozFKhTtXM=",
|
||||
"owner": "divnix",
|
||||
"repo": "nosys",
|
||||
"rev": "2d0d5207f6a230e9d0f660903f8db9807b54814f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "nosys",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"old-ghc-nix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -807,17 +707,21 @@
|
||||
"flake-utils": "flake-utils",
|
||||
"hackage": "hackage",
|
||||
"haskellNix": "haskellNix",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
"mac2ios": "mac2ios",
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"nixpkgs-2305"
|
||||
]
|
||||
}
|
||||
},
|
||||
"stackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1677888571,
|
||||
"narHash": "sha256-YkhRNOaN6QVagZo1cfykYV8KqkI8/q6r2F5+jypOma4=",
|
||||
"lastModified": 1726532152,
|
||||
"narHash": "sha256-LRXbVY3M2S8uQWdwd2zZrsnVPEvt2GxaHGoy8EFFdJA=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "stackage.nix",
|
||||
"rev": "cb50e6fabdfb2d7e655059039012ad0623f06a27",
|
||||
"rev": "c77b3530cebad603812cb111c6f64968c2d2337d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -826,110 +730,18 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"std": {
|
||||
"inputs": {
|
||||
"arion": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"blank": "blank",
|
||||
"devshell": "devshell",
|
||||
"dmerge": "dmerge",
|
||||
"flake-utils": "flake-utils_4",
|
||||
"incl": "incl",
|
||||
"makes": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"microvm": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"n2c": "n2c",
|
||||
"nixago": "nixago",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nosys": "nosys",
|
||||
"yants": "yants"
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1674526466,
|
||||
"narHash": "sha256-tMTaS0bqLx6VJ+K+ZT6xqsXNpzvSXJTmogkraBGzymg=",
|
||||
"owner": "divnix",
|
||||
"repo": "std",
|
||||
"rev": "516387e3d8d059b50e742a2ff1909ed3c8f82826",
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "std",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tullia": {
|
||||
"inputs": {
|
||||
"nix-nomad": "nix-nomad",
|
||||
"nix2container": "nix2container",
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"std": "std"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1675695930,
|
||||
"narHash": "sha256-B7rEZ/DBUMlK1AcJ9ajnAPPxqXY6zW2SBX+51bZV0Ac=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "tullia",
|
||||
"rev": "621365f2c725608f381b3ad5b57afef389fd4c31",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"repo": "tullia",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"yants": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1667096281,
|
||||
"narHash": "sha256-wRRec6ze0gJHmGn6m57/zhz/Kdvp9HS4Nl5fkQ+uIuA=",
|
||||
"owner": "divnix",
|
||||
"repo": "yants",
|
||||
"rev": "d18f356ec25cb94dc9c275870c3a7927a10f8c3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "yants",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
description = "nix flake for simplex-chat";
|
||||
inputs.nixpkgs.url = "github:angerman/nixpkgs/release-22.11";
|
||||
inputs.haskellNix.url = "github:input-output-hk/haskell.nix/armv7a";
|
||||
inputs.haskellNix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.nixpkgs.follows = "haskellNix/nixpkgs-2305";
|
||||
inputs.mac2ios.url = "github:zw3rk/mobile-core-tools";
|
||||
inputs.hackage = {
|
||||
url = "github:input-output-hk/hackage.nix";
|
||||
flake = false;
|
||||
};
|
||||
inputs.haskellNix.inputs.hackage.follows = "hackage";
|
||||
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||
outputs = { self, haskellNix, nixpkgs, flake-utils, ... }:
|
||||
outputs = { self, haskellNix, nixpkgs, flake-utils, mac2ios, ... }:
|
||||
let systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; in
|
||||
flake-utils.lib.eachSystem systems (system:
|
||||
# this android26 overlay makes the pkgsCross.{aarch64-android,armv7a-android-prebuilt} to set stdVer to 26 (Android 8).
|
||||
@@ -30,7 +30,7 @@
|
||||
# `appendOverlays` with a singleton is identical to `extend`.
|
||||
let pkgs = haskellNix.legacyPackages.${system}.appendOverlays [android26]; in
|
||||
let drv' = { extra-modules, pkgs', ... }: pkgs'.haskell-nix.project {
|
||||
compiler-nix-name = "ghc8107";
|
||||
compiler-nix-name = "ghc963";
|
||||
index-state = "2023-12-12T00:00:00Z";
|
||||
# We need this, to specify we want the cabal project.
|
||||
# If the stack.yaml was dropped, this would not be necessary.
|
||||
@@ -40,9 +40,12 @@
|
||||
src = ./.;
|
||||
};
|
||||
sha256map = import ./scripts/nix/sha256map.nix;
|
||||
modules = [{
|
||||
modules = [
|
||||
({ pkgs, lib, ...}: lib.mkIf (!pkgs.stdenv.hostPlatform.isWindows) {
|
||||
# This patch adds `dl` as an extra-library to direct-sqlciper, which is needed
|
||||
# on pretty much all unix platforms, but then blows up on windows m(
|
||||
packages.direct-sqlcipher.patches = [ ./scripts/nix/direct-sqlcipher-2.3.27.patch ];
|
||||
}
|
||||
})
|
||||
({ pkgs,lib, ... }: lib.mkIf (pkgs.stdenv.hostPlatform.isAndroid) {
|
||||
packages.simplex-chat.components.library.ghcOptions = [ "-pie" ];
|
||||
})] ++ extra-modules;
|
||||
@@ -64,6 +67,9 @@
|
||||
}); in
|
||||
let iosPostInstall = bundleName: ''
|
||||
${pkgs.tree}/bin/tree $out
|
||||
mkdir tmp
|
||||
find ./dist -name "libHS*-ghc*.a" -exec cp {} tmp \;
|
||||
(cd tmp; ${pkgs.tree}/bin/tree .; ar x libHS*.a; for o in *.o; do if /usr/bin/otool -xv $o|grep ldadd ; then echo $o; fi; done; cd ..; rm -fR tmp)
|
||||
mkdir -p $out/_pkg
|
||||
# copy over includes, we might want those, but maybe not.
|
||||
# cp -r $out/lib/*/*/include $out/_pkg/
|
||||
@@ -74,6 +80,18 @@
|
||||
find ${pkgs.gmp6.override { withStatic = true; }}/lib -name "*.a" -exec cp {} $out/_pkg \;
|
||||
# There is no static libc
|
||||
${pkgs.tree}/bin/tree $out/_pkg
|
||||
for pkg in $out/_pkg/*.a; do
|
||||
chmod +w $pkg
|
||||
${mac2ios.packages.${system}.mac2ios}/bin/mac2ios $pkg
|
||||
chmod -w $pkg
|
||||
done
|
||||
|
||||
mkdir tmp
|
||||
find $out/_pkg -name "libHS*-ghc*.a" -exec cp {} tmp \;
|
||||
(cd tmp; ${pkgs.tree}/bin/tree .; ar x libHS*.a; for o in *.o; do if /usr/bin/otool -xv $o|grep ldadd ; then echo $o; fi; done; cd ..; rm -fR tmp)
|
||||
|
||||
sha256sum $out/_pkg/*.a
|
||||
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/${bundleName}.zip *)
|
||||
rm -fR $out/_pkg
|
||||
mkdir -p $out/nix-support
|
||||
@@ -119,13 +137,150 @@
|
||||
hardeningDisable = [ "fortify" ];
|
||||
}
|
||||
);in {
|
||||
# STATIC x86_64-linux
|
||||
"${pkgs.pkgsCross.musl64.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.musl64).simplex-chat.components.exes.simplex-chat;
|
||||
"${pkgs.pkgsCross.musl32.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.musl32).simplex-chat.components.exes.simplex-chat;
|
||||
# STATIC i686-linux
|
||||
"${pkgs.pkgsCross.musl32.hostPlatform.system}-static:exe:simplex-chat" = (drv' {
|
||||
pkgs' = pkgs.pkgsCross.musl32;
|
||||
extra-modules = [{
|
||||
# 32 bit patches
|
||||
packages.basement.patches = [
|
||||
./scripts/nix/basement-pr-573.patch
|
||||
];
|
||||
packages.memory.patches = [
|
||||
./scripts/nix/memory-pr-99.patch
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.exes.simplex-chat;
|
||||
# WINDOWS x86_64-mingwW64
|
||||
"${pkgs.pkgsCross.mingwW64.hostPlatform.system}:exe:simplex-chat" = (drv' {
|
||||
pkgs' = pkgs.pkgsCross.mingwW64;
|
||||
extra-modules = [{
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
packages.bitvec.flags.simd = false;
|
||||
packages.direct-sqlcipher.patches = [
|
||||
./scripts/nix/direct-sqlcipher-2.3.27-win.patch
|
||||
];
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
(pkgs.pkgsCross.mingwW64.openssl) #.override) # { static = true; enableKTLS = false; })
|
||||
];
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
(pkgs.pkgsCross.mingwW64.openssl) #.override) # { static = true; enableKTLS = false; })
|
||||
];
|
||||
packages.unix-time.postPatch = ''
|
||||
sed -i 's/mingwex//g' unix-time.cabal
|
||||
'';
|
||||
}];
|
||||
}).simplex-chat.components.exes.simplex-chat.override {
|
||||
postInstall = ''
|
||||
set -x
|
||||
${pkgs.tree}/bin/tree $out
|
||||
mkdir -p $out/_pkg
|
||||
cp $out/bin/* $out/_pkg
|
||||
${pkgs.tree}/bin/tree $out/_pkg
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/${pkgs.pkgsCross.mingwW64.hostPlatform.system}-simplex-chat.zip *)
|
||||
rm -fR $out/_pkg
|
||||
mkdir -p $out/nix-support
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
};
|
||||
"${pkgs.pkgsCross.mingwW64.hostPlatform.system}:lib:simplex-chat" = (drv' rec {
|
||||
pkgs' = pkgs.pkgsCross.mingwW64;
|
||||
extra-modules = [{
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
# simd will try to read __cpu_model, which we don't expose
|
||||
# from the rts (yet!).
|
||||
packages.bitvec.flags.simd = false;
|
||||
packages.direct-sqlcipher.patches = [
|
||||
./scripts/nix/direct-sqlcipher-2.3.27-win.patch
|
||||
];
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
pkgs.pkgsCross.mingwW64.openssl
|
||||
];
|
||||
packages.simplexmq.flags.client_library = true;
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
pkgs.pkgsCross.mingwW64.openssl
|
||||
];
|
||||
packages.unix-time.postPatch = ''
|
||||
sed -i 's/mingwex//g' unix-time.cabal
|
||||
'';
|
||||
}];
|
||||
}).simplex-chat.components.library
|
||||
.override (p: {
|
||||
# enableShared = false;
|
||||
setupBuildFlags = p.component.setupBuildFlags ++ map (x: "--ghc-option=${x}") [
|
||||
"-shared"
|
||||
"-threaded"
|
||||
"-o" "libsimplex.dll"
|
||||
# "-optl-lHSrts_thr"
|
||||
"-optl-lffi"
|
||||
# "-optl-static-libgcc"
|
||||
# We can't do -optl-static-libstdc++ with gcc. g++ might
|
||||
# but then we are chaning the compiler altogether.
|
||||
"${./libsimplex.dll.def}"
|
||||
];
|
||||
postInstall = ''
|
||||
set -x
|
||||
function deps() {
|
||||
${pkgs.binutils}/bin/strings "$1" | grep '.\.dll'|grep -v -E 'Winsock|ADVAPI32|dbghelp|KERNEL32|msvcrt|ntdll|ole32|RPCRT4|SHELL32|USER32|WINMM|WS2_32|kernel32|GDI32'|grep -v "$1"
|
||||
}
|
||||
${pkgs.tree}/bin/tree $out
|
||||
mkdir -p $out/_pkg
|
||||
cp libsimplex.dll $out/_pkg
|
||||
cp libsimplex.dll.a $out/_pkg
|
||||
mkdir $out/libs
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.openssl} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.libffi} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.gmp} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.stdenv.cc.cc} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.windows.mcfgthreads} -name "*.dll" -exec cp {} $out/libs \;
|
||||
|
||||
pushd $out/_pkg
|
||||
function copyDeps() {
|
||||
for dep in $(deps "$1"); do
|
||||
if [ ! -f "$dep" ]; then
|
||||
if [ ! -f ../libs/"$dep" ]; then
|
||||
echo "WARN: $1 -> $dep not found!"
|
||||
else
|
||||
cp ../libs/"$dep" .
|
||||
copyDeps "$dep"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
copyDeps libsimplex.dll
|
||||
popd
|
||||
${pkgs.tree}/bin/tree $out/_pkg
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-${pkgs.pkgsCross.mingwW64.hostPlatform.system}-libsimplex.zip *)
|
||||
rm -fR $out/_pkg
|
||||
mkdir -p $out/nix-support
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
});
|
||||
# "${pkgs.pkgsCross.muslpi.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.muslpi).simplex-chat.components.exes.simplex-chat;
|
||||
|
||||
# STATIC aarch64-linux
|
||||
"${pkgs.pkgsCross.aarch64-multiplatform-musl.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.aarch64-multiplatform-musl).simplex-chat.components.exes.simplex-chat;
|
||||
"armv7a-android:lib:support" = (drv android32Pkgs).android-support.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||
"armv7a-android:lib:support" = (drv android32Pkgs).android-support.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# we won't want -dyamic (see aarch64-android:lib:simplex-chat)
|
||||
enableShared = false;
|
||||
# we also do not want to have any dependencies listed (especially no rts!)
|
||||
enableStatic = false;
|
||||
|
||||
# This used to work with 8.10.7...
|
||||
# setupBuildFlags = p.component.setupBuildFlags ++ map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||
# ... but now with 9.6+
|
||||
# we have to do the -shared thing by hand.
|
||||
postBuild = ''
|
||||
armv7a-unknown-linux-androideabi-ghc -shared -o libsupport.so \
|
||||
-optl-Wl,-u,setLineBuffering \
|
||||
-optl-Wl,-u,pipe_std_to_socket \
|
||||
dist/build/*.a
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
||||
mkdir -p $out/_pkg
|
||||
@@ -138,14 +293,29 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
};
|
||||
"aarch64-android:lib:support" = (drv androidPkgs).android-support.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||
});
|
||||
# The android-support package is at
|
||||
# https://github.com/simplex-chat/android-support
|
||||
"aarch64-android:lib:support" = (drv androidPkgs).android-support.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# no -dynamic
|
||||
enableShared = false;
|
||||
# but also no -staticlib
|
||||
enableStatic = false;
|
||||
|
||||
# we have to do the -shared thing by hand.
|
||||
postBuild = ''
|
||||
aarch64-unknown-linux-android-ghc -shared -o libsupport.so \
|
||||
-optl-Wl,-u,setLineBuffering \
|
||||
-optl-Wl,-u,pipe_std_to_socket \
|
||||
dist/build/*.a
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
||||
mkdir -p $out/_pkg
|
||||
cp libsupport.so $out/_pkg
|
||||
ls -lah $out/_pkg/*
|
||||
${pkgs.patchelf}/bin/patchelf --remove-needed libunwind.so.1 $out/_pkg/libsupport.so
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-aarch64-android-libsupport.zip *)
|
||||
rm -fR $out/_pkg
|
||||
@@ -154,10 +324,11 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
};
|
||||
});
|
||||
"armv7a-android:lib:simplex-chat" = (drv' {
|
||||
pkgs' = android32Pkgs;
|
||||
extra-modules = [{
|
||||
packages.text.flags.simdutf = false;
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
||||
@@ -169,13 +340,56 @@
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
||||
];
|
||||
# 32 bit patches
|
||||
packages.basement.patches = [
|
||||
./scripts/nix/basement-pr-573.patch
|
||||
];
|
||||
packages.memory.patches = [
|
||||
./scripts/nix/memory-pr-99.patch
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
}).simplex-chat.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# we want -shared, but not -dyanmic, hence `enableShared = false`.
|
||||
enableShared = false;
|
||||
# we _do_ want rts, and other libs. Hence `enableStatic = true`.
|
||||
enableStatic = true;
|
||||
# for android we build a shared library, passing these arguments is a bit tricky, as
|
||||
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
||||
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsimplex.so" "-optl-lHSrts_thr" "-optl-lffi"];
|
||||
setupBuildFlags = p.component.setupBuildFlags
|
||||
# flags to tell GHC we want to produce a -shared object, and we want to also link
|
||||
# - the ffi library (ffi)
|
||||
++ map (x: "--ghc-option=${x}") [
|
||||
"-shared" "-o" "libsimplex.so"
|
||||
"-threaded"
|
||||
# "-debug"
|
||||
"-optl-lffi"
|
||||
]
|
||||
# This is fairly idiotic. LLD will strip out foreign exported
|
||||
# symbols (a GHC bug? Codegen bug?). So we need to pass `-u <sym>`
|
||||
# to ensure they stay in the produced library. Having them
|
||||
# _undefined_ and _lazy_ (lld will tell with -y <sym> that the
|
||||
# symbol is lazy), makes them _defined_. m(
|
||||
++ map (sym: "--ghc-option=-optl-Wl,-u,${sym}") [
|
||||
"chat_close_store"
|
||||
"chat_decrypt_file"
|
||||
"chat_decrypt_media"
|
||||
"chat_encrypt_file"
|
||||
"chat_encrypt_media"
|
||||
"chat_migrate_init"
|
||||
"chat_parse_markdown"
|
||||
"chat_parse_server"
|
||||
"chat_password_hash"
|
||||
"chat_read_file"
|
||||
"chat_recv_msg"
|
||||
"chat_recv_msg_wait"
|
||||
"chat_send_cmd"
|
||||
"chat_send_remote_cmd"
|
||||
"chat_valid_name"
|
||||
"chat_json_length"
|
||||
"chat_write_file"
|
||||
];
|
||||
postInstall = ''
|
||||
set -x
|
||||
${pkgs.tree}/bin/tree $out
|
||||
@@ -219,10 +433,11 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
};
|
||||
});
|
||||
"aarch64-android:lib:simplex-chat" = (drv' {
|
||||
pkgs' = androidPkgs;
|
||||
extra-modules = [{
|
||||
packages.text.flags.simdutf = false;
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
(androidPkgs.openssl.override { static = true; })
|
||||
@@ -235,12 +450,50 @@
|
||||
(androidPkgs.openssl.override { static = true; })
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
}).simplex-chat.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# we do not want a dynamically linked object, even though we _do_
|
||||
# want to produce a _shared_ object. But `shared` implied -dyanmic
|
||||
# with cabal, so we disable and pass `-shared` explicitly.
|
||||
enableShared = false;
|
||||
# we do want static (e.g. pass all dependencies in, so we get -staticlib)
|
||||
enableStatic = true;
|
||||
# for android we build a shared library, passing these arguments is a bit tricky, as
|
||||
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
||||
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsimplex.so" "-optl-lHSrts_thr" "-optl-lffi"];
|
||||
setupBuildFlags = p.component.setupBuildFlags
|
||||
# flags to tell GHC we want to produce a -shared object, and we want to also link
|
||||
# - the ffi library (ffi)
|
||||
++ map (x: "--ghc-option=${x}") [
|
||||
"-shared" "-o" "libsimplex.so"
|
||||
"-threaded"
|
||||
# "-debug"
|
||||
"-optl-lffi"
|
||||
]
|
||||
# This is fairly idiotic. LLD will strip out foreign exported
|
||||
# symbols (a GHC bug? Codegen bug?). So we need to pass `-u <sym>`
|
||||
# to ensure they stay in the produced library. Having them
|
||||
# _undefined_ and _lazy_ (lld will tell with -y <sym> that the
|
||||
# symbol is lazy), makes them _defined_. m(
|
||||
++ map (sym: "--ghc-option=-optl-Wl,-u,${sym}") [
|
||||
"chat_close_store"
|
||||
"chat_decrypt_file"
|
||||
"chat_decrypt_media"
|
||||
"chat_encrypt_file"
|
||||
"chat_encrypt_media"
|
||||
"chat_migrate_init"
|
||||
"chat_parse_markdown"
|
||||
"chat_parse_server"
|
||||
"chat_password_hash"
|
||||
"chat_read_file"
|
||||
"chat_recv_msg"
|
||||
"chat_recv_msg_wait"
|
||||
"chat_send_cmd"
|
||||
"chat_send_remote_cmd"
|
||||
"chat_valid_name"
|
||||
"chat_json_length"
|
||||
"chat_write_file"
|
||||
];
|
||||
postInstall = ''
|
||||
set -x
|
||||
${pkgs.tree}/bin/tree $out
|
||||
@@ -284,7 +537,7 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
# builds for iOS and iOS simulator
|
||||
@@ -299,7 +552,8 @@
|
||||
packages.entropy.flags.DoNotGetEntropy = true;
|
||||
packages.simplexmq.flags.client_library = true;
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
(pkgs.openssl.override { static = true; })
|
||||
# TODO: have a cross override for iOS, that sets this.
|
||||
((pkgs.openssl.override { static = true; }).overrideDerivation (old: { CFLAGS = "-mcpu=apple-a7 -march=armv8-a+norcpc" ;}))
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.library.override (
|
||||
|
||||
+1
-4
@@ -1,5 +1,5 @@
|
||||
name: simplex-chat
|
||||
version: 6.2.0.5
|
||||
version: 6.2.0.6
|
||||
#synopsis:
|
||||
#description:
|
||||
homepage: https://github.com/simplex-chat/simplex-chat#readme
|
||||
@@ -181,6 +181,3 @@ ghc-options:
|
||||
- -Wredundant-constraints
|
||||
- -Wincomplete-record-updates
|
||||
- -Wunused-type-patterns
|
||||
|
||||
default-extensions:
|
||||
- StrictData
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
trap "rm apps/multiplatform/local.properties || true; rm local.properties || true; rm /tmp/simplex.keychain || true" EXIT
|
||||
trap "rm apps/multiplatform/local.properties 2> /dev/null || true; rm local.properties 2> /dev/null || true; rm /tmp/simplex.keychain" EXIT
|
||||
echo "desktop.mac.signing.identity=Developer ID Application: SimpleX Chat Ltd (5NN7GUYB6T)" >> apps/multiplatform/local.properties
|
||||
echo "desktop.mac.signing.keychain=/tmp/simplex.keychain" >> apps/multiplatform/local.properties
|
||||
echo "desktop.mac.notarization.apple_id=$APPLE_SIMPLEX_NOTARIZATION_APPLE_ID" >> apps/multiplatform/local.properties
|
||||
@@ -10,6 +10,10 @@ echo "desktop.mac.notarization.password=$APPLE_SIMPLEX_NOTARIZATION_PASSWORD" >>
|
||||
echo "desktop.mac.notarization.team_id=5NN7GUYB6T" >> apps/multiplatform/local.properties
|
||||
echo "$APPLE_SIMPLEX_SIGNING_KEYCHAIN" | base64 --decode -o /tmp/simplex.keychain
|
||||
|
||||
security unlock-keychain -p "" /tmp/simplex.keychain
|
||||
# Adding keychain to the list of keychains.
|
||||
# Otherwise, it can find cert but exits while signing with "error: The specified item could not be found in the keychain."
|
||||
security list-keychains -s `security list-keychains | xargs` /tmp/simplex.keychain
|
||||
scripts/desktop/build-lib-mac.sh
|
||||
cd apps/multiplatform
|
||||
./gradlew packageDmg
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
security create-keychain -p "" simplex.keychain
|
||||
security set-keychain-settings -u simplex.keychain
|
||||
security add-certificates -k simplex.keychain "Developer ID Application: SimpleX Chat Ltd (5NN7GUYB6T).cer"
|
||||
security add-certificates -k simplex.keychain "Developer ID Certification Authority.cer"
|
||||
# Private key with access from any app
|
||||
security import "SimpleX Chat.p12" -P "" -k simplex.keychain -A
|
||||
# Public key
|
||||
security import "SimpleX Chat.pem" -k simplex.keychain
|
||||
@@ -8,7 +8,7 @@ function readlink() {
|
||||
|
||||
OS=linux
|
||||
ARCH=${1:-`uname -a | rev | cut -d' ' -f2 | rev`}
|
||||
GHC_VERSION=8.10.7
|
||||
GHC_VERSION=9.6.3
|
||||
|
||||
if [ "$ARCH" == "aarch64" ]; then
|
||||
COMPOSE_ARCH=arm64
|
||||
@@ -25,7 +25,7 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc
|
||||
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
||||
|
||||
rm -rf $BUILD_DIR
|
||||
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN' --ghc-options="-optl-L$(ghc --print-libdir)/rts -optl-Wl,--as-needed,-lHSrts_thr-ghc$GHC_VERSION" --constraint 'simplexmq +client_library'
|
||||
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -flink-rts -threaded' --constraint 'simplexmq +client_library'
|
||||
cd $BUILD_DIR/build
|
||||
#patchelf --add-needed libHSrts_thr-ghc${GHC_VERSION}.so libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
||||
#patchelf --add-rpath '$ORIGIN' libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
||||
|
||||
@@ -5,13 +5,14 @@ set -e
|
||||
OS=mac
|
||||
ARCH="${1:-`uname -a | rev | cut -d' ' -f1 | rev`}"
|
||||
COMPOSE_ARCH=$ARCH
|
||||
GHC_VERSION=8.10.7
|
||||
GHC_VERSION=9.6.3
|
||||
|
||||
if [ "$ARCH" == "arm64" ]; then
|
||||
ARCH=aarch64
|
||||
else
|
||||
COMPOSE_ARCH=x64
|
||||
fi
|
||||
|
||||
LIB_EXT=dylib
|
||||
LIB=libHSsimplex-chat-*-inplace-ghc*.$LIB_EXT
|
||||
GHC_LIBS_DIR=$(ghc --print-libdir)
|
||||
@@ -23,13 +24,26 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc
|
||||
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
||||
|
||||
rm -rf $BUILD_DIR
|
||||
cabal build lib:simplex-chat lib:simplex-chat --ghc-options="-optl-Wl,-rpath,@loader_path -optl-Wl,-L$GHC_LIBS_DIR/rts -optl-lHSrts_thr-ghc8.10.7 -optl-lffi" --constraint 'simplexmq +client_library'
|
||||
cabal build lib:simplex-chat lib:simplex-chat --ghc-options="-optl-Wl,-rpath,@loader_path -optl-Wl,-L$GHC_LIBS_DIR/$ARCH-osx-ghc-$GHC_VERSION -optl-lHSrts_thr-ghc$GHC_VERSION -optl-lffi" --constraint 'simplexmq +client_library'
|
||||
|
||||
cd $BUILD_DIR/build
|
||||
mkdir deps 2> /dev/null || true
|
||||
|
||||
# It's not included by default for some reason. Compiled lib tries to find system one but it's not always available
|
||||
cp $GHC_LIBS_DIR/rts/libffi.dylib ./deps
|
||||
#cp $GHC_LIBS_DIR/libffi.dylib ./deps
|
||||
(
|
||||
BUILD=$PWD
|
||||
cp /tmp/libffi-3.4.4/*-apple-darwin*/.libs/libffi.dylib $BUILD/deps || \
|
||||
( \
|
||||
cd /tmp && \
|
||||
curl --tlsv1.2 "https://gitlab.haskell.org/ghc/libffi-tarballs/-/raw/libffi-3.4.4/libffi-3.4.4.tar.gz?inline=false" -o libffi.tar.gz && \
|
||||
tar -xzvf libffi.tar.gz && \
|
||||
cd "libffi-3.4.4" && \
|
||||
./configure && \
|
||||
make && \
|
||||
cp *-apple-darwin*/.libs/libffi.dylib $BUILD/deps \
|
||||
)
|
||||
)
|
||||
|
||||
DYLIBS=`otool -L $LIB | grep @rpath | tail -n +2 | cut -d' ' -f 1 | cut -d'/' -f2`
|
||||
RPATHS=`otool -l $LIB | grep "path "| cut -d' ' -f11`
|
||||
@@ -70,6 +84,8 @@ function copy_deps() {
|
||||
}
|
||||
|
||||
copy_deps $LIB
|
||||
# Special case
|
||||
cp $(ghc --print-libdir)/$ARCH-osx-ghc-$GHC_VERSION/libHSghc-boot-th-$GHC_VERSION-ghc$GHC_VERSION.dylib deps
|
||||
rm deps/`basename $LIB`
|
||||
|
||||
cd -
|
||||
|
||||
@@ -0,0 +1,242 @@
|
||||
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||
From: Sylvain Henry <sylvain@haskus.fr>
|
||||
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||
Subject: [PATCH] Fix build on 32-bit architectures
|
||||
|
||||
---
|
||||
Basement/Bits.hs | 4 ++++
|
||||
Basement/From.hs | 24 -----------------------
|
||||
Basement/Numerical/Additive.hs | 4 ++++
|
||||
Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||
Basement/PrimType.hs | 6 +++++-
|
||||
Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/Basement/Bits.hs b/Basement/Bits.hs
|
||||
index 7eeea0f5..24520ed7 100644
|
||||
--- a/Basement/Bits.hs
|
||||
+++ b/Basement/Bits.hs
|
||||
@@ -54,8 +54,12 @@ import GHC.Int
|
||||
import Basement.Compat.Primitive
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
-- | operation over finite bits
|
||||
class FiniteBitsOps bits where
|
||||
diff --git a/Basement/From.hs b/Basement/From.hs
|
||||
index 7bbe141c..80014b3e 100644
|
||||
--- a/Basement/From.hs
|
||||
+++ b/Basement/From.hs
|
||||
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||
|
||||
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||
-#endif
|
||||
instance From (Zn64 n) Word64 where
|
||||
from = unZn64
|
||||
instance From (Zn64 n) Word128 where
|
||||
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||
from = from . unZn64
|
||||
|
||||
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||
from = naturalToWord64 . unZn
|
||||
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||
diff --git a/Basement/Numerical/Additive.hs b/Basement/Numerical/Additive.hs
|
||||
index d0dfb973..8ab65aa0 100644
|
||||
--- a/Basement/Numerical/Additive.hs
|
||||
+++ b/Basement/Numerical/Additive.hs
|
||||
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||
import qualified Basement.Types.Word256 as Word256
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
-- | Represent class of things that can be added together,
|
||||
-- contains a neutral element and is commutative.
|
||||
diff --git a/Basement/Numerical/Conversion.hs b/Basement/Numerical/Conversion.hs
|
||||
index db502c07..fddc8232 100644
|
||||
--- a/Basement/Numerical/Conversion.hs
|
||||
+++ b/Basement/Numerical/Conversion.hs
|
||||
@@ -26,8 +26,12 @@ import GHC.Word
|
||||
import Basement.Compat.Primitive
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
intToInt64 :: Int -> Int64
|
||||
#if WORD_SIZE_IN_BITS == 64
|
||||
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||
#endif
|
||||
|
||||
#if WORD_SIZE_IN_BITS == 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+word64ToWord# :: Word64# -> Word#
|
||||
+word64ToWord# i = word64ToWord# i
|
||||
+#else
|
||||
word64ToWord# :: Word# -> Word#
|
||||
word64ToWord# i = i
|
||||
+#endif
|
||||
{-# INLINE word64ToWord# #-}
|
||||
#endif
|
||||
|
||||
+#if WORD_SIZE_IN_BITS < 64
|
||||
+word64ToWord32# :: Word64# -> Word32#
|
||||
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||
+{-# INLINE word64ToWord32# #-}
|
||||
+#endif
|
||||
+
|
||||
-- | 2 Word32s
|
||||
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||
{-# UNPACK #-} !Word32
|
||||
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||
#endif
|
||||
#else
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+word64ToWord32s :: Word64 -> Word32x2
|
||||
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||
+#else
|
||||
word64ToWord32s :: Word64 -> Word32x2
|
||||
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
wordToChar :: Word -> Char
|
||||
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||
diff --git a/Basement/PrimType.hs b/Basement/PrimType.hs
|
||||
index f8ca2926..a888ec91 100644
|
||||
--- a/Basement/PrimType.hs
|
||||
+++ b/Basement/PrimType.hs
|
||||
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||
import qualified Prelude (quot)
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
-import GHC.IntWord64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
+import GHC.IntWord64
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||
diff --git a/Basement/Types/OffsetSize.hs b/Basement/Types/OffsetSize.hs
|
||||
index cd944927..1ea80dad 100644
|
||||
--- a/Basement/Types/OffsetSize.hs
|
||||
+++ b/Basement/Types/OffsetSize.hs
|
||||
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||
import qualified Prelude
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
-- | File size in bytes
|
||||
newtype FileSize = FileSize Word64
|
||||
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||
|
||||
csizeOfSize :: CountOf Word8 -> CSize
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||
+#else
|
||||
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||
-
|
||||
#else
|
||||
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||
-
|
||||
#endif
|
||||
#endif
|
||||
|
||||
csizeOfOffset :: Offset8 -> CSize
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||
+#else
|
||||
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||
+#else
|
||||
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||
|
||||
sizeOfCSize :: CSize -> CountOf Word8
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||
+#else
|
||||
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git a/direct-sqlcipher.cabal b/direct-sqlcipher.cabal
|
||||
index 728ba3e..c63745e 100644
|
||||
--- a/direct-sqlcipher.cabal
|
||||
+++ b/direct-sqlcipher.cabal
|
||||
@@ -84,6 +84,8 @@ library
|
||||
cc-options: -DSQLITE_TEMP_STORE=2
|
||||
-DSQLITE_HAS_CODEC
|
||||
|
||||
+ extra-libraries: ws2_32
|
||||
+
|
||||
if !os(windows) && !os(android)
|
||||
extra-libraries: pthread
|
||||
@@ -0,0 +1,36 @@
|
||||
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||
From: sternenseemann <sternenseemann@systemli.org>
|
||||
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||
|
||||
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||
the ready made solution.
|
||||
|
||||
Closes #98, as it should be the better solution.
|
||||
---
|
||||
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||
index b9eef8a..a134c88 100644
|
||||
--- a/Data/Memory/Internal/CompatPrim64.hs
|
||||
+++ b/Data/Memory/Internal/CompatPrim64.hs
|
||||
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||
w64# w _ _ = w
|
||||
|
||||
#elif WORD_SIZE_IN_BITS == 32
|
||||
+#if __GLASGOW_HASKELL__ < 904
|
||||
import GHC.IntWord64
|
||||
import GHC.Prim (Word#)
|
||||
|
||||
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||
let !ai = word64ToInt64# a
|
||||
!bi = word64ToInt64# b
|
||||
in int64ToWord64# (timesInt64# ai bi)
|
||||
+#else
|
||||
+import GHC.Prim
|
||||
+#endif
|
||||
|
||||
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||
w64# _ hw lw =
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"https://github.com/simplex-chat/simplexmq.git"."966b9990e0bf5fdb701f79b6efd722baddd1ee1d" = "0gmycrmyrgy5wbhr3f7qy6hbpppsamfypq7y650dinpbqyrfs9fb";
|
||||
"https://github.com/simplex-chat/simplexmq.git"."3f177b8c8a91de124dfe871af82bd7433f275efb" = "18lhllv1w6wnvvphpqcib4fa7fqiyqf01swix2afs80mnxjip01v";
|
||||
"https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38";
|
||||
"https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d";
|
||||
"https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl";
|
||||
|
||||
+2
-15
@@ -5,7 +5,7 @@ cabal-version: 1.12
|
||||
-- see: https://github.com/sol/hpack
|
||||
|
||||
name: simplex-chat
|
||||
version: 6.2.0.5
|
||||
version: 6.2.0.6
|
||||
category: Web, System, Services, Cryptography
|
||||
homepage: https://github.com/simplex-chat/simplex-chat#readme
|
||||
author: simplex.chat
|
||||
@@ -154,6 +154,7 @@ library
|
||||
Simplex.Chat.Migrations.M20241027_server_operators
|
||||
Simplex.Chat.Migrations.M20241125_indexes
|
||||
Simplex.Chat.Migrations.M20241128_business_chats
|
||||
Simplex.Chat.Migrations.M20241205_business_chat_members
|
||||
Simplex.Chat.Mobile
|
||||
Simplex.Chat.Mobile.File
|
||||
Simplex.Chat.Mobile.Shared
|
||||
@@ -200,8 +201,6 @@ library
|
||||
Paths_simplex_chat
|
||||
hs-source-dirs:
|
||||
src
|
||||
default-extensions:
|
||||
StrictData
|
||||
ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns
|
||||
build-depends:
|
||||
aeson ==2.2.*
|
||||
@@ -265,8 +264,6 @@ executable simplex-bot
|
||||
Paths_simplex_chat
|
||||
hs-source-dirs:
|
||||
apps/simplex-bot
|
||||
default-extensions:
|
||||
StrictData
|
||||
ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -threaded
|
||||
build-depends:
|
||||
aeson ==2.2.*
|
||||
@@ -331,8 +328,6 @@ executable simplex-bot-advanced
|
||||
Paths_simplex_chat
|
||||
hs-source-dirs:
|
||||
apps/simplex-bot-advanced
|
||||
default-extensions:
|
||||
StrictData
|
||||
ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -threaded
|
||||
build-depends:
|
||||
aeson ==2.2.*
|
||||
@@ -396,8 +391,6 @@ executable simplex-broadcast-bot
|
||||
hs-source-dirs:
|
||||
apps/simplex-broadcast-bot
|
||||
apps/simplex-broadcast-bot/src
|
||||
default-extensions:
|
||||
StrictData
|
||||
other-modules:
|
||||
Broadcast.Bot
|
||||
Broadcast.Options
|
||||
@@ -467,8 +460,6 @@ executable simplex-chat
|
||||
Paths_simplex_chat
|
||||
hs-source-dirs:
|
||||
apps/simplex-chat
|
||||
default-extensions:
|
||||
StrictData
|
||||
ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -threaded
|
||||
build-depends:
|
||||
aeson ==2.2.*
|
||||
@@ -533,8 +524,6 @@ executable simplex-directory-service
|
||||
hs-source-dirs:
|
||||
apps/simplex-directory-service
|
||||
apps/simplex-directory-service/src
|
||||
default-extensions:
|
||||
StrictData
|
||||
other-modules:
|
||||
Directory.Events
|
||||
Directory.Options
|
||||
@@ -640,8 +629,6 @@ test-suite simplex-chat-test
|
||||
tests
|
||||
apps/simplex-broadcast-bot/src
|
||||
apps/simplex-directory-service/src
|
||||
default-extensions:
|
||||
StrictData
|
||||
ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -threaded
|
||||
build-depends:
|
||||
QuickCheck ==2.14.*
|
||||
|
||||
+71
-27
@@ -1423,8 +1423,9 @@ processChatCommand' vr = \case
|
||||
CTContactConnection -> pure $ chatCmdError (Just user) "not supported"
|
||||
CTContactRequest -> pure $ chatCmdError (Just user) "not supported"
|
||||
APIAcceptContact incognito connReqId -> withUser $ \_ -> do
|
||||
(user@User {userId}, cReq@UserContactRequest {userContactLinkId}) <- withFastStore $ \db -> getContactRequest' db connReqId
|
||||
userContactLinkId <- withFastStore $ \db -> getUserContactLinkIdByCReq db connReqId
|
||||
withUserContactLock "acceptContact" userContactLinkId $ do
|
||||
(user@User {userId}, cReq) <- withFastStore $ \db -> getContactRequest' db connReqId
|
||||
(ct, conn@Connection {connId}, sqSecured) <- acceptContactRequest user cReq incognito
|
||||
ucl <- withFastStore $ \db -> getUserContactLinkById db userId userContactLinkId
|
||||
let contactUsed = (\(_, groupId_, _) -> isNothing groupId_) ucl
|
||||
@@ -1438,11 +1439,12 @@ processChatCommand' vr = \case
|
||||
pure ct {contactUsed, activeConn = Just conn'}
|
||||
pure $ CRAcceptingContactRequest user ct'
|
||||
APIRejectContact connReqId -> withUser $ \user -> do
|
||||
cReq@UserContactRequest {userContactLinkId, agentContactConnId = AgentConnId connId, agentInvitationId = AgentInvId invId} <-
|
||||
withFastStore $ \db ->
|
||||
getContactRequest db user connReqId
|
||||
`storeFinally` liftIO (deleteContactRequest db user connReqId)
|
||||
userContactLinkId <- withFastStore $ \db -> getUserContactLinkIdByCReq db connReqId
|
||||
withUserContactLock "rejectContact" userContactLinkId $ do
|
||||
cReq@UserContactRequest {agentContactConnId = AgentConnId connId, agentInvitationId = AgentInvId invId} <-
|
||||
withFastStore $ \db ->
|
||||
getContactRequest db user connReqId
|
||||
`storeFinally` liftIO (deleteContactRequest db user connReqId)
|
||||
withAgent $ \a -> rejectContact a connId invId
|
||||
pure $ CRContactRequestRejected user cReq
|
||||
APISendCallInvitation contactId callType -> withUser $ \user -> do
|
||||
@@ -2870,19 +2872,27 @@ processChatCommand' vr = \case
|
||||
updateProfile_ user@User {profile = p@LocalProfile {displayName = n}} p'@Profile {displayName = n'} updateUser
|
||||
| p' == fromLocalProfile p = pure $ CRUserProfileNoChange user
|
||||
| otherwise = do
|
||||
liftIO $ putStrLn $ "*** updateProfile_ profile: " <> show p'
|
||||
when (n /= n') $ checkValidName n'
|
||||
-- read contacts before user update to correctly merge preferences
|
||||
contacts <- withFastStore' $ \db -> getUserContacts db vr user
|
||||
liftIO $ putStrLn $ "*** updateProfile_ contacts: " <> show contacts
|
||||
user' <- updateUser
|
||||
asks currentUser >>= atomically . (`writeTVar` Just user')
|
||||
withChatLock "updateProfile" . procCmd $ do
|
||||
let changedCts_ = L.nonEmpty $ foldr (addChangedProfileContact user') [] contacts
|
||||
summary <- case changedCts_ of
|
||||
Nothing -> pure $ UserProfileUpdateSummary 0 0 []
|
||||
Nothing -> do
|
||||
liftIO $ putStrLn $ "*** updateProfile_ no changed contacts"
|
||||
pure $ UserProfileUpdateSummary 0 0 []
|
||||
Just changedCts -> do
|
||||
liftIO $ putStrLn $ "*** updateProfile_ changed contacts: " <> show changedCts_
|
||||
let idsEvts = L.map ctSndEvent changedCts
|
||||
liftIO $ putStrLn $ "*** updateProfile_ before sending"
|
||||
msgReqs_ <- lift $ L.zipWith ctMsgReq changedCts <$> createSndMessages idsEvts
|
||||
liftIO $ putStrLn $ "*** updateProfile_ created messages"
|
||||
(errs, cts) <- partitionEithers . L.toList . L.zipWith (second . const) changedCts <$> deliverMessagesB msgReqs_
|
||||
liftIO $ putStrLn $ "*** updateProfile_ delivered messages to contacts: " <> show (length cts) <> ", errors: " <> show errs
|
||||
unless (null errs) $ toView $ CRChatErrors (Just user) errs
|
||||
let changedCts' = filter (\ChangedProfileContact {ct, ct'} -> directOrUsed ct' && mergedPreferences ct' /= mergedPreferences ct) cts
|
||||
lift $ createContactsSndFeatureItems user' changedCts'
|
||||
@@ -2890,7 +2900,7 @@ processChatCommand' vr = \case
|
||||
UserProfileUpdateSummary
|
||||
{ updateSuccesses = length cts,
|
||||
updateFailures = length errs,
|
||||
changedContacts = map (\ChangedProfileContact {ct'} -> ct') changedCts'
|
||||
changedContacts = map (\ChangedProfileContact {ct'} -> ct') $ L.toList changedCts
|
||||
}
|
||||
pure $ CRUserProfileUpdated user' (fromLocalProfile p) p' summary
|
||||
where
|
||||
@@ -2927,11 +2937,22 @@ processChatCommand' vr = \case
|
||||
lift . when (directOrUsed ct') $ createSndFeatureItems user ct ct'
|
||||
pure $ CRContactPrefsUpdated user ct ct'
|
||||
runUpdateGroupProfile :: User -> Group -> GroupProfile -> CM ChatResponse
|
||||
runUpdateGroupProfile user (Group g@GroupInfo {groupProfile = p@GroupProfile {displayName = n}} ms) p'@GroupProfile {displayName = n'} = do
|
||||
runUpdateGroupProfile user (Group g@GroupInfo {businessChat, groupProfile = p@GroupProfile {displayName = n}} ms) p'@GroupProfile {displayName = n'} = do
|
||||
assertUserGroupRole g GROwner
|
||||
when (n /= n') $ checkValidName n'
|
||||
g' <- withStore $ \db -> updateGroupProfile db user g p'
|
||||
msg <- sendGroupMessage user g' ms (XGrpInfo p')
|
||||
msg <- case businessChat of
|
||||
Just BusinessChatInfo {businessId} -> do
|
||||
let (newMs, oldMs) = partition (\m -> maxVersion (memberChatVRange m) >= businessChatPrefsVersion) ms
|
||||
-- this is a fallback to send the members with the old version correct profile of the business when preferences change
|
||||
unless (null oldMs) $ do
|
||||
GroupMember {memberProfile = LocalProfile {displayName, fullName, image}} <-
|
||||
withStore $ \db -> getGroupMemberByMemberId db vr user g businessId
|
||||
let p'' = p' {displayName, fullName, image} :: GroupProfile
|
||||
void $ sendGroupMessage user g' oldMs (XGrpInfo p'')
|
||||
let ps' = fromMaybe defaultBusinessGroupPrefs $ groupPreferences p'
|
||||
sendGroupMessage user g' newMs $ XGrpPrefs ps'
|
||||
Nothing -> sendGroupMessage user g' ms (XGrpInfo p')
|
||||
let cd = CDGroupSnd g'
|
||||
unless (sameGroupProfileInfo p p') $ do
|
||||
ci <- saveSndChatItem user cd msg (CISndGroupEvent $ SGEGroupUpdated p')
|
||||
@@ -3024,7 +3045,7 @@ processChatCommand' vr = \case
|
||||
invitedMember = MemberIdRole memberId memRole,
|
||||
connRequest = cReq,
|
||||
groupProfile,
|
||||
businessChat,
|
||||
business = businessChat,
|
||||
groupLinkId = Nothing,
|
||||
groupSize = Just currentMemCount
|
||||
}
|
||||
@@ -3492,6 +3513,7 @@ data ChangedProfileContact = ChangedProfileContact
|
||||
mergedProfile' :: Profile,
|
||||
conn :: Connection
|
||||
}
|
||||
deriving (Show)
|
||||
|
||||
prepareGroupMsg :: User -> GroupInfo -> MsgContent -> Maybe ChatItemId -> Maybe CIForwardedFrom -> Maybe FileInvitation -> Maybe CITimed -> Bool -> CM (MsgContainer, Maybe (CIQuote 'CTGroup))
|
||||
prepareGroupMsg user GroupInfo {groupId, membership} mc quotedItemId_ itemForwarded fInv_ timed_ live = case (quotedItemId_, itemForwarded) of
|
||||
@@ -4001,7 +4023,7 @@ acceptGroupJoinRequestAsync
|
||||
fromMemberName = displayName,
|
||||
invitedMember = MemberIdRole memberId gLinkMemRole,
|
||||
groupProfile,
|
||||
businessChat,
|
||||
business = businessChat,
|
||||
groupSize = Just currentMemCount
|
||||
}
|
||||
subMode <- chatReadVar subscriptionMode
|
||||
@@ -4036,7 +4058,7 @@ acceptBusinessJoinRequestAsync
|
||||
-- This refers to the "title member" that defines the group name and profile.
|
||||
-- This coincides with fromMember to be current user when accepting the connecting user,
|
||||
-- but it will be different when inviting somebody else.
|
||||
businessChat = Just $ BusinessChatInfo userMemberId BCBusiness,
|
||||
business = Just $ BusinessChatInfo {chatType = BCBusiness, businessId = userMemberId, customerId = memberId},
|
||||
groupSize = Just 1
|
||||
}
|
||||
subMode <- chatReadVar subscriptionMode
|
||||
@@ -5040,7 +5062,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
invitedMember = MemberIdRole memberId memRole,
|
||||
connRequest = cReq,
|
||||
groupProfile,
|
||||
businessChat = Nothing,
|
||||
business = Nothing,
|
||||
groupLinkId = groupLinkId,
|
||||
groupSize = Just currentMemCount
|
||||
}
|
||||
@@ -5297,6 +5319,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
XGrpLeave -> xGrpLeave gInfo m' msg brokerTs
|
||||
XGrpDel -> xGrpDel gInfo m' msg brokerTs
|
||||
XGrpInfo p' -> xGrpInfo gInfo m' p' msg brokerTs
|
||||
XGrpPrefs ps' -> xGrpPrefs gInfo m' ps'
|
||||
XGrpDirectInv connReq mContent_ -> memberCanSend m' $ xGrpDirectInv gInfo m' conn' connReq mContent_ msg brokerTs
|
||||
XGrpMsgForward memberId msg' msgTs -> xGrpMsgForward gInfo m' memberId msg' msgTs
|
||||
XInfoProbe probe -> xInfoProbe (COMGroupMember m') probe
|
||||
@@ -5414,8 +5437,8 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
let GroupInfo {businessChat} = gInfo
|
||||
GroupMember {memberId = joiningMemberId} = m
|
||||
case businessChat of
|
||||
Just BusinessChatInfo {memberId, chatType = BCCustomer}
|
||||
| joiningMemberId == memberId -> useReply <$> withStore (`getUserAddress` user)
|
||||
Just BusinessChatInfo {customerId, chatType = BCCustomer}
|
||||
| joiningMemberId == customerId -> useReply <$> withStore (`getUserAddress` user)
|
||||
where
|
||||
useReply UserContactLink {autoAccept} = case autoAccept of
|
||||
Just AutoAccept {businessAddress, autoReply} | businessAddress -> autoReply
|
||||
@@ -6463,7 +6486,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
processMemberProfileUpdate :: GroupInfo -> GroupMember -> Profile -> Bool -> Maybe UTCTime -> CM GroupMember
|
||||
processMemberProfileUpdate gInfo m@GroupMember {memberProfile = p, memberContactId} p' createItems itemTs_
|
||||
| redactedMemberProfile (fromLocalProfile p) /= redactedMemberProfile p' = do
|
||||
updateBusinessChatProfile gInfo m
|
||||
updateBusinessChatProfile gInfo
|
||||
case memberContactId of
|
||||
Nothing -> do
|
||||
m' <- withStore $ \db -> updateMemberProfile db user m p'
|
||||
@@ -6489,11 +6512,14 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
| otherwise =
|
||||
pure m
|
||||
where
|
||||
updateBusinessChatProfile g@GroupInfo {businessChat} GroupMember {memberId} = case businessChat of
|
||||
Just BusinessChatInfo {memberId = mId} | mId == memberId -> do
|
||||
updateBusinessChatProfile g@GroupInfo {businessChat} = case businessChat of
|
||||
Just bc | isMainBusinessMember bc m -> do
|
||||
g' <- withStore $ \db -> updateGroupProfileFromMember db user g p'
|
||||
toView $ CRGroupUpdated user g g' (Just m)
|
||||
_ -> pure ()
|
||||
isMainBusinessMember BusinessChatInfo {chatType, businessId, customerId} GroupMember {memberId} = case chatType of
|
||||
BCBusiness -> businessId == memberId
|
||||
BCCustomer -> customerId == memberId
|
||||
createProfileUpdatedItem m' =
|
||||
when createItems $ do
|
||||
let ciContent = CIRcvGroupEvent $ RGEMemberProfileUpdated (fromLocalProfile p) p'
|
||||
@@ -7006,16 +7032,31 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
toView $ CRGroupDeleted user gInfo {membership = membership {memberStatus = GSMemGroupDeleted}} m
|
||||
|
||||
xGrpInfo :: GroupInfo -> GroupMember -> GroupProfile -> RcvMessage -> UTCTime -> CM ()
|
||||
xGrpInfo g@GroupInfo {groupProfile = p} m@GroupMember {memberRole} p' msg brokerTs
|
||||
xGrpInfo g@GroupInfo {groupProfile = p, businessChat} m@GroupMember {memberRole} p' msg brokerTs
|
||||
| memberRole < GROwner = messageError "x.grp.info with insufficient member permissions"
|
||||
| otherwise = unless (p == p') $ do
|
||||
g' <- withStore $ \db -> updateGroupProfile db user g p'
|
||||
toView $ CRGroupUpdated user g g' (Just m)
|
||||
let cd = CDGroupRcv g' m
|
||||
unless (sameGroupProfileInfo p p') $ do
|
||||
ci <- saveRcvChatItem user cd msg brokerTs (CIRcvGroupEvent $ RGEGroupUpdated p')
|
||||
groupMsgToView g' ci
|
||||
createGroupFeatureChangedItems user cd CIRcvGroupFeature g g'
|
||||
| otherwise = case businessChat of
|
||||
Nothing -> unless (p == p') $ do
|
||||
g' <- withStore $ \db -> updateGroupProfile db user g p'
|
||||
toView $ CRGroupUpdated user g g' (Just m)
|
||||
let cd = CDGroupRcv g' m
|
||||
unless (sameGroupProfileInfo p p') $ do
|
||||
ci <- saveRcvChatItem user cd msg brokerTs (CIRcvGroupEvent $ RGEGroupUpdated p')
|
||||
groupMsgToView g' ci
|
||||
createGroupFeatureChangedItems user cd CIRcvGroupFeature g g'
|
||||
Just _ -> updateGroupPrefs_ g m $ fromMaybe defaultBusinessGroupPrefs $ groupPreferences p'
|
||||
|
||||
xGrpPrefs :: GroupInfo -> GroupMember -> GroupPreferences -> CM ()
|
||||
xGrpPrefs g m@GroupMember {memberRole} ps'
|
||||
| memberRole < GROwner = messageError "x.grp.prefs with insufficient member permissions"
|
||||
| otherwise = updateGroupPrefs_ g m ps'
|
||||
|
||||
updateGroupPrefs_ :: GroupInfo -> GroupMember -> GroupPreferences -> CM ()
|
||||
updateGroupPrefs_ g@GroupInfo {groupProfile = p} m ps' =
|
||||
unless (groupPreferences p == Just ps') $ do
|
||||
g' <- withStore' $ \db -> updateGroupPreferences db user g ps'
|
||||
toView $ CRGroupUpdated user g g' (Just m)
|
||||
let cd = CDGroupRcv g' m
|
||||
createGroupFeatureChangedItems user cd CIRcvGroupFeature g g'
|
||||
|
||||
xGrpDirectInv :: GroupInfo -> GroupMember -> Connection -> ConnReqInvitation -> Maybe MsgContent -> RcvMessage -> UTCTime -> CM ()
|
||||
xGrpDirectInv g m mConn connReq mContent_ msg brokerTs = do
|
||||
@@ -7096,6 +7137,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
XGrpLeave -> xGrpLeave gInfo author rcvMsg msgTs
|
||||
XGrpDel -> xGrpDel gInfo author rcvMsg msgTs
|
||||
XGrpInfo p' -> xGrpInfo gInfo author p' rcvMsg msgTs
|
||||
XGrpPrefs ps' -> xGrpPrefs gInfo author ps'
|
||||
_ -> messageError $ "x.grp.msg.forward: unsupported forwarded event " <> T.pack (show $ toCMEventTag event)
|
||||
|
||||
createUnknownMember :: GroupInfo -> MemberId -> CM GroupMember
|
||||
@@ -7601,7 +7643,9 @@ deliverMessages msgs = deliverMessagesB $ L.map Right msgs
|
||||
deliverMessagesB :: NonEmpty (Either ChatError ChatMsgReq) -> CM (NonEmpty (Either ChatError ([Int64], PQEncryption)))
|
||||
deliverMessagesB msgReqs = do
|
||||
msgReqs' <- liftIO compressBodies
|
||||
liftIO $ putStrLn "deliverMessagesB"
|
||||
sent <- L.zipWith prepareBatch msgReqs' <$> withAgent (`sendMessagesB` snd (mapAccumL toAgent Nothing msgReqs'))
|
||||
liftIO $ putStrLn $ "deliverMessagesB sent: " <> show sent
|
||||
lift . void $ withStoreBatch' $ \db -> map (updatePQSndEnabled db) (rights . L.toList $ sent)
|
||||
lift . withStoreBatch $ \db -> L.map (bindRight $ createDelivery db) sent
|
||||
where
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
|
||||
module Simplex.Chat.Migrations.M20241205_business_chat_members where
|
||||
|
||||
import Database.SQLite.Simple (Query)
|
||||
import Database.SQLite.Simple.QQ (sql)
|
||||
|
||||
m20241205_business_chat_members :: Query
|
||||
m20241205_business_chat_members =
|
||||
[sql|
|
||||
ALTER TABLE groups ADD COLUMN customer_member_id BLOB NULL;
|
||||
|]
|
||||
|
||||
down_m20241205_business_chat_members :: Query
|
||||
down_m20241205_business_chat_members =
|
||||
[sql|
|
||||
ALTER TABLE groups DROP COLUMN customer_member_id;
|
||||
|]
|
||||
@@ -130,7 +130,8 @@ CREATE TABLE groups(
|
||||
ui_themes TEXT,
|
||||
business_member_id BLOB NULL,
|
||||
business_chat TEXT NULL,
|
||||
business_xcontact_id BLOB NULL, -- received
|
||||
business_xcontact_id BLOB NULL,
|
||||
customer_member_id BLOB NULL, -- received
|
||||
FOREIGN KEY(user_id, local_display_name)
|
||||
REFERENCES display_names(user_id, local_display_name)
|
||||
ON DELETE CASCADE
|
||||
|
||||
@@ -10,6 +10,7 @@ module Simplex.Chat.Mobile where
|
||||
|
||||
import Control.Concurrent.STM
|
||||
import Control.Exception (SomeException, catch)
|
||||
import Control.Logger.Simple
|
||||
import Control.Monad.Except
|
||||
import Control.Monad.Reader
|
||||
import qualified Data.Aeson as J
|
||||
@@ -53,7 +54,7 @@ import Simplex.Messaging.Encoding.String
|
||||
import Simplex.Messaging.Parsers (defaultJSON, dropPrefix, sumTypeJSON)
|
||||
import Simplex.Messaging.Protocol (AProtoServerWithAuth (..), AProtocolType (..), BasicAuth (..), CorrId (..), ProtoServerWithAuth (..), ProtocolServer (..))
|
||||
import Simplex.Messaging.Util (catchAll, liftEitherWith, safeDecodeUtf8)
|
||||
import System.IO (utf8)
|
||||
import System.IO (BufferMode (..), hSetBuffering, stderr, stdout, utf8)
|
||||
import System.Timeout (timeout)
|
||||
|
||||
data DBMigrationResult
|
||||
@@ -220,7 +221,7 @@ defaultMobileConfig :: ChatConfig
|
||||
defaultMobileConfig =
|
||||
defaultChatConfig
|
||||
{ confirmMigrations = MCYesUp,
|
||||
logLevel = CLLError,
|
||||
logLevel = CLLDebug,
|
||||
coreApi = True,
|
||||
deviceNameForRemote = "Mobile"
|
||||
}
|
||||
@@ -266,7 +267,10 @@ handleErr :: IO () -> IO String
|
||||
handleErr a = (a $> "") `catch` (pure . show @SomeException)
|
||||
|
||||
chatSendCmd :: ChatController -> B.ByteString -> IO JSONByteString
|
||||
chatSendCmd cc = chatSendRemoteCmd cc Nothing
|
||||
chatSendCmd cc cmd = withGlobalLogging logCfg $ do
|
||||
hSetBuffering stdout LineBuffering
|
||||
hSetBuffering stderr LineBuffering
|
||||
chatSendRemoteCmd cc Nothing cmd
|
||||
|
||||
chatSendRemoteCmd :: ChatController -> Maybe RemoteHostId -> B.ByteString -> IO JSONByteString
|
||||
chatSendRemoteCmd cc rh s = J.encode . APIResponse Nothing rh <$> runReaderT (execChatCommand rh s) cc
|
||||
|
||||
@@ -46,6 +46,7 @@ import Database.SQLite.Simple.FromField (FromField (..))
|
||||
import Database.SQLite.Simple.ToField (ToField (..))
|
||||
import Simplex.Chat.Call
|
||||
import Simplex.Chat.Types
|
||||
import Simplex.Chat.Types.Preferences
|
||||
import Simplex.Chat.Types.Shared
|
||||
import Simplex.Messaging.Agent.Protocol (VersionSMPA, pqdrSMPAgentVersion)
|
||||
import Simplex.Messaging.Compression (Compressed, compress1, decompress1)
|
||||
@@ -67,12 +68,13 @@ import Simplex.Messaging.Version hiding (version)
|
||||
-- 8 - compress messages and PQ e2e encryption (2024-03-08)
|
||||
-- 9 - batch sending in direct connections (2024-07-24)
|
||||
-- 10 - business chats (2024-11-29)
|
||||
-- 11 - fix profile update in business chats (2024-12-05)
|
||||
|
||||
-- This should not be used directly in code, instead use `maxVersion chatVRange` from ChatConfig.
|
||||
-- This indirection is needed for backward/forward compatibility testing.
|
||||
-- Testing with real app versions is still needed, as tests use the current code with different version ranges, not the old code.
|
||||
currentChatVersion :: VersionChat
|
||||
currentChatVersion = VersionChat 10
|
||||
currentChatVersion = VersionChat 11
|
||||
|
||||
-- This should not be used directly in code, instead use `chatVRange` from ChatConfig (see comment above)
|
||||
supportedChatVRange :: VersionRangeChat
|
||||
@@ -115,6 +117,10 @@ batchSend2Version = VersionChat 9
|
||||
businessChatsVersion :: VersionChat
|
||||
businessChatsVersion = VersionChat 10
|
||||
|
||||
-- support updating preferences in business chats (XGrpPrefs message)
|
||||
businessChatPrefsVersion :: VersionChat
|
||||
businessChatPrefsVersion = VersionChat 11
|
||||
|
||||
agentToChatVersion :: VersionSMPA -> VersionChat
|
||||
agentToChatVersion v
|
||||
| v < pqdrSMPAgentVersion = initialChatVersion
|
||||
@@ -299,6 +305,7 @@ data ChatMsgEvent (e :: MsgEncoding) where
|
||||
XGrpLeave :: ChatMsgEvent 'Json
|
||||
XGrpDel :: ChatMsgEvent 'Json
|
||||
XGrpInfo :: GroupProfile -> ChatMsgEvent 'Json
|
||||
XGrpPrefs :: GroupPreferences -> ChatMsgEvent 'Json
|
||||
XGrpDirectInv :: ConnReqInvitation -> Maybe MsgContent -> ChatMsgEvent 'Json
|
||||
XGrpMsgForward :: MemberId -> ChatMessage 'Json -> UTCTime -> ChatMsgEvent 'Json
|
||||
XInfoProbe :: Probe -> ChatMsgEvent 'Json
|
||||
@@ -339,6 +346,7 @@ isForwardedGroupMsg ev = case ev of
|
||||
XGrpLeave -> True
|
||||
XGrpDel -> True -- TODO there should be a special logic - host should forward before deleting connections
|
||||
XGrpInfo _ -> True
|
||||
XGrpPrefs _ -> True
|
||||
_ -> False
|
||||
|
||||
forwardedGroupMsg :: forall e. MsgEncodingI e => ChatMessage e -> Maybe (ChatMessage 'Json)
|
||||
@@ -721,6 +729,7 @@ data CMEventTag (e :: MsgEncoding) where
|
||||
XGrpLeave_ :: CMEventTag 'Json
|
||||
XGrpDel_ :: CMEventTag 'Json
|
||||
XGrpInfo_ :: CMEventTag 'Json
|
||||
XGrpPrefs_ :: CMEventTag 'Json
|
||||
XGrpDirectInv_ :: CMEventTag 'Json
|
||||
XGrpMsgForward_ :: CMEventTag 'Json
|
||||
XInfoProbe_ :: CMEventTag 'Json
|
||||
@@ -771,6 +780,7 @@ instance MsgEncodingI e => StrEncoding (CMEventTag e) where
|
||||
XGrpLeave_ -> "x.grp.leave"
|
||||
XGrpDel_ -> "x.grp.del"
|
||||
XGrpInfo_ -> "x.grp.info"
|
||||
XGrpPrefs_ -> "x.grp.prefs"
|
||||
XGrpDirectInv_ -> "x.grp.direct.inv"
|
||||
XGrpMsgForward_ -> "x.grp.msg.forward"
|
||||
XInfoProbe_ -> "x.info.probe"
|
||||
@@ -822,6 +832,7 @@ instance StrEncoding ACMEventTag where
|
||||
"x.grp.leave" -> XGrpLeave_
|
||||
"x.grp.del" -> XGrpDel_
|
||||
"x.grp.info" -> XGrpInfo_
|
||||
"x.grp.prefs" -> XGrpPrefs_
|
||||
"x.grp.direct.inv" -> XGrpDirectInv_
|
||||
"x.grp.msg.forward" -> XGrpMsgForward_
|
||||
"x.info.probe" -> XInfoProbe_
|
||||
@@ -869,6 +880,7 @@ toCMEventTag msg = case msg of
|
||||
XGrpLeave -> XGrpLeave_
|
||||
XGrpDel -> XGrpDel_
|
||||
XGrpInfo _ -> XGrpInfo_
|
||||
XGrpPrefs _ -> XGrpPrefs_
|
||||
XGrpDirectInv _ _ -> XGrpDirectInv_
|
||||
XGrpMsgForward {} -> XGrpMsgForward_
|
||||
XInfoProbe _ -> XInfoProbe_
|
||||
@@ -969,6 +981,7 @@ appJsonToCM AppMessageJson {v, msgId, event, params} = do
|
||||
XGrpLeave_ -> pure XGrpLeave
|
||||
XGrpDel_ -> pure XGrpDel
|
||||
XGrpInfo_ -> XGrpInfo <$> p "groupProfile"
|
||||
XGrpPrefs_ -> XGrpPrefs <$> p "groupPreferences"
|
||||
XGrpDirectInv_ -> XGrpDirectInv <$> p "connReq" <*> opt "content"
|
||||
XGrpMsgForward_ -> XGrpMsgForward <$> p "memberId" <*> p "msg" <*> p "msgTs"
|
||||
XInfoProbe_ -> XInfoProbe <$> p "probe"
|
||||
@@ -1030,6 +1043,7 @@ chatToAppMessage ChatMessage {chatVRange, msgId, chatMsgEvent} = case encoding @
|
||||
XGrpLeave -> JM.empty
|
||||
XGrpDel -> JM.empty
|
||||
XGrpInfo p -> o ["groupProfile" .= p]
|
||||
XGrpPrefs p -> o ["groupPreferences" .= p]
|
||||
XGrpDirectInv connReq content -> o $ ("content" .=? content) ["connReq" .= connReq]
|
||||
XGrpMsgForward memberId msg msgTs -> o ["memberId" .= memberId, "msg" .= msg, "msgTs" .= msgTs]
|
||||
XInfoProbe probe -> o ["probe" .= probe]
|
||||
|
||||
@@ -123,7 +123,7 @@ getConnectionEntity db vr user@User {userId, userContactId} agentConnId = do
|
||||
-- GroupInfo
|
||||
g.group_id, g.local_display_name, gp.display_name, gp.full_name, gp.description, gp.image,
|
||||
g.host_conn_custom_user_profile_id, g.enable_ntfs, g.send_rcpts, g.favorite, gp.preferences,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_member_id, g.business_chat, g.ui_themes, g.custom_data,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_chat, g.business_member_id, g.customer_member_id, g.ui_themes, g.custom_data,
|
||||
-- GroupInfo {membership}
|
||||
mu.group_member_id, mu.group_id, mu.member_id, mu.peer_chat_min_version, mu.peer_chat_max_version, mu.member_role, mu.member_category,
|
||||
mu.member_status, mu.show_messages, mu.member_restriction, mu.invited_by, mu.invited_by_group_member_id, mu.local_display_name, mu.contact_id, mu.contact_profile_id, pu.contact_profile_id,
|
||||
|
||||
@@ -57,6 +57,7 @@ module Simplex.Chat.Store.Direct
|
||||
setQuotaErrCounter,
|
||||
getUserContacts,
|
||||
createOrUpdateContactRequest,
|
||||
getUserContactLinkIdByCReq,
|
||||
getContactRequest',
|
||||
getContactRequest,
|
||||
getContactRequestIdByName,
|
||||
@@ -84,7 +85,7 @@ where
|
||||
import Control.Monad
|
||||
import Control.Monad.Except
|
||||
import Control.Monad.IO.Class
|
||||
import Data.Either (rights)
|
||||
import Data.Either (partitionEithers, rights)
|
||||
import Data.Functor (($>))
|
||||
import Data.Int (Int64)
|
||||
import Data.Maybe (fromMaybe, isJust, isNothing)
|
||||
@@ -589,8 +590,13 @@ getContactByName db vr user localDisplayName = do
|
||||
getUserContacts :: DB.Connection -> VersionRangeChat -> User -> IO [Contact]
|
||||
getUserContacts db vr user@User {userId} = do
|
||||
contactIds <- map fromOnly <$> DB.query db "SELECT contact_id FROM contacts WHERE user_id = ? AND deleted = 0" (Only userId)
|
||||
contacts <- rights <$> mapM (runExceptT . getContact db vr user) contactIds
|
||||
pure $ filter (\Contact {activeConn} -> isJust activeConn) contacts
|
||||
putStrLn $ "*** getUserContacts contactIds" <> show contactIds
|
||||
(errs, contacts) <- partitionEithers <$> mapM (runExceptT . getContact db vr user) contactIds
|
||||
putStrLn $ "*** getUserContacts contacts" <> show contacts
|
||||
putStrLn $ "*** getUserContacts errors" <> show errs
|
||||
r <- pure $ filter (\Contact {activeConn} -> isJust activeConn) contacts
|
||||
putStrLn $ "*** getUserContacts filtered contacts" <> show r
|
||||
pure r
|
||||
|
||||
createOrUpdateContactRequest :: DB.Connection -> VersionRangeChat -> User -> Int64 -> InvitationId -> VersionRangeChat -> Profile -> Maybe XContactId -> PQSupport -> ExceptT StoreError IO ChatOrRequest
|
||||
createOrUpdateContactRequest db vr user@User {userId, userContactId} userContactLinkId invId (VersionRange minV maxV) Profile {displayName, fullName, image, contactLink, preferences} xContactId_ pqSup =
|
||||
@@ -727,6 +733,11 @@ createOrUpdateContactRequest db vr user@User {userId, userContactId} userContact
|
||||
|]
|
||||
(displayName, fullName, image, contactLink, currentTs, userId, cReqId)
|
||||
|
||||
getUserContactLinkIdByCReq :: DB.Connection -> Int64 -> ExceptT StoreError IO Int64
|
||||
getUserContactLinkIdByCReq db contactRequestId =
|
||||
ExceptT . firstRow fromOnly (SEContactRequestNotFound contactRequestId) $
|
||||
DB.query db "SELECT user_contact_link_id FROM contact_requests WHERE contact_request_id = ?" (Only contactRequestId)
|
||||
|
||||
getContactRequest' :: DB.Connection -> Int64 -> ExceptT StoreError IO (User, UserContactRequest)
|
||||
getContactRequest' db contactRequestId = do
|
||||
user <- getUserByContactRequestId db contactRequestId
|
||||
|
||||
@@ -39,6 +39,7 @@ module Simplex.Chat.Store.Groups
|
||||
getGroupInfoByUserContactLinkConnReq,
|
||||
getGroupInfoByGroupLinkHash,
|
||||
updateGroupProfile,
|
||||
updateGroupPreferences,
|
||||
updateGroupProfileFromMember,
|
||||
getGroupIdByName,
|
||||
getGroupMemberIdByName,
|
||||
@@ -257,7 +258,7 @@ getGroupAndMember db User {userId, userContactId} groupMemberId vr =
|
||||
-- GroupInfo
|
||||
g.group_id, g.local_display_name, gp.display_name, gp.full_name, gp.description, gp.image,
|
||||
g.host_conn_custom_user_profile_id, g.enable_ntfs, g.send_rcpts, g.favorite, gp.preferences,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_member_id, g.business_chat, g.ui_themes, g.custom_data,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_chat, g.business_member_id, g.customer_member_id, g.ui_themes, g.custom_data,
|
||||
-- GroupInfo {membership}
|
||||
mu.group_member_id, mu.group_id, mu.member_id, mu.peer_chat_min_version, mu.peer_chat_max_version, mu.member_role, mu.member_category,
|
||||
mu.member_status, mu.show_messages, mu.member_restriction, mu.invited_by, mu.invited_by_group_member_id, mu.local_display_name, mu.contact_id, mu.contact_profile_id, pu.contact_profile_id,
|
||||
@@ -339,7 +340,7 @@ createNewGroup db vr gVar user@User {userId} groupProfile incognitoProfile = Exc
|
||||
-- | creates a new group record for the group the current user was invited to, or returns an existing one
|
||||
createGroupInvitation :: DB.Connection -> VersionRangeChat -> User -> Contact -> GroupInvitation -> Maybe ProfileId -> ExceptT StoreError IO (GroupInfo, GroupMemberId)
|
||||
createGroupInvitation _ _ _ Contact {localDisplayName, activeConn = Nothing} _ _ = throwError $ SEContactNotReady localDisplayName
|
||||
createGroupInvitation db vr user@User {userId} contact@Contact {contactId, activeConn = Just Connection {customUserProfileId, peerChatVRange}} GroupInvitation {fromMember, invitedMember, connRequest, groupProfile, businessChat} incognitoProfileId = do
|
||||
createGroupInvitation db vr user@User {userId} contact@Contact {contactId, activeConn = Just Connection {customUserProfileId, peerChatVRange}} GroupInvitation {fromMember, invitedMember, connRequest, groupProfile, business} incognitoProfileId = do
|
||||
liftIO getInvitationGroupId_ >>= \case
|
||||
Nothing -> createGroupInvitation_
|
||||
Just gId -> do
|
||||
@@ -377,10 +378,10 @@ createGroupInvitation db vr user@User {userId} contact@Contact {contactId, activ
|
||||
[sql|
|
||||
INSERT INTO groups
|
||||
(group_profile_id, local_display_name, inv_queue_info, host_conn_custom_user_profile_id, user_id, enable_ntfs,
|
||||
created_at, updated_at, chat_ts, user_member_profile_sent_at, business_member_id, business_chat)
|
||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
|
||||
created_at, updated_at, chat_ts, user_member_profile_sent_at, business_chat, business_member_id, customer_member_id)
|
||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)
|
||||
|]
|
||||
((profileId, localDisplayName, connRequest, customUserProfileId, userId, True, currentTs, currentTs, currentTs, currentTs) :. businessChatTuple businessChat)
|
||||
((profileId, localDisplayName, connRequest, customUserProfileId, userId, True, currentTs, currentTs, currentTs, currentTs) :. businessChatInfoRow business)
|
||||
insertedRowId db
|
||||
let hostVRange = adjustedMemberVRange vr peerChatVRange
|
||||
GroupMember {groupMemberId} <- createContactMemberInv_ db user groupId Nothing contact fromMember GCHostMember GSMemInvited IBUnknown Nothing currentTs hostVRange
|
||||
@@ -406,10 +407,10 @@ createGroupInvitation db vr user@User {userId} contact@Contact {contactId, activ
|
||||
groupMemberId
|
||||
)
|
||||
|
||||
businessChatTuple :: Maybe BusinessChatInfo -> (Maybe MemberId, Maybe BusinessChatType)
|
||||
businessChatTuple = \case
|
||||
Just BusinessChatInfo {memberId, chatType} -> (Just memberId, Just chatType)
|
||||
Nothing -> (Nothing, Nothing)
|
||||
businessChatInfoRow :: Maybe BusinessChatInfo -> BusinessChatInfoRow
|
||||
businessChatInfoRow = \case
|
||||
Just BusinessChatInfo {chatType, businessId, customerId} -> (Just chatType, Just businessId, Just customerId)
|
||||
Nothing -> (Nothing, Nothing, Nothing)
|
||||
|
||||
adjustedMemberVRange :: VersionRangeChat -> VersionRangeChat -> VersionRangeChat
|
||||
adjustedMemberVRange chatVR vr@(VersionRange minV maxV) =
|
||||
@@ -497,7 +498,7 @@ createGroupInvitedViaLink
|
||||
vr
|
||||
user@User {userId, userContactId}
|
||||
Connection {connId, customUserProfileId}
|
||||
GroupLinkInvitation {fromMember, fromMemberName, invitedMember, groupProfile, businessChat} = do
|
||||
GroupLinkInvitation {fromMember, fromMemberName, invitedMember, groupProfile, business} = do
|
||||
currentTs <- liftIO getCurrentTime
|
||||
groupId <- insertGroup_ currentTs
|
||||
hostMemberId <- insertHost_ currentTs groupId
|
||||
@@ -521,10 +522,10 @@ createGroupInvitedViaLink
|
||||
[sql|
|
||||
INSERT INTO groups
|
||||
(group_profile_id, local_display_name, host_conn_custom_user_profile_id, user_id, enable_ntfs,
|
||||
created_at, updated_at, chat_ts, user_member_profile_sent_at, business_member_id, business_chat)
|
||||
VALUES (?,?,?,?,?,?,?,?,?,?,?)
|
||||
created_at, updated_at, chat_ts, user_member_profile_sent_at, business_chat, business_member_id, customer_member_id)
|
||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
|
||||
|]
|
||||
((profileId, localDisplayName, customUserProfileId, userId, True, currentTs, currentTs, currentTs, currentTs) :. businessChatTuple businessChat)
|
||||
((profileId, localDisplayName, customUserProfileId, userId, True, currentTs, currentTs, currentTs, currentTs) :. businessChatInfoRow business)
|
||||
insertedRowId db
|
||||
insertHost_ currentTs groupId = do
|
||||
let fromMemberProfile = profileFromName fromMemberName
|
||||
@@ -631,7 +632,7 @@ getUserGroupDetails db vr User {userId, userContactId} _contactId_ search_ =
|
||||
SELECT
|
||||
g.group_id, g.local_display_name, gp.display_name, gp.full_name, gp.description, gp.image,
|
||||
g.host_conn_custom_user_profile_id, g.enable_ntfs, g.send_rcpts, g.favorite, gp.preferences,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_member_id, g.business_chat, g.ui_themes, g.custom_data,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_chat, g.business_member_id, g.customer_member_id, g.ui_themes, g.custom_data,
|
||||
mu.group_member_id, g.group_id, mu.member_id, mu.peer_chat_min_version, mu.peer_chat_max_version, mu.member_role, mu.member_category, mu.member_status, mu.show_messages, mu.member_restriction,
|
||||
mu.invited_by, mu.invited_by_group_member_id, mu.local_display_name, mu.contact_id, mu.contact_profile_id, pu.contact_profile_id, pu.display_name, pu.full_name, pu.image, pu.contact_link, pu.local_alias, pu.preferences
|
||||
FROM groups g
|
||||
@@ -918,9 +919,9 @@ createBusinessRequestGroup
|
||||
UserContactRequest {cReqChatVRange, xContactId, profile = Profile {displayName, fullName, image, contactLink, preferences}}
|
||||
groupPreferences = do
|
||||
currentTs <- liftIO getCurrentTime
|
||||
(groupId, membership) <- insertGroup_ currentTs
|
||||
(groupId, membership@GroupMember {memberId = userMemberId}) <- insertGroup_ currentTs
|
||||
(groupMemberId, memberId) <- insertClientMember_ currentTs groupId membership
|
||||
liftIO $ DB.execute db "UPDATE groups SET business_member_id = ? WHERE group_id = ?" (memberId, groupId)
|
||||
liftIO $ DB.execute db "UPDATE groups SET business_member_id = ?, customer_member_id = ? WHERE group_id = ?" (userMemberId, memberId, groupId)
|
||||
groupInfo <- getGroupInfo db vr user groupId
|
||||
clientMember <- getGroupMemberById db vr user groupMemberId
|
||||
pure (groupInfo, clientMember)
|
||||
@@ -1370,7 +1371,7 @@ getViaGroupMember db vr User {userId, userContactId} Contact {contactId} =
|
||||
-- GroupInfo
|
||||
g.group_id, g.local_display_name, gp.display_name, gp.full_name, gp.description, gp.image,
|
||||
g.host_conn_custom_user_profile_id, g.enable_ntfs, g.send_rcpts, g.favorite, gp.preferences,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_member_id, g.business_chat, g.ui_themes, g.custom_data,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_chat, g.business_member_id, g.customer_member_id, g.ui_themes, g.custom_data,
|
||||
-- GroupInfo {membership}
|
||||
mu.group_member_id, mu.group_id, mu.member_id, mu.peer_chat_min_version, mu.peer_chat_max_version, mu.member_role, mu.member_category,
|
||||
mu.member_status, mu.show_messages, mu.member_restriction, mu.invited_by, mu.invited_by_group_member_id, mu.local_display_name, mu.contact_id, mu.contact_profile_id, pu.contact_profile_id,
|
||||
@@ -1456,6 +1457,23 @@ updateGroupProfile db user@User {userId} g@GroupInfo {groupId, localDisplayName,
|
||||
(ldn, currentTs, userId, groupId)
|
||||
safeDeleteLDN db user localDisplayName
|
||||
|
||||
updateGroupPreferences :: DB.Connection -> User -> GroupInfo -> GroupPreferences -> IO GroupInfo
|
||||
updateGroupPreferences db User {userId} g@GroupInfo {groupId, groupProfile = p} ps = do
|
||||
currentTs <- getCurrentTime
|
||||
DB.execute
|
||||
db
|
||||
[sql|
|
||||
UPDATE group_profiles
|
||||
SET preferences = ?, updated_at = ?
|
||||
WHERE group_profile_id IN (
|
||||
SELECT group_profile_id
|
||||
FROM groups
|
||||
WHERE user_id = ? AND group_id = ?
|
||||
)
|
||||
|]
|
||||
(ps, currentTs, userId, groupId)
|
||||
pure (g :: GroupInfo) {groupProfile = p {groupPreferences = Just ps}}
|
||||
|
||||
updateGroupProfileFromMember :: DB.Connection -> User -> GroupInfo -> Profile -> ExceptT StoreError IO GroupInfo
|
||||
updateGroupProfileFromMember db user g@GroupInfo {groupId} Profile {displayName = n, fullName = fn, image = img} = do
|
||||
p <- getGroupProfile -- to avoid any race conditions with UI
|
||||
|
||||
@@ -118,6 +118,7 @@ import Simplex.Chat.Migrations.M20241023_chat_item_autoincrement_id
|
||||
import Simplex.Chat.Migrations.M20241027_server_operators
|
||||
import Simplex.Chat.Migrations.M20241125_indexes
|
||||
import Simplex.Chat.Migrations.M20241128_business_chats
|
||||
import Simplex.Chat.Migrations.M20241205_business_chat_members
|
||||
import Simplex.Messaging.Agent.Store.SQLite.Migrations (Migration (..))
|
||||
|
||||
schemaMigrations :: [(String, Query, Maybe Query)]
|
||||
@@ -235,7 +236,8 @@ schemaMigrations =
|
||||
("20241023_chat_item_autoincrement_id", m20241023_chat_item_autoincrement_id, Just down_m20241023_chat_item_autoincrement_id),
|
||||
("20241027_server_operators", m20241027_server_operators, Just down_m20241027_server_operators),
|
||||
("20241125_indexes", m20241125_indexes, Just down_m20241125_indexes),
|
||||
("20241128_business_chats", m20241128_business_chats, Just down_m20241128_business_chats)
|
||||
("20241128_business_chats", m20241128_business_chats, Just down_m20241128_business_chats),
|
||||
("20241205_business_chat_members", m20241205_business_chat_members, Just down_m20241205_business_chat_members)
|
||||
]
|
||||
|
||||
-- | The list of migrations in ascending order by date
|
||||
|
||||
@@ -22,7 +22,7 @@ import qualified Data.Aeson.TH as J
|
||||
import qualified Data.ByteString.Base64 as B64
|
||||
import Data.ByteString.Char8 (ByteString)
|
||||
import Data.Int (Int64)
|
||||
import Data.Maybe (fromMaybe, isJust, listToMaybe)
|
||||
import Data.Maybe (fromMaybe, isJust, isNothing, listToMaybe)
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import Data.Time.Clock (UTCTime (..), getCurrentTime)
|
||||
@@ -46,6 +46,7 @@ import Simplex.Messaging.Parsers (dropPrefix, sumTypeJSON)
|
||||
import Simplex.Messaging.Protocol (SubscriptionMode (..))
|
||||
import Simplex.Messaging.Util (allFinally)
|
||||
import Simplex.Messaging.Version
|
||||
import System.IO.Unsafe (unsafePerformIO)
|
||||
import UnliftIO.STM
|
||||
|
||||
data ChatLockEntity
|
||||
@@ -210,7 +211,26 @@ toConnection vr ((connId, acId, connLevel, viaContact, viaUserContactLink, viaGr
|
||||
toMaybeConnection :: VersionRangeChat -> MaybeConnectionRow -> Maybe Connection
|
||||
toMaybeConnection vr ((Just connId, Just agentConnId, Just connLevel, viaContact, viaUserContactLink, Just viaGroupLink, groupLinkId, customUserProfileId, Just connStatus, Just connType, Just contactConnInitiated, Just localAlias) :. (contactId, groupMemberId, sndFileId, rcvFileId, userContactLinkId) :. (Just createdAt, code_, verifiedAt_, Just pqSupport, Just pqEncryption, pqSndEnabled_, pqRcvEnabled_, Just authErrCounter, Just quotaErrCounter, connChatVersion, Just minVer, Just maxVer)) =
|
||||
Just $ toConnection vr ((connId, agentConnId, connLevel, viaContact, viaUserContactLink, viaGroupLink, groupLinkId, customUserProfileId, connStatus, connType, contactConnInitiated, localAlias) :. (contactId, groupMemberId, sndFileId, rcvFileId, userContactLinkId) :. (createdAt, code_, verifiedAt_, pqSupport, pqEncryption, pqSndEnabled_, pqRcvEnabled_, authErrCounter, quotaErrCounter, connChatVersion, minVer, maxVer))
|
||||
toMaybeConnection _ _ = Nothing
|
||||
toMaybeConnection _ ((connId_, agentConnId_, connLevel_, viaContact, viaUserContactLink, viaGroupLink_, groupLinkId, customUserProfileId, connStatus_, connType_, contactConnInitiated_, localAlias_) :. (contactId, groupMemberId, sndFileId, rcvFileId, userContactLinkId) :. (createdAt_, code_, verifiedAt_, pqSupport_, pqEncryption_, pqSndEnabled_, pqRcvEnabled_, authErrCounter_, quotaErrCounter_, connChatVersion, minVer_, maxVer_)) =
|
||||
unsafePerformIO logRow `seq` Nothing
|
||||
where
|
||||
logRow = do
|
||||
putStrLn $ "connId_ = " <> show connId_
|
||||
when (isNothing agentConnId_) $ putStrLn "agentConnId_ = Nothing"
|
||||
when (isNothing connLevel_) $ putStrLn "connLevel_ = Nothing"
|
||||
when (isNothing viaGroupLink_) $ putStrLn "viaGroupLink_ = Nothing"
|
||||
when (isNothing connStatus_) $ putStrLn "connStatus_ = Nothing"
|
||||
when (isNothing connType_) $ putStrLn "connType_ = Nothing"
|
||||
when (isNothing contactConnInitiated_) $ putStrLn "contactConnInitiated_ = Nothing"
|
||||
when (isNothing localAlias_) $ putStrLn "localAlias_ = Nothing"
|
||||
when (isNothing contactId) $ putStrLn "contactId = Nothing"
|
||||
when (isNothing createdAt_) $ putStrLn "createdAt_ = Nothing"
|
||||
when (isNothing pqSupport_) $ putStrLn "pqSupport_ = Nothing"
|
||||
when (isNothing pqEncryption_) $ putStrLn "pqEncryption_ = Nothing"
|
||||
when (isNothing authErrCounter_) $ putStrLn "authErrCounter_ = Nothing"
|
||||
when (isNothing quotaErrCounter_) $ putStrLn "quotaErrCounter_ = Nothing"
|
||||
when (isNothing minVer_) $ putStrLn "minVer_ = Nothing"
|
||||
when (isNothing maxVer_) $ putStrLn "maxVer_ = Nothing"
|
||||
|
||||
createConnection_ :: DB.Connection -> UserId -> ConnType -> Maybe Int64 -> ConnId -> ConnStatus -> VersionChat -> VersionRangeChat -> Maybe ContactId -> Maybe Int64 -> Maybe ProfileId -> Int -> UTCTime -> SubscriptionMode -> PQSupport -> IO Connection
|
||||
createConnection_ db userId connType entityId acId connStatus connChatVersion peerChatVRange@(VersionRange minV maxV) viaContact viaUserContactLink customUserProfileId connLevel currentTs subMode pqSup = do
|
||||
@@ -394,7 +414,7 @@ type ContactRow = Only ContactId :. ContactRow'
|
||||
toContact :: VersionRangeChat -> User -> ContactRow :. MaybeConnectionRow -> Contact
|
||||
toContact vr user ((Only contactId :. (profileId, localDisplayName, viaGroup, displayName, fullName, image, contactLink, localAlias, contactUsed, contactStatus) :. (enableNtfs_, sendRcpts, favorite, preferences, userPreferences, createdAt, updatedAt, chatTs) :. (contactGroupMemberId, contactGrpInvSent, uiThemes, chatDeleted, customData)) :. connRow) =
|
||||
let profile = LocalProfile {profileId, displayName, fullName, image, contactLink, preferences, localAlias}
|
||||
activeConn = toMaybeConnection vr connRow
|
||||
activeConn = unsafePerformIO (putStrLn $ "contactId " <> show contactId) `seq` toMaybeConnection vr connRow
|
||||
chatSettings = ChatSettings {enableNtfs = fromMaybe MFAll enableNtfs_, sendRcpts, favorite}
|
||||
incognito = maybe False connIncognito activeConn
|
||||
mergedPreferences = contactUserPreferences user userPreferences preferences incognito
|
||||
@@ -546,17 +566,19 @@ safeDeleteLDN db User {userId} localDisplayName = do
|
||||
|]
|
||||
(userId, localDisplayName, userId)
|
||||
|
||||
type GroupInfoRow = (Int64, GroupName, GroupName, Text, Maybe Text, Maybe ImageData, Maybe ProfileId, Maybe MsgFilter, Maybe Bool, Bool, Maybe GroupPreferences) :. (UTCTime, UTCTime, Maybe UTCTime, Maybe UTCTime, Maybe MemberId, Maybe BusinessChatType, Maybe UIThemeEntityOverrides, Maybe CustomData) :. GroupMemberRow
|
||||
type BusinessChatInfoRow = (Maybe BusinessChatType, Maybe MemberId, Maybe MemberId)
|
||||
|
||||
type GroupInfoRow = (Int64, GroupName, GroupName, Text, Maybe Text, Maybe ImageData, Maybe ProfileId, Maybe MsgFilter, Maybe Bool, Bool, Maybe GroupPreferences) :. (UTCTime, UTCTime, Maybe UTCTime, Maybe UTCTime) :. BusinessChatInfoRow :. (Maybe UIThemeEntityOverrides, Maybe CustomData) :. GroupMemberRow
|
||||
|
||||
type GroupMemberRow = ((Int64, Int64, MemberId, VersionChat, VersionChat, GroupMemberRole, GroupMemberCategory, GroupMemberStatus, Bool, Maybe MemberRestrictionStatus) :. (Maybe Int64, Maybe GroupMemberId, ContactName, Maybe ContactId, ProfileId, ProfileId, ContactName, Text, Maybe ImageData, Maybe ConnReqContact, LocalAlias, Maybe Preferences))
|
||||
|
||||
toGroupInfo :: VersionRangeChat -> Int64 -> GroupInfoRow -> GroupInfo
|
||||
toGroupInfo vr userContactId ((groupId, localDisplayName, displayName, fullName, description, image, hostConnCustomUserProfileId, enableNtfs_, sendRcpts, favorite, groupPreferences) :. (createdAt, updatedAt, chatTs, userMemberProfileSentAt, businessMemberId, businessChatType, uiThemes, customData) :. userMemberRow) =
|
||||
toGroupInfo vr userContactId ((groupId, localDisplayName, displayName, fullName, description, image, hostConnCustomUserProfileId, enableNtfs_, sendRcpts, favorite, groupPreferences) :. (createdAt, updatedAt, chatTs, userMemberProfileSentAt) :. businessRow :. (uiThemes, customData) :. userMemberRow) =
|
||||
let membership = (toGroupMember userContactId userMemberRow) {memberChatVRange = vr}
|
||||
chatSettings = ChatSettings {enableNtfs = fromMaybe MFAll enableNtfs_, sendRcpts, favorite}
|
||||
fullGroupPreferences = mergeGroupPreferences groupPreferences
|
||||
groupProfile = GroupProfile {displayName, fullName, description, image, groupPreferences}
|
||||
businessChat = BusinessChatInfo <$> businessMemberId <*> businessChatType
|
||||
businessChat = toBusinessChatInfo businessRow
|
||||
in GroupInfo {groupId, localDisplayName, groupProfile, businessChat, fullGroupPreferences, membership, hostConnCustomUserProfileId, chatSettings, createdAt, updatedAt, chatTs, userMemberProfileSentAt, uiThemes, customData}
|
||||
|
||||
toGroupMember :: Int64 -> GroupMemberRow -> GroupMember
|
||||
@@ -569,6 +591,10 @@ toGroupMember userContactId ((groupMemberId, groupId, memberId, minVer, maxVer,
|
||||
memberChatVRange = fromMaybe (versionToRange maxVer) $ safeVersionRange minVer maxVer
|
||||
in GroupMember {..}
|
||||
|
||||
toBusinessChatInfo :: BusinessChatInfoRow -> Maybe BusinessChatInfo
|
||||
toBusinessChatInfo (Just chatType, Just businessId, Just customerId) = Just BusinessChatInfo {chatType, businessId, customerId}
|
||||
toBusinessChatInfo _ = Nothing
|
||||
|
||||
groupInfoQuery :: Query
|
||||
groupInfoQuery =
|
||||
[sql|
|
||||
@@ -576,7 +602,7 @@ groupInfoQuery =
|
||||
-- GroupInfo
|
||||
g.group_id, g.local_display_name, gp.display_name, gp.full_name, gp.description, gp.image,
|
||||
g.host_conn_custom_user_profile_id, g.enable_ntfs, g.send_rcpts, g.favorite, gp.preferences,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_member_id, g.business_chat, g.ui_themes, g.custom_data,
|
||||
g.created_at, g.updated_at, g.chat_ts, g.user_member_profile_sent_at, g.business_chat, g.business_member_id, g.customer_member_id, g.ui_themes, g.custom_data,
|
||||
-- GroupMember - membership
|
||||
mu.group_member_id, mu.group_id, mu.member_id, mu.peer_chat_min_version, mu.peer_chat_max_version, mu.member_role, mu.member_category,
|
||||
mu.member_status, mu.show_messages, mu.member_restriction, mu.invited_by, mu.invited_by_group_member_id, mu.local_display_name, mu.contact_id, mu.contact_profile_id, pu.contact_profile_id,
|
||||
|
||||
@@ -617,7 +617,7 @@ data GroupInvitation = GroupInvitation
|
||||
invitedMember :: MemberIdRole,
|
||||
connRequest :: ConnReqInvitation,
|
||||
groupProfile :: GroupProfile,
|
||||
businessChat :: Maybe BusinessChatInfo,
|
||||
business :: Maybe BusinessChatInfo,
|
||||
groupLinkId :: Maybe GroupLinkId,
|
||||
groupSize :: Maybe Int
|
||||
}
|
||||
@@ -628,7 +628,7 @@ data GroupLinkInvitation = GroupLinkInvitation
|
||||
fromMemberName :: ContactName,
|
||||
invitedMember :: MemberIdRole,
|
||||
groupProfile :: GroupProfile,
|
||||
businessChat :: Maybe BusinessChatInfo,
|
||||
business :: Maybe BusinessChatInfo,
|
||||
groupSize :: Maybe Int
|
||||
}
|
||||
deriving (Eq, Show)
|
||||
@@ -654,8 +654,9 @@ data MemberInfo = MemberInfo
|
||||
deriving (Eq, Show)
|
||||
|
||||
data BusinessChatInfo = BusinessChatInfo
|
||||
{ memberId :: MemberId,
|
||||
chatType :: BusinessChatType
|
||||
{ chatType :: BusinessChatType,
|
||||
businessId :: MemberId,
|
||||
customerId :: MemberId
|
||||
}
|
||||
deriving (Eq, Show)
|
||||
|
||||
|
||||
@@ -734,8 +734,8 @@ testBusinessAddress = testChat3 businessProfile aliceProfile {fullName = "Alice
|
||||
(biz <# "#bob bob_1> hey there")
|
||||
|
||||
testBusinessUpdateProfiles :: HasCallStack => FilePath -> IO ()
|
||||
testBusinessUpdateProfiles = testChat3 businessProfile aliceProfile bobProfile $
|
||||
\biz alice bob -> do
|
||||
testBusinessUpdateProfiles = testChat4 businessProfile aliceProfile bobProfile cathProfile $
|
||||
\biz alice bob cath -> do
|
||||
biz ##> "/ad"
|
||||
cLink <- getContactLink biz True
|
||||
biz ##> "/auto_accept on business text Welcome"
|
||||
@@ -794,9 +794,37 @@ testBusinessUpdateProfiles = testChat3 businessProfile aliceProfile bobProfile $
|
||||
bob #> "#biz hi there" -- profile update is sent to group with message
|
||||
alice <# "#biz robert> hi there"
|
||||
biz <# "#alisa robert> hi there"
|
||||
-- add business team member
|
||||
connectUsers biz cath
|
||||
biz ##> "/a #alisa cath"
|
||||
biz <## "invitation to join the group #alisa sent to cath"
|
||||
cath <## "#alisa: biz invites you to join the group as member"
|
||||
cath <## "use /j alisa to accept"
|
||||
cath ##> "/j alisa"
|
||||
concurrentlyN_
|
||||
[ do
|
||||
cath <## "#alisa: you joined the group"
|
||||
cath
|
||||
<###
|
||||
[ WithTime "#alisa biz> Welcome [>>]",
|
||||
WithTime "#alisa biz> hi [>>]",
|
||||
WithTime "#alisa alisa_1> hello [>>]",
|
||||
WithTime "#alisa alisa_1> hello again [>>]",
|
||||
WithTime "#alisa robert> hi there [>>]"
|
||||
]
|
||||
cath <## "#alisa: member alisa_1 is connected"
|
||||
cath <## "#alisa: member robert is connected",
|
||||
biz <## "#alisa: cath joined the group",
|
||||
do
|
||||
alice <## "#biz: biz_1 added cath (Catherine) to the group (connecting...)"
|
||||
alice <## "#biz: new member cath is connected",
|
||||
do
|
||||
bob <## "#biz: biz_1 added cath (Catherine) to the group (connecting...)"
|
||||
bob <## "#biz: new member cath is connected"
|
||||
]
|
||||
-- both customers receive business profile change
|
||||
biz ##> "/p business"
|
||||
biz <## "user profile is changed to business (your 0 contacts are notified)"
|
||||
biz <## "user profile is changed to business (your 1 contacts are notified)"
|
||||
biz #> "#alisa hey"
|
||||
concurrentlyN_
|
||||
[ do
|
||||
@@ -806,7 +834,28 @@ testBusinessUpdateProfiles = testChat3 businessProfile aliceProfile bobProfile $
|
||||
do
|
||||
bob <## "biz_1 updated group #biz:"
|
||||
bob <## "changed to #business"
|
||||
bob <# "#business business_1> hey"
|
||||
bob <# "#business business_1> hey",
|
||||
do
|
||||
cath <## "contact biz changed to business"
|
||||
cath <## "use @business <message> to send messages"
|
||||
cath <# "#alisa business> hey"
|
||||
]
|
||||
biz ##> "/set voice #alisa on"
|
||||
biz <## "updated group preferences:"
|
||||
biz <## "Voice messages: on"
|
||||
concurrentlyN_
|
||||
[ do
|
||||
alice <## "business_1 updated group #business:"
|
||||
alice <## "updated group preferences:"
|
||||
alice <## "Voice messages: on",
|
||||
do
|
||||
bob <## "business_1 updated group #business:"
|
||||
bob <## "updated group preferences:"
|
||||
bob <## "Voice messages: on",
|
||||
do
|
||||
cath <## "business updated group #alisa:"
|
||||
cath <## "updated group preferences:"
|
||||
cath <## "Voice messages: on"
|
||||
]
|
||||
|
||||
testPlanAddressOkKnown :: HasCallStack => FilePath -> IO ()
|
||||
@@ -2512,7 +2561,7 @@ testSetUITheme =
|
||||
a <## "you've shared main profile with this contact"
|
||||
a <## "connection not verified, use /code command to see security code"
|
||||
a <## "quantum resistant end-to-end encryption"
|
||||
a <## "peer chat protocol version range: (Version 1, Version 10)"
|
||||
a <## "peer chat protocol version range: (Version 1, Version 11)"
|
||||
groupInfo a = do
|
||||
a <## "group ID: 1"
|
||||
a <## "current members: 1"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user