Merge branch 'master' into master-android

This commit is contained in:
Evgeny Poberezkin
2024-09-17 22:30:41 +01:00
80 changed files with 4235 additions and 1767 deletions
+19 -17
View File
@@ -1821,23 +1821,25 @@ func processReceivedMsg(_ res: ChatResponse) async {
NtfManager.shared.notifyMessageReceived(user, cInfo, cItem)
}
}
case let .chatItemStatusUpdated(user, aChatItem):
let cInfo = aChatItem.chatInfo
let cItem = aChatItem.chatItem
if !cItem.isDeletedContent && active(user) {
await MainActor.run { m.updateChatItem(cInfo, cItem, status: cItem.meta.itemStatus) }
}
if let endTask = m.messageDelivery[cItem.id] {
switch cItem.meta.itemStatus {
case .sndNew: ()
case .sndSent: endTask()
case .sndRcvd: endTask()
case .sndErrorAuth: endTask()
case .sndError: endTask()
case .sndWarning: endTask()
case .rcvNew: ()
case .rcvRead: ()
case .invalid: ()
case let .chatItemsStatusesUpdated(user, chatItems):
for chatItem in chatItems {
let cInfo = chatItem.chatInfo
let cItem = chatItem.chatItem
if !cItem.isDeletedContent && active(user) {
await MainActor.run { m.updateChatItem(cInfo, cItem, status: cItem.meta.itemStatus) }
}
if let endTask = m.messageDelivery[cItem.id] {
switch cItem.meta.itemStatus {
case .sndNew: ()
case .sndSent: endTask()
case .sndRcvd: endTask()
case .sndErrorAuth: endTask()
case .sndError: endTask()
case .sndWarning: endTask()
case .rcvNew: ()
case .rcvRead: ()
case .invalid: ()
}
}
}
case let .chatItemUpdated(user, aChatItem):
@@ -214,10 +214,12 @@ struct ActiveCallView: View {
ChatReceiver.shared.messagesChannel = nil
return
}
if case let .chatItemStatusUpdated(_, msg) = msg,
msg.chatInfo.id == call.contact.id,
case .sndCall = msg.chatItem.content,
case .sndRcvd = msg.chatItem.meta.itemStatus {
if case let .chatItemsStatusesUpdated(_, chatItems) = msg,
chatItems.contains(where: { ci in
ci.chatInfo.id == call.contact.id &&
ci.chatItem.content.isSndCall &&
ci.chatItem.meta.itemStatus.isSndRcvd
}) {
CallSoundsPlayer.shared.startInCallSound()
ChatReceiver.shared.messagesChannel = nil
}
@@ -66,7 +66,7 @@ struct ChatListView: View {
case .address:
NavigationView {
UserAddressView(shareViaProfile: currentUser.addressShared)
.navigationTitle("Public address")
.navigationTitle("SimpleX address")
.navigationBarTitleDisplayMode(.large)
.modifier(ThemedBackground(grouped: true))
}
@@ -78,7 +78,7 @@ struct ChatListView: View {
NavigationView {
UserProfile()
.navigationTitle("Your current profile")
.modifier(ThemedBackground())
.modifier(ThemedBackground(grouped: true))
}
case .chatPreferences:
NavigationView {
@@ -407,12 +407,18 @@ struct ServersSummaryView: View {
struct SubscriptionStatusIndicatorView: View {
@EnvironmentObject var m: ChatModel
@EnvironmentObject var theme: AppTheme
var subs: SMPServerSubs
var hasSess: Bool
var body: some View {
let onionHosts = networkUseOnionHostsGroupDefault.get()
let (color, variableValue, opacity, _) = subscriptionStatusColorAndPercentage(m.networkInfo.online, onionHosts, subs, hasSess)
let (color, variableValue, opacity, _) = subscriptionStatusColorAndPercentage(
online: m.networkInfo.online,
usesProxy: networkUseOnionHostsGroupDefault.get() != .no || groupDefaults.string(forKey: GROUP_DEFAULT_NETWORK_SOCKS_PROXY) != nil,
subs: subs,
hasSess: hasSess,
primaryColor: theme.colors.primary
)
if #available(iOS 16.0, *) {
Image(systemName: "dot.radiowaves.up.forward", variableValue: variableValue)
.foregroundColor(color)
@@ -425,26 +431,32 @@ struct SubscriptionStatusIndicatorView: View {
struct SubscriptionStatusPercentageView: View {
@EnvironmentObject var m: ChatModel
@EnvironmentObject var theme: AppTheme
var subs: SMPServerSubs
var hasSess: Bool
var body: some View {
let onionHosts = networkUseOnionHostsGroupDefault.get()
let (_, _, _, statusPercent) = subscriptionStatusColorAndPercentage(m.networkInfo.online, onionHosts, subs, hasSess)
let (_, _, _, statusPercent) = subscriptionStatusColorAndPercentage(
online: m.networkInfo.online,
usesProxy: networkUseOnionHostsGroupDefault.get() != .no || groupDefaults.string(forKey: GROUP_DEFAULT_NETWORK_SOCKS_PROXY) != nil,
subs: subs,
hasSess: hasSess,
primaryColor: theme.colors.primary
)
Text(verbatim: "\(Int(floor(statusPercent * 100)))%")
.foregroundColor(.secondary)
.font(.caption)
}
}
func subscriptionStatusColorAndPercentage(_ online: Bool, _ onionHosts: OnionHosts, _ subs: SMPServerSubs, _ hasSess: Bool) -> (Color, Double, Double, Double) {
func subscriptionStatusColorAndPercentage(online: Bool, usesProxy: Bool, subs: SMPServerSubs, hasSess: Bool, primaryColor: Color) -> (Color, Double, Double, Double) {
func roundedToQuarter(_ n: Double) -> Double {
n >= 1 ? 1
: n <= 0 ? 0
: (n * 4).rounded() / 4
}
let activeColor: Color = onionHosts == .require ? .indigo : .accentColor
let activeColor: Color = usesProxy ? .indigo : primaryColor
let noConnColorAndPercent: (Color, Double, Double, Double) = (Color(uiColor: .tertiaryLabel), 1, 1, 0)
let activeSubsRounded = roundedToQuarter(subs.shareOfActive)
@@ -49,7 +49,7 @@ struct UserPicker: View {
activeSheet = .currentProfile
}
openSheetOnTap(title: m.userAddress == nil ? "Create public address" : "Your public address", icon: "qrcode") {
openSheetOnTap(title: m.userAddress == nil ? "Create SimpleX address" : "Your SimpleX address", icon: "qrcode") {
activeSheet = .address
}
@@ -270,12 +270,12 @@ struct DatabaseView: View {
case let .archiveImportedWithErrors(errs):
return Alert(
title: Text("Chat database imported"),
message: Text("Restart the app to use imported chat database") + Text(verbatim: "\n\n") + Text("Some non-fatal errors occurred during import:") + archiveErrorsText(errs)
message: Text("Restart the app to use imported chat database") + Text(verbatim: "\n") + Text("Some non-fatal errors occurred during import:") + archiveErrorsText(errs)
)
case let .archiveExportedWithErrors(archivePath, errs):
return Alert(
title: Text("Chat database exported"),
message: Text("You may save the exported archive.") + Text(verbatim: "\n\n") + Text("Some file(s) were not exported:") + archiveErrorsText(errs),
message: Text("You may save the exported archive.") + Text(verbatim: "\n") + Text("Some file(s) were not exported:") + archiveErrorsText(errs),
dismissButton: .default(Text("Continue")) {
showShareSheet(items: [archivePath])
}
@@ -177,7 +177,7 @@ struct MigrateFromDevice: View {
case let .archiveExportedWithErrors(archivePath, errs):
return Alert(
title: Text("Chat database exported"),
message: Text("You may migrate the exported database.") + Text(verbatim: "\n\n") + Text("Some file(s) were not exported:") + archiveErrorsText(errs),
message: Text("You may migrate the exported database.") + Text(verbatim: "\n") + Text("Some file(s) were not exported:") + archiveErrorsText(errs),
dismissButton: .default(Text("Continue")) {
Task { await uploadArchive(path: archivePath) }
}
@@ -529,9 +529,15 @@ struct MigrateFromDevice: View {
}
case let .sndStandaloneFileComplete(_, fileTransferMeta, rcvURIs):
let cfg = getNetCfg()
let proxy: NetworkProxy? = if cfg.socksProxy == nil {
nil
} else {
networkProxyDefault.get()
}
let data = MigrationFileLinkData.init(
networkConfig: MigrationFileLinkData.NetworkConfig(
socksProxy: cfg.socksProxy,
networkProxy: proxy,
hostMode: cfg.hostMode,
requiredHostMode: cfg.requiredHostMode
)
@@ -571,7 +571,7 @@ struct MigrateToDevice: View {
AlertManager.shared.showAlert(
Alert(
title: Text("Error migrating settings"),
message: Text ("Not all settings were migrated. Repeat migration if you need them.") + Text("\n\n") + Text(responseError(error)))
message: Text ("Some app settings were not migrated.") + Text("\n") + Text(responseError(error)))
)
}
hideView()
@@ -36,6 +36,10 @@ struct AdvancedNetworkSettings: View {
@State private var showSettingsAlert: NetworkSettingsAlert?
@State private var onionHosts: OnionHosts = .no
@State private var showSaveDialog = false
@State private var netProxy = networkProxyDefault.get()
@State private var currentNetProxy = networkProxyDefault.get()
@State private var useNetProxy = false
@State private var netProxyAuth = false
var body: some View {
VStack {
@@ -102,6 +106,76 @@ struct AdvancedNetworkSettings: View {
.foregroundColor(theme.colors.secondary)
}
Section {
Toggle("Use SOCKS proxy", isOn: $useNetProxy)
Group {
TextField("IP address", text: $netProxy.host)
TextField(
"Port",
text: Binding(
get: { netProxy.port > 0 ? "\(netProxy.port)" : "" },
set: { s in
netProxy.port = if let port = Int(s), port > 0 {
port
} else {
0
}
}
)
)
Toggle("Proxy requires password", isOn: $netProxyAuth)
if netProxyAuth {
TextField("Username", text: $netProxy.username)
PassphraseField(
key: $netProxy.password,
placeholder: "Password",
valid: NetworkProxy.validCredential(netProxy.password)
)
}
}
.if(!useNetProxy) { $0.foregroundColor(theme.colors.secondary) }
.disabled(!useNetProxy)
} header: {
HStack {
Text("SOCKS proxy").foregroundColor(theme.colors.secondary)
if useNetProxy && !netProxy.valid {
Spacer()
Image(systemName: "exclamationmark.circle.fill").foregroundColor(.red)
}
}
} footer: {
if netProxyAuth {
Text("Your credentials may be sent unencrypted.")
.foregroundColor(theme.colors.secondary)
} else {
Text("Do not use credentials with proxy.")
.foregroundColor(theme.colors.secondary)
}
}
.onChange(of: useNetProxy) { useNetProxy in
netCfg.socksProxy = useNetProxy && currentNetProxy.valid
? currentNetProxy.toProxyString()
: nil
netProxy = currentNetProxy
netProxyAuth = netProxy.username != "" || netProxy.password != ""
}
.onChange(of: netProxyAuth) { netProxyAuth in
if netProxyAuth {
netProxy.auth = currentNetProxy.auth
netProxy.username = currentNetProxy.username
netProxy.password = currentNetProxy.password
} else {
netProxy.auth = .username
netProxy.username = ""
netProxy.password = ""
}
}
.onChange(of: netProxy) { netProxy in
netCfg.socksProxy = useNetProxy && netProxy.valid
? netProxy.toProxyString()
: nil
}
Section {
Picker("Use .onion hosts", selection: $onionHosts) {
ForEach(OnionHosts.values, id: \.self) { Text($0.text) }
@@ -156,19 +230,19 @@ struct AdvancedNetworkSettings: View {
Section {
Button("Reset to defaults") {
updateNetCfgView(NetCfg.defaults)
updateNetCfgView(NetCfg.defaults, NetworkProxy.def)
}
.disabled(netCfg == NetCfg.defaults)
Button("Set timeouts for proxy/VPN") {
updateNetCfgView(netCfg.withProxyTimeouts)
updateNetCfgView(netCfg.withProxyTimeouts, netProxy)
}
.disabled(netCfg.hasProxyTimeouts)
Button("Save and reconnect") {
showSettingsAlert = .update
}
.disabled(netCfg == currentNetCfg)
.disabled(netCfg == currentNetCfg || (useNetProxy && !netProxy.valid))
}
}
}
@@ -182,7 +256,8 @@ struct AdvancedNetworkSettings: View {
if cfgLoaded { return }
cfgLoaded = true
currentNetCfg = getNetCfg()
updateNetCfgView(currentNetCfg)
currentNetProxy = networkProxyDefault.get()
updateNetCfgView(currentNetCfg, currentNetProxy)
}
.alert(item: $showSettingsAlert) { a in
switch a {
@@ -206,7 +281,7 @@ struct AdvancedNetworkSettings: View {
if netCfg == currentNetCfg {
dismiss()
cfgLoaded = false
} else {
} else if !useNetProxy || netProxy.valid {
showSaveDialog = true
}
})
@@ -221,18 +296,26 @@ struct AdvancedNetworkSettings: View {
}
}
private func updateNetCfgView(_ cfg: NetCfg) {
private func updateNetCfgView(_ cfg: NetCfg, _ proxy: NetworkProxy) {
netCfg = cfg
netProxy = proxy
onionHosts = OnionHosts(netCfg: netCfg)
enableKeepAlive = netCfg.enableKeepAlive
keepAliveOpts = netCfg.tcpKeepAlive ?? KeepAliveOpts.defaults
useNetProxy = netCfg.socksProxy != nil
netProxyAuth = switch netProxy.auth {
case .username: netProxy.username != "" || netProxy.password != ""
case .isolate: false
}
}
private func saveNetCfg() -> Bool {
do {
try setNetworkConfig(netCfg)
currentNetCfg = netCfg
setNetCfg(netCfg)
setNetCfg(netCfg, networkProxy: useNetProxy ? netProxy : nil)
currentNetProxy = netProxy
networkProxyDefault.set(netProxy)
return true
} catch let error {
let err = responseError(error)
@@ -19,9 +19,15 @@ extension AppSettings {
val.hostMode = .publicHost
val.requiredHostMode = true
}
val.socksProxy = nil
setNetCfg(val)
if val.socksProxy != nil {
val.socksProxy = networkProxy?.toProxyString()
setNetCfg(val, networkProxy: networkProxy)
} else {
val.socksProxy = nil
setNetCfg(val, networkProxy: nil)
}
}
if let val = networkProxy { networkProxyDefault.set(val) }
if let val = privacyEncryptLocalFiles { privacyEncryptLocalFilesGroupDefault.set(val) }
if let val = privacyAskToApproveRelays { privacyAskToApproveRelaysGroupDefault.set(val) }
if let val = privacyAcceptImages {
@@ -63,6 +69,7 @@ extension AppSettings {
let def = UserDefaults.standard
var c = AppSettings.defaults
c.networkConfig = getNetCfg()
c.networkProxy = networkProxyDefault.get()
c.privacyEncryptLocalFiles = privacyEncryptLocalFilesGroupDefault.get()
c.privacyAskToApproveRelays = privacyAskToApproveRelaysGroupDefault.get()
c.privacyAcceptImages = privacyAcceptImagesGroupDefault.get()
@@ -75,6 +75,8 @@ let DEFAULT_SYSTEM_DARK_THEME = "systemDarkTheme"
let DEFAULT_CURRENT_THEME_IDS = "currentThemeIds"
let DEFAULT_THEME_OVERRIDES = "themeOverrides"
let DEFAULT_NETWORK_PROXY = "networkProxy"
let ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN = "androidCallOnLockScreen"
let defaultChatItemRoundness: Double = 0.75
@@ -251,6 +253,7 @@ public class CodableDefault<T: Codable> {
}
}
let networkProxyDefault: CodableDefault<NetworkProxy> = CodableDefault(defaults: UserDefaults.standard, forKey: DEFAULT_NETWORK_PROXY, withDefault: NetworkProxy.def)
struct SettingsView: View {
@Environment(\.colorScheme) var colorScheme
@@ -229,7 +229,7 @@ struct UserAddressView: View {
}
}
} label: {
Label("Create public address", systemImage: "qrcode")
Label("Create SimpleX address", systemImage: "qrcode")
}
}
File diff suppressed because one or more lines are too long
@@ -1007,6 +1007,10 @@
<target>Автоматично приемане на изображения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Назад</target>
@@ -1171,7 +1175,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Отказ</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1314,6 +1318,10 @@
<target>Чат настройки</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<note>No comment provided by engineer.</note>
@@ -2789,6 +2797,10 @@ This is your own one-time link!</source>
<target>Грешка при зареждане на %@ сървъри</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Грешка при отваряне на чата</target>
@@ -3210,11 +3222,6 @@ Error: %2$@</source>
<target>Пълно име (незадължително)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Пълно име:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Напълно децентрализирана – видима е само за членовете.</target>
@@ -4907,16 +4914,6 @@ Error: %@</source>
<target>Профилни изображения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Име на профила</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Име на профила:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Профилна парола</target>
@@ -5224,6 +5221,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Премахване</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<note>No comment provided by engineer.</note>
@@ -5409,12 +5410,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Запази</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Запази (и уведоми контактите)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5440,11 +5442,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Запази архив</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Запази настройките за автоматично приемане</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Запази профила на групата</target>
@@ -5480,16 +5477,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>Запази сървърите?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Запази настройките?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Запази съобщението при посрещане?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Запазено</target>
@@ -5905,6 +5901,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Настройки</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Променете формата на профилните изображения</target>
@@ -6101,6 +6101,10 @@ Enable in *Network &amp; servers* settings.</source>
<source>Soft</source>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<note>No comment provided by engineer.</note>
@@ -6459,6 +6463,10 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Текстът, който поставихте, не е SimpleX линк за връзка.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<note>No comment provided by engineer.</note>
@@ -7511,6 +7519,10 @@ Repeat connection request?</source>
<target>Вашата чат база данни не е криптирана - задайте парола, за да я криптирате.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Вашите чат профили</target>
@@ -7565,13 +7577,15 @@ Repeat connection request?</source>
<target>Вашият профил **%@** ще бъде споделен.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Вашият профил се съхранява на вашето устройство и се споделя само с вашите контакти.
SimpleX сървърите не могат да видят вашия профил.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Вашият профил се съхранява на вашето устройство и се споделя само с вашите контакти. SimpleX сървърите не могат да видят вашия профил.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Вашият профил, контакти и доставени съобщения се съхраняват на вашето устройство.</target>
@@ -977,6 +977,10 @@
<target>Automaticky přijímat obrázky</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Zpět</target>
@@ -1131,7 +1135,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Zrušit</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1270,6 +1274,10 @@
<target>Předvolby chatu</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<note>No comment provided by engineer.</note>
@@ -2694,6 +2702,10 @@ This is your own one-time link!</source>
<target>Chyba načítání %@ serverů</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<note>No comment provided by engineer.</note>
@@ -3099,11 +3111,6 @@ Error: %2$@</source>
<target>Celé jméno (volitelně)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Celé jméno:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<note>No comment provided by engineer.</note>
@@ -4729,14 +4736,6 @@ Error: %@</source>
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Heslo profilu</target>
@@ -5038,6 +5037,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Odstranit</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<note>No comment provided by engineer.</note>
@@ -5216,12 +5219,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Uložit</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Uložit (a informovat kontakty)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5247,11 +5251,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Uložit archiv</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Uložit nastavení automatického přijímání</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Uložení profilu skupiny</target>
@@ -5287,16 +5286,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>Uložit servery?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Uložit nastavení?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Uložit uvítací zprávu?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<note>No comment provided by engineer.</note>
@@ -5703,6 +5701,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Nastavení</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
@@ -5894,6 +5896,10 @@ Enable in *Network &amp; servers* settings.</source>
<source>Soft</source>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<note>No comment provided by engineer.</note>
@@ -6243,6 +6249,10 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
<source>The text you pasted is not a SimpleX link.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<note>No comment provided by engineer.</note>
@@ -7240,6 +7250,10 @@ Repeat connection request?</source>
<target>Vaše chat databáze není šifrována nastavte přístupovou frázi pro její šifrování.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Vaše chat profily</target>
@@ -7293,13 +7307,15 @@ Repeat connection request?</source>
<target>Váš profil **%@** bude sdílen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Váš profil je uložen ve vašem zařízení a sdílen pouze s vašimi kontakty.
Servery SimpleX nevidí váš profil.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Váš profil je uložen ve vašem zařízení a sdílen pouze s vašimi kontakty. Servery SimpleX nevidí váš profil.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Váš profil, kontakty a doručené zprávy jsou uloženy ve vašem zařízení.</target>
@@ -1024,6 +1024,10 @@
<target>Bilder automatisch akzeptieren</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Zurück</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Abbrechen</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Chat-Präferenzen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Chat-Design</target>
@@ -1397,22 +1405,22 @@
</trans-unit>
<trans-unit id="Clear" xml:space="preserve">
<source>Clear</source>
<target>Löschen</target>
<target>Entfernen</target>
<note>swipe action</note>
</trans-unit>
<trans-unit id="Clear conversation" xml:space="preserve">
<source>Clear conversation</source>
<target>Chatinhalte löschen</target>
<target>Chat-Inhalte entfernen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear conversation?" xml:space="preserve">
<source>Clear conversation?</source>
<target>Unterhaltung löschen?</target>
<target>Chat-Inhalte entfernen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear private notes?" xml:space="preserve">
<source>Clear private notes?</source>
<target>Private Notizen löschen?</target>
<target>Private Notizen entfernen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear verification" xml:space="preserve">
@@ -1726,7 +1734,7 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit>
<trans-unit id="Conversation deleted!" xml:space="preserve">
<source>Conversation deleted!</source>
<target>Unterhaltung gelöscht!</target>
<target>Chat-Inhalte entfernt!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Copy" xml:space="preserve">
@@ -2870,6 +2878,10 @@ Das ist Ihr eigener Einmal-Link!</target>
<target>Fehler beim Laden von %@ Servern</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Fehler beim Öffnen des Chats</target>
@@ -3309,11 +3321,6 @@ Fehler: %2$@</target>
<target>Vollständiger Name (optional)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Vollständiger Name:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Vollständig dezentralisiert nur für Mitglieder sichtbar.</target>
@@ -3471,7 +3478,7 @@ Fehler: %2$@</target>
</trans-unit>
<trans-unit id="Group will be deleted for you - this cannot be undone!" xml:space="preserve">
<source>Group will be deleted for you - this cannot be undone!</source>
<target>Die Gruppe wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!</target>
<target>Die Gruppe wird nur bei Ihnen gelöscht. Dies kann nicht rückgängig gemacht werden!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Help" xml:space="preserve">
@@ -3926,7 +3933,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit>
<trans-unit id="Keep conversation" xml:space="preserve">
<source>Keep conversation</source>
<target>Unterhaltung behalten</target>
<target>Chat-Inhalte beibehalten</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
@@ -4628,7 +4635,7 @@ Dies erfordert die Aktivierung eines VPNs.</target>
</trans-unit>
<trans-unit id="Only delete conversation" xml:space="preserve">
<source>Only delete conversation</source>
<target>Nur die Unterhaltung löschen</target>
<target>Nur die Chat-Inhalte löschen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Only group owners can change group preferences." xml:space="preserve">
@@ -5045,16 +5052,6 @@ Fehler: %@</target>
<target>Profil-Bilder</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Profilname</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Profilname:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Passwort für Profil</target>
@@ -5179,7 +5176,7 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
</trans-unit>
<trans-unit id="Reachable chat toolbar" xml:space="preserve">
<source>Reachable chat toolbar</source>
<target>Erreichbare Chat-Symbolleiste</target>
<target>Chat-Symbolleiste unten</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="React…" xml:space="preserve">
@@ -5378,6 +5375,10 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<target>Entfernen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Bild entfernen</target>
@@ -5571,12 +5572,13 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Speichern</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Speichern (und Kontakte benachrichtigen)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<target>Archiv speichern</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Einstellungen von "Automatisch akzeptieren" speichern</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Gruppenprofil speichern</target>
@@ -5643,16 +5640,15 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<target>Alle Server speichern?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Einstellungen speichern?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Begrüßungsmeldung speichern?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Abgespeichert</target>
@@ -5720,7 +5716,7 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
</trans-unit>
<trans-unit id="Search or paste SimpleX link" xml:space="preserve">
<source>Search or paste SimpleX link</source>
<target>Suchen oder fügen Sie den SimpleX-Link ein</target>
<target>Suchen oder SimpleX-Link einfügen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Secondary" xml:space="preserve">
@@ -6092,6 +6088,10 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<target>Einstellungen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Form der Profil-Bilder</target>
@@ -6296,6 +6296,10 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<target>Weich</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Einzelne Datei(en) wurde(n) nicht exportiert:</target>
@@ -6624,7 +6628,7 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
</trans-unit>
<trans-unit id="The messages will be deleted for all members." xml:space="preserve">
<source>The messages will be deleted for all members.</source>
<target>Die Nachrichten werden für alle Mitglieder gelöscht werden.</target>
<target>Die Nachrichten werden für alle Gruppenmitglieder gelöscht.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The messages will be marked as moderated for all members." xml:space="preserve">
@@ -6667,6 +6671,10 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
<target>Der von Ihnen eingefügte Text ist kein SimpleX-Link.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Design</target>
@@ -7123,7 +7131,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit>
<trans-unit id="Use the app with one hand." xml:space="preserve">
<source>Use the app with one hand.</source>
<target>Die App mit einer Hand nutzen.</target>
<target>Die App mit einer Hand bedienen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="User profile" xml:space="preserve">
@@ -7555,7 +7563,7 @@ Verbindungsanfrage wiederholen?</target>
</trans-unit>
<trans-unit id="You can still view conversation with %@ in the list of chats." xml:space="preserve">
<source>You can still view conversation with %@ in the list of chats.</source>
<target>Sie können in der Chatliste weiterhin die Unterhaltung mit %@ einsehen.</target>
<target>Sie können in der Chat-Liste weiterhin die Unterhaltung mit %@ einsehen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can turn on SimpleX Lock via Settings." xml:space="preserve">
@@ -7750,6 +7758,10 @@ Verbindungsanfrage wiederholen?</target>
<target>Ihre Chat-Datenbank ist nicht verschlüsselt. Bitte legen Sie ein Passwort fest, um sie zu schützen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Ihre Chat-Profile</target>
@@ -7804,13 +7816,15 @@ Verbindungsanfrage wiederholen?</target>
<target>Ihr Profil **%@** wird geteilt.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Ihr Profil wird auf Ihrem Gerät gespeichert und nur mit Ihren Kontakten geteilt.
SimpleX-Server können Ihr Profil nicht einsehen.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Ihr Profil wird auf Ihrem Gerät gespeichert und nur mit Ihren Kontakten geteilt. SimpleX-Server können Ihr Profil nicht einsehen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Ihr Profil, Ihre Kontakte und zugestellten Nachrichten werden auf Ihrem Gerät gespeichert.</target>
@@ -1025,6 +1025,11 @@
<target>Auto-accept images</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<target>Auto-accept settings</target>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Back</target>
@@ -1198,7 +1203,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Cancel</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1346,6 +1351,11 @@
<target>Chat preferences</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<target>Chat preferences were changed.</target>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Chat theme</target>
@@ -2874,6 +2884,11 @@ This is your own one-time link!</target>
<target>Error loading %@ servers</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<target>Error migrating settings</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Error opening chat</target>
@@ -3314,11 +3329,6 @@ Error: %2$@</target>
<target>Full name (optional)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Full name:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Fully decentralized visible only to members.</target>
@@ -5051,16 +5061,6 @@ Error: %@</target>
<target>Profile images</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Profile name</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Profile name:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Profile password</target>
@@ -5384,6 +5384,11 @@ Enable in *Network &amp; servers* settings.</target>
<target>Remove</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<target>Remove archive?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Remove image</target>
@@ -5577,12 +5582,13 @@ Enable in *Network &amp; servers* settings.</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Save</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Save (and notify contacts)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5609,11 +5615,6 @@ Enable in *Network &amp; servers* settings.</target>
<target>Save archive</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Save auto-accept settings</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Save group profile</target>
@@ -5649,16 +5650,16 @@ Enable in *Network &amp; servers* settings.</target>
<target>Save servers?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Save settings?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Save welcome message?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<target>Save your profile?</target>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Saved</target>
@@ -6099,6 +6100,11 @@ Enable in *Network &amp; servers* settings.</target>
<target>Settings</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<target>Settings were changed.</target>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Shape profile images</target>
@@ -6304,6 +6310,11 @@ Enable in *Network &amp; servers* settings.</target>
<target>Soft</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<target>Some app settings were not migrated.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Some file(s) were not exported:</target>
@@ -6676,6 +6687,11 @@ It can happen because of some bug or when the connection is compromised.</target
<target>The text you pasted is not a SimpleX link.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<target>The uploaded database archive will be permanently removed from the servers.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Themes</target>
@@ -7759,6 +7775,11 @@ Repeat connection request?</target>
<target>Your chat database is not encrypted - set passphrase to encrypt it.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<target>Your chat preferences</target>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Your chat profiles</target>
@@ -7814,13 +7835,16 @@ Repeat connection request?</target>
<target>Your profile **%@** will be shared.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<target>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</target>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Your profile, contacts and delivered messages are stored on your device.</target>
@@ -1024,6 +1024,10 @@
<target>Aceptar imágenes automáticamente</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Volver</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Cancelar</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Preferencias de Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Tema de chat</target>
@@ -2870,6 +2878,10 @@ This is your own one-time link!</source>
<target>Error al cargar servidores %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Error al abrir chat</target>
@@ -3309,11 +3321,6 @@ Error: %2$@</target>
<target>Nombre completo (opcional)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Nombre completo:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Completamente descentralizado y sólo visible para los miembros.</target>
@@ -5045,16 +5052,6 @@ Error: %@</target>
<target>Forma de los perfiles</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Nombre del perfil</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Nombre del perfil:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Contraseña del perfil</target>
@@ -5378,6 +5375,10 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<target>Eliminar</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Eliminar imagen</target>
@@ -5571,12 +5572,13 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Guardar</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Guardar (y notificar contactos)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<target>Guardar archivo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Guardar configuración de auto aceptar</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Guardar perfil de grupo</target>
@@ -5643,16 +5640,15 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<target>¿Guardar servidores?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>¿Guardar configuración?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>¿Guardar mensaje de bienvenida?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Guardado</target>
@@ -6092,6 +6088,10 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<target>Configuración</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Dar forma a las imágenes de perfil</target>
@@ -6296,6 +6296,10 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<target>Suave</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Algunos archivos no han sido exportados:</target>
@@ -6667,6 +6671,10 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
<target>El texto pegado no es un enlace SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Temas</target>
@@ -7750,6 +7758,10 @@ Repeat connection request?</source>
<target>La base de datos no está cifrada - establece una contraseña para cifrarla.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Mis perfiles</target>
@@ -7804,13 +7816,15 @@ Repeat connection request?</source>
<target>El perfil **%@** será compartido.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Tu perfil es almacenado en tu dispositivo y solamente se comparte con tus contactos.
Los servidores SimpleX no pueden ver tu perfil.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Tu perfil es almacenado en tu dispositivo y solamente se comparte con tus contactos. Los servidores SimpleX no pueden ver tu perfil.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Tu perfil, contactos y mensajes se almacenan en tu dispositivo.</target>
@@ -971,6 +971,10 @@
<target>Hyväksy kuvat automaattisesti</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Takaisin</target>
@@ -1124,7 +1128,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Peruuta</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1263,6 +1267,10 @@
<target>Chat-asetukset</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<note>No comment provided by engineer.</note>
@@ -2685,6 +2693,10 @@ This is your own one-time link!</source>
<target>Virhe %@-palvelimien lataamisessa</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<note>No comment provided by engineer.</note>
@@ -3089,11 +3101,6 @@ Error: %2$@</source>
<target>Koko nimi (valinnainen)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Koko nimi:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<note>No comment provided by engineer.</note>
@@ -4717,14 +4724,6 @@ Error: %@</source>
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Profiilin salasana</target>
@@ -5026,6 +5025,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Poista</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<note>No comment provided by engineer.</note>
@@ -5204,12 +5207,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Tallenna</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Tallenna (ja ilmoita kontakteille)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5235,11 +5239,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Tallenna arkisto</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Tallenna automaattisen hyväksynnän asetukset</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Tallenna ryhmäprofiili</target>
@@ -5275,16 +5274,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>Tallenna palvelimet?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Tallenna asetukset?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Tallenna tervetuloviesti?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<note>No comment provided by engineer.</note>
@@ -5690,6 +5688,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Asetukset</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
@@ -5880,6 +5882,10 @@ Enable in *Network &amp; servers* settings.</source>
<source>Soft</source>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<note>No comment provided by engineer.</note>
@@ -6229,6 +6235,10 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
<source>The text you pasted is not a SimpleX link.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<note>No comment provided by engineer.</note>
@@ -7225,6 +7235,10 @@ Repeat connection request?</source>
<target>Keskustelut-tietokantasi ei ole salattu - aseta tunnuslause sen salaamiseksi.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Keskusteluprofiilisi</target>
@@ -7278,13 +7292,15 @@ Repeat connection request?</source>
<target>Profiilisi **%@** jaetaan.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Profiilisi tallennetaan laitteeseesi ja jaetaan vain yhteystietojesi kanssa.
SimpleX-palvelimet eivät näe profiiliasi.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Profiilisi tallennetaan laitteeseesi ja jaetaan vain yhteystietojesi kanssa. SimpleX-palvelimet eivät näe profiiliasi.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Profiilisi, kontaktisi ja toimitetut viestit tallennetaan laitteellesi.</target>
@@ -1024,6 +1024,10 @@
<target>Images auto-acceptées</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Retour</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Annuler</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Préférences de chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Thème de chat</target>
@@ -2870,6 +2878,10 @@ Il s'agit de votre propre lien unique !</target>
<target>Erreur lors du chargement des serveurs %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Erreur lors de l'ouverture du chat</target>
@@ -3309,11 +3321,6 @@ Erreur: %2$@</target>
<target>Nom complet (optionnel)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Nom complet :</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Entièrement décentralisé visible que par ses membres.</target>
@@ -5045,16 +5052,6 @@ Erreur: %@</target>
<target>Images de profil</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Nom du profil</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Nom du profil :</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Mot de passe de profil</target>
@@ -5378,6 +5375,10 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Supprimer</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Enlever l'image</target>
@@ -5571,12 +5572,13 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Enregistrer</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Enregistrer (et en informer les contacts)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Enregistrer l'archive</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Enregistrer les paramètres de validation automatique</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Enregistrer le profil du groupe</target>
@@ -5643,16 +5640,15 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Enregistrer les serveurs?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Enregistrer les paramètres?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Enregistrer le message d'accueil?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Enregistré</target>
@@ -6092,6 +6088,10 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Paramètres</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Images de profil modelable</target>
@@ -6296,6 +6296,10 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Léger</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Certains fichiers n'ont pas été exportés:</target>
@@ -6667,6 +6671,10 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
<target>Le texte collé n'est pas un lien SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Thèmes</target>
@@ -7750,6 +7758,10 @@ Répéter la demande de connexion ?</target>
<target>Votre base de données de chat n'est pas chiffrée - définisez une phrase secrète.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Vos profils de chat</target>
@@ -7804,13 +7816,15 @@ Répéter la demande de connexion ?</target>
<target>Votre profil **%@** sera partagé.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Votre profil est stocké sur votre appareil et est seulement partagé avec vos contacts.
Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Votre profil est stocké sur votre appareil et est seulement partagé avec vos contacts. Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Votre profil, vos contacts et les messages reçus sont stockés sur votre appareil.</target>
@@ -427,8 +427,8 @@
<source>- voice messages up to 5 minutes.
- custom time to disappear.
- editing history.</source>
<target>- hangüzenetek legfeljebb 5 perces időtartamig.
- egyedi eltűnési időhatár megadása.
<target>- 5 perc hosszúságú hangüzenetek.
- egyedi üzenet-eltűnési időkorlát.
- előzmények szerkesztése.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -496,7 +496,7 @@
<source>&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;&lt;a href="%@"&gt;Connect to me via SimpleX Chat&lt;/a&gt;&lt;/p&gt;</source>
<target>&lt;p&gt;Üdvözlöm!&lt;/p&gt;
&lt;p&gt;&lt;a href=„%@”&gt;Csatlakozzon hozzám a SimpleX Chaten&lt;/a&gt;&lt;/p&gt;</target>
&lt;p&gt;&lt;a href=„%@”&gt;Csatlakozzon hozzám a SimpleX Chaten keresztül&lt;/a&gt;&lt;/p&gt;</target>
<note>email text</note>
</trans-unit>
<trans-unit id="A few more things" xml:space="preserve">
@@ -570,7 +570,7 @@
</trans-unit>
<trans-unit id="Accept connection request?" xml:space="preserve">
<source>Accept connection request?</source>
<target>Kapcsolódási kérelem elfogadása?</target>
<target>Ismerőskérelem elfogadása?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accept contact request from %@?" xml:space="preserve">
@@ -1024,6 +1024,10 @@
<target>Képek automatikus elfogadása</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Vissza</target>
@@ -1046,7 +1050,7 @@
</trans-unit>
<trans-unit id="Bad message hash" xml:space="preserve">
<source>Bad message hash</source>
<target>Hibás az üzenet ellenőrzőösszege</target>
<target>Hibás az üzenet hasító értéke</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Mégse</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Csevegési beállítások</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Csevegés témája</target>
@@ -1522,7 +1530,7 @@
</trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Kapcsolódás számítógéphez</target>
<target>Társítás számítógéppel</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to your friends faster." xml:space="preserve">
@@ -1546,7 +1554,7 @@ Ez az ön SimpleX címe!</target>
<source>Connect to yourself?
This is your own one-time link!</source>
<target>Kapcsolódás saját magához?
Ez az egyszer használatos hivatkozása!</target>
Ez az ön egyszer használatos hivatkozása!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect via contact address" xml:space="preserve">
@@ -1576,7 +1584,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Csatlakoztatott számítógép</target>
<target>Társított számítógép</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected servers" xml:space="preserve">
@@ -1671,7 +1679,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Contact already exists" xml:space="preserve">
<source>Contact already exists</source>
<target>Létező ismerős</target>
<target>Az ismerős már létezik</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Contact deleted!" xml:space="preserve">
@@ -1785,7 +1793,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Create group link" xml:space="preserve">
<source>Create group link</source>
<target>Csoportos hivatkozás létrehozása</target>
<target>Csoporthivatkozás létrehozása</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create link" xml:space="preserve">
@@ -1840,7 +1848,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Creating archive link" xml:space="preserve">
<source>Creating archive link</source>
<target>Archív hivatkozás létrehozása</target>
<target>Archívum hivatkozás létrehozása</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Creating link…" xml:space="preserve">
@@ -2169,7 +2177,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Delete pending connection?" xml:space="preserve">
<source>Delete pending connection?</source>
<target>Függő kapcsolatfelvételi kérések törlése?</target>
<target>Függőben lévő ismerőskérelem törlése?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete profile" xml:space="preserve">
@@ -2479,7 +2487,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Duplicate display name!" xml:space="preserve">
<source>Duplicate display name!</source>
<target>Duplikált megjelenítési név!</target>
<target>Duplikált megjelenített név!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Duration" xml:space="preserve">
@@ -2724,7 +2732,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Error adding member(s)" xml:space="preserve">
<source>Error adding member(s)</source>
<target>Hiba a tag(-ok) hozzáadásakor</target>
<target>Hiba a tag(ok) hozzáadásakor</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve">
@@ -2767,7 +2775,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Error creating group link" xml:space="preserve">
<source>Error creating group link</source>
<target>Hiba a csoport hivatkozásának létrehozásakor</target>
<target>Hiba a csoporthivatkozás létrehozásakor</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error creating member contact" xml:space="preserve">
@@ -2870,6 +2878,10 @@ Ez az egyszer használatos hivatkozása!</target>
<target>Hiba a %@ kiszolgálók betöltésekor</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Hiba a csevegés megnyitásakor</target>
@@ -2986,7 +2998,7 @@ Ez az egyszer használatos hivatkozása!</target>
</trans-unit>
<trans-unit id="Error updating group link" xml:space="preserve">
<source>Error updating group link</source>
<target>Hiba a csoport hivatkozás frissítésekor</target>
<target>Hiba a csoporthivatkozás frissítésekor</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error updating message" xml:space="preserve">
@@ -3309,11 +3321,6 @@ Hiba: %2$@</target>
<target>Teljes név (opcionális)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Teljes név:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Teljesen decentralizált - kizárólag tagok számára látható.</target>
@@ -3391,12 +3398,12 @@ Hiba: %2$@</target>
</trans-unit>
<trans-unit id="Group link" xml:space="preserve">
<source>Group link</source>
<target>Csoport hivatkozás</target>
<target>Csoporthivatkozás</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group links" xml:space="preserve">
<source>Group links</source>
<target>Csoport hivatkozások</target>
<target>Csoporthivatkozások</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
@@ -3466,7 +3473,7 @@ Hiba: %2$@</target>
</trans-unit>
<trans-unit id="Group will be deleted for all members - this cannot be undone!" xml:space="preserve">
<source>Group will be deleted for all members - this cannot be undone!</source>
<target>Csoport törlésre kerül minden tag számára - ez a művelet nem vonható vissza!</target>
<target>A csoport törlésre kerül minden tag számára - ez a művelet nem vonható vissza!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group will be deleted for you - this cannot be undone!" xml:space="preserve">
@@ -3763,12 +3770,12 @@ Hiba: %2$@</target>
</trans-unit>
<trans-unit id="Invalid connection link" xml:space="preserve">
<source>Invalid connection link</source>
<target>Érvénytelen kapcsolati hivatkozás</target>
<target>Érvénytelen kapcsolattartási hivatkozás</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invalid display name!" xml:space="preserve">
<source>Invalid display name!</source>
<target>Érvénytelen megjelenítendő felhaszálónév!</target>
<target>Érvénytelen megjelenítendő név!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invalid link" xml:space="preserve">
@@ -3986,7 +3993,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="Let's talk in SimpleX Chat" xml:space="preserve">
<source>Let's talk in SimpleX Chat</source>
<target>Beszélgessünk a SimpleX Chat-ben</target>
<target>Beszélgessünk a SimpleX Chatben</target>
<note>email subject</note>
</trans-unit>
<trans-unit id="Light" xml:space="preserve">
@@ -4001,17 +4008,17 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Társítsa össze a mobil és az asztali alkalmazásokat! 🔗</target>
<target>Társítsa össze a mobil és asztali alkalmazásokat! 🔗</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<target>Összekapcsolt számítógép beállítások</target>
<target>Társított számítógép beállítások</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Összekapcsolt számítógépek</target>
<target>Társított számítógépek</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve">
@@ -4076,7 +4083,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" xml:space="preserve">
<source>Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*</source>
<target>Sokan kérdezték: *ha a SimpleX-nek nincsenek felhasználói azonosítói, akkor hogyan tud üzeneteket kézbesíteni?*</target>
<target>Sokan kérdezték: *ha a SimpleX Chatnek nincsenek felhasználói azonosítói, akkor hogyan tud üzeneteket kézbesíteni?*</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Mark deleted for everyone" xml:space="preserve">
@@ -4335,12 +4342,12 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="Moderated at" xml:space="preserve">
<source>Moderated at</source>
<target>Moderálva lett ekkor:</target>
<target>Moderálva ekkor:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Moderated at: %@" xml:space="preserve">
<source>Moderated at: %@</source>
<target>Moderálva lett ekkor: %@</target>
<target>Moderálva ekkor: %@</target>
<note>copied message info</note>
</trans-unit>
<trans-unit id="More improvements are coming soon!" xml:space="preserve">
@@ -4425,7 +4432,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="New contact request" xml:space="preserve">
<source>New contact request</source>
<target>Új kapcsolattartási kérelem</target>
<target>Új ismerőskérelem</target>
<note>notification</note>
</trans-unit>
<trans-unit id="New contact:" xml:space="preserve">
@@ -4485,7 +4492,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="No contacts selected" xml:space="preserve">
<source>No contacts selected</source>
<target>Nem kerültek ismerősök kiválasztásra</target>
<target>Nincs kiválasztva ismerős</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No contacts to add" xml:space="preserve">
@@ -4550,7 +4557,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="Nothing selected" xml:space="preserve">
<source>Nothing selected</source>
<target>Semmi sincs kiválasztva</target>
<target>Nincs kiválasztva semmi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve">
@@ -4594,7 +4601,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
</trans-unit>
<trans-unit id="Old database archive" xml:space="preserve">
<source>Old database archive</source>
<target>Régi adatbázis archívum</target>
<target>Régi adatbázis-archívum</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="One-time invitation link" xml:space="preserve">
@@ -4623,7 +4630,7 @@ VPN engedélyezése szükséges.</target>
</trans-unit>
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages sent with **2-layer end-to-end encryption**." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages sent with **2-layer end-to-end encryption**.</source>
<target>Csak a klienseszközök tárolják a felhasználói profilokat, névjegyeket, csoportokat és a **2 rétegű végponttól-végpontig titkosítással** küldött üzeneteket.</target>
<target>Csak a klienseszközök tárolják a felhasználói profilokat, névjegyeket, csoportokat és a **2 rétegű végpontok közötti titkosítással** küldött üzeneteket.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Only delete conversation" xml:space="preserve">
@@ -4758,7 +4765,7 @@ VPN engedélyezése szükséges.</target>
</trans-unit>
<trans-unit id="Or securely share this file link" xml:space="preserve">
<source>Or securely share this file link</source>
<target>Vagy a fájl hivítkozásának biztonságos megosztása</target>
<target>Vagy ossza meg biztonságosan ezt a fájlhivatkozást</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Or show this code" xml:space="preserve">
@@ -4818,7 +4825,7 @@ VPN engedélyezése szükséges.</target>
</trans-unit>
<trans-unit id="Past member %@" xml:space="preserve">
<source>Past member %@</source>
<target>Már nem tag - %@</target>
<target>%@ (már nem tag)</target>
<note>past/unknown group member</note>
</trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
@@ -4838,12 +4845,12 @@ VPN engedélyezése szükséges.</target>
</trans-unit>
<trans-unit id="Paste the link you received" xml:space="preserve">
<source>Paste the link you received</source>
<target>Fogadott hivatkozás beillesztése</target>
<target>Kapott hivatkozás beillesztése</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Pending" xml:space="preserve">
<source>Pending</source>
<target>Függő</target>
<target>Függőben</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="People can connect to you only via the links you share." xml:space="preserve">
@@ -4890,7 +4897,7 @@ Minden további problémát osszon meg a fejlesztőkkel.</target>
</trans-unit>
<trans-unit id="Please check that you used the correct link or ask your contact to send you another one." xml:space="preserve">
<source>Please check that you used the correct link or ask your contact to send you another one.</source>
<target>Ellenőrizze, hogy a megfelelő hivatkozást használta-e, vagy kérje meg ismerősét, hogy küldjön egy másikat.</target>
<target>Ellenőrizze, hogy a megfelelő hivatkozást használta-e, vagy kérje meg az ismerősét, hogy küldjön egy másikat.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Please check your network connection with %@ and try again." xml:space="preserve">
@@ -5045,16 +5052,6 @@ Hiba: %@</target>
<target>Profilképek</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Profilnév</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Profil neve:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Profiljelszó</target>
@@ -5378,6 +5375,10 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
<target>Eltávolítás</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Kép eltávolítása</target>
@@ -5450,7 +5451,7 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
</trans-unit>
<trans-unit id="Reset" xml:space="preserve">
<source>Reset</source>
<target>Alaphelyzetbe állítás</target>
<target>Visszaállítás</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reset all hints" xml:space="preserve">
@@ -5470,7 +5471,7 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
</trans-unit>
<trans-unit id="Reset colors" xml:space="preserve">
<source>Reset colors</source>
<target>Színek alaphelyzetbe állítása</target>
<target>Színek visszaállítása</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reset to app theme" xml:space="preserve">
@@ -5480,7 +5481,7 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
</trans-unit>
<trans-unit id="Reset to defaults" xml:space="preserve">
<source>Reset to defaults</source>
<target>Alaphelyzetbe állítás</target>
<target>Visszaállítás alaphelyzetbe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Reset to user theme" xml:space="preserve">
@@ -5571,12 +5572,13 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Mentés</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Mentés (és az ismerősök értesítése)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
<target>Archívum mentése</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Automatikus elfogadási beállítások mentése</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Csoportprofil elmentése</target>
@@ -5643,16 +5640,15 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
<target>Kiszolgálók mentése?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Beállítások mentése?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Üdvözlőszöveg mentése?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Mentett</target>
@@ -6024,12 +6020,12 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
</trans-unit>
<trans-unit id="Servers info" xml:space="preserve">
<source>Servers info</source>
<target>információk a kiszolgálókról</target>
<target>Információk a kiszolgálókról</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Servers statistics will be reset - this cannot be undone!" xml:space="preserve">
<source>Servers statistics will be reset - this cannot be undone!</source>
<target>A kiszolgálók statisztikái visszaállnak - ez nem vonható vissza!</target>
<target>A kiszolgálók statisztikái visszaállnak - ez a művelet nem vonható vissza!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Session code" xml:space="preserve">
@@ -6092,6 +6088,10 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
<target>Beállítások</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Profilkép alakzat</target>
@@ -6243,7 +6243,7 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
</trans-unit>
<trans-unit id="SimpleX group link" xml:space="preserve">
<source>SimpleX group link</source>
<target>SimpleX csoport hivatkozás</target>
<target>SimpleX csoporthivatkozás</target>
<note>simplex link type</note>
</trans-unit>
<trans-unit id="SimpleX links" xml:space="preserve">
@@ -6296,6 +6296,10 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
<target>Enyhe</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Néhány fájl nem került exportálásra:</target>
@@ -6433,7 +6437,7 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
</trans-unit>
<trans-unit id="Support SimpleX Chat" xml:space="preserve">
<source>Support SimpleX Chat</source>
<target>Támogassa a SimpleX Chatet</target>
<target>SimpleX Chat támogatása</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="System" xml:space="preserve">
@@ -6552,7 +6556,7 @@ Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
</trans-unit>
<trans-unit id="Thanks to the users contribute via Weblate!" xml:space="preserve">
<source>Thanks to the users contribute via Weblate!</source>
<target>Köszönet a felhasználóknak - hozzájárulás a Weblaten!</target>
<target>Köszönet a felhasználóknak - hozzájárulás a Weblate-en!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The 1st platform without any user identifiers private by design." xml:space="preserve">
@@ -6584,12 +6588,12 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
</trans-unit>
<trans-unit id="The code you scanned is not a SimpleX link QR code." xml:space="preserve">
<source>The code you scanned is not a SimpleX link QR code.</source>
<target>A beolvasott kód nem egy SimpleX hivatkozás QR-kód.</target>
<target>A beolvasott QR-kód nem egy SimpleX QR-kód hivatkozás.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The connection you accepted will be cancelled!" xml:space="preserve">
<source>The connection you accepted will be cancelled!</source>
<target>Az ön által elfogadott kapcsolat vissza lesz vonva!</target>
<target>Az ön által elfogadott kérelem vissza lesz vonva!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The contact you shared this link with will NOT be able to connect!" xml:space="preserve">
@@ -6609,7 +6613,7 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
</trans-unit>
<trans-unit id="The hash of the previous message is different." xml:space="preserve">
<source>The hash of the previous message is different.</source>
<target>Az előző üzenet ellenőrzőösszege különbözik.</target>
<target>Az előző üzenet hasító értéke különbözik.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The message will be deleted for all members." xml:space="preserve">
@@ -6667,6 +6671,10 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
<target>A beillesztett szöveg nem egy SimpleX hivatkozás.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Témák</target>
@@ -6714,7 +6722,7 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
</trans-unit>
<trans-unit id="This display name is invalid. Please choose another name." xml:space="preserve">
<source>This display name is invalid. Please choose another name.</source>
<target>Ez a megjelenített felhasználónév érvénytelen. Válasszon egy másik nevet.</target>
<target>Ez a megjelenített név érvénytelen. Válasszon egy másik nevet.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
@@ -6734,12 +6742,12 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
</trans-unit>
<trans-unit id="This is your own one-time link!" xml:space="preserve">
<source>This is your own one-time link!</source>
<target>Ez az egyszer használatos hivatkozása!</target>
<target>Ez az ön egyszer használatos hivatkozása!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="This link was used with another mobile device, please create a new link on the desktop." xml:space="preserve">
<source>This link was used with another mobile device, please create a new link on the desktop.</source>
<target>Ezt a hivatkozást egy másik mobilleszközön már használták, hozzon létre egy új hivatkozást az asztali számítógépén.</target>
<target>Ezt a hivatkozást egy másik mobileszközön már használták, hozzon létre egy új hivatkozást az asztali számítógépén.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
@@ -6846,12 +6854,12 @@ A funkció bekapcsolása előtt a rendszer felszólítja a képernyőzár beáll
</trans-unit>
<trans-unit id="Trying to connect to the server used to receive messages from this contact (error: %@)." xml:space="preserve">
<source>Trying to connect to the server used to receive messages from this contact (error: %@).</source>
<target>Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál (hiba: %@).</target>
<target>Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál (hiba: %@).</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Trying to connect to the server used to receive messages from this contact." xml:space="preserve">
<source>Trying to connect to the server used to receive messages from this contact.</source>
<target>Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál.</target>
<target>Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Turkish interface" xml:space="preserve">
@@ -6957,8 +6965,8 @@ A funkció bekapcsolása előtt a rendszer felszólítja a képernyőzár beáll
<trans-unit id="Unless your contact deleted the connection or this link was already used, it might be a bug - please report it.&#10;To connect, please ask your contact to create another connection link and check that you have a stable network connection." xml:space="preserve">
<source>Unless your contact deleted the connection or this link was already used, it might be a bug - please report it.
To connect, please ask your contact to create another connection link and check that you have a stable network connection.</source>
<target>Hacsak az ismerőse nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt, lehet hogy ez egy hiba jelentse a problémát.
A kapcsolódáshoz kérje meg ismerősét, hogy hozzon létre egy másik kapcsolati hivatkozást, és ellenőrizze, hogy a hálózati kapcsolat stabil-e.</target>
<target>Hacsak az ismerőse nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt egyszer, lehet hogy ez egy hiba jelentse a problémát.
A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapcsolattartási hivatkozást, és ellenőrizze, hogy a hálózati kapcsolat stabil-e.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
@@ -7083,7 +7091,7 @@ A kapcsolódáshoz kérje meg ismerősét, hogy hozzon létre egy másik kapcsol
</trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Használat számítógépl</target>
<target>Társítás számítógéppel</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve">
@@ -7423,7 +7431,7 @@ A kapcsolódáshoz kérje meg ismerősét, hogy hozzon létre egy másik kapcsol
</trans-unit>
<trans-unit id="You are already connected to %@." xml:space="preserve">
<source>You are already connected to %@.</source>
<target>Már kapcsolódva van hozzá: %@.</target>
<target>Ön már kapcsolódva van ehhez: %@.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve">
@@ -7465,7 +7473,7 @@ Csatlakozási kérés megismétlése?</target>
</trans-unit>
<trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve">
<source>You are connected to the server used to receive messages from this contact.</source>
<target>Már kapcsolódott ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál.</target>
<target>Már kapcsolódott ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are invited to group" xml:space="preserve">
@@ -7515,7 +7523,7 @@ Csatlakozási kérés megismétlése?</target>
</trans-unit>
<trans-unit id="You can make it visible to your SimpleX contacts via Settings." xml:space="preserve">
<source>You can make it visible to your SimpleX contacts via Settings.</source>
<target>Láthatóvá teheti SimpleX ismerősök számára a Beállításokban.</target>
<target>Láthatóvá teheti a SimpleXbeli ismerősei számára a Beállításokban.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can now chat with %@" xml:space="preserve">
@@ -7662,7 +7670,7 @@ Kapcsolódási kérés megismétlése?</target>
</trans-unit>
<trans-unit id="You will be connected when group link host's device is online, please wait or check later!" xml:space="preserve">
<source>You will be connected when group link host's device is online, please wait or check later!</source>
<target>Akkor lesz kapcsolódva, amikor a csoportos hivatkozás tulajdonosának eszköze online lesz, várjon, vagy ellenőrizze később!</target>
<target>Akkor lesz kapcsolódva, amikor a csoporthivatkozás tulajdonosának eszköze online lesz, várjon, vagy ellenőrizze később!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve">
@@ -7727,7 +7735,7 @@ Kapcsolódási kérés megismétlése?</target>
</trans-unit>
<trans-unit id="Your SimpleX address" xml:space="preserve">
<source>Your SimpleX address</source>
<target>Az ön SimpleX címe</target>
<target>Profil SimpleX címe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your XFTP servers" xml:space="preserve">
@@ -7750,6 +7758,10 @@ Kapcsolódási kérés megismétlése?</target>
<target>A csevegési adatbázis nincs titkosítva adjon meg egy jelmondatot a titkosításhoz.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Csevegési profilok</target>
@@ -7804,13 +7816,15 @@ Kapcsolódási kérés megismétlése?</target>
<target>A(z) **%@** nevű profilja megosztásra fog kerülni.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Profilja az eszközön van tárolva, és csak az ismerősökkel kerül megosztásra.
A SimpleX kiszolgálók nem látjhatják profilját.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Profilja az eszközön van tárolva, és csak az ismerősökkel kerül megosztásra. A SimpleX kiszolgálók nem látjhatják profilját.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Profilja, ismerősei és az elküldött üzenetei az eszközön kerülnek tárolásra.</target>
@@ -7848,7 +7862,7 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="[Star on GitHub](https://github.com/simplex-chat/simplex-chat)" xml:space="preserve">
<source>[Star on GitHub](https://github.com/simplex-chat/simplex-chat)</source>
<target>[Csillag a GitHubon](https://github.com/simplex-chat/simplex-chat)</target>
<target>[Csillagozás a GitHubon](https://github.com/simplex-chat/simplex-chat)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="_italic_" xml:space="preserve">
@@ -7928,7 +7942,7 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="bad message hash" xml:space="preserve">
<source>bad message hash</source>
<target>hibás az üzenet ellenőrzőösszege</target>
<target>hibás az üzenet hasító értéke</target>
<note>integrity error chat item</note>
</trans-unit>
<trans-unit id="blocked" xml:space="preserve">
@@ -7958,7 +7972,7 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="call error" xml:space="preserve">
<source>call error</source>
<target>hiba a hívásban</target>
<target>híváshiba</target>
<note>call status</note>
</trans-unit>
<trans-unit id="call in progress" xml:space="preserve">
@@ -8053,7 +8067,7 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="connecting call" xml:space="preserve">
<source>connecting call…</source>
<target>hívás kapcsolódik…</target>
<target>kapcsolódási hívás…</target>
<note>call status</note>
</trans-unit>
<trans-unit id="connecting…" xml:space="preserve">
@@ -8293,12 +8307,12 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="incognito via group link" xml:space="preserve">
<source>incognito via group link</source>
<target>inkognitó a csoportos hivatkozáson keresztül</target>
<target>inkognitó a csoporthivatkozáson keresztül</target>
<note>chat list item description</note>
</trans-unit>
<trans-unit id="incognito via one-time link" xml:space="preserve">
<source>incognito via one-time link</source>
<target>inkognitó az egyszer használatos hivatkozáson keresztül</target>
<target>inkognitó egy egyszer használatos hivatkozáson keresztül</target>
<note>chat list item description</note>
</trans-unit>
<trans-unit id="indirect (%d)" xml:space="preserve">
@@ -8348,7 +8362,7 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="invited via your group link" xml:space="preserve">
<source>invited via your group link</source>
<target>meghíva az ön csoport hivatkozásán keresztül</target>
<target>meghíva az ön csoporthivatkozásán keresztül</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="italic" xml:space="preserve">
@@ -8368,7 +8382,7 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="marked deleted" xml:space="preserve">
<source>marked deleted</source>
<target>töröltnek jelölve</target>
<target>törlésre jelölve</target>
<note>marked deleted chat item preview text</note>
</trans-unit>
<trans-unit id="member" xml:space="preserve">
@@ -8510,7 +8524,7 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
</trans-unit>
<trans-unit id="received answer…" xml:space="preserve">
<source>received answer…</source>
<target>fogadott válasz…</target>
<target>válasz fogadása…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="received confirmation…" xml:space="preserve">
@@ -8684,12 +8698,12 @@ utoljára fogadott üzenet: %2$@</target>
</trans-unit>
<trans-unit id="via group link" xml:space="preserve">
<source>via group link</source>
<target>csoport hivatkozáson keresztül</target>
<target>a csoporthivatkozáson keresztül</target>
<note>chat list item description</note>
</trans-unit>
<trans-unit id="via one-time link" xml:space="preserve">
<source>via one-time link</source>
<target>egyszer használatos hivatkozáson keresztül</target>
<target>egy egyszer használatos hivatkozáson keresztül</target>
<note>chat list item description</note>
</trans-unit>
<trans-unit id="via relay" xml:space="preserve">
@@ -8754,7 +8768,7 @@ utoljára fogadott üzenet: %2$@</target>
</trans-unit>
<trans-unit id="you blocked %@" xml:space="preserve">
<source>you blocked %@</source>
<target>ön letiltotta %@-t</target>
<target>ön letiltotta őt: %@</target>
<note>snd group event chat item</note>
</trans-unit>
<trans-unit id="you changed address" xml:space="preserve">
@@ -1024,6 +1024,10 @@
<target>Auto-accetta immagini</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Indietro</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Annulla</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Preferenze della chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Tema della chat</target>
@@ -2870,6 +2878,10 @@ Questo è il tuo link una tantum!</target>
<target>Errore nel caricamento dei server %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Errore di apertura della chat</target>
@@ -3309,11 +3321,6 @@ Errore: %2$@</target>
<target>Nome completo (facoltativo)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Nome completo:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Completamente decentralizzato: visibile solo ai membri.</target>
@@ -5045,16 +5052,6 @@ Errore: %@</target>
<target>Immagini del profilo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Nome del profilo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Nome del profilo:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Password del profilo</target>
@@ -5378,6 +5375,10 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<target>Rimuovi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Rimuovi immagine</target>
@@ -5571,12 +5572,13 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Salva</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Salva (e avvisa i contatti)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<target>Salva archivio</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Salva le impostazioni di accettazione automatica</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Salva il profilo del gruppo</target>
@@ -5643,16 +5640,15 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<target>Salvare i server?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Salvare le impostazioni?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Salvare il messaggio di benvenuto?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Salvato</target>
@@ -6092,6 +6088,10 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<target>Impostazioni</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Forma delle immagini del profilo</target>
@@ -6296,6 +6296,10 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<target>Leggera</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Alcuni file non sono stati esportati:</target>
@@ -6667,6 +6671,10 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
<target>Il testo che hai incollato non è un link SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Temi</target>
@@ -7750,6 +7758,10 @@ Ripetere la richiesta di connessione?</target>
<target>Il tuo database della chat non è crittografato: imposta la password per crittografarlo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>I tuoi profili di chat</target>
@@ -7804,13 +7816,15 @@ Ripetere la richiesta di connessione?</target>
<target>Verrà condiviso il tuo profilo **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Il tuo profilo è memorizzato sul tuo dispositivo e condiviso solo con i tuoi contatti.
I server di SimpleX non possono vedere il tuo profilo.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Il tuo profilo è memorizzato sul tuo dispositivo e condiviso solo con i tuoi contatti. I server di SimpleX non possono vedere il tuo profilo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Il tuo profilo, i contatti e i messaggi recapitati sono memorizzati sul tuo dispositivo.</target>
@@ -994,6 +994,10 @@
<target>画像を自動的に受信</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>戻る</target>
@@ -1148,7 +1152,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>中止</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1287,6 +1291,10 @@
<target>チャット設定</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<note>No comment provided by engineer.</note>
@@ -2710,6 +2718,10 @@ This is your own one-time link!</source>
<target>%@ サーバーのロード中にエラーが発生</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<note>No comment provided by engineer.</note>
@@ -3114,11 +3126,6 @@ Error: %2$@</source>
<target>フルネーム (任意)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>フルネーム:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<note>No comment provided by engineer.</note>
@@ -4743,14 +4750,6 @@ Error: %@</source>
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>プロフィールのパスワード</target>
@@ -5051,6 +5050,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>削除</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<note>No comment provided by engineer.</note>
@@ -5229,12 +5232,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>保存</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>保存(連絡先に通知)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5260,11 +5264,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>アーカイブを保存</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>自動受け入れ設定を保存する</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>グループプロフィールの保存</target>
@@ -5300,16 +5299,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>サーバを保存しますか?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>設定を保存しますか?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>ウェルカムメッセージを保存しますか?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<note>No comment provided by engineer.</note>
@@ -5708,6 +5706,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>設定</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
@@ -5899,6 +5901,10 @@ Enable in *Network &amp; servers* settings.</source>
<source>Soft</source>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<note>No comment provided by engineer.</note>
@@ -6248,6 +6254,10 @@ It can happen because of some bug or when the connection is compromised.</source
<source>The text you pasted is not a SimpleX link.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<note>No comment provided by engineer.</note>
@@ -7243,6 +7253,10 @@ Repeat connection request?</source>
<target>チャット データベースは暗号化されていません - 暗号化するにはパスフレーズを設定してください。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>あなたのチャットプロフィール</target>
@@ -7296,13 +7310,15 @@ Repeat connection request?</source>
<target>あなたのプロファイル **%@** が共有されます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>プロフィールはデバイスに保存され、連絡先とのみ共有されます。
SimpleX サーバーはあなたのプロファイルを参照できません。</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>プロフィールはデバイスに保存され、連絡先とのみ共有されます。 SimpleX サーバーはあなたのプロファイルを参照できません。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>あなたのプロフィール、連絡先、送信したメッセージがご自分の端末に保存されます。</target>
@@ -1024,6 +1024,10 @@
<target>Afbeeldingen automatisch accepteren</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Terug</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Annuleren</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Gesprek voorkeuren</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Chat thema</target>
@@ -2870,6 +2878,10 @@ Dit is uw eigen eenmalige link!</target>
<target>Fout bij het laden van %@ servers</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Fout bij het openen van de chat</target>
@@ -3309,11 +3321,6 @@ Fout: %2$@</target>
<target>Volledige naam (optioneel)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Volledige naam:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Volledig gedecentraliseerd alleen zichtbaar voor leden.</target>
@@ -5045,16 +5052,6 @@ Fout: %@</target>
<target>Profiel afbeeldingen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Profielnaam</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Profielnaam:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Profiel wachtwoord</target>
@@ -5378,6 +5375,10 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<target>Verwijderen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Verwijder afbeelding</target>
@@ -5571,12 +5572,13 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Opslaan</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Bewaar (en informeer contacten)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<target>Bewaar archief</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Sla instellingen voor automatisch accepteren op</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Groep profiel opslaan</target>
@@ -5643,16 +5640,15 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<target>Servers opslaan?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Instellingen opslaan?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Welkom bericht opslaan?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Opgeslagen</target>
@@ -6092,6 +6088,10 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<target>Instellingen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Vorm profiel afbeeldingen</target>
@@ -6296,6 +6296,10 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<target>Soft</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Sommige bestanden zijn niet geëxporteerd:</target>
@@ -6667,6 +6671,10 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
<target>De tekst die u hebt geplakt is geen SimpleX link.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Thema's</target>
@@ -7750,6 +7758,10 @@ Verbindingsverzoek herhalen?</target>
<target>Uw chat database is niet versleuteld, stel een wachtwoord in om deze te versleutelen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Uw chat profielen</target>
@@ -7804,13 +7816,15 @@ Verbindingsverzoek herhalen?</target>
<target>Uw profiel **%@** wordt gedeeld.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Uw profiel wordt op uw apparaat opgeslagen en alleen gedeeld met uw contacten.
SimpleX servers kunnen uw profiel niet zien.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Uw profiel wordt op uw apparaat opgeslagen en alleen gedeeld met uw contacten. SimpleX servers kunnen uw profiel niet zien.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Uw profiel, contacten en afgeleverde berichten worden op uw apparaat opgeslagen.</target>
@@ -1024,6 +1024,10 @@
<target>Automatyczne akceptowanie obrazów</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Wstecz</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Anuluj</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Preferencje czatu</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Motyw czatu</target>
@@ -2870,6 +2878,10 @@ To jest twój jednorazowy link!</target>
<target>Błąd ładowania %@ serwerów</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Błąd otwierania czatu</target>
@@ -3309,11 +3321,6 @@ Błąd: %2$@</target>
<target>Pełna nazwa (opcjonalna)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Pełna nazwa:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>W pełni zdecentralizowana widoczna tylko dla członków.</target>
@@ -5045,16 +5052,6 @@ Błąd: %@</target>
<target>Zdjęcia profilowe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Nazwa profilu</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Nazwa profilu:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Hasło profilu</target>
@@ -5378,6 +5375,10 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Usuń</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Usuń obraz</target>
@@ -5571,12 +5572,13 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Zapisz</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Zapisz (i powiadom kontakty)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Zapisz archiwum</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Zapisz ustawienia automatycznej akceptacji</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Zapisz profil grupy</target>
@@ -5643,16 +5640,15 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Zapisać serwery?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Zapisać ustawienia?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Zapisać wiadomość powitalną?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Zapisane</target>
@@ -6092,6 +6088,10 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Ustawienia</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Kształtuj obrazy profilowe</target>
@@ -6296,6 +6296,10 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Łagodny</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Niektóre plik(i) nie zostały wyeksportowane:</target>
@@ -6667,6 +6671,10 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
<target>Tekst, który wkleiłeś nie jest linkiem SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Motywy</target>
@@ -7750,6 +7758,10 @@ Powtórzyć prośbę połączenia?</target>
<target>Baza danych czatu nie jest szyfrowana - ustaw hasło, aby ją zaszyfrować.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Twoje profile czatu</target>
@@ -7804,13 +7816,15 @@ Powtórzyć prośbę połączenia?</target>
<target>Twój profil **%@** zostanie udostępniony.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Twój profil jest przechowywany na urządzeniu i udostępniany tylko Twoim kontaktom.
Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Twój profil jest przechowywany na urządzeniu i udostępniany tylko Twoim kontaktom. Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Twój profil, kontakty i dostarczone wiadomości są przechowywane na Twoim urządzeniu.</target>
@@ -1024,6 +1024,10 @@
<target>Автоприем изображений</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Назад</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Отменить</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Предпочтения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Тема чата</target>
@@ -2870,6 +2878,10 @@ This is your own one-time link!</source>
<target>Ошибка загрузки %@ серверов</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Ошибка доступа к чату</target>
@@ -3309,11 +3321,6 @@ Error: %2$@</source>
<target>Полное имя (не обязательно)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Полное имя:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Группа полностью децентрализована – она видна только членам.</target>
@@ -5045,16 +5052,6 @@ Error: %@</source>
<target>Картинки профилей</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Имя профиля</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Имя профиля:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Пароль профиля</target>
@@ -5378,6 +5375,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Удалить</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Удалить изображение</target>
@@ -5571,12 +5572,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Сохранить</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Сохранить (и уведомить контакты)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Сохранить архив</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Сохранить настройки автоприема</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Сохранить профиль группы</target>
@@ -5643,16 +5640,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>Сохранить серверы?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Сохранить настройки?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Сохранить приветственное сообщение?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Сохранено</target>
@@ -6092,6 +6088,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Настройки</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Форма картинок профилей</target>
@@ -6296,6 +6296,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Слабое</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Некоторые файл(ы) не были экспортированы:</target>
@@ -6667,6 +6671,10 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Вставленный текст не является SimpleX-ссылкой.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Темы</target>
@@ -7750,6 +7758,10 @@ Repeat connection request?</source>
<target>База данных НЕ зашифрована. Установите пароль, чтобы защитить Ваши данные.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Ваши профили чата</target>
@@ -7804,13 +7816,15 @@ Repeat connection request?</source>
<target>Будет отправлен Ваш профиль **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Ваш профиль хранится на Вашем устройстве и отправляется только Вашим контактам.
SimpleX серверы не могут получить доступ к Вашему профилю.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Ваш профиль хранится на Вашем устройстве и отправляется только Вашим контактам. SimpleX серверы не могут получить доступ к Вашему профилю.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Ваш профиль, контакты и доставленные сообщения хранятся на Вашем устройстве.</target>
@@ -963,6 +963,10 @@
<target>ยอมรับภาพอัตโนมัติ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>กลับ</target>
@@ -1116,7 +1120,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>ยกเลิก</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1255,6 +1259,10 @@
<target>ค่ากําหนดในการแชท</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<note>No comment provided by engineer.</note>
@@ -2670,6 +2678,10 @@ This is your own one-time link!</source>
<target>โหลดเซิร์ฟเวอร์ %@ ผิดพลาด</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<note>No comment provided by engineer.</note>
@@ -3074,11 +3086,6 @@ Error: %2$@</source>
<target>ชื่อเต็ม (ไม่บังคับ)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>ชื่อเต็ม:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<note>No comment provided by engineer.</note>
@@ -4696,14 +4703,6 @@ Error: %@</source>
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>รหัสผ่านโปรไฟล์</target>
@@ -5003,6 +5002,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>ลบ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<note>No comment provided by engineer.</note>
@@ -5181,12 +5184,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>บันทึก</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>บันทึก (และแจ้งผู้ติดต่อ)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5212,11 +5216,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>บันทึกไฟล์เก็บถาวร</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>บันทึกการตั้งค่าการยอมรับอัตโนมัติ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>บันทึกโปรไฟล์กลุ่ม</target>
@@ -5252,16 +5251,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>บันทึกเซิร์ฟเวอร์?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>บันทึกการตั้งค่า?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>บันทึกข้อความต้อนรับ?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<note>No comment provided by engineer.</note>
@@ -5665,6 +5663,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>การตั้งค่า</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
@@ -5853,6 +5855,10 @@ Enable in *Network &amp; servers* settings.</source>
<source>Soft</source>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<note>No comment provided by engineer.</note>
@@ -6203,6 +6209,10 @@ It can happen because of some bug or when the connection is compromised.</source
<source>The text you pasted is not a SimpleX link.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<note>No comment provided by engineer.</note>
@@ -7194,6 +7204,10 @@ Repeat connection request?</source>
<target>ฐานข้อมูลการแชทของคุณไม่ได้ถูก encrypt - ตั้งรหัสผ่านเพื่อ encrypt</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>โปรไฟล์แชทของคุณ</target>
@@ -7246,13 +7260,15 @@ Repeat connection request?</source>
<source>Your profile **%@** will be shared.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>โปรไฟล์ของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณและแชร์กับผู้ติดต่อของคุณเท่านั้น
เซิร์ฟเวอร์ SimpleX ไม่สามารถดูโปรไฟล์ของคุณได้</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>โปรไฟล์ของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณและแชร์กับผู้ติดต่อของคุณเท่านั้น เซิร์ฟเวอร์ SimpleX ไม่สามารถดูโปรไฟล์ของคุณได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>โปรไฟล์ รายชื่อผู้ติดต่อ และข้อความที่ส่งของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณ</target>
@@ -1009,6 +1009,10 @@
<target>Fotoğrafları otomatik kabul et</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Geri</target>
@@ -1173,7 +1177,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>İptal et</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1317,6 +1321,10 @@
<target>Sohbet tercihleri</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<note>No comment provided by engineer.</note>
@@ -2797,6 +2805,10 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>%@ sunucuları yüklenirken hata oluştu</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Sohbeti açarken sorun oluştu</target>
@@ -3223,11 +3235,6 @@ Hata: %2$@</target>
<target>Bütün isim (opsiyonel)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Bütün isim:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Tamamiyle merkezi olmayan - sadece kişilere görünür.</target>
@@ -4926,16 +4933,6 @@ Hata: %@</target>
<target>Profil resimleri</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Profil ismi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Profil ismi:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Profil parolası</target>
@@ -5246,6 +5243,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Sil</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<note>No comment provided by engineer.</note>
@@ -5432,12 +5433,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Kaydet</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Kaydet (ve kişilere bildir)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5463,11 +5465,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Arşivi kaydet</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Otomatik kabul et ayarlarını kaydet</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Grup profilini kaydet</target>
@@ -5503,16 +5500,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>Sunucular kaydedilsin mi?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Ayarlar kaydedilsin mi?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Hoşgeldin mesajı kaydedilsin mi?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Kaydedildi</target>
@@ -5932,6 +5928,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Ayarlar</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Profil resimlerini şekillendir</target>
@@ -6130,6 +6130,10 @@ Enable in *Network &amp; servers* settings.</source>
<source>Soft</source>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<note>No comment provided by engineer.</note>
@@ -6489,6 +6493,10 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.
<target>Yapıştırdığın metin bir SimpleX bağlantısı değildir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<note>No comment provided by engineer.</note>
@@ -7548,6 +7556,10 @@ Bağlantı isteği tekrarlansın mı?</target>
<target>Sohbet veritabanınız şifrelenmemiş - şifrelemek için parola ayarlayın.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Sohbet profillerin</target>
@@ -7602,13 +7614,15 @@ Bağlantı isteği tekrarlansın mı?</target>
<target>Profiliniz **%@** paylaşılacaktır.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Profiliniz cihazınızda saklanır ve sadece kişilerinizle paylaşılır.
SimpleX sunucuları profilinizi göremez.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Profiliniz cihazınızda saklanır ve sadece kişilerinizle paylaşılır. SimpleX sunucuları profilinizi göremez.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Profiliniz, kişileriniz ve gönderilmiş mesajlar cihazınızda saklanır.</target>
@@ -1024,6 +1024,10 @@
<target>Автоматичне прийняття зображень</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
<source>Auto-accept settings</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Back" xml:space="preserve">
<source>Back</source>
<target>Назад</target>
@@ -1197,7 +1201,7 @@
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
<target>Скасувати</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve">
<source>Cancel migration</source>
@@ -1345,6 +1349,10 @@
<target>Налаштування чату</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat preferences were changed." xml:space="preserve">
<source>Chat preferences were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source>
<target>Тема чату</target>
@@ -2870,6 +2878,10 @@ This is your own one-time link!</source>
<target>Помилка завантаження %@ серверів</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error migrating settings" xml:space="preserve">
<source>Error migrating settings</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error opening chat" xml:space="preserve">
<source>Error opening chat</source>
<target>Помилка відкриття чату</target>
@@ -3309,11 +3321,6 @@ Error: %2$@</source>
<target>Повне ім'я (необов'язково)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Full name:" xml:space="preserve">
<source>Full name:</source>
<target>Повне ім'я:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source>
<target>Повністю децентралізована - видима лише для учасників.</target>
@@ -5045,16 +5052,6 @@ Error: %@</source>
<target>Зображення профілю</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source>
<target>Назва профілю</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source>
<target>Ім'я профілю:</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile password" xml:space="preserve">
<source>Profile password</source>
<target>Пароль до профілю</target>
@@ -5378,6 +5375,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Видалити</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove archive?" xml:space="preserve">
<source>Remove archive?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Remove image" xml:space="preserve">
<source>Remove image</source>
<target>Видалити зображення</target>
@@ -5571,12 +5572,13 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
<target>Зберегти</target>
<note>chat item action</note>
<note>alert button
chat item action</note>
</trans-unit>
<trans-unit id="Save (and notify contacts)" xml:space="preserve">
<source>Save (and notify contacts)</source>
<target>Зберегти (і повідомити контактам)</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
@@ -5603,11 +5605,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Зберегти архів</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save auto-accept settings" xml:space="preserve">
<source>Save auto-accept settings</source>
<target>Зберегти налаштування автоприйому</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save group profile" xml:space="preserve">
<source>Save group profile</source>
<target>Зберегти профіль групи</target>
@@ -5643,16 +5640,15 @@ Enable in *Network &amp; servers* settings.</source>
<target>Зберегти сервери?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save settings?" xml:space="preserve">
<source>Save settings?</source>
<target>Зберегти налаштування?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save welcome message?" xml:space="preserve">
<source>Save welcome message?</source>
<target>Зберегти вітальне повідомлення?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save your profile?" xml:space="preserve">
<source>Save your profile?</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Saved" xml:space="preserve">
<source>Saved</source>
<target>Збережено</target>
@@ -6092,6 +6088,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Налаштування</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Settings were changed." xml:space="preserve">
<source>Settings were changed.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Сформуйте зображення профілю</target>
@@ -6296,6 +6296,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>М'який</target>
<note>blur media</note>
</trans-unit>
<trans-unit id="Some app settings were not migrated." xml:space="preserve">
<source>Some app settings were not migrated.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Some file(s) were not exported:" xml:space="preserve">
<source>Some file(s) were not exported:</source>
<target>Деякі файли не було експортовано:</target>
@@ -6667,6 +6671,10 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Текст, який ви вставили, не є посиланням SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The uploaded database archive will be permanently removed from the servers." xml:space="preserve">
<source>The uploaded database archive will be permanently removed from the servers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Themes" xml:space="preserve">
<source>Themes</source>
<target>Теми</target>
@@ -7750,6 +7758,10 @@ Repeat connection request?</source>
<target>Ваша база даних чату не зашифрована - встановіть ключову фразу, щоб зашифрувати її.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your chat preferences" xml:space="preserve">
<source>Your chat preferences</source>
<note>alert title</note>
</trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source>
<target>Ваші профілі чату</target>
@@ -7804,13 +7816,15 @@ Repeat connection request?</source>
<target>Ваш профіль **%@** буде опублікований.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile is stored on your device and shared only with your contacts.&#10;SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts.
SimpleX servers cannot see your profile.</source>
<target>Ваш профіль зберігається на вашому пристрої і доступний лише вашим контактам.
Сервери SimpleX не бачать ваш профіль.</target>
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
<source>Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile.</source>
<target>Ваш профіль зберігається на вашому пристрої і доступний лише вашим контактам. Сервери SimpleX не бачать ваш профіль.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Your profile was changed. If you save it, the updated profile will be sent to all your contacts." xml:space="preserve">
<source>Your profile was changed. If you save it, the updated profile will be sent to all your contacts.</source>
<note>alert message</note>
</trans-unit>
<trans-unit id="Your profile, contacts and delivered messages are stored on your device." xml:space="preserve">
<source>Your profile, contacts and delivered messages are stored on your device.</source>
<target>Ваш профіль, контакти та доставлені повідомлення зберігаються на вашому пристрої.</target>
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -320,7 +320,8 @@ class ShareModel: ObservableObject {
}
await ch.completeFile()
if await !ch.isRunning { break }
case let .chatItemStatusUpdated(_, ci):
case let .chatItemsStatusesUpdated(_, chatItems):
guard let ci = chatItems.last else { continue }
guard isMessage(for: ci) else { continue }
if let (title, message) = ci.chatItem.meta.itemStatus.statusInfo {
// `title` and `message` already localized and interpolated
@@ -1,7 +1,9 @@
/*
InfoPlist.strings
SimpleX
/* Bundle display name */
"CFBundleDisplayName" = "SimpleX SE";
/* Bundle name */
"CFBundleName" = "SimpleX SE";
/* Copyright (human-readable) */
"NSHumanReadableCopyright" = "版权所有 © 2024 SimpleX Chat。保留所有权利。";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
@@ -1,7 +1,111 @@
/*
Localizable.strings
SimpleX
/* No comment provided by engineer. */
"%@" = "%@";
/* No comment provided by engineer. */
"App is locked!" = "应用程序已锁定!";
/* No comment provided by engineer. */
"Cancel" = "取消";
/* No comment provided by engineer. */
"Cannot access keychain to save database password" = "无法访问钥匙串以保存数据库密码";
/* No comment provided by engineer. */
"Cannot forward message" = "无法转发消息";
/* No comment provided by engineer. */
"Comment" = "评论";
/* No comment provided by engineer. */
"Currently maximum supported file size is %@." = "当前支持的最大文件大小为 %@。";
/* No comment provided by engineer. */
"Database downgrade required" = "需要数据库降级";
/* No comment provided by engineer. */
"Database encrypted!" = "数据库已加密!";
/* No comment provided by engineer. */
"Database error" = "数据库错误";
/* No comment provided by engineer. */
"Database passphrase is different from saved in the keychain." = "数据库密码与保存在钥匙串中的密码不同。";
/* No comment provided by engineer. */
"Database passphrase is required to open chat." = "需要数据库密码才能打开聊天。";
/* No comment provided by engineer. */
"Database upgrade required" = "需要升级数据库";
/* No comment provided by engineer. */
"Error preparing file" = "准备文件时出错";
/* No comment provided by engineer. */
"Error preparing message" = "准备消息时出错";
/* No comment provided by engineer. */
"Error: %@" = "错误:%@";
/* No comment provided by engineer. */
"File error" = "文件错误";
/* No comment provided by engineer. */
"Incompatible database version" = "不兼容的数据库版本";
/* No comment provided by engineer. */
"Invalid migration confirmation" = "无效的迁移确认";
/* No comment provided by engineer. */
"Keychain error" = "钥匙串错误";
/* No comment provided by engineer. */
"Large file!" = "大文件!";
/* No comment provided by engineer. */
"No active profile" = "无活动配置文件";
/* No comment provided by engineer. */
"Ok" = "好的";
/* No comment provided by engineer. */
"Open the app to downgrade the database." = "打开应用程序以降级数据库。";
/* No comment provided by engineer. */
"Open the app to upgrade the database." = "打开应用程序以升级数据库。";
/* No comment provided by engineer. */
"Passphrase" = "密码";
/* No comment provided by engineer. */
"Please create a profile in the SimpleX app" = "请在 SimpleX 应用程序中创建配置文件";
/* No comment provided by engineer. */
"Selected chat preferences prohibit this message." = "选定的聊天首选项禁止此消息。";
/* No comment provided by engineer. */
"Sending a message takes longer than expected." = "发送消息所需的时间比预期的要长。";
/* No comment provided by engineer. */
"Sending message…" = "正在发送消息…";
/* No comment provided by engineer. */
"Share" = "共享";
/* No comment provided by engineer. */
"Slow network?" = "网络速度慢?";
/* No comment provided by engineer. */
"Unknown database error: %@" = "未知数据库错误: %@";
/* No comment provided by engineer. */
"Unsupported format" = "不支持的格式";
/* No comment provided by engineer. */
"Wait" = "等待";
/* No comment provided by engineer. */
"Wrong database passphrase" = "数据库密码错误";
/* No comment provided by engineer. */
"You can allow sharing in Privacy & Security / SimpleX Lock settings." = "您可以在 \"隐私与安全\"/\"SimpleX Lock \"设置中允许共享。";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
+20 -20
View File
@@ -172,11 +172,6 @@
648679AB2BC96A74006456E7 /* ChatItemForwardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */; };
649BCDA0280460FD00C3A862 /* ComposeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCD9F280460FD00C3A862 /* ComposeImageView.swift */; };
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; };
64A208622C8F2CCC00AE9D01 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A2085D2C8F2CCB00AE9D01 /* libgmpxx.a */; };
64A208632C8F2CCC00AE9D01 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A2085E2C8F2CCB00AE9D01 /* libffi.a */; };
64A208642C8F2CCC00AE9D01 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A2085F2C8F2CCB00AE9D01 /* libgmp.a */; };
64A208652C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A208602C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7-ghc9.6.3.a */; };
64A208662C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A208612C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7.a */; };
64AA1C6927EE10C800AC7277 /* ContextItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */; };
64AA1C6C27F3537400AC7277 /* DeletedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6B27F3537400AC7277 /* DeletedItemView.swift */; };
64C06EB52A0A4A7C00792D4D /* ChatItemInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C06EB42A0A4A7C00792D4D /* ChatItemInfoView.swift */; };
@@ -227,6 +222,11 @@
D77B92DC2952372200A5A1CC /* SwiftyGif in Frameworks */ = {isa = PBXBuildFile; productRef = D77B92DB2952372200A5A1CC /* SwiftyGif */; };
D7F0E33929964E7E0068AF69 /* LZString in Frameworks */ = {isa = PBXBuildFile; productRef = D7F0E33829964E7E0068AF69 /* LZString */; };
E51CC1E62C62085600DB91FE /* OneHandUICard.swift in Sources */ = {isa = PBXBuildFile; fileRef = E51CC1E52C62085600DB91FE /* OneHandUICard.swift */; };
E55128D32C989E13001D165C /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E55128CE2C989E12001D165C /* libgmpxx.a */; };
E55128D42C989E13001D165C /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E55128CF2C989E12001D165C /* libffi.a */; };
E55128D52C989E13001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E55128D02C989E12001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj.a */; };
E55128D62C989E13001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E55128D12C989E13001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj-ghc9.6.3.a */; };
E55128D72C989E13001D165C /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E55128D22C989E13001D165C /* libgmp.a */; };
E5DCF8DB2C56FAC1007928CC /* SimpleXChat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; };
E5DCF9712C590272007928CC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5DCF96F2C590272007928CC /* Localizable.strings */; };
E5DCF9842C5902CE007928CC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5DCF9822C5902CE007928CC /* Localizable.strings */; };
@@ -518,11 +518,6 @@
6493D667280ED77F007A76FB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; 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>"; };
64A2085D2C8F2CCB00AE9D01 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
64A2085E2C8F2CCB00AE9D01 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
64A2085F2C8F2CCB00AE9D01 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
64A208602C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7-ghc9.6.3.a"; sourceTree = "<group>"; };
64A208612C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7.a"; sourceTree = "<group>"; };
64AA1C6827EE10C800AC7277 /* ContextItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextItemView.swift; sourceTree = "<group>"; };
64AA1C6B27F3537400AC7277 /* DeletedItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletedItemView.swift; sourceTree = "<group>"; };
64C06EB42A0A4A7C00792D4D /* ChatItemInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemInfoView.swift; sourceTree = "<group>"; };
@@ -571,6 +566,11 @@
D741547929AF90B00022400A /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/PushKit.framework; sourceTree = DEVELOPER_DIR; };
D7AA2C3429A936B400737B40 /* MediaEncryption.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; name = MediaEncryption.playground; path = Shared/MediaEncryption.playground; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
E51CC1E52C62085600DB91FE /* OneHandUICard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneHandUICard.swift; sourceTree = "<group>"; };
E55128CE2C989E12001D165C /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
E55128CF2C989E12001D165C /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
E55128D02C989E12001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj.a"; sourceTree = "<group>"; };
E55128D12C989E13001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj-ghc9.6.3.a"; sourceTree = "<group>"; };
E55128D22C989E13001D165C /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
E5DCF9702C590272007928CC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
E5DCF9722C590274007928CC /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bg; path = bg.lproj/Localizable.strings; sourceTree = "<group>"; };
E5DCF9732C590275007928CC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
@@ -661,13 +661,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
64A208662C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7.a in Frameworks */,
64A208622C8F2CCC00AE9D01 /* libgmpxx.a in Frameworks */,
64A208652C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7-ghc9.6.3.a in Frameworks */,
E55128D32C989E13001D165C /* libgmpxx.a in Frameworks */,
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
E55128D72C989E13001D165C /* libgmp.a in Frameworks */,
E55128D62C989E13001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj-ghc9.6.3.a in Frameworks */,
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
64A208632C8F2CCC00AE9D01 /* libffi.a in Frameworks */,
64A208642C8F2CCC00AE9D01 /* libgmp.a in Frameworks */,
E55128D42C989E13001D165C /* libffi.a in Frameworks */,
E55128D52C989E13001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj.a in Frameworks */,
CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -745,11 +745,11 @@
5C764E5C279C70B7000C6508 /* Libraries */ = {
isa = PBXGroup;
children = (
64A2085E2C8F2CCB00AE9D01 /* libffi.a */,
64A2085F2C8F2CCB00AE9D01 /* libgmp.a */,
64A2085D2C8F2CCB00AE9D01 /* libgmpxx.a */,
64A208602C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7-ghc9.6.3.a */,
64A208612C8F2CCC00AE9D01 /* libHSsimplex-chat-6.1.0.0-G2fNFSEVU486aN7U9YSuO7.a */,
E55128CF2C989E12001D165C /* libffi.a */,
E55128D22C989E13001D165C /* libgmp.a */,
E55128CE2C989E12001D165C /* libgmpxx.a */,
E55128D12C989E13001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj-ghc9.6.3.a */,
E55128D02C989E12001D165C /* libHSsimplex-chat-6.1.0.0-6SG1oRijpxxHpZcw3v92xj.a */,
);
path = Libraries;
sourceTree = "<group>";
+70 -4
View File
@@ -8,6 +8,7 @@
import Foundation
import SwiftUI
import Network
public let jsonDecoder = getJSONDecoder()
public let jsonEncoder = getJSONEncoder()
@@ -600,7 +601,7 @@ public enum ChatResponse: Decodable, Error {
case groupEmpty(user: UserRef, groupInfo: GroupInfo)
case userContactLinkSubscribed
case newChatItems(user: UserRef, chatItems: [AChatItem])
case chatItemStatusUpdated(user: UserRef, chatItem: AChatItem)
case chatItemsStatusesUpdated(user: UserRef, chatItems: [AChatItem])
case chatItemUpdated(user: UserRef, chatItem: AChatItem)
case chatItemNotChanged(user: UserRef, chatItem: AChatItem)
case chatItemReaction(user: UserRef, added: Bool, reaction: ACIReaction)
@@ -771,7 +772,7 @@ public enum ChatResponse: Decodable, Error {
case .groupEmpty: return "groupEmpty"
case .userContactLinkSubscribed: return "userContactLinkSubscribed"
case .newChatItems: return "newChatItems"
case .chatItemStatusUpdated: return "chatItemStatusUpdated"
case .chatItemsStatusesUpdated: return "chatItemsStatusesUpdated"
case .chatItemUpdated: return "chatItemUpdated"
case .chatItemNotChanged: return "chatItemNotChanged"
case .chatItemReaction: return "chatItemReaction"
@@ -942,7 +943,9 @@ public enum ChatResponse: Decodable, Error {
case let .newChatItems(u, chatItems):
let itemsString = chatItems.map { chatItem in String(describing: chatItem) }.joined(separator: "\n")
return withUser(u, itemsString)
case let .chatItemStatusUpdated(u, chatItem): return withUser(u, String(describing: chatItem))
case let .chatItemsStatusesUpdated(u, chatItems):
let itemsString = chatItems.map { chatItem in String(describing: chatItem) }.joined(separator: "\n")
return withUser(u, itemsString)
case let .chatItemUpdated(u, chatItem): return withUser(u, String(describing: chatItem))
case let .chatItemNotChanged(u, chatItem): return withUser(u, String(describing: chatItem))
case let .chatItemReaction(u, added, reaction): return withUser(u, "added: \(added)\n\(String(describing: reaction))")
@@ -1497,6 +1500,63 @@ public struct KeepAliveOpts: Codable, Equatable {
public static let defaults: KeepAliveOpts = KeepAliveOpts(keepIdle: 30, keepIntvl: 15, keepCnt: 4)
}
public struct NetworkProxy: Equatable, Codable {
public var host: String = ""
public var port: Int = 0
public var auth: NetworkProxyAuth = .username
public var username: String = ""
public var password: String = ""
public static var def: NetworkProxy {
NetworkProxy()
}
public var valid: Bool {
let hostOk = switch NWEndpoint.Host(host) {
case .ipv4: true
case .ipv6: true
default: false
}
return hostOk &&
port > 0 && port <= 65535 &&
NetworkProxy.validCredential(username) && NetworkProxy.validCredential(password)
}
public static func validCredential(_ s: String) -> Bool {
!s.contains(":") && !s.contains("@")
}
public func toProxyString() -> String? {
if !valid { return nil }
var res = ""
switch auth {
case .username:
let usernameTrimmed = username.trimmingCharacters(in: .whitespaces)
let passwordTrimmed = password.trimmingCharacters(in: .whitespaces)
if usernameTrimmed != "" || passwordTrimmed != "" {
res += usernameTrimmed + ":" + passwordTrimmed + "@"
} else {
res += "@"
}
case .isolate: ()
}
if host != "" {
if host.contains(":") {
res += "[\(host.trimmingCharacters(in: [" ", "[", "]"]))]"
} else {
res += host.trimmingCharacters(in: .whitespaces)
}
}
res += ":\(port)"
return res
}
}
public enum NetworkProxyAuth: String, Codable {
case username
case isolate
}
public enum NetworkStatus: Decodable, Equatable {
case unknown
case connected
@@ -2120,11 +2180,13 @@ public struct MigrationFileLinkData: Codable {
public struct NetworkConfig: Codable {
let socksProxy: String?
let networkProxy: NetworkProxy?
let hostMode: HostMode?
let requiredHostMode: Bool?
public init(socksProxy: String?, hostMode: HostMode?, requiredHostMode: Bool?) {
public init(socksProxy: String?, networkProxy: NetworkProxy?, hostMode: HostMode?, requiredHostMode: Bool?) {
self.socksProxy = socksProxy
self.networkProxy = networkProxy
self.hostMode = hostMode
self.requiredHostMode = requiredHostMode
}
@@ -2133,6 +2195,7 @@ public struct MigrationFileLinkData: Codable {
return if let hostMode, let requiredHostMode {
NetworkConfig(
socksProxy: nil,
networkProxy: nil,
hostMode: hostMode == .onionViaSocks ? .onionHost : hostMode,
requiredHostMode: requiredHostMode
)
@@ -2152,6 +2215,7 @@ public struct MigrationFileLinkData: Codable {
public struct AppSettings: Codable, Equatable {
public var networkConfig: NetCfg? = nil
public var networkProxy: NetworkProxy? = nil
public var privacyEncryptLocalFiles: Bool? = nil
public var privacyAskToApproveRelays: Bool? = nil
public var privacyAcceptImages: Bool? = nil
@@ -2183,6 +2247,7 @@ public struct AppSettings: Codable, Equatable {
var empty = AppSettings()
let def = AppSettings.defaults
if networkConfig != def.networkConfig { empty.networkConfig = networkConfig }
if networkProxy != def.networkProxy { empty.networkProxy = networkProxy }
if privacyEncryptLocalFiles != def.privacyEncryptLocalFiles { empty.privacyEncryptLocalFiles = privacyEncryptLocalFiles }
if privacyAskToApproveRelays != def.privacyAskToApproveRelays { empty.privacyAskToApproveRelays = privacyAskToApproveRelays }
if privacyAcceptImages != def.privacyAcceptImages { empty.privacyAcceptImages = privacyAcceptImages }
@@ -2215,6 +2280,7 @@ public struct AppSettings: Codable, Equatable {
public static var defaults: AppSettings {
AppSettings (
networkConfig: NetCfg.defaults,
networkProxy: NetworkProxy.def,
privacyEncryptLocalFiles: true,
privacyAskToApproveRelays: true,
privacyAcceptImages: true,
+6 -1
View File
@@ -35,6 +35,7 @@ public let GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS = "privacyAskToApproveRel
// replaces DEFAULT_PROFILE_IMAGE_CORNER_RADIUS
public let GROUP_DEFAULT_PROFILE_IMAGE_CORNER_RADIUS = "profileImageCornerRadius"
let GROUP_DEFAULT_NTF_BADGE_COUNT = "ntgBadgeCount"
public let GROUP_DEFAULT_NETWORK_SOCKS_PROXY = "networkSocksProxy"
let GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS = "networkUseOnionHosts"
let GROUP_DEFAULT_NETWORK_SESSION_MODE = "networkSessionMode"
let GROUP_DEFAULT_NETWORK_SMP_PROXY_MODE = "networkSMPProxyMode"
@@ -327,6 +328,7 @@ public class Default<T> {
}
public func getNetCfg() -> NetCfg {
let socksProxy = groupDefaults.string(forKey: GROUP_DEFAULT_NETWORK_SOCKS_PROXY)
let onionHosts = networkUseOnionHostsGroupDefault.get()
let (hostMode, requiredHostMode) = onionHosts.hostMode
let sessionMode = networkSessionModeGroupDefault.get()
@@ -349,6 +351,7 @@ public func getNetCfg() -> NetCfg {
tcpKeepAlive = nil
}
return NetCfg(
socksProxy: socksProxy,
hostMode: hostMode,
requiredHostMode: requiredHostMode,
sessionMode: sessionMode,
@@ -365,11 +368,13 @@ public func getNetCfg() -> NetCfg {
)
}
public func setNetCfg(_ cfg: NetCfg) {
public func setNetCfg(_ cfg: NetCfg, networkProxy: NetworkProxy?) {
networkUseOnionHostsGroupDefault.set(OnionHosts(netCfg: cfg))
networkSessionModeGroupDefault.set(cfg.sessionMode)
networkSMPProxyModeGroupDefault.set(cfg.smpProxyMode)
networkSMPProxyFallbackGroupDefault.set(cfg.smpProxyFallback)
let socksProxy = networkProxy?.toProxyString()
groupDefaults.set(socksProxy, forKey: GROUP_DEFAULT_NETWORK_SOCKS_PROXY)
groupDefaults.set(cfg.tcpConnectTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT)
groupDefaults.set(cfg.tcpTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT)
groupDefaults.set(cfg.tcpTimeoutPerKb, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB)
+14
View File
@@ -2856,6 +2856,13 @@ public enum CIStatus: Decodable, Hashable {
)
}
}
public var isSndRcvd: Bool {
switch self {
case .sndRcvd: return true
default: return false
}
}
}
public enum SndError: Decodable, Hashable {
@@ -3152,6 +3159,13 @@ public enum CIContent: Decodable, ItemContent, Hashable {
default: return false
}
}
public var isSndCall: Bool {
switch self {
case .sndCall: return true
default: return false
}
}
}
public enum MsgDecryptError: String, Decodable, Hashable {
+5 -19
View File
@@ -697,7 +697,7 @@
/* No comment provided by engineer. */
"Can't invite contacts!" = "Не може да поканят контактите!";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Отказ";
/* No comment provided by engineer. */
@@ -1897,9 +1897,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Пълно име (незадължително)";
/* No comment provided by engineer. */
"Full name:" = "Пълно име:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Напълно децентрализирана – видима е само за членовете.";
@@ -2940,12 +2937,6 @@
/* No comment provided by engineer. */
"Profile images" = "Профилни изображения";
/* No comment provided by engineer. */
"Profile name" = "Име на профила";
/* No comment provided by engineer. */
"Profile name:" = "Име на профила:";
/* No comment provided by engineer. */
"Profile password" = "Профилна парола";
@@ -3211,10 +3202,11 @@
/* No comment provided by engineer. */
"Safer groups" = "По-безопасни групи";
/* chat item action */
/* alert button
chat item action */
"Save" = "Запази";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Запази (и уведоми контактите)";
/* No comment provided by engineer. */
@@ -3229,9 +3221,6 @@
/* No comment provided by engineer. */
"Save archive" = "Запази архив";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Запази настройките за автоматично приемане";
/* No comment provided by engineer. */
"Save group profile" = "Запази профила на групата";
@@ -3253,9 +3242,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Запази сървърите?";
/* No comment provided by engineer. */
"Save settings?" = "Запази настройките?";
/* No comment provided by engineer. */
"Save welcome message?" = "Запази съобщението при посрещане?";
@@ -4430,7 +4416,7 @@
"Your profile **%@** will be shared." = "Вашият профил **%@** ще бъде споделен.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Вашият профил се съхранява на вашето устройство и се споделя само с вашите контакти.\nSimpleX сървърите не могат да видят вашия профил.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Вашият профил се съхранява на вашето устройство и се споделя само с вашите контакти. SimpleX сървърите не могат да видят вашия профил.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Вашият профил, контакти и доставени съобщения се съхраняват на вашето устройство.";
+5 -13
View File
@@ -562,7 +562,7 @@
/* No comment provided by engineer. */
"Can't invite contacts!" = "Nelze pozvat kontakty!";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Zrušit";
/* feature offered item */
@@ -1543,9 +1543,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Celé jméno (volitelně)";
/* No comment provided by engineer. */
"Full name:" = "Celé jméno:";
/* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "Plně přepracováno, prácuje na pozadí!";
@@ -2602,10 +2599,11 @@
/* No comment provided by engineer. */
"Run chat" = "Spustit chat";
/* chat item action */
/* alert button
chat item action */
"Save" = "Uložit";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Uložit (a informovat kontakty)";
/* No comment provided by engineer. */
@@ -2620,9 +2618,6 @@
/* No comment provided by engineer. */
"Save archive" = "Uložit archiv";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Uložit nastavení automatického přijímání";
/* No comment provided by engineer. */
"Save group profile" = "Uložení profilu skupiny";
@@ -2644,9 +2639,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Uložit servery?";
/* No comment provided by engineer. */
"Save settings?" = "Uložit nastavení?";
/* No comment provided by engineer. */
"Save welcome message?" = "Uložit uvítací zprávu?";
@@ -3554,7 +3546,7 @@
"Your profile **%@** will be shared." = "Váš profil **%@** bude sdílen.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Váš profil je uložen ve vašem zařízení a sdílen pouze s vašimi kontakty.\nServery SimpleX nevidí váš profil.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Váš profil je uložen ve vašem zařízení a sdílen pouze s vašimi kontakty. Servery SimpleX nevidí váš profil.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Váš profil, kontakty a doručené zprávy jsou uloženy ve vašem zařízení.";
+18 -32
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Mitglied kann nicht benachrichtigt werden";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Abbrechen";
/* No comment provided by engineer. */
@@ -921,16 +921,16 @@
"Chunks uploaded" = "Daten-Pakete hochgeladen";
/* swipe action */
"Clear" = "Löschen";
"Clear" = "Entfernen";
/* No comment provided by engineer. */
"Clear conversation" = "Chatinhalte löschen";
"Clear conversation" = "Chat-Inhalte entfernen";
/* No comment provided by engineer. */
"Clear conversation?" = "Unterhaltung löschen?";
"Clear conversation?" = "Chat-Inhalte entfernen?";
/* No comment provided by engineer. */
"Clear private notes?" = "Private Notizen löschen?";
"Clear private notes?" = "Private Notizen entfernen?";
/* No comment provided by engineer. */
"Clear verification" = "Überprüfung zurücknehmen";
@@ -1167,7 +1167,7 @@
"Continue" = "Weiter";
/* No comment provided by engineer. */
"Conversation deleted!" = "Unterhaltung gelöscht!";
"Conversation deleted!" = "Chat-Inhalte entfernt!";
/* No comment provided by engineer. */
"Copy" = "Kopieren";
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Vollständiger Name (optional)";
/* No comment provided by engineer. */
"Full name:" = "Vollständiger Name:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Vollständig dezentralisiert nur für Mitglieder sichtbar.";
@@ -2306,7 +2303,7 @@
"Group will be deleted for all members - this cannot be undone!" = "Die Gruppe wird für alle Mitglieder gelöscht. Dies kann nicht rückgängig gemacht werden!";
/* No comment provided by engineer. */
"Group will be deleted for you - this cannot be undone!" = "Die Gruppe wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!";
"Group will be deleted for you - this cannot be undone!" = "Die Gruppe wird nur bei Ihnen gelöscht. Dies kann nicht rückgängig gemacht werden!";
/* No comment provided by engineer. */
"Help" = "Hilfe";
@@ -2630,7 +2627,7 @@
"Keep" = "Behalten";
/* No comment provided by engineer. */
"Keep conversation" = "Unterhaltung behalten";
"Keep conversation" = "Chat-Inhalte beibehalten";
/* No comment provided by engineer. */
"Keep the app open to use it from desktop" = "Die App muss geöffnet bleiben, um sie vom Desktop aus nutzen zu können";
@@ -3115,7 +3112,7 @@
"Only client devices store user profiles, contacts, groups, and messages sent with **2-layer end-to-end encryption**." = "Nur die Endgeräte speichern die Benutzerprofile, Kontakte, Gruppen und Nachrichten, welche über eine **2-Schichten Ende-zu-Ende-Verschlüsselung** gesendet werden.";
/* No comment provided by engineer. */
"Only delete conversation" = "Nur die Unterhaltung löschen";
"Only delete conversation" = "Nur die Chat-Inhalte löschen";
/* No comment provided by engineer. */
"Only group owners can change group preferences." = "Gruppen-Präferenzen können nur von Gruppen-Eigentümern geändert werden.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Profil-Bilder";
/* No comment provided by engineer. */
"Profile name" = "Profilname";
/* No comment provided by engineer. */
"Profile name:" = "Profilname:";
/* No comment provided by engineer. */
"Profile password" = "Passwort für Profil";
@@ -3460,7 +3451,7 @@
"Rate the app" = "Bewerten Sie die App";
/* No comment provided by engineer. */
"Reachable chat toolbar" = "Erreichbare Chat-Symbolleiste";
"Reachable chat toolbar" = "Chat-Symbolleiste unten";
/* chat item menu */
"React…" = "Reagiere…";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Sicherere Gruppen";
/* chat item action */
/* alert button
chat item action */
"Save" = "Speichern";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Speichern (und Kontakte benachrichtigen)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Archiv speichern";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Einstellungen von \"Automatisch akzeptieren\" speichern";
/* No comment provided by engineer. */
"Save group profile" = "Gruppenprofil speichern";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Alle Server speichern?";
/* No comment provided by engineer. */
"Save settings?" = "Einstellungen speichern?";
/* No comment provided by engineer. */
"Save welcome message?" = "Begrüßungsmeldung speichern?";
@@ -3815,7 +3801,7 @@
"Search bar accepts invitation links." = "In der Suchleiste werden nun auch Einladungslinks akzeptiert.";
/* No comment provided by engineer. */
"Search or paste SimpleX link" = "Suchen oder fügen Sie den SimpleX-Link ein";
"Search or paste SimpleX link" = "Suchen oder SimpleX-Link einfügen";
/* network option */
"sec" = "sek";
@@ -4385,7 +4371,7 @@
"The message will be marked as moderated for all members." = "Diese Nachricht wird für alle Mitglieder als moderiert gekennzeichnet.";
/* No comment provided by engineer. */
"The messages will be deleted for all members." = "Die Nachrichten werden für alle Mitglieder gelöscht werden.";
"The messages will be deleted for all members." = "Die Nachrichten werden für alle Gruppenmitglieder gelöscht.";
/* No comment provided by engineer. */
"The messages will be marked as moderated for all members." = "Die Nachrichten werden für alle Mitglieder als moderiert gekennzeichnet werden.";
@@ -4709,7 +4695,7 @@
"Use the app while in the call." = "Die App kann während eines Anrufs genutzt werden.";
/* No comment provided by engineer. */
"Use the app with one hand." = "Die App mit einer Hand nutzen.";
"Use the app with one hand." = "Die App mit einer Hand bedienen.";
/* No comment provided by engineer. */
"User profile" = "Benutzerprofil";
@@ -5021,7 +5007,7 @@
"You can start chat via app Settings / Database or by restarting the app" = "Sie können den Chat über die App-Einstellungen / Datenbank oder durch Neustart der App starten";
/* No comment provided by engineer. */
"You can still view conversation with %@ in the list of chats." = "Sie können in der Chatliste weiterhin die Unterhaltung mit %@ einsehen.";
"You can still view conversation with %@ in the list of chats." = "Sie können in der Chat-Liste weiterhin die Unterhaltung mit %@ einsehen.";
/* No comment provided by engineer. */
"You can turn on SimpleX Lock via Settings." = "Sie können die SimpleX-Sperre über die Einstellungen aktivieren.";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "Ihr Profil **%@** wird geteilt.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Ihr Profil wird auf Ihrem Gerät gespeichert und nur mit Ihren Kontakten geteilt.\nSimpleX-Server können Ihr Profil nicht einsehen.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Ihr Profil wird auf Ihrem Gerät gespeichert und nur mit Ihren Kontakten geteilt. SimpleX-Server können Ihr Profil nicht einsehen.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Ihr Profil, Ihre Kontakte und zugestellten Nachrichten werden auf Ihrem Gerät gespeichert.";
+5 -19
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "No se pueden enviar mensajes al miembro";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Cancelar";
/* No comment provided by engineer. */
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Nombre completo (opcional)";
/* No comment provided by engineer. */
"Full name:" = "Nombre completo:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Completamente descentralizado y sólo visible para los miembros.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Forma de los perfiles";
/* No comment provided by engineer. */
"Profile name" = "Nombre del perfil";
/* No comment provided by engineer. */
"Profile name:" = "Nombre del perfil:";
/* No comment provided by engineer. */
"Profile password" = "Contraseña del perfil";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Grupos más seguros";
/* chat item action */
/* alert button
chat item action */
"Save" = "Guardar";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Guardar (y notificar contactos)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Guardar archivo";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Guardar configuración de auto aceptar";
/* No comment provided by engineer. */
"Save group profile" = "Guardar perfil de grupo";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "¿Guardar servidores?";
/* No comment provided by engineer. */
"Save settings?" = "¿Guardar configuración?";
/* No comment provided by engineer. */
"Save welcome message?" = "¿Guardar mensaje de bienvenida?";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "El perfil **%@** será compartido.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Tu perfil es almacenado en tu dispositivo y solamente se comparte con tus contactos.\nLos servidores SimpleX no pueden ver tu perfil.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Tu perfil es almacenado en tu dispositivo y solamente se comparte con tus contactos. Los servidores SimpleX no pueden ver tu perfil.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Tu perfil, contactos y mensajes se almacenan en tu dispositivo.";
+5 -13
View File
@@ -547,7 +547,7 @@
/* No comment provided by engineer. */
"Can't invite contacts!" = "Kontakteja ei voi kutsua!";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Peruuta";
/* feature offered item */
@@ -1519,9 +1519,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Koko nimi (valinnainen)";
/* No comment provided by engineer. */
"Full name:" = "Koko nimi:";
/* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "Täysin uudistettu - toimii taustalla!";
@@ -2572,10 +2569,11 @@
/* No comment provided by engineer. */
"Run chat" = "Käynnistä chat";
/* chat item action */
/* alert button
chat item action */
"Save" = "Tallenna";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Tallenna (ja ilmoita kontakteille)";
/* No comment provided by engineer. */
@@ -2590,9 +2588,6 @@
/* No comment provided by engineer. */
"Save archive" = "Tallenna arkisto";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Tallenna automaattisen hyväksynnän asetukset";
/* No comment provided by engineer. */
"Save group profile" = "Tallenna ryhmäprofiili";
@@ -2614,9 +2609,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Tallenna palvelimet?";
/* No comment provided by engineer. */
"Save settings?" = "Tallenna asetukset?";
/* No comment provided by engineer. */
"Save welcome message?" = "Tallenna tervetuloviesti?";
@@ -3512,7 +3504,7 @@
"Your profile **%@** will be shared." = "Profiilisi **%@** jaetaan.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Profiilisi tallennetaan laitteeseesi ja jaetaan vain yhteystietojesi kanssa.\nSimpleX-palvelimet eivät näe profiiliasi.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Profiilisi tallennetaan laitteeseesi ja jaetaan vain yhteystietojesi kanssa. SimpleX-palvelimet eivät näe profiiliasi.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Profiilisi, kontaktisi ja toimitetut viestit tallennetaan laitteellesi.";
+5 -19
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Impossible d'envoyer un message à ce membre";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Annuler";
/* No comment provided by engineer. */
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Nom complet (optionnel)";
/* No comment provided by engineer. */
"Full name:" = "Nom complet :";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Entièrement décentralisé visible que par ses membres.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Images de profil";
/* No comment provided by engineer. */
"Profile name" = "Nom du profil";
/* No comment provided by engineer. */
"Profile name:" = "Nom du profil :";
/* No comment provided by engineer. */
"Profile password" = "Mot de passe de profil";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Groupes plus sûrs";
/* chat item action */
/* alert button
chat item action */
"Save" = "Enregistrer";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Enregistrer (et en informer les contacts)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Enregistrer l'archive";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Enregistrer les paramètres de validation automatique";
/* No comment provided by engineer. */
"Save group profile" = "Enregistrer le profil du groupe";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Enregistrer les serveurs?";
/* No comment provided by engineer. */
"Save settings?" = "Enregistrer les paramètres?";
/* No comment provided by engineer. */
"Save welcome message?" = "Enregistrer le message d'accueil?";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "Votre profil **%@** sera partagé.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Votre profil est stocké sur votre appareil et est seulement partagé avec vos contacts.\nLes serveurs SimpleX ne peuvent pas voir votre profil.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Votre profil est stocké sur votre appareil et est seulement partagé avec vos contacts. Les serveurs SimpleX ne peuvent pas voir votre profil.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Votre profil, vos contacts et les messages reçus sont stockés sur votre appareil.";
+77 -91
View File
@@ -29,7 +29,7 @@
"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- opcionális értesítés a törölt kapcsolatokról.\n- profilnevek szóközökkel.\n- és még sok más!";
/* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- hangüzenetek legfeljebb 5 perces időtartamig.\n- egyedi eltűnési időhatár megadása.\n- előzmények szerkesztése.";
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- 5 perc hosszúságú hangüzenetek.\n- egyedi üzenet-eltűnési időkorlát.\n- előzmények szerkesztése.";
/* No comment provided by engineer. */
", " = ", ";
@@ -62,7 +62,7 @@
"[Send us email](mailto:chat@simplex.chat)" = "[Küldjön nekünk e-mailt](mailto:chat@simplex.chat)";
/* No comment provided by engineer. */
"[Star on GitHub](https://github.com/simplex-chat/simplex-chat)" = "[Csillag a GitHubon](https://github.com/simplex-chat/simplex-chat)";
"[Star on GitHub](https://github.com/simplex-chat/simplex-chat)" = "[Csillagozás a GitHubon](https://github.com/simplex-chat/simplex-chat)";
/* No comment provided by engineer. */
"**Add contact**: to create a new invitation link, or connect via a link you received." = "**Ismerős hozzáadása**: új meghívó hivatkozás létrehozásához, vagy egy kapott hivatkozáson keresztül történő kapcsolódáshoz.";
@@ -263,7 +263,7 @@
"`a + b`" = "a + b";
/* email text */
"<p>Hi!</p>\n<p><a href=\"%@\">Connect to me via SimpleX Chat</a></p>" = "<p>Üdvözlöm!</p>\n<p><a href=„%@”>Csatlakozzon hozzám a SimpleX Chaten</a></p>";
"<p>Hi!</p>\n<p><a href=\"%@\">Connect to me via SimpleX Chat</a></p>" = "<p>Üdvözlöm!</p>\n<p><a href=„%@”>Csatlakozzon hozzám a SimpleX Chaten keresztül</a></p>";
/* No comment provided by engineer. */
"~strike~" = "\\~áthúzott~";
@@ -343,7 +343,7 @@
"Accept" = "Elfogadás";
/* No comment provided by engineer. */
"Accept connection request?" = "Kapcsolódási kérelem elfogadása?";
"Accept connection request?" = "Ismerőskérelem elfogadása?";
/* notification body */
"Accept contact request from %@?" = "Elfogadja %@ kapcsolat kérését?";
@@ -659,10 +659,10 @@
"Bad desktop address" = "Hibás számítógép cím";
/* integrity error chat item */
"bad message hash" = "hibás az üzenet ellenőrzőösszege";
"bad message hash" = "hibás az üzenet hasító értéke";
/* No comment provided by engineer. */
"Bad message hash" = "Hibás az üzenet ellenőrzőösszege";
"Bad message hash" = "Hibás az üzenet hasító értéke";
/* integrity error chat item */
"bad message ID" = "téves üzenet ID";
@@ -749,7 +749,7 @@
"Call already ended!" = "A hívás már befejeződött!";
/* call status */
"call error" = "hiba a hívásban";
"call error" = "híváshiba";
/* call status */
"call in progress" = "hívás folyamatban";
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Nem lehet üzenetet küldeni a tagnak";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Mégse";
/* No comment provided by engineer. */
@@ -1002,7 +1002,7 @@
"Connect incognito" = "Kapcsolódás inkognitóban";
/* No comment provided by engineer. */
"Connect to desktop" = "Kapcsolódás számítógéphez";
"Connect to desktop" = "Társítás számítógéppel";
/* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "Kapcsolódás a SimpleX Chat fejlesztőkhöz.";
@@ -1014,7 +1014,7 @@
"Connect to yourself?" = "Kapcsolódás saját magához?";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own one-time link!" = "Kapcsolódás saját magához?\nEz az egyszer használatos hivatkozása!";
"Connect to yourself?\nThis is your own one-time link!" = "Kapcsolódás saját magához?\nEz az ön egyszer használatos hivatkozása!";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own SimpleX address!" = "Kapcsolódás saját magához?\nEz az ön SimpleX címe!";
@@ -1038,7 +1038,7 @@
"Connected" = "Kapcsolódva";
/* No comment provided by engineer. */
"Connected desktop" = "Csatlakoztatott számítógép";
"Connected desktop" = "Társított számítógép";
/* rcv group event chat item */
"connected directly" = "közvetlenül kapcsolódva";
@@ -1068,7 +1068,7 @@
"connecting (introduction invitation)" = "kapcsolódás (bemutatkozó meghívó)";
/* call status */
"connecting call" = "hívás kapcsolódik…";
"connecting call" = "kapcsolódási hívás…";
/* No comment provided by engineer. */
"Connecting server…" = "Kapcsolódás a kiszolgálóhoz…";
@@ -1128,7 +1128,7 @@
"Contact allows" = "Ismerős engedélyezi";
/* No comment provided by engineer. */
"Contact already exists" = "Létező ismerős";
"Contact already exists" = "Az ismerős már létezik";
/* No comment provided by engineer. */
"Contact deleted!" = "Ismerős törölve!";
@@ -1197,7 +1197,7 @@
"Create group" = "Csoport létrehozása";
/* No comment provided by engineer. */
"Create group link" = "Csoportos hivatkozás létrehozása";
"Create group link" = "Csoporthivatkozás létrehozása";
/* No comment provided by engineer. */
"Create link" = "Hivatkozás létrehozása";
@@ -1233,7 +1233,7 @@
"Created on %@" = "Létrehozva %@";
/* No comment provided by engineer. */
"Creating archive link" = "Archív hivatkozás létrehozása";
"Creating archive link" = "Archívum hivatkozás létrehozása";
/* No comment provided by engineer. */
"Creating link…" = "Hivatkozás létrehozása…";
@@ -1450,7 +1450,7 @@
"Delete old database?" = "Régi adatbázis törlése?";
/* No comment provided by engineer. */
"Delete pending connection?" = "Függő kapcsolatfelvételi kérések törlése?";
"Delete pending connection?" = "Függőben lévő ismerőskérelem törlése?";
/* No comment provided by engineer. */
"Delete profile" = "Profil törlése";
@@ -1654,7 +1654,7 @@
"Downloading link details" = "Letöltési hivatkozás részletei";
/* No comment provided by engineer. */
"Duplicate display name!" = "Duplikált megjelenítési név!";
"Duplicate display name!" = "Duplikált megjelenített név!";
/* integrity error chat item */
"duplicate message" = "duplikált üzenet";
@@ -1852,7 +1852,7 @@
"Error accessing database file" = "Hiba az adatbázisfájl elérésekor";
/* No comment provided by engineer. */
"Error adding member(s)" = "Hiba a tag(-ok) hozzáadásakor";
"Error adding member(s)" = "Hiba a tag(ok) hozzáadásakor";
/* No comment provided by engineer. */
"Error changing address" = "Hiba a cím megváltoztatásakor";
@@ -1873,7 +1873,7 @@
"Error creating group" = "Hiba a csoport létrehozásakor";
/* No comment provided by engineer. */
"Error creating group link" = "Hiba a csoport hivatkozásának létrehozásakor";
"Error creating group link" = "Hiba a csoporthivatkozás létrehozásakor";
/* No comment provided by engineer. */
"Error creating member contact" = "Hiba az ismerőssel történő kapcsolat létrehozásában";
@@ -2002,7 +2002,7 @@
"Error synchronizing connection" = "Hiba a kapcsolat szinkronizálása közben";
/* No comment provided by engineer. */
"Error updating group link" = "Hiba a csoport hivatkozás frissítésekor";
"Error updating group link" = "Hiba a csoporthivatkozás frissítésekor";
/* No comment provided by engineer. */
"Error updating message" = "Hiba az üzenet frissítésekor";
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Teljes név (opcionális)";
/* No comment provided by engineer. */
"Full name:" = "Teljes név:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Teljesen decentralizált - kizárólag tagok számára látható.";
@@ -2255,10 +2252,10 @@
"Group invitation is no longer valid, it was removed by sender." = "A csoport meghívó már nem érvényes, a küldője törölte.";
/* No comment provided by engineer. */
"Group link" = "Csoport hivatkozás";
"Group link" = "Csoporthivatkozás";
/* No comment provided by engineer. */
"Group links" = "Csoport hivatkozások";
"Group links" = "Csoporthivatkozások";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Csoporttagok üzenetreakciókat adhatnak hozzá.";
@@ -2303,7 +2300,7 @@
"Group welcome message" = "Csoport üdvözlő üzenete";
/* No comment provided by engineer. */
"Group will be deleted for all members - this cannot be undone!" = "Csoport törlésre kerül minden tag számára - ez a művelet nem vonható vissza!";
"Group will be deleted for all members - this cannot be undone!" = "A csoport törlésre kerül minden tag számára - ez a művelet nem vonható vissza!";
/* No comment provided by engineer. */
"Group will be deleted for you - this cannot be undone!" = "A csoport törlésre kerül az ön számára - ez a művelet nem vonható vissza!";
@@ -2444,10 +2441,10 @@
"incognito via contact address link" = "inkognitó a kapcsolattartási hivatkozáson keresztül";
/* chat list item description */
"incognito via group link" = "inkognitó a csoportos hivatkozáson keresztül";
"incognito via group link" = "inkognitó a csoporthivatkozáson keresztül";
/* chat list item description */
"incognito via one-time link" = "inkognitó az egyszer használatos hivatkozáson keresztül";
"incognito via one-time link" = "inkognitó egy egyszer használatos hivatkozáson keresztül";
/* notification */
"Incoming audio call" = "Bejövő hanghívás";
@@ -2501,13 +2498,13 @@
"invalid chat data" = "érvénytelen csevegés adat";
/* No comment provided by engineer. */
"Invalid connection link" = "Érvénytelen kapcsolati hivatkozás";
"Invalid connection link" = "Érvénytelen kapcsolattartási hivatkozás";
/* invalid chat item */
"invalid data" = "érvénytelen adat";
/* No comment provided by engineer. */
"Invalid display name!" = "Érvénytelen megjelenítendő felhaszálónév!";
"Invalid display name!" = "Érvénytelen megjelenítendő név!";
/* No comment provided by engineer. */
"Invalid link" = "Érvénytelen hivatkozás";
@@ -2558,7 +2555,7 @@
"invited to connect" = "meghívta, hogy csatlakozzon";
/* rcv group event chat item */
"invited via your group link" = "meghíva az ön csoport hivatkozásán keresztül";
"invited via your group link" = "meghíva az ön csoporthivatkozásán keresztül";
/* No comment provided by engineer. */
"iOS Keychain is used to securely store passphrase - it allows receiving push notifications." = "Az iOS kulcstartó a jelmondat biztonságos tárolására szolgál - lehetővé teszi a push-értesítések fogadását.";
@@ -2666,7 +2663,7 @@
"left" = "elhagyta a csoportot";
/* email subject */
"Let's talk in SimpleX Chat" = "Beszélgessünk a SimpleX Chat-ben";
"Let's talk in SimpleX Chat" = "Beszélgessünk a SimpleX Chatben";
/* No comment provided by engineer. */
"Light" = "Világos";
@@ -2675,13 +2672,13 @@
"Limitations" = "Korlátozások";
/* No comment provided by engineer. */
"Link mobile and desktop apps! 🔗" = "Társítsa össze a mobil és az asztali alkalmazásokat! 🔗";
"Link mobile and desktop apps! 🔗" = "Társítsa össze a mobil és asztali alkalmazásokat! 🔗";
/* No comment provided by engineer. */
"Linked desktop options" = "Összekapcsolt számítógép beállítások";
"Linked desktop options" = "Társított számítógép beállítások";
/* No comment provided by engineer. */
"Linked desktops" = "Összekapcsolt számítógépek";
"Linked desktops" = "Társított számítógépek";
/* No comment provided by engineer. */
"LIVE" = "ÉLŐ";
@@ -2723,7 +2720,7 @@
"Make sure WebRTC ICE server addresses are in correct format, line separated and are not duplicated." = "Győződjön meg arról, hogy a WebRTC ICE-kiszolgáló címei megfelelő formátumúak, sorszeparáltak és nincsenek duplikálva.";
/* No comment provided by engineer. */
"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Sokan kérdezték: *ha a SimpleX-nek nincsenek felhasználói azonosítói, akkor hogyan tud üzeneteket kézbesíteni?*";
"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Sokan kérdezték: *ha a SimpleX Chatnek nincsenek felhasználói azonosítói, akkor hogyan tud üzeneteket kézbesíteni?*";
/* No comment provided by engineer. */
"Mark deleted for everyone" = "Jelölje meg mindenki számára töröltként";
@@ -2738,7 +2735,7 @@
"Markdown in messages" = "Markdown az üzenetekben";
/* marked deleted chat item preview text */
"marked deleted" = "töröltnek jelölve";
"marked deleted" = "törlésre jelölve";
/* No comment provided by engineer. */
"Max 30 seconds, received instantly." = "Max. 30 másodperc, azonnal érkezett.";
@@ -2903,10 +2900,10 @@
"moderated" = "moderált";
/* No comment provided by engineer. */
"Moderated at" = "Moderálva lett ekkor:";
"Moderated at" = "Moderálva ekkor:";
/* copied message info */
"Moderated at: %@" = "Moderálva lett ekkor: %@";
"Moderated at: %@" = "Moderálva ekkor: %@";
/* marked deleted chat item preview text */
"moderated by %@" = "moderálva lett %@ által";
@@ -2966,7 +2963,7 @@
"New chat experience 🎉" = "Új csevegési élmény 🎉";
/* notification */
"New contact request" = "Új kapcsolattartási kérelem";
"New contact request" = "Új ismerőskérelem";
/* notification */
"New contact:" = "Új kapcsolat:";
@@ -3011,7 +3008,7 @@
"No app password" = "Nincs alkalmazás jelszó";
/* No comment provided by engineer. */
"No contacts selected" = "Nem kerültek ismerősök kiválasztásra";
"No contacts selected" = "Nincs kiválasztva ismerős";
/* No comment provided by engineer. */
"No contacts to add" = "Nincs hozzáadandó ismerős";
@@ -3056,7 +3053,7 @@
"Not compatible!" = "Nem kompatibilis!";
/* No comment provided by engineer. */
"Nothing selected" = "Semmi sincs kiválasztva";
"Nothing selected" = "Nincs kiválasztva semmi";
/* No comment provided by engineer. */
"Notifications" = "Értesítések";
@@ -3094,7 +3091,7 @@
"Old database" = "Régi adatbázis";
/* No comment provided by engineer. */
"Old database archive" = "Régi adatbázis archívum";
"Old database archive" = "Régi adatbázis-archívum";
/* group pref value */
"on" = "bekapcsolva";
@@ -3112,7 +3109,7 @@
"Onion hosts will not be used." = "Onion kiszolgálók nem lesznek használva.";
/* No comment provided by engineer. */
"Only client devices store user profiles, contacts, groups, and messages sent with **2-layer end-to-end encryption**." = "Csak a klienseszközök tárolják a felhasználói profilokat, névjegyeket, csoportokat és a **2 rétegű végponttól-végpontig titkosítással** küldött üzeneteket.";
"Only client devices store user profiles, contacts, groups, and messages sent with **2-layer end-to-end encryption**." = "Csak a klienseszközök tárolják a felhasználói profilokat, névjegyeket, csoportokat és a **2 rétegű végpontok közötti titkosítással** küldött üzeneteket.";
/* No comment provided by engineer. */
"Only delete conversation" = "Csak a beszélgetés törlése";
@@ -3193,7 +3190,7 @@
"Or scan QR code" = "Vagy QR-kód beolvasása";
/* No comment provided by engineer. */
"Or securely share this file link" = "Vagy a fájl hivítkozásának biztonságos megosztása";
"Or securely share this file link" = "Vagy ossza meg biztonságosan ezt a fájlhivatkozást";
/* No comment provided by engineer. */
"Or show this code" = "Vagy mutassa meg ezt a kódot";
@@ -3235,7 +3232,7 @@
"Password to show" = "Jelszó megjelenítése";
/* past/unknown group member */
"Past member %@" = "Már nem tag - %@";
"Past member %@" = "%@ (már nem tag)";
/* No comment provided by engineer. */
"Paste desktop address" = "Számítógép címének beillesztése";
@@ -3247,13 +3244,13 @@
"Paste link to connect!" = "Hivatkozás beillesztése a kapcsolódáshoz!";
/* No comment provided by engineer. */
"Paste the link you received" = "Fogadott hivatkozás beillesztése";
"Paste the link you received" = "Kapott hivatkozás beillesztése";
/* No comment provided by engineer. */
"peer-to-peer" = "ponttól-pontig";
/* No comment provided by engineer. */
"Pending" = "Függő";
"Pending" = "Függőben";
/* No comment provided by engineer. */
"People can connect to you only via the links you share." = "Az emberek csak az ön által megosztott hivatkozáson keresztül kapcsolódhatnak.";
@@ -3286,7 +3283,7 @@
"Please check that mobile and desktop are connected to the same local network, and that desktop firewall allows the connection.\nPlease share any other issues with the developers." = "Ellenőrizze, hogy a mobil és az asztali számítógép ugyanahhoz a helyi hálózathoz csatlakozik-e, valamint az asztali számítógép tűzfalában engedélyezve van-e a kapcsolat.\nMinden további problémát osszon meg a fejlesztőkkel.";
/* No comment provided by engineer. */
"Please check that you used the correct link or ask your contact to send you another one." = "Ellenőrizze, hogy a megfelelő hivatkozást használta-e, vagy kérje meg ismerősét, hogy küldjön egy másikat.";
"Please check that you used the correct link or ask your contact to send you another one." = "Ellenőrizze, hogy a megfelelő hivatkozást használta-e, vagy kérje meg az ismerősét, hogy küldjön egy másikat.";
/* No comment provided by engineer. */
"Please check your network connection with %@ and try again." = "Ellenőrizze hálózati kapcsolatát a(z) %@ segítségével, és próbálja újra.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Profilképek";
/* No comment provided by engineer. */
"Profile name" = "Profilnév";
/* No comment provided by engineer. */
"Profile name:" = "Profil neve:";
/* No comment provided by engineer. */
"Profile password" = "Profiljelszó";
@@ -3493,7 +3484,7 @@
"Receive errors" = "Üzenetfogadási hibák";
/* No comment provided by engineer. */
"received answer…" = "fogadott válasz…";
"received answer…" = "válasz fogadása…";
/* No comment provided by engineer. */
"Received at" = "Fogadva ekkor:";
@@ -3647,7 +3638,7 @@
"Required" = "Szükséges";
/* No comment provided by engineer. */
"Reset" = "Alaphelyzetbe állítás";
"Reset" = "Visszaállítás";
/* No comment provided by engineer. */
"Reset all hints" = "Tippek visszaállítása";
@@ -3659,13 +3650,13 @@
"Reset all statistics?" = "Minden statisztika visszaállítása?";
/* No comment provided by engineer. */
"Reset colors" = "Színek alaphelyzetbe állítása";
"Reset colors" = "Színek visszaállítása";
/* No comment provided by engineer. */
"Reset to app theme" = "Alkalmazás témájának visszaállítása";
/* No comment provided by engineer. */
"Reset to defaults" = "Alaphelyzetbe állítás";
"Reset to defaults" = "Visszaállítás alaphelyzetbe";
/* No comment provided by engineer. */
"Reset to user theme" = "Felhasználó által létrehozott téma visszaállítása";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Biztonságosabb csoportok";
/* chat item action */
/* alert button
chat item action */
"Save" = "Mentés";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Mentés (és az ismerősök értesítése)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Archívum mentése";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Automatikus elfogadási beállítások mentése";
/* No comment provided by engineer. */
"Save group profile" = "Csoportprofil elmentése";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Kiszolgálók mentése?";
/* No comment provided by engineer. */
"Save settings?" = "Beállítások mentése?";
/* No comment provided by engineer. */
"Save welcome message?" = "Üdvözlőszöveg mentése?";
@@ -4013,10 +3999,10 @@
"Servers" = "Kiszolgálók";
/* No comment provided by engineer. */
"Servers info" = "információk a kiszolgálókról";
"Servers info" = "Információk a kiszolgálókról";
/* No comment provided by engineer. */
"Servers statistics will be reset - this cannot be undone!" = "A kiszolgálók statisztikái visszaállnak - ez nem vonható vissza!";
"Servers statistics will be reset - this cannot be undone!" = "A kiszolgálók statisztikái visszaállnak - ez a művelet nem vonható vissza!";
/* No comment provided by engineer. */
"Session code" = "Munkamenet kód";
@@ -4136,7 +4122,7 @@
"SimpleX encrypted message or connection event" = "SimpleX titkosított üzenet vagy kapcsolati esemény";
/* simplex link type */
"SimpleX group link" = "SimpleX csoport hivatkozás";
"SimpleX group link" = "SimpleX csoporthivatkozás";
/* chat feature */
"SimpleX links" = "SimpleX hivatkozások";
@@ -4274,7 +4260,7 @@
"Subscriptions ignored" = "Elutasított feliratkozások";
/* No comment provided by engineer. */
"Support SimpleX Chat" = "Támogassa a SimpleX Chatet";
"Support SimpleX Chat" = "SimpleX Chat támogatása";
/* No comment provided by engineer. */
"System" = "Rendszer";
@@ -4343,7 +4329,7 @@
"Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Köszönet a felhasználóknak [hozzájárulás a Weblate-en keresztül](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
/* No comment provided by engineer. */
"Thanks to the users contribute via Weblate!" = "Köszönet a felhasználóknak - hozzájárulás a Weblaten!";
"Thanks to the users contribute via Weblate!" = "Köszönet a felhasználóknak - hozzájárulás a Weblate-en!";
/* No comment provided by engineer. */
"The 1st platform without any user identifiers private by design." = "Az első csevegési rendszer bármiféle felhasználó azonosító nélkül - privátra lett tervezre.";
@@ -4358,10 +4344,10 @@
"The attempt to change database passphrase was not completed." = "Az adatbázis jelmondatának megváltoztatására tett kísérlet nem fejeződött be.";
/* No comment provided by engineer. */
"The code you scanned is not a SimpleX link QR code." = "A beolvasott kód nem egy SimpleX hivatkozás QR-kód.";
"The code you scanned is not a SimpleX link QR code." = "A beolvasott QR-kód nem egy SimpleX QR-kód hivatkozás.";
/* No comment provided by engineer. */
"The connection you accepted will be cancelled!" = "Az ön által elfogadott kapcsolat vissza lesz vonva!";
"The connection you accepted will be cancelled!" = "Az ön által elfogadott kérelem vissza lesz vonva!";
/* No comment provided by engineer. */
"The contact you shared this link with will NOT be able to connect!" = "Ismerőse, akivel megosztotta ezt a hivatkozást, NEM fog tudni kapcsolódni!";
@@ -4373,7 +4359,7 @@
"The encryption is working and the new encryption agreement is not required. It may result in connection errors!" = "A titkosítás működik, és új titkosítási egyezményre nincs szükség. Ez kapcsolati hibákat eredményezhet!";
/* No comment provided by engineer. */
"The hash of the previous message is different." = "Az előző üzenet ellenőrzőösszege különbözik.";
"The hash of the previous message is different." = "Az előző üzenet hasító értéke különbözik.";
/* No comment provided by engineer. */
"The ID of the next message is incorrect (less or equal to the previous).\nIt can happen because of some bug or when the connection is compromised." = "A következő üzenet azonosítója hibás (kisebb vagy egyenlő az előzővel).\nEz valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.";
@@ -4442,7 +4428,7 @@
"This device name" = "Ennek az eszköznek a neve";
/* No comment provided by engineer. */
"This display name is invalid. Please choose another name." = "Ez a megjelenített felhasználónév érvénytelen. Válasszon egy másik nevet.";
"This display name is invalid. Please choose another name." = "Ez a megjelenített név érvénytelen. Válasszon egy másik nevet.";
/* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "Ennek a csoportnak több mint %lld tagja van, a kézbesítési jelentések nem kerülnek elküldésre.";
@@ -4451,13 +4437,13 @@
"This group no longer exists." = "Ez a csoport már nem létezik.";
/* No comment provided by engineer. */
"This is your own one-time link!" = "Ez az egyszer használatos hivatkozása!";
"This is your own one-time link!" = "Ez az ön egyszer használatos hivatkozása!";
/* No comment provided by engineer. */
"This is your own SimpleX address!" = "Ez az ön SimpleX címe!";
/* No comment provided by engineer. */
"This link was used with another mobile device, please create a new link on the desktop." = "Ezt a hivatkozást egy másik mobilleszközön már használták, hozzon létre egy új hivatkozást az asztali számítógépén.";
"This link was used with another mobile device, please create a new link on the desktop." = "Ezt a hivatkozást egy másik mobileszközön már használták, hozzon létre egy új hivatkozást az asztali számítógépén.";
/* No comment provided by engineer. */
"This setting applies to messages in your current chat profile **%@**." = "Ez a beállítás a jelenlegi **%@** profiljában lévő üzenetekre érvényes.";
@@ -4520,10 +4506,10 @@
"Transport sessions" = "Munkamenetek átvitele";
/* No comment provided by engineer. */
"Trying to connect to the server used to receive messages from this contact (error: %@)." = "Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál (hiba: %@).";
"Trying to connect to the server used to receive messages from this contact (error: %@)." = "Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál (hiba: %@).";
/* No comment provided by engineer. */
"Trying to connect to the server used to receive messages from this contact." = "Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál.";
"Trying to connect to the server used to receive messages from this contact." = "Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál.";
/* No comment provided by engineer. */
"Turkish interface" = "Török kezelőfelület";
@@ -4598,7 +4584,7 @@
"Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." = "Hacsak nem az iOS hívási felületét használja, engedélyezze a Ne zavarjanak módot a megszakítások elkerülése érdekében.";
/* No comment provided by engineer. */
"Unless your contact deleted the connection or this link was already used, it might be a bug - please report it.\nTo connect, please ask your contact to create another connection link and check that you have a stable network connection." = "Hacsak az ismerőse nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt, lehet hogy ez egy hiba jelentse a problémát.\nA kapcsolódáshoz kérje meg ismerősét, hogy hozzon létre egy másik kapcsolati hivatkozást, és ellenőrizze, hogy a hálózati kapcsolat stabil-e.";
"Unless your contact deleted the connection or this link was already used, it might be a bug - please report it.\nTo connect, please ask your contact to create another connection link and check that you have a stable network connection." = "Hacsak az ismerőse nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt egyszer, lehet hogy ez egy hiba jelentse a problémát.\nA kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapcsolattartási hivatkozást, és ellenőrizze, hogy a hálózati kapcsolat stabil-e.";
/* No comment provided by engineer. */
"Unlink" = "Szétkapcsolás";
@@ -4682,7 +4668,7 @@
"Use for new connections" = "Alkalmazás új kapcsolatokhoz";
/* No comment provided by engineer. */
"Use from desktop" = "Használat számítógépl";
"Use from desktop" = "Társítás számítógéppel";
/* No comment provided by engineer. */
"Use iOS call interface" = "Az iOS hívófelület használata";
@@ -4754,10 +4740,10 @@
"via contact address link" = "kapcsolattartási cím-hivatkozáson keresztül";
/* chat list item description */
"via group link" = "csoport hivatkozáson keresztül";
"via group link" = "a csoporthivatkozáson keresztül";
/* chat list item description */
"via one-time link" = "egyszer használatos hivatkozáson keresztül";
"via one-time link" = "egy egyszer használatos hivatkozáson keresztül";
/* No comment provided by engineer. */
"via relay" = "átjátszón keresztül";
@@ -4934,7 +4920,7 @@
"You already have a chat profile with the same display name. Please choose another name." = "Már van egy csevegési profil ugyanezzel a megjelenített névvel. Válasszon egy másik nevet.";
/* No comment provided by engineer. */
"You are already connected to %@." = "Már kapcsolódva van hozzá: %@.";
"You are already connected to %@." = "Ön már kapcsolódva van ehhez: %@.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Már folyamatban van a kapcsolódás ehhez: %@.";
@@ -4958,7 +4944,7 @@
"You are already joining the group!\nRepeat join request?" = "Csatlakozás folyamatban!\nCsatlakozási kérés megismétlése?";
/* No comment provided by engineer. */
"You are connected to the server used to receive messages from this contact." = "Már kapcsolódott ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál.";
"You are connected to the server used to receive messages from this contact." = "Már kapcsolódott ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál.";
/* No comment provided by engineer. */
"you are invited to group" = "meghívást kapott a csoportba";
@@ -4973,7 +4959,7 @@
"you are observer" = "megfigyelő szerep";
/* snd group event chat item */
"you blocked %@" = "ön letiltotta %@-t";
"you blocked %@" = "ön letiltotta őt: %@";
/* No comment provided by engineer. */
"You can accept calls from lock screen, without device and app authentication." = "Hívásokat fogadhat a lezárási képernyőről, eszköz- és alkalmazáshitelesítés nélkül.";
@@ -4997,7 +4983,7 @@
"You can hide or mute a user profile - swipe it to the right." = "Elrejtheti vagy lenémíthatja a felhasználó profiljait - csúsztassa jobbra a profilt.";
/* No comment provided by engineer. */
"You can make it visible to your SimpleX contacts via Settings." = "Láthatóvá teheti SimpleX ismerősök számára a Beállításokban.";
"You can make it visible to your SimpleX contacts via Settings." = "Láthatóvá teheti a SimpleXbeli ismerősei számára a Beállításokban.";
/* notification body */
"You can now chat with %@" = "Mostantól küldhet üzeneteket %@ számára";
@@ -5111,7 +5097,7 @@
"You will be connected to group when the group host's device is online, please wait or check later!" = "Akkor lesz kapcsolódva a csoporthoz, amikor a csoport tulajdonosának eszköze online lesz, várjon, vagy ellenőrizze később!";
/* No comment provided by engineer. */
"You will be connected when group link host's device is online, please wait or check later!" = "Akkor lesz kapcsolódva, amikor a csoportos hivatkozás tulajdonosának eszköze online lesz, várjon, vagy ellenőrizze később!";
"You will be connected when group link host's device is online, please wait or check later!" = "Akkor lesz kapcsolódva, amikor a csoporthivatkozás tulajdonosának eszköze online lesz, várjon, vagy ellenőrizze később!";
/* No comment provided by engineer. */
"You will be connected when your connection request is accepted, please wait or check later!" = "Akkor lesz kapcsolódva, ha a kapcsolódási kérelme elfogadásra kerül, várjon, vagy ellenőrizze később!";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "A(z) **%@** nevű profilja megosztásra fog kerülni.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Profilja az eszközön van tárolva, és csak az ismerősökkel kerül megosztásra.\nA SimpleX kiszolgálók nem látjhatják profilját.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Profilja az eszközön van tárolva, és csak az ismerősökkel kerül megosztásra. A SimpleX kiszolgálók nem látjhatják profilját.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Profilja, ismerősei és az elküldött üzenetei az eszközön kerülnek tárolásra.";
@@ -5207,7 +5193,7 @@
"Your settings" = "Beállítások";
/* No comment provided by engineer. */
"Your SimpleX address" = "Az ön SimpleX címe";
"Your SimpleX address" = "Profil SimpleX címe";
/* No comment provided by engineer. */
"Your SMP servers" = "SMP kiszolgálók";
+5 -19
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Impossibile inviare un messaggio al membro";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Annulla";
/* No comment provided by engineer. */
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Nome completo (facoltativo)";
/* No comment provided by engineer. */
"Full name:" = "Nome completo:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Completamente decentralizzato: visibile solo ai membri.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Immagini del profilo";
/* No comment provided by engineer. */
"Profile name" = "Nome del profilo";
/* No comment provided by engineer. */
"Profile name:" = "Nome del profilo:";
/* No comment provided by engineer. */
"Profile password" = "Password del profilo";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Gruppi più sicuri";
/* chat item action */
/* alert button
chat item action */
"Save" = "Salva";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Salva (e avvisa i contatti)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Salva archivio";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Salva le impostazioni di accettazione automatica";
/* No comment provided by engineer. */
"Save group profile" = "Salva il profilo del gruppo";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Salvare i server?";
/* No comment provided by engineer. */
"Save settings?" = "Salvare le impostazioni?";
/* No comment provided by engineer. */
"Save welcome message?" = "Salvare il messaggio di benvenuto?";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "Verrà condiviso il tuo profilo **%@**.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Il tuo profilo è memorizzato sul tuo dispositivo e condiviso solo con i tuoi contatti.\nI server di SimpleX non possono vedere il tuo profilo.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Il tuo profilo è memorizzato sul tuo dispositivo e condiviso solo con i tuoi contatti. I server di SimpleX non possono vedere il tuo profilo.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Il tuo profilo, i contatti e i messaggi recapitati sono memorizzati sul tuo dispositivo.";
+5 -13
View File
@@ -619,7 +619,7 @@
/* No comment provided by engineer. */
"Can't invite contacts!" = "連絡先を招待できません!";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "中止";
/* feature offered item */
@@ -1594,9 +1594,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "フルネーム (任意)";
/* No comment provided by engineer. */
"Full name:" = "フルネーム:";
/* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "完全に再実装されました - バックグラウンドで動作します!";
@@ -2647,10 +2644,11 @@
/* No comment provided by engineer. */
"Run chat" = "チャット起動";
/* chat item action */
/* alert button
chat item action */
"Save" = "保存";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "保存(連絡先に通知)";
/* No comment provided by engineer. */
@@ -2665,9 +2663,6 @@
/* No comment provided by engineer. */
"Save archive" = "アーカイブを保存";
/* No comment provided by engineer. */
"Save auto-accept settings" = "自動受け入れ設定を保存する";
/* No comment provided by engineer. */
"Save group profile" = "グループプロフィールの保存";
@@ -2689,9 +2684,6 @@
/* No comment provided by engineer. */
"Save servers?" = "サーバを保存しますか?";
/* No comment provided by engineer. */
"Save settings?" = "設定を保存しますか?";
/* No comment provided by engineer. */
"Save welcome message?" = "ウェルカムメッセージを保存しますか?";
@@ -3566,7 +3558,7 @@
"Your profile **%@** will be shared." = "あなたのプロファイル **%@** が共有されます。";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "プロフィールはデバイスに保存され、連絡先とのみ共有されます。\nSimpleX サーバーはあなたのプロファイルを参照できません。";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "プロフィールはデバイスに保存され、連絡先とのみ共有されます。 SimpleX サーバーはあなたのプロファイルを参照できません。";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "あなたのプロフィール、連絡先、送信したメッセージがご自分の端末に保存されます。";
+5 -19
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Kan geen bericht sturen naar lid";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Annuleren";
/* No comment provided by engineer. */
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Volledige naam (optioneel)";
/* No comment provided by engineer. */
"Full name:" = "Volledige naam:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Volledig gedecentraliseerd alleen zichtbaar voor leden.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Profiel afbeeldingen";
/* No comment provided by engineer. */
"Profile name" = "Profielnaam";
/* No comment provided by engineer. */
"Profile name:" = "Profielnaam:";
/* No comment provided by engineer. */
"Profile password" = "Profiel wachtwoord";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Veiligere groepen";
/* chat item action */
/* alert button
chat item action */
"Save" = "Opslaan";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Bewaar (en informeer contacten)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Bewaar archief";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Sla instellingen voor automatisch accepteren op";
/* No comment provided by engineer. */
"Save group profile" = "Groep profiel opslaan";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Servers opslaan?";
/* No comment provided by engineer. */
"Save settings?" = "Instellingen opslaan?";
/* No comment provided by engineer. */
"Save welcome message?" = "Welkom bericht opslaan?";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "Uw profiel **%@** wordt gedeeld.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Uw profiel wordt op uw apparaat opgeslagen en alleen gedeeld met uw contacten.\nSimpleX servers kunnen uw profiel niet zien.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Uw profiel wordt op uw apparaat opgeslagen en alleen gedeeld met uw contacten. SimpleX servers kunnen uw profiel niet zien.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Uw profiel, contacten en afgeleverde berichten worden op uw apparaat opgeslagen.";
+5 -19
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Nie można wysłać wiadomości do członka";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Anuluj";
/* No comment provided by engineer. */
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Pełna nazwa (opcjonalna)";
/* No comment provided by engineer. */
"Full name:" = "Pełna nazwa:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "W pełni zdecentralizowana widoczna tylko dla członków.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Zdjęcia profilowe";
/* No comment provided by engineer. */
"Profile name" = "Nazwa profilu";
/* No comment provided by engineer. */
"Profile name:" = "Nazwa profilu:";
/* No comment provided by engineer. */
"Profile password" = "Hasło profilu";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Bezpieczniejsze grupy";
/* chat item action */
/* alert button
chat item action */
"Save" = "Zapisz";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Zapisz (i powiadom kontakty)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Zapisz archiwum";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Zapisz ustawienia automatycznej akceptacji";
/* No comment provided by engineer. */
"Save group profile" = "Zapisz profil grupy";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Zapisać serwery?";
/* No comment provided by engineer. */
"Save settings?" = "Zapisać ustawienia?";
/* No comment provided by engineer. */
"Save welcome message?" = "Zapisać wiadomość powitalną?";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "Twój profil **%@** zostanie udostępniony.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Twój profil jest przechowywany na urządzeniu i udostępniany tylko Twoim kontaktom.\nSerwery SimpleX nie mogą zobaczyć Twojego profilu.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Twój profil jest przechowywany na urządzeniu i udostępniany tylko Twoim kontaktom. Serwery SimpleX nie mogą zobaczyć Twojego profilu.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Twój profil, kontakty i dostarczone wiadomości są przechowywane na Twoim urządzeniu.";
+5 -19
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Не удается написать члену группы";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Отменить";
/* No comment provided by engineer. */
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Полное имя (не обязательно)";
/* No comment provided by engineer. */
"Full name:" = "Полное имя:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Группа полностью децентрализована – она видна только членам.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Картинки профилей";
/* No comment provided by engineer. */
"Profile name" = "Имя профиля";
/* No comment provided by engineer. */
"Profile name:" = "Имя профиля:";
/* No comment provided by engineer. */
"Profile password" = "Пароль профиля";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Более безопасные группы";
/* chat item action */
/* alert button
chat item action */
"Save" = "Сохранить";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Сохранить (и уведомить контакты)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Сохранить архив";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Сохранить настройки автоприема";
/* No comment provided by engineer. */
"Save group profile" = "Сохранить профиль группы";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Сохранить серверы?";
/* No comment provided by engineer. */
"Save settings?" = "Сохранить настройки?";
/* No comment provided by engineer. */
"Save welcome message?" = "Сохранить приветственное сообщение?";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "Будет отправлен Ваш профиль **%@**.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Ваш профиль хранится на Вашем устройстве и отправляется только Вашим контактам.\nSimpleX серверы не могут получить доступ к Вашему профилю.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Ваш профиль хранится на Вашем устройстве и отправляется только Вашим контактам. SimpleX серверы не могут получить доступ к Вашему профилю.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Ваш профиль, контакты и доставленные сообщения хранятся на Вашем устройстве.";
+5 -13
View File
@@ -523,7 +523,7 @@
/* No comment provided by engineer. */
"Can't invite contacts!" = "ไม่สามารถเชิญผู้ติดต่อได้!";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "ยกเลิก";
/* feature offered item */
@@ -1468,9 +1468,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "ชื่อเต็ม (ไม่บังคับ)";
/* No comment provided by engineer. */
"Full name:" = "ชื่อเต็ม:";
/* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "ดำเนินการใหม่อย่างสมบูรณ์ - ทำงานในพื้นหลัง!";
@@ -2503,10 +2500,11 @@
/* No comment provided by engineer. */
"Run chat" = "เรียกใช้แชท";
/* chat item action */
/* alert button
chat item action */
"Save" = "บันทึก";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "บันทึก (และแจ้งผู้ติดต่อ)";
/* No comment provided by engineer. */
@@ -2521,9 +2519,6 @@
/* No comment provided by engineer. */
"Save archive" = "บันทึกไฟล์เก็บถาวร";
/* No comment provided by engineer. */
"Save auto-accept settings" = "บันทึกการตั้งค่าการยอมรับอัตโนมัติ";
/* No comment provided by engineer. */
"Save group profile" = "บันทึกโปรไฟล์กลุ่ม";
@@ -2545,9 +2540,6 @@
/* No comment provided by engineer. */
"Save servers?" = "บันทึกเซิร์ฟเวอร์?";
/* No comment provided by engineer. */
"Save settings?" = "บันทึกการตั้งค่า?";
/* No comment provided by engineer. */
"Save welcome message?" = "บันทึกข้อความต้อนรับ?";
@@ -3413,7 +3405,7 @@
"Your privacy" = "ความเป็นส่วนตัวของคุณ";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "โปรไฟล์ของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณและแชร์กับผู้ติดต่อของคุณเท่านั้น\nเซิร์ฟเวอร์ SimpleX ไม่สามารถดูโปรไฟล์ของคุณได้";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "โปรไฟล์ของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณและแชร์กับผู้ติดต่อของคุณเท่านั้น เซิร์ฟเวอร์ SimpleX ไม่สามารถดูโปรไฟล์ของคุณได้";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "โปรไฟล์ รายชื่อผู้ติดต่อ และข้อความที่ส่งของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณ";
+5 -19
View File
@@ -703,7 +703,7 @@
/* No comment provided by engineer. */
"Can't invite contacts!" = "Kişiler davet edilemiyor!";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "İptal et";
/* No comment provided by engineer. */
@@ -1930,9 +1930,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Bütün isim (opsiyonel)";
/* No comment provided by engineer. */
"Full name:" = "Bütün isim:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Tamamiyle merkezi olmayan - sadece kişilere görünür.";
@@ -2991,12 +2988,6 @@
/* No comment provided by engineer. */
"Profile images" = "Profil resimleri";
/* No comment provided by engineer. */
"Profile name" = "Profil ismi";
/* No comment provided by engineer. */
"Profile name:" = "Profil ismi:";
/* No comment provided by engineer. */
"Profile password" = "Profil parolası";
@@ -3271,10 +3262,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Daha güvenli gruplar";
/* chat item action */
/* alert button
chat item action */
"Save" = "Kaydet";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Kaydet (ve kişilere bildir)";
/* No comment provided by engineer. */
@@ -3289,9 +3281,6 @@
/* No comment provided by engineer. */
"Save archive" = "Arşivi kaydet";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Otomatik kabul et ayarlarını kaydet";
/* No comment provided by engineer. */
"Save group profile" = "Grup profilini kaydet";
@@ -3313,9 +3302,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Sunucular kaydedilsin mi?";
/* No comment provided by engineer. */
"Save settings?" = "Ayarlar kaydedilsin mi?";
/* No comment provided by engineer. */
"Save welcome message?" = "Hoşgeldin mesajı kaydedilsin mi?";
@@ -4544,7 +4530,7 @@
"Your profile **%@** will be shared." = "Profiliniz **%@** paylaşılacaktır.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Profiliniz cihazınızda saklanır ve sadece kişilerinizle paylaşılır.\nSimpleX sunucuları profilinizi göremez.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Profiliniz cihazınızda saklanır ve sadece kişilerinizle paylaşılır. SimpleX sunucuları profilinizi göremez.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Profiliniz, kişileriniz ve gönderilmiş mesajlar cihazınızda saklanır.";
+5 -19
View File
@@ -781,7 +781,7 @@
/* No comment provided by engineer. */
"Can't message member" = "Не можу надіслати повідомлення користувачеві";
/* No comment provided by engineer. */
/* alert button */
"Cancel" = "Скасувати";
/* No comment provided by engineer. */
@@ -2203,9 +2203,6 @@
/* No comment provided by engineer. */
"Full name (optional)" = "Повне ім'я (необов'язково)";
/* No comment provided by engineer. */
"Full name:" = "Повне ім'я:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Повністю децентралізована - видима лише для учасників.";
@@ -3378,12 +3375,6 @@
/* No comment provided by engineer. */
"Profile images" = "Зображення профілю";
/* No comment provided by engineer. */
"Profile name" = "Назва профілю";
/* No comment provided by engineer. */
"Profile name:" = "Ім'я профілю:";
/* No comment provided by engineer. */
"Profile password" = "Пароль до профілю";
@@ -3715,10 +3706,11 @@
/* No comment provided by engineer. */
"Safer groups" = "Безпечніші групи";
/* chat item action */
/* alert button
chat item action */
"Save" = "Зберегти";
/* No comment provided by engineer. */
/* alert button */
"Save (and notify contacts)" = "Зберегти (і повідомити контактам)";
/* No comment provided by engineer. */
@@ -3736,9 +3728,6 @@
/* No comment provided by engineer. */
"Save archive" = "Зберегти архів";
/* No comment provided by engineer. */
"Save auto-accept settings" = "Зберегти налаштування автоприйому";
/* No comment provided by engineer. */
"Save group profile" = "Зберегти профіль групи";
@@ -3760,9 +3749,6 @@
/* No comment provided by engineer. */
"Save servers?" = "Зберегти сервери?";
/* No comment provided by engineer. */
"Save settings?" = "Зберегти налаштування?";
/* No comment provided by engineer. */
"Save welcome message?" = "Зберегти вітальне повідомлення?";
@@ -5189,7 +5175,7 @@
"Your profile **%@** will be shared." = "Ваш профіль **%@** буде опублікований.";
/* No comment provided by engineer. */
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Ваш профіль зберігається на вашому пристрої і доступний лише вашим контактам.\nСервери SimpleX не бачать ваш профіль.";
"Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." = "Ваш профіль зберігається на вашому пристрої і доступний лише вашим контактам. Сервери SimpleX не бачать ваш профіль.";
/* No comment provided by engineer. */
"Your profile, contacts and delivered messages are stored on your device." = "Ваш профіль, контакти та доставлені повідомлення зберігаються на вашому пристрої.";
File diff suppressed because it is too large Load Diff
@@ -7,6 +7,9 @@
/* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX 使用Face ID进行本地身份验证";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX 使用本地网络访问,允许通过同一网络上的桌面应用程序使用用户聊天配置文件。";
/* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX 需要麦克风访问权限才能进行音频和视频通话,以及录制语音消息。";
@@ -129,7 +129,22 @@ class AppPreferences {
val terminalAlwaysVisible = mkBoolPreference(SHARED_PREFS_TERMINAL_ALWAYS_VISIBLE, false)
val networkUseSocksProxy = mkBoolPreference(SHARED_PREFS_NETWORK_USE_SOCKS_PROXY, false)
val networkShowSubscriptionPercentage = mkBoolPreference(SHARED_PREFS_NETWORK_SHOW_SUBSCRIPTION_PERCENTAGE, false)
val networkProxyHostPort = mkStrPreference(SHARED_PREFS_NETWORK_PROXY_HOST_PORT, "localhost:9050")
private val _networkProxy = mkStrPreference(SHARED_PREFS_NETWORK_PROXY_HOST_PORT, json.encodeToString(NetworkProxy()))
val networkProxy: SharedPreference<NetworkProxy> = SharedPreference(
get = fun(): NetworkProxy {
val value = _networkProxy.get() ?: return NetworkProxy()
return try {
if (value.startsWith("{")) {
json.decodeFromString(value)
} else {
NetworkProxy(host = value.substringBefore(":").ifBlank { "localhost" }, port = value.substringAfter(":").toIntOrNull() ?: 9050)
}
} catch (e: Throwable) {
NetworkProxy()
}
},
set = fun(proxy: NetworkProxy) { _networkProxy.set(json.encodeToString(proxy)) }
)
private val _networkSessionMode = mkStrPreference(SHARED_PREFS_NETWORK_SESSION_MODE, TransportSessionMode.default.name)
val networkSessionMode: SharedPreference<TransportSessionMode> = SharedPreference(
get = fun(): TransportSessionMode {
@@ -531,7 +546,7 @@ object ChatController {
suspend fun startChatWithTemporaryDatabase(ctrl: ChatCtrl, netCfg: NetCfg): User? {
Log.d(TAG, "startChatWithTemporaryDatabase")
val migrationActiveUser = apiGetActiveUser(null, ctrl) ?: apiCreateActiveUser(null, Profile(displayName = "Temp", fullName = ""), ctrl = ctrl)
if (!apiSetNetworkConfig(netCfg, ctrl)) {
if (!apiSetNetworkConfig(netCfg, ctrl = ctrl)) {
Log.e(TAG, "Error setting network config, stopping migration")
return null
}
@@ -976,16 +991,18 @@ object ChatController {
throw Exception("failed to set chat item TTL: ${r.responseType} ${r.details}")
}
suspend fun apiSetNetworkConfig(cfg: NetCfg, ctrl: ChatCtrl? = null): Boolean {
suspend fun apiSetNetworkConfig(cfg: NetCfg, showAlertOnError: Boolean = true, ctrl: ChatCtrl? = null): Boolean {
val r = sendCmd(null, CC.APISetNetworkConfig(cfg), ctrl)
return when (r) {
is CR.CmdOk -> true
else -> {
Log.e(TAG, "apiSetNetworkConfig bad response: ${r.responseType} ${r.details}")
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.error_setting_network_config),
"${r.responseType}: ${r.details}"
)
if (showAlertOnError) {
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.error_setting_network_config),
"${r.responseType}: ${r.details}"
)
}
false
}
}
@@ -2186,15 +2203,16 @@ object ChatController {
}
}
}
is CR.ChatItemStatusUpdated -> {
val cInfo = r.chatItem.chatInfo
val cItem = r.chatItem.chatItem
if (!cItem.isDeletedContent && active(r.user)) {
withChats {
updateChatItem(cInfo, cItem, status = cItem.meta.itemStatus)
is CR.ChatItemsStatusesUpdated ->
r.chatItems.forEach { chatItem ->
val cInfo = chatItem.chatInfo
val cItem = chatItem.chatItem
if (!cItem.isDeletedContent && active(r.user)) {
withChats {
updateChatItem(cInfo, cItem, status = cItem.meta.itemStatus)
}
}
}
}
is CR.ChatItemUpdated ->
chatItemSimpleUpdate(rhId, r.user, r.chatItem)
is CR.ChatItemReaction -> {
@@ -2776,13 +2794,9 @@ object ChatController {
fun getNetCfg(): NetCfg {
val useSocksProxy = appPrefs.networkUseSocksProxy.get()
val proxyHostPort = appPrefs.networkProxyHostPort.get()
val networkProxy = appPrefs.networkProxy.get()
val socksProxy = if (useSocksProxy) {
if (proxyHostPort?.startsWith("localhost:") == true) {
proxyHostPort.removePrefix("localhost")
} else {
proxyHostPort ?: ":9050"
}
networkProxy.toProxyString()
} else {
null
}
@@ -2824,7 +2838,7 @@ object ChatController {
}
/**
* [AppPreferences.networkProxyHostPort] is not changed here, use appPrefs to set it
* [AppPreferences.networkProxy] is not changed here, use appPrefs to set it
* */
fun setNetCfg(cfg: NetCfg) {
appPrefs.networkUseSocksProxy.set(cfg.useSocksProxy)
@@ -3568,13 +3582,8 @@ data class NetCfg(
val useSocksProxy: Boolean get() = socksProxy != null
val enableKeepAlive: Boolean get() = tcpKeepAlive != null
fun withHostPort(hostPort: String?, default: String? = ":9050"): NetCfg {
val socksProxy = if (hostPort?.startsWith("localhost:") == true) {
hostPort.removePrefix("localhost")
} else {
hostPort ?: default
}
return copy(socksProxy = socksProxy)
fun withProxy(proxy: NetworkProxy?, default: String? = ":9050"): NetCfg {
return copy(socksProxy = proxy?.toProxyString() ?: default)
}
companion object {
@@ -3616,6 +3625,39 @@ data class NetCfg(
}
}
@Serializable
data class NetworkProxy(
val username: String = "",
val password: String = "",
val auth: NetworkProxyAuth = NetworkProxyAuth.ISOLATE,
val host: String = "localhost",
val port: Int = 9050
) {
fun toProxyString(): String {
var res = ""
if (auth == NetworkProxyAuth.USERNAME && (username.isNotBlank() || password.isNotBlank())) {
res += username.trim() + ":" + password.trim() + "@"
} else if (auth == NetworkProxyAuth.USERNAME) {
res += "@"
}
if (host != "localhost") {
res += if (host.contains(':')) "[${host.trim(' ', '[', ']')}]" else host.trim()
}
if (port != 9050 || res.isEmpty()) {
res += ":$port"
}
return res
}
}
@Serializable
enum class NetworkProxyAuth {
@SerialName("isolate")
ISOLATE,
@SerialName("username")
USERNAME,
}
enum class OnionHosts {
NEVER, PREFER, REQUIRED
}
@@ -4831,7 +4873,7 @@ sealed class CR {
@Serializable @SerialName("groupEmpty") class GroupEmpty(val user: UserRef, val group: GroupInfo): CR()
@Serializable @SerialName("userContactLinkSubscribed") class UserContactLinkSubscribed: CR()
@Serializable @SerialName("newChatItems") class NewChatItems(val user: UserRef, val chatItems: List<AChatItem>): CR()
@Serializable @SerialName("chatItemStatusUpdated") class ChatItemStatusUpdated(val user: UserRef, val chatItem: AChatItem): CR()
@Serializable @SerialName("chatItemsStatusesUpdated") class ChatItemsStatusesUpdated(val user: UserRef, val chatItems: List<AChatItem>): CR()
@Serializable @SerialName("chatItemUpdated") class ChatItemUpdated(val user: UserRef, val chatItem: AChatItem): CR()
@Serializable @SerialName("chatItemNotChanged") class ChatItemNotChanged(val user: UserRef, val chatItem: AChatItem): CR()
@Serializable @SerialName("chatItemReaction") class ChatItemReaction(val user: UserRef, val added: Boolean, val reaction: ACIReaction): CR()
@@ -5008,7 +5050,7 @@ sealed class CR {
is GroupEmpty -> "groupEmpty"
is UserContactLinkSubscribed -> "userContactLinkSubscribed"
is NewChatItems -> "newChatItems"
is ChatItemStatusUpdated -> "chatItemStatusUpdated"
is ChatItemsStatusesUpdated -> "chatItemsStatusesUpdated"
is ChatItemUpdated -> "chatItemUpdated"
is ChatItemNotChanged -> "chatItemNotChanged"
is ChatItemReaction -> "chatItemReaction"
@@ -5177,7 +5219,7 @@ sealed class CR {
is GroupEmpty -> withUser(user, json.encodeToString(group))
is UserContactLinkSubscribed -> noDetails()
is NewChatItems -> withUser(user, chatItems.joinToString("\n") { json.encodeToString(it) })
is ChatItemStatusUpdated -> withUser(user, json.encodeToString(chatItem))
is ChatItemsStatusesUpdated -> withUser(user, chatItems.joinToString("\n") { json.encodeToString(it) })
is ChatItemUpdated -> withUser(user, json.encodeToString(chatItem))
is ChatItemNotChanged -> withUser(user, json.encodeToString(chatItem))
is ChatItemReaction -> withUser(user, "added: $added\n${json.encodeToString(reaction)}")
@@ -6183,6 +6225,7 @@ enum class NotificationsMode() {
@Serializable
data class AppSettings(
var networkConfig: NetCfg? = null,
var networkProxy: NetworkProxy? = null,
var privacyEncryptLocalFiles: Boolean? = null,
var privacyAskToApproveRelays: Boolean? = null,
var privacyAcceptImages: Boolean? = null,
@@ -6214,6 +6257,7 @@ data class AppSettings(
val empty = AppSettings()
val def = defaults
if (networkConfig != def.networkConfig) { empty.networkConfig = networkConfig }
if (networkProxy != def.networkProxy) { empty.networkProxy = networkProxy }
if (privacyEncryptLocalFiles != def.privacyEncryptLocalFiles) { empty.privacyEncryptLocalFiles = privacyEncryptLocalFiles }
if (privacyAskToApproveRelays != def.privacyAskToApproveRelays) { empty.privacyAskToApproveRelays = privacyAskToApproveRelays }
if (privacyAcceptImages != def.privacyAcceptImages) { empty.privacyAcceptImages = privacyAcceptImages }
@@ -6251,8 +6295,12 @@ data class AppSettings(
if (net.hostMode == HostMode.Onion) {
net = net.copy(hostMode = HostMode.Public, requiredHostMode = true)
}
if (net.socksProxy != null) {
net = net.copy(socksProxy = networkProxy?.toProxyString())
}
setNetCfg(net)
}
networkProxy?.let { def.networkProxy.set(it) }
privacyEncryptLocalFiles?.let { def.privacyEncryptLocalFiles.set(it) }
privacyAskToApproveRelays?.let { def.privacyAskToApproveRelays.set(it) }
privacyAcceptImages?.let { def.privacyAcceptImages.set(it) }
@@ -6285,6 +6333,7 @@ data class AppSettings(
val defaults: AppSettings
get() = AppSettings(
networkConfig = NetCfg.defaults,
networkProxy = null,
privacyEncryptLocalFiles = true,
privacyAskToApproveRelays = true,
privacyAcceptImages = true,
@@ -6318,6 +6367,7 @@ data class AppSettings(
val def = appPreferences
return defaults.copy(
networkConfig = getNetCfg(),
networkProxy = def.networkProxy.get(),
privacyEncryptLocalFiles = def.privacyEncryptLocalFiles.get(),
privacyAskToApproveRelays = def.privacyAskToApproveRelays.get(),
privacyAcceptImages = def.privacyAcceptImages.get(),
@@ -15,10 +15,11 @@ fun activeCallWaitDeliveryReceipt(scope: CoroutineScope) = scope.launch(Dispatch
if (call == null || call.callState > CallState.InvitationSent) break
val msg = apiResp.resp
if (apiResp.remoteHostId == call.remoteHostId &&
msg is CR.ChatItemStatusUpdated &&
msg.chatItem.chatInfo.id == call.contact.id &&
msg.chatItem.chatItem.content is CIContent.SndCall &&
msg.chatItem.chatItem.meta.itemStatus is CIStatus.SndRcvd) {
msg is CR.ChatItemsStatusesUpdated &&
msg.chatItems.any {
it.chatInfo.id == call.contact.id && it.chatItem.content is CIContent.SndCall && it.chatItem.meta.itemStatus is CIStatus.SndRcvd
}
) {
CallSoundsPlayer.startInCallSound(scope)
break
}
@@ -444,8 +444,8 @@ fun ChatView(staleChatId: State<String?>, onComposed: suspend (chatId: String) -
for (apiResp in controller.messagesChannel) {
val msg = apiResp.resp
if (apiResp.remoteHostId == chatRh &&
msg is CR.ChatItemStatusUpdated &&
msg.chatItem.chatItem.id == cItem.id
msg is CR.ChatItemsStatusesUpdated &&
msg.chatItems.any { it.chatItem.id == cItem.id }
) {
ciInfo = loadChatItemInfo() ?: return@withContext
initialCiInfo = ciInfo
@@ -252,7 +252,7 @@ private fun ActiveUserSection(
}
UserPickerOptionRow(
painterResource(MR.images.ic_qr_code),
if (chatModel.userAddress.value != null) generalGetString(MR.strings.your_public_contact_address) else generalGetString(MR.strings.create_public_contact_address),
if (chatModel.userAddress.value != null) generalGetString(MR.strings.your_simplex_contact_address) else generalGetString(MR.strings.create_simplex_address),
showCustomModal { it, close -> UserAddressView(it, shareViaProfile = it.currentUser.value!!.addressShared, close = close) }, disabled = stopped
)
UserPickerOptionRow(
@@ -4,7 +4,6 @@ import SectionBottomSpacer
import SectionSpacer
import SectionTextFooter
import SectionView
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.runtime.*
@@ -17,6 +16,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import chat.simplex.common.model.*
import chat.simplex.common.model.ChatController.appPrefs
import chat.simplex.common.model.ChatController.getNetCfg
import chat.simplex.common.model.ChatController.startChat
import chat.simplex.common.model.ChatController.startChatWithTemporaryDatabase
@@ -38,7 +38,6 @@ import kotlinx.serialization.*
import java.io.File
import java.net.URLEncoder
import kotlin.math.max
import kotlin.math.sqrt
@Serializable
data class MigrationFileLinkData(
@@ -46,16 +45,20 @@ data class MigrationFileLinkData(
) {
@Serializable
data class NetworkConfig(
val socksProxy: String?,
// Legacy. Remove in 2025
@SerialName("socksProxy")
val legacySocksProxy: String?,
val networkProxy: NetworkProxy?,
val hostMode: HostMode?,
val requiredHostMode: Boolean?
) {
fun hasOnionConfigured(): Boolean = socksProxy != null || hostMode == HostMode.Onion
fun hasProxyConfigured(): Boolean = networkProxy != null || legacySocksProxy != null || hostMode == HostMode.Onion
fun transformToPlatformSupported(): NetworkConfig {
return if (hostMode != null && requiredHostMode != null) {
NetworkConfig(
socksProxy = if (hostMode == HostMode.Onion) socksProxy ?: NetCfg.proxyDefaults.socksProxy else socksProxy,
legacySocksProxy = if (hostMode == HostMode.Onion) legacySocksProxy ?: NetCfg.proxyDefaults.socksProxy else legacySocksProxy,
networkProxy = if (hostMode == HostMode.Onion) networkProxy ?: NetworkProxy() else networkProxy,
hostMode = if (hostMode == HostMode.Onion) HostMode.OnionViaSocks else hostMode,
requiredHostMode = requiredHostMode
)
@@ -570,7 +573,8 @@ private fun MutableState<MigrationFromState>.startUploading(
val cfg = getNetCfg()
val data = MigrationFileLinkData(
networkConfig = MigrationFileLinkData.NetworkConfig(
socksProxy = cfg.socksProxy,
legacySocksProxy = null,
networkProxy = if (appPrefs.networkUseSocksProxy.get()) appPrefs.networkProxy.get() else null,
hostMode = cfg.hostMode,
requiredHostMode = cfg.requiredHostMode
)
@@ -5,16 +5,15 @@ import SectionItemView
import SectionSpacer
import SectionTextFooter
import SectionView
import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalClipboardManager
import chat.simplex.common.model.*
import chat.simplex.common.model.AppPreferences.Companion.SHARED_PREFS_MIGRATION_TO_STAGE
import chat.simplex.common.model.ChatController.appPrefs
import chat.simplex.common.model.ChatController.getNetCfg
import chat.simplex.common.model.ChatController.startChat
import chat.simplex.common.model.ChatCtrl
@@ -41,10 +40,10 @@ import kotlin.math.max
@Serializable
sealed class MigrationToDeviceState {
@Serializable @SerialName("onion") data class Onion(val link: String, val socksProxy: String?, val hostMode: HostMode, val requiredHostMode: Boolean): MigrationToDeviceState()
@Serializable @SerialName("downloadProgress") data class DownloadProgress(val link: String, val archiveName: String, val netCfg: NetCfg): MigrationToDeviceState()
@Serializable @SerialName("archiveImport") data class ArchiveImport(val archiveName: String, val netCfg: NetCfg): MigrationToDeviceState()
@Serializable @SerialName("passphrase") data class Passphrase(val netCfg: NetCfg): MigrationToDeviceState()
@Serializable @SerialName("onion") data class Onion(val link: String, val socksProxy: String?, val networkProxy: NetworkProxy?, val hostMode: HostMode, val requiredHostMode: Boolean): MigrationToDeviceState()
@Serializable @SerialName("downloadProgress") data class DownloadProgress(val link: String, val archiveName: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToDeviceState()
@Serializable @SerialName("archiveImport") data class ArchiveImport(val archiveName: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToDeviceState()
@Serializable @SerialName("passphrase") data class Passphrase(val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToDeviceState()
companion object {
// Here we check whether it's needed to show migration process after app restart or not
@@ -66,10 +65,10 @@ sealed class MigrationToDeviceState {
null
} else {
val archivePath = File(getMigrationTempFilesDirectory(), state.archiveName)
MigrationToState.ArchiveImportFailed(archivePath.absolutePath, state.netCfg)
MigrationToState.ArchiveImportFailed(archivePath.absolutePath, state.netCfg, state.networkProxy)
}
}
is Passphrase -> MigrationToState.Passphrase("", state.netCfg)
is Passphrase -> MigrationToState.Passphrase("", state.netCfg, state.networkProxy)
}
if (initial == null) {
settings.remove(SHARED_PREFS_MIGRATION_TO_STAGE)
@@ -91,16 +90,24 @@ sealed class MigrationToDeviceState {
@Serializable
sealed class MigrationToState {
@Serializable object PasteOrScanLink: MigrationToState()
@Serializable data class Onion(val link: String, val socksProxy: String?, val hostMode: HostMode, val requiredHostMode: Boolean): MigrationToState()
@Serializable data class DatabaseInit(val link: String, val netCfg: NetCfg): MigrationToState()
@Serializable data class LinkDownloading(val link: String, val ctrl: ChatCtrl, val user: User, val archivePath: String, val netCfg: NetCfg): MigrationToState()
@Serializable data class DownloadProgress(val downloadedBytes: Long, val totalBytes: Long, val fileId: Long, val link: String, val archivePath: String, val netCfg: NetCfg, val ctrl: ChatCtrl?): MigrationToState()
@Serializable data class DownloadFailed(val totalBytes: Long, val link: String, val archivePath: String, val netCfg: NetCfg): MigrationToState()
@Serializable data class ArchiveImport(val archivePath: String, val netCfg: NetCfg): MigrationToState()
@Serializable data class ArchiveImportFailed(val archivePath: String, val netCfg: NetCfg): MigrationToState()
@Serializable data class Passphrase(val passphrase: String, val netCfg: NetCfg): MigrationToState()
@Serializable data class MigrationConfirmation(val status: DBMigrationResult, val passphrase: String, val useKeychain: Boolean, val netCfg: NetCfg): MigrationToState()
@Serializable data class Migration(val passphrase: String, val confirmation: chat.simplex.common.views.helpers.MigrationConfirmation, val useKeychain: Boolean, val netCfg: NetCfg): MigrationToState()
@Serializable data class Onion(
val link: String,
// Legacy, remove in 2025
@SerialName("socksProxy")
val legacySocksProxy: String?,
val networkProxy: NetworkProxy?,
val hostMode: HostMode,
val requiredHostMode: Boolean
): MigrationToState()
@Serializable data class DatabaseInit(val link: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
@Serializable data class LinkDownloading(val link: String, val ctrl: ChatCtrl, val user: User, val archivePath: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
@Serializable data class DownloadProgress(val downloadedBytes: Long, val totalBytes: Long, val fileId: Long, val link: String, val archivePath: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?, val ctrl: ChatCtrl?): MigrationToState()
@Serializable data class DownloadFailed(val totalBytes: Long, val link: String, val archivePath: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
@Serializable data class ArchiveImport(val archivePath: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
@Serializable data class ArchiveImportFailed(val archivePath: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
@Serializable data class Passphrase(val passphrase: String, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
@Serializable data class MigrationConfirmation(val status: DBMigrationResult, val passphrase: String, val useKeychain: Boolean, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
@Serializable data class Migration(val passphrase: String, val confirmation: chat.simplex.common.views.helpers.MigrationConfirmation, val useKeychain: Boolean, val netCfg: NetCfg, val networkProxy: NetworkProxy?): MigrationToState()
}
private var MutableState<MigrationToState?>.state: MigrationToState?
@@ -175,16 +182,16 @@ private fun ModalData.SectionByState(
when (val s = migrationState.value) {
null -> {}
is MigrationToState.PasteOrScanLink -> migrationState.PasteOrScanLinkView()
is MigrationToState.Onion -> OnionView(s.link, s.socksProxy, s.hostMode, s.requiredHostMode, migrationState)
is MigrationToState.DatabaseInit -> migrationState.DatabaseInitView(s.link, tempDatabaseFile, s.netCfg)
is MigrationToState.LinkDownloading -> migrationState.LinkDownloadingView(s.link, s.ctrl, s.user, s.archivePath, tempDatabaseFile, chatReceiver, s.netCfg)
is MigrationToState.Onion -> OnionView(s.link, s.legacySocksProxy, s.networkProxy, s.hostMode, s.requiredHostMode, migrationState)
is MigrationToState.DatabaseInit -> migrationState.DatabaseInitView(s.link, tempDatabaseFile, s.netCfg, s.networkProxy)
is MigrationToState.LinkDownloading -> migrationState.LinkDownloadingView(s.link, s.ctrl, s.user, s.archivePath, tempDatabaseFile, chatReceiver, s.netCfg, s.networkProxy)
is MigrationToState.DownloadProgress -> DownloadProgressView(s.downloadedBytes, totalBytes = s.totalBytes)
is MigrationToState.DownloadFailed -> migrationState.DownloadFailedView(s.link, chatReceiver.value, s.archivePath, s.netCfg)
is MigrationToState.ArchiveImport -> migrationState.ArchiveImportView(s.archivePath, s.netCfg)
is MigrationToState.ArchiveImportFailed -> migrationState.ArchiveImportFailedView(s.archivePath, s.netCfg)
is MigrationToState.Passphrase -> migrationState.PassphraseEnteringView(currentKey = s.passphrase, s.netCfg)
is MigrationToState.MigrationConfirmation -> migrationState.MigrationConfirmationView(s.status, s.passphrase, s.useKeychain, s.netCfg)
is MigrationToState.Migration -> MigrationView(s.passphrase, s.confirmation, s.useKeychain, s.netCfg, close)
is MigrationToState.DownloadFailed -> migrationState.DownloadFailedView(s.link, chatReceiver.value, s.archivePath, s.netCfg, s.networkProxy)
is MigrationToState.ArchiveImport -> migrationState.ArchiveImportView(s.archivePath, s.netCfg, s.networkProxy)
is MigrationToState.ArchiveImportFailed -> migrationState.ArchiveImportFailedView(s.archivePath, s.netCfg, s.networkProxy)
is MigrationToState.Passphrase -> migrationState.PassphraseEnteringView(currentKey = s.passphrase, s.netCfg, s.networkProxy)
is MigrationToState.MigrationConfirmation -> migrationState.MigrationConfirmationView(s.status, s.passphrase, s.useKeychain, s.netCfg, s.networkProxy)
is MigrationToState.Migration -> MigrationView(s.passphrase, s.confirmation, s.useKeychain, s.netCfg, s.networkProxy, close)
}
}
@@ -216,21 +223,24 @@ private fun MutableState<MigrationToState?>.PasteLinkView() {
}
@Composable
private fun ModalData.OnionView(link: String, socksProxy: String?, hostMode: HostMode, requiredHostMode: Boolean, state: MutableState<MigrationToState?>) {
private fun ModalData.OnionView(link: String, legacyLinkSocksProxy: String?, linkNetworkProxy: NetworkProxy?, hostMode: HostMode, requiredHostMode: Boolean, state: MutableState<MigrationToState?>) {
val onionHosts = remember { stateGetOrPut("onionHosts") {
getNetCfg().copy(socksProxy = socksProxy, hostMode = hostMode, requiredHostMode = requiredHostMode).onionHosts
getNetCfg().copy(socksProxy = linkNetworkProxy?.toProxyString() ?: legacyLinkSocksProxy, hostMode = hostMode, requiredHostMode = requiredHostMode).onionHosts
} }
val networkUseSocksProxy = remember { stateGetOrPut("networkUseSocksProxy") { socksProxy != null } }
val networkUseSocksProxy = remember { stateGetOrPut("networkUseSocksProxy") { linkNetworkProxy != null || legacyLinkSocksProxy != null } }
val sessionMode = remember { stateGetOrPut("sessionMode") { TransportSessionMode.User} }
val networkProxyHostPort = remember { stateGetOrPut("networkHostProxyPort") {
var proxy = (socksProxy ?: chatModel.controller.appPrefs.networkProxyHostPort.get())
if (proxy?.startsWith(":") == true) proxy = "localhost$proxy"
proxy
}
val networkProxy = remember { stateGetOrPut("networkProxy") {
linkNetworkProxy
?: if (legacyLinkSocksProxy != null) {
NetworkProxy(host = legacyLinkSocksProxy.substringBefore(":").ifBlank { "localhost" }, port = legacyLinkSocksProxy.substringAfter(":").toIntOrNull() ?: 9050)
} else {
appPrefs.networkProxy.get()
}
}
}
val netCfg = rememberSaveable(stateSaver = serializableSaver()) {
mutableStateOf(getNetCfg().withOnionHosts(onionHosts.value).copy(socksProxy = socksProxy, sessionMode = sessionMode.value))
mutableStateOf(getNetCfg().withOnionHosts(onionHosts.value).copy(socksProxy = linkNetworkProxy?.toProxyString() ?: legacyLinkSocksProxy, sessionMode = sessionMode.value))
}
SectionView(stringResource(MR.strings.migrate_to_device_confirm_network_settings).uppercase()) {
@@ -241,12 +251,12 @@ private fun ModalData.OnionView(link: String, socksProxy: String?, hostMode: Hos
click = {
val updated = netCfg.value
.withOnionHosts(onionHosts.value)
.withHostPort(if (networkUseSocksProxy.value) networkProxyHostPort.value else null, null)
.withProxy(if (networkUseSocksProxy.value) networkProxy.value else null, null)
.copy(
sessionMode = sessionMode.value
)
withBGApi {
state.value = MigrationToState.DatabaseInit(link, updated)
state.value = MigrationToState.DatabaseInit(link, updated, if (networkUseSocksProxy.value) networkProxy.value else null)
}
}
){}
@@ -255,8 +265,8 @@ private fun ModalData.OnionView(link: String, socksProxy: String?, hostMode: Hos
SectionSpacer()
val networkProxyHostPortPref = SharedPreference(get = { networkProxyHostPort.value }, set = {
networkProxyHostPort.value = it
val networkProxyPref = SharedPreference(get = { networkProxy.value }, set = {
networkProxy.value = it
})
SectionView(stringResource(MR.strings.network_settings_title).uppercase()) {
OnionRelatedLayout(
@@ -264,13 +274,10 @@ private fun ModalData.OnionView(link: String, socksProxy: String?, hostMode: Hos
networkUseSocksProxy,
onionHosts,
sessionMode,
networkProxyHostPortPref,
networkProxyPref,
toggleSocksProxy = { enable ->
networkUseSocksProxy.value = enable
},
useOnion = {
onionHosts.value = it
},
updateSessionMode = {
sessionMode.value = it
}
@@ -279,13 +286,13 @@ private fun ModalData.OnionView(link: String, socksProxy: String?, hostMode: Hos
}
@Composable
private fun MutableState<MigrationToState?>.DatabaseInitView(link: String, tempDatabaseFile: File, netCfg: NetCfg) {
private fun MutableState<MigrationToState?>.DatabaseInitView(link: String, tempDatabaseFile: File, netCfg: NetCfg, networkProxy: NetworkProxy?) {
Box {
SectionView(stringResource(MR.strings.migrate_to_device_database_init).uppercase()) {}
ProgressView()
}
LaunchedEffect(Unit) {
prepareDatabase(link, tempDatabaseFile, netCfg)
prepareDatabase(link, tempDatabaseFile, netCfg, networkProxy)
}
}
@@ -297,14 +304,15 @@ private fun MutableState<MigrationToState?>.LinkDownloadingView(
archivePath: String,
tempDatabaseFile: File,
chatReceiver: MutableState<MigrationToChatReceiver?>,
netCfg: NetCfg
netCfg: NetCfg,
networkProxy: NetworkProxy?
) {
Box {
SectionView(stringResource(MR.strings.migrate_to_device_downloading_details).uppercase()) {}
ProgressView()
}
LaunchedEffect(Unit) {
startDownloading(0, ctrl, user, tempDatabaseFile, chatReceiver, link, archivePath, netCfg)
startDownloading(0, ctrl, user, tempDatabaseFile, chatReceiver, link, archivePath, netCfg, networkProxy)
}
}
@@ -319,14 +327,14 @@ private fun DownloadProgressView(downloadedBytes: Long, totalBytes: Long) {
}
@Composable
private fun MutableState<MigrationToState?>.DownloadFailedView(link: String, chatReceiver: MigrationToChatReceiver?, archivePath: String, netCfg: NetCfg) {
private fun MutableState<MigrationToState?>.DownloadFailedView(link: String, chatReceiver: MigrationToChatReceiver?, archivePath: String, netCfg: NetCfg, networkProxy: NetworkProxy?) {
SectionView(stringResource(MR.strings.migrate_to_device_download_failed).uppercase()) {
SettingsActionItemWithContent(
icon = painterResource(MR.images.ic_download),
text = stringResource(MR.strings.migrate_to_device_repeat_download),
textColor = MaterialTheme.colors.primary,
click = {
state = MigrationToState.DatabaseInit(link, netCfg)
state = MigrationToState.DatabaseInit(link, netCfg, networkProxy)
}
) {}
SectionTextFooter(stringResource(MR.strings.migrate_to_device_try_again))
@@ -339,25 +347,25 @@ private fun MutableState<MigrationToState?>.DownloadFailedView(link: String, cha
}
@Composable
private fun MutableState<MigrationToState?>.ArchiveImportView(archivePath: String, netCfg: NetCfg) {
private fun MutableState<MigrationToState?>.ArchiveImportView(archivePath: String, netCfg: NetCfg, networkProxy: NetworkProxy?) {
Box {
SectionView(stringResource(MR.strings.migrate_to_device_importing_archive).uppercase()) {}
ProgressView()
}
LaunchedEffect(Unit) {
importArchive(archivePath, netCfg)
importArchive(archivePath, netCfg, networkProxy)
}
}
@Composable
private fun MutableState<MigrationToState?>.ArchiveImportFailedView(archivePath: String, netCfg: NetCfg) {
private fun MutableState<MigrationToState?>.ArchiveImportFailedView(archivePath: String, netCfg: NetCfg, networkProxy: NetworkProxy?) {
SectionView(stringResource(MR.strings.migrate_to_device_import_failed).uppercase()) {
SettingsActionItemWithContent(
icon = painterResource(MR.images.ic_download),
text = stringResource(MR.strings.migrate_to_device_repeat_import),
textColor = MaterialTheme.colors.primary,
click = {
state = MigrationToState.ArchiveImport(archivePath, netCfg)
state = MigrationToState.ArchiveImport(archivePath, netCfg, networkProxy)
}
) {}
SectionTextFooter(stringResource(MR.strings.migrate_to_device_try_again))
@@ -365,7 +373,7 @@ private fun MutableState<MigrationToState?>.ArchiveImportFailedView(archivePath:
}
@Composable
private fun MutableState<MigrationToState?>.PassphraseEnteringView(currentKey: String, netCfg: NetCfg) {
private fun MutableState<MigrationToState?>.PassphraseEnteringView(currentKey: String, netCfg: NetCfg, networkProxy: NetworkProxy?) {
val currentKey = rememberSaveable { mutableStateOf(currentKey) }
val verifyingPassphrase = rememberSaveable { mutableStateOf(false) }
val useKeychain = rememberSaveable { mutableStateOf(appPreferences.storeDBPassphrase.get()) }
@@ -395,9 +403,9 @@ private fun MutableState<MigrationToState?>.PassphraseEnteringView(currentKey: S
val (status, _) = chatInitTemporaryDatabase(dbAbsolutePrefixPath, key = currentKey.value, confirmation = MigrationConfirmation.YesUp)
val success = status == DBMigrationResult.OK || status == DBMigrationResult.InvalidConfirmation
if (success) {
state = MigrationToState.Migration(currentKey.value, MigrationConfirmation.YesUp, useKeychain.value, netCfg)
state = MigrationToState.Migration(currentKey.value, MigrationConfirmation.YesUp, useKeychain.value, netCfg, networkProxy)
} else if (status is DBMigrationResult.ErrorMigration) {
state = MigrationToState.MigrationConfirmation(status, currentKey.value, useKeychain.value, netCfg)
state = MigrationToState.MigrationConfirmation(status, currentKey.value, useKeychain.value, netCfg, networkProxy)
} else {
showErrorOnMigrationIfNeeded(status)
}
@@ -414,7 +422,7 @@ private fun MutableState<MigrationToState?>.PassphraseEnteringView(currentKey: S
}
@Composable
private fun MutableState<MigrationToState?>.MigrationConfirmationView(status: DBMigrationResult, passphrase: String, useKeychain: Boolean, netCfg: NetCfg) {
private fun MutableState<MigrationToState?>.MigrationConfirmationView(status: DBMigrationResult, passphrase: String, useKeychain: Boolean, netCfg: NetCfg, networkProxy: NetworkProxy?) {
data class Tuple4<A,B,C,D>(val a: A, val b: B, val c: C, val d: D)
val (header: String, button: String?, footer: String, confirmation: MigrationConfirmation?) = when (status) {
is DBMigrationResult.ErrorMigration -> when (val err = status.migrationError) {
@@ -449,7 +457,7 @@ private fun MutableState<MigrationToState?>.MigrationConfirmationView(status: DB
text = button,
textColor = MaterialTheme.colors.primary,
click = {
state = MigrationToState.Migration(passphrase, confirmation, useKeychain, netCfg)
state = MigrationToState.Migration(passphrase, confirmation, useKeychain, netCfg, networkProxy)
}
) {}
}
@@ -458,13 +466,13 @@ private fun MutableState<MigrationToState?>.MigrationConfirmationView(status: DB
}
@Composable
private fun MigrationView(passphrase: String, confirmation: MigrationConfirmation, useKeychain: Boolean, netCfg: NetCfg, close: () -> Unit) {
private fun MigrationView(passphrase: String, confirmation: MigrationConfirmation, useKeychain: Boolean, netCfg: NetCfg, networkProxy: NetworkProxy?, close: () -> Unit) {
Box {
SectionView(stringResource(MR.strings.migrate_to_device_migrating).uppercase()) {}
ProgressView()
}
LaunchedEffect(Unit) {
startChat(passphrase, confirmation, useKeychain, netCfg, close)
startChat(passphrase, confirmation, useKeychain, netCfg, networkProxy, close)
}
}
@@ -476,19 +484,21 @@ private fun ProgressView() {
private suspend fun MutableState<MigrationToState?>.checkUserLink(link: String) {
if (strHasSimplexFileLink(link.trim())) {
val data = MigrationFileLinkData.readFromLink(link)
val hasOnionConfigured = data?.networkConfig?.hasOnionConfigured() ?: false
val hasProxyConfigured = data?.networkConfig?.hasProxyConfigured() ?: false
val networkConfig = data?.networkConfig?.transformToPlatformSupported()
// If any of iOS or Android had onion enabled, show onion screen
if (hasOnionConfigured && networkConfig?.hostMode != null && networkConfig.requiredHostMode != null) {
state = MigrationToState.Onion(link.trim(), networkConfig.socksProxy, networkConfig.hostMode, networkConfig.requiredHostMode)
MigrationToDeviceState.save(MigrationToDeviceState.Onion(link.trim(), networkConfig.socksProxy, networkConfig.hostMode, networkConfig.requiredHostMode))
if (hasProxyConfigured && networkConfig?.hostMode != null && networkConfig.requiredHostMode != null) {
state = MigrationToState.Onion(link.trim(), networkConfig.legacySocksProxy, networkConfig.networkProxy, networkConfig.hostMode, networkConfig.requiredHostMode)
MigrationToDeviceState.save(MigrationToDeviceState.Onion(link.trim(), networkConfig.legacySocksProxy, networkConfig.networkProxy, networkConfig.hostMode, networkConfig.requiredHostMode))
} else {
val current = getNetCfg()
state = MigrationToState.DatabaseInit(link.trim(), current.copy(
socksProxy = networkConfig?.socksProxy,
socksProxy = null,
hostMode = networkConfig?.hostMode ?: current.hostMode,
requiredHostMode = networkConfig?.requiredHostMode ?: current.requiredHostMode
))
),
networkProxy = null
)
}
} else {
AlertManager.shared.showAlertMsg(
@@ -502,6 +512,7 @@ private fun MutableState<MigrationToState?>.prepareDatabase(
link: String,
tempDatabaseFile: File,
netCfg: NetCfg,
networkProxy: NetworkProxy?
) {
withLongRunningApi {
val ctrlAndUser = initTemporaryDatabase(tempDatabaseFile, netCfg)
@@ -513,7 +524,7 @@ private fun MutableState<MigrationToState?>.prepareDatabase(
}
val (ctrl, user) = ctrlAndUser
state = MigrationToState.LinkDownloading(link, ctrl, user, archivePath(), netCfg)
state = MigrationToState.LinkDownloading(link, ctrl, user, archivePath(), netCfg, networkProxy)
}
}
@@ -526,13 +537,14 @@ private fun MutableState<MigrationToState?>.startDownloading(
link: String,
archivePath: String,
netCfg: NetCfg,
networkProxy: NetworkProxy?
) {
withBGApi {
chatReceiver.value = MigrationToChatReceiver(ctrl, tempDatabaseFile) { msg ->
when (msg) {
is CR.RcvFileProgressXFTP -> {
state = MigrationToState.DownloadProgress(msg.receivedSize, msg.totalSize, msg.rcvFileTransfer.fileId, link, archivePath, netCfg, ctrl)
MigrationToDeviceState.save(MigrationToDeviceState.DownloadProgress(link, File(archivePath).name, netCfg))
state = MigrationToState.DownloadProgress(msg.receivedSize, msg.totalSize, msg.rcvFileTransfer.fileId, link, archivePath, netCfg, networkProxy, ctrl)
MigrationToDeviceState.save(MigrationToDeviceState.DownloadProgress(link, File(archivePath).name, netCfg, networkProxy))
}
is CR.RcvStandaloneFileComplete -> {
delay(500)
@@ -540,8 +552,8 @@ private fun MutableState<MigrationToState?>.startDownloading(
if (state == null) {
MigrationToDeviceState.save(null)
} else {
state = MigrationToState.ArchiveImport(archivePath, netCfg)
MigrationToDeviceState.save(MigrationToDeviceState.ArchiveImport(File(archivePath).name, netCfg))
state = MigrationToState.ArchiveImport(archivePath, netCfg, networkProxy)
MigrationToDeviceState.save(MigrationToDeviceState.ArchiveImport(File(archivePath).name, netCfg, networkProxy))
}
}
is CR.RcvFileError -> {
@@ -549,7 +561,7 @@ private fun MutableState<MigrationToState?>.startDownloading(
generalGetString(MR.strings.migrate_to_device_download_failed),
generalGetString(MR.strings.migrate_to_device_file_delete_or_link_invalid)
)
state = MigrationToState.DownloadFailed(totalBytes, link, archivePath, netCfg)
state = MigrationToState.DownloadFailed(totalBytes, link, archivePath, netCfg, networkProxy)
}
is CR.ChatRespError -> {
if (msg.chatError is ChatError.ChatErrorChat && msg.chatError.errorType is ChatErrorType.NoRcvFileUser) {
@@ -557,7 +569,7 @@ private fun MutableState<MigrationToState?>.startDownloading(
generalGetString(MR.strings.migrate_to_device_download_failed),
generalGetString(MR.strings.migrate_to_device_file_delete_or_link_invalid)
)
state = MigrationToState.DownloadFailed(totalBytes, link, archivePath, netCfg)
state = MigrationToState.DownloadFailed(totalBytes, link, archivePath, netCfg, networkProxy)
} else {
Log.d(TAG, "unsupported error: ${msg.responseType}, ${json.encodeToString(msg.chatError)}")
}
@@ -569,7 +581,7 @@ private fun MutableState<MigrationToState?>.startDownloading(
val (res, error) = controller.downloadStandaloneFile(user, link, CryptoFile.plain(File(archivePath).path), ctrl)
if (res == null) {
state = MigrationToState.DownloadFailed(totalBytes, link, archivePath, netCfg)
state = MigrationToState.DownloadFailed(totalBytes, link, archivePath, netCfg, networkProxy)
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.migrate_to_device_error_downloading_archive),
error
@@ -578,7 +590,7 @@ private fun MutableState<MigrationToState?>.startDownloading(
}
}
private fun MutableState<MigrationToState?>.importArchive(archivePath: String, netCfg: NetCfg) {
private fun MutableState<MigrationToState?>.importArchive(archivePath: String, netCfg: NetCfg, networkProxy: NetworkProxy?) {
withLongRunningApi {
try {
if (ChatController.ctrl == null || ChatController.ctrl == -1L) {
@@ -592,14 +604,14 @@ private fun MutableState<MigrationToState?>.importArchive(archivePath: String, n
if (archiveErrors.isNotEmpty()) {
showArchiveImportedWithErrorsAlert(archiveErrors)
}
state = MigrationToState.Passphrase("", netCfg)
MigrationToDeviceState.save(MigrationToDeviceState.Passphrase(netCfg))
state = MigrationToState.Passphrase("", netCfg, networkProxy)
MigrationToDeviceState.save(MigrationToDeviceState.Passphrase(netCfg, networkProxy))
} catch (e: Exception) {
state = MigrationToState.ArchiveImportFailed(archivePath, netCfg)
state = MigrationToState.ArchiveImportFailed(archivePath, netCfg, networkProxy)
AlertManager.shared.showAlertMsg (generalGetString(MR.strings.error_importing_database), e.stackTraceToString())
}
} catch (e: Exception) {
state = MigrationToState.ArchiveImportFailed(archivePath, netCfg)
state = MigrationToState.ArchiveImportFailed(archivePath, netCfg, networkProxy)
AlertManager.shared.showAlertMsg (generalGetString(MR.strings.error_deleting_database), e.stackTraceToString())
}
}
@@ -609,7 +621,7 @@ private suspend fun stopArchiveDownloading(fileId: Long, ctrl: ChatCtrl) {
controller.apiCancelFile(null, fileId, ctrl)
}
private fun startChat(passphrase: String, confirmation: MigrationConfirmation, useKeychain: Boolean, netCfg: NetCfg, close: () -> Unit) {
private fun startChat(passphrase: String, confirmation: MigrationConfirmation, useKeychain: Boolean, netCfg: NetCfg, networkProxy: NetworkProxy?, close: () -> Unit) {
if (useKeychain) {
ksDatabasePassword.set(passphrase)
} else {
@@ -621,7 +633,8 @@ private fun startChat(passphrase: String, confirmation: MigrationConfirmation, u
try {
initChatController(useKey = passphrase, confirmMigrations = confirmation) { CompletableDeferred(false) }
val appSettings = controller.apiGetAppSettings(AppSettings.current.prepareForExport()).copy(
networkConfig = netCfg
networkConfig = netCfg,
networkProxy = networkProxy
)
finishMigration(appSettings, close)
} catch (e: Exception) {
@@ -1,10 +1,10 @@
package chat.simplex.common.views.usersettings
import SectionBottomSpacer
import SectionCustomFooter
import SectionDividerSpaced
import SectionItemView
import SectionItemWithValue
import SectionTextFooter
import SectionView
import SectionViewSelectableCards
import androidx.compose.desktop.ui.tooling.preview.Preview
@@ -40,12 +40,10 @@ fun ModalData.AdvancedNetworkSettingsView(showModal: (ModalData.() -> Unit) -> U
val currentCfg = remember { stateGetOrPut("currentCfg") { controller.getNetCfg() } }
val currentCfgVal = currentCfg.value // used only on initialization
val onionHosts = remember { mutableStateOf(currentCfgVal.onionHosts) }
val sessionMode = remember { mutableStateOf(currentCfgVal.sessionMode) }
val smpProxyMode = remember { mutableStateOf(currentCfgVal.smpProxyMode) }
val smpProxyFallback = remember { mutableStateOf(currentCfgVal.smpProxyFallback) }
val networkUseSocksProxy: MutableState<Boolean> = remember { mutableStateOf(currentCfgVal.useSocksProxy) }
val networkTCPConnectTimeout = remember { mutableStateOf(currentCfgVal.tcpConnectTimeout) }
val networkTCPTimeout = remember { mutableStateOf(currentCfgVal.tcpTimeout) }
val networkTCPTimeoutPerKb = remember { mutableStateOf(currentCfgVal.tcpTimeoutPerKb) }
@@ -90,11 +88,10 @@ fun ModalData.AdvancedNetworkSettingsView(showModal: (ModalData.() -> Unit) -> U
tcpKeepAlive = tcpKeepAlive,
smpPingInterval = networkSMPPingInterval.value,
smpPingCount = networkSMPPingCount.value
).withOnionHosts(onionHosts.value)
).withOnionHosts(currentCfg.value.onionHosts)
}
fun updateView(cfg: NetCfg) {
onionHosts.value = cfg.onionHosts
sessionMode.value = cfg.sessionMode
smpProxyMode.value = cfg.smpProxyMode
smpProxyFallback.value = cfg.smpProxyFallback
@@ -148,10 +145,7 @@ fun ModalData.AdvancedNetworkSettingsView(showModal: (ModalData.() -> Unit) -> U
) {
AdvancedNetworkSettingsLayout(
currentRemoteHost = currentRemoteHost,
networkUseSocksProxy = networkUseSocksProxy,
developerTools = developerTools,
onionHosts = onionHosts,
useOnion = { onionHosts.value = it; currentCfg.value = currentCfg.value.withOnionHosts(it) },
sessionMode = sessionMode,
smpProxyMode = smpProxyMode,
smpProxyFallback = smpProxyFallback,
@@ -183,10 +177,7 @@ fun ModalData.AdvancedNetworkSettingsView(showModal: (ModalData.() -> Unit) -> U
@Composable fun AdvancedNetworkSettingsLayout(
currentRemoteHost: RemoteHostInfo?,
networkUseSocksProxy: State<Boolean>,
developerTools: Boolean,
onionHosts: MutableState<OnionHosts>,
useOnion: (OnionHosts) -> Unit,
sessionMode: MutableState<TransportSessionMode>,
smpProxyMode: MutableState<SMPProxyMode>,
smpProxyFallback: MutableState<SMPProxyFallback>,
@@ -223,21 +214,7 @@ fun ModalData.AdvancedNetworkSettingsView(showModal: (ModalData.() -> Unit) -> U
SMPProxyFallbackPicker(smpProxyFallback, showModal, updateSMPProxyFallback, enabled = remember { derivedStateOf { smpProxyMode.value != SMPProxyMode.Never } })
SettingsPreferenceItem(painterResource(MR.images.ic_arrow_forward), stringResource(MR.strings.private_routing_show_message_status), chatModel.controller.appPrefs.showSentViaProxy)
}
SectionCustomFooter {
Text(stringResource(MR.strings.private_routing_explanation))
}
SectionDividerSpaced(maxTopPadding = true)
}
if (currentRemoteHost == null && networkUseSocksProxy.value) {
SectionView(stringResource(MR.strings.network_socks_proxy).uppercase()) {
UseOnionHosts(onionHosts, networkUseSocksProxy, showModal, useOnion)
SectionCustomFooter {
Column {
Text(annotatedStringResource(MR.strings.disable_onion_hosts_when_not_supported))
}
}
}
SectionTextFooter(stringResource(MR.strings.private_routing_explanation))
SectionDividerSpaced(maxTopPadding = true)
}
@@ -562,7 +539,6 @@ fun PreviewAdvancedNetworkSettingsLayout() {
SimpleXTheme {
AdvancedNetworkSettingsLayout(
currentRemoteHost = null,
networkUseSocksProxy = remember { mutableStateOf(false) },
developerTools = false,
sessionMode = remember { mutableStateOf(TransportSessionMode.User) },
smpProxyMode = remember { mutableStateOf(SMPProxyMode.Never) },
@@ -577,8 +553,6 @@ fun PreviewAdvancedNetworkSettingsLayout() {
networkTCPKeepIdle = remember { mutableStateOf(10) },
networkTCPKeepIntvl = remember { mutableStateOf(10) },
networkTCPKeepCnt = remember { mutableStateOf(10) },
onionHosts = remember { mutableStateOf(OnionHosts.PREFER) },
useOnion = {},
updateSessionMode = {},
updateSMPProxyMode = {},
updateSMPProxyFallback = {},
@@ -1,10 +1,10 @@
package chat.simplex.common.views.usersettings
import SectionBottomSpacer
import SectionCustomFooter
import SectionDividerSpaced
import SectionItemView
import SectionItemWithValue
import SectionTextFooter
import SectionView
import SectionViewSelectable
import TextIconSpaced
@@ -37,10 +37,11 @@ fun NetworkAndServersView() {
val netCfg = remember { chatModel.controller.getNetCfg() }
val networkUseSocksProxy: MutableState<Boolean> = remember { mutableStateOf(netCfg.useSocksProxy) }
val proxyPort = remember { derivedStateOf { chatModel.controller.appPrefs.networkProxyHostPort.state.value?.split(":")?.lastOrNull()?.toIntOrNull() ?: 9050 } }
val proxyPort = remember { derivedStateOf { appPrefs.networkProxy.state.value.port } }
NetworkAndServersLayout(
currentRemoteHost = currentRemoteHost,
networkUseSocksProxy = networkUseSocksProxy,
onionHosts = remember { mutableStateOf(netCfg.onionHosts) },
toggleSocksProxy = { enable ->
val def = NetCfg.defaults
val proxyDef = NetCfg.proxyDefaults
@@ -51,7 +52,7 @@ fun NetworkAndServersView() {
confirmText = generalGetString(MR.strings.confirm_verb),
onConfirm = {
withBGApi {
var conf = controller.getNetCfg().withHostPort(controller.appPrefs.networkProxyHostPort.get())
var conf = controller.getNetCfg().withProxy(controller.appPrefs.networkProxy.get())
if (conf.tcpConnectTimeout == def.tcpConnectTimeout) {
conf = conf.copy(tcpConnectTimeout = proxyDef.tcpConnectTimeout)
}
@@ -104,6 +105,7 @@ fun NetworkAndServersView() {
@Composable fun NetworkAndServersLayout(
currentRemoteHost: RemoteHostInfo?,
networkUseSocksProxy: MutableState<Boolean>,
onionHosts: MutableState<OnionHosts>,
toggleSocksProxy: (Boolean) -> Unit,
) {
val m = chatModel
@@ -120,14 +122,10 @@ fun NetworkAndServersView() {
if (currentRemoteHost == null) {
UseSocksProxySwitch(networkUseSocksProxy, toggleSocksProxy)
SettingsActionItem(painterResource(MR.images.ic_settings_ethernet), stringResource(MR.strings.network_socks_proxy_settings), { showCustomModal { SocksProxySettings(networkUseSocksProxy.value, appPrefs.networkProxyHostPort, false, it) }})
SettingsActionItem(painterResource(MR.images.ic_settings_ethernet), stringResource(MR.strings.network_socks_proxy_settings), { showCustomModal { SocksProxySettings(networkUseSocksProxy.value, appPrefs.networkProxy, onionHosts, sessionMode = appPrefs.networkSessionMode.get(), false, it) }})
SettingsActionItem(painterResource(MR.images.ic_cable), stringResource(MR.strings.network_settings), { ModalManager.start.showCustomModal { AdvancedNetworkSettingsView(showModal, it) } })
if (networkUseSocksProxy.value) {
SectionCustomFooter {
Column {
Text(annotatedStringResource(MR.strings.socks_proxy_setting_limitations))
}
}
SectionTextFooter(annotatedStringResource(MR.strings.socks_proxy_setting_limitations))
SectionDividerSpaced(maxTopPadding = true)
} else {
SectionDividerSpaced()
@@ -158,16 +156,14 @@ fun NetworkAndServersView() {
networkUseSocksProxy: MutableState<Boolean>,
onionHosts: MutableState<OnionHosts>,
sessionMode: MutableState<TransportSessionMode>,
networkProxyHostPort: SharedPreference<String?>,
networkProxy: SharedPreference<NetworkProxy>,
toggleSocksProxy: (Boolean) -> Unit,
useOnion: (OnionHosts) -> Unit,
updateSessionMode: (TransportSessionMode) -> Unit,
) {
val showModal = { it: @Composable ModalData.() -> Unit -> ModalManager.fullscreen.showModal(content = it) }
val showCustomModal = { it: @Composable (close: () -> Unit) -> Unit -> ModalManager.fullscreen.showCustomModal { close -> it(close) }}
UseSocksProxySwitch(networkUseSocksProxy, toggleSocksProxy)
SettingsActionItem(painterResource(MR.images.ic_settings_ethernet), stringResource(MR.strings.network_socks_proxy_settings), { showCustomModal { SocksProxySettings(networkUseSocksProxy.value, networkProxyHostPort, true, it) } })
UseOnionHosts(onionHosts, networkUseSocksProxy, showModal, useOnion)
SettingsActionItem(painterResource(MR.images.ic_settings_ethernet), stringResource(MR.strings.network_socks_proxy_settings), { showCustomModal { SocksProxySettings(networkUseSocksProxy.value, networkProxy, onionHosts, sessionMode.value, true, it) } })
if (developerTools) {
SessionModePicker(sessionMode, showModal, updateSessionMode)
}
@@ -205,46 +201,98 @@ fun UseSocksProxySwitch(
@Composable
fun SocksProxySettings(
networkUseSocksProxy: Boolean,
networkProxyHostPort: SharedPreference<String?> = appPrefs.networkProxyHostPort,
networkProxy: SharedPreference<NetworkProxy>,
onionHosts: MutableState<OnionHosts>,
sessionMode: TransportSessionMode,
migration: Boolean,
close: () -> Unit
) {
val defaultHostPort = remember { "localhost:9050" }
val hostPortSaved by remember { networkProxyHostPort.state }
val networkProxySaved by remember { networkProxy.state }
val onionHostsSaved = remember { mutableStateOf(onionHosts.value) }
val usernameUnsaved = rememberSaveable(stateSaver = TextFieldValue.Saver) {
mutableStateOf(TextFieldValue(networkProxySaved.username))
}
val passwordUnsaved = rememberSaveable(stateSaver = TextFieldValue.Saver) {
mutableStateOf(TextFieldValue(networkProxySaved.password))
}
val hostUnsaved = rememberSaveable(stateSaver = TextFieldValue.Saver) {
mutableStateOf(TextFieldValue(hostPortSaved?.split(":")?.firstOrNull() ?: "localhost"))
mutableStateOf(TextFieldValue(networkProxySaved.host))
}
val portUnsaved = rememberSaveable(stateSaver = TextFieldValue.Saver) {
mutableStateOf(TextFieldValue(hostPortSaved?.split(":")?.lastOrNull() ?: "9050"))
mutableStateOf(TextFieldValue(networkProxySaved.port.toString()))
}
val save = {
val oldValue = networkProxyHostPort.get()
networkProxyHostPort.set(hostUnsaved.value.text + ":" + portUnsaved.value.text)
if (networkUseSocksProxy && !migration) {
withBGApi {
if (!controller.apiSetNetworkConfig(controller.getNetCfg())) {
networkProxyHostPort.set(oldValue)
}
val proxyAuthRandomUnsaved = rememberSaveable { mutableStateOf(networkProxySaved.auth == NetworkProxyAuth.ISOLATE) }
LaunchedEffect(proxyAuthRandomUnsaved.value) {
if (!proxyAuthRandomUnsaved.value && onionHosts.value != OnionHosts.NEVER) {
onionHosts.value = OnionHosts.NEVER
}
}
val proxyAuthModeUnsaved = remember(proxyAuthRandomUnsaved.value, usernameUnsaved.value.text, passwordUnsaved.value.text) {
derivedStateOf {
if (proxyAuthRandomUnsaved.value) {
NetworkProxyAuth.ISOLATE
} else {
NetworkProxyAuth.USERNAME
}
}
}
val saveAndClose = {
val oldValue = networkProxyHostPort.get()
networkProxyHostPort.set(hostUnsaved.value.text + ":" + portUnsaved.value.text)
val save: (Boolean) -> Unit = { closeOnSuccess ->
val oldValue = networkProxy.get()
usernameUnsaved.value = usernameUnsaved.value.copy(if (proxyAuthModeUnsaved.value == NetworkProxyAuth.USERNAME) usernameUnsaved.value.text.trim() else "")
passwordUnsaved.value = passwordUnsaved.value.copy(if (proxyAuthModeUnsaved.value == NetworkProxyAuth.USERNAME) passwordUnsaved.value.text.trim() else "")
hostUnsaved.value = hostUnsaved.value.copy(hostUnsaved.value.text.trim())
portUnsaved.value = portUnsaved.value.copy(portUnsaved.value.text.trim())
networkProxy.set(
NetworkProxy(
username = usernameUnsaved.value.text,
password = passwordUnsaved.value.text,
host = hostUnsaved.value.text,
port = portUnsaved.value.text.toIntOrNull() ?: 9050,
auth = proxyAuthModeUnsaved.value
)
)
val oldCfg = controller.getNetCfg()
val cfg = oldCfg.withOnionHosts(onionHosts.value)
val oldOnionHosts = onionHostsSaved.value
onionHostsSaved.value = onionHosts.value
if (!migration) {
controller.setNetCfg(cfg)
}
if (networkUseSocksProxy && !migration) {
withBGApi {
if (controller.apiSetNetworkConfig(controller.getNetCfg())) {
close()
if (controller.apiSetNetworkConfig(cfg, showAlertOnError = false)) {
onionHosts.value = cfg.onionHosts
onionHostsSaved.value = onionHosts.value
if (closeOnSuccess) {
close()
}
} else {
networkProxyHostPort.set(oldValue)
controller.setNetCfg(oldCfg)
networkProxy.set(oldValue)
onionHostsSaved.value = oldOnionHosts
showWrongProxyConfigAlert()
}
}
}
}
val saveDisabled = hostPortSaved == (hostUnsaved.value.text + ":" + portUnsaved.value.text) ||
remember { derivedStateOf { !validHost(hostUnsaved.value.text) } }.value ||
remember { derivedStateOf { !validPort(portUnsaved.value.text) } }.value
val resetDisabled = hostUnsaved.value.text + ":" + portUnsaved.value.text == defaultHostPort
val saveDisabled =
(
networkProxySaved.username == usernameUnsaved.value.text.trim() &&
networkProxySaved.password == passwordUnsaved.value.text.trim() &&
networkProxySaved.host == hostUnsaved.value.text.trim() &&
networkProxySaved.port.toString() == portUnsaved.value.text.trim() &&
networkProxySaved.auth == proxyAuthModeUnsaved.value &&
onionHosts.value == onionHostsSaved.value
) ||
!validCredential(usernameUnsaved.value.text) ||
!validCredential(passwordUnsaved.value.text) ||
!validHost(hostUnsaved.value.text) ||
!validPort(portUnsaved.value.text)
val resetDisabled = hostUnsaved.value.text.trim() == "localhost" && portUnsaved.value.text.trim() == "9050" && proxyAuthRandomUnsaved.value && onionHosts.value == NetCfg.defaults.onionHosts
ModalView(
close = {
if (saveDisabled) {
@@ -252,7 +300,7 @@ fun SocksProxySettings(
} else {
showUnsavedSocksHostPortAlert(
confirmText = generalGetString(if (networkUseSocksProxy && !migration) MR.strings.network_options_save_and_reconnect else MR.strings.network_options_save),
save = saveAndClose,
save = { save(true) },
close = close
)
}
@@ -263,38 +311,78 @@ fun SocksProxySettings(
.fillMaxWidth()
) {
AppBarTitle(generalGetString(MR.strings.network_socks_proxy_settings))
SectionView(contentPadding = PaddingValues(horizontal = DEFAULT_PADDING)) {
DefaultConfigurableTextField(
hostUnsaved,
stringResource(MR.strings.host_verb),
modifier = Modifier.fillMaxWidth(),
isValid = ::validHost,
keyboardActions = KeyboardActions(onNext = { defaultKeyboardAction(ImeAction.Next) }),
keyboardType = KeyboardType.Text,
)
DefaultConfigurableTextField(
portUnsaved,
stringResource(MR.strings.port_verb),
modifier = Modifier.fillMaxWidth(),
isValid = ::validPort,
keyboardActions = KeyboardActions(onDone = { defaultKeyboardAction(ImeAction.Done); save() }),
keyboardType = KeyboardType.Number,
)
SectionView(stringResource(MR.strings.network_socks_proxy).uppercase()) {
Column(Modifier.padding(horizontal = DEFAULT_PADDING)) {
DefaultConfigurableTextField(
hostUnsaved,
stringResource(MR.strings.host_verb),
modifier = Modifier.fillMaxWidth(),
isValid = ::validHost,
keyboardActions = KeyboardActions(onNext = { defaultKeyboardAction(ImeAction.Next) }),
keyboardType = KeyboardType.Text,
)
DefaultConfigurableTextField(
portUnsaved,
stringResource(MR.strings.port_verb),
modifier = Modifier.fillMaxWidth(),
isValid = ::validPort,
keyboardActions = KeyboardActions(onDone = { defaultKeyboardAction(ImeAction.Done); save(false) }),
keyboardType = KeyboardType.Number,
)
}
UseOnionHosts(onionHosts, rememberUpdatedState(networkUseSocksProxy && proxyAuthRandomUnsaved.value)) {
onionHosts.value = it
}
SectionTextFooter(annotatedStringResource(MR.strings.disable_onion_hosts_when_not_supported))
}
SectionDividerSpaced(maxBottomPadding = false)
SectionDividerSpaced(maxTopPadding = true)
SectionView(stringResource(MR.strings.network_proxy_auth).uppercase()) {
PreferenceToggle(
stringResource(MR.strings.network_proxy_random_credentials),
checked = proxyAuthRandomUnsaved.value,
onChange = { proxyAuthRandomUnsaved.value = it }
)
if (!proxyAuthRandomUnsaved.value) {
Column(Modifier.padding(horizontal = DEFAULT_PADDING)) {
DefaultConfigurableTextField(
usernameUnsaved,
stringResource(MR.strings.network_proxy_username),
modifier = Modifier.fillMaxWidth(),
isValid = ::validCredential,
keyboardActions = KeyboardActions(onNext = { defaultKeyboardAction(ImeAction.Next) }),
keyboardType = KeyboardType.Text,
)
DefaultConfigurableTextField(
passwordUnsaved,
stringResource(MR.strings.network_proxy_password),
modifier = Modifier.fillMaxWidth(),
isValid = ::validCredential,
keyboardActions = KeyboardActions(onNext = { defaultKeyboardAction(ImeAction.Next) }),
keyboardType = KeyboardType.Password,
)
}
}
SectionTextFooter(proxyAuthFooter(usernameUnsaved.value.text, passwordUnsaved.value.text, proxyAuthModeUnsaved.value, sessionMode))
}
SectionDividerSpaced(maxBottomPadding = false, maxTopPadding = true)
SectionView {
SectionItemView({
val newHost = defaultHostPort.split(":").first()
val newPort = defaultHostPort.split(":").last()
hostUnsaved.value = hostUnsaved.value.copy(newHost, TextRange(newHost.length))
portUnsaved.value = portUnsaved.value.copy(newPort, TextRange(newPort.length))
hostUnsaved.value = hostUnsaved.value.copy("localhost", TextRange(9))
portUnsaved.value = portUnsaved.value.copy("9050", TextRange(4))
usernameUnsaved.value = TextFieldValue()
passwordUnsaved.value = TextFieldValue()
proxyAuthRandomUnsaved.value = true
onionHosts.value = NetCfg.defaults.onionHosts
}, disabled = resetDisabled) {
Text(stringResource(MR.strings.network_options_reset_to_defaults), color = if (resetDisabled) MaterialTheme.colors.secondary else MaterialTheme.colors.primary)
}
SectionItemView(
click = { if (networkUseSocksProxy && !migration) showUpdateNetworkSettingsDialog { save() } else save() },
click = { if (networkUseSocksProxy && !migration) showUpdateNetworkSettingsDialog { save(false) } else save(false) },
disabled = saveDisabled
) {
Text(stringResource(if (networkUseSocksProxy && !migration) MR.strings.network_options_save_and_reconnect else MR.strings.network_options_save), color = if (saveDisabled) MaterialTheme.colors.secondary else MaterialTheme.colors.primary)
@@ -305,6 +393,12 @@ fun SocksProxySettings(
}
}
private fun proxyAuthFooter(username: String, password: String, auth: NetworkProxyAuth, sessionMode: TransportSessionMode): String = when {
auth == NetworkProxyAuth.ISOLATE -> generalGetString(if (sessionMode == TransportSessionMode.User) MR.strings.network_proxy_auth_mode_isolate_by_auth_user else MR.strings.network_proxy_auth_mode_isolate_by_auth_entity)
username.isBlank() && password.isBlank() -> generalGetString(MR.strings.network_proxy_auth_mode_no_auth)
else -> generalGetString(MR.strings.network_proxy_auth_mode_username_password)
}
private fun showUnsavedSocksHostPortAlert(confirmText: String, save: () -> Unit, close: () -> Unit) {
AlertManager.shared.showAlertDialogStacked(
title = generalGetString(MR.strings.update_network_settings_question),
@@ -319,7 +413,6 @@ private fun showUnsavedSocksHostPortAlert(confirmText: String, save: () -> Unit,
fun UseOnionHosts(
onionHosts: MutableState<OnionHosts>,
enabled: State<Boolean>,
showModal: (@Composable ModalData.() -> Unit) -> Unit,
useOnion: (OnionHosts) -> Unit,
) {
val values = remember {
@@ -331,36 +424,29 @@ fun UseOnionHosts(
}
}
}
val onSelected = {
showModal {
ColumnWithScrollBar(
Modifier.fillMaxWidth(),
) {
AppBarTitle(stringResource(MR.strings.network_use_onion_hosts))
SectionViewSelectable(null, onionHosts, values, useOnion)
}
}
}
if (enabled.value) {
SectionItemWithValue(
generalGetString(MR.strings.network_use_onion_hosts),
onionHosts,
values,
icon = painterResource(MR.images.ic_security),
enabled = enabled,
onSelected = onSelected
)
} else {
// In reality, when socks proxy is disabled, this option acts like NEVER regardless of what was chosen before
SectionItemWithValue(
generalGetString(MR.strings.network_use_onion_hosts),
remember { mutableStateOf(OnionHosts.NEVER) },
listOf(ValueTitleDesc(OnionHosts.NEVER, generalGetString(MR.strings.network_use_onion_hosts_no), AnnotatedString(generalGetString(MR.strings.network_use_onion_hosts_no_desc)))),
icon = painterResource(MR.images.ic_security),
enabled = enabled,
onSelected = {}
)
Column {
if (enabled.value) {
ExposedDropDownSettingRow(
generalGetString(MR.strings.network_use_onion_hosts),
values.map { it.value to it.title },
onionHosts,
icon = painterResource(MR.images.ic_security),
enabled = enabled,
onSelected = useOnion
)
} else {
// In reality, when socks proxy is disabled, this option acts like NEVER regardless of what was chosen before
ExposedDropDownSettingRow(
generalGetString(MR.strings.network_use_onion_hosts),
listOf(OnionHosts.NEVER to generalGetString(MR.strings.network_use_onion_hosts_no)),
remember { mutableStateOf(OnionHosts.NEVER) },
icon = painterResource(MR.images.ic_security),
enabled = enabled,
onSelected = {}
)
}
SectionTextFooter(values.first { it.value == onionHosts.value }.description)
}
}
@@ -398,12 +484,8 @@ fun SessionModePicker(
)
}
// https://stackoverflow.com/a/106223
private fun validHost(s: String): Boolean {
val validIp = Regex("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$")
val validHostname = Regex("^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])[.])*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$");
return s.matches(validIp) || s.matches(validHostname)
}
private fun validHost(s: String): Boolean =
!s.contains('@')
// https://ihateregex.io/expr/port/
fun validPort(s: String): Boolean {
@@ -411,6 +493,16 @@ fun validPort(s: String): Boolean {
return s.isNotBlank() && s.matches(validPort)
}
private fun validCredential(s: String): Boolean =
!s.contains(':') && !s.contains('@')
fun showWrongProxyConfigAlert() {
AlertManager.shared.showAlertMsg(
title = generalGetString(MR.strings.network_proxy_incorrect_config_title),
text = generalGetString(MR.strings.network_proxy_incorrect_config_desc),
)
}
fun showUpdateNetworkSettingsDialog(
title: String,
startsWith: String = "",
@@ -435,6 +527,7 @@ fun PreviewNetworkAndServersLayout() {
NetworkAndServersLayout(
currentRemoteHost = null,
networkUseSocksProxy = remember { mutableStateOf(true) },
onionHosts = remember { mutableStateOf(OnionHosts.PREFER) },
toggleSocksProxy = {},
)
}
@@ -174,7 +174,7 @@ private fun UserAddressLayout(
saveAas: (AutoAcceptState, MutableState<AutoAcceptState>) -> Unit,
) {
ColumnWithScrollBar {
AppBarTitle(stringResource(MR.strings.public_address), hostDevice(user?.remoteHostId))
AppBarTitle(stringResource(MR.strings.simplex_address), hostDevice(user?.remoteHostId))
Column(
Modifier.fillMaxWidth().padding(bottom = DEFAULT_PADDING_HALF),
horizontalAlignment = Alignment.CenterHorizontally,
@@ -230,7 +230,7 @@ private fun UserAddressLayout(
private fun CreateAddressButton(onClick: () -> Unit) {
SettingsActionItem(
painterResource(MR.images.ic_qr_code),
stringResource(MR.strings.create_public_address),
stringResource(MR.strings.create_simplex_address),
onClick,
iconColor = MaterialTheme.colors.primary,
textColor = MaterialTheme.colors.primary,
@@ -701,10 +701,6 @@
<string name="is_verified">%s is verified</string>
<string name="is_not_verified">%s is not verified</string>
<!-- user picker - UserPicker.kt -->
<string name="create_public_contact_address">Create public address</string>
<string name="your_public_contact_address">Your public address</string>
<!-- settings - SettingsView.kt -->
<string name="your_settings">Your settings</string>
<string name="your_simplex_contact_address">Your SimpleX address</string>
@@ -773,7 +769,17 @@
<string name="network_socks_proxy">SOCKS proxy</string>
<string name="network_socks_proxy_settings">SOCKS proxy settings</string>
<string name="network_socks_toggle_use_socks_proxy">Use SOCKS proxy</string>
<string name="network_proxy_auth">Proxy authentication</string>
<string name="network_proxy_random_credentials">Use random credentials</string>
<string name="network_proxy_auth_mode_isolate_by_auth_user">Use different proxy credentials for each profile.</string>
<string name="network_proxy_auth_mode_isolate_by_auth_entity">Use different proxy credentials for each connection.</string>
<string name="network_proxy_auth_mode_no_auth">Do not use credentials with proxy.</string>
<string name="network_proxy_auth_mode_username_password">Your credentials may be sent unencrypted.</string>
<string name="network_proxy_username">Username</string>
<string name="network_proxy_password">Password</string>
<string name="network_proxy_port">port %d</string>
<string name="network_proxy_incorrect_config_title">Error saving proxy</string>
<string name="network_proxy_incorrect_config_desc">Make sure proxy configuration is correct.</string>
<string name="host_verb">Host</string>
<string name="port_verb">Port</string>
<string name="network_enable_socks">Use SOCKS proxy?</string>
@@ -853,8 +859,6 @@
<string name="shutdown_alert_desc">Notifications will stop working until you re-launch the app</string>
<!-- Address Items - UserAddressView.kt -->
<string name="public_address">Public address</string>
<string name="create_public_address">Create public address</string>
<string name="create_address">Create address</string>
<string name="delete_address__question">Delete address?</string>
<string name="your_contacts_will_remain_connected">Your contacts will remain connected.</string>
@@ -224,7 +224,7 @@
<string name="how_to_use_your_servers">Jak používat servery</string>
<string name="your_ICE_servers">Vaše servery ICE</string>
<string name="configure_ICE_servers">Konfigurace serverů ICE</string>
<string name="network_settings_title">Nastavení sítě</string>
<string name="network_settings_title">Pokročilé nastavení</string>
<string name="network_enable_socks">Použít proxy server SOCKS\?</string>
<string name="network_disable_socks">Použít přímé připojení k internetu\?</string>
<string name="network_use_onion_hosts_no">Ne</string>
@@ -434,7 +434,7 @@
<string name="edit_image">Upravit obrázek</string>
<string name="delete_image">Smazat obrázek</string>
<string name="callstatus_error">chyba volání</string>
<string name="opensource_protocol_and_code_anybody_can_run_servers">Protokol a kód s otevřeným zdrojovým kódem - servery může provozovat kdokoli.</string>
<string name="opensource_protocol_and_code_anybody_can_run_servers">Servery může provozovat kdokoli.</string>
<string name="create_your_profile">Vytvořte si svůj profil</string>
<string name="make_private_connection">Vytvořte si soukromé připojení</string>
<string name="encrypted_video_call">Videohovor šifrovaný e2e</string>
@@ -799,7 +799,7 @@
<string name="rcv_group_event_member_added">pozval %1$s</string>
<string name="rcv_group_event_member_connected">připojen</string>
<string name="rcv_group_event_changed_member_role">změnil roli %s na %s</string>
<string name="rcv_group_event_changed_your_role">změnil svou roli na %s</string>
<string name="rcv_group_event_changed_your_role">změnil vaši roli na %s</string>
<string name="rcv_group_event_member_deleted">odstraněn %1$s</string>
<string name="rcv_group_event_user_deleted">odstranil vás</string>
<string name="rcv_group_event_group_deleted">skupina odstraněna</string>
@@ -1861,4 +1861,5 @@
<string name="calls_prohibited_alert_title">Volání zakázáno!</string>
<string name="cant_call_member_alert_title">Nelze zavolat člena skupiny</string>
<string name="deleted_chats">Archivované kontakty</string>
<string name="v6_0_your_contacts_descr">Archivujte kontakty pro pozdější chatování.</string>
</resources>
@@ -277,11 +277,11 @@
<string name="accept_contact_incognito_button">Inkognito akzeptieren</string>
<string name="reject_contact_button">Ablehnen</string>
<!-- Clear Chat - ChatListNavLinkView.kt -->
<string name="clear_chat_question">Chatinhalte löschen?</string>
<string name="clear_chat_question">Chat-Inhalte entfernen?</string>
<string name="clear_chat_warning">Es werden alle Nachrichten gelöscht. Dies kann nicht rückgängig gemacht werden! Die Nachrichten werden NUR bei Ihnen gelöscht.</string>
<string name="clear_verb">Löschen</string>
<string name="clear_chat_button">Chatinhalte löschen</string>
<string name="clear_chat_menu_action">Chatinhalte löschen</string>
<string name="clear_verb">Entfernen</string>
<string name="clear_chat_button">Chat-Inhalte entfernen</string>
<string name="clear_chat_menu_action">Chat-Inhalte entfernen</string>
<string name="delete_contact_menu_action">Löschen</string>
<string name="delete_group_menu_action">Löschen</string>
<string name="mark_read">Als gelesen markieren</string>
@@ -753,7 +753,7 @@
<string name="skip_inviting_button">Mitgliedereinladungen überspringen</string>
<string name="select_contacts">Kontakte auswählen</string>
<string name="icon_descr_contact_checked">Kontakt geprüft</string>
<string name="clear_contacts_selection_button">Löschen</string>
<string name="clear_contacts_selection_button">Entfernen</string>
<string name="num_contacts_selected">%d Kontakt(e) ausgewählt</string>
<string name="no_contacts_selected">Keine Kontakte ausgewählt</string>
<string name="invite_prohibited">Kontakt kann nicht eingeladen werden!</string>
@@ -765,7 +765,7 @@
<string name="button_delete_group">Gruppe löschen</string>
<string name="delete_group_question">Gruppe löschen?</string>
<string name="delete_group_for_all_members_cannot_undo_warning">Die Gruppe wird für alle Mitglieder gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="delete_group_for_self_cannot_undo_warning">Die Gruppe wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="delete_group_for_self_cannot_undo_warning">Die Gruppe wird nur bei Ihnen gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="button_leave_group">Gruppe verlassen</string>
<string name="button_edit_group_profile">Gruppenprofil bearbeiten</string>
<string name="group_link">Gruppen-Link</string>
@@ -1397,7 +1397,7 @@
<string name="v5_2_message_delivery_receipts_descr">Wir haben das zweite Häkchen vermisst! ✅</string>
<string name="v5_2_fix_encryption_descr">Reparatur der Verschlüsselung nach Wiedereinspielen von Backups.</string>
<string name="v5_2_more_things">Ein paar weitere Dinge</string>
<string name="v5_2_disappear_one_message_descr">Auch wenn sie im Chat deaktiviert sind.</string>
<string name="v5_2_disappear_one_message_descr">Auch wenn sie in den Unterhaltungen deaktiviert sind.</string>
<string name="v5_2_more_things_descr">- stabilere Zustellung von Nachrichten.
\n- ein bisschen verbesserte Gruppen.
\n- und mehr!</string>
@@ -1630,7 +1630,7 @@
<string name="tap_to_scan">Zum Scannen tippen</string>
<string name="keep_invitation_link">Behalten</string>
<string name="tap_to_paste_link">Zum Link einfügen tippen</string>
<string name="search_or_paste_simplex_link">Suchen oder fügen Sie den SimpleX-Link ein</string>
<string name="search_or_paste_simplex_link">Suchen oder SimpleX-Link einfügen</string>
<string name="chat_is_stopped_you_should_transfer_database">Der Chat wurde gestoppt. Wenn diese Datenbank bereits auf einem anderen Gerät von Ihnen verwendet wurde, sollten Sie diese dorthin zurück übertragen, bevor Sie den Chat starten.</string>
<string name="start_chat_question">Chat starten?</string>
<string name="show_internal_errors">Interne Fehler anzeigen</string>
@@ -1673,7 +1673,7 @@
<string name="v5_5_private_notes_descr">Mit verschlüsselten Dateien und Medien.</string>
<string name="v5_5_private_notes">Private Notizen</string>
<string name="clear_note_folder_warning">Es werden alle Nachrichten gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="clear_note_folder_question">Private Notizen löschen?</string>
<string name="clear_note_folder_question">Private Notizen entfernen?</string>
<string name="rcv_group_event_member_blocked">%s wurde blockiert</string>
<string name="rcv_group_event_member_unblocked">%s wurde freigegeben</string>
<string name="snd_group_event_member_blocked">Sie haben %s blockiert</string>
@@ -2081,16 +2081,16 @@
<string name="info_view_connect_button">Verbinden</string>
<string name="info_view_message_button">Nachricht</string>
<string name="info_view_open_button">Öffnen</string>
<string name="conversation_deleted">Unterhaltung gelöscht!</string>
<string name="only_delete_conversation">Nur die Unterhaltung löschen</string>
<string name="conversation_deleted">Chat-Inhalte gelöscht!</string>
<string name="only_delete_conversation">Nur die Chat-Inhalte löschen</string>
<string name="info_view_search_button">Suchen</string>
<string name="info_view_video_button">Video</string>
<string name="you_can_still_view_conversation_with_contact">Sie können in der Chatliste weiterhin die Unterhaltung mit %1$s einsehen.</string>
<string name="you_can_still_view_conversation_with_contact">Sie können in der Chat-Liste weiterhin die Unterhaltung mit %1$s einsehen.</string>
<string name="paste_link">Link einfügen</string>
<string name="deleted_chats">Archivierte Kontakte</string>
<string name="no_filtered_contacts">Keine gefilterten Kontakte</string>
<string name="contact_list_header_title">Ihre Kontakte</string>
<string name="one_hand_ui">Erreichbare Chat-Symbolleiste</string>
<string name="one_hand_ui">Chat-Symbolleiste unten</string>
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Bitten Sie Ihren Kontakt darum, Anrufe zu aktivieren.</string>
<string name="you_need_to_allow_calls">Sie müssen Ihrem Kontakt Anrufe zu Ihnen erlauben, bevor Sie ihn selbst anrufen können.</string>
<string name="allow_calls_question">Anrufe erlauben?</string>
@@ -2106,11 +2106,11 @@
<string name="delete_contact_cannot_undo_warning">Kontakt wird gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="delete_without_notification">Ohne Benachrichtigung löschen</string>
<string name="action_button_add_members">Einladen</string>
<string name="keep_conversation">Unterhaltung behalten</string>
<string name="keep_conversation">Chat-Inhalte beibehalten</string>
<string name="cant_call_member_send_message_alert_text">Nachricht senden, um Anrufe zu aktivieren.</string>
<string name="you_can_still_send_messages_to_contact">Sie können aus den archivierten Kontakten heraus Nachrichten an %1$s versenden.</string>
<string name="toolbar_settings">Einstellungen</string>
<string name="moderate_messages_will_be_deleted_warning">Die Nachrichten werden für alle Mitglieder gelöscht.</string>
<string name="moderate_messages_will_be_deleted_warning">Die Nachrichten werden für alle Gruppenmitglieder gelöscht.</string>
<string name="moderate_messages_will_be_marked_warning">Die Nachrichten werden für alle Mitglieder als moderiert markiert.</string>
<string name="delete_members_messages__question">%d Nachrichten der Mitglieder löschen?</string>
<string name="compose_message_placeholder">Nachricht</string>
@@ -2120,7 +2120,7 @@
<string name="select_verb">Auswählen</string>
<string name="invite_friends_short">Einladen</string>
<string name="network_option_tcp_connection">TCP-Verbindung</string>
<string name="v6_0_increase_font_size">Schriftgröße erhöhen.</string>
<string name="v6_0_increase_font_size">Schriftgröße anpassen.</string>
<string name="v6_0_new_chat_experience">Neue Chat-Erfahrung 🎉</string>
<string name="v6_0_upgrade_app">Die App automatisch aktualisieren</string>
<string name="v6_0_connection_servers_status_descr">Verbindungs- und Server-Status.</string>
@@ -2136,8 +2136,8 @@
<string name="v6_0_your_contacts_descr">Kontakte für spätere Chats archivieren.</string>
<string name="v6_0_private_routing_descr">Ihre IP-Adresse und Verbindungen werden geschützt.</string>
<string name="v6_0_delete_many_messages_descr">Löschen Sie bis zu 20 Nachrichten auf einmal.</string>
<string name="v6_0_reachable_chat_toolbar">Erreichbare Chat-Symbolleiste</string>
<string name="v6_0_reachable_chat_toolbar_descr">Die App mit einer Hand nutzen.</string>
<string name="v6_0_reachable_chat_toolbar">Chat-Symbolleiste unten</string>
<string name="v6_0_reachable_chat_toolbar_descr">Die App mit einer Hand bedienen.</string>
<string name="v6_0_connect_faster_descr">Schneller mit Ihren Freunden verbinden.</string>
<string name="chat_database_exported_title">Chat-Datenbank wurde exportiert</string>
<string name="chat_database_exported_continue">Weiter</string>
@@ -15,10 +15,10 @@
<string name="send_disappearing_message_30_seconds">30 másodperc</string>
<string name="one_time_link_short">Egyszer használatos hivatkozás</string>
<string name="contact_wants_to_connect_via_call">%1$s szeretne kapcsolatba lépni önnel ezen keresztül:</string>
<string name="about_simplex_chat">A SimpleX Chat-ről</string>
<string name="about_simplex_chat">A SimpleX Chatről</string>
<string name="chat_item_ttl_day">1 nap</string>
<string name="abort_switch_receiving_address">Címváltoztatás megszakítása</string>
<string name="about_simplex">A SimpleX-ről</string>
<string name="about_simplex">A SimpleXről</string>
<string name="color_primary">Kiemelés</string>
<string name="callstatus_accepted">fogadott hívás</string>
<string name="network_enable_socks_info">Hozzáférés a kiszolgálókhoz SOCKS proxy segítségével a %d porton? A proxyt el kell indítani, mielőtt engedélyezné ezt az opciót.</string>
@@ -26,25 +26,25 @@
<string name="accept_call_on_lock_screen">Elfogadás</string>
<string name="above_then_preposition_continuation">gombra fent, majd:</string>
<string name="accept_contact_incognito_button">Elfogadás inkognítóban</string>
<string name="accept_connection_request__question">Kapcsolódási kérelem elfogadása?</string>
<string name="accept_connection_request__question">Ismerőskérelem elfogadása?</string>
<string name="accept_contact_button">Elfogadás</string>
<string name="accept">Elfogadás</string>
<string name="add_address_to_your_profile">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ősök számára.</string>
<string name="color_primary_variant">További kiemelés</string>
<string name="callstatus_error">hiba a hívásban</string>
<string name="callstatus_error">híváshiba</string>
<string name="v5_4_block_group_members">Csoporttagok letiltása</string>
<string name="la_authenticate">Hitelesítés</string>
<string name="empty_chat_profile_is_created">Egy üres csevegési profil jön létre a megadott névvel, és az alkalmazás a szokásos módon megnyílik.</string>
<string name="feature_cancelled_item">%s visszavonva</string>
<string name="smp_servers_preset_add">Előre beállított kiszolgálók hozzáadása</string>
<string name="calls_prohibited_with_this_contact">A hívások kezdeményezése le van tiltva ebben a csevegésben.</string>
<string name="network_session_mode_entity_description">Külön TCP kapcsolat (és SOCKS bejelentkezési adatok) lesz használva <b>minden ismerős és csoporttag számára</b>.
\n<b>Figyelem</b>: ha sok ismerőse van, az akkumulátor- és adathasználat jelentősen megnövekedhet és néhány kapcsolódási kísérlet sikertelen lehet.</string>
<string name="icon_descr_cancel_link_preview">hivatkozás előnézet visszavonása</string>
<string name="network_session_mode_entity_description">Külön TCP kapcsolat (és SOCKS bejelentkezési adatok) lesz használva <b>minden ismerős és csoporttag számára</b>. \u0020
\n<b>Figyelem</b>: ha sok ismerőse van, az akkumulátor- és az adathasználat jelentősen megnövekedhet, és néhány kapcsolódási kísérlet sikertelen lehet.</string>
<string name="icon_descr_cancel_link_preview">hivatkozás előnézetének visszavonása</string>
<string name="network_session_mode_user_description"><![CDATA[Külön TCP kapcsolat (és SOCKS bejelentkezési adatok) lesz használva <b>az alkalmazásban minden csevegési profiljához </b>.]]></string>
<string name="both_you_and_your_contact_can_send_disappearing">Mindkét fél küldhet eltűnő üzeneteket.</string>
<string name="keychain_is_storing_securely">Az Android Keystore-t a jelmondat biztonságos tárolására használják - lehetővé teszi az értesítési szolgáltatás működését.</string>
<string name="alert_title_msg_bad_hash">Hibás az üzenet ellenőrzőösszege</string>
<string name="alert_title_msg_bad_hash">Hibás az üzenet hasító értéke</string>
<string name="color_background">Háttér</string>
<string name="socks_proxy_setting_limitations"><![CDATA[<b>Tudnivaló</b>: az üzenet- és fájl átjátszók SOCKS proxy által vannak kapcsolatban. A hívások és URL hivatkozás előnézetek közvetlen kapcsolatot használnak.]]></string>
<string name="full_backup">Alkalmazásadatok biztonsági mentése</string>
@@ -114,7 +114,7 @@
<string name="icon_descr_audio_call">hanghívás</string>
<string name="bold_text">félkövér</string>
<string name="app_passcode_replaced_with_self_destruct">Az alkalmazás jelkód helyettesítésre kerül egy önmegsemmisítő jelkóddal.</string>
<string name="v5_3_new_interface_languages_descr">Arab, bulgár, finn, héber, thai és ukrán - köszönet a felhasználóknak és a Weblate-nek!</string>
<string name="v5_3_new_interface_languages_descr">Arab, bulgár, finn, héber, thai és ukrán - köszönet a felhasználóknak és a Weblate-nek.</string>
<string name="allow_voice_messages_question">Hangüzenetek engedélyezése?</string>
<string name="always_use_relay">Mindig használjon átjátszó kiszolgálót</string>
<string name="chat_preferences_always">mindig</string>
@@ -124,9 +124,9 @@
<string name="icon_descr_cancel_live_message">Élő csevegési üzenet visszavonása</string>
<string name="allow_irreversible_message_deletion_only_if">Az üzenetek végleges törlése kizárólag abban az esetben van engedélyezve, ha az ismerőse is engedélyezi. (24 óra)</string>
<string name="v4_6_audio_video_calls">Hang- és videóhívások</string>
<string name="integrity_msg_bad_hash">hibás az üzenet ellenőrzőösszege</string>
<string name="integrity_msg_bad_hash">hibás az üzenet hasító értéke</string>
<string name="notifications_mode_service">Mindig fut</string>
<string name="keychain_allows_to_receive_ntfs">Az Android Keystore biztonságosan fogja tárolni a jelmondatot az alkalmazás újraindítása, vagy a jelmondat megváltoztatás után - lehetővé téve az értesítések fogadását.</string>
<string name="keychain_allows_to_receive_ntfs">Az Android Keystore biztonságosan fogja tárolni a jelmondatot az alkalmazás újraindítása, vagy a jelmondat megváltoztatás után - lehetővé teszi az értesítések fogadását.</string>
<string name="all_app_data_will_be_cleared">Minden alkalmazásadat törölve.</string>
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Legjobb akkumulátoridő</b>. Csak akkor kap értesítéseket, amikor az alkalmazás meg van nyitva. (NINCS háttérszolgáltatás.)]]></string>
<string name="appearance_settings">Megjelenés</string>
@@ -137,7 +137,7 @@
<string name="group_member_role_author">szerző</string>
<string name="allow_your_contacts_irreversibly_delete">Az elküldött üzenetek végleges törlése engedélyezve van az ismerősei számára. (24 óra)</string>
<string name="cancel_verb">Mégse</string>
<string name="notifications_mode_off_desc">Az alkalmazás csak akkor tud értesítéseket fogadni, amikor meg van nyitva. A háttérszolgáltatás nem indul el.</string>
<string name="notifications_mode_off_desc">Az alkalmazás csak akkor tud értesítéseket fogadni, amikor meg van nyitva. A háttérszolgáltatás nem indul el</string>
<string name="v5_1_better_messages">Jobb üzenetek</string>
<string name="abort_switch_receiving_address_desc">A cím módosítása megszakad. A régi fogadási cím kerül felhasználásra.</string>
<string name="allow_verb">Engedélyezés</string>
@@ -147,7 +147,7 @@
<string name="v5_0_app_passcode">Alkalmazás jelkód</string>
<string name="icon_descr_asked_to_receive">Felkérték a kép fogadására</string>
<string name="use_camera_button">Kamera</string>
<string name="cannot_access_keychain">A Keystore-hoz nem sikerül hozzáférni az adatbázis jelszó mentése végett</string>
<string name="cannot_access_keychain">Nem érhető el a Keystore az adatbázis jelszavának mentéséhez</string>
<string name="callstatus_in_progress">hívás folyamatban</string>
<string name="auto_accept_images">Képek automatikus elfogadása</string>
<string name="allow_your_contacts_to_call">A hívások kezdeményezése engedélyezve van az ismerősei számára.</string>
@@ -183,7 +183,7 @@
<string name="rcv_group_event_member_connected">kapcsolódott</string>
<string name="connect_via_link_verb">Kapcsolódás</string>
<string name="group_member_status_connected">kapcsolódott</string>
<string name="connected_mobile">Csatlakoztatott telefon</string>
<string name="connected_mobile">Társított mobil eszköz</string>
<string name="server_connected">kapcsolódva</string>
<string name="change_role">Szerepkör megváltoztatása</string>
<string name="icon_descr_server_status_connected">Kapcsolódva</string>
@@ -202,7 +202,7 @@
<string name="delete_contact_all_messages_deleted_cannot_undo_warning">Az ismerős és az összes üzenet törlésre kerül - ez a művelet nem vonható vissza!</string>
<string name="contacts_can_mark_messages_for_deletion">Az ismerősei törlésre jelölhetnek üzeneteket; ön majd meg tudja nézni azokat.</string>
<string name="connect_via_invitation_link">Kapcsolódás egyszer használatos hivatkozással?</string>
<string name="connect_via_link_or_qr">Kapcsolódás egy hivatkozás / QR-kód által</string>
<string name="connect_via_link_or_qr">Kapcsolódás egy hivatkozáson vagy QR-kódon keresztül</string>
<string name="connection_error_auth">Kapcsolódási hiba (AUTH)</string>
<string name="notification_preview_mode_contact">Ismerős neve</string>
<string name="connect_via_contact_link">Kapcsolódik a kapcsolattartási címen keresztül?</string>
@@ -210,7 +210,7 @@
<string name="copy_verb">Másolás</string>
<string name="continue_to_next_step">Folytatás</string>
<string name="connect_plan_connect_via_link">Kapcsolódás egy hivatkozáson keresztül?</string>
<string name="contact_already_exists">Létező ismerős</string>
<string name="contact_already_exists">Az ismerős már létezik</string>
<string name="core_version">Fő verzió: v%s</string>
<string name="icon_descr_contact_checked">Ismerős ellenőrizve</string>
<string name="connect_plan_connect_to_yourself">Kapcsolódás saját magához?</string>
@@ -229,7 +229,7 @@
<string name="status_contact_has_no_e2e_encryption">az ismerősnek nincs e2e titkosítása</string>
<string name="chat_preferences_contact_allows">Ismerős engedélyezi</string>
<string name="notification_preview_somebody">Ismerős elrejtve:</string>
<string name="connect_to_desktop">Kapcsolódás számítógéphez</string>
<string name="connect_to_desktop">Társítás számítógéppel</string>
<string name="icon_descr_context">Környezeti ikon</string>
<string name="connect_via_link">Kapcsolódás egy hivatkozáson keresztül</string>
<string name="receipts_section_contacts">Ismerősök</string>
@@ -271,7 +271,7 @@
<string name="group_connection_pending">kapcsolódás…</string>
<string name="delete_chat_profile">Csevegési profil törlése</string>
<string name="custom_time_picker_custom">egyedi</string>
<string name="callstatus_connecting">hívás kapcsolódik</string>
<string name="callstatus_connecting">kapcsolódási hívás</string>
<string name="customize_theme_title">Téma személyre szabása</string>
<string name="maximum_supported_file_size">Jelenleg támogatott legnagyobb fájl méret: %1$s.</string>
<string name="smp_server_test_delete_file">Fájl törlése</string>
@@ -325,14 +325,14 @@
<string name="contact_connection_pending">kapcsolódás…</string>
<string name="chat_database_deleted">Csevegési adatbázis törölve</string>
<string name="group_member_status_introduced">kapcsolódás (bejelentve)</string>
<string name="create_group_link">Csoportos hivatkozás létrehozása</string>
<string name="create_group_link">Csoporthivatkozás létrehozása</string>
<string name="chat_console">Csevegési konzol</string>
<string name="delete_files_and_media_for_all_users">Fájlok törlése minden csevegési profilból</string>
<string name="smp_server_test_delete_queue">Várólista törlése</string>
<string name="button_delete_contact">Ismerős törlése</string>
<string name="archive_created_on_ts">Létrehozva ekkor: %1$s</string>
<string name="rcv_conn_event_switch_queue_phase_changing">cím megváltoztatása…</string>
<string name="connected_to_mobile">Csatlakoztatva a mobilhoz</string>
<string name="connected_to_mobile">Társítva a mobil eszközzel</string>
<string name="current_passphrase">Jelenlegi jelmondat…</string>
<string name="choose_file_title">Fájl kiválasztás</string>
<string name="delete_image">Kép törlése</string>
@@ -346,7 +346,7 @@
<string name="smp_server_test_compare_file">Fájl összehasonlítás</string>
<string name="your_chats">Csevegések</string>
<string name="delete_message__question">Üzenet törlése?</string>
<string name="delete_pending_connection__question">Függő kapcsolatfelvételi kérések törlése?</string>
<string name="delete_pending_connection__question">Függőben lévő ismerőskérelem törlése?</string>
<string name="database_encrypted">Adatbázis titkosítva!</string>
<string name="clear_chat_question">Üzenetek kiürítése?</string>
<string name="database_downgrade">Adatbázis visszafejlesztése</string>
@@ -358,7 +358,7 @@
<string name="info_row_database_id">Adatbázis ID</string>
<string name="share_text_database_id">Adatbázis ID: %d</string>
<string name="developer_options">Adatbázis azonosítók és átviteli izolációs beállítások.</string>
<string name="database_encryption_will_be_updated">Az adatbázis titkosítás jelmondata megváltoztatásra és mentésre kerül a Keystore-ban.</string>
<string name="database_encryption_will_be_updated">Az adatbázis-titkosítási jelmondat megváltoztatásra és mentésre kerül a Keystore-ban.</string>
<string name="database_will_be_encrypted_and_passphrase_stored_in_settings">Az adatbázis titkosításra kerül és a jelmondat eltárolásra a beállításokban.</string>
<string name="smp_servers_delete_server">Kiszolgáló törlése</string>
<string name="auth_device_authentication_is_disabled_turning_off">A készüléken nincs beállítva a képernyőzár. A SimpleX zár ki van kapcsolva.</string>
@@ -381,7 +381,7 @@
<string name="ttl_months">%d hónap</string>
<string name="delete_address__question">Cím törlése?</string>
<string name="receipts_contacts_title_disable">Üzenet kézbesítési jelentések letiltása?</string>
<string name="passphrase_is_different">Az adatbázis jelmondata eltér a Keystore-ban lévőtől.</string>
<string name="passphrase_is_different">Az adatbázis jelmondat eltér a Keystore-ban lévőtől.</string>
<string name="direct_messages">Közvetlen üzenetek</string>
<string name="icon_descr_email">E-mail</string>
<string name="receipts_contacts_disable_for_all">Letiltás mindenki számára</string>
@@ -415,7 +415,7 @@
<string name="custom_time_unit_days">nap</string>
<string name="ttl_day">%d nap</string>
<string name="delete_chat_archive_question">Csevegési archívum törlése?</string>
<string name="failed_to_create_user_duplicate_title">Duplikált megjelenítési név!</string>
<string name="failed_to_create_user_duplicate_title">Duplikált megjelenített név!</string>
<string name="receipts_contacts_disable_keep_overrides">Letiltás (felülírások megtartásával)</string>
<string name="database_upgrade">Adatbázis fejlesztése</string>
<string name="blocked_items_description">%d üzenet letiltva</string>
@@ -430,7 +430,7 @@
<string name="delete_files_and_media_all">Minden fájl törlése</string>
<string name="database_will_be_encrypted">Az adatbázis titkosításra kerül.</string>
<string name="database_passphrase_and_export">Adatbázis jelmondat és -exportálás</string>
<string name="database_will_be_encrypted_and_passphrase_stored">Az adatbázis titkosításra kerül és a jelmondat eltárolásra a Keystore-ban.</string>
<string name="database_will_be_encrypted_and_passphrase_stored">Az adatbázis titkosításra kerül és a jelmondat a Keystore-ban lesz tárolva.</string>
<string name="enable_automatic_deletion_question">Automatikus üzenet törlés engedélyezése?</string>
<string name="delete_contact_menu_action">Törlés</string>
<string name="mtr_error_no_down_migration">az adatbázis verziója újabb, mint az alkalmazásé, visszafelé átköltöztetés nem lehetséges a következőhöz: %s</string>
@@ -450,7 +450,7 @@
<string name="edit_image">Kép szerkesztése</string>
<string name="disable_notifications_button">Értesítések letiltása</string>
<string name="devices">Eszközök</string>
<string name="multicast_discoverable_via_local_network">Látható helyi hálózaton</string>
<string name="multicast_discoverable_via_local_network">Látható a helyi hálózaton</string>
<string name="dont_enable_receipts">Ne engedélyezze</string>
<string name="delete_archive">Archívum törlése</string>
<string name="disappearing_prohibited_in_this_chat">Az eltűnő üzenetek küldése le van tiltva ebben a csevegésben.</string>
@@ -483,8 +483,8 @@
<string name="error_setting_network_config">Hiba a hálózat konfigurációjának frissítésekor</string>
<string name="network_option_enable_tcp_keep_alive">TCP életben tartása</string>
<string name="icon_descr_flip_camera">Kamera váltás</string>
<string name="email_invite_body">Üdv!
\nCsatlakozzon hozzám SimpleX Chat-en keresztül: %s</string>
<string name="email_invite_body">Üdvözlöm!
\nCsatlakozzon hozzám a SimpleX Chaten keresztül: %s</string>
<string name="display_name_cannot_contain_whitespace">A megjelenített név nem tartalmazhat szóközöket.</string>
<string name="info_row_group">Csoport</string>
<string name="enter_welcome_message_optional">Üdvözlő üzenet megadása… (opcionális)</string>
@@ -499,7 +499,7 @@
<string name="failed_to_parse_chats_title">A csevegések betöltése sikertelen</string>
<string name="connect_plan_group_already_exists">A csoport már létezik!</string>
<string name="v4_4_french_interface">Francia kezelőfelület</string>
<string name="v4_2_group_links">Csoport hivatkozások</string>
<string name="v4_2_group_links">Csoporthivatkozások</string>
<string name="v5_1_message_reactions_descr">Végre, megvannak! 🚀</string>
<string name="error_starting_chat">Hiba a csevegés elindításakor</string>
<string name="group_profile_is_stored_on_members_devices">A csoport profilja a tagok eszközein tárolódik, nem a kiszolgálókon.</string>
@@ -515,7 +515,7 @@
<string name="favorite_chat">Kedvenc</string>
<string name="v4_6_group_moderation">Csoport moderáció</string>
<string name="choose_file">Fájl</string>
<string name="group_link">Csoport hivatkozás</string>
<string name="group_link">Csoporthivatkozás</string>
<string name="snd_conn_event_ratchet_sync_required">titkosítás újraegyeztetés szükséges %s számára</string>
<string name="failed_to_active_user_title">Hiba a profil váltásakor!</string>
<string name="settings_experimental_features">Kísérleti funkciók</string>
@@ -536,7 +536,7 @@
<string name="group_is_decentralized">Teljesen decentralizált - kizárólag tagok számára látható.</string>
<string name="file_with_path">Fájl: %s</string>
<string name="icon_descr_hang_up">Hívás befejezése</string>
<string name="error_deleting_link_for_group">Hiba a csoport hivatkozásának törlésekor</string>
<string name="error_deleting_link_for_group">Hiba a csoporthivatkozás törlésekor</string>
<string name="file_saved">Fájl elmentve</string>
<string name="fix_connection_question">Kapcsolat javítása?</string>
<string name="files_and_media">Fájlok és médiatartalom</string>
@@ -552,8 +552,8 @@
<string name="failed_to_parse_chat_title">A csevegés betöltése sikertelen</string>
<string name="smp_servers_enter_manually">Kiszolgáló megadása kézzel</string>
<string name="file_will_be_received_when_contact_is_online">A fájl akkor érkezik meg, amikor a küldője elérhető lesz, várjon, vagy ellenőrizze később!</string>
<string name="error_creating_link_for_group">Hiba a csoport hivatkozásának létrehozásakor</string>
<string name="from_gallery_button">A Galériából</string>
<string name="error_creating_link_for_group">Hiba a csoporthivatkozás létrehozásakor</string>
<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>
@@ -562,12 +562,12 @@
<string name="group_members_can_send_disappearing">A csoport tagjai 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="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="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 csoport hivatkozás frissítésekor</string>
<string name="error_updating_link_for_group">Hiba a csoporthivatkozás frissítésekor</string>
<string name="group_member_status_group_deleted">a csoport törölve</string>
<string name="snd_group_event_group_profile_updated">csoportprofil frissítve</string>
<string name="error_deleting_pending_contact_connection">Hiba a függőben lévő ismerős kapcsolatának törlésekor</string>
@@ -593,7 +593,7 @@
<string name="error_aborting_address_change">Hiba a cím megváltoztatásának megszakításakor</string>
<string name="error_receiving_file">Hiba a fájl fogadásakor</string>
<string name="conn_event_ratchet_sync_ok">titkosítás rendben</string>
<string name="error_deleting_contact_request">Hiba az ismerős kérelem törlésekor</string>
<string name="error_deleting_contact_request">Hiba az ismerőskérelem törlésekor</string>
<string name="receipts_groups_title_enable">Üzenet kézbesítési jelentéseket engedélyezése csoportok számára?</string>
<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>
@@ -604,7 +604,7 @@
<string name="v4_6_reduced_battery_usage">Tovább csökkentett akkumulátor használat</string>
<string name="error_stopping_chat">Hiba a csevegés megállításakor</string>
<string name="snd_conn_event_ratchet_sync_ok">titkosítás rendben %s számára</string>
<string name="delete_group_for_all_members_cannot_undo_warning">Csoport törlésre kerül minden tag számára - ez a művelet nem vonható vissza!</string>
<string name="delete_group_for_all_members_cannot_undo_warning">A csoport törlésre kerül minden tag számára - ez a művelet nem vonható vissza!</string>
<string name="v5_2_fix_encryption_descr">Titkosítás javítása az adatmentések helyreállítása után.</string>
<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>
@@ -623,7 +623,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édia</string>
<string name="image_saved">A kép mentve a Galériába</string>
<string name="image_saved">A kép mentve a Galériába</string>
<string name="hide_notification">Elrejt</string>
<string name="la_immediately">Azonnal</string>
<string name="files_and_media_prohibited">A fájlok- és a médiatartalom küldése le van tiltva!</string>
@@ -648,7 +648,7 @@
<string name="ignore">Figyelmen kívül hagyás</string>
<string name="icon_descr_image_snd_complete">Kép elküldve</string>
<string name="notification_preview_mode_hidden">Rejtett</string>
<string name="host_verb">Házigazda</string>
<string name="host_verb">Kiszolgáló</string>
<string name="initial_member_role">Kezdeti szerepkör</string>
<string name="invalid_chat">érvénytelen csevegés</string>
<string name="custom_time_unit_hours">óra</string>
@@ -678,12 +678,12 @@
<string name="network_disable_socks_info">Megerősítés esetén az üzenetküldő kiszolgálók látni fogják az IP-címét és a szolgáltatóját azt, hogy mely kiszolgálókhoz kapcsolódik.</string>
<string name="image_will_be_received_when_contact_completes_uploading">A kép akkor érkezik meg, amikor a küldője befejezte annak feltöltését.</string>
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code"><![CDATA[💻 asztali számítógép: a megjelenített QR-kód beolvasása az alkalmazásból, a <b>QR kód beolvasásával</b>.]]></string>
<string name="if_you_received_simplex_invitation_link_you_can_open_in_browser">A kapott SimpleX Chat meghívó hivatkozását megnyithatja böngészőjében:</string>
<string name="if_you_received_simplex_invitation_link_you_can_open_in_browser">A kapott SimpleX Chat meghívó hivatkozását megnyithatja a böngészőjében:</string>
<string name="if_you_enter_self_destruct_code">Ha az alkalmazás megnyitásakor megadja az önmegsemmisítő jelkódot:</string>
<string name="found_desktop">Megtalált számítógép</string>
<string name="desktop_devices">Számítógépek</string>
<string name="how_to_use_markdown">A markdown használata</string>
<string name="create_chat_profile">Csevegő profil létrehozása</string>
<string name="create_chat_profile">Csevegési profil létrehozása</string>
<string name="immune_to_spam_and_abuse">Levélszemét elleni védelem</string>
<string name="disconnect_remote_hosts">Mobilok leválasztása</string>
<string name="v4_5_multiple_chat_profiles_descr">Különböző nevek, avatarok és átviteli izoláció.</string>
@@ -691,7 +691,7 @@
<string name="icon_descr_expand_role">Szerepkör kiválasztásának bővítése</string>
<string name="image_will_be_received_when_contact_is_online">A kép akkor érkezik meg, amikor a küldője elérhető lesz, várjon, vagy ellenőrizze később!</string>
<string name="group_member_status_invited">meghíva</string>
<string name="invalid_connection_link">Érvénytelen kapcsolati hivatkozás</string>
<string name="invalid_connection_link">Érvénytelen kapcsolattartási hivatkozás</string>
<string name="mute_chat">Némítás</string>
<string name="no_details">nincsenek részletek</string>
<string name="icon_descr_call_missed">Nem fogadott hívás</string>
@@ -699,13 +699,13 @@
<string name="delete_message_cannot_be_undone_warning">Az üzenet törlésre kerül - ez a művelet nem vonható vissza!</string>
<string name="markdown_help">Markdown segítség</string>
<string name="notification_preview_new_message">új üzenet</string>
<string name="old_database_archive">Régi adatbázis archívum</string>
<string name="old_database_archive">Régi adatbázis-archívum</string>
<string name="network_settings_title">Haladó beállítások</string>
<string name="no_info_on_delivery">Nincs kézbesítési információ</string>
<string name="moderated_description">moderált</string>
<string name="member_will_be_removed_from_group_cannot_be_undone">A tag eltávolítása a csoportból - ez a művelet nem vonható vissza!</string>
<string name="ensure_xftp_server_address_are_correct_format_and_unique">Győződjön meg róla, hogy az XFTP kiszolgáló címei megfelelő formátumúak, sorszeparáltak és nincsenek duplikálva.</string>
<string name="no_contacts_selected">Nem kerültek ismerősök kiválasztásra</string>
<string name="no_contacts_selected">Nincs kiválasztva ismerős</string>
<string name="no_received_app_files">Nincsenek fogadott, vagy küldött fájlok</string>
<string name="mobile_tap_open_in_mobile_app_then_tap_connect_in_app"><![CDATA[📱 mobil: koppintson a <b>Megnyitás mobil alkalmazásban</b>, majd koppintson a <b>Kapcsolódás</b> gombra az alkalmazásban.]]></string>
<string name="markdown_in_messages">Markdown az üzenetekben</string>
@@ -721,7 +721,7 @@
<string name="info_row_local_name">Helyi név</string>
<string name="network_and_servers">Hálózat és kiszolgálók</string>
<string name="settings_notification_preview_title">Értesítés előnézet</string>
<string name="v5_4_link_mobile_desktop">Társítsa össze a mobil és az asztali alkalmazásokat! 🔗</string>
<string name="v5_4_link_mobile_desktop">Társítsa össze a mobil és asztali alkalmazásokat! 🔗</string>
<string name="conn_level_desc_indirect">közvetett (%1$s)</string>
<string name="v4_6_reduced_battery_usage_descr">Hamarosan további fejlesztések érkeznek!</string>
<string name="message_reactions_prohibited_in_this_chat">Az üzenetreakciók küldése le van tiltva ebben a csevegésben.</string>
@@ -749,12 +749,12 @@
<string name="network_use_onion_hosts_no_desc">Onion kiszolgálók nem lesznek használva.</string>
<string name="custom_time_unit_minutes">perc</string>
<string name="learn_more">Tudjon meg többet</string>
<string name="notification_new_contact_request">Új kapcsolattartási kérelem</string>
<string name="notification_new_contact_request">Új ismerőskérelem</string>
<string name="joining_group">Csatlakozás a csoporthoz</string>
<string name="linked_desktop_options">Összekapcsolt számítógép beállítások</string>
<string name="rcv_group_event_invited_via_your_group_link">meghíva az ön csoport hivatkozásán keresztül</string>
<string name="linked_desktop_options">Társított számítógép beállítások</string>
<string name="rcv_group_event_invited_via_your_group_link">meghíva az ön csoporthivatkozásán keresztül</string>
<string name="rcv_group_event_member_left">elhagyta a csoportot</string>
<string name="linked_desktops">Összekapcsolt számítógépek</string>
<string name="linked_desktops">Társított számítógépek</string>
<string name="la_no_app_password">Nincs alkalmazás jelkód</string>
<string name="muted_when_inactive">Némítás, ha inaktív!</string>
<string name="alert_title_group_invitation_expired">A meghívó lejárt!</string>
@@ -779,7 +779,7 @@
<string name="v4_5_italian_interface">Olasz kezelőfelület</string>
<string name="system_restricted_background_in_call_title">Nincsenek háttérhívások</string>
<string name="messages_section_title">Üzenetek</string>
<string name="linked_mobiles">Összekapcsolt mobil eszközök</string>
<string name="linked_mobiles">Társított mobil eszközök</string>
<string name="incognito_info_allows">Lehetővé teszi, hogy egyetlen csevegőprofilon belül több anonim kapcsolat legyen, anélkül, hogy megosztott adatok lennének közöttük.</string>
<string name="delete_message_mark_deleted_warning">Az üzenet törlésre lesz jelölve. A címzett(ek) képes(ek) lesz(nek) felfedni ezt az üzenetet.</string>
<string name="leave_group_button">Elhagyás</string>
@@ -800,12 +800,12 @@
<string name="make_profile_private">Tegye priváttá a profilját!</string>
<string name="message_delivery_error_title">Üzenetkézbesítési hiba</string>
<string name="v4_5_multiple_chat_profiles">Több csevegőprofil</string>
<string name="marked_deleted_description">töröltnek jelölve</string>
<string name="marked_deleted_description">törlésre jelölve</string>
<string name="user_mute">Némítás</string>
<string name="link_a_mobile">Egy mobil összekapcsolása</string>
<string name="link_a_mobile">Egy mobil 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 a kliensek tárolják a felhasználói profilokat, ismerősöket, csoportokat és a <b>2 rétegű végponttól-végpontig titkosítással</b> küldött üzeneteket.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Csak a kliensek tárolják a felhasználói 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="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>
@@ -823,26 +823,26 @@
<string name="feature_offered_item">ajánlott %s</string>
<string name="button_leave_group">Csoport elhagyása</string>
<string name="unblock_member_desc">Minden %s által írt üzenet megjelenik!</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Sokan kérdezték: <i>Ha a SimpleX Chat-nek nincs felhasználói azonosítója, hogyan lehet mégis üzeneteket küldeni?</i>]]></string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Sokan kérdezték: <i>Ha a SimpleX Chatnek nincs felhasználói azonosítója, hogyan lehet mégis üzeneteket küldeni?</i>]]></string>
<string name="alert_text_skipped_messages_it_can_happen_when">Ez akkor fordulhat elő, ha:
\n1. Az üzenetek 2 nap után, vagy a kiszolgálón 30 nap után lejártak.
\n2. Az üzenet visszafejtése sikertelen volt, mert ön, vagy az ismerőse régebbi adatbázis biztonsági mentést használt.
\n3. A kapcsolat sérült.</string>
<string name="group_member_role_observer">megfigyelő</string>
<string name="description_via_group_link_incognito">inkognitó a csoportos hivatkozáson keresztül</string>
<string name="description_via_group_link_incognito">inkognitó a csoporthivatkozáson keresztül</string>
<string name="network_use_onion_hosts_prefer_desc">Onion kiszolgálók használata, ha azok rendelkezésre állnak.</string>
<string name="invite_friends">Ismerősök meghívása</string>
<string name="color_surface">Menük és figyelmeztetések</string>
<string name="icon_descr_add_members">Tagok meghívása</string>
<string name="group_preview_join_as">csatlakozás mint %s</string>
<string name="no_selected_chat">Nincs kiválasztott csevegés</string>
<string name="no_selected_chat">Nincs kiválasztva csevegés</string>
<string name="users_delete_data_only">Csak helyi profiladatok</string>
<string name="description_via_one_time_link_incognito">inkognitó az egyszer használatos hivatkozáson keresztül</string>
<string name="description_via_one_time_link_incognito">inkognitó egy egyszer használatos hivatkozáson keresztül</string>
<string name="share_text_moderated_at">Moderálva lett ekkor: %s</string>
<string name="one_time_link">Egyszer használatos meghívó hivatkozás</string>
<string name="invalid_name">Érvénytelen név!</string>
<string name="email_invite_subject">Beszélgessünk a SimpleX Chat-ben</string>
<string name="info_row_moderated_at">Moderálva lett ekkor:</string>
<string name="email_invite_subject">Beszélgessünk a SimpleX Chatben</string>
<string name="info_row_moderated_at">Moderálva ekkor:</string>
<string name="v4_4_live_messages">Élő üzenetek</string>
<string name="mark_code_verified">Hitelesítés</string>
<string name="v5_2_message_delivery_receipts">Üzenetkézbesítési bizonylatok!</string>
@@ -864,7 +864,7 @@
<string name="group_member_role_member">tag</string>
<string name="make_private_connection">Privát kapcsolat létrehozása</string>
<string name="moderated_item_description">moderálva lett %s által</string>
<string name="import_theme_error_desc">Győződjön meg arról, hogy a fájl helyes YAML-szintaxist tartalmaz. Exportálja a témát, hogy legyen egy példa a téma fájl szerkezetére.</string>
<string name="import_theme_error_desc">Győződjön meg arról, hogy a fájl helyes YAML-szintaxist tartalmaz. Exportálja a témát, hogy legyen egy példa a témafájl szerkezetére.</string>
<string name="italic_text">dőlt</string>
<string name="non_content_uri_alert_title">Érvénytelen fájl elérési útvonal</string>
<string name="connect_via_group_link">Csatlakozik a csoporthoz?</string>
@@ -904,13 +904,13 @@
<string name="settings_notification_preview_mode_title">Előnézet megjelenítése</string>
<string name="callstate_waiting_for_confirmation">várakozás a visszaigazolásra…</string>
<string name="stop_file__action">Fájl megállítása</string>
<string name="description_via_group_link">csoport hivatkozáson keresztül</string>
<string name="description_via_group_link">a csoporthivatkozáson keresztül</string>
<string name="network_option_ping_interval">PING időköze</string>
<string name="send_disappearing_message">Eltűnő üzenet küldése</string>
<string name="self_destruct_passcode">Önmegsemmisítési jelkód</string>
<string name="save_and_update_group_profile">Mentés és csoportprofil frissítése</string>
<string name="your_privacy">Adatvédelem</string>
<string name="your_simplex_contact_address">Az ön SimpleX címe</string>
<string name="your_simplex_contact_address">Profil SimpleX címe</string>
<string name="alert_text_fragment_please_report_to_developers">Jelentse a fejlesztőknek.</string>
<string name="people_can_connect_only_via_links_you_share">Ön dönti el, hogy kivel beszélget.</string>
<string name="prohibit_sending_disappearing">Az eltűnő üzenetek küldése le van tiltva.</string>
@@ -946,7 +946,7 @@
<string name="connect_via_link_or_qr_from_clipboard_or_in_person">(beolvasás, vagy beillesztés a vágólapról)</string>
<string name="waiting_for_video">Videóra várakozás</string>
<string name="reply_verb">Válasz</string>
<string name="connect_plan_this_is_your_own_one_time_link">Ez az egyszer használatos hivatkozása!</string>
<string name="connect_plan_this_is_your_own_one_time_link">Ez az ön egyszer használatos hivatkozása!</string>
<string name="ntf_channel_calls">SimpleX Chat hívások</string>
<string name="connect_use_new_incognito_profile">Új inkognító profil használata</string>
<string name="contact_developers">Frissítse az alkalmazást, és lépjen kapcsolatba a fejlesztőkkel.</string>
@@ -964,10 +964,10 @@
<string name="scan_code_from_contacts_app">Biztonsági kód beolvasása az ismerősének alkalmazásából.</string>
<string name="observer_cant_send_message_desc">Lépjen kapcsolatba a csoport adminnal.</string>
<string name="icon_descr_video_on">Videó bekapcsolva</string>
<string name="display_name__field">Profil neve:</string>
<string name="display_name__field">Profilnév:</string>
<string name="paste_button">Beillesztés</string>
<string name="thank_you_for_installing_simplex">Köszönjük, hogy telepítette a SimpleX Chatet!</string>
<string name="star_on_github">Csillagozás a GitHub-on</string>
<string name="star_on_github">Csillagozás a GitHubon</string>
<string name="remove_member_confirmation">Eltávolítás</string>
<string name="search_verb">Keresés</string>
<string name="sync_connection_force_question">Titkosítás újraegyeztetése?</string>
@@ -1001,7 +1001,7 @@
<string name="random_port">Véletlen</string>
<string name="share_with_contacts">Megosztás az ismerősökkel</string>
<string name="sender_you_pronoun">ön</string>
<string name="you_have_no_chats">Nincsenek csevegési üzenetek</string>
<string name="you_have_no_chats">Nincsenek csevegései</string>
<string name="send_disappearing_message_send">Küldés</string>
<string name="chat_item_ttl_seconds">%s másodperc</string>
<string name="recipient_colon_delivery_status">%s: %s</string>
@@ -1020,7 +1020,7 @@
<string name="profile_password">Profiljelszó</string>
<string name="theme">Téma</string>
<string name="remove_passphrase_from_settings">Jelmondat eltávolítása a beállításokból?</string>
<string name="simplex_link_group">SimpleX csoport hivatkozás</string>
<string name="simplex_link_group">SimpleX csoporthivatkozás</string>
<string name="icon_descr_waiting_for_image">Képre várakozás</string>
<string name="self_destruct">Önmegsemmisítés</string>
<string name="callstate_waiting_for_answer">várakozás a válaszra…</string>
@@ -1041,11 +1041,11 @@
<string name="use_random_passphrase">Véletlenszerű jelmondat használata</string>
<string name="call_connection_peer_to_peer">egyenrangú</string>
<string name="run_chat_section">CSEVEGÉSI SZOLGÁLTATÁS INDÍTÁSA</string>
<string name="paste_the_link_you_received">Fogadott hivatkozás beillesztése</string>
<string name="paste_the_link_you_received">Kapott hivatkozás beillesztése</string>
<string name="smp_save_servers_question">Kiszolgálók mentése?</string>
<string name="v4_2_security_assessment_desc">A SimpleX Chat biztonsága a Trail of Bits által lett auditálva.</string>
<string name="rcv_group_event_updated_group_profile">frissítette a csoport profilját</string>
<string name="settings_section_title_support">TÁMOGASSA A SIMPLEX CHATET</string>
<string name="settings_section_title_support">SIMPLEX CHAT TÁMOGATÁSA</string>
<string name="simplex_service_notification_title">SimpleX Chat szolgáltatás</string>
<string name="observer_cant_send_message_title">Nem lehet üzeneteket küldeni!</string>
<string name="is_verified">%s ellenőrzött</string>
@@ -1122,13 +1122,13 @@
<string name="your_SMP_servers">SMP kiszolgálók</string>
<string name="send_receipts_disabled_alert_title">Az üzenet kézbesítési jelentések le vannak tiltva</string>
<string name="open_database_folder">Adatbázis mappa megnyitása</string>
<string name="description_via_one_time_link">egyszer használatos hivatkozáson keresztül</string>
<string name="description_via_one_time_link">egy egyszer használatos hivatkozáson keresztül</string>
<string name="set_group_preferences">Csoportbeállítások megadása</string>
<string name="simplex_link_connection">ezen keresztül: %1$s</string>
<string name="chat_preferences_yes">igen</string>
<string name="voice_message">Hangüzenet</string>
<string name="settings_section_title_use_from_desktop">Használat számítógépl</string>
<string name="settings_section_title_you">ÖN</string>
<string name="settings_section_title_use_from_desktop">Társítás számítógéppel</string>
<string name="settings_section_title_you">PROFIL</string>
<string name="network_proxy_port">port %d</string>
<string name="to_connect_via_link_title">Kapcsolódás hivatkozáson keresztül</string>
<string name="share_address">Cím megosztása</string>
@@ -1144,7 +1144,7 @@
<string name="rcv_group_event_user_deleted">eltávolítottak</string>
<string name="simplex_address">SimpleX cím</string>
<string name="show_dev_options">Megjelenítés:</string>
<string name="callstate_received_answer">fogadott válasz</string>
<string name="callstate_received_answer">válasz fogadása</string>
<string name="restore_database_alert_title">Adatbázismentés visszaállítása?</string>
<string name="simplex_service_notification_text">Üzenetek fogadása…</string>
<string name="rcv_group_event_2_members_connected">%s és %s kapcsolódott</string>
@@ -1169,7 +1169,7 @@
<string name="prohibit_message_reactions_group">Az üzenetreakciók küldése le van tiltva.</string>
<string name="language_system">Rendszer</string>
<string name="icon_descr_received_msg_status_unread">olvasatlan</string>
<string name="icon_descr_server_status_pending">Függő</string>
<string name="icon_descr_server_status_pending">Függőben</string>
<string name="personal_welcome">Üdvözöljük %1$s!</string>
<string name="remove_passphrase_from_keychain">Jelmondat eltávolítása a Keystrore-ból?</string>
<string name="auth_unlock">Feloldás</string>
@@ -1185,10 +1185,10 @@
<string name="share_image">Kép/videó megoszá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 alaphelyzetbe állítása</string>
<string name="reset_color">Színek visszaállítása</string>
<string name="network_options_save">Mentés</string>
<string name="switch_verb">Váltás</string>
<string name="paste_the_link_you_received_to_connect_with_your_contact">A kapott hivatkozás beillesztése az ismerősökhöz történő kapcsolódáshoz…</string>
<string name="paste_the_link_you_received_to_connect_with_your_contact">A kapott hivatkozás beillesztése az ismerőshöz való kapcsolódáshoz…</string>
<string name="scan_code">Beolvasás</string>
<string name="open_port_in_firewall_title">Port megnyitása a tűzfalon</string>
<string name="callstate_starting">indítás…</string>
@@ -1254,7 +1254,7 @@
<string name="share_text_received_at">Fogadva ekkor: %s</string>
<string name="la_notice_title_simplex_lock">SimpleX zár</string>
<string name="save_and_notify_group_members">Mentés és csoporttagok értesítése</string>
<string name="reset_verb">Alaphelyzetbe állítás</string>
<string name="reset_verb">Visszaállítás</string>
<string name="only_your_contact_can_add_message_reactions">Csak az ismerőse tud üzenetreakciókat küldeni.</string>
<string name="voice_messages">Hangüzenetek</string>
<string name="snd_group_event_user_left">elhagyta a csoportot</string>
@@ -1287,9 +1287,9 @@
<string name="v5_0_large_files_support">Videók és fájlok 1Gb méretig</string>
<string name="network_option_tcp_connection_timeout">TCP kapcsolat időtúllépés</string>
<string name="connect__your_profile_will_be_shared">A(z) %1$s nevű profiljának SimpleX címe megosztásra fog kerülni.</string>
<string name="you_are_already_connected_to_vName_via_this_link">Ön már kapcsolódott ehhez: %1$s.</string>
<string name="you_are_already_connected_to_vName_via_this_link">Ön már kapcsolódva van ehhez: %1$s.</string>
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">Jelenlegi csevegési adatbázis TÖRLÉSRE és FELCSERÉLÉSRE kerül az importált által!
\nEz a művelet nem vonható vissza - profiljai, ismerősei, csevegési üzenetei és fájljai véglegesen törölve lesznek!</string>
\nEz a művelet nem vonható vissza - profiljai, ismerősei, csevegési üzenetei és fájljai véglegesen törölve lesznek.</string>
<string name="chat_with_the_founder">Ötletek és javaslatok</string>
<string name="database_downgrade_warning">Figyelmeztetés: néhány adat elveszhet!</string>
<string name="tap_to_start_new_chat">Koppintson az új csevegés indításához</string>
@@ -1303,23 +1303,23 @@
<string name="snd_conn_event_switch_queue_phase_completed_for_member">cím megváltoztatva nála: %s</string>
<string name="receiving_files_not_yet_supported">fájlok fogadása egyelőre még nem támogatott</string>
<string name="save_group_profile">Csoportprofil mentése</string>
<string name="network_options_reset_to_defaults">Alaphelyzetbe állítás</string>
<string name="connection_error_auth_desc">Hacsak az ismerőse nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt, lehet hogy ez egy hiba jelentse a problémát.
\nA kapcsolódáshoz kérje meg ismerősét, hogy hozzon létre egy másik kapcsolati hivatkozást, és ellenőrizze, hogy a hálózati kapcsolat stabil-e.</string>
<string name="network_options_reset_to_defaults">Visszaállítás alaphelyzetbe</string>
<string name="connection_error_auth_desc">Hacsak az ismerőse nem törölte a kapcsolatot, vagy ez a hivatkozás már használatban volt egyszer, lehet hogy ez egy hiba jelentse a problémát.
\nA kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapcsolattartási hivatkozást, és ellenőrizze, hogy a hálózati kapcsolat stabil-e.</string>
<string name="video_call_no_encryption">videóhívás (nem e2e titkosított)</string>
<string name="smp_servers_use_server_for_new_conn">Alkalmazás új kapcsolatokhoz</string>
<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 érdekkében a push értesítési rendszer helyett az alkalmazás a <b>SimpleX háttérszolgáltatást </b> használja - az akkumulátor 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 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="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 a kapcsolatfelvételt és törölheti 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ági mentési eszközzel. Ha nem így történt, akkor lépjen kapcsolatba a fejlesztőkkel.</string>
\nVisszavonhatja ezt az ismerőskérelmet és törölheti 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>
<string name="error_xftp_test_server_auth">A kiszolgálónak engedélyre van szüksége a várólisták létrehozásához, ellenőrizze jelszavát</string>
<string name="database_initialization_error_desc">Az adatbázis nem működik megfelelően. Koppintson további információért</string>
<string name="stop_snd_file__message">A fájl küldése leállt.</string>
<string name="trying_to_connect_to_server_to_receive_messages">Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál.</string>
<string name="trying_to_connect_to_server_to_receive_messages">Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál.</string>
<string name="la_could_not_be_verified">Nem lehetett ellenőrizni; próbálja meg újra.</string>
<string name="moderate_message_will_be_marked_warning">Az üzenet minden tag számára moderáltként lesz megjelölve.</string>
<string name="enter_passphrase_notification_desc">Értesítések fogadásához adja meg az adatbázis jelmondatát</string>
@@ -1327,8 +1327,8 @@
<string name="auth_you_will_be_required_to_authenticate_when_you_start_or_resume">Az alkalmazás indításakor, vagy 30 másodpercnyi háttérben töltött idő után az alkalmazáshoz visszatérve hitelesítés szükséges.</string>
<string name="moderate_message_will_be_deleted_warning">Az üzenet minden tag számára törlésre kerül.</string>
<string name="video_decoding_exception_desc">A videó nem dekódolható. Próbálja ki egy másik videóval, vagy lépjen kapcsolatba a fejlesztőkkel.</string>
<string name="this_text_is_available_in_settings">Ez a szöveg a beállítások között érhető el</string>
<string name="profile_will_be_sent_to_contact_sending_link">Profilja elküldésre kerül ismerőse számára, akitől ezt a hivatkozást kapta.</string>
<string name="this_text_is_available_in_settings">Ez a szöveg a „Beállításokban” érhető el</string>
<string name="profile_will_be_sent_to_contact_sending_link">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>
@@ -1341,22 +1341,22 @@
<string name="network_error_desc">Hálózati kapcsolat ellenőrzése a következővel: %1$s, és próbálja újra.</string>
<string name="you_can_turn_on_lock">A SimpleX zár az „Adatvédelem és biztonság” menüben kapcsolható be.</string>
<string name="app_was_crashed">Az alkalmazás összeomlott</string>
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">Ellenőrizze, hogy a megfelelő hivatkozást használta-e, vagy kérje meg ismerősét, hogy küldjön egy másikat.</string>
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">Ellenőrizze, hogy a megfelelő hivatkozást használta-e, vagy kérje meg az ismerősét, hogy küldjön egy másikat.</string>
<string name="image_decoding_exception_desc">A kép nem dekódolható. Próbálja meg egy másik képpel, vagy lépjen kapcsolatba a fejlesztőkkel.</string>
<string name="non_content_uri_alert_text">Érvénytelen fájl elérési útvonalat osztott meg. Jelentse a problémát az alkalmazás fejlesztőinek.</string>
<string name="failed_to_create_user_duplicate_desc">Már van egy csevegési profil ugyanezzel a megjelenített névvel. Válasszon egy másik nevet.</string>
<string name="trying_to_connect_to_server_to_receive_messages_with_error">Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál (hiba: %1$s).</string>
<string name="trying_to_connect_to_server_to_receive_messages_with_error">Kapcsolódási kísérlet ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál (hiba: %1$s).</string>
<string name="stop_rcv_file__message">A fájl fogadása leállt.</string>
<string name="la_please_remember_to_store_password">Ne felejtse el, vagy tárolja biztonságosan az elveszett jelszót nem lehet visszaállítani!</string>
<string name="video_will_be_received_when_contact_completes_uploading">A videó akkor érkezik meg, amikor a küldője befejezte annak feltöltését.</string>
<string name="description_you_shared_one_time_link_incognito">egyszer használatos hivatkozást osztott meg inkognitóban</string>
<string name="connected_to_server_to_receive_messages_from_contact">Már kapcsolódott ahhoz a kiszolgálóhoz, amely az adott ismerőstől érkező üzenetek fogadására szolgál.</string>
<string name="connected_to_server_to_receive_messages_from_contact">Már kapcsolódott ahhoz a kiszolgálóhoz, amely az adott ismerősétől érkező üzenetek fogadására szolgál.</string>
<string name="you_can_enable_delivery_receipts_later">Később engedélyezheti a Beállításokban</string>
<string name="you_will_be_connected_when_group_host_device_is_online">Akkor lesz kapcsolódva a csoporthoz, amikor a csoport tulajdonosának eszköze online lesz, várjon, vagy ellenőrizze később!</string>
<string name="mtr_error_different">különböző átköltöztetés az alkalmazásban/adatbázisban: %s / %s</string>
<string name="connect_plan_you_are_already_connecting_to_vName"><![CDATA[A kapcsolódás már folyamatban van ehhez: <b>%1$s</b>.]]></string>
<string name="unhide_profile">Profil felfedése</string>
<string name="this_link_is_not_a_valid_connection_link">Ez a hivatkozás nem érvényes kapcsolati hivatkozás!</string>
<string name="this_link_is_not_a_valid_connection_link">Ez nem egy érvényes kapcsolattartási hivatkozás!</string>
<string name="to_verify_compare">A végpontok közötti titkosítás ellenőrzéséhez hasonlítsa össze (vagy olvassa be a QR-kódot) az ismerőse eszközén lévő kóddal.</string>
<string name="you_must_use_the_most_recent_version_of_database">A csevegési adatbázis legfrissebb verzióját CSAK egy eszközön kell használnia, ellenkező esetben előfordulhat, hogy az üzeneteket nem fogja megkapni valamennyi ismerősétől.</string>
<string name="messages_section_description">Ez a beállítás a jelenlegi csevegési profilban lévő üzenetekre érvényes</string>
@@ -1367,7 +1367,7 @@
<string name="contact_sent_large_file">Ismerőse a jelenleg megengedett maximális méretű (%1$s) fájlnál nagyobbat küldött.</string>
<string name="we_do_not_store_contacts_or_messages_on_servers">Az ismerősei és az üzenetek (kézbesítés után) nem kerülnek tárolásra a SimpleX kiszolgálókon.</string>
<string name="you_can_use_markdown_to_format_messages__prompt">Üzenetek formázása a szövegbe szúrt speciális karakterekkel:</string>
<string name="you_can_also_connect_by_clicking_the_link"><![CDATA[A hivatkozásra kattintva is kapcsolódhat. Ha megnyílik böngészőben, kattintson a<b>Megnyitás alkalmazásban</b> gombra.]]></string>
<string name="you_can_also_connect_by_clicking_the_link"><![CDATA[A hivatkozásra kattintva is kapcsolódhat. Ha megnyílik böngészőben, kattintson a<b>Megnyitás az alkalmazásban</b> gombra.]]></string>
<string name="your_chat_profile_will_be_sent_to_your_contact">Csevegési profilja elküldésre kerül
\naz ismerőse számára</string>
<string name="invite_prohibited_description">Egy olyan ismerősét próbálja meghívni, akivel inkognitóprofilt osztott meg abban a csoportban, amelyben a saját fő profilja van használatban</string>
@@ -1379,10 +1379,10 @@
<string name="voice_messages_are_prohibited">A hangüzenetek küldése le van tiltva ebben a csoportban.</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">- hangüzenetek 5 percig.
\n- egyedi eltűnési időhatár.
\n- előzmény szerkesztése.</string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Válassza a <i>Használat számítógépl</i> menüt a mobil alkalmazásban és olvassa be a QR-kódot.]]></string>
<string name="v5_1_better_messages_descr">- 5 perc hosszúságú hangüzenetek.
\n- egyedi üzenet-eltűnési időkorlát.
\n- előzmények szerkesztése.</string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Válassza a <i>Társítás számítógéppel</i> menüt a mobil alkalmazásban és olvassa be a QR-kódot.]]></string>
<string name="sender_at_ts">%s ekkor: %s</string>
<string name="you_will_be_connected_when_your_contacts_device_is_online">Akkor lesz kapcsolódva, amikor az ismerősének az eszköze online lesz, várjon, vagy ellenőrizze később!</string>
<string name="v5_4_block_group_members_descr">Kéretlen üzenetek elrejtése.</string>
@@ -1411,7 +1411,7 @@
<string name="snd_conn_event_switch_queue_phase_completed">cím megváltoztatva</string>
<string name="v4_3_irreversible_message_deletion_desc">Ismerősei engedélyezhetik a teljes üzenet törlést.</string>
<string name="you_have_to_enter_passphrase_every_time">A jelmondatot minden alkalommal meg kell adnia, amikor az alkalmazás elindul - nem az eszközön kerül tárolásra.</string>
<string name="open_port_in_firewall_desc">Ha engedélyezni szeretné, hogy egy mobilalkalmazás csatlakozzon a számítógéphez, akkor nyissa meg ezt a portot a tűzfalában, ha engedélyezte azt</string>
<string name="open_port_in_firewall_desc">Ha engedélyezni szeretné a mobilalkalmazás társítását a számítógéphez, akkor nyissa meg ezt a portot a tűzfalában, ha engedélyezte azt</string>
<string name="your_profile_is_stored_on_your_device">Profilja, ismerősei és az elküldött üzenetei az eszközön kerülnek tárolásra.</string>
<string name="system_restricted_background_warn"><![CDATA[Az értesítések engedélyezéséhez 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="this_string_is_not_a_connection_link">Ez a karakterlánc nem egy meghívó hivatkozás!</string>
@@ -1419,7 +1419,7 @@
<string name="connect_plan_you_are_already_connecting_via_this_one_time_link">A kapcsolódás már folyamatban van ezen az egyszer használatos hivatkozáson keresztül!</string>
<string name="you_wont_lose_your_contacts_if_delete_address">Nem veszíti el az ismerőseit, ha később törli a címét.</string>
<string name="updating_settings_will_reconnect_client_to_all_servers">A beállítások frissítése a kiszolgálókhoz való újra kapcsolódással jár.</string>
<string name="contact_wants_to_connect_with_you">kapcsolatba akar lépni veled!</string>
<string name="contact_wants_to_connect_with_you">kapcsolatba akar lépni önnel!</string>
<string name="snd_group_event_changed_role_for_yourself">saját szerepköre erre változott: %s</string>
<string name="you_can_start_chat_via_setting_or_by_restarting_the_app">A csevegési szolgáltatás elindítható a Beállítások / Adatbázis menüben vagy az alkalmazás újraindításával.</string>
<string name="verify_code_on_mobile">Kód ellenőrzése a mobilon</string>
@@ -1431,18 +1431,18 @@
<string name="v5_3_simpler_incognito_mode_descr">Inkognító mód kapcsolódáskor.</string>
<string name="you_can_share_group_link_anybody_will_be_able_to_connect">Megoszthat egy hivatkozást vagy QR-kódot - így bárki csatlakozhat a csoporthoz. Ha a csoport később törlésre kerül, akkor nem fogja elveszíteni annak tagjait.</string>
<string name="you_joined_this_group">Csatlakozott ehhez a csoporthoz</string>
<string name="connect_plan_this_is_your_link_for_group_vName"><![CDATA[Ez a hivatkozása a(z) <b>%1$s</b> csoporthoz!]]></string>
<string name="connect_plan_this_is_your_link_for_group_vName"><![CDATA[Ez az ön hivatkozása a(z) <b>%1$s</b> csoporthoz!]]></string>
<string name="voice_prohibited_in_this_chat">A hangüzenetek küldése le van tiltva ebben a csevegésben.</string>
<string name="you_control_your_chat">Ön irányítja csevegését!</string>
<string name="verify_code_with_desktop">Kód ellenőrzése a számítógépen</string>
<string name="v4_5_private_filenames_descr">Az időzóna védelme érdekében a kép-/hangfájlok UTC-t használnak.</string>
<string name="connect_via_member_address_alert_desc">A kapcsolódási kérelem elküldésre kerül ezen csoporttag számára</string>
<string name="connect_via_member_address_alert_desc">A kapcsolódási kérelem elküldésre kerül ezen csoporttag számára.</string>
<string name="incognito_info_share">Inkognitóprofil megosztása esetén a rendszer azt a profilt fogja használni azokhoz a csoportokhoz, amelyekbe meghívást kapott.</string>
<string name="connect_plan_you_have_already_requested_connection_via_this_address">Már kért egy kapcsolódási kérelmet ezen a címen keresztül!</string>
<string name="you_can_share_this_address_with_your_contacts">Megoszthatja ezt a SimpleX címet az ismerőseivel, hogy kapcsolatba léphessenek vele: %s.</string>
<string name="you_can_accept_or_reject_connection">Amikor az emberek kapcsolódást kérelmeznek, ön elfogadhatja vagy elutasíthatja azokat.</string>
<string name="v4_6_group_welcome_message_descr">Megjelenítendő üzenet beállítása az új tagok számára!</string>
<string name="whats_new_thanks_to_users_contribute_weblate">Köszönet a felhasználóknak - hozzájárulás a Weblaten!</string>
<string name="whats_new_thanks_to_users_contribute_weblate">Köszönet a felhasználóknak - hozzájárulás a Weblate-en!</string>
<string name="sending_delivery_receipts_will_be_enabled">A kézbesítési jelentés küldése minden ismerős számára engedélyezésre kerül.</string>
<string name="network_option_protocol_timeout_per_kb">Protokoll időkorlát KB-onként</string>
<string name="database_backup_can_be_restored">Az adatbázis jelmondatának megváltoztatására tett kísérlet nem fejeződött be.</string>
@@ -1453,7 +1453,7 @@
<string name="delete_files_and_media_desc">Ez a művelet nem vonható vissza - az összes fogadott és küldött fájl a médiatartalommal együtt törlésre kerülnek. Az alacsony felbontású képek viszont megmaradnak.</string>
<string name="receipts_contacts_override_enabled">Kézbesítési jelentések engedélyezve vannak %d ismerősnél</string>
<string name="sending_via">Küldés ezen keresztül:</string>
<string name="v5_0_polish_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblaten!</string>
<string name="v5_0_polish_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblate-en!</string>
<string name="sending_delivery_receipts_will_be_enabled_all_profiles">A kézbesítési jelentések küldése engedélyezésre kerül az összes látható csevegési profilban lévő minden ismerős számára.</string>
<string name="v4_6_audio_video_calls_descr">Bluetooth támogatás és további fejlesztések.</string>
<string name="in_developing_desc">Ez a funkció még nem támogatott. Próbálja meg a következő kiadásban.</string>
@@ -1467,13 +1467,13 @@
<string name="set_password_to_export">Jelmondat beállítása az exportáláshoz</string>
<string name="receipts_groups_override_disabled">Kézbesítési jelentések le vannak tiltva a(z) %d csoportban</string>
<string name="non_fatal_errors_occured_during_import">Néhány nem végzetes hiba történt az importálás közben:</string>
<string name="v4_5_italian_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblaten!</string>
<string name="v4_5_italian_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblate-en!</string>
<string name="relay_server_if_necessary">Az átjátszó kiszolgáló csak szükség esetén kerül használatra. Egy másik fél megfigyelheti az IP-címet.</string>
<string name="v5_0_app_passcode_descr">Rendszerhitelesítés helyetti beállítás.</string>
<string name="switch_receiving_address_desc">A fogadó cím egy másik kiszolgálóra változik. A címváltoztatás a feladó online állapotba kerülése után fejeződik be.</string>
<string name="stop_chat_to_export_import_or_delete_chat_database">A csevegés megállítása a csevegő adatbázis exportálásához, importálásához, vagy törléséhez. A csevegés megállítása alatt nem tud üzeneteket fogadni és küldeni.</string>
<string name="save_passphrase_in_keychain">Jelmondat mentése a Keystore-ba</string>
<string name="v4_6_chinese_spanish_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblaten!</string>
<string name="v4_6_chinese_spanish_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblate-en!</string>
<string name="save_passphrase_in_settings">Jelmondat mentése a beállításokban</string>
<string name="send_receipts_disabled_alert_msg">Ennek a csoportnak több mint %1$d tagja van, a kézbesítési jelentések nem kerülnek elküldésre.</string>
<string name="v5_2_message_delivery_receipts_descr">A második jelölés, amit kihagytunk! ✅</string>
@@ -1484,18 +1484,18 @@
<string name="receipts_groups_override_enabled">Kézbesítési jelentések engedélyezve vannak a(z) %d csoportban</string>
<string name="member_role_will_be_changed_with_notification">A szerepkör meg fog változni erre: „%s”. A csoportban mindenki értesítve lesz.</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 ön adatait és biztonságát.</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>
<string name="receipts_contacts_override_disabled">Kézbesítési jelentések le vannak tiltva %d ismerősnél</string>
<string name="session_code">Munkamenet kód</string>
<string name="v4_4_french_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblaten!</string>
<string name="v4_4_french_interface_descr">Köszönet a felhasználóknak - hozzájárulás a Weblate-en!</string>
<string name="receipts_section_groups">Kis csoportok (max. 20 tag)</string>
<string name="connection_you_accepted_will_be_cancelled">Az ön által elfogadott kapcsolat vissza lesz vonva!</string>
<string name="connection_you_accepted_will_be_cancelled">Az ön által elfogadott kérelem vissza lesz vonva!</string>
<string name="send_live_message_desc">Élő üzenet küldése - a címzett(ek) számára frissül, ahogy beírja</string>
<string name="settings_section_title_delivery_receipts">A KÉZBESÍTÉSI JELENTÉSEKET A KÖVETKEZŐ CÍMRE KELL KÜLDENI</string>
<string name="alert_text_msg_bad_id">A következő üzenet azonosítója hibás (kisebb vagy egyenlő az előzővel).
\nEz valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</string>
<string name="this_device_name_shared_with_mobile">Az eszköz neve megosztásra kerül a csatlakoztatott mobil klienssel.</string>
<string name="this_device_name_shared_with_mobile">Az eszköz neve megosztásra kerül a társított mobil klienssel.</string>
<string name="v4_4_live_messages_desc">A címzettek a beírás közben látják a frissítéseket.</string>
<string name="store_passphrase_securely">Tárolja el biztonságosan jelmondatát, mert ha elveszíti azt, NEM tudja megváltoztatni.</string>
<string name="passphrase_will_be_saved_in_settings">A jelmondat a beállítások között egyszerű szövegként kerül tárolásra, miután megváltoztatta vagy újraindította az alkalmazást.</string>
@@ -1510,15 +1510,15 @@
<string name="read_more_in_user_guide_with_link"><![CDATA[További információ a <font color="#0088ff">Használati útmutatóban</font> olvasható.]]></string>
<string name="settings_is_storing_in_clear_text">A jelmondat a beállításokban egyszerű szövegként van tárolva.</string>
<string name="terminal_always_visible">Konzol megjelenítése új ablakban</string>
<string name="alert_text_msg_bad_hash">Az előző üzenet ellenőrzőösszege különbözik.</string>
<string name="alert_text_msg_bad_hash">Az előző üzenet hasító értéke különbözik.</string>
<string name="receipts_section_description">Ezek a beállítások a jelenlegi profiljára vonatkoznak</string>
<string name="loading_remote_file_desc">Várjon, amíg a fájl betöltődik a csatolt mobilról</string>
<string name="loading_remote_file_desc">Várjon, amíg a fájl betöltődik a társított mobilról</string>
<string name="read_more_in_github_with_link"><![CDATA[További információ a <font color="#0088ff">GitHub tárolónkban</font>.]]></string>
<string name="error_showing_content">hiba a tartalom megjelenítése közben</string>
<string name="error_showing_content">hiba a tartalom megjelenítésekor</string>
<string name="error_showing_message">hiba az üzenet megjelenítésekor</string>
<string name="you_can_make_address_visible_via_settings">Láthatóvá teheti SimpleX-beli ismerősei számára a Beállításokban.</string>
<string name="you_can_make_address_visible_via_settings">Láthatóvá teheti a SimpleXbeli ismerősei számára a Beállításokban.</string>
<string name="recent_history_is_sent_to_new_members">Legfeljebb az utolsó 100 üzenet kerül elküldésre az új tagok számára.</string>
<string name="code_you_scanned_is_not_simplex_link_qr_code">A beolvasott kód nem egy SimpleX hivatkozás QR-kód.</string>
<string name="code_you_scanned_is_not_simplex_link_qr_code">A beolvasott QR-kód nem egy SimpleX QR-kód hivatkozás.</string>
<string name="the_text_you_pasted_is_not_a_link">A beillesztett szöveg nem egy SimpleX hivatkozás.</string>
<string name="you_can_view_invitation_link_again">A meghívó hivatkozását újra megtekintheti a kapcsolat részleteinél.</string>
<string name="start_chat_question">Csevegés indítása?</string>
@@ -1567,9 +1567,9 @@
\n%s</string>
<string name="remote_host_error_bad_version"><![CDATA[A(z) <b>%s</b> mobil eszköz verziója nem támogatott. Győződjön meg arról, hogy mindkét eszközön ugyanazt a verziót használja]]></string>
<string name="remote_host_error_disconnected"><![CDATA[Megszakadt a kapcsolat a(z) <b>%s</b> mobil eszközzel]]></string>
<string name="failed_to_create_user_invalid_title">Érvénytelen megjelenítendő felhaszálónév!</string>
<string name="failed_to_create_user_invalid_desc">Ez a megjelenített felhasználónév érvénytelen. Válasszon egy másik nevet.</string>
<string name="remote_host_disconnected_from"><![CDATA[Megszakadt a kapcsolat a <b>%s</b> mobil eszközzel, a(z) %s probléma miatt]]></string>
<string name="failed_to_create_user_invalid_title">Érvénytelen megjelenítendő név!</string>
<string name="failed_to_create_user_invalid_desc">Ez a megjelenített név érvénytelen. Válasszon egy másik nevet.</string>
<string name="remote_host_disconnected_from"><![CDATA[Megszakadt a kapcsolat a(z) <b>%s</b> mobil eszközzel, a(z) %s probléma miatt]]></string>
<string name="remote_ctrl_disconnected_with_reason">%s probléma miatt megszakadt a kapcsolat</string>
<string name="remote_host_error_missing"><![CDATA[A(z) <b>%s</b> mobil eszköz nem található]]></string>
<string name="remote_host_error_bad_state"><![CDATA[A kapcsolat a(z) <b>%s</b> mobil eszközzel rossz állapotban van]]></string>
@@ -1581,7 +1581,7 @@
<string name="developer_options_section">Fejlesztői beállítások</string>
<string name="possible_slow_function_desc">A funkció végrehajtása túl sokáig tart: %1$d másodperc: %2$s</string>
<string name="remote_host_error_busy"><![CDATA[A(z) <b>%s</b> mobil eszköz elfoglalt]]></string>
<string name="past_member_vName">Már nem tag - %1$s</string>
<string name="past_member_vName">%1$s (már nem tag)</string>
<string name="group_member_status_unknown">ismeretlen státusz</string>
<string name="profile_update_event_member_name_changed">%1$s megváltoztatta a nevét erre: %2$s</string>
<string name="profile_update_event_removed_address">törölt kapcsolattartási cím</string>
@@ -1612,13 +1612,13 @@
<string name="member_info_member_blocked">letiltva</string>
<string name="blocked_by_admin_item_description">letiltva az admin által</string>
<string name="member_blocked_by_admin">Letiltva az admin által</string>
<string name="rcv_group_event_member_blocked">letiltotta %s-t</string>
<string name="rcv_group_event_member_blocked">letiltotta őt: %s</string>
<string name="block_for_all">Letiltás mindenki számára</string>
<string name="block_for_all_question">Mindenki számára letiltja ezt a tagot?</string>
<string name="blocked_by_admin_items_description">%d üzenet letiltva az admin által</string>
<string name="unblock_for_all">Letiltás feloldása mindenki számára</string>
<string name="unblock_for_all_question">Mindenki számára feloldja a tag letiltását?</string>
<string name="snd_group_event_member_blocked">ön letiltotta %s-t</string>
<string name="snd_group_event_member_blocked">ön letiltotta őt: %s</string>
<string name="error_blocking_member_for_all">Hiba a tag mindenki számára való letiltása közben</string>
<string name="message_too_large">Az üzenet túl nagy</string>
<string name="welcome_message_is_too_long">Az üdvözlő üzenet túl hosszú</string>
@@ -1642,7 +1642,7 @@
<string name="migrate_from_device_cancel_migration">Átköltöztetés visszavonása</string>
<string name="migrate_to_device_chat_migrated">A csevegés átköltöztetve!</string>
<string name="migrate_from_device_check_connection_and_try_again">Ellenőrizze az internetkapcsolatot, és próbálja újra</string>
<string name="migrate_from_device_creating_archive_link">Archív hivatkozás létrehozása</string>
<string name="migrate_from_device_creating_archive_link">Archívum hivatkozás létrehozása</string>
<string name="migrate_from_device_delete_database_from_device">Adatbázis törlése erről az eszközről</string>
<string name="migrate_to_device_download_failed">Sikertelen letöltés</string>
<string name="migrate_to_device_downloading_archive">Archívum letöltése</string>
@@ -1671,7 +1671,7 @@
<string name="migrate_to_device_confirm_network_settings_footer">Ellenőrizze, hogy a hálózati beállítások megfelelőek-e ehhez az eszközhöz.</string>
<string name="migrate_from_device_chat_should_be_stopped">A folytatáshoz a csevegést meg kell szakítani.</string>
<string name="migrate_from_device_stopping_chat">Csevegés megállítása folyamatban</string>
<string name="migrate_from_device_or_share_this_file_link">Vagy a fájl hivítkozásának biztonságos megosztása</string>
<string name="migrate_from_device_or_share_this_file_link">Vagy ossza meg biztonságosan ezt a fájlhivatkozást</string>
<string name="migrate_from_device_start_chat">Csevegés indítása</string>
<string name="migrate_from_device_you_must_not_start_database_on_two_device"><![CDATA[<b>Nem szabad</b> ugyanazt az adatbázist használni egyszerre két eszközön.]]></string>
<string name="migrate_from_device_confirm_you_remember_passphrase">Erősítse meg, hogy emlékszik az adatbázis jelmondatára az átköltöztetéshez.</string>
@@ -1726,7 +1726,7 @@
<string name="feature_roles_owners">tulajdonosok</string>
<string name="feature_roles_admins">adminok</string>
<string name="feature_roles_all_members">minden tag</string>
<string name="simplex_links">SimpleX hivatkozás</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="prohibit_sending_simplex_links">A SimpleX hivatkozások küldése le van tiltva</string>
@@ -1840,14 +1840,14 @@
<string name="v5_8_private_routing">Privát üzenet útválasztás 🚀</string>
<string name="v5_8_safe_files">Fájlok biztonságos fogadása</string>
<string name="v5_8_message_delivery_descr">Csökkentett akkumulátor-használattal.</string>
<string name="error_initializing_web_view">Hiba a WebView inicializálásában. Frissítse rendszerét az új verzióra. Kérjük, lépjen kapcsolatba a fejlesztőkkel.
<string name="error_initializing_web_view">Hiba a WebView inicializálásában. Frissítse rendszerét az új verzióra. Lépjen kapcsolatba a fejlesztőkkel.
\nHiba: %s</string>
<string name="chat_theme_reset_to_user_theme">Felhasználó által létrehozott téma visszaállítása</string>
<string name="message_queue_info">Üzenet várakoztatási információ</string>
<string name="message_queue_info_none">nincs</string>
<string name="info_row_debug_delivery">Kézbesítési hibák felderítése</string>
<string name="message_queue_info_server_info">Kiszolgáló várakoztatási infó: %1$s
\nUtoljára kézbesített üzenet: %2$s</string>
<string name="message_queue_info_server_info">kiszolgáló várakoztatási infó: %1$s
\nutoljára kézbesített üzenet: %2$s</string>
<string name="file_error_auth">Hibás kulcs vagy ismeretlen fájltöredék cím - valószínűleg a fájl törlődött.</string>
<string name="temporary_file_error">Ideiglenes fájlhiba</string>
<string name="info_row_message_status">Üzenetállapot</string>
@@ -1858,7 +1858,7 @@
<string name="info_row_file_status">Fájlállapot</string>
<string name="share_text_file_status">Fájlállapot: %s</string>
<string name="copy_error">Másolási hiba</string>
<string name="remote_ctrl_connection_stopped_identity_desc">Ezt a hivatkozást egy másik mobilleszközön már használták, hozzon létre egy új hivatkozást az asztali számítógépén.</string>
<string name="remote_ctrl_connection_stopped_identity_desc">Ezt a hivatkozást egy másik mobileszközön már használták, hozzon létre egy új hivatkozást az asztali számítógépén.</string>
<string name="remote_ctrl_connection_stopped_desc">Ellenőrizze, hogy a mobil és az asztali számítógép ugyanahhoz a helyi hálózathoz csatlakozik-e, valamint az asztali számítógép tűzfalában engedélyezve van-e a kapcsolat.
\nMinden további problémát osszon meg a fejlesztőkkel.</string>
<string name="cannot_share_message_alert_title">Nem lehet üzenetet küldeni</string>
@@ -1870,13 +1870,13 @@
<string name="member_inactive_desc">Az üzenet később is kézbesíthető, ha a tag aktívvá válik.</string>
<string name="message_forwarded_desc">Még nincs közvetlen kapcsolat, az üzenetet az admin továbbítja.</string>
<string name="scan_paste_link">Hivatkozás beolvasása / beillesztése</string>
<string name="smp_servers_configured">Beállított SMP-kiszolgálók</string>
<string name="smp_servers_configured">Konfigurált SMP-kiszolgálók</string>
<string name="smp_servers_other">Egyéb SMP-kiszolgálók</string>
<string name="xftp_servers_other">Egyéb XFTP-kiszolgálók</string>
<string name="member_info_member_disabled">letiltva</string>
<string name="member_info_member_inactive">inaktív</string>
<string name="appearance_zoom">Nagyítás</string>
<string name="servers_info">információk a kiszolgálókról</string>
<string name="servers_info">Információk a kiszolgálókról</string>
<string name="servers_info_sessions_connecting">Kapcsolódás</string>
<string name="servers_info_sessions_errors">Hibák</string>
<string name="servers_info_subscriptions_connections_pending">Függőben</string>
@@ -1892,7 +1892,7 @@
<string name="servers_info_reset_stats_alert_confirm">Visszaállítás</string>
<string name="servers_info_reset_stats">Minden statisztika visszaállítása</string>
<string name="servers_info_reset_stats_alert_title">Minden statisztika visszaállítása?</string>
<string name="servers_info_reset_stats_alert_message">A kiszolgálók statisztikái visszaállnak - ez nem vonható vissza!</string>
<string name="servers_info_reset_stats_alert_message">A kiszolgálók statisztikái visszaállnak - ez a művelet nem vonható vissza!</string>
<string name="servers_info_detailed_statistics">Részletes statisztikák</string>
<string name="servers_info_downloaded">Letöltve</string>
<string name="expired_label">lejárt</string>
@@ -1930,7 +1930,7 @@
<string name="chunks_uploaded">Feltöltött fájltöredékek</string>
<string name="completed">Elkészült</string>
<string name="servers_info_connected_servers_section_header">Kapcsolódott kiszolgálók</string>
<string name="xftp_servers_configured">Beállított XFTP-kiszolgálók</string>
<string name="xftp_servers_configured">Konfigurált XFTP-kiszolgálók</string>
<string name="servers_info_sessions_connected">Kapcsolódva</string>
<string name="current_user">Jelenlegi profil</string>
<string name="servers_info_details">Részletek</string>
@@ -2023,7 +2023,7 @@
<string name="you_need_to_allow_calls">Engedélyeznie kell a hívásokat az ismerőse számára, hogy fel tudják hívni egymást.</string>
<string name="you_can_still_view_conversation_with_contact">A(z) %1$s nevű ismerősével folytatott beszélgetéseit továbbra is megtekintheti a csevegések listájában.</string>
<string name="compose_message_placeholder">Üzenet</string>
<string name="select_verb">Kiválaszt</string>
<string name="select_verb">Kiválasztás</string>
<string name="moderate_messages_will_be_marked_warning">Az üzenetek minden tag számára moderáltként lesznek megjelölve.</string>
<string name="selected_chat_items_nothing_selected">Nincs kiválasztva semmi</string>
<string name="delete_messages_mark_deleted_warning">Az üzenetek törlésre lesznek jelölve. A címzett(ek) képes(ek) lesz(nek) felfedni ezt az üzenetet.</string>
@@ -2032,7 +2032,7 @@
<string name="moderate_messages_will_be_deleted_warning">Az üzenetek minden tag számára törlésre kerülnek.</string>
<string name="chat_database_exported_title">Csevegési adatbázis exportálva</string>
<string name="v6_0_connection_servers_status_descr">Kapcsolatok- és kiszolgálók állapotának megjelenítése.</string>
<string name="v6_0_connect_faster_descr">Kapcsolódjon gyorsabban az ismerőseihez</string>
<string name="v6_0_connect_faster_descr">Kapcsolódjon gyorsabban az ismerőseihez.</string>
<string name="chat_database_exported_continue">Folytatás</string>
<string name="v6_0_connection_servers_status">Ellenőrízze a hálózatát</string>
<string name="media_and_file_servers">Média- és fájlkiszolgálók</string>
@@ -2052,11 +2052,11 @@
<string name="one_hand_ui_card_title">Csevegőlista átváltása:</string>
<string name="one_hand_ui_change_instruction">Ezt a „Megjelenés” menüben módosíthatja.</string>
<string name="v6_0_new_media_options">Új médiabeállítások</string>
<string name="v6_0_chat_list_media">Lejátszás a csevegési listából</string>
<string name="v6_0_privacy_blur">Elhomályosítás a jobb adatvédelemért</string>
<string name="v6_0_chat_list_media">Lejátszás a csevegési listából.</string>
<string name="v6_0_privacy_blur">Elhomályosítás a jobb adatvédelemért.</string>
<string name="v6_0_upgrade_app">Automatikus frissítés</string>
<string name="create_address_button">Létrehozás</string>
<string name="v6_0_upgrade_app_descr">Új verziók letöltése a GitHub-ról</string>
<string name="v6_0_upgrade_app_descr">Új verziók letöltése a GitHubról</string>
<string name="v6_0_increase_font_size">Betűméret növelése.</string>
<string name="invite_friends_short">Meghívás</string>
<string name="v6_0_new_chat_experience">Új csevegési élmény 🎉</string>
@@ -2,16 +2,16 @@
<resources>
<string name="group_info_section_title_num_members">%1$s ANGGOTA</string>
<string name="address_section_title">Alamat</string>
<string name="moderated_items_description">%1$d pesan dihapus admin %2$s</string>
<string name="moderated_items_description">%1$d pesan dimoderasi oleh %2$s</string>
<string name="send_disappearing_message_1_minute">1 menit</string>
<string name="send_disappearing_message_30_seconds">30 detik</string>
<string name="send_disappearing_message_5_minutes">5 menit</string>
<string name="clear_chat_warning">Semua pesan akan dihapus - ini tidak bisa dikembalikan! Pesan akan HANYA dihapus untukmu.</string>
<string name="accept_connection_request__question">Terima permintaan relasi?</string>
<string name="accept_connection_request__question">Terima permintaan koneksi?</string>
<string name="learn_more_about_address">Tentang alamat SimpleX</string>
<string name="add_contact_tab">Tambah kontak</string>
<string name="about_simplex">Tentang SimpleX</string>
<string name="alert_text_decryption_error_n_messages_failed_to_decrypt">%1$d gagal mendekripsi pesan.</string>
<string name="alert_text_decryption_error_n_messages_failed_to_decrypt">%1$d pesan gagal terdekripsi.</string>
<string name="alert_text_fragment_please_report_to_developers">Tolong laporkan hal ini ke pengembang.</string>
<string name="chat_item_ttl_month">1 bulan</string>
<string name="chat_item_ttl_week">1 minggu</string>
@@ -19,7 +19,7 @@
<string name="connect_plan_you_are_already_in_group_vName"><![CDATA[Anda sudah bergabung dalam grup <b>%1$s</b>.]]></string>
<string name="call_service_notification_audio_call">Panggilan suara</string>
<string name="abort_switch_receiving_address_confirm">Batal</string>
<string name="allow_voice_messages_question">izinkan pesan suara?</string>
<string name="allow_voice_messages_question">Izinkan pesan suara?</string>
<string name="accept_contact_button">Terima</string>
<string name="app_version_title">Versi aplikasi</string>
<string name="app_version_name">Versi aplikasi: v%s</string>
@@ -30,13 +30,13 @@
<string name="users_add">Tambah profil</string>
<string name="color_primary">Corak</string>
<string name="color_secondary_variant">Tambahan sekunder</string>
<string name="theme_destination_app_theme">Motif aplikasi</string>
<string name="theme_destination_app_theme">Tema aplikasi</string>
<string name="chat_preferences_always">selalu</string>
<string name="allow_to_send_voice">diizinkan mengirim pesan suara.</string>
<string name="allow_to_send_voice">Izinkan mengirim pesan suara.</string>
<string name="feature_roles_all_members">semua anggota</string>
<string name="v4_6_audio_video_calls">Panggilan suara dan video</string>
<string name="v5_2_more_things">Hal-hal lain</string>
<string name="connect_plan_already_connecting">Sudah menghubungi!</string>
<string name="v5_2_more_things">Beberapa hal lainnya</string>
<string name="connect_plan_already_connecting">Sudah terhubungkan!</string>
<string name="connect_plan_already_joining_the_group">Sudah bergabung dengan grup!</string>
<string name="contact_wants_to_connect_via_call">%1$s ingin menghubungimu lewat</string>
<string name="abort_switch_receiving_address_question">Batalkan penggantian alamat?</string>
@@ -54,7 +54,7 @@
<string name="bold_text">tebal</string>
<string name="callstatus_calling">menelepon…</string>
<string name="audio_device_bluetooth">Bluetooth</string>
<string name="icon_descr_call_ended">Panggilan ditutup</string>
<string name="icon_descr_call_ended">Panggilan diakhiri</string>
<string name="change_verb">Ubah</string>
<string name="migrate_from_device_archive_will_be_deleted"><![CDATA[<b>Peringatan</b>: arsip akan dihapus.]]></string>
<string name="create_group_button_to_create_new_group"><![CDATA[<b>Buat grup</b>: untuk membuat grup baru.]]></string>
@@ -112,4 +112,154 @@
<string name="app_was_crashed">Tampilan macet</string>
<string name="non_content_uri_alert_text">Anda membagikan lokasi file yang tidak valid. Laporkan masalah ini ke pengembang aplikasi.</string>
<string name="server_error">error</string>
<string name="one_time_link_short">Tuatan 1 kali pakai</string>
<string name="integrity_msg_skipped">%1$d pesan yang terlewati</string>
<string name="alert_text_decryption_error_too_many_skipped">%1$d pesan yang dilewati</string>
<string name="remote_host_error_bad_version"><![CDATA[Versi perangkat <b>%s</b> tidak didukung. Harap pastikan kamu menggunakan versi yang sama pada kedua perangkat.]]></string>
<string name="remote_host_error_busy"><![CDATA[Perangkat <b>%s</b> sedang sibuk]]></string>
<string name="remote_host_error_disconnected"><![CDATA[Perangkat <b>%s</b> tidak terhubung]]></string>
<string name="remote_host_error_inactive"><![CDATA[Perangkat <b>%s</b> tidak aktif]]></string>
<string name="remote_host_error_missing"><![CDATA[Perangkat <b>%s</b> tidak di temukan]]></string>
<string name="accept_contact_incognito_button">Terima penyamaran</string>
<string name="callstatus_accepted">panggilan diterima</string>
<string name="v5_3_new_interface_languages">6 bahasa antarmuka baru</string>
<string name="remote_host_was_disconnected_toast"><![CDATA[Perangkat <b>%s</b> tidak terhubung]]></string>
<string name="la_no_app_password">Tidak ada kode sandi aplikasi</string>
<string name="message_forwarded_desc">Belum ada koneksi langsung, pesan diteruskan oleh admin.</string>
<string name="no_filtered_chats">Tidak ada obrolan yang difilter</string>
<string name="selected_chat_items_nothing_selected">Tidak ada yang dipilih</string>
<string name="images_limit_desc">Hanya 10 gambar dapat dikirim pada saat bersamaan</string>
<string name="notifications">Notifikasi</string>
<string name="only_delete_conversation">Hanya menghapus percakapan</string>
<string name="v5_7_network_descr">Koneksi jaringan yang lebih handal.</string>
<string name="v6_0_new_chat_experience">Pengalaman obrolan yang baru 🎉</string>
<string name="v6_0_new_media_options">Pilihan media baru</string>
<string name="allow_calls_question">Izinkan panggilan?</string>
<string name="new_message">Pesan baru</string>
<string name="only_you_can_send_disappearing">Hanya kamu yang dapat mengirim pesan menghilang.</string>
<string name="first_platform_without_user_ids">Tidak ada pengidentifikasi pengguna.</string>
<string name="only_group_owners_can_change_prefs">Hanya pemilik grup yang dapat mengubah preferensi grup.</string>
<string name="rcv_group_and_other_events">dan %d peristiwa lainnya</string>
<string name="new_member_role">Peran baru anggota</string>
<string name="no_contacts_selected">Tidak ada kontak di pilih</string>
<string name="no_contacts_to_add">Tidak ada kontak untuk ditambahkan</string>
<string name="item_info_no_text">Tidak ada teks</string>
<string name="block_member_desc">Semua pesan baru dari %s akan disembunyikan!</string>
<string name="message_queue_info_none">tidak ada</string>
<string name="network_status">Status jaringan</string>
<string name="users_delete_all_chats_deleted">Seluruh obrolan dan pesan akan dihapus - ini tidak bisa dibatalkan!</string>
<string name="no_connected_mobile">Tidak ada perangkat terkoneksi</string>
<string name="system_restricted_background_in_call_title">Tidak ada panggilan latar</string>
<string name="settings_notification_preview_title">Pratinjau notifikasi</string>
<string name="settings_notifications_mode_title">Layanan notifikasi</string>
<string name="notifications_mode_service">Selalu aktif</string>
<string name="notification_new_contact_request">Permintaan kontak baru</string>
<string name="notification_preview_new_message">Pesan baru</string>
<string name="message_delivery_error_desc">Kemungkinan besar kontak ini telah menghapus koneksi dengan kamu.</string>
<string name="snd_error_expired">Masalah jaringan - pesan kadaluwarsa setelah beberapa kali mencoba mengirim.</string>
<string name="no_selected_chat">Tidak ada obrolan dipilih</string>
<string name="only_owners_can_enable_files_and_media">Hanya pemilik grup yang dapat mengaktifkan file dan media.</string>
<string name="only_stored_on_members_devices">(hanya disimpan oleh anggota grup)</string>
<string name="icon_descr_more_button">Lagi</string>
<string name="one_time_link">Tautan undangan satu kali</string>
<string name="new_chat">Obrolan baru</string>
<string name="network_and_servers">Jaringan &amp; server</string>
<string name="network_settings_title">Pengaturan tingkat lanjut</string>
<string name="network_use_onion_hosts_required_desc">Host Onion akan diperlukan untuk koneksi.
\nHarap diperhatikan: Anda tidak akan dapat terhubung ke server tanpa alamat .onion.</string>
<string name="network_use_onion_hosts_no_desc">Host Onion tidak akan digunakan.</string>
<string name="network_smp_proxy_mode_always_description">Selalu gunakan perutean pribadi.</string>
<string name="shutdown_alert_desc">Pemberitahuan akan berhenti bekerja sampai kamu meluncurkan ulang aplikasi</string>
<string name="all_your_contacts_will_remain_connected_update_sent">Semua kontak kamu akan tetap terhubung. Pembaruan profil akan dikirim ke kontak kamu.</string>
<string name="status_no_e2e_encryption">Tidak ada enkripsi ujung-ujung</string>
<string name="new_passcode">Kode sandi baru</string>
<string name="la_mode_off">Mati</string>
<string name="all_app_data_will_be_cleared">Seluruh data aplikasi dihapus.</string>
<string name="new_database_archive">Arsip database baru</string>
<string name="old_database_archive">Arsip database lama</string>
<string name="chat_item_ttl_none">tidak pernah</string>
<string name="no_received_app_files">Tidak ada file yang diterima atau dikirim</string>
<string name="conn_event_ratchet_sync_started">Menyetujui enkripsi…</string>
<string name="muted_when_inactive">Bisukan ketika tidak aktif!</string>
<string name="chat_theme_apply_to_all_modes">Seluruh mode warna</string>
<string name="chat_preferences_off">mati</string>`
<string name="chat_preferences_no">tidak</string>
<string name="chat_preferences_on">on</string>
<string name="feature_off">mati</string>
<string name="allow_your_contacts_irreversibly_delete">Izinkan kontak kamu menghapus pesan terkirim secara permanen. (24 jam)</string>
<string name="allow_irreversible_message_deletion_only_if">Izinkan penghapusan pesan yang tidak dapat diubah hanya jika kontak kamu mengizinkannya. (24 jam)</string>
<string name="allow_your_contacts_to_send_voice_messages">Izinkan kontak kamu mengirim pesan suara.</string>
<string name="only_you_can_delete_messages">Hanya kamu yang dapat menghapus pesan secara permanen (kontak kamu dapat menandainya untuk dihapus). (24 jam)</string>
<string name="only_your_contact_can_delete">Hanya kontak kamu yang dapat menghapus pesan secara permanen (kamu dapat menandainya untuk dihapus). (24 jam)</string>
<string name="only_you_can_add_message_reactions">Hanya kamu yang dapat menambahkan reaksi pesan.</string>
<string name="only_you_can_make_calls">Hanya kamu yang dapat melakukan panggilan.</string>
<string name="only_your_contact_can_add_message_reactions">Hanya kontak kamu yang dapat menambahkan reaksi pesan.</string>
<string name="allow_direct_messages">Izinkan pengiriman pesan langsung ke anggota.</string>
<string name="allow_to_send_disappearing">Izinkan untuk mengirim pesan menghilang.</string>
<string name="feature_offered_item_with_param">ditawarkan %s: %2s</string>
<string name="v4_5_multiple_chat_profiles">Beberapa profil obrolan</string>
<string name="v4_5_reduced_battery_usage_descr">Lebih banyak peningkatan akan segera hadir!</string>
<string name="v4_6_group_moderation_descr">Tidak ada admin yang dapat:
\n- menghapus pesan anggota.
\n- menonaktifkan anggota (peran “pengamat”)</string>
<string name="v4_6_reduced_battery_usage_descr">Lebih banyak peningkatan akan segera hadir!</string>
<string name="v5_2_more_things_descr">- pengiriman pesan yang lebih stabil.
\n- group yang sedikit lebih baik.
\n- dan lainnya!</string>
<string name="v5_3_new_desktop_app">Aplikasi desktop baru!</string>
<string name="v5_7_network">Manajemen jaringan</string>
<string name="custom_time_unit_months">bulan</string>
<string name="migrate_from_device_all_data_will_be_uploaded">Semua kontak, percakapan, dan file kamu akan dienkripsi dengan aman dan diunggah dalam beberapa bagian ke relay XFTP yang telah dikonfigurasi.</string>
<string name="network_type_no_network_connection">Tidak ada koneksi jaringan</string>
<string name="mute_chat">Bisu</string>
<string name="settings_section_title_network_connection">Koneksi jaringan</string>
<string name="network_smp_proxy_mode_never">TIdak pernah</string>
<string name="privacy_media_blur_radius_off">Mati</string>
<string name="videos_limit_desc">Hanya 10 video dapat dikirim pada saat bersamaan</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Hanya perangkat klien yang menyimpan profil pengguna, kontak, grup, dan pesan yang dikirim dengan <b>enkripsi ujung-ke-ujung 2 lapis</b>.]]></string>
<string name="only_group_owners_can_enable_voice">Hanya pemilik grup yang dapat mengaktifkan pesan suara.</string>
<string name="clear_note_folder_warning">Seluruh pesan akan dihapus - ini tidak bisa dibatalkan!</string>
<string name="network_smp_proxy_fallback_allow_downgrade">Izinkan turun versi</string>
<string name="no_info_on_delivery">Tidak ada informasi pengiriman</string>
<string name="allow_verb">Boleh</string>
<string name="ok">OK</string>
<string name="no_details">Tidak ada rincian</string>
<string name="add_contact">Tautan undangan satu kali</string>
<string name="network_use_onion_hosts_prefer_desc">Host Onion akan di pakai jika tersedia.</string>
<string name="always_use_relay">Selalu gunakan relay</string>
<string name="self_destruct_new_display_name">Nama tampilan baru:</string>
<string name="new_passphrase">Frasa sandi baru</string>
<string name="notifications_will_be_hidden">Pemberitahuan akan dikirim hanya sampai saat aplikasi berhenti!</string>
<string name="wallpaper_advanced_settings">Pengaturan tingkat lanjut</string>
<string name="allow_message_reactions_only_if">Izinkan reaksi pesan hanya jika kontak Anda mengizinkannya.</string>
<string name="allow_voice_messages_only_if">Izinkan pesan suara hanya jika kontak kamu mengizinkannya.</string>
<string name="allow_your_contacts_adding_message_reactions">Izinkan kontak kamu menambahkan reaksi pesan.</string>
<string name="allow_your_contacts_to_call">Izinkan kontak kamu untuk menghubungimu.</string>
<string name="allow_your_contacts_to_send_disappearing_messages">Izinkan kontak kamu untuk mengirim pesan menghilang.</string>
<string name="allow_calls_only_if">Izinkan panggilan hanya jika kontak kamu mengizinkannya.</string>
<string name="allow_disappearing_messages_only_if">Izinkan pesan menghilang hanya jika kontak kamu mengizinkannya.</string>
<string name="allow_message_reactions">Izinkan reaksi pesan.</string>
<string name="allow_to_delete_messages">Izinkan untuk menghapus pesan terkirim secara permanen. (24 jam)</string>
<string name="user_mute">Bisu</string>
<string name="no_history">Tidak ada riwayat</string>
<string name="v5_8_chat_themes">Tema obrolan yang baru</string>
<string name="all_users">Semua profil</string>
<string name="allow_to_send_simplex_links">Izinkan untuk mengirim tautan SimpleX.</string>
<string name="v5_1_self_destruct_passcode_descr">Semua data akan terhapus jika ini dimasukkan.</string>
<string name="not_compatible">Tidak kompatibel!</string>
<string name="new_mobile_device">Perangkat seluler baru</string>
<string name="only_one_device_can_work_at_the_same_time">Hanya satu perangkat yang dapat bekerja pada saat bersamaan</string>
<string name="network_smp_proxy_fallback_prohibit">Tidak</string>
<string name="no_filtered_contacts">Tidak ada kontak yang di filter</string>
<string name="group_member_role_observer">pengamat</string>
<string name="snd_conn_event_ratchet_sync_started">menyetujui enkripsi untuk %s…</string>
<string name="all_group_members_will_remain_connected">Semua anggota grup akan tetap terhubung.</string>
<string name="servers_info_missing">Tidak ada info, coba muat ulang</string>
<string name="network_use_onion_hosts_no">Tidak</string>
<string name="new_in_version">Baru di %s</string>
<string name="feature_offered_item">ditawarkan %s</string>
<string name="only_you_can_send_voice">Hanya kamu yang dapat mengirim pesan suara.</string>
<string name="only_your_contact_can_make_calls">Hanya kontak kamu yang dapat melakukan panggilan.</string>
<string name="allow_to_send_files">Izinkan untuk mengirim file dan media.</string>
<string name="all_your_contacts_will_remain_connected">Semua kontak kamu akan tetap terhubung.</string>
</resources>
@@ -74,7 +74,7 @@
<string name="smp_servers_check_address">Verifique o endereço do servidor e tente novamente.</string>
<string name="network_session_mode_user_description"><![CDATA[Uma conexão TCP separada (e credencial SOCKS) será usada <b>para cada perfil de bate-papo que você tiver no aplicativo</b>.]]></string>
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Melhor para bateria</b>. Você receberá notificações apenas quando o aplicativo estiver em execução (SEM o serviço em segundo plano).]]></string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Consome mais bateria</b>! O serviço em segundo plano está sempre em execução - as notificações são exibidas assim que as mensagens estiverem disponíveis.]]></string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Consome mais bateria</b>! O aplicativo em segundo plano está sempre em execução - as notificações são exibidas instantaneamente.]]></string>
<string name="settings_section_title_chats">BATE-PAPOS</string>
<string name="settings_section_title_icon">ÍCONE DO APLICATIVO</string>
<string name="chat_database_section">BANCO DE DADOS DE BATE-PAPO</string>
@@ -91,7 +91,7 @@
<string name="notifications_mode_service_desc">O serviço em segundo plano está sempre em execução - as notificações serão exibidas assim que as mensagens estiverem disponíveis.</string>
<string name="network_session_mode_entity_description">Uma conexão TCP separada (e credencial SOCKS) será usada <b>para cada contato e membro do grupo</b>.
\n<b>Atenção</b>: se você tiver muitas conexões, o consumo de bateria e tráfego pode ser substancialmente maior e algumas conexões podem falhar.</string>
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Bom para bateria</b>. O serviço em segundo plano procura por mensagens a cada 10 minutos. Você pode perder chamadas ou mensagens urgentes.]]></string>
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Bom para bateria</b>. O aplicativo procura por mensagens a cada 10 minutos. Você pode perder chamadas ou mensagens urgentes.]]></string>
<string name="callstatus_ended">chamda encerrada %1$s</string>
<string name="chat_with_developers">Converse com os desenvolvedores</string>
<string name="create_group_link">Criar link de grupo</string>
@@ -256,12 +256,12 @@
<string name="settings_section_title_device">DISPOSITIVO</string>
<string name="settings_developer_tools">Ferramentas de desenvolvedor</string>
<string name="group_member_status_introduced">conectando (introduzido)</string>
<string name="color_primary">Realçe</string>
<string name="color_primary">Tonalidade</string>
<string name="error_removing_member">Erro ao remover membro</string>
<string name="error_changing_role">Erro ao alterar cargo</string>
<string name="conn_level_desc_direct">direto</string>
<string name="server_error">erro</string>
<string name="failed_to_parse_chat_title">Falha ao carregar o bate-papo</string>
<string name="failed_to_parse_chat_title">Falha ao carregar a conversa</string>
<string name="error_setting_network_config">Erro ao atualizar a configuração de conexão</string>
<string name="error_sending_message">Erro ao enviar mensagem</string>
<string name="error_adding_members">Erro ao adicionar membro(s)</string>
@@ -317,8 +317,8 @@
<string name="icon_descr_expand_role">Expandir seleção de cargo</string>
<string name="error_saving_group_profile">Erro ao salvar o perfil do grupo</string>
<string name="direct_messages">Mensagens diretas</string>
<string name="feature_enabled">habilitado</string>
<string name="feature_enabled_for_contact">habilitado para contato</string>
<string name="feature_enabled">ativado</string>
<string name="feature_enabled_for_contact">ativado para contato</string>
<string name="feature_enabled_for_you">ativado para você</string>
<string name="ttl_m">%dm</string>
<string name="ttl_min">%d min</string>
@@ -379,7 +379,7 @@
<string name="group_full_name_field">Nome completo do grupo:</string>
<string name="v4_2_group_links">Links de grupo</string>
<string name="v4_3_improved_privacy_and_security">Privacidade e segurança aprimoradas</string>
<string name="failed_to_parse_chats_title">Falha ao carregar o bate-papo</string>
<string name="failed_to_parse_chats_title">Falha ao carregar as conversas</string>
<string name="file_with_path">Arquivo: %s</string>
<string name="file_saved">Arquivo salvo</string>
<string name="group_members_can_send_voice">Os membros do grupo podem enviar mensagens de voz.</string>
@@ -403,7 +403,7 @@
<string name="incorrect_code">Código de segurança incorreto!</string>
<string name="install_simplex_chat_for_terminal">Instale o SimpleX para terminal</string>
<string name="how_it_works">Como funciona</string>
<string name="immune_to_spam_and_abuse">Imune a spam e abuso</string>
<string name="immune_to_spam_and_abuse">Imune a spam</string>
<string name="icon_descr_flip_camera">Vire a câmera</string>
<string name="icon_descr_hang_up">Desligar</string>
<string name="settings_section_title_incognito">Modo anônimo</string>
@@ -551,7 +551,7 @@
<string name="invalid_message_format">formato de mensagem inválido</string>
<string name="live">AO VIVO</string>
<string name="moderated_item_description">moderado por %s</string>
<string name="invalid_chat">chat inválido</string>
<string name="invalid_chat">conversa inválida</string>
<string name="simplex_link_mode_browser_warning">Abrir o link no navegador pode reduzir a privacidade e a segurança da conexão. Links SimpleX não confiáveis ficarão vermelhos.</string>
<string name="invalid_connection_link">Link de conexão inválido</string>
<string name="ensure_smp_server_address_are_correct_format_and_unique">Certifique-se de que os endereços do servidor SMP estejam no formato correto, separados por linhas e não estejam duplicados.</string>
@@ -562,7 +562,7 @@
<string name="notifications_mode_off">Executa quando o aplicativo está aberto</string>
<string name="icon_descr_sent_msg_status_sent">enviado</string>
<string name="icon_descr_sent_msg_status_send_failed">o envio falhou</string>
<string name="your_chats">Bate-papos</string>
<string name="your_chats">Conversas</string>
<string name="paste_button">Colar</string>
<string name="one_time_link">Link de convite de uso único</string>
<string name="chat_with_the_founder">Enviar perguntas e idéias</string>
@@ -764,7 +764,7 @@
<string name="privacy_redefined">Privacidade redefinida</string>
<string name="onboarding_notifications_mode_title">Notificações privadas</string>
<string name="make_private_connection">Fazer uma conexão privada</string>
<string name="people_can_connect_only_via_links_you_share">Pessoas podem se conectar com você somente via links compartilhados.</string>
<string name="people_can_connect_only_via_links_you_share">Você decide quem pode se conectar.</string>
<string name="alert_text_skipped_messages_it_can_happen_when">Pode acontecer quando:
\n1. As mensagens expiraram no remetente após 2 dias ou no servidor após 30 dias.
\n2. A descriptografia da mensagem falhou porque você ou seu contato usou o backup do banco de dados antigo.
@@ -785,7 +785,7 @@
<string name="icon_descr_record_voice_message">Gravar mensagem de voz</string>
<string name="ensure_ICE_server_address_are_correct_format_and_unique">Certifique-se de que os endereços do servidor WebRTC ICE estão em formato correto, separados por linha e não estejam duplicados.</string>
<string name="network_and_servers">Conexão e servidores</string>
<string name="network_settings_title">Configurações de conexão</string>
<string name="network_settings_title">Configurações avançadas</string>
<string name="no_details">sem detalhes</string>
<string name="add_contact">Link de convite de uso único</string>
<string name="smp_servers_your_server_address">Seu endereço de servidor</string>
@@ -803,7 +803,7 @@
<string name="network_use_onion_hosts_no">Não</string>
<string name="network_disable_socks">Usar conexão direta com a internet\?</string>
<string name="hide_dev_options">Ocultar:</string>
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">Seu perfil é guardado no seu diapositivo e é compartilhado somente com seus contatos. Servidores SimpleX não podem ver seu perfil.</string>
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">Seu perfil é guardado no seu dispositivo e é compartilhado somente com seus contatos. Servidores SimpleX não podem ver seu perfil.</string>
<string name="save_preferences_question">Salvar preferências\?</string>
<string name="save_and_notify_group_members">Salvar e notificar membros do grupo</string>
<string name="error_saving_user_password">Erro ao salvar a senha do usuário</string>
@@ -857,7 +857,8 @@
<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 de 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>
@@ -883,7 +884,7 @@
<string name="notifications_mode_periodic">Inicia periodicamente</string>
<string name="icon_descr_sent_msg_status_unauthorized_send">envio não autorizado</string>
<string name="tap_to_start_new_chat">Toque para iniciar um novo bate-papo</string>
<string name="you_have_no_chats">Você não tem bate-papos</string>
<string name="you_have_no_chats">Você não tem conversas</string>
<string name="callstate_waiting_for_answer">aguardando resposta…</string>
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">Seu banco de dados de bate-papo atual será EXCLUÍDO e SUBSTITUÍDO pelo importado.
\nEsta ação não pode ser desfeita - seu perfil, contatos, mensagens e arquivos serão perdidos de forma irreversível.</string>
@@ -902,12 +903,12 @@
<string name="update_database">Atualizar</string>
<string name="periodic_notifications_desc">O app busca novas mensagens periodicamente ele usa alguns por cento da bateria por dia. O aplicativo não usa notificações por push os dados do seu dispositivo não são enviados para os servidores.</string>
<string name="enter_passphrase_notification_desc">Para receber notificações, por favor, digite a senha do banco de dados</string>
<string name="simplex_service_notification_title">Serviço SimpleX</string>
<string name="simplex_service_notification_title">Serviço de Chat SimpleX</string>
<string name="settings_notification_preview_mode_title">Mostrar prévia</string>
<string name="notification_preview_mode_message_desc">Mostrar contato e mensagem</string>
<string name="notification_preview_mode_contact_desc">Mostrar somente contato</string>
<string name="share_verb">Compartilhar</string>
<string name="auth_stop_chat">Parar bate-papo</string>
<string name="auth_stop_chat">Parar conversa</string>
<string name="auth_unlock">Desbloquear</string>
<string name="moderate_message_will_be_deleted_warning">A mensagem será excluída para todos os membros.</string>
<string name="moderate_message_will_be_marked_warning">A mensagem será marcada como moderada para todos os membros.</string>
@@ -925,7 +926,7 @@
<string name="core_simplexmq_version">simplexmq: v%s (%2s)</string>
<string name="network_session_mode_transport_isolation">Isolamento de transporte</string>
<string name="you_control_your_chat">Você controla sua conversa!</string>
<string name="first_platform_without_user_ids">A 1ª plataforma sem nenhum identificador de usuário privada por design.</string>
<string name="first_platform_without_user_ids">Sem identificadores de usuário.</string>
<string name="icon_descr_speaker_on">Alto-falante ligado</string>
<string name="icon_descr_video_off">Vídeo desativado</string>
<string name="icon_descr_speaker_off">Alto-falante desligado</string>
@@ -976,7 +977,7 @@
<string name="callstate_starting">iniciando…</string>
<string name="callstate_waiting_for_confirmation">aguardando confirmação…</string>
<string name="we_do_not_store_contacts_or_messages_on_servers">Não armazenamos nenhum dos seus contatos ou mensagens (uma vez entregues) nos servidores.</string>
<string name="alert_title_skipped_messages">Mensagens omitidas</string>
<string name="alert_title_skipped_messages">Mensagens ignoradas</string>
<string name="tap_to_activate_profile">Toque para ativar o perfil.</string>
<string name="unhide_chat_profile">Mostrar perfil de chat</string>
<string name="unhide_profile">Mostrar perfil</string>
@@ -994,7 +995,7 @@
<string name="image_descr_link_preview">imagem de pré-visualização do link</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">Para proteger suas informações, ative o bloqueio SimpleX.
\nVocê será solicitado a completar a autenticação antes que este recurso seja ativado.</string>
<string name="opensource_protocol_and_code_anybody_can_run_servers">Protocolo de código aberto qualquer um pode hospedar os servidores.</string>
<string name="opensource_protocol_and_code_anybody_can_run_servers">Qualquer um pode hospedar os servidores.</string>
<string name="theme_light">Claro</string>
<string name="chat_preferences_contact_allows">O contato permite</string>
<string name="chat_preferences_on">ativado</string>
@@ -1109,7 +1110,7 @@
<string name="revoke_file__confirm">Revogar</string>
<string name="learn_more_about_address">Sobre o endereço SimpleX</string>
<string name="color_secondary_variant">Secundária adicional</string>
<string name="color_primary_variant">Realçe adicional</string>
<string name="color_primary_variant">Tonalidade adicional</string>
<string name="one_time_link_short">Link de uso único</string>
<string name="add_address_to_your_profile">Adicione o endereço ao seu perfil, para que seus contatos possam compartilhá-lo com outras pessoas. A atualização do perfil será enviada aos seus contatos.</string>
<string name="create_address_and_let_people_connect">Crie um endereço para permitir que as pessoas se conectem com você.</string>
@@ -1139,7 +1140,7 @@
<string name="you_wont_lose_your_contacts_if_delete_address">Você não perderá seus contatos se, posteriormente, excluir seu endereço.</string>
<string name="simplex_address">Endereço SimpleX</string>
<string name="you_can_accept_or_reject_connection">Quando as pessoas solicitam uma conexão, você pode aceitá-la ou rejeitá-la.</string>
<string name="theme_colors_section_title">CORES DO TEMA</string>
<string name="theme_colors_section_title">CORES DA INTERFACE</string>
<string name="share_with_contacts">compartilhar com os contatos</string>
<string name="profile_update_will_be_sent_to_contacts">A atualização do perfil será enviada aos seus contatos.</string>
<string name="save_settings_question">Salvar configurações\?</string>
@@ -1238,7 +1239,7 @@
<string name="change_self_destruct_passcode">Alterar senha de auto-destruição</string>
<string name="if_you_enter_self_destruct_code">Se você digitar sua senha de auto-destruição ao abrir o aplicativo:</string>
<string name="item_info_no_text">sem texto</string>
<string name="non_fatal_errors_occured_during_import">Alguns erros não-fatais ocurreram durante importação - pode ver o console de Chat para mais detalhes.</string>
<string name="non_fatal_errors_occured_during_import">Alguns erros não fatais ocorreram durante importação:</string>
<string name="search_verb">Pesquisar</string>
<string name="la_mode_off">Desativado</string>
<string name="files_and_media">Arquivos e mídia</string>
@@ -1281,7 +1282,7 @@
<string name="settings_shutdown">Desligar</string>
<string name="fix_connection">Corrigir conexão</string>
<string name="fix_connection_question">Corrigir conexão\?</string>
<string name="no_filtered_chats">Sem bate-papo filtrados</string>
<string name="no_filtered_chats">Sem conversas filtradas</string>
<string name="sync_connection_force_confirm">Renegociar</string>
<string name="unfavorite_chat">Desfavoritar</string>
<string name="sync_connection_force_question">Renegociar a criptografia\?</string>
@@ -1335,7 +1336,7 @@
<string name="sending_delivery_receipts_will_be_enabled_all_profiles">Enviar recibos de entrega serão habilitados para todos os contatos em todos os perfis visíveis.</string>
<string name="rcv_group_event_2_members_connected">%s e %s conectados</string>
<string name="connect_via_member_address_alert_title">Conectar diretamente\?</string>
<string name="no_selected_chat">Nenhum bate-papo selecionado</string>
<string name="no_selected_chat">Nenhuma conversa selecionada</string>
<string name="privacy_message_draft">Rascunho de mensagem</string>
<string name="send_receipts_disabled">desativado</string>
<string name="system_restricted_background_desc">SimpleX não pode ser executado em segundo plano. Você receberá as notificações somente quando o aplicativo estiver em execução.</string>
@@ -1562,7 +1563,7 @@
<string name="encryption_renegotiation_error">Erro de renegociação de criptografia</string>
<string name="unable_to_open_browser_title">Erro ao abrir o navegador</string>
<string name="error_sending_message_contact_invitation">Erro ao enviar o convite</string>
<string name="loading_chats">Carregando bate-papos…</string>
<string name="loading_chats">Carregando conversas…</string>
<string name="remote_host_was_disconnected_toast"><![CDATA[Dispositivo Móvel <b>%s</b> foi desconectado]]></string>
<string name="remote_host_error_disconnected"><![CDATA[Dispositivo Móvel <b>%s</b> foi desconectado]]></string>
<string name="only_one_device_can_work_at_the_same_time">Apenas um dispositivo pode funcionar ao mesmo tempo</string>
@@ -1659,4 +1660,412 @@
<string name="xftp_servers_configured">Servidores XFTP configurados</string>
<string name="migrate_from_device_check_connection_and_try_again">Verifique sua conexão de internet e tente novamente</string>
<string name="app_check_for_updates">Verificar atualizações</string>
<string name="color_mode">Modo de cor</string>
<string name="migrate_from_device_delete_database_from_device">Apagar banco de dados desse dispositivo</string>
<string name="proxy_destination_error_broker_host">O endereço do servidor de destino de %1$s é incompatível com o as configurações %2$s do servidor de encaminhamento.</string>
<string name="snd_error_quota">Capacidade excedida - o destinatário não recebeu as mensagens enviadas anteriormente.</string>
<string name="snd_error_relay">Erro do servidor de destino: %1$s</string>
<string name="member_info_member_inactive">Inativo</string>
<string name="migrate_from_device_choose_migrate_from_another_device"><![CDATA[Escolha<i>Migre de outro dispositivo</i>no novo dispositivo e escaneie o QR code.]]></string>
<string name="migrate_from_device_confirm_you_remember_passphrase">Confirme se você se lembra da senha do banco de dados para migrá-lo.</string>
<string name="privacy_media_blur_radius">Borrar conteúdo</string>
<string name="v6_0_privacy_blur">Borrar para melhor privacidade.</string>
<string name="confirm_delete_contact_question">Confirmar exclusão do contato?</string>
<string name="info_view_connect_button">conectar</string>
<string name="delete_without_notification">Apagar sem notificar</string>
<string name="color_primary_variant2">Tonalidade adicional 2</string>
<string name="migrate_to_device_confirm_network_settings">Confirmar configurações de rede</string>
<string name="chat_theme_apply_to_all_modes">Todos os modos de cor</string>
<string name="chat_theme_apply_to_dark_mode">Modo escuro</string>
<string name="cannot_share_message_alert_title">Não é possível enviar mensagem</string>
<string name="settings_section_title_chat_colors">Cores do chat</string>
<string name="create_address_button">Criar</string>
<string name="migrate_from_device_confirm_upload">Confirmar upload</string>
<string name="feature_roles_admins">administradores</string>
<string name="cant_call_contact_deleted_alert_text">O contato foi apagado.</string>
<string name="allow_calls_question">Permitir chamadas?</string>
<string name="cant_call_contact_alert_title">Não é possível chamar o contato</string>
<string name="cant_call_contact_connecting_wait_alert_text">Conectando ao contato, por favor aguarde ou volte depois!</string>
<string name="calls_prohibited_alert_title">Chamadas proibidas!</string>
<string name="cant_call_member_alert_title">Não é possível chamar membro do grupo</string>
<string name="cant_send_message_to_member_alert_title">Não é possível mandar mensagem para o membro do grupo</string>
<string name="v6_0_connection_servers_status">Controle sua rede</string>
<string name="v6_0_delete_many_messages_descr">Apague até 20 mensagens por vez.</string>
<string name="v6_0_your_contacts_descr">Arquivar contatos para conversar depois.</string>
<string name="v6_0_connect_faster_descr">Conecte aos seus amigos mais rapidamente.</string>
<string name="color_mode_dark">Escuro</string>
<string name="v5_8_safe_files_descr">Confirmar arquivos de servidores desconhecidos.</string>
<string name="copy_error">Copiar erro</string>
<string name="migrate_to_device_chat_migrated">Conversa migrada!</string>
<string name="info_view_call_button">chamar</string>
<string name="delete_contact_cannot_undo_warning">O contato será apagado - essa ação não pode ser desfeita!</string>
<string name="app_check_for_updates_beta">Beta</string>
<string name="app_check_for_updates_download_completed_title">A atualização do aplicativo foi baixada</string>
<string name="settings_section_title_chat_theme">Tema da conversa</string>
<string name="info_row_debug_delivery">Entrega de depuração</string>
<string name="dark_mode_colors">Cores do modo escuro</string>
<string name="migrate_from_device_creating_archive_link">Criando link de arquivo</string>
<string name="network_smp_proxy_fallback_allow_downgrade">Permitir downgrade</string>
<string name="all_users">Todos os usuários</string>
<string name="servers_info_sessions_connected">Conectado</string>
<string name="servers_info_sessions_connecting">Conectando</string>
<string name="current_user">Perfil atual</string>
<string name="servers_info_connected_servers_section_header">Servidores conectados</string>
<string name="servers_info_subscriptions_connections_subscribed">Conexões ativas</string>
<string name="attempts_label">tentativas</string>
<string name="acknowledged">Reconhecido</string>
<string name="acknowledgement_errors">Erros conhecidos</string>
<string name="connections">Conexões</string>
<string name="created">Criado</string>
<string name="decryption_errors">erros de decriptação</string>
<string name="deleted">Apagado</string>
<string name="deletion_errors">Erros de exclusão</string>
<string name="chunks_deleted">Pedaços excluídos</string>
<string name="chunks_downloaded">Pedaços baixados</string>
<string name="chunks_uploaded">Pedaços carregados</string>
<string name="delete_members_messages__question">Apagar %d mensagens dos membros?</string>
<string name="contact_deleted">Contato apagado!</string>
<string name="conversation_deleted">Conversa apagada!</string>
<string name="deleted_chats">Contatos arquivados</string>
<string name="chat_database_exported_title">Banco de dados da conversa exportado</string>
<string name="chat_database_exported_continue">Continuar</string>
<string name="v6_0_connection_servers_status_descr">Conexão e status dos servidores.</string>
<string name="migrate_to_device_repeat_download">Repetir download</string>
<string name="network_option_rcv_concurrency">Recebendo simultaneidade</string>
<string name="chat_theme_reset_to_user_theme">Redefinir para o tema do usuário</string>
<string name="v5_8_persian_ui">IU Persa</string>
<string name="message_delivery_warning_title">Aviso de entrega de mensagem</string>
<string name="ci_status_other_error">Erro: %1$s</string>
<string name="snd_error_auth">Chave incorreta ou conexão desconhecida - provavelmente esta conexão foi excluída.</string>
<string name="e2ee_info_no_pq_short">Essa conversa é protegida por criptografia ponta a ponta</string>
<string name="migrate_from_device_repeat_upload">Repetir upload</string>
<string name="smp_proxy_error_connecting">Erro de conexão ao servidor de encaminhamento %1$s. Por favor tente mais tarde.</string>
<string name="smp_proxy_error_broker_version">A versão do servidor de encaminhamento é incompatível com as configurações de rede: %1$s.</string>
<string name="proxy_destination_error_failed_to_connect">O servidor de encaminhamento %1$s falhou ao se conectar ao servidor de destino %2$s. Por favor tente mais tarde.</string>
<string name="smp_proxy_error_broker_host">O endereço do servidor de encaminhamento é incompatível com as configurações de rede: %1$s.</string>
<string name="proxy_destination_error_broker_version">A versão do servidor de destino de %1$s é incompatível com o servidor de encaminhamento %2$s.</string>
<string name="snd_error_expired">Problemas de rede - a mensagem expirou após muitas tentativas de envio.</string>
<string name="snd_error_proxy">Servidor de encaminhamento: %1$s
\nErro: %2$s</string>
<string name="recipients_can_not_see_who_message_from">Destinatário(s) não podem ver de onde essa mensagem veio.</string>
<string name="member_inactive_desc">A mensagem poderá ser entregue mais tarde se o membro se tornar ativo.</string>
<string name="smp_servers_other">Outros servidores SMP</string>
<string name="private_routing_explanation">Para proteger seu endereço IP, roteamento privado usa seus servidores SMP para entregar mensagens.</string>
<string name="app_check_for_updates_button_skip">Pular essa versão</string>
<string name="app_check_for_updates_button_download">Baixar %s (%s)</string>
<string name="app_check_for_updates_canceled">Download da atualização cancelado</string>
<string name="chat_list_always_visible">Mostrar lista de conversas em nova janela</string>
<string name="appearance_font_size">Tamanho da fonte</string>
<string name="color_wallpaper_background">Fundo do papel de parede</string>
<string name="color_wallpaper_tint">Tonalidade do papel de parede</string>
<string name="theme_remove_image">Remover imagem</string>
<string name="appearance_zoom">Zoom</string>
<string name="chat_theme_set_default_theme">Definir tema padrão</string>
<string name="prohibit_sending_simplex_links">Proibido enviar links SimpleX</string>
<string name="migrate_from_device_error_uploading_archive">Erro ao carregar o arquivo</string>
<string name="migrate_from_device_upload_failed">Falha ao carregar</string>
<string name="migrate_from_device_uploading_archive">Carregando arquivo</string>
<string name="servers_info_detailed_statistics">Estatísticas detalhadas</string>
<string name="file_error_relay">Erro no servidor de arquivo: %1$s</string>
<string name="saved_from_chat_item_info_title">Salvo de</string>
<string name="download_file">Baixar</string>
<string name="forward_chat_item">Encaminhar</string>
<string name="share_text_file_status">Status de arquivo: %s</string>
<string name="invite_friends_short">Convidar</string>
<string name="v6_0_increase_font_size">Aumentar tamanho da fonte.</string>
<string name="v6_0_upgrade_app">Aprimorar aplicativo automaticamente</string>
<string name="servers_info_reset_stats_alert_title">Redefinir todas as estatísticas?</string>
<string name="servers_info_reset_stats_alert_message">As estatísticas dos servidores serão redefinidas - isso não poderá ser desfeito!</string>
<string name="error_parsing_uri_title">Link inválido</string>
<string name="error_parsing_uri_desc">Por favor cheque se o link SimpleX está correto</string>
<string name="e2ee_info_pq"><![CDATA[Mensagens, arquivo e chamadas são protegidas por <b>criptografia quantum resistant e2e</b> com perfeito sigilo direto, repúdio e recuperação de vazamento.]]></string>
<string name="e2ee_info_pq_short">Essa conversa é protegida por criptografia quantum resistant ponta a ponta</string>
<string name="please_try_later">Por favor tente mais tarde.</string>
<string name="selected_chat_items_selected_n">Selecionado %d</string>
<string name="simplex_links_not_allowed">SimpleX links não permitidos</string>
<string name="files_and_media_not_allowed">Arquivos e mídia não permitidos</string>
<string name="compose_message_placeholder">Mensagem</string>
<string name="temporary_file_error">Erro de arquivo temporário</string>
<string name="info_view_message_button">mensagem</string>
<string name="info_view_search_button">pesquisar</string>
<string name="info_view_video_button">vídeo</string>
<string name="network_smp_proxy_mode_private_routing">Roteamento privado</string>
<string name="network_smp_proxy_mode_never_description">NÃO use roteamento privado.</string>
<string name="permissions_open_settings">Abrir configurações</string>
<string name="audio_device_earpiece">Fone de ouvido</string>
<string name="error_initializing_web_view">Erro ao iniciar o WebView. Atualize seu sistema para a nova versão. Por favor contate os desenvolvedores.
\nErro: %s</string>
<string name="privacy_media_blur_radius_off">Desativado</string>
<string name="privacy_media_blur_radius_strong">Forte</string>
<string name="v5_6_quantum_resistant_encryption_descr">Ativar em conversas diretas (BETA)!</string>
<string name="migrate_to_device_finalize_migration">Finalizar migração em outro dispositivo.</string>
<string name="color_mode_light">Claro</string>
<string name="v5_7_forward_descr">A origem da mensagem permanece privada.</string>
<string name="migrate_to_device_title">Migrar aqui</string>
<string name="migrate_to_device_migrating">Migrando</string>
<string name="v6_0_new_chat_experience">Nova experiência de conversa 🎉</string>
<string name="v6_0_new_media_options">Novas opções de mídia</string>
<string name="or_paste_archive_link">Ou cole o link do arquivo</string>
<string name="v6_0_chat_list_media">Reproduzir da lista de conversa.</string>
<string name="servers_info_reset_stats">Redefinir todas as estatísticas</string>
<string name="migrate_from_device_starting_chat_on_multiple_devices_unsupported">Aviso: iniciar conversa em múltiplos dispositivos não é suportado e pode causar falhas na entrega de mensagens</string>
<string name="network_type_ethernet">Internet cabeada</string>
<string name="migrate_from_device_you_must_not_start_database_on_two_device"><![CDATA[Você <b>não deve</b> usar a mesma base de dados em dois dispositivos.]]></string>
<string name="group_members_can_send_simplex_links">Membros do grupo podem enviar link SimpleX</string>
<string name="migrate_to_device_importing_archive">Importando arquivo</string>
<string name="chat_theme_apply_to_light_mode">Modo claro</string>
<string name="feature_enabled_for">Ativado para</string>
<string name="v5_7_call_sounds_descr">Ao conectar em chamadas de áudio de vídeo.</string>
<string name="migrate_from_device_title">Migrar dispositivo</string>
<string name="migrate_from_device_error_saving_settings">Erro ao salvar configurações</string>
<string name="migrate_from_device_exported_file_doesnt_exist">Arquivo exportado não existe</string>
<string name="migrate_from_device_bytes_uploaded">%s carregados</string>
<string name="migrate_from_device_chat_should_be_stopped">Para continuar, a conversa precisa ser interrompida.</string>
<string name="network_type_other">Outro</string>
<string name="network_type_no_network_connection">Sem conexão de rede</string>
<string name="cannot_share_message_alert_text">As preferências de conversa selecionadas proíbem essa mensagem.</string>
<string name="file_error">Erro de arquivo</string>
<string name="reset_single_color">Redefinir cor</string>
<string name="v5_7_call_sounds">Sons de chamada</string>
<string name="v5_7_shape_profile_images">Formato das imagens de perfil</string>
<string name="v5_7_new_interface_languages">IU Lituana</string>
<string name="v5_8_private_routing">Roteamento de mensagem privada 🚀</string>
<string name="v5_8_chat_themes">Novos temas de conversa</string>
<string name="v5_8_message_delivery_descr">Com uso de bateria reduzida.</string>
<string name="migrate_to_device_download_failed">Falha no download</string>
<string name="migrate_to_device_import_failed">Falha na importação</string>
<string name="migrate_to_device_downloading_archive">Baixando arquivo</string>
<string name="migrate_to_device_repeat_import">Repetir importação</string>
<string name="migrate_to_device_try_again">Você pode tentar novamente.</string>
<string name="migrate_from_device_error_exporting_archive">Erro ao exportar banco de dados de conversa</string>
<string name="migrate_from_device_error_verifying_passphrase">Erro ao verificar a palavra-chave:</string>
<string name="saved_description">salvo</string>
<string name="saved_from_description">salvo de %s</string>
<string name="forwarded_from_chat_item_info_title">Encaminhado de</string>
<string name="voice_messages_not_allowed">Mensagens de voz não permitidas</string>
<string name="new_message">Nova mensagem</string>
<string name="paste_link">Colar link</string>
<string name="simplex_links">Links SimpleX</string>
<string name="v5_7_forward">Encaminhar e salvar mensagens</string>
<string name="privacy_media_blur_radius_soft">Suave</string>
<string name="privacy_media_blur_radius_medium">Médio</string>
<string name="you_need_to_allow_calls">Você precisa permitir seu contato ligue para poder ligar para ele.</string>
<string name="chat_theme_reset_to_app_theme">Redefinir para o tema do aplicativo</string>
<string name="color_received_quote">Resposta recebida</string>
<string name="wallpaper_preview_hello_alice">Boa tarde!</string>
<string name="wallpaper_preview_hello_bob">Bom dia!</string>
<string name="v6_0_upgrade_app_descr">Baixe novas versões no GitHub.</string>
<string name="forwarded_description">encaminhado</string>
<string name="migrate_to_device_file_delete_or_link_invalid">O arquivo foi deletado ou o link está inválido</string>
<string name="auth_open_migration_to_another_device">Abrir tela de migração</string>
<string name="v5_6_safer_groups">Grupos seguros</string>
<string name="migrate_from_device_database_init">Preparando upload</string>
<string name="settings_section_title_network_connection">Conexão de rede</string>
<string name="file_not_approved_title">Servidores desconhecidos!</string>
<string name="file_not_approved_descr">Sem Tor ou VPN, seu endereço de IP ficará visível para esses relays XFTP
\n%1$s.</string>
<string name="error_showing_desktop_notification">Erro ao exibir notificação, contate os desenvolvedores.</string>
<string name="saved_chat_item_info_tab">Salvo</string>
<string name="forwarded_chat_item_info_tab">Encaminhado</string>
<string name="network_smp_proxy_mode_unknown">Servidores desconhecidos</string>
<string name="network_smp_proxy_mode_unprotected">Desprotegido</string>
<string name="network_smp_proxy_mode_never">Nunca</string>
<string name="update_network_smp_proxy_mode_question">Modo de roteamento de mensagens</string>
<string name="permissions_required">Conceder permissões</string>
<string name="audio_device_speaker">Alto falante</string>
<string name="audio_device_wired_headphones">Headphones</string>
<string name="without_tor_or_vpn_ip_address_will_be_visible_to_file_servers">Sem Tor ou VPN, seu endereço de IP ficará visível para servidores de arquivo.</string>
<string name="settings_section_title_files">ARQUIVOS</string>
<string name="settings_section_title_profile_images">Fotos de perfil</string>
<string name="settings_section_title_private_message_routing">ROTEAMENTO DE MENSAGEM PRIVADA</string>
<string name="conn_event_disabled_pq">criptografia padrão ponta a ponta</string>
<string name="feature_roles_owners">proprietários</string>
<string name="migrate_from_device_to_another_device">Migrar para outro dispositivo</string>
<string name="migrate_from_device_verify_passphrase">Verificar palavra-passe</string>
<string name="network_type_network_wifi">WiFi</string>
<string name="one_hand_ui_card_title">Alternar lista de conversa:</string>
<string name="one_hand_ui_change_instruction">Você pode mudar isso em configurações de Aparência.</string>
<string name="member_info_member_disabled">desativado</string>
<string name="message_queue_info_none">nenhum</string>
<string name="message_queue_info_server_info">informações da fila do servidor: %1$s
\n
\núltima mensagem recebida: %2$s</string>
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Por favor peça para seu contato ativar as chamadas.</string>
<string name="cant_call_member_send_message_alert_text">Enviar mensagem para ativar chamadas.</string>
<string name="network_options_save_and_reconnect">Salvar e reconectar</string>
<string name="network_option_tcp_connection">Conexão TCP</string>
<string name="v6_0_reachable_chat_toolbar">Barra de ferramentas de conversa acessível</string>
<string name="v6_0_private_routing_descr">Isso protege seu endereço de IP e conexões.</string>
<string name="v6_0_reachable_chat_toolbar_descr">Use o aplicativo com uma mão.</string>
<string name="uploaded_files">Arquivos carregados</string>
<string name="servers_info_downloaded">Baixado</string>
<string name="servers_info_reset_stats_alert_error_title">Erro ao redefinir estatísticas</string>
<string name="servers_info_reset_stats_alert_confirm">Redefinir</string>
<string name="info_row_file_status">Status de arquivo</string>
<string name="message_queue_info">Informações da fila de mensagens</string>
<string name="color_mode_system">Sistema</string>
<string name="wallpaper_scale_repeat">Repetir</string>
<string name="wallpaper_scale">Escala</string>
<string name="wallpaper_scale_fill">Preencher</string>
<string name="wallpaper_scale_fit">Ajustar</string>
<string name="simplex_links_are_prohibited_in_group">Links SimpleX são proibidos neste grupo.</string>
<string name="v5_6_app_data_migration_descr">Migrar para outro dispositivo via QR code.</string>
<string name="v5_6_picture_in_picture_calls">Chamadas picture-in-picture</string>
<string name="v5_6_picture_in_picture_calls_descr">Use o aplicativo enquanto está em chamada.</string>
<string name="v5_7_quantum_resistant_encryption_descr">Será ativado em conversas diretas!</string>
<string name="v5_8_safe_files">Receber arquivos de forma segura</string>
<string name="v5_7_network">Gerenciamento de rede</string>
<string name="v5_8_chat_themes_descr">Faça suas conversas terem uma aparência diferente!</string>
<string name="v5_7_network_descr">Conexão de rede mais confiável.</string>
<string name="migrate_to_device_database_init">Preparando download</string>
<string name="migrate_to_device_bytes_downloaded">%s baixados</string>
<string name="paste_archive_link">Colar link de arquivo</string>
<string name="migrate_to_device_enter_passphrase">Insira a palavra-chave</string>
<string name="migrate_to_device_error_downloading_archive">Erro ao baixar o arquivo</string>
<string name="migrate_from_device_or_share_this_file_link">Ou de forma segura compartilhe esse link de arquivo</string>
<string name="migrate_from_device_verify_database_passphrase">Verifique a palavra-passe do banco de dados</string>
<string name="e2ee_info_no_pq"><![CDATA[Mensagens, arquivo e chamadas são protegidas por <b>criptografia ponta-a-ponta</b> com perfeito sigilo direto, repúdio e recuperação de vazamento.]]></string>
<string name="file_error_no_file">Arquivo não encontrado - provavelmente o arquivo foi excluído ou cancelado.</string>
<string name="file_error_auth">Chave incorreta ou arquivo de pedaço de endereço - provavelmente o arquivo foi excluído.</string>
<string name="network_smp_proxy_fallback_allow_protected_description">Mande mensagens diretamente quando o seu endereço de IP está protegido e o servidor de destino não suporta roteamento privado.</string>
<string name="network_smp_proxy_mode_unknown_description">Use roteamento privado em servidores desconhecidos.</string>
<string name="scan_paste_link">Escanear / Colar link</string>
<string name="migrate_to_device_downloading_details">Baixando detalhes de link</string>
<string name="migrate_from_device_finalize_migration">Finalizar migração</string>
<string name="v5_6_quantum_resistant_encryption">Criptografia Quantum resistant</string>
<string name="migrate_from_device_migration_complete">Migração concluída</string>
<string name="v5_8_private_routing_descr">Proteja seu endereço de IP dos retransmissores de mensagem escolhidos por seus contatos.
\nAtive nas configurações *Redes e servidores* .</string>
<string name="migrate_from_device_start_chat">Iniciar conversa</string>
<string name="toolbar_settings">Configurações</string>
<string name="info_view_open_button">abrir</string>
<string name="keep_conversation">Manter conversa</string>
<string name="only_delete_conversation">Apenas excluir conversa</string>
<string name="xftp_servers_other">Outros servidores XFTP</string>
<string name="network_smp_proxy_mode_unprotected_description">Use roteamento privado em servidores desconhecidos quando o endereço de IP não está protegido.</string>
<string name="network_smp_proxy_fallback_allow">Sim</string>
<string name="app_check_for_updates_button_install">Instalar atualização</string>
<string name="app_check_for_updates_update_available">Atualização disponível: %s</string>
<string name="app_check_for_updates_button_open">Abrir local do arquivo</string>
<string name="app_check_for_updates_notice_disable">Desativar</string>
<string name="permissions_record_audio">Microfone</string>
<string name="permissions_grant_in_settings">Conceder nas configurações</string>
<string name="permissions_find_in_settings_and_grant">Encontre essa permissão nas configurações do Android e conceda-a manualmente.</string>
<string name="app_will_ask_to_confirm_unknown_file_servers">O aplicativo irá perguntar para confirmar os downloads de servidores de arquivo desconhecidos (exceto .onion ou quando o proxy SOCKS estiver habilitado).</string>
<string name="settings_section_title_user_theme">Tema de perfil</string>
<string name="set_passphrase">Defina uma palavra-chave</string>
<string name="conn_event_enabled_pq">criptografia quantum resistant e2e</string>
<string name="action_button_add_members">Convidar</string>
<string name="info_row_message_status">Status da mensagem</string>
<string name="v5_8_message_delivery">Entrega de mensagens aprimorada</string>
<string name="v5_7_shape_profile_images_descr">Quadrado, circulo, ou qualquer coisa entre eles.</string>
<string name="remote_ctrl_connection_stopped_desc">Por favor verifique se o celular e o computador estão conectados na mesma rede local e o firewall do computador permite a conexão.
\nPor favor compartilhe qualquer outro problema com os desenvolvedores.</string>
<string name="remote_ctrl_connection_stopped_identity_desc">Esse link foi usado em outros dispositivo móvel, por favor crie um novo link no computador.</string>
<string name="migrate_from_device_error_deleting_database">Erro ao excluir banco de dados</string>
<string name="migrate_to_device_confirm_network_settings_footer">Por favor confirme que as configurações de rede estão corretas para este dispositivo.</string>
<string name="migrate_from_device_stopping_chat">Parando conversa</string>
<string name="migrate_from_device_try_again">Você pode tentar novamente.</string>
<string name="network_error_broker_version_desc">A versão do servidor é incompatível com seu aplicativo: %1$s.</string>
<string name="private_routing_error">Erro de roteamento privado</string>
<string name="network_error_broker_host_desc">O endereço do servidor é incompatível com as configurações de rede: %1$s.</string>
<string name="snd_error_proxy_relay">Servidor de encaminhamento: %1$s
\nErro no servidor de destino: %2$s</string>
<string name="srv_error_host">Endereço do servidor é incompatível com as configurações de rede.</string>
<string name="srv_error_version">A versão do servidor é incompatível com as configurações de rede.</string>
<string name="forward_message">Encaminhar mensagem…</string>
<string name="network_smp_proxy_fallback_allow_protected">Quando IP oculto</string>
<string name="protect_ip_address">Proteger endereço IP</string>
<string name="color_sent_quote">Enviar resposta</string>
<string name="servers_info_files_tab">Arquivos</string>
<string name="network_smp_proxy_fallback_prohibit">Não</string>
<string name="app_check_for_updates_download_started">Baixando atualização do aplicativo, não feche o aplicativo</string>
<string name="permissions_grant">Conceder permissão para fazer chamadas</string>
<string name="invalid_file_link">Link inválido</string>
<string name="servers_info_details">Detalhes</string>
<string name="servers_info_sessions_errors">Erros</string>
<string name="servers_info_messages_received">Mensagens recebidas</string>
<string name="servers_info_messages_sent">Mensagens enviadas</string>
<string name="servers_info_missing">Sem informação, tente recarregar</string>
<string name="servers_info">Informação dos servidores</string>
<string name="servers_info_target">Mostrando informação para</string>
<string name="servers_info_statistics_section_header">Estatísticas</string>
<string name="servers_info_transport_sessions_section_header">Sessões de transporte</string>
<string name="servers_info_subscriptions_section_header">Recepção de mensagem</string>
<string name="servers_info_subscriptions_connections_pending">Pendente</string>
<string name="servers_info_private_data_disclaimer">Começando de %s.
\nTodos os dados são privados do seu dispositivo.</string>
<string name="servers_info_subscriptions_total">Total</string>
<string name="servers_info_proxied_servers_section_header">Servidores proxiados</string>
<string name="servers_info_previously_connected_servers_section_header">Servidores conectados anteriormente</string>
<string name="servers_info_reconnect_servers_message">Reconecte todos os servidores conectados para forçar entrega de mensagem. Isso usa tráfego adicional.</string>
<string name="servers_info_reconnect_server_title">Reconectar servidor?</string>
<string name="servers_info_reconnect_servers_title">Reconectar servidores?</string>
<string name="servers_info_reconnect_server_message">Reconectar servidor para forçar entrega de mensagem. Isso usa tráfego adicional.</string>
<string name="servers_info_proxied_servers_section_footer">Você não está conectado nesses servidores. Roteamento privado é usado para entregar mensagens para eles.</string>
<string name="servers_info_modal_error_title">Erro</string>
<string name="servers_info_reconnect_server_error">Erro ao reconectar servidor</string>
<string name="servers_info_reconnect_servers_error">Erro ao reconectar servidores</string>
<string name="servers_info_reconnect_all_servers_button">Reconectar todos os servidores</string>
<string name="reconnect">Reconectar</string>
<string name="sent_directly">Enviar diretamente</string>
<string name="servers_info_detailed_statistics_sent_messages_header">Enviar mensagens</string>
<string name="servers_info_detailed_statistics_sent_messages_total">Enviar total</string>
<string name="sent_via_proxy">Enviar via proxy</string>
<string name="smp_server">Servidor SMP</string>
<string name="servers_info_detailed_statistics_received_messages_header">Mensagens recebidas</string>
<string name="servers_info_detailed_statistics_received_total">Total recebido</string>
<string name="servers_info_detailed_statistics_receive_errors">Receber erros</string>
<string name="servers_info_starting_from">Começando de %s.</string>
<string name="xftp_server">Servidor XFTP</string>
<string name="secured">Seguro</string>
<string name="send_errors">Enviar erros</string>
<string name="subscribed">Inscrito</string>
<string name="duplicates_label">duplicatas</string>
<string name="expired_label">expirada</string>
<string name="other_label">outro</string>
<string name="subscription_errors">Erros de inscrição</string>
<string name="other_errors">outros erros</string>
<string name="proxied">Proxied</string>
<string name="subscription_results_ignored">Inscrições ignoradas</string>
<string name="download_errors">Erros de download</string>
<string name="downloaded_files">Arquivos baixados</string>
<string name="server_address">Endereço do servidor</string>
<string name="size">Tamanho</string>
<string name="upload_errors">Erros de upload</string>
<string name="open_server_settings_button">Abrir configurações de servidor</string>
<string name="select_verb">Selecione</string>
<string name="moderate_messages_will_be_deleted_warning">As mensagens serão excluídas para todos os membros.</string>
<string name="moderate_messages_will_be_marked_warning">As mensagens serão marcadas como moderadas para todos os membros.</string>
<string name="message_forwarded_title">Mensagem encaminhada</string>
<string name="message_forwarded_desc">Ainda não há conexão direta, a mensagem é encaminhada pelo administrador.</string>
<string name="member_inactive_title">Membro inativo</string>
<string name="selected_chat_items_nothing_selected">Nada selecionado</string>
<string name="delete_messages_mark_deleted_warning">Mensagens serão marcadas para exclusão. O(s) destinatário(s) poderá(ão) revelar essas mensagens.</string>
<string name="you_can_still_view_conversation_with_contact">Você ainda pode ver a conversa com %1$s na lista de conversas.</string>
<string name="no_filtered_contacts">Nenhum contato filtrado</string>
<string name="contact_list_header_title">Seus contatos</string>
<string name="network_smp_proxy_fallback_prohibit_description">NÃO envie mensagens diretamente, mesmo que o seu servidor ou o servidor de destino não suporte roteamento privado.</string>
<string name="network_smp_proxy_fallback_allow_description">Mande mensagens diretamente quando o seu servidor ou o servidor de destino não suporta roteamento privado.</string>
<string name="update_network_smp_proxy_fallback_question">Retorno de roteamento de mensagens</string>
<string name="private_routing_show_message_status">Mostrar status da mensagem</string>
<string name="migrate_from_another_device">Migrar de outro dispositivo</string>
<string name="share_text_message_status">Status da mensagem: %s</string>
<string name="servers_info_uploaded">Carregado</string>
<string name="message_servers">Servidores de mensagem</string>
<string name="media_and_file_servers">Servidores de mídia e arquivo</string>
<string name="subscription_percentage">Mostrar porcentagem</string>
<string name="network_socks_proxy">Proxy SOCKS</string>
<string name="chat_database_exported_save">Você pode salvar o arquivo exportado.</string>
<string name="chat_database_exported_migrate">Você pode migrar o banco de dados exportado.</string>
<string name="chat_database_exported_not_all_files">Alguns arquivos não foram exportados</string>
<string name="you_can_still_send_messages_to_contact">Você pode enviar mensagens para %1$s de Contatos arquivados.</string>
<string name="reset_all_hints">Redefinir todas as dicas</string>
<string name="app_check_for_updates_disabled">Desativado</string>
<string name="app_check_for_updates_stable">Estável</string>
<string name="app_check_for_updates_installed_successfully_title">Instalado com sucesso</string>
<string name="app_check_for_updates_installed_successfully_desc">Por favor reinicie o aplicativo.</string>
<string name="app_check_for_updates_button_remind_later">Me lembre mais tarde</string>
<string name="app_check_for_updates_notice_desc">Para ser notificado sobre os novos lançamentos, habilite a checagem periódica de versões Estáveis e Beta.</string>
<string name="one_hand_ui">Barra de ferramentas de conversa acessível</string>
</resources>
@@ -724,4 +724,61 @@
<string name="servers_info_reconnect_servers_error">Lỗi kết nối lại máy chủ</string>
<string name="servers_info_sessions_errors">Lỗi</string>
<string name="servers_info_reset_stats_alert_error_title">Lỗi khôi phục thống kê</string>
<string name="error_updating_link_for_group">Lỗi cập nhật liên kết nhóm</string>
<string name="error_showing_message">lỗi hiển thị tin nhắn</string>
<string name="error_showing_content">lỗi hiển thị nội dung</string>
<string name="error_saving_ICE_servers">Lỗi lưu máy chủ ICE</string>
<string name="error_saving_xftp_servers">Lỗi lưu máy chủ XFTP</string>
<string name="error_saving_smp_servers">Lỗi lưu máy chủ SMP</string>
<string name="error_sending_message">Lỗi gửi tin nhắn</string>
<string name="error_starting_chat">Lỗi khởi động ứng dụng</string>
<string name="error_stopping_chat">Lỗi dừng ứng dụng</string>
<string name="error_showing_desktop_notification">Lỗi hiển thị thông báo, liên hệ với nhà phát triển.</string>
<string name="error_saving_user_password">Lỗi lưu mật khẩu người dùng</string>
<string name="migrate_from_device_error_saving_settings">Lỗi lưu cài đặt</string>
<string name="error_sending_message_contact_invitation">Lỗi gửi lời mời</string>
<string name="failed_to_active_user_title">Lỗi chuyển đổi hồ sơ!</string>
<string name="error_synchronizing_connection">Lỗi đồng bộ kết nối</string>
<string name="error_setting_address">Lỗi cài đặt địa chỉ</string>
<string name="v5_2_disappear_one_message_descr">Dù đã tắt trong cuộc trò chuyện.</string>
<string name="error_setting_network_config">Lỗi cập nhật cấu hình mạng</string>
<string name="error_updating_user_privacy">Lỗi cập nhật quyền riêng tư người dùng</string>
<string name="icon_descr_expand_role">Mở rộng chọn quyền hạn</string>
<string name="settings_section_title_experimenta">THỬ NGHIỆM</string>
<string name="expand_verb">Mở rộng</string>
<string name="exit_without_saving">Thoát mà không lưu</string>
<string name="expired_label">đã hết hạn</string>
<string name="migrate_from_device_error_verifying_passphrase">Lỗi xác thực mật khẩu:</string>
<string name="possible_slow_function_desc">Quá trình thực hiện chức năng mất quá nhiều thời gian: %1$dgiây: %2$s</string>
<string name="settings_experimental_features">Tính năng thử nghiệm</string>
<string name="export_database">Xuất cơ sở dữ liệu</string>
<string name="migrate_from_device_error_uploading_archive">Lỗi tải lên kho lưu trữ</string>
<string name="migrate_from_device_exported_file_doesnt_exist">Tập tin đã xuất không tồn tại</string>
<string name="settings_section_title_files">TẬP TIN</string>
<string name="failed_to_parse_chats_title">Không thể tải tin nhắn</string>
<string name="file_error_no_file">Không tìm thấy tập tin - có thể tập tin đã bị xóa và hủy bỏ.</string>
<string name="file_error">Lỗi tập tin</string>
<string name="export_theme">Xuất chủ đề</string>
<string name="failed_to_parse_chat_title">Không thể tải tin nhắn</string>
<string name="choose_file">Tập tin</string>
<string name="v5_0_large_files_support_descr">Nhanh chóng và không cần phải đợi người gửi hoạt động!</string>
<string name="file_not_found">Không tìm thấy tập tin</string>
<string name="file_with_path">Tập tin: %s</string>
<string name="v5_4_better_groups_descr">Tham gia nhanh chóng hơn và xử lý tin nhắn ổn định hơn.</string>
<string name="servers_info_files_tab">Tập tin</string>
<string name="favorite_chat">Yêu thích</string>
<string name="icon_descr_file">Tập tin</string>
<string name="file_error_relay">Lỗi máy chủ tệp: %1$s</string>
<string name="info_row_file_status">Trạng thái tệp</string>
<string name="files_and_media_not_allowed">Tệp và phương tiện truyền thông không được cho phép</string>
<string name="files_are_prohibited_in_group">Tệp và phương tiện truyền thông bị cấm trong nhóm này.</string>
<string name="revoke_file__message">Tệp sẽ bị xóa khỏi máy chủ.</string>
<string name="files_and_media_section">Tệp &amp; phương tiện truyền thông</string>
<string name="files_and_media_prohibited">Tệp và phương tiện truyền thông bị cấm!</string>
<string name="file_will_be_received_when_contact_completes_uploading">Tệp sẽ được nhận khi liên hệ của bạn hoàn tất quá trình tải lên.</string>
<string name="files_and_media">Tệp và phương tiện truyền thông</string>
<string name="migrate_to_device_file_delete_or_link_invalid">Tệp đã bị xóa hoặc liên kết không hợp lệ</string>
<string name="file_saved">Tệp đã được lưu</string>
<string name="file_will_be_received_when_contact_is_online">Tệp sẽ được nhận khi liên hệ của bạn hoạt động, vui lòng chờ hoặc kiểm tra lại sau!</string>
<string name="share_text_file_status">Trạng thái tệp: %s</string>
</resources>
@@ -35,7 +35,7 @@ actual fun ActiveCallInteractiveArea(call: Call) {
) {
Box(
Modifier
.padding(end = 71.dp, bottom = 92.dp)
.padding(end = 15.dp, bottom = 92.dp)
.size(67.dp)
.combinedClickable(onClick = {
val chat = chatModel.getChat(call.contact.id)
+1 -1
View File
@@ -1,5 +1,5 @@
name: simplex-chat
version: 6.1.0.0
version: 6.1.0.1
#synopsis:
#description:
homepage: https://github.com/simplex-chat/simplex-chat#readme
+1 -1
View File
@@ -5,7 +5,7 @@ cabal-version: 1.12
-- see: https://github.com/sol/hpack
name: simplex-chat
version: 6.1.0.0
version: 6.1.0.1
category: Web, System, Services, Cryptography
homepage: https://github.com/simplex-chat/simplex-chat#readme
author: simplex.chat
+65 -54
View File
@@ -4545,10 +4545,13 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
void $ continueSending connEntity conn
sentMsgDeliveryEvent conn msgId
checkSndInlineFTComplete conn msgId
ci_ <- withStore $ \db -> do
ci_ <- updateDirectItemStatus' db ct conn msgId (CISSndSent SSPComplete)
forM ci_ $ \ci -> liftIO $ setDirectSndChatItemViaProxy db user ct ci (isJust proxy)
forM_ ci_ $ \ci -> toView $ CRChatItemStatusUpdated user (AChatItem SCTDirect SMDSnd (DirectChat ct) ci)
cis <- withStore $ \db -> do
cis <- updateDirectItemsStatus' db ct conn msgId (CISSndSent SSPComplete)
liftIO $ forM cis $ \ci -> setDirectSndChatItemViaProxy db user ct ci (isJust proxy)
let acis = map ctItem cis
unless (null acis) $ toView $ CRChatItemsStatusesUpdated user acis
where
ctItem = AChatItem SCTDirect SMDSnd (DirectChat ct)
SWITCH qd phase cStats -> do
toView $ CRContactSwitch user ct (SwitchProgress qd phase cStats)
when (phase `elem` [SPStarted, SPCompleted]) $ case qd of
@@ -4604,7 +4607,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
processConnMERR connEntity conn err
MERRS msgIds err -> do
-- error cannot be AUTH error here
updateDirectItemsStatus ct conn (L.toList msgIds) (CISSndError $ agentSndError err)
updateDirectItemsStatusMsgs ct conn (L.toList msgIds) (CISSndError $ agentSndError err)
toView $ CRChatError (Just user) (ChatErrorAgent err $ Just connEntity)
ERR err -> do
toView $ CRChatError (Just user) (ChatErrorAgent err $ Just connEntity)
@@ -4958,7 +4961,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
continued <- continueSending connEntity conn
sentMsgDeliveryEvent conn msgId
checkSndInlineFTComplete conn msgId
updateGroupItemStatus gInfo m conn msgId GSSSent (Just $ isJust proxy)
updateGroupItemsStatus gInfo m conn msgId GSSSent (Just $ isJust proxy)
when continued $ sendPendingGroupMessages user m conn
SWITCH qd phase cStats -> do
toView $ CRGroupMemberSwitch user gInfo m (SwitchProgress qd phase cStats)
@@ -5002,10 +5005,10 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
continued <- continueSending connEntity conn
when continued $ sendPendingGroupMessages user m conn
MWARN msgId err -> do
withStore' $ \db -> updateGroupItemErrorStatus db msgId (groupMemberId' m) (GSSWarning $ agentSndError err)
withStore' $ \db -> updateGroupItemsErrorStatus db msgId (groupMemberId' m) (GSSWarning $ agentSndError err)
processConnMWARN connEntity conn err
MERR msgId err -> do
withStore' $ \db -> updateGroupItemErrorStatus db msgId (groupMemberId' m) (GSSError $ agentSndError err)
withStore' $ \db -> updateGroupItemsErrorStatus db msgId (groupMemberId' m) (GSSError $ agentSndError err)
-- group errors are silenced to reduce load on UI event log
-- toView $ CRChatError (Just user) (ChatErrorAgent err $ Just connEntity)
processConnMERR connEntity conn err
@@ -5013,7 +5016,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
let newStatus = GSSError $ agentSndError err
-- error cannot be AUTH error here
withStore' $ \db -> forM_ msgIds $ \msgId ->
updateGroupItemErrorStatus db msgId (groupMemberId' m) newStatus `catchAll_` pure ()
updateGroupItemsErrorStatus db msgId (groupMemberId' m) newStatus `catchAll_` pure ()
toView $ CRChatError (Just user) (ChatErrorAgent err $ Just connEntity)
ERR err -> do
toView $ CRChatError (Just user) (ChatErrorAgent err $ Just connEntity)
@@ -5021,10 +5024,10 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
-- TODO add debugging output
_ -> pure ()
where
updateGroupItemErrorStatus :: DB.Connection -> AgentMsgId -> GroupMemberId -> GroupSndStatus -> IO ()
updateGroupItemErrorStatus db msgId groupMemberId newStatus = do
chatItemId_ <- getChatItemIdByAgentMsgId db connId msgId
forM_ chatItemId_ $ \itemId -> updateGroupMemSndStatus' db itemId groupMemberId newStatus
updateGroupItemsErrorStatus :: DB.Connection -> AgentMsgId -> GroupMemberId -> GroupSndStatus -> IO ()
updateGroupItemsErrorStatus db msgId groupMemberId newStatus = do
itemIds <- getChatItemIdsByAgentMsgId db connId msgId
forM_ itemIds $ \itemId -> updateGroupMemSndStatus' db itemId groupMemberId newStatus
agentMsgDecryptError :: AgentCryptoError -> (MsgDecryptError, Word32)
agentMsgDecryptError = \case
@@ -6696,43 +6699,42 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
withStore' $ \db -> updateSndMsgDeliveryStatus db connId agentMsgId $ MDSSndRcvd msgRcptStatus
updateDirectItemStatus ct conn agentMsgId $ CISSndRcvd msgRcptStatus SSPComplete
-- TODO [batch send] update status of all messages in batch
-- - this is for when we implement identifying inactive connections
-- - regular messages sent in batch would all be marked as delivered by a single receipt
-- - repeat for directMsgReceived if same logic is applied to direct messages
-- - getChatItemIdByAgentMsgId to return [ChatItemId]
groupMsgReceived :: GroupInfo -> GroupMember -> Connection -> MsgMeta -> NonEmpty MsgReceipt -> CM ()
groupMsgReceived gInfo m conn@Connection {connId} msgMeta msgRcpts = do
checkIntegrityCreateItem (CDGroupRcv gInfo m) msgMeta `catchChatError` \_ -> pure ()
forM_ msgRcpts $ \MsgReceipt {agentMsgId, msgRcptStatus} -> do
withStore' $ \db -> updateSndMsgDeliveryStatus db connId agentMsgId $ MDSSndRcvd msgRcptStatus
updateGroupItemStatus gInfo m conn agentMsgId (GSSRcvd msgRcptStatus) Nothing
updateGroupItemsStatus gInfo m conn agentMsgId (GSSRcvd msgRcptStatus) Nothing
updateDirectItemsStatus :: Contact -> Connection -> [AgentMsgId] -> CIStatus 'MDSnd -> CM ()
updateDirectItemsStatus ct conn msgIds newStatus = do
cis_ <- withStore' $ \db -> forM msgIds $ \msgId -> runExceptT $ updateDirectItemStatus' db ct conn msgId newStatus
-- only send the last expired item event to view
case reverse $ catMaybes $ rights cis_ of
ci : _ -> toView $ CRChatItemStatusUpdated user (AChatItem SCTDirect SMDSnd (DirectChat ct) ci)
_ -> pure ()
-- Searches chat items for many agent message IDs and updates their status
updateDirectItemsStatusMsgs :: Contact -> Connection -> [AgentMsgId] -> CIStatus 'MDSnd -> CM ()
updateDirectItemsStatusMsgs ct conn msgIds newStatus = do
cis <- withStore' $ \db -> forM msgIds $ \msgId -> runExceptT $ updateDirectItemsStatus' db ct conn msgId newStatus
let acis = map ctItem $ concat $ rights cis
unless (null acis) $ toView $ CRChatItemsStatusesUpdated user acis
where
ctItem = AChatItem SCTDirect SMDSnd (DirectChat ct)
updateDirectItemStatus :: Contact -> Connection -> AgentMsgId -> CIStatus 'MDSnd -> CM ()
updateDirectItemStatus ct conn msgId newStatus = do
ci_ <- withStore $ \db -> updateDirectItemStatus' db ct conn msgId newStatus
forM_ ci_ $ \ci -> toView $ CRChatItemStatusUpdated user (AChatItem SCTDirect SMDSnd (DirectChat ct) ci)
cis <- withStore $ \db -> updateDirectItemsStatus' db ct conn msgId newStatus
let acis = map ctItem cis
unless (null acis) $ toView $ CRChatItemsStatusesUpdated user acis
where
ctItem = AChatItem SCTDirect SMDSnd (DirectChat ct)
updateDirectItemStatus' :: DB.Connection -> Contact -> Connection -> AgentMsgId -> CIStatus 'MDSnd -> ExceptT StoreError IO (Maybe (ChatItem 'CTDirect 'MDSnd))
updateDirectItemStatus' db ct@Contact {contactId} Connection {connId} msgId newStatus =
liftIO (getDirectChatItemByAgentMsgId db user contactId connId msgId) >>= \case
Just (CChatItem SMDSnd ChatItem {meta = CIMeta {itemStatus = CISSndRcvd _ _}}) -> pure Nothing
Just (CChatItem SMDSnd ChatItem {meta = CIMeta {itemId, itemStatus}})
| itemStatus == newStatus -> pure Nothing
| otherwise -> Just <$> updateDirectChatItemStatus db user ct itemId newStatus
_ -> pure Nothing
updateGroupMemSndStatus :: ChatItemId -> GroupMemberId -> GroupSndStatus -> CM Bool
updateGroupMemSndStatus itemId groupMemberId newStatus =
withStore' $ \db -> updateGroupMemSndStatus' db itemId groupMemberId newStatus
updateDirectItemsStatus' :: DB.Connection -> Contact -> Connection -> AgentMsgId -> CIStatus 'MDSnd -> ExceptT StoreError IO [ChatItem 'CTDirect 'MDSnd]
updateDirectItemsStatus' db ct@Contact {contactId} Connection {connId} msgId newStatus = do
items <- liftIO $ getDirectChatItemsByAgentMsgId db user contactId connId msgId
catMaybes <$> mapM updateItem items
where
updateItem :: CChatItem 'CTDirect -> ExceptT StoreError IO (Maybe (ChatItem 'CTDirect 'MDSnd))
updateItem = \case
(CChatItem SMDSnd ChatItem {meta = CIMeta {itemStatus = CISSndRcvd _ _}}) -> pure Nothing
(CChatItem SMDSnd ChatItem {meta = CIMeta {itemId, itemStatus}})
| itemStatus == newStatus -> pure Nothing
| otherwise -> Just <$> updateDirectChatItemStatus db user ct itemId newStatus
_ -> pure Nothing
updateGroupMemSndStatus' :: DB.Connection -> ChatItemId -> GroupMemberId -> GroupSndStatus -> IO Bool
updateGroupMemSndStatus' db itemId groupMemberId newStatus =
@@ -6743,20 +6745,29 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
| otherwise -> updateGroupSndStatus db itemId groupMemberId newStatus $> True
_ -> pure False
updateGroupItemStatus :: GroupInfo -> GroupMember -> Connection -> AgentMsgId -> GroupSndStatus -> Maybe Bool -> CM ()
updateGroupItemStatus gInfo@GroupInfo {groupId} GroupMember {groupMemberId} Connection {connId} msgId newMemStatus viaProxy_ =
withStore' (\db -> getGroupChatItemByAgentMsgId db user groupId connId msgId) >>= \case
Just (CChatItem SMDSnd ChatItem {meta = CIMeta {itemStatus = CISSndRcvd _ SSPComplete}}) -> pure ()
Just (CChatItem SMDSnd ChatItem {meta = CIMeta {itemId, itemStatus}}) -> do
forM_ viaProxy_ $ \viaProxy -> withStore' $ \db -> setGroupSndViaProxy db itemId groupMemberId viaProxy
memStatusChanged <- updateGroupMemSndStatus itemId groupMemberId newMemStatus
when memStatusChanged $ do
memStatusCounts <- withStore' (`getGroupSndStatusCounts` itemId)
let newStatus = membersGroupItemStatus memStatusCounts
when (newStatus /= itemStatus) $ do
chatItem <- withStore $ \db -> updateGroupChatItemStatus db user gInfo itemId newStatus
toView $ CRChatItemStatusUpdated user (AChatItem SCTGroup SMDSnd (GroupChat gInfo) chatItem)
_ -> pure ()
updateGroupItemsStatus :: GroupInfo -> GroupMember -> Connection -> AgentMsgId -> GroupSndStatus -> Maybe Bool -> CM ()
updateGroupItemsStatus gInfo@GroupInfo {groupId} GroupMember {groupMemberId} Connection {connId} msgId newMemStatus viaProxy_ = do
items <- withStore' (\db -> getGroupChatItemsByAgentMsgId db user groupId connId msgId)
cis <- catMaybes <$> withStore (\db -> mapM (updateItem db) items)
let acis = map gItem cis
unless (null acis) $ toView $ CRChatItemsStatusesUpdated user acis
where
gItem = AChatItem SCTGroup SMDSnd (GroupChat gInfo)
updateItem :: DB.Connection -> CChatItem 'CTGroup -> ExceptT StoreError IO (Maybe (ChatItem 'CTGroup 'MDSnd))
updateItem db = \case
(CChatItem SMDSnd ChatItem {meta = CIMeta {itemStatus = CISSndRcvd _ SSPComplete}}) -> pure Nothing
(CChatItem SMDSnd ChatItem {meta = CIMeta {itemId, itemStatus}}) -> do
forM_ viaProxy_ $ \viaProxy -> liftIO $ setGroupSndViaProxy db itemId groupMemberId viaProxy
memStatusChanged <- liftIO $ updateGroupMemSndStatus' db itemId groupMemberId newMemStatus
if memStatusChanged
then do
memStatusCounts <- liftIO $ getGroupSndStatusCounts db itemId
let newStatus = membersGroupItemStatus memStatusCounts
if newStatus /= itemStatus
then Just <$> updateGroupChatItemStatus db user gInfo itemId newStatus
else pure Nothing
else pure Nothing
_ -> pure Nothing
createContactPQSndItem :: User -> Contact -> Connection -> PQEncryption -> CM (Contact, Connection)
createContactPQSndItem user ct conn@Connection {pqSndEnabled} pqSndEnabled' =
+22
View File
@@ -28,6 +28,7 @@ data LockScreenCalls = LSCDisable | LSCShow | LSCAccept deriving (Show)
data AppSettings = AppSettings
{ appPlatform :: Maybe AppPlatform,
networkConfig :: Maybe NetworkConfig,
networkProxy :: Maybe NetworkProxy,
privacyEncryptLocalFiles :: Maybe Bool,
privacyAskToApproveRelays :: Maybe Bool,
privacyAcceptImages :: Maybe Bool,
@@ -57,11 +58,24 @@ data AppSettings = AppSettings
}
deriving (Show)
data NetworkProxy = NetworkProxy
{ host :: Text,
port :: Int,
auth :: NetworkProxyAuth,
username :: Text,
password :: Text
}
deriving (Show)
data NetworkProxyAuth = NPAUsername | NPAIsolate
deriving (Show)
defaultAppSettings :: AppSettings
defaultAppSettings =
AppSettings
{ appPlatform = Nothing,
networkConfig = Just defaultNetworkConfig,
networkProxy = Nothing,
privacyEncryptLocalFiles = Just True,
privacyAskToApproveRelays = Just True,
privacyAcceptImages = Just True,
@@ -95,6 +109,7 @@ defaultParseAppSettings =
AppSettings
{ appPlatform = Nothing,
networkConfig = Nothing,
networkProxy = Nothing,
privacyEncryptLocalFiles = Nothing,
privacyAskToApproveRelays = Nothing,
privacyAcceptImages = Nothing,
@@ -128,6 +143,7 @@ combineAppSettings platformDefaults storedSettings =
AppSettings
{ appPlatform = p appPlatform,
networkConfig = p networkConfig,
networkProxy = p networkProxy,
privacyEncryptLocalFiles = p privacyEncryptLocalFiles,
privacyAskToApproveRelays = p privacyAskToApproveRelays,
privacyAcceptImages = p privacyAcceptImages,
@@ -167,12 +183,17 @@ $(JQ.deriveJSON (enumJSON $ dropPrefix "NPM") ''NotificationPreviewMode)
$(JQ.deriveJSON (enumJSON $ dropPrefix "LSC") ''LockScreenCalls)
$(JQ.deriveJSON (enumJSON $ dropPrefix "NPA") ''NetworkProxyAuth)
$(JQ.deriveJSON defaultJSON ''NetworkProxy)
$(JQ.deriveToJSON defaultJSON ''AppSettings)
instance FromJSON AppSettings where
parseJSON (J.Object v) = do
appPlatform <- p "appPlatform"
networkConfig <- p "networkConfig"
networkProxy <- p "networkProxy"
privacyEncryptLocalFiles <- p "privacyEncryptLocalFiles"
privacyAskToApproveRelays <- p "privacyAskToApproveRelays"
privacyAcceptImages <- p "privacyAcceptImages"
@@ -203,6 +224,7 @@ instance FromJSON AppSettings where
AppSettings
{ appPlatform,
networkConfig,
networkProxy,
privacyEncryptLocalFiles,
privacyAskToApproveRelays,
privacyAcceptImages,
+1 -1
View File
@@ -600,7 +600,7 @@ data ChatResponse
| CRGroupMemberCode {user :: User, groupInfo :: GroupInfo, member :: GroupMember, connectionCode :: Text}
| CRConnectionVerified {user :: User, verified :: Bool, expectedCode :: Text}
| CRNewChatItems {user :: User, chatItems :: [AChatItem]}
| CRChatItemStatusUpdated {user :: User, chatItem :: AChatItem}
| CRChatItemsStatusesUpdated {user :: User, chatItems :: [AChatItem]}
| CRChatItemUpdated {user :: User, chatItem :: AChatItem}
| CRChatItemNotChanged {user :: User, chatItem :: AChatItem}
| CRChatItemReaction {user :: User, added :: Bool, reaction :: ACIReaction}
+5 -5
View File
@@ -540,21 +540,21 @@ data ExtMsgContent = ExtMsgContent {content :: MsgContent, file :: Maybe FileInv
$(JQ.deriveJSON defaultJSON ''QuotedMsg)
-- this limit reserves space for metadata in forwarded messages
-- 15780 (limit used for fileChunkSize) - 161 (x.grp.msg.forward overhead) = 15619, round to 15610
-- 15780 (limit used for fileChunkSize) - 161 (x.grp.msg.forward overhead) = 15619, - 16 for block encryption ("rounded" to 15602)
maxEncodedMsgLength :: Int
maxEncodedMsgLength = 15610
maxEncodedMsgLength = 15602
-- maxEncodedMsgLength - 2222, see e2eEncUserMsgLength in agent
maxCompressedMsgLength :: Int
maxCompressedMsgLength = 13388
maxCompressedMsgLength = 13380
-- maxEncodedMsgLength - delta between MSG and INFO + 100 (returned for forward overhead)
-- delta between MSG and INFO = e2eEncUserMsgLength (no PQ) - e2eEncConnInfoLength (no PQ) = 1008
maxEncodedInfoLength :: Int
maxEncodedInfoLength = 14702
maxEncodedInfoLength = 14694
maxCompressedInfoLength :: Int
maxCompressedInfoLength = 10976 -- maxEncodedInfoLength - 3726, see e2eEncConnInfoLength in agent
maxCompressedInfoLength = 10968 -- maxEncodedInfoLength - 3726, see e2eEncConnInfoLength in agent
data EncodedChatMessage = ECMEncoded ByteString | ECMLarge
+16 -17
View File
@@ -75,16 +75,16 @@ module Simplex.Chat.Store.Messages
getGroupCIReactions,
getGroupReactions,
setGroupReaction,
getChatItemIdByAgentMsgId,
getChatItemIdsByAgentMsgId,
getDirectChatItem,
getDirectCIWithReactions,
getDirectChatItemBySharedMsgId,
getDirectChatItemByAgentMsgId,
getDirectChatItemsByAgentMsgId,
getGroupChatItem,
getGroupCIWithReactions,
getGroupChatItemBySharedMsgId,
getGroupMemberCIBySharedMsgId,
getGroupChatItemByAgentMsgId,
getGroupChatItemsByAgentMsgId,
getGroupMemberChatItemLast,
getLocalChatItem,
updateLocalChatItem',
@@ -1624,19 +1624,18 @@ getAllChatItems db vr user@User {userId} pagination search_ = do
|]
(userId, search, beforeTs, beforeTs, beforeId, count)
getChatItemIdByAgentMsgId :: DB.Connection -> Int64 -> AgentMsgId -> IO (Maybe ChatItemId)
getChatItemIdByAgentMsgId db connId msgId =
fmap join . maybeFirstRow fromOnly $
DB.query
getChatItemIdsByAgentMsgId :: DB.Connection -> Int64 -> AgentMsgId -> IO [ChatItemId]
getChatItemIdsByAgentMsgId db connId msgId =
map fromOnly
<$> DB.query
db
[sql|
SELECT chat_item_id
FROM chat_item_messages
WHERE message_id = (
WHERE message_id IN (
SELECT message_id
FROM msg_deliveries
WHERE connection_id = ? AND agent_msg_id = ?
LIMIT 1
)
|]
(connId, msgId)
@@ -1780,10 +1779,10 @@ getDirectChatItemBySharedMsgId db user@User {userId} contactId sharedMsgId = do
itemId <- getDirectChatItemIdBySharedMsgId_ db userId contactId sharedMsgId
getDirectChatItem db user contactId itemId
getDirectChatItemByAgentMsgId :: DB.Connection -> User -> ContactId -> Int64 -> AgentMsgId -> IO (Maybe (CChatItem 'CTDirect))
getDirectChatItemByAgentMsgId db user contactId connId msgId = do
itemId_ <- getChatItemIdByAgentMsgId db connId msgId
maybe (pure Nothing) (fmap eitherToMaybe . runExceptT . getDirectChatItem db user contactId) itemId_
getDirectChatItemsByAgentMsgId :: DB.Connection -> User -> ContactId -> Int64 -> AgentMsgId -> IO [CChatItem 'CTDirect]
getDirectChatItemsByAgentMsgId db user contactId connId msgId = do
itemIds <- getChatItemIdsByAgentMsgId db connId msgId
catMaybes <$> mapM (fmap eitherToMaybe . runExceptT . getDirectChatItem db user contactId) itemIds
getDirectChatItemIdBySharedMsgId_ :: DB.Connection -> UserId -> Int64 -> SharedMsgId -> ExceptT StoreError IO Int64
getDirectChatItemIdBySharedMsgId_ db userId contactId sharedMsgId =
@@ -2036,10 +2035,10 @@ getGroupMemberCIBySharedMsgId db user@User {userId} groupId memberId sharedMsgId
(GCUserMember, userId, groupId, memberId, sharedMsgId)
getGroupChatItem db user groupId itemId
getGroupChatItemByAgentMsgId :: DB.Connection -> User -> GroupId -> Int64 -> AgentMsgId -> IO (Maybe (CChatItem 'CTGroup))
getGroupChatItemByAgentMsgId db user groupId connId msgId = do
itemId_ <- getChatItemIdByAgentMsgId db connId msgId
maybe (pure Nothing) (fmap eitherToMaybe . runExceptT . getGroupChatItem db user groupId) itemId_
getGroupChatItemsByAgentMsgId :: DB.Connection -> User -> GroupId -> Int64 -> AgentMsgId -> IO [CChatItem 'CTGroup]
getGroupChatItemsByAgentMsgId db user groupId connId msgId = do
itemIds <- getChatItemIdsByAgentMsgId db connId msgId
catMaybes <$> mapM (fmap eitherToMaybe . runExceptT . getGroupChatItem db user groupId) itemIds
getGroupChatItem :: DB.Connection -> User -> Int64 -> ChatItemId -> ExceptT StoreError IO (CChatItem 'CTGroup)
getGroupChatItem db User {userId, userContactId} groupId itemId = ExceptT $ do
+8 -1
View File
@@ -134,7 +134,14 @@ responseToView hu@(currentRH, user_) ChatConfig {logLevel, showReactions, showRe
CRChatItems u _ chatItems -> ttyUser u $ concatMap (\(AChatItem _ _ chat item) -> viewChatItem chat item True ts tz <> viewItemReactions item) chatItems
CRChatItemInfo u ci ciInfo -> ttyUser u $ viewChatItemInfo ci ciInfo tz
CRChatItemId u itemId -> ttyUser u [plain $ maybe "no item" show itemId]
CRChatItemStatusUpdated u ci -> ttyUser u $ viewChatItemStatusUpdated ci ts tz testView showReceipts
CRChatItemsStatusesUpdated u chatItems
| length chatItems <= 20 ->
concatMap
(\ci -> ttyUser u $ viewChatItemStatusUpdated ci ts tz testView showReceipts)
chatItems
| testView && showReceipts ->
ttyUser u [sShow (length chatItems) <> " message statuses updated"]
| otherwise -> []
CRChatItemUpdated u (AChatItem _ _ chat item) -> ttyUser u $ unmuted u chat item $ viewItemUpdate chat item liveItems ts tz
CRChatItemNotChanged u ci -> ttyUser u $ viewItemNotChanged ci
CRChatItemsDeleted u deletions byUser timed -> case deletions of
+3 -3
View File
@@ -29,7 +29,7 @@
"home": "Inicio",
"simplex-explained-tab-3-p-1": "Para cada cola los servidores disponen de credenciales separadas y anónimas, por lo que desconocen a qué usuarios pertenecen.",
"hero-p-1": "Las demás aplicaciones usan ID de usuario: Signal, Matrix, Session, Briar, Jami, Cwtch, etc.<br> SimpleX no los tiene, <strong>ni siquiera números aleatorios</strong>.<br> Esto mejora radicalmente su privacidad.",
"hero-2-header-desc": "El video muestra cómo se conecta con sus amistades a través del código QR de un solo uso, en persona o a través de videollamada. También puede conectarse compartiendo un enlace de invitación.",
"hero-2-header-desc": "El vídeo muestra cómo se conecta con sus amistades a través del código QR de un solo uso, en persona o a través de videollamada. También puede conectarse compartiendo un enlace de invitación.",
"feature-7-title": "Almacenamiento portable y cifrado &mdash; podrá transferir su perfil a otro dispositivo",
"simplex-private-card-4-point-2": "Para usar SimpleX a través de Tor, instala la aplicación <a href=\"https://guardianproject.info/apps/org.torproject.android/\" target=\"_blank\">Orbot</a> y activa el proxy SOCKS5 (o VPN <a href=\"https://apps.apple.com/us/app/orbot/id1609461599?platform=iphone\" target=\"_blank\">en iOS</a>).",
"simplex-private-card-3-point-1": "Para las conexiones cliente servidor se usan exclusivamente el protocolo TLS 1.2/1.3 con algoritmos robustos.",
@@ -52,7 +52,7 @@
"feature-8-title": "Modo incógnito &mdash;<br>exclusivo de SimpleX Chat",
"simplex-private-1-title": "Doble capa de<br>cifrado de extremo a extremo",
"simplex-private-2-title": "Capa de cifrado<br>adicional en el servidor",
"simplex-private-3-title": "Transporte TLS<br>seguro y auténticado",
"simplex-private-3-title": "Transporte TLS<br>seguro y autenticado",
"simplex-private-4-title": "Acceso opcional<br>a través de Tor",
"simplex-private-7-title": "Verificación de la<br>integridad del mensaje",
"feature-4-title": "Mensajes de voz cifrados E2E",
@@ -252,7 +252,7 @@
"hero-overlay-card-3-p-1": "<a href=\"https://www.trailofbits.com/about/\">Trail of Bits</a> es una consultora de seguridad y tecnología líder cuyos clientes incluyen grandes tecnológicas, agencias gubernamentales e importantes proyectos de blockchain.",
"docs-dropdown-9": "Descargas",
"please-enable-javascript": "Habilita JavaScript para ver el código QR.",
"please-use-link-in-mobile-app": "Usa el enlace en la apliación móvil,",
"please-use-link-in-mobile-app": "Usa el enlace en la apliación móvil",
"docs-dropdown-10": "Transparencia",
"docs-dropdown-11": "FAQ",
"docs-dropdown-12": "Seguridad"