Compare commits

..

1 Commits

Author SHA1 Message Date
Avently 391892bd64 ui: chatitem header 2023-11-13 10:29:22 -08:00
290 changed files with 3151 additions and 18278 deletions
+15 -26
View File
@@ -261,36 +261,11 @@ jobs:
# / Windows # / Windows
# rm -rf dist-newstyle/src/direct-sq* is here because of the bug in cabal's dependency which prevents second build from finishing # rm -rf dist-newstyle/src/direct-sq* is here because of the bug in cabal's dependency which prevents second build from finishing
- name: 'Setup MSYS2'
if: matrix.os == 'windows-latest'
uses: msys2/setup-msys2@v2
with:
msystem: ucrt64
update: true
install: >-
git
perl
make
pacboy: >-
toolchain:p
cmake:p
- name: Windows build - name: Windows build
id: windows_build id: windows_build
if: matrix.os == 'windows-latest' if: matrix.os == 'windows-latest'
shell: msys2 {0} shell: bash
run: | run: |
export PATH=$PATH:/c/ghcup/bin
scripts/desktop/prepare-openssl-windows.sh
openssl_windows_style_path=$(echo `pwd`/dist-newstyle/openssl-1.1.1w | sed 's#/\([a-zA-Z]\)#\1:#' | sed 's#/#\\#g')
rm cabal.project.local 2>/dev/null || true
echo "ignore-project: False" >> cabal.project.local
echo "package direct-sqlcipher" >> cabal.project.local
echo " flags: +openssl" >> cabal.project.local
echo " extra-include-dirs: $openssl_windows_style_path\include" >> cabal.project.local
echo " extra-lib-dirs: $openssl_windows_style_path" >> cabal.project.local
rm -rf dist-newstyle/src/direct-sq* rm -rf dist-newstyle/src/direct-sq*
sed -i "s/, unix /--, unix /" simplex-chat.cabal sed -i "s/, unix /--, unix /" simplex-chat.cabal
cabal build --enable-tests cabal build --enable-tests
@@ -318,6 +293,20 @@ jobs:
body: | body: |
${{ steps.windows_build.outputs.bin_hash }} ${{ steps.windows_build.outputs.bin_hash }}
- name: 'Setup MSYS2'
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'windows-latest'
uses: msys2/setup-msys2@v2
with:
msystem: ucrt64
update: true
install: >-
git
perl
make
pacboy: >-
toolchain:p
cmake:p
- name: Windows build desktop - name: Windows build desktop
id: windows_desktop_build id: windows_desktop_build
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'windows-latest' if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'windows-latest'
+4 -6
View File
@@ -232,8 +232,6 @@ You can use SimpleX with your own servers and still communicate with people usin
Recent and important updates: Recent and important updates:
[Nov 25, 2023. SimpleX Chat v5.4 released: link mobile and desktop apps via quantum resistant protocol, and much better groups](./blog/20231125-simplex-chat-v5-4-link-mobile-desktop-quantum-resistant-better-groups.md).
[Sep 25, 2023. SimpleX Chat v5.3 released: desktop app, local file encryption, improved groups and directory service](./blog/20230925-simplex-chat-v5-3-desktop-app-local-file-encryption-directory-service.md). [Sep 25, 2023. SimpleX Chat v5.3 released: desktop app, local file encryption, improved groups and directory service](./blog/20230925-simplex-chat-v5-3-desktop-app-local-file-encryption-directory-service.md).
[Jul 22, 2023. SimpleX Chat: v5.2 released with message delivery receipts](./blog/20230722-simplex-chat-v5-2-message-delivery-receipts.md). [Jul 22, 2023. SimpleX Chat: v5.2 released with message delivery receipts](./blog/20230722-simplex-chat-v5-2-message-delivery-receipts.md).
@@ -368,13 +366,13 @@ Please also join [#simplex-devs](https://simplex.chat/contact#/?v=1-2&smp=smp%3A
- ✅ Message delivery confirmation (with sender opt-out per contact). - ✅ Message delivery confirmation (with sender opt-out per contact).
- ✅ Desktop client. - ✅ Desktop client.
- ✅ Encryption of local files stored in the app. - ✅ Encryption of local files stored in the app.
- Using mobile profiles from the desktop app. - 🏗 Using mobile profiles from the desktop app.
- 🏗 Improve experience for the new users.
- 🏗 Post-quantum resistant key exchange in double ratchet protocol.
- 🏗 Large groups, communities and public channels.
- Message delivery relay for senders (to conceal IP address from the recipients' servers and to reduce the traffic). - Message delivery relay for senders (to conceal IP address from the recipients' servers and to reduce the traffic).
- Post-quantum resistant key exchange in double ratchet protocol.
- Large groups, communities and public channels.
- Privacy & security slider - a simple way to set all settings at once. - Privacy & security slider - a simple way to set all settings at once.
- Improve sending videos (including encryption of locally stored videos). - Improve sending videos (including encryption of locally stored videos).
- Improve experience for the new users.
- SMP queue redundancy and rotation (manual is supported). - SMP queue redundancy and rotation (manual is supported).
- Include optional message into connection request sent via contact address. - Include optional message into connection request sent via contact address.
- Improved navigation and search in the conversation (expand and scroll to quoted message, scroll to search results, etc.). - Improved navigation and search in the conversation (expand and scroll to quoted message, scroll to search results, etc.).
-41
View File
@@ -85,8 +85,6 @@ final class ChatModel: ObservableObject {
@Published var activeCall: Call? @Published var activeCall: Call?
@Published var callCommand: WCallCommand? @Published var callCommand: WCallCommand?
@Published var showCallView = false @Published var showCallView = false
// remote desktop
@Published var remoteCtrlSession: RemoteCtrlSession?
// currently showing QR code // currently showing QR code
@Published var connReqInv: String? @Published var connReqInv: String?
// audio recording and playback // audio recording and playback
@@ -112,10 +110,6 @@ final class ChatModel: ObservableObject {
notificationMode == .periodic || ntfEnablePeriodicGroupDefault.get() notificationMode == .periodic || ntfEnablePeriodicGroupDefault.get()
} }
var activeRemoteCtrl: Bool {
remoteCtrlSession?.active ?? false
}
func getUser(_ userId: Int64) -> User? { func getUser(_ userId: Int64) -> User? {
currentUser?.userId == userId currentUser?.userId == userId
? currentUser ? currentUser
@@ -768,38 +762,3 @@ final class GMember: ObservableObject, Identifiable {
var viewId: String { get { "\(wrapped.id) \(created.timeIntervalSince1970)" } } var viewId: String { get { "\(wrapped.id) \(created.timeIntervalSince1970)" } }
static let sampleData = GMember(GroupMember.sampleData) static let sampleData = GMember(GroupMember.sampleData)
} }
struct RemoteCtrlSession {
var ctrlAppInfo: CtrlAppInfo?
var appVersion: String
var sessionState: UIRemoteCtrlSessionState
func updateState(_ state: UIRemoteCtrlSessionState) -> RemoteCtrlSession {
RemoteCtrlSession(ctrlAppInfo: ctrlAppInfo, appVersion: appVersion, sessionState: state)
}
var active: Bool {
if case .connected = sessionState { true } else { false }
}
var discovery: Bool {
if case .searching = sessionState { true } else { false }
}
var sessionCode: String? {
switch sessionState {
case let .pendingConfirmation(_, sessionCode): sessionCode
case let .connected(_, sessionCode): sessionCode
default: nil
}
}
}
enum UIRemoteCtrlSessionState {
case starting
case searching
case found(remoteCtrl: RemoteCtrlInfo, compatible: Bool)
case connecting(remoteCtrl_: RemoteCtrlInfo?)
case pendingConfirmation(remoteCtrl_: RemoteCtrlInfo?, sessionCode: String)
case connected(remoteCtrl: RemoteCtrlInfo, sessionCode: String)
}
-92
View File
@@ -905,46 +905,6 @@ func apiCancelFile(fileId: Int64) async -> AChatItem? {
} }
} }
func setLocalDeviceName(_ displayName: String) throws {
try sendCommandOkRespSync(.setLocalDeviceName(displayName: displayName))
}
func connectRemoteCtrl(desktopAddress: String) async throws -> (RemoteCtrlInfo?, CtrlAppInfo, String) {
let r = await chatSendCmd(.connectRemoteCtrl(xrcpInvitation: desktopAddress))
if case let .remoteCtrlConnecting(rc_, ctrlAppInfo, v) = r { return (rc_, ctrlAppInfo, v) }
throw r
}
func findKnownRemoteCtrl() async throws {
try await sendCommandOkResp(.findKnownRemoteCtrl)
}
func confirmRemoteCtrl(_ rcId: Int64) async throws -> (RemoteCtrlInfo?, CtrlAppInfo, String) {
let r = await chatSendCmd(.confirmRemoteCtrl(remoteCtrlId: rcId))
if case let .remoteCtrlConnecting(rc_, ctrlAppInfo, v) = r { return (rc_, ctrlAppInfo, v) }
throw r
}
func verifyRemoteCtrlSession(_ sessCode: String) async throws -> RemoteCtrlInfo {
let r = await chatSendCmd(.verifyRemoteCtrlSession(sessionCode: sessCode))
if case let .remoteCtrlConnected(rc) = r { return rc }
throw r
}
func listRemoteCtrls() throws -> [RemoteCtrlInfo] {
let r = chatSendCmdSync(.listRemoteCtrls)
if case let .remoteCtrlList(rcInfo) = r { return rcInfo }
throw r
}
func stopRemoteCtrl() async throws {
try await sendCommandOkResp(.stopRemoteCtrl)
}
func deleteRemoteCtrl(_ rcId: Int64) async throws {
try await sendCommandOkResp(.deleteRemoteCtrl(remoteCtrlId: rcId))
}
func networkErrorAlert(_ r: ChatResponse) -> Alert? { func networkErrorAlert(_ r: ChatResponse) -> Alert? {
switch r { switch r {
case let .chatCmdError(_, .errorAgent(.BROKER(addr, .TIMEOUT))): case let .chatCmdError(_, .errorAgent(.BROKER(addr, .TIMEOUT))):
@@ -1073,12 +1033,6 @@ private func sendCommandOkResp(_ cmd: ChatCommand) async throws {
throw r throw r
} }
private func sendCommandOkRespSync(_ cmd: ChatCommand) throws {
let r = chatSendCmdSync(cmd)
if case .cmdOk = r { return }
throw r
}
func apiNewGroup(incognito: Bool, groupProfile: GroupProfile) throws -> GroupInfo { func apiNewGroup(incognito: Bool, groupProfile: GroupProfile) throws -> GroupInfo {
let userId = try currentUserId("apiNewGroup") let userId = try currentUserId("apiNewGroup")
let r = chatSendCmdSync(.apiNewGroup(userId: userId, incognito: incognito, groupProfile: groupProfile)) let r = chatSendCmdSync(.apiNewGroup(userId: userId, incognito: incognito, groupProfile: groupProfile))
@@ -1716,39 +1670,6 @@ func processReceivedMsg(_ res: ChatResponse) async {
await MainActor.run { await MainActor.run {
m.updateGroupMemberConnectionStats(groupInfo, member, ratchetSyncProgress.connectionStats) m.updateGroupMemberConnectionStats(groupInfo, member, ratchetSyncProgress.connectionStats)
} }
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible):
await MainActor.run {
if let sess = m.remoteCtrlSession, case .searching = sess.sessionState {
let state = UIRemoteCtrlSessionState.found(remoteCtrl: remoteCtrl, compatible: compatible)
m.remoteCtrlSession = RemoteCtrlSession(
ctrlAppInfo: ctrlAppInfo_,
appVersion: appVersion,
sessionState: state
)
}
}
case let .remoteCtrlSessionCode(remoteCtrl_, sessionCode):
await MainActor.run {
let state = UIRemoteCtrlSessionState.pendingConfirmation(remoteCtrl_: remoteCtrl_, sessionCode: sessionCode)
m.remoteCtrlSession = m.remoteCtrlSession?.updateState(state)
}
case let .remoteCtrlConnected(remoteCtrl):
// TODO currently it is returned in response to command, so it is redundant
await MainActor.run {
let state = UIRemoteCtrlSessionState.connected(remoteCtrl: remoteCtrl, sessionCode: m.remoteCtrlSession?.sessionCode ?? "")
m.remoteCtrlSession = m.remoteCtrlSession?.updateState(state)
}
case .remoteCtrlStopped:
// This delay is needed to cancel the session that fails on network failure,
// e.g. when user did not grant permission to access local network yet.
if let sess = m.remoteCtrlSession {
m.remoteCtrlSession = nil
if case .connected = sess.sessionState {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
switchToLocalSession()
}
}
}
default: default:
logger.debug("unsupported event: \(res.responseType)") logger.debug("unsupported event: \(res.responseType)")
} }
@@ -1762,19 +1683,6 @@ func processReceivedMsg(_ res: ChatResponse) async {
} }
} }
func switchToLocalSession() {
let m = ChatModel.shared
m.remoteCtrlSession = nil
do {
m.users = try listUsers()
try getUserChatData()
let statuses = (try apiGetNetworkStatuses()).map { s in (s.agentConnId, s.networkStatus) }
m.networkStatuses = Dictionary(uniqueKeysWithValues: statuses)
} catch let error {
logger.debug("error updating chat data: \(responseError(error))")
}
}
func active(_ user: any UserLike) -> Bool { func active(_ user: any UserLike) -> Bool {
user.userId == ChatModel.shared.currentUser?.id user.userId == ChatModel.shared.currentUser?.id
} }
+1 -4
View File
@@ -26,10 +26,7 @@ struct SimpleXApp: App {
@State private var showInitializationView = false @State private var showInitializationView = false
init() { init() {
DispatchQueue.global(qos: .background).sync { hs_init(0, nil)
haskell_init()
// hs_init(0, nil)
}
UserDefaults.standard.register(defaults: appDefaults) UserDefaults.standard.register(defaults: appDefaults)
setGroupDefaults() setGroupDefaults()
registerGroupDefaults() registerGroupDefaults()
@@ -165,8 +165,6 @@ struct CIRcvDecryptionError: View {
message = Text("\(msgCount) messages failed to decrypt.") + Text("\n") + why message = Text("\(msgCount) messages failed to decrypt.") + Text("\n") + why
case .other: case .other:
message = Text("\(msgCount) messages failed to decrypt.") + Text("\n") + why message = Text("\(msgCount) messages failed to decrypt.") + Text("\n") + why
case .ratchetSync:
message = Text("Encryption re-negotiation failed.")
} }
return message return message
} }
@@ -157,7 +157,7 @@ struct AddGroupMembersViewCommon: View {
private func rolePicker() -> some View { private func rolePicker() -> some View {
Picker("New member role", selection: $selectedRole) { Picker("New member role", selection: $selectedRole) {
ForEach(GroupMemberRole.allCases) { role in ForEach(GroupMemberRole.allCases) { role in
if role <= groupInfo.membership.memberRole && role != .author { if role <= groupInfo.membership.memberRole {
Text(role.text) Text(role.text)
} }
} }
@@ -15,7 +15,6 @@ struct ChatListView: View {
@State private var searchText = "" @State private var searchText = ""
@State private var showAddChat = false @State private var showAddChat = false
@State private var userPickerVisible = false @State private var userPickerVisible = false
@State private var showConnectDesktop = false
@AppStorage(DEFAULT_SHOW_UNREAD_AND_FAVORITES) private var showUnreadAndFavorites = false @AppStorage(DEFAULT_SHOW_UNREAD_AND_FAVORITES) private var showUnreadAndFavorites = false
var body: some View { var body: some View {
@@ -49,14 +48,7 @@ struct ChatListView: View {
} }
} }
} }
UserPicker( UserPicker(showSettings: $showSettings, userPickerVisible: $userPickerVisible)
showSettings: $showSettings,
showConnectDesktop: $showConnectDesktop,
userPickerVisible: $userPickerVisible
)
}
.sheet(isPresented: $showConnectDesktop) {
ConnectDesktopView()
} }
} }
@@ -13,7 +13,6 @@ struct UserPicker: View {
@EnvironmentObject var m: ChatModel @EnvironmentObject var m: ChatModel
@Environment(\.colorScheme) var colorScheme @Environment(\.colorScheme) var colorScheme
@Binding var showSettings: Bool @Binding var showSettings: Bool
@Binding var showConnectDesktop: Bool
@Binding var userPickerVisible: Bool @Binding var userPickerVisible: Bool
@State var scrollViewContentSize: CGSize = .zero @State var scrollViewContentSize: CGSize = .zero
@State var disableScrolling: Bool = true @State var disableScrolling: Bool = true
@@ -63,13 +62,6 @@ struct UserPicker: View {
.simultaneousGesture(DragGesture(minimumDistance: disableScrolling ? 0 : 10000000)) .simultaneousGesture(DragGesture(minimumDistance: disableScrolling ? 0 : 10000000))
.frame(maxHeight: scrollViewContentSize.height) .frame(maxHeight: scrollViewContentSize.height)
menuButton("Use from desktop", icon: "desktopcomputer") {
showConnectDesktop = true
withAnimation {
userPickerVisible.toggle()
}
}
Divider()
menuButton("Settings", icon: "gearshape") { menuButton("Settings", icon: "gearshape") {
showSettings = true showSettings = true
withAnimation { withAnimation {
@@ -93,7 +85,7 @@ struct UserPicker: View {
do { do {
m.users = try listUsers() m.users = try listUsers()
} catch let error { } catch let error {
logger.error("Error loading users \(responseError(error))") logger.error("Error updating users \(responseError(error))")
} }
} }
} }
@@ -152,8 +144,7 @@ struct UserPicker: View {
.overlay(DetermineWidth()) .overlay(DetermineWidth())
Spacer() Spacer()
Image(systemName: icon) Image(systemName: icon)
.symbolRenderingMode(.monochrome) // .frame(width: 24, alignment: .center)
.foregroundColor(.secondary)
} }
.padding(.horizontal) .padding(.horizontal)
.padding(.vertical, 22) .padding(.vertical, 22)
@@ -179,7 +170,6 @@ struct UserPicker_Previews: PreviewProvider {
m.users = [UserInfo.sampleData, UserInfo.sampleData] m.users = [UserInfo.sampleData, UserInfo.sampleData]
return UserPicker( return UserPicker(
showSettings: Binding.constant(false), showSettings: Binding.constant(false),
showConnectDesktop: Binding.constant(false),
userPickerVisible: Binding.constant(true) userPickerVisible: Binding.constant(true)
) )
.environmentObject(m) .environmentObject(m)
@@ -283,37 +283,6 @@ private let versionDescriptions: [VersionDescription] = [
), ),
] ]
), ),
VersionDescription(
version: "v5.4",
post: URL(string: "https://simplex.chat/blog/20231125-simplex-chat-v5-4-link-mobile-desktop-quantum-resistant-better-groups.html"),
features: [
FeatureDescription(
icon: "desktopcomputer",
title: "Link mobile and desktop apps! 🔗",
description: "Via secure quantum resistant protocol."
),
FeatureDescription(
icon: "person.2",
title: "Better groups",
description: "Faster joining and more reliable messages."
),
FeatureDescription(
icon: "theatermasks",
title: "Incognito groups",
description: "Create a group using a random profile."
),
FeatureDescription(
icon: "hand.raised",
title: "Block group members",
description: "To hide unwanted messages."
),
FeatureDescription(
icon: "gift",
title: "A few more things",
description: "- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!"
),
]
),
] ]
private let lastVersion = versionDescriptions.last!.version private let lastVersion = versionDescriptions.last!.version
@@ -1,556 +0,0 @@
//
// ConnectDesktopView.swift
// SimpleX (iOS)
//
// Created by Evgeny on 13/10/2023.
// Copyright © 2023 SimpleX Chat. All rights reserved.
//
import SwiftUI
import SimpleXChat
import CodeScanner
struct ConnectDesktopView: View {
@EnvironmentObject var m: ChatModel
@Environment(\.dismiss) var dismiss: DismissAction
var viaSettings = false
@AppStorage(DEFAULT_DEVICE_NAME_FOR_REMOTE_ACCESS) private var deviceName = UIDevice.current.name
@AppStorage(DEFAULT_CONFIRM_REMOTE_SESSIONS) private var confirmRemoteSessions = false
@AppStorage(DEFAULT_CONNECT_REMOTE_VIA_MULTICAST) private var connectRemoteViaMulticast = true
@AppStorage(DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO) private var connectRemoteViaMulticastAuto = true
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
@State private var sessionAddress: String = ""
@State private var remoteCtrls: [RemoteCtrlInfo] = []
@State private var alert: ConnectDesktopAlert?
@State private var showConnectScreen = true
@State private var showQRCodeScanner = true
@State private var firstAppearance = true
private var useMulticast: Bool {
connectRemoteViaMulticast && !remoteCtrls.isEmpty
}
private enum ConnectDesktopAlert: Identifiable {
case unlinkDesktop(rc: RemoteCtrlInfo)
case disconnectDesktop(action: UserDisconnectAction)
case badInvitationError
case badVersionError(version: String?)
case desktopDisconnectedError
case error(title: LocalizedStringKey, error: LocalizedStringKey = "")
var id: String {
switch self {
case let .unlinkDesktop(rc): "unlinkDesktop \(rc.remoteCtrlId)"
case let .disconnectDesktop(action): "disconnectDecktop \(action)"
case .badInvitationError: "badInvitationError"
case let .badVersionError(v): "badVersionError \(v ?? "")"
case .desktopDisconnectedError: "desktopDisconnectedError"
case let .error(title, _): "error \(title)"
}
}
}
private enum UserDisconnectAction: String {
case back
case dismiss // TODO dismiss settings after confirmation
}
var body: some View {
if viaSettings {
viewBody
.modifier(BackButton(label: "Back") {
if m.activeRemoteCtrl {
alert = .disconnectDesktop(action: .back)
} else {
dismiss()
}
})
} else {
NavigationView {
viewBody
}
}
}
var viewBody: some View {
Group {
let discovery = m.remoteCtrlSession?.discovery
if discovery == true || (discovery == nil && !showConnectScreen) {
searchingDesktopView()
} else if let session = m.remoteCtrlSession {
switch session.sessionState {
case .starting: connectingDesktopView(session, nil)
case .searching: searchingDesktopView()
case let .found(rc, compatible): foundDesktopView(session, rc, compatible)
case let .connecting(rc_): connectingDesktopView(session, rc_)
case let .pendingConfirmation(rc_, sessCode):
if confirmRemoteSessions || rc_ == nil {
verifySessionView(session, rc_, sessCode)
} else {
connectingDesktopView(session, rc_).onAppear {
verifyDesktopSessionCode(sessCode)
}
}
case let .connected(rc, _): activeSessionView(session, rc)
}
// The hack below prevents camera freezing when exiting linked devices view.
// Using showQRCodeScanner inside connectDesktopView or passing it as parameter still results in freezing.
} else if showQRCodeScanner || firstAppearance {
connectDesktopView()
} else {
connectDesktopView(showScanner: false)
}
}
.onAppear {
setDeviceName(deviceName)
updateRemoteCtrls()
showConnectScreen = !useMulticast
if m.remoteCtrlSession != nil {
disconnectDesktop()
} else if useMulticast {
findKnownDesktop()
}
// The hack below prevents camera freezing when exiting linked devices view.
// `firstAppearance` prevents camera flicker when the view first opens.
// moving `showQRCodeScanner = false` to `onDisappear` (to avoid `firstAppearance`) does not prevent freeze.
showQRCodeScanner = false
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
firstAppearance = false
showQRCodeScanner = true
}
}
.onDisappear {
if m.remoteCtrlSession != nil {
showConnectScreen = false
disconnectDesktop()
}
}
.onChange(of: deviceName) {
setDeviceName($0)
}
.onChange(of: m.activeRemoteCtrl) {
UIApplication.shared.isIdleTimerDisabled = $0
}
.alert(item: $alert) { a in
switch a {
case let .unlinkDesktop(rc):
Alert(
title: Text("Unlink desktop?"),
primaryButton: .destructive(Text("Unlink")) {
unlinkDesktop(rc)
},
secondaryButton: .cancel()
)
case let .disconnectDesktop(action):
Alert(
title: Text("Disconnect desktop?"),
primaryButton: .destructive(Text("Disconnect")) {
disconnectDesktop(action)
},
secondaryButton: .cancel()
)
case .badInvitationError:
Alert(title: Text("Bad desktop address"))
case let .badVersionError(v):
Alert(
title: Text("Incompatible version"),
message: Text("Desktop app version \(v ?? "") is not compatible with this app.")
)
case .desktopDisconnectedError:
Alert(title: Text("Connection terminated"))
case let .error(title, error):
Alert(title: Text(title), message: Text(error))
}
}
.interactiveDismissDisabled(m.activeRemoteCtrl)
}
private func connectDesktopView(showScanner: Bool = true) -> some View {
List {
Section("This device name") {
devicesView()
}
if showScanner {
scanDesctopAddressView()
}
if developerTools {
desktopAddressView()
}
}
.navigationTitle("Connect to desktop")
}
private func connectingDesktopView(_ session: RemoteCtrlSession, _ rc: RemoteCtrlInfo?) -> some View {
List {
Section("Connecting to desktop") {
ctrlDeviceNameText(session, rc)
ctrlDeviceVersionText(session)
}
if let sessCode = session.sessionCode {
Section("Session code") {
sessionCodeText(sessCode)
}
}
Section {
disconnectButton()
}
}
.navigationTitle("Connecting to desktop")
}
private func searchingDesktopView() -> some View {
List {
Section("This device name") {
devicesView()
}
Section("Found desktop") {
Text("Waiting for desktop...").italic()
Button {
disconnectDesktop()
} label: {
Label("Scan QR code", systemImage: "qrcode")
}
}
}
.navigationTitle("Connecting to desktop")
}
@ViewBuilder private func foundDesktopView(_ session: RemoteCtrlSession, _ rc: RemoteCtrlInfo, _ compatible: Bool) -> some View {
let v = List {
Section("This device name") {
devicesView()
}
Section("Found desktop") {
ctrlDeviceNameText(session, rc)
ctrlDeviceVersionText(session)
if !compatible {
Text("Not compatible!").foregroundColor(.red)
} else if !connectRemoteViaMulticastAuto {
Button {
confirmKnownDesktop(rc)
} label: {
Label("Connect", systemImage: "checkmark")
}
}
}
if !compatible && !connectRemoteViaMulticastAuto {
Section {
disconnectButton("Cancel")
}
}
}
.navigationTitle("Found desktop")
if compatible && connectRemoteViaMulticastAuto {
v.onAppear { confirmKnownDesktop(rc) }
} else {
v
}
}
private func verifySessionView(_ session: RemoteCtrlSession, _ rc: RemoteCtrlInfo?, _ sessCode: String) -> some View {
List {
Section("Connected to desktop") {
ctrlDeviceNameText(session, rc)
ctrlDeviceVersionText(session)
}
Section("Verify code with desktop") {
sessionCodeText(sessCode)
Button {
verifyDesktopSessionCode(sessCode)
} label: {
Label("Confirm", systemImage: "checkmark")
}
}
Section {
disconnectButton()
}
}
.navigationTitle("Verify connection")
}
private func ctrlDeviceNameText(_ session: RemoteCtrlSession, _ rc: RemoteCtrlInfo?) -> Text {
var t = Text(rc?.deviceViewName ?? session.ctrlAppInfo?.deviceName ?? "")
if (rc == nil) {
t = t + Text(" ") + Text("(new)").italic()
}
return t
}
private func ctrlDeviceVersionText(_ session: RemoteCtrlSession) -> Text {
let v = session.ctrlAppInfo?.appVersionRange.maxVersion
var t = Text("v\(v ?? "")")
if v != session.appVersion {
t = t + Text(" ") + Text("(this device v\(session.appVersion))").italic()
}
return t
}
private func activeSessionView(_ session: RemoteCtrlSession, _ rc: RemoteCtrlInfo) -> some View {
List {
Section("Connected desktop") {
Text(rc.deviceViewName)
ctrlDeviceVersionText(session)
}
if let sessCode = session.sessionCode {
Section("Session code") {
sessionCodeText(sessCode)
}
}
Section {
disconnectButton()
} footer: {
// This is specific to iOS
Text("Keep the app open to use it from desktop")
}
}
.navigationTitle("Connected to desktop")
}
private func sessionCodeText(_ code: String) -> some View {
Text(code.prefix(23))
}
private func devicesView() -> some View {
Group {
TextField("Enter this device name…", text: $deviceName)
if !remoteCtrls.isEmpty {
NavigationLink {
linkedDesktopsView()
} label: {
Text("Linked desktops")
}
}
}
}
private func scanDesctopAddressView() -> some View {
Section("Scan QR code from desktop") {
CodeScannerView(codeTypes: [.qr], completion: processDesktopQRCode)
.aspectRatio(1, contentMode: .fit)
.cornerRadius(12)
.listRowBackground(Color.clear)
.listRowSeparator(.hidden)
.listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
.padding(.horizontal)
}
}
private func desktopAddressView() -> some View {
Section("Desktop address") {
if sessionAddress.isEmpty {
Button {
sessionAddress = UIPasteboard.general.string ?? ""
} label: {
Label("Paste desktop address", systemImage: "doc.plaintext")
}
.disabled(!UIPasteboard.general.hasStrings)
} else {
HStack {
Text(sessionAddress).lineLimit(1)
Spacer()
Image(systemName: "multiply.circle.fill")
.foregroundColor(.secondary)
.onTapGesture { sessionAddress = "" }
}
}
Button {
connectDesktopAddress(sessionAddress)
} label: {
Label("Connect to desktop", systemImage: "rectangle.connected.to.line.below")
}
.disabled(sessionAddress.isEmpty)
}
}
private func linkedDesktopsView() -> some View {
List {
Section("Desktop devices") {
ForEach(remoteCtrls, id: \.remoteCtrlId) { rc in
remoteCtrlView(rc)
}
.onDelete { indexSet in
if let i = indexSet.first, i < remoteCtrls.count {
alert = .unlinkDesktop(rc: remoteCtrls[i])
}
}
}
Section("Linked desktop options") {
Toggle("Verify connections", isOn: $confirmRemoteSessions)
Toggle("Discover via local network", isOn: $connectRemoteViaMulticast)
if connectRemoteViaMulticast {
Toggle("Connect automatically", isOn: $connectRemoteViaMulticastAuto)
}
}
}
.navigationTitle("Linked desktops")
}
private func remoteCtrlView(_ rc: RemoteCtrlInfo) -> some View {
Text(rc.deviceViewName)
}
private func setDeviceName(_ name: String) {
do {
try setLocalDeviceName(deviceName)
} catch let e {
errorAlert(e)
}
}
private func updateRemoteCtrls() {
do {
remoteCtrls = try listRemoteCtrls()
} catch let e {
errorAlert(e)
}
}
private func processDesktopQRCode(_ resp: Result<ScanResult, ScanError>) {
switch resp {
case let .success(r): connectDesktopAddress(r.string)
case let .failure(e): errorAlert(e)
}
}
private func findKnownDesktop() {
Task {
do {
try await findKnownRemoteCtrl()
await MainActor.run {
m.remoteCtrlSession = RemoteCtrlSession(
ctrlAppInfo: nil,
appVersion: "",
sessionState: .searching
)
showConnectScreen = true
}
} catch let e {
await MainActor.run {
errorAlert(e)
}
}
}
}
private func confirmKnownDesktop(_ rc: RemoteCtrlInfo) {
connectDesktop_ {
try await confirmRemoteCtrl(rc.remoteCtrlId)
}
}
private func connectDesktopAddress(_ addr: String) {
connectDesktop_ {
try await connectRemoteCtrl(desktopAddress: addr)
}
}
private func connectDesktop_(_ connect: @escaping () async throws -> (RemoteCtrlInfo?, CtrlAppInfo, String)) {
Task {
do {
let (rc_, ctrlAppInfo, v) = try await connect()
await MainActor.run {
sessionAddress = ""
m.remoteCtrlSession = RemoteCtrlSession(
ctrlAppInfo: ctrlAppInfo,
appVersion: v,
sessionState: .connecting(remoteCtrl_: rc_)
)
}
} catch let e {
await MainActor.run {
switch e as? ChatResponse {
case .chatCmdError(_, .errorRemoteCtrl(.badInvitation)): alert = .badInvitationError
case .chatCmdError(_, .error(.commandError)): alert = .badInvitationError
case let .chatCmdError(_, .errorRemoteCtrl(.badVersion(v))): alert = .badVersionError(version: v)
case .chatCmdError(_, .errorAgent(.RCP(.version))): alert = .badVersionError(version: nil)
case .chatCmdError(_, .errorAgent(.RCP(.ctrlAuth))): alert = .desktopDisconnectedError
default: errorAlert(e)
}
}
}
}
}
private func verifyDesktopSessionCode(_ sessCode: String) {
Task {
do {
let rc = try await verifyRemoteCtrlSession(sessCode)
await MainActor.run {
m.remoteCtrlSession = m.remoteCtrlSession?.updateState(.connected(remoteCtrl: rc, sessionCode: sessCode))
}
await MainActor.run {
updateRemoteCtrls()
}
} catch let error {
await MainActor.run {
errorAlert(error)
}
}
}
}
private func disconnectButton(_ label: LocalizedStringKey = "Disconnect") -> some View {
Button {
disconnectDesktop(.dismiss)
} label: {
Label(label, systemImage: "multiply")
}
}
private func disconnectDesktop(_ action: UserDisconnectAction? = nil) {
Task {
do {
try await stopRemoteCtrl()
await MainActor.run {
if case .connected = m.remoteCtrlSession?.sessionState {
switchToLocalSession()
} else {
m.remoteCtrlSession = nil
}
switch action {
case .back: dismiss()
case .dismiss: dismiss()
case .none: ()
}
}
} catch let e {
await MainActor.run {
errorAlert(e)
}
}
}
}
private func unlinkDesktop(_ rc: RemoteCtrlInfo) {
Task {
do {
try await deleteRemoteCtrl(rc.remoteCtrlId)
await MainActor.run {
remoteCtrls.removeAll(where: { $0.remoteCtrlId == rc.remoteCtrlId })
}
} catch let e {
await MainActor.run {
errorAlert(e)
}
}
}
}
private func errorAlert(_ error: Error) {
let a = getErrorAlert(error, "Error")
alert = .error(title: a.title, error: a.message)
}
}
#Preview {
ConnectDesktopView()
}
@@ -53,10 +53,6 @@ let DEFAULT_WHATS_NEW_VERSION = "defaultWhatsNewVersion"
let DEFAULT_ONBOARDING_STAGE = "onboardingStage" let DEFAULT_ONBOARDING_STAGE = "onboardingStage"
let DEFAULT_CUSTOM_DISAPPEARING_MESSAGE_TIME = "customDisappearingMessageTime" let DEFAULT_CUSTOM_DISAPPEARING_MESSAGE_TIME = "customDisappearingMessageTime"
let DEFAULT_SHOW_UNREAD_AND_FAVORITES = "showUnreadAndFavorites" let DEFAULT_SHOW_UNREAD_AND_FAVORITES = "showUnreadAndFavorites"
let DEFAULT_DEVICE_NAME_FOR_REMOTE_ACCESS = "deviceNameForRemoteAccess"
let DEFAULT_CONFIRM_REMOTE_SESSIONS = "confirmRemoteSessions"
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST = "connectRemoteViaMulticast"
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO = "connectRemoteViaMulticastAuto"
let appDefaults: [String: Any] = [ let appDefaults: [String: Any] = [
DEFAULT_SHOW_LA_NOTICE: false, DEFAULT_SHOW_LA_NOTICE: false,
@@ -89,10 +85,7 @@ let appDefaults: [String: Any] = [
DEFAULT_SHOW_MUTE_PROFILE_ALERT: true, DEFAULT_SHOW_MUTE_PROFILE_ALERT: true,
DEFAULT_ONBOARDING_STAGE: OnboardingStage.onboardingComplete.rawValue, DEFAULT_ONBOARDING_STAGE: OnboardingStage.onboardingComplete.rawValue,
DEFAULT_CUSTOM_DISAPPEARING_MESSAGE_TIME: 300, DEFAULT_CUSTOM_DISAPPEARING_MESSAGE_TIME: 300,
DEFAULT_SHOW_UNREAD_AND_FAVORITES: false, DEFAULT_SHOW_UNREAD_AND_FAVORITES: false
DEFAULT_CONFIRM_REMOTE_SESSIONS: false,
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST: true,
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO: true,
] ]
enum SimpleXLinkMode: String, Identifiable { enum SimpleXLinkMode: String, Identifiable {
@@ -185,12 +178,6 @@ struct SettingsView: View {
} label: { } label: {
settingsRow("switch.2") { Text("Chat preferences") } settingsRow("switch.2") { Text("Chat preferences") }
} }
NavigationLink {
ConnectDesktopView(viaSettings: true)
} label: {
settingsRow("desktopcomputer") { Text("Use from desktop") }
}
} }
.disabled(chatModel.chatRunning != true) .disabled(chatModel.chatRunning != true)
@@ -375,9 +362,7 @@ struct SettingsView: View {
func settingsRow<Content : View>(_ icon: String, color: Color = .secondary, content: @escaping () -> Content) -> some View { func settingsRow<Content : View>(_ icon: String, color: Color = .secondary, content: @escaping () -> Content) -> some View {
ZStack(alignment: .leading) { ZStack(alignment: .leading) {
Image(systemName: icon).frame(maxWidth: 24, maxHeight: 24, alignment: .center) Image(systemName: icon).frame(maxWidth: 24, maxHeight: 24, alignment: .center).foregroundColor(color)
.symbolRenderingMode(.monochrome)
.foregroundColor(color)
content().padding(.leading, indent) content().padding(.leading, indent)
} }
} }
-4
View File
@@ -18,9 +18,5 @@
<array> <array>
<string>$(AppIdentifierPrefix)chat.simplex.app</string> <string>$(AppIdentifierPrefix)chat.simplex.app</string>
</array> </array>
<key>com.apple.developer.networking.multicast</key>
<true/>
<key>com.apple.developer.device-information.user-assigned-device-name</key>
<true/>
</dict> </dict>
</plist> </plist>
@@ -290,14 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -386,12 +378,6 @@
- и още!</target> - и още!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -872,10 +858,6 @@
<target>Назад</target> <target>Назад</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Лошо ID на съобщението</target> <target>Лошо ID на съобщението</target>
@@ -886,10 +868,6 @@
<target>Лош хеш на съобщението</target> <target>Лош хеш на съобщението</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>По-добри съобщения</target> <target>По-добри съобщения</target>
@@ -899,10 +877,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1172,19 +1146,11 @@
<target>Свързване</target> <target>Свързване</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Свързване инкогнито</target> <target>Свързване инкогнито</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1222,14 +1188,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>Свързване със сървъра…</target> <target>Свързване със сървъра…</target>
@@ -1240,10 +1198,6 @@ This is your own one-time link!</source>
<target>Свързване със сървър…(грешка: %@)</target> <target>Свързване със сървър…(грешка: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Връзка</target> <target>Връзка</target>
@@ -1264,10 +1218,6 @@ This is your own one-time link!</source>
<target>Заявката за връзка е изпратена!</target> <target>Заявката за връзка е изпратена!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Времето на изчакване за установяване на връзката изтече</target> <target>Времето на изчакване за установяване на връзката изтече</target>
@@ -1347,10 +1297,6 @@ This is your own one-time link!</source>
<target>Създай SimpleX адрес</target> <target>Създай SimpleX адрес</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Създайте адрес, за да позволите на хората да се свързват с вас.</target> <target>Създайте адрес, за да позволите на хората да се свързват с вас.</target>
@@ -1755,18 +1701,6 @@ This cannot be undone!</source>
<target>Описание</target> <target>Описание</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Разработване</target> <target>Разработване</target>
@@ -1857,19 +1791,11 @@ This cannot be undone!</source>
<target>Прекъсни връзката</target> <target>Прекъсни връзката</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Открийте и се присъединете към групи</target> <target>Открийте и се присъединете към групи</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>НЕ използвайте SimpleX за спешни повиквания.</target> <target>НЕ използвайте SimpleX за спешни повиквания.</target>
@@ -2040,14 +1966,6 @@ This cannot be undone!</source>
<target>Криптирано съобщение: неочаквана грешка</target> <target>Криптирано съобщение: неочаквана грешка</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Въведете kодa за достъп</target> <target>Въведете kодa за достъп</target>
@@ -2077,10 +1995,6 @@ This cannot be undone!</source>
<target>Въведи сървъра ръчно</target> <target>Въведи сървъра ръчно</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Въведи съобщение при посрещане…</target> <target>Въведи съобщение при посрещане…</target>
@@ -2404,10 +2318,6 @@ This cannot be undone!</source>
<target>Бързо и без чакане, докато подателят е онлайн!</target> <target>Бързо и без чакане, докато подателят е онлайн!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Любим</target> <target>Любим</target>
@@ -2503,10 +2413,6 @@ This cannot be undone!</source>
<target>За конзолата</target> <target>За конзолата</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Френски интерфейс</target> <target>Френски интерфейс</target>
@@ -2829,10 +2735,6 @@ This cannot be undone!</source>
<target>Инкогнито</target> <target>Инкогнито</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Режим инкогнито</target> <target>Режим инкогнито</target>
@@ -2863,10 +2765,6 @@ This cannot be undone!</source>
<target>Несъвместима версия на базата данни</target> <target>Несъвместима версия на базата данни</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Неправилен kод за достъп</target> <target>Неправилен kод за достъп</target>
@@ -3032,10 +2930,6 @@ This is your link for group %@!</source>
<target>Присъединяване към групата</target> <target>Присъединяване към групата</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Запазете връзките си</target> <target>Запазете връзките си</target>
@@ -3096,18 +2990,6 @@ This is your link for group %@!</source>
<target>Ограничения</target> <target>Ограничения</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Съобщение на живо!</target> <target>Съобщение на живо!</target>
@@ -3457,10 +3339,6 @@ This is your link for group %@!</source>
<target>Няма получени или изпратени файлове</target> <target>Няма получени или изпратени файлове</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Известия</target> <target>Известия</target>
@@ -3679,10 +3557,6 @@ This is your link for group %@!</source>
<target>Постави</target> <target>Постави</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Постави изображение</target> <target>Постави изображение</target>
@@ -4274,10 +4148,6 @@ This is your link for group %@!</source>
<target>Сканирай QR код</target> <target>Сканирай QR код</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Сканирай код</target> <target>Сканирай код</target>
@@ -4498,10 +4368,6 @@ This is your link for group %@!</source>
<target>Сървъри</target> <target>Сървъри</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Задай 1 ден</target> <target>Задай 1 ден</target>
@@ -4998,10 +4864,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Това действие не може да бъде отменено - вашият профил, контакти, съобщения и файлове ще бъдат безвъзвратно загубени.</target> <target>Това действие не може да бъде отменено - вашият профил, контакти, съобщения и файлове ще бъдат безвъзвратно загубени.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Тази група има над %lld членове, потвърждения за доставка не се изпращат.</target> <target>Тази група има над %lld членове, потвърждения за доставка не се изпращат.</target>
@@ -5035,10 +4897,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>За да се свърже, вашият контакт може да сканира QR код или да използва линка в приложението.</target> <target>За да се свърже, вашият контакт може да сканира QR код или да използва линка в приложението.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>За да направите нова връзка</target> <target>За да направите нова връзка</target>
@@ -5195,14 +5053,6 @@ To connect, please ask your contact to create another connection link and check
За да се свържете, моля, помолете вашия контакт да създаде друг линк за връзка и проверете дали имате стабилна мрежова връзка.</target> За да се свържете, моля, помолете вашия контакт да създаде друг линк за връзка и проверете дали имате стабилна мрежова връзка.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Отключи</target> <target>Отключи</target>
@@ -5293,10 +5143,6 @@ To connect, please ask your contact to create another connection link and check
<target>Използвай за нови връзки</target> <target>Използвай за нови връзки</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Използвай интерфейса за повикване на iOS</target> <target>Използвай интерфейса за повикване на iOS</target>
@@ -5327,23 +5173,11 @@ To connect, please ask your contact to create another connection link and check
<target>Използват се сървърите на SimpleX Chat.</target> <target>Използват се сървърите на SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Потвръди сигурността на връзката</target> <target>Потвръди сигурността на връзката</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Потвръди кода за сигурност</target> <target>Потвръди кода за сигурност</target>
@@ -5354,10 +5188,6 @@ To connect, please ask your contact to create another connection link and check
<target>Чрез браузър</target> <target>Чрез браузър</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Видео разговор</target> <target>Видео разговор</target>
@@ -5408,10 +5238,6 @@ To connect, please ask your contact to create another connection link and check
<target>Гласово съобщение…</target> <target>Гласово съобщение…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Изчаква се получаването на файла</target> <target>Изчаква се получаването на файла</target>
@@ -5942,10 +5768,6 @@ SimpleX сървърите не могат да видят вашия профи
<target>аудио разговор (не е e2e криптиран)</target> <target>аудио разговор (не е e2e криптиран)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>лошо ID на съобщението</target> <target>лошо ID на съобщението</target>
@@ -6526,10 +6348,6 @@ SimpleX сървърите не могат да видят вашия профи
<target>актуализиран профил на групата</target> <target>актуализиран профил на групата</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6667,10 +6485,6 @@ SimpleX сървърите не могат да видят вашия профи
<target>SimpleX използва Face ID за локалнa идентификация</target> <target>SimpleX използва Face ID за локалнa идентификация</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX се нуждае от достъп до микрофона за аудио и видео разговори и за запис на гласови съобщения.</target> <target>SimpleX се нуждае от достъп до микрофона за аудио и видео разговори и за запис на гласови съобщения.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -290,14 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -386,12 +378,6 @@
- a více!</target> - a více!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -872,10 +858,6 @@
<target>Zpět</target> <target>Zpět</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Špatné ID zprávy</target> <target>Špatné ID zprávy</target>
@@ -886,10 +868,6 @@
<target>Špatný hash zprávy</target> <target>Špatný hash zprávy</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Lepší zprávy</target> <target>Lepší zprávy</target>
@@ -899,10 +877,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1172,19 +1146,11 @@
<target>Připojit</target> <target>Připojit</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Spojit se inkognito</target> <target>Spojit se inkognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1222,14 +1188,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>Připojování k serveru…</target> <target>Připojování k serveru…</target>
@@ -1240,10 +1198,6 @@ This is your own one-time link!</source>
<target>Připojování k serveru... (chyba: %@)</target> <target>Připojování k serveru... (chyba: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Připojení</target> <target>Připojení</target>
@@ -1264,10 +1218,6 @@ This is your own one-time link!</source>
<target>Požadavek na připojení byl odeslán!</target> <target>Požadavek na připojení byl odeslán!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Časový limit připojení</target> <target>Časový limit připojení</target>
@@ -1347,10 +1297,6 @@ This is your own one-time link!</source>
<target>Vytvořit SimpleX adresu</target> <target>Vytvořit SimpleX adresu</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Vytvořit adresu, aby se s vámi lidé mohli spojit.</target> <target>Vytvořit adresu, aby se s vámi lidé mohli spojit.</target>
@@ -1755,18 +1701,6 @@ This cannot be undone!</source>
<target>Popis</target> <target>Popis</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Vyvinout</target> <target>Vyvinout</target>
@@ -1857,19 +1791,11 @@ This cannot be undone!</source>
<target>Odpojit</target> <target>Odpojit</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Objevte a připojte skupiny</target> <target>Objevte a připojte skupiny</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>NEpoužívejte SimpleX pro tísňová volání.</target> <target>NEpoužívejte SimpleX pro tísňová volání.</target>
@@ -2040,14 +1966,6 @@ This cannot be undone!</source>
<target>Šifrovaná zpráva: neočekávaná chyba</target> <target>Šifrovaná zpráva: neočekávaná chyba</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Zadat heslo</target> <target>Zadat heslo</target>
@@ -2077,10 +1995,6 @@ This cannot be undone!</source>
<target>Zadejte server ručně</target> <target>Zadejte server ručně</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Zadat uvítací zprávu…</target> <target>Zadat uvítací zprávu…</target>
@@ -2404,10 +2318,6 @@ This cannot be undone!</source>
<target>Rychle a bez čekání, než bude odesílatel online!</target> <target>Rychle a bez čekání, než bude odesílatel online!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Oblíbené</target> <target>Oblíbené</target>
@@ -2503,10 +2413,6 @@ This cannot be undone!</source>
<target>Pro konzoli</target> <target>Pro konzoli</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Francouzské rozhraní</target> <target>Francouzské rozhraní</target>
@@ -2829,10 +2735,6 @@ This cannot be undone!</source>
<target>Inkognito</target> <target>Inkognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Režim inkognito</target> <target>Režim inkognito</target>
@@ -2863,10 +2765,6 @@ This cannot be undone!</source>
<target>Nekompatibilní verze databáze</target> <target>Nekompatibilní verze databáze</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Nesprávné heslo</target> <target>Nesprávné heslo</target>
@@ -3032,10 +2930,6 @@ This is your link for group %@!</source>
<target>Připojování ke skupině</target> <target>Připojování ke skupině</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Zachovat vaše připojení</target> <target>Zachovat vaše připojení</target>
@@ -3096,18 +2990,6 @@ This is your link for group %@!</source>
<target>Omezení</target> <target>Omezení</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Živé zprávy!</target> <target>Živé zprávy!</target>
@@ -3457,10 +3339,6 @@ This is your link for group %@!</source>
<target>Žádné přijaté ani odeslané soubory</target> <target>Žádné přijaté ani odeslané soubory</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Oznámení</target> <target>Oznámení</target>
@@ -3679,10 +3557,6 @@ This is your link for group %@!</source>
<target>Vložit</target> <target>Vložit</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Vložit obrázek</target> <target>Vložit obrázek</target>
@@ -4274,10 +4148,6 @@ This is your link for group %@!</source>
<target>Skenovat QR kód</target> <target>Skenovat QR kód</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Skenovat kód</target> <target>Skenovat kód</target>
@@ -4498,10 +4368,6 @@ This is your link for group %@!</source>
<target>Servery</target> <target>Servery</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Nastavit 1 den</target> <target>Nastavit 1 den</target>
@@ -4998,10 +4864,6 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
<target>Tuto akci nelze vzít zpět - váš profil, kontakty, zprávy a soubory budou nenávratně ztraceny.</target> <target>Tuto akci nelze vzít zpět - váš profil, kontakty, zprávy a soubory budou nenávratně ztraceny.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Tato skupina má více než %lld členů, potvrzení o doručení nejsou odesílány.</target> <target>Tato skupina má více než %lld členů, potvrzení o doručení nejsou odesílány.</target>
@@ -5035,10 +4897,6 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
<target>Pro připojení může váš kontakt naskenovat QR kód, nebo použít odkaz v aplikaci.</target> <target>Pro připojení může váš kontakt naskenovat QR kód, nebo použít odkaz v aplikaci.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Vytvoření nového připojení</target> <target>Vytvoření nového připojení</target>
@@ -5195,14 +5053,6 @@ To connect, please ask your contact to create another connection link and check
Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu na připojení a zkontrolujte, zda máte stabilní připojení k síti.</target> Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu na připojení a zkontrolujte, zda máte stabilní připojení k síti.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Odemknout</target> <target>Odemknout</target>
@@ -5293,10 +5143,6 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<target>Použít pro nová připojení</target> <target>Použít pro nová připojení</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Použít rozhraní volání iOS</target> <target>Použít rozhraní volání iOS</target>
@@ -5327,23 +5173,11 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<target>Používat servery SimpleX Chat.</target> <target>Používat servery SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Ověření zabezpečení připojení</target> <target>Ověření zabezpečení připojení</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Ověření bezpečnostního kódu</target> <target>Ověření bezpečnostního kódu</target>
@@ -5354,10 +5188,6 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<target>Prostřednictvím prohlížeče</target> <target>Prostřednictvím prohlížeče</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Videohovor</target> <target>Videohovor</target>
@@ -5408,10 +5238,6 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<target>Hlasová zpráva…</target> <target>Hlasová zpráva…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Čekání na soubor</target> <target>Čekání na soubor</target>
@@ -5942,10 +5768,6 @@ Servery SimpleX nevidí váš profil.</target>
<target>zvukový hovor (nešifrovaný e2e)</target> <target>zvukový hovor (nešifrovaný e2e)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>špatné ID zprávy</target> <target>špatné ID zprávy</target>
@@ -6525,10 +6347,6 @@ Servery SimpleX nevidí váš profil.</target>
<target>aktualizoval profil skupiny</target> <target>aktualizoval profil skupiny</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6666,10 +6484,6 @@ Servery SimpleX nevidí váš profil.</target>
<target>SimpleX používá Face ID pro místní ověřování</target> <target>SimpleX používá Face ID pro místní ověřování</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX potřebuje přístup k mikrofonu pro audio a video hovory a pro nahrávání hlasových zpráv.</target> <target>SimpleX potřebuje přístup k mikrofonu pro audio a video hovory a pro nahrávání hlasových zpráv.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -89,12 +89,11 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@" xml:space="preserve"> <trans-unit id="%@ and %@" xml:space="preserve">
<source>%@ and %@</source> <source>%@ and %@</source>
<target>%@ und %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@ connected" xml:space="preserve"> <trans-unit id="%@ and %@ connected" xml:space="preserve">
<source>%@ and %@ connected</source> <source>%@ and %@ connected</source>
<target>%@ und %@ wurden mit Ihnen verbunden</target> <target>%@ und %@ wurden verbunden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ at %@:" xml:space="preserve"> <trans-unit id="%@ at %@:" xml:space="preserve">
@@ -104,7 +103,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ connected" xml:space="preserve"> <trans-unit id="%@ connected" xml:space="preserve">
<source>%@ connected</source> <source>%@ connected</source>
<target>%@ wurde mit Ihnen verbunden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -134,12 +132,11 @@
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld members" xml:space="preserve"> <trans-unit id="%@, %@ and %lld members" xml:space="preserve">
<source>%@, %@ and %lld members</source> <source>%@, %@ and %lld members</source>
<target>%@, %@ und %lld Mitglieder</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve"> <trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
<source>%@, %@ and %lld other members connected</source> <source>%@, %@ and %lld other members connected</source>
<target>%@, %@ und %lld weitere Mitglieder wurden mit Ihnen verbunden</target> <target>%@, %@ und %lld weitere Mitglieder wurden verbunden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@:" xml:space="preserve"> <trans-unit id="%@:" xml:space="preserve">
@@ -204,7 +201,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld group events" xml:space="preserve"> <trans-unit id="%lld group events" xml:space="preserve">
<source>%lld group events</source> <source>%lld group events</source>
<target>%lld Gruppenereignisse</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld members" xml:space="preserve"> <trans-unit id="%lld members" xml:space="preserve">
@@ -214,17 +210,14 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked" xml:space="preserve"> <trans-unit id="%lld messages blocked" xml:space="preserve">
<source>%lld messages blocked</source> <source>%lld messages blocked</source>
<target>%lld Nachrichten blockiert</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages marked deleted" xml:space="preserve"> <trans-unit id="%lld messages marked deleted" xml:space="preserve">
<source>%lld messages marked deleted</source> <source>%lld messages marked deleted</source>
<target>%lld Nachrichten als gelöscht markiert</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages moderated by %@" xml:space="preserve"> <trans-unit id="%lld messages moderated by %@" xml:space="preserve">
<source>%lld messages moderated by %@</source> <source>%lld messages moderated by %@</source>
<target>%lld Nachrichten von %@ moderiert</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld minutes" xml:space="preserve"> <trans-unit id="%lld minutes" xml:space="preserve">
@@ -297,16 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(Neu)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(Dieses Gerät hat v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -395,15 +378,6 @@
- und mehr!</target> - und mehr!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- Optionale Benachrichtigung von gelöschten Kontakten.
- Profilnamen mit Leerzeichen.
- Und mehr!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -420,7 +394,6 @@
</trans-unit> </trans-unit>
<trans-unit id="0 sec" xml:space="preserve"> <trans-unit id="0 sec" xml:space="preserve">
<source>0 sec</source> <source>0 sec</source>
<target>0 sek</target>
<note>time to disappear</note> <note>time to disappear</note>
</trans-unit> </trans-unit>
<trans-unit id="0s" xml:space="preserve"> <trans-unit id="0s" xml:space="preserve">
@@ -650,7 +623,6 @@
</trans-unit> </trans-unit>
<trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve"> <trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve">
<source>All new messages from %@ will be hidden!</source> <source>All new messages from %@ will be hidden!</source>
<target>Alle neuen Nachrichten von %@ werden verborgen!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve"> <trans-unit id="All your contacts will remain connected." xml:space="preserve">
@@ -760,12 +732,10 @@
</trans-unit> </trans-unit>
<trans-unit id="Already connecting!" xml:space="preserve"> <trans-unit id="Already connecting!" xml:space="preserve">
<source>Already connecting!</source> <source>Already connecting!</source>
<target>Bereits verbunden!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Already joining the group!" xml:space="preserve"> <trans-unit id="Already joining the group!" xml:space="preserve">
<source>Already joining the group!</source> <source>Already joining the group!</source>
<target>Sie sind bereits Mitglied der Gruppe!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Always use relay" xml:space="preserve"> <trans-unit id="Always use relay" xml:space="preserve">
@@ -888,11 +858,6 @@
<target>Zurück</target> <target>Zurück</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Falsche Desktop-Adresse</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Falsche Nachrichten-ID</target> <target>Falsche Nachrichten-ID</target>
@@ -903,11 +868,6 @@
<target>Ungültiger Nachrichten-Hash</target> <target>Ungültiger Nachrichten-Hash</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Bessere Gruppen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Verbesserungen bei Nachrichten</target> <target>Verbesserungen bei Nachrichten</target>
@@ -915,22 +875,14 @@
</trans-unit> </trans-unit>
<trans-unit id="Block" xml:space="preserve"> <trans-unit id="Block" xml:space="preserve">
<source>Block</source> <source>Block</source>
<target>Blockieren</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Gruppenmitglieder blockieren</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<target>Mitglied blockieren</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member?" xml:space="preserve"> <trans-unit id="Block member?" xml:space="preserve">
<source>Block member?</source> <source>Block member?</source>
<target>Mitglied blockieren?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve"> <trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1194,43 +1146,27 @@
<target>Verbinden</target> <target>Verbinden</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Automatisch verbinden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Inkognito verbinden</target> <target>Inkognito verbinden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Mit dem Desktop verbinden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<target>Mit Ihnen selbst verbinden?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own SimpleX address!</source> This is your own SimpleX address!</source>
<target>Mit Ihnen selbst verbinden?
Das ist Ihre eigene SimpleX-Adresse!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own one-time link!</source> This is your own one-time link!</source>
<target>Mit Ihnen selbst verbinden?
Das ist Ihr eigener Einmal-Link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via contact address" xml:space="preserve"> <trans-unit id="Connect via contact address" xml:space="preserve">
<source>Connect via contact address</source> <source>Connect via contact address</source>
<target>Über die Kontakt-Adresse verbinden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via link" xml:space="preserve"> <trans-unit id="Connect via link" xml:space="preserve">
@@ -1250,17 +1186,6 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Connect with %@" xml:space="preserve"> <trans-unit id="Connect with %@" xml:space="preserve">
<source>Connect with %@</source> <source>Connect with %@</source>
<target>Mit %@ verbinden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Verbundener Desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Mit dem Desktop verbunden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
@@ -1273,11 +1198,6 @@ Das ist Ihr eigener Einmal-Link!</target>
<target>Mit dem Server verbinden… (Fehler: %@)</target> <target>Mit dem Server verbinden… (Fehler: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Mit dem Desktop verbinden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Verbindung</target> <target>Verbindung</target>
@@ -1298,11 +1218,6 @@ Das ist Ihr eigener Einmal-Link!</target>
<target>Verbindungsanfrage wurde gesendet!</target> <target>Verbindungsanfrage wurde gesendet!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Verbindung beendet</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Verbindungszeitüberschreitung</target> <target>Verbindungszeitüberschreitung</target>
@@ -1370,7 +1285,6 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Correct name to %@?" xml:space="preserve"> <trans-unit id="Correct name to %@?" xml:space="preserve">
<source>Correct name to %@?</source> <source>Correct name to %@?</source>
<target>Richtiger Name für %@?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create" xml:space="preserve"> <trans-unit id="Create" xml:space="preserve">
@@ -1383,11 +1297,6 @@ Das ist Ihr eigener Einmal-Link!</target>
<target>SimpleX-Adresse erstellen</target> <target>SimpleX-Adresse erstellen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Erstellen Sie eine Gruppe mit einem zufälligen Profil.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Erstellen Sie eine Adresse, damit sich Personen mit Ihnen verbinden können.</target> <target>Erstellen Sie eine Adresse, damit sich Personen mit Ihnen verbinden können.</target>
@@ -1400,7 +1309,6 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create group" xml:space="preserve"> <trans-unit id="Create group" xml:space="preserve">
<source>Create group</source> <source>Create group</source>
<target>Gruppe erstellen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create group link" xml:space="preserve"> <trans-unit id="Create group link" xml:space="preserve">
@@ -1425,7 +1333,6 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create profile" xml:space="preserve"> <trans-unit id="Create profile" xml:space="preserve">
<source>Create profile</source> <source>Create profile</source>
<target>Profil erstellen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create queue" xml:space="preserve"> <trans-unit id="Create queue" xml:space="preserve">
@@ -1588,7 +1495,6 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete %lld messages?" xml:space="preserve"> <trans-unit id="Delete %lld messages?" xml:space="preserve">
<source>Delete %lld messages?</source> <source>Delete %lld messages?</source>
<target>%lld Nachrichten löschen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete Contact" xml:space="preserve"> <trans-unit id="Delete Contact" xml:space="preserve">
@@ -1618,7 +1524,6 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete and notify contact" xml:space="preserve"> <trans-unit id="Delete and notify contact" xml:space="preserve">
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<target>Kontakt löschen und benachrichtigen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete archive" xml:space="preserve"> <trans-unit id="Delete archive" xml:space="preserve">
@@ -1654,8 +1559,6 @@ Das ist Ihr eigener Einmal-Link!</target>
<trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve"> <trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve">
<source>Delete contact? <source>Delete contact?
This cannot be undone!</source> This cannot be undone!</source>
<target>Kontakt löschen?
Das kann nicht rückgängig gemacht werden!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete database" xml:space="preserve"> <trans-unit id="Delete database" xml:space="preserve">
@@ -1798,21 +1701,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Beschreibung</target> <target>Beschreibung</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Desktop-Adresse</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>Desktop App-Version %@ ist mit dieser App nicht kompatibel.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Desktop-Geräte</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Entwicklung</target> <target>Entwicklung</target>
@@ -1903,21 +1791,11 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Trennen</target> <target>Trennen</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Desktop-Verbindung trennen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Gruppen entdecken und ihnen beitreten</target> <target>Gruppen entdecken und ihnen beitreten</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Lokales Netzwerk durchsuchen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>Nutzen Sie SimpleX nicht für Notrufe.</target> <target>Nutzen Sie SimpleX nicht für Notrufe.</target>
@@ -2088,16 +1966,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Verschlüsselte Nachricht: Unerwarteter Fehler</target> <target>Verschlüsselte Nachricht: Unerwarteter Fehler</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Fehler bei der Neuverhandlung der Verschlüsselung</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>Neuverhandlung der Verschlüsselung fehlgeschlagen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Zugangscode eingeben</target> <target>Zugangscode eingeben</target>
@@ -2110,7 +1978,6 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter group name…" xml:space="preserve"> <trans-unit id="Enter group name…" xml:space="preserve">
<source>Enter group name…</source> <source>Enter group name…</source>
<target>Geben Sie den Gruppennamen ein…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase…" xml:space="preserve"> <trans-unit id="Enter passphrase…" xml:space="preserve">
@@ -2128,11 +1995,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Geben Sie den Server manuell ein</target> <target>Geben Sie den Server manuell ein</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Geben Sie diesen Gerätenamen ein…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Geben Sie eine Begrüßungsmeldung ein …</target> <target>Geben Sie eine Begrüßungsmeldung ein …</target>
@@ -2145,7 +2007,6 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter your name…" xml:space="preserve"> <trans-unit id="Enter your name…" xml:space="preserve">
<source>Enter your name…</source> <source>Enter your name…</source>
<target>Geben Sie Ihren Namen ein…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error" xml:space="preserve"> <trans-unit id="Error" xml:space="preserve">
@@ -2425,7 +2286,6 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Expand" xml:space="preserve"> <trans-unit id="Expand" xml:space="preserve">
<source>Expand</source> <source>Expand</source>
<target>Erweitern</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Export database" xml:space="preserve"> <trans-unit id="Export database" xml:space="preserve">
@@ -2458,11 +2318,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Schnell und ohne warten auf den Absender, bis er online ist!</target> <target>Schnell und ohne warten auf den Absender, bis er online ist!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Schnellerer Gruppenbeitritt und zuverlässigere Nachrichtenzustellung.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Favorit</target> <target>Favorit</target>
@@ -2558,11 +2413,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Für Konsole</target> <target>Für Konsole</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Gefundener Desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Französische Bedienoberfläche</target> <target>Französische Bedienoberfläche</target>
@@ -2585,7 +2435,6 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve"> <trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source> <source>Fully decentralized visible only to members.</source>
<target>Vollständig dezentralisiert nur für Mitglieder sichtbar.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Fully re-implemented - work in background!" xml:space="preserve"> <trans-unit id="Fully re-implemented - work in background!" xml:space="preserve">
@@ -2610,12 +2459,10 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists" xml:space="preserve"> <trans-unit id="Group already exists" xml:space="preserve">
<source>Group already exists</source> <source>Group already exists</source>
<target>Die Gruppe besteht bereits</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists!" xml:space="preserve"> <trans-unit id="Group already exists!" xml:space="preserve">
<source>Group already exists!</source> <source>Group already exists!</source>
<target>Die Gruppe besteht bereits!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group display name" xml:space="preserve"> <trans-unit id="Group display name" xml:space="preserve">
@@ -2888,11 +2735,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Inkognito</target> <target>Inkognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Inkognito-Gruppen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Inkognito-Modus</target> <target>Inkognito-Modus</target>
@@ -2923,11 +2765,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Inkompatible Datenbank-Version</target> <target>Inkompatible Datenbank-Version</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Inkompatible Version</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Zugangscode ist falsch</target> <target>Zugangscode ist falsch</target>
@@ -2977,7 +2814,6 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Invalid name!" xml:space="preserve"> <trans-unit id="Invalid name!" xml:space="preserve">
<source>Invalid name!</source> <source>Invalid name!</source>
<target>Ungültiger Name!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invalid server address!" xml:space="preserve"> <trans-unit id="Invalid server address!" xml:space="preserve">
@@ -3048,7 +2884,7 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="It seems like you are already connected via this link. If it is not the case, there was an error (%@)." xml:space="preserve"> <trans-unit id="It seems like you are already connected via this link. If it is not the case, there was an error (%@)." xml:space="preserve">
<source>It seems like you are already connected via this link. If it is not the case, there was an error (%@).</source> <source>It seems like you are already connected via this link. If it is not the case, there was an error (%@).</source>
<target>Es sieht so aus, als ob Sie bereits über diesen Link verbunden sind. Wenn das nicht der Fall ist, gab es einen Fehler (%@).</target> <target>Es sieht so aus, dass Sie bereits über diesen Link verbunden sind. Wenn das nicht der Fall, gab es einen Fehler (%@).</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Italian interface" xml:space="preserve"> <trans-unit id="Italian interface" xml:space="preserve">
@@ -3073,7 +2909,6 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join group?" xml:space="preserve"> <trans-unit id="Join group?" xml:space="preserve">
<source>Join group?</source> <source>Join group?</source>
<target>Der Gruppe beitreten?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join incognito" xml:space="preserve"> <trans-unit id="Join incognito" xml:space="preserve">
@@ -3083,14 +2918,11 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join with current profile" xml:space="preserve"> <trans-unit id="Join with current profile" xml:space="preserve">
<source>Join with current profile</source> <source>Join with current profile</source>
<target>Mit dem aktuellen Profil beitreten</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve"> <trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve">
<source>Join your group? <source>Join your group?
This is your link for group %@!</source> This is your link for group %@!</source>
<target>Ihrer Gruppe beitreten?
Das ist Ihr Link für die Gruppe %@!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Joining group" xml:space="preserve"> <trans-unit id="Joining group" xml:space="preserve">
@@ -3098,11 +2930,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Der Gruppe beitreten</target> <target>Der Gruppe beitreten</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Die App muss geöffnet bleiben, um sie vom Desktop aus nutzen zu können</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Ihre Verbindungen beibehalten</target> <target>Ihre Verbindungen beibehalten</target>
@@ -3163,21 +2990,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Einschränkungen</target> <target>Einschränkungen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Verknüpfe Mobiltelefon- und Desktop-Apps! 🔗</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>Verknüpfte Desktop-Optionen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Verknüpfte Desktops</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Live Nachricht!</target> <target>Live Nachricht!</target>
@@ -3330,7 +3142,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Messages from %@ will be shown!" xml:space="preserve"> <trans-unit id="Messages from %@ will be shown!" xml:space="preserve">
<source>Messages from %@ will be shown!</source> <source>Messages from %@ will be shown!</source>
<target>Die Nachrichten von %@ werden angezeigt!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrating database archive…" xml:space="preserve"> <trans-unit id="Migrating database archive…" xml:space="preserve">
@@ -3528,11 +3339,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Keine empfangenen oder gesendeten Dateien</target> <target>Keine empfangenen oder gesendeten Dateien</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Nicht kompatibel!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Benachrichtigungen</target> <target>Benachrichtigungen</target>
@@ -3689,7 +3495,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Open group" xml:space="preserve"> <trans-unit id="Open group" xml:space="preserve">
<source>Open group</source> <source>Open group</source>
<target>Gruppe öffnen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Open user profiles" xml:space="preserve"> <trans-unit id="Open user profiles" xml:space="preserve">
@@ -3752,11 +3557,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Einfügen</target> <target>Einfügen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Desktop-Adresse einfügen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Bild einfügen</target> <target>Bild einfügen</target>
@@ -3904,12 +3704,10 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Profilname</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile name:" xml:space="preserve"> <trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source> <source>Profile name:</source>
<target>Profilname:</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile password" xml:space="preserve"> <trans-unit id="Profile password" xml:space="preserve">
@@ -4159,12 +3957,10 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Repeat connection request?" xml:space="preserve"> <trans-unit id="Repeat connection request?" xml:space="preserve">
<source>Repeat connection request?</source> <source>Repeat connection request?</source>
<target>Verbindungsanfrage wiederholen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Repeat join request?" xml:space="preserve"> <trans-unit id="Repeat join request?" xml:space="preserve">
<source>Repeat join request?</source> <source>Repeat join request?</source>
<target>Verbindungsanfrage wiederholen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Reply" xml:space="preserve"> <trans-unit id="Reply" xml:space="preserve">
@@ -4352,11 +4148,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>QR-Code scannen</target> <target>QR-Code scannen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Den QR-Code vom Desktop scannen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Code scannen</target> <target>Code scannen</target>
@@ -4577,11 +4368,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Server</target> <target>Server</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Sitzungscode</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Einen Tag festlegen</target> <target>Einen Tag festlegen</target>
@@ -4894,7 +4680,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Tap to Connect" xml:space="preserve"> <trans-unit id="Tap to Connect" xml:space="preserve">
<source>Tap to Connect</source> <source>Tap to Connect</source>
<target>Zum Verbinden antippen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to activate profile." xml:space="preserve"> <trans-unit id="Tap to activate profile." xml:space="preserve">
@@ -5079,11 +4864,6 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
<target>Diese Aktion kann nicht rückgängig gemacht werden! Ihr Profil und Ihre Kontakte, Nachrichten und Dateien gehen unwiderruflich verloren.</target> <target>Diese Aktion kann nicht rückgängig gemacht werden! Ihr Profil und Ihre Kontakte, Nachrichten und Dateien gehen unwiderruflich verloren.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>Dieser Gerätename</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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Es werden keine Empfangsbestätigungen gesendet, da diese Gruppe über %lld Mitglieder hat.</target> <target>Es werden keine Empfangsbestätigungen gesendet, da diese Gruppe über %lld Mitglieder hat.</target>
@@ -5096,12 +4876,10 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
</trans-unit> </trans-unit>
<trans-unit id="This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="This is your own SimpleX address!" xml:space="preserve">
<source>This is your own SimpleX address!</source> <source>This is your own SimpleX address!</source>
<target>Das ist Ihre eigene SimpleX-Adresse!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This is your own one-time link!" xml:space="preserve"> <trans-unit id="This is your own one-time link!" xml:space="preserve">
<source>This is your own one-time link!</source> <source>This is your own one-time link!</source>
<target>Das ist Ihr eigener Einmal-Link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve"> <trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
@@ -5119,11 +4897,6 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
<target>Um eine Verbindung herzustellen, kann Ihr Kontakt den QR-Code scannen oder den Link in der App verwenden.</target> <target>Um eine Verbindung herzustellen, kann Ihr Kontakt den QR-Code scannen oder den Link in der App verwenden.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>Um unerwünschte Nachrichten zu verbergen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Um eine Verbindung mit einem neuen Kontakt zu erstellen</target> <target>Um eine Verbindung mit einem neuen Kontakt zu erstellen</target>
@@ -5153,7 +4926,7 @@ Sie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funkt
</trans-unit> </trans-unit>
<trans-unit id="To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." xml:space="preserve"> <trans-unit id="To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." xml:space="preserve">
<source>To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page.</source> <source>To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page.</source>
<target>Geben Sie ein vollständiges Passwort in das Suchfeld auf der Seite **Ihre Chat-Profile** ein, um Ihr verborgenes Profil zu sehen.</target> <target>Geben Sie ein vollständiges Passwort in das Suchfeld auf der Seite **Meine Chat-Profile** ein, um Ihr verborgenes Profil zu sehen.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To support instant push notifications the chat database has to be migrated." xml:space="preserve"> <trans-unit id="To support instant push notifications the chat database has to be migrated." xml:space="preserve">
@@ -5208,17 +4981,14 @@ Sie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funkt
</trans-unit> </trans-unit>
<trans-unit id="Unblock" xml:space="preserve"> <trans-unit id="Unblock" xml:space="preserve">
<source>Unblock</source> <source>Unblock</source>
<target>Freigeben</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member" xml:space="preserve"> <trans-unit id="Unblock member" xml:space="preserve">
<source>Unblock member</source> <source>Unblock member</source>
<target>Mitglied freigeben</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member?" xml:space="preserve"> <trans-unit id="Unblock member?" xml:space="preserve">
<source>Unblock member?</source> <source>Unblock member?</source>
<target>Mitglied freigeben?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unexpected error: %@" xml:space="preserve"> <trans-unit id="Unexpected error: %@" xml:space="preserve">
@@ -5283,16 +5053,6 @@ To connect, please ask your contact to create another connection link and check
Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um sich neu verbinden zu können und stellen Sie sicher, dass Sie eine stabile Netzwerk-Verbindung haben.</target> Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um sich neu verbinden zu können und stellen Sie sicher, dass Sie eine stabile Netzwerk-Verbindung haben.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Entkoppeln</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Desktop entkoppeln?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Entsperren</target> <target>Entsperren</target>
@@ -5383,11 +5143,6 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
<target>Für neue Verbindungen nutzen</target> <target>Für neue Verbindungen nutzen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Vom Desktop aus nutzen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>iOS Anrufschnittstelle nutzen</target> <target>iOS Anrufschnittstelle nutzen</target>
@@ -5418,26 +5173,11 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
<target>Verwendung von SimpleX-Chat-Servern.</target> <target>Verwendung von SimpleX-Chat-Servern.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Code mit dem Desktop überprüfen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Verbindung überprüfen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Sicherheit der Verbindung überprüfen</target> <target>Sicherheit der Verbindung überprüfen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Verbindungen überprüfen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Sicherheitscode überprüfen</target> <target>Sicherheitscode überprüfen</target>
@@ -5448,11 +5188,6 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
<target>Über den Browser</target> <target>Über den Browser</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Über ein sicheres quantenbeständiges Protokoll.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Videoanruf</target> <target>Videoanruf</target>
@@ -5503,11 +5238,6 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
<target>Sprachnachrichten…</target> <target>Sprachnachrichten…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Es wird auf den Desktop gewartet...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Warte auf Datei</target> <target>Warte auf Datei</target>
@@ -5585,7 +5315,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit> </trans-unit>
<trans-unit id="You" xml:space="preserve"> <trans-unit id="You" xml:space="preserve">
<source>You</source> <source>You</source>
<target>Ihre Daten</target> <target>Meine Daten</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You accepted connection" xml:space="preserve"> <trans-unit id="You accepted connection" xml:space="preserve">
@@ -5610,39 +5340,31 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve"> <trans-unit id="You are already connecting to %@." xml:space="preserve">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Sie sind bereits mit %@ verbunden.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve"> <trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
<source>You are already connecting via this one-time link!</source> <source>You are already connecting via this one-time link!</source>
<target>Sie sind bereits über diesen Einmal-Link verbunden!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already in group %@." xml:space="preserve"> <trans-unit id="You are already in group %@." xml:space="preserve">
<source>You are already in group %@.</source> <source>You are already in group %@.</source>
<target>Sie sind bereits Mitglied der Gruppe %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group %@." xml:space="preserve"> <trans-unit id="You are already joining the group %@." xml:space="preserve">
<source>You are already joining the group %@.</source> <source>You are already joining the group %@.</source>
<target>Sie sind bereits Mitglied der Gruppe %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link!" xml:space="preserve"> <trans-unit id="You are already joining the group via this link!" xml:space="preserve">
<source>You are already joining the group via this link!</source> <source>You are already joining the group via this link!</source>
<target>Sie sind über diesen Link bereits Mitglied der Gruppe!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link." xml:space="preserve"> <trans-unit id="You are already joining the group via this link." xml:space="preserve">
<source>You are already joining the group via this link.</source> <source>You are already joining the group via this link.</source>
<target>Sie sind über diesen Link bereits Mitglied der Gruppe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve"> <trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve">
<source>You are already joining the group! <source>You are already joining the group!
Repeat join request?</source> Repeat join request?</source>
<target>Sie sind bereits Mitglied dieser Gruppe!
Verbindungsanfrage wiederholen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve"> <trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve">
@@ -5742,14 +5464,11 @@ Verbindungsanfrage wiederholen?</target>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection via this address!" xml:space="preserve"> <trans-unit id="You have already requested connection via this address!" xml:space="preserve">
<source>You have already requested connection via this address!</source> <source>You have already requested connection via this address!</source>
<target>Sie haben über diese Adresse bereits eine Verbindung beantragt!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve"> <trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve">
<source>You have already requested connection! <source>You have already requested connection!
Repeat connection request?</source> Repeat connection request?</source>
<target>Sie haben bereits ein Verbindungsanfrage beantragt!
Verbindungsanfrage wiederholen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have no chats" xml:space="preserve"> <trans-unit id="You have no chats" xml:space="preserve">
@@ -5804,7 +5523,6 @@ Verbindungsanfrage wiederholen?</target>
</trans-unit> </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"> <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> <source>You will be connected when group link host's device is online, please wait or check later!</source>
<target>Sie werden verbunden, sobald das Endgerät des Gruppenlink-Hosts online ist. Bitte warten oder schauen Sie später nochmal nach!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve"> <trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve">
@@ -5824,7 +5542,6 @@ Verbindungsanfrage wiederholen?</target>
</trans-unit> </trans-unit>
<trans-unit id="You will connect to all group members." xml:space="preserve"> <trans-unit id="You will connect to all group members." xml:space="preserve">
<source>You will connect to all group members.</source> <source>You will connect to all group members.</source>
<target>Sie werden mit allen Gruppenmitgliedern verbunden.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve"> <trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve">
@@ -5869,7 +5586,7 @@ Verbindungsanfrage wiederholen?</target>
</trans-unit> </trans-unit>
<trans-unit id="Your SimpleX address" xml:space="preserve"> <trans-unit id="Your SimpleX address" xml:space="preserve">
<source>Your SimpleX address</source> <source>Your SimpleX address</source>
<target>Ihre SimpleX-Adresse</target> <target>Meine SimpleX-Adresse</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your XFTP servers" xml:space="preserve"> <trans-unit id="Your XFTP servers" xml:space="preserve">
@@ -5894,7 +5611,7 @@ Verbindungsanfrage wiederholen?</target>
</trans-unit> </trans-unit>
<trans-unit id="Your chat profiles" xml:space="preserve"> <trans-unit id="Your chat profiles" xml:space="preserve">
<source>Your chat profiles</source> <source>Your chat profiles</source>
<target>Ihre Chat-Profile</target> <target>Meine Chat-Profile</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your contact needs to be online for the connection to complete.&#10;You can cancel this connection and remove the contact (and try later with a new link)." xml:space="preserve"> <trans-unit id="Your contact needs to be online for the connection to complete.&#10;You can cancel this connection and remove the contact (and try later with a new link)." xml:space="preserve">
@@ -5938,17 +5655,16 @@ Sie können es in den Einstellungen ändern.</target>
</trans-unit> </trans-unit>
<trans-unit id="Your preferences" xml:space="preserve"> <trans-unit id="Your preferences" xml:space="preserve">
<source>Your preferences</source> <source>Your preferences</source>
<target>Ihre Präferenzen</target> <target>Meine Präferenzen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your privacy" xml:space="preserve"> <trans-unit id="Your privacy" xml:space="preserve">
<source>Your privacy</source> <source>Your privacy</source>
<target>Ihre Privatsphäre</target> <target>Meine Privatsphäre</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your profile" xml:space="preserve"> <trans-unit id="Your profile" xml:space="preserve">
<source>Your profile</source> <source>Your profile</source>
<target>Mein Profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your profile **%@** will be shared." xml:space="preserve"> <trans-unit id="Your profile **%@** will be shared." xml:space="preserve">
@@ -5985,7 +5701,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="Your settings" xml:space="preserve"> <trans-unit id="Your settings" xml:space="preserve">
<source>Your settings</source> <source>Your settings</source>
<target>Ihre Einstellungen</target> <target>Meine Einstellungen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="[Contribute](https://github.com/simplex-chat/simplex-chat#contribute)" xml:space="preserve"> <trans-unit id="[Contribute](https://github.com/simplex-chat/simplex-chat#contribute)" xml:space="preserve">
@@ -6045,7 +5761,6 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="and %lld other events" xml:space="preserve"> <trans-unit id="and %lld other events" xml:space="preserve">
<source>and %lld other events</source> <source>and %lld other events</source>
<target>und %lld weitere Ereignisse</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="audio call (not e2e encrypted)" xml:space="preserve"> <trans-unit id="audio call (not e2e encrypted)" xml:space="preserve">
@@ -6053,11 +5768,6 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
<target>Audioanruf (nicht E2E verschlüsselt)</target> <target>Audioanruf (nicht E2E verschlüsselt)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>Autor</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>Ungültige Nachrichten-ID</target> <target>Ungültige Nachrichten-ID</target>
@@ -6070,7 +5780,6 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="blocked" xml:space="preserve"> <trans-unit id="blocked" xml:space="preserve">
<source>blocked</source> <source>blocked</source>
<target>blockiert</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="bold" xml:space="preserve"> <trans-unit id="bold" xml:space="preserve">
@@ -6245,7 +5954,6 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="deleted contact" xml:space="preserve"> <trans-unit id="deleted contact" xml:space="preserve">
<source>deleted contact</source> <source>deleted contact</source>
<target>Gelöschter Kontakt</target>
<note>rcv direct event chat item</note> <note>rcv direct event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="deleted group" xml:space="preserve"> <trans-unit id="deleted group" xml:space="preserve">
@@ -6640,11 +6348,6 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
<target>Aktualisiertes Gruppenprofil</target> <target>Aktualisiertes Gruppenprofil</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6782,11 +6485,6 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
<target>Face ID wird von SimpleX für die lokale Authentifizierung genutzt</target> <target>Face ID wird von SimpleX für die lokale Authentifizierung genutzt</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX nutzt den lokalen Netzwerkzugriff, um die Nutzung von Benutzer-Chatprofilen über eine Desktop-App im gleichen Netzwerk zu erlauben.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX benötigt Zugriff auf das Mikrofon, um Audio- und Videoanrufe und die Aufnahme von Sprachnachrichten zu ermöglichen.</target> <target>SimpleX benötigt Zugriff auf das Mikrofon, um Audio- und Videoanrufe und die Aufnahme von Sprachnachrichten zu ermöglichen.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -297,16 +297,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(new)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(this device v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -392,15 +382,6 @@
- and more!</source> - and more!</source>
<target>- more stable message delivery. <target>- more stable message delivery.
- a bit better groups. - a bit better groups.
- and more!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</target> - and more!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -888,11 +869,6 @@
<target>Back</target> <target>Back</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Bad desktop address</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Bad message ID</target> <target>Bad message ID</target>
@@ -903,11 +879,6 @@
<target>Bad message hash</target> <target>Bad message hash</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Better groups</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Better messages</target> <target>Better messages</target>
@@ -918,11 +889,6 @@
<target>Block</target> <target>Block</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Block group members</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<target>Block member</target> <target>Block member</target>
@@ -1194,21 +1160,11 @@
<target>Connect</target> <target>Connect</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Connect automatically</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Connect incognito</target> <target>Connect incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Connect to desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<target>Connect to yourself?</target> <target>Connect to yourself?</target>
@@ -1253,16 +1209,6 @@ This is your own one-time link!</target>
<target>Connect with %@</target> <target>Connect with %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Connected desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Connected to desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>Connecting to server…</target> <target>Connecting to server…</target>
@@ -1273,11 +1219,6 @@ This is your own one-time link!</target>
<target>Connecting to server… (error: %@)</target> <target>Connecting to server… (error: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Connecting to desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Connection</target> <target>Connection</target>
@@ -1298,11 +1239,6 @@ This is your own one-time link!</target>
<target>Connection request sent!</target> <target>Connection request sent!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Connection terminated</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Connection timeout</target> <target>Connection timeout</target>
@@ -1383,11 +1319,6 @@ This is your own one-time link!</target>
<target>Create SimpleX address</target> <target>Create SimpleX address</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Create a group using a random profile.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Create an address to let people connect with you.</target> <target>Create an address to let people connect with you.</target>
@@ -1798,21 +1729,6 @@ This cannot be undone!</target>
<target>Description</target> <target>Description</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Desktop address</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>Desktop app version %@ is not compatible with this app.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Desktop devices</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Develop</target> <target>Develop</target>
@@ -1903,21 +1819,11 @@ This cannot be undone!</target>
<target>Disconnect</target> <target>Disconnect</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Disconnect desktop?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Discover and join groups</target> <target>Discover and join groups</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Discover via local network</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>Do NOT use SimpleX for emergency calls.</target> <target>Do NOT use SimpleX for emergency calls.</target>
@@ -2088,16 +1994,6 @@ This cannot be undone!</target>
<target>Encrypted message: unexpected error</target> <target>Encrypted message: unexpected error</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Encryption re-negotiation error</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>Encryption re-negotiation failed.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Enter Passcode</target> <target>Enter Passcode</target>
@@ -2128,11 +2024,6 @@ This cannot be undone!</target>
<target>Enter server manually</target> <target>Enter server manually</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Enter this device name…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Enter welcome message…</target> <target>Enter welcome message…</target>
@@ -2458,11 +2349,6 @@ This cannot be undone!</target>
<target>Fast and no wait until the sender is online!</target> <target>Fast and no wait until the sender is online!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Faster joining and more reliable messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Favorite</target> <target>Favorite</target>
@@ -2558,11 +2444,6 @@ This cannot be undone!</target>
<target>For console</target> <target>For console</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Found desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>French interface</target> <target>French interface</target>
@@ -2888,11 +2769,6 @@ This cannot be undone!</target>
<target>Incognito</target> <target>Incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Incognito groups</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Incognito mode</target> <target>Incognito mode</target>
@@ -2923,11 +2799,6 @@ This cannot be undone!</target>
<target>Incompatible database version</target> <target>Incompatible database version</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Incompatible version</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Incorrect passcode</target> <target>Incorrect passcode</target>
@@ -3098,11 +2969,6 @@ This is your link for group %@!</target>
<target>Joining group</target> <target>Joining group</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Keep the app open to use it from desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Keep your connections</target> <target>Keep your connections</target>
@@ -3163,21 +3029,6 @@ This is your link for group %@!</target>
<target>Limitations</target> <target>Limitations</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Link mobile and desktop apps! 🔗</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>Linked desktop options</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Linked desktops</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Live message!</target> <target>Live message!</target>
@@ -3528,11 +3379,6 @@ This is your link for group %@!</target>
<target>No received or sent files</target> <target>No received or sent files</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Not compatible!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Notifications</target> <target>Notifications</target>
@@ -3752,11 +3598,6 @@ This is your link for group %@!</target>
<target>Paste</target> <target>Paste</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Paste desktop address</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Paste image</target> <target>Paste image</target>
@@ -4352,11 +4193,6 @@ This is your link for group %@!</target>
<target>Scan QR code</target> <target>Scan QR code</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Scan QR code from desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Scan code</target> <target>Scan code</target>
@@ -4577,11 +4413,6 @@ This is your link for group %@!</target>
<target>Servers</target> <target>Servers</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Session code</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Set 1 day</target> <target>Set 1 day</target>
@@ -5079,11 +4910,6 @@ It can happen because of some bug or when the connection is compromised.</target
<target>This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost.</target> <target>This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>This device name</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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>This group has over %lld members, delivery receipts are not sent.</target> <target>This group has over %lld members, delivery receipts are not sent.</target>
@@ -5119,11 +4945,6 @@ It can happen because of some bug or when the connection is compromised.</target
<target>To connect, your contact can scan QR code or use the link in the app.</target> <target>To connect, your contact can scan QR code or use the link in the app.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>To hide unwanted messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>To make a new connection</target> <target>To make a new connection</target>
@@ -5283,16 +5104,6 @@ To connect, please ask your contact to create another connection link and check
To connect, please ask your contact to create another connection link and check that you have a stable network connection.</target> To connect, please ask your contact to create another connection link and check that you have a stable network connection.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Unlink</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Unlink desktop?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Unlock</target> <target>Unlock</target>
@@ -5383,11 +5194,6 @@ To connect, please ask your contact to create another connection link and check
<target>Use for new connections</target> <target>Use for new connections</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Use from desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Use iOS call interface</target> <target>Use iOS call interface</target>
@@ -5418,26 +5224,11 @@ To connect, please ask your contact to create another connection link and check
<target>Using SimpleX Chat servers.</target> <target>Using SimpleX Chat servers.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Verify code with desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Verify connection</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Verify connection security</target> <target>Verify connection security</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Verify connections</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Verify security code</target> <target>Verify security code</target>
@@ -5448,11 +5239,6 @@ To connect, please ask your contact to create another connection link and check
<target>Via browser</target> <target>Via browser</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Via secure quantum resistant protocol.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Video call</target> <target>Video call</target>
@@ -5503,11 +5289,6 @@ To connect, please ask your contact to create another connection link and check
<target>Voice message…</target> <target>Voice message…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Waiting for desktop...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Waiting for file</target> <target>Waiting for file</target>
@@ -6053,11 +5834,6 @@ SimpleX servers cannot see your profile.</target>
<target>audio call (not e2e encrypted)</target> <target>audio call (not e2e encrypted)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>author</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>bad message ID</target> <target>bad message ID</target>
@@ -6640,11 +6416,6 @@ SimpleX servers cannot see your profile.</target>
<target>updated group profile</target> <target>updated group profile</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6782,11 +6553,6 @@ SimpleX servers cannot see your profile.</target>
<target>SimpleX uses Face ID for local authentication</target> <target>SimpleX uses Face ID for local authentication</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX needs microphone access for audio and video calls, and to record voice messages.</target> <target>SimpleX needs microphone access for audio and video calls, and to record voice messages.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -290,14 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -386,12 +378,6 @@
- ¡y más!</target> - ¡y más!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -872,10 +858,6 @@
<target>Volver</target> <target>Volver</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>ID de mensaje incorrecto</target> <target>ID de mensaje incorrecto</target>
@@ -886,10 +868,6 @@
<target>Hash de mensaje incorrecto</target> <target>Hash de mensaje incorrecto</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Mensajes mejorados</target> <target>Mensajes mejorados</target>
@@ -899,10 +877,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1172,19 +1146,11 @@
<target>Conectar</target> <target>Conectar</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Conectar incognito</target> <target>Conectar incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1222,14 +1188,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>Conectando con el servidor…</target> <target>Conectando con el servidor…</target>
@@ -1240,10 +1198,6 @@ This is your own one-time link!</source>
<target>Conectando con el servidor... (error: %@)</target> <target>Conectando con el servidor... (error: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Conexión</target> <target>Conexión</target>
@@ -1264,10 +1218,6 @@ This is your own one-time link!</source>
<target>¡Solicitud de conexión enviada!</target> <target>¡Solicitud de conexión enviada!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Tiempo de conexión expirado</target> <target>Tiempo de conexión expirado</target>
@@ -1347,10 +1297,6 @@ This is your own one-time link!</source>
<target>Crear tu dirección SimpleX</target> <target>Crear tu dirección SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Crea una dirección para que otras personas puedan conectar contigo.</target> <target>Crea una dirección para que otras personas puedan conectar contigo.</target>
@@ -1755,18 +1701,6 @@ This cannot be undone!</source>
<target>Descripción</target> <target>Descripción</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Desarrollo</target> <target>Desarrollo</target>
@@ -1857,19 +1791,11 @@ This cannot be undone!</source>
<target>Desconectar</target> <target>Desconectar</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Descubre y únete a grupos</target> <target>Descubre y únete a grupos</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>NO uses SimpleX para llamadas de emergencia.</target> <target>NO uses SimpleX para llamadas de emergencia.</target>
@@ -2040,14 +1966,6 @@ This cannot be undone!</source>
<target>Mensaje cifrado: error inesperado</target> <target>Mensaje cifrado: error inesperado</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Introduce Código</target> <target>Introduce Código</target>
@@ -2077,10 +1995,6 @@ This cannot be undone!</source>
<target>Introduce el servidor manualmente</target> <target>Introduce el servidor manualmente</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Introduce mensaje de bienvenida…</target> <target>Introduce mensaje de bienvenida…</target>
@@ -2404,10 +2318,6 @@ This cannot be undone!</source>
<target>¡Rápido y sin necesidad de esperar a que el remitente esté en línea!</target> <target>¡Rápido y sin necesidad de esperar a que el remitente esté en línea!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Favoritos</target> <target>Favoritos</target>
@@ -2503,10 +2413,6 @@ This cannot be undone!</source>
<target>Para consola</target> <target>Para consola</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Interfaz en francés</target> <target>Interfaz en francés</target>
@@ -2829,10 +2735,6 @@ This cannot be undone!</source>
<target>Incógnito</target> <target>Incógnito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Modo incógnito</target> <target>Modo incógnito</target>
@@ -2863,10 +2765,6 @@ This cannot be undone!</source>
<target>Versión de base de datos incompatible</target> <target>Versión de base de datos incompatible</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Código de acceso incorrecto</target> <target>Código de acceso incorrecto</target>
@@ -3032,10 +2930,6 @@ This is your link for group %@!</source>
<target>Entrando al grupo</target> <target>Entrando al grupo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Conserva tus conexiones</target> <target>Conserva tus conexiones</target>
@@ -3096,18 +2990,6 @@ This is your link for group %@!</source>
<target>Limitaciones</target> <target>Limitaciones</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>¡Mensaje en vivo!</target> <target>¡Mensaje en vivo!</target>
@@ -3457,10 +3339,6 @@ This is your link for group %@!</source>
<target>Sin archivos recibidos o enviados</target> <target>Sin archivos recibidos o enviados</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Notificaciones</target> <target>Notificaciones</target>
@@ -3679,10 +3557,6 @@ This is your link for group %@!</source>
<target>Pegar</target> <target>Pegar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Pegar imagen</target> <target>Pegar imagen</target>
@@ -4274,10 +4148,6 @@ This is your link for group %@!</source>
<target>Escanear código QR</target> <target>Escanear código QR</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Escanear código</target> <target>Escanear código</target>
@@ -4498,10 +4368,6 @@ This is your link for group %@!</source>
<target>Servidores</target> <target>Servidores</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Establecer 1 día</target> <target>Establecer 1 día</target>
@@ -4998,10 +4864,6 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
<target>Esta acción no se puede deshacer. Tu perfil, contactos, mensajes y archivos se perderán irreversiblemente.</target> <target>Esta acción no se puede deshacer. Tu perfil, contactos, mensajes y archivos se perderán irreversiblemente.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Este grupo tiene más de %lld miembros, no se enviarán confirmaciones de entrega.</target> <target>Este grupo tiene más de %lld miembros, no se enviarán confirmaciones de entrega.</target>
@@ -5035,10 +4897,6 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
<target>Para conectarse, tu contacto puede escanear el código QR o usar el enlace en la aplicación.</target> <target>Para conectarse, tu contacto puede escanear el código QR o usar el enlace en la aplicación.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Para hacer una conexión nueva</target> <target>Para hacer una conexión nueva</target>
@@ -5196,14 +5054,6 @@ que este enlace ya se haya usado, podría ser un error. Por favor, notifícalo.
Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueba que tienes buena conexión de red.</target> Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueba que tienes buena conexión de red.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Desbloquear</target> <target>Desbloquear</target>
@@ -5294,10 +5144,6 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
<target>Usar para conexiones nuevas</target> <target>Usar para conexiones nuevas</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Usar interfaz de llamada de iOS</target> <target>Usar interfaz de llamada de iOS</target>
@@ -5328,23 +5174,11 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
<target>Usar servidores SimpleX Chat.</target> <target>Usar servidores SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Comprobar la seguridad de la conexión</target> <target>Comprobar la seguridad de la conexión</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Comprobar código de seguridad</target> <target>Comprobar código de seguridad</target>
@@ -5355,10 +5189,6 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
<target>Mediante navegador</target> <target>Mediante navegador</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Videollamada</target> <target>Videollamada</target>
@@ -5409,10 +5239,6 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
<target>Mensaje de voz…</target> <target>Mensaje de voz…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Esperando archivo</target> <target>Esperando archivo</target>
@@ -5943,10 +5769,6 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
<target>llamada (sin cifrar)</target> <target>llamada (sin cifrar)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>ID de mensaje erróneo</target> <target>ID de mensaje erróneo</target>
@@ -6527,10 +6349,6 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
<target>ha actualizado el perfil del grupo</target> <target>ha actualizado el perfil del grupo</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6668,10 +6486,6 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
<target>SimpleX usa reconocimiento facial para la autenticación local</target> <target>SimpleX usa reconocimiento facial para la autenticación local</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX necesita acceso al micrófono para las llamadas de audio, vídeo y para grabar mensajes de voz.</target> <target>SimpleX necesita acceso al micrófono para las llamadas de audio, vídeo y para grabar mensajes de voz.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -290,14 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -383,12 +375,6 @@
- ja paljon muuta!</target> - ja paljon muuta!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -868,10 +854,6 @@
<target>Takaisin</target> <target>Takaisin</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Virheellinen viestin tunniste</target> <target>Virheellinen viestin tunniste</target>
@@ -882,10 +864,6 @@
<target>Virheellinen viestin tarkiste</target> <target>Virheellinen viestin tarkiste</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Parempia viestejä</target> <target>Parempia viestejä</target>
@@ -895,10 +873,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1167,19 +1141,11 @@
<target>Yhdistä</target> <target>Yhdistä</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Yhdistä Incognito</target> <target>Yhdistä Incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1217,14 +1183,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>Yhteyden muodostaminen palvelimeen…</target> <target>Yhteyden muodostaminen palvelimeen…</target>
@@ -1235,10 +1193,6 @@ This is your own one-time link!</source>
<target>Yhteyden muodostaminen palvelimeen... (virhe: %@)</target> <target>Yhteyden muodostaminen palvelimeen... (virhe: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Yhteys</target> <target>Yhteys</target>
@@ -1259,10 +1213,6 @@ This is your own one-time link!</source>
<target>Yhteyspyyntö lähetetty!</target> <target>Yhteyspyyntö lähetetty!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Yhteyden aikakatkaisu</target> <target>Yhteyden aikakatkaisu</target>
@@ -1342,10 +1292,6 @@ This is your own one-time link!</source>
<target>Luo SimpleX-osoite</target> <target>Luo SimpleX-osoite</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Luo osoite, jolla ihmiset voivat ottaa sinuun yhteyttä.</target> <target>Luo osoite, jolla ihmiset voivat ottaa sinuun yhteyttä.</target>
@@ -1750,18 +1696,6 @@ This cannot be undone!</source>
<target>Kuvaus</target> <target>Kuvaus</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Kehitä</target> <target>Kehitä</target>
@@ -1852,19 +1786,11 @@ This cannot be undone!</source>
<target>Katkaise</target> <target>Katkaise</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Löydä ryhmiä ja liity niihin</target> <target>Löydä ryhmiä ja liity niihin</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>Älä käytä SimpleX-sovellusta hätäpuheluihin.</target> <target>Älä käytä SimpleX-sovellusta hätäpuheluihin.</target>
@@ -2034,14 +1960,6 @@ This cannot be undone!</source>
<target>Salattu viesti: odottamaton virhe</target> <target>Salattu viesti: odottamaton virhe</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Syötä pääsykoodi</target> <target>Syötä pääsykoodi</target>
@@ -2071,10 +1989,6 @@ This cannot be undone!</source>
<target>Syötä palvelin manuaalisesti</target> <target>Syötä palvelin manuaalisesti</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Kirjoita tervetuloviesti…</target> <target>Kirjoita tervetuloviesti…</target>
@@ -2396,10 +2310,6 @@ This cannot be undone!</source>
<target>Nopea ja ei odotusta, kunnes lähettäjä on online-tilassa!</target> <target>Nopea ja ei odotusta, kunnes lähettäjä on online-tilassa!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Suosikki</target> <target>Suosikki</target>
@@ -2495,10 +2405,6 @@ This cannot be undone!</source>
<target>Konsoliin</target> <target>Konsoliin</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Ranskalainen käyttöliittymä</target> <target>Ranskalainen käyttöliittymä</target>
@@ -2821,10 +2727,6 @@ This cannot be undone!</source>
<target>Incognito</target> <target>Incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Incognito-tila</target> <target>Incognito-tila</target>
@@ -2855,10 +2757,6 @@ This cannot be undone!</source>
<target>Yhteensopimaton tietokantaversio</target> <target>Yhteensopimaton tietokantaversio</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Väärä pääsykoodi</target> <target>Väärä pääsykoodi</target>
@@ -3024,10 +2922,6 @@ This is your link for group %@!</source>
<target>Liittyy ryhmään</target> <target>Liittyy ryhmään</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Pidä kontaktisi</target> <target>Pidä kontaktisi</target>
@@ -3088,18 +2982,6 @@ This is your link for group %@!</source>
<target>Rajoitukset</target> <target>Rajoitukset</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Live-viesti!</target> <target>Live-viesti!</target>
@@ -3448,10 +3330,6 @@ This is your link for group %@!</source>
<target>Ei vastaanotettuja tai lähetettyjä tiedostoja</target> <target>Ei vastaanotettuja tai lähetettyjä tiedostoja</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Ilmoitukset</target> <target>Ilmoitukset</target>
@@ -3669,10 +3547,6 @@ This is your link for group %@!</source>
<target>Liitä</target> <target>Liitä</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Liitä kuva</target> <target>Liitä kuva</target>
@@ -4264,10 +4138,6 @@ This is your link for group %@!</source>
<target>Skannaa QR-koodi</target> <target>Skannaa QR-koodi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Skannaa koodi</target> <target>Skannaa koodi</target>
@@ -4487,10 +4357,6 @@ This is your link for group %@!</source>
<target>Palvelimet</target> <target>Palvelimet</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Aseta 1 päivä</target> <target>Aseta 1 päivä</target>
@@ -4986,10 +4852,6 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
<target>Tätä toimintoa ei voi kumota - profiilisi, kontaktisi, viestisi ja tiedostosi poistuvat peruuttamattomasti.</target> <target>Tätä toimintoa ei voi kumota - profiilisi, kontaktisi, viestisi ja tiedostosi poistuvat peruuttamattomasti.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Tässä ryhmässä on yli %lld jäsentä, lähetyskuittauksia ei lähetetä.</target> <target>Tässä ryhmässä on yli %lld jäsentä, lähetyskuittauksia ei lähetetä.</target>
@@ -5023,10 +4885,6 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
<target>Kontaktisi voi muodostaa yhteyden skannaamalla QR-koodin tai käyttämällä sovelluksessa olevaa linkkiä.</target> <target>Kontaktisi voi muodostaa yhteyden skannaamalla QR-koodin tai käyttämällä sovelluksessa olevaa linkkiä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Uuden yhteyden luominen</target> <target>Uuden yhteyden luominen</target>
@@ -5182,14 +5040,6 @@ To connect, please ask your contact to create another connection link and check
Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja tarkista, että verkkoyhteytesi on vakaa.</target> Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja tarkista, että verkkoyhteytesi on vakaa.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Avaa</target> <target>Avaa</target>
@@ -5280,10 +5130,6 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<target>Käytä uusiin yhteyksiin</target> <target>Käytä uusiin yhteyksiin</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Käytä iOS:n puhelujen käyttöliittymää</target> <target>Käytä iOS:n puhelujen käyttöliittymää</target>
@@ -5314,23 +5160,11 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<target>Käyttää SimpleX Chat -palvelimia.</target> <target>Käyttää SimpleX Chat -palvelimia.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Tarkista yhteyden suojaus</target> <target>Tarkista yhteyden suojaus</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Tarkista turvakoodi</target> <target>Tarkista turvakoodi</target>
@@ -5341,10 +5175,6 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<target>Selaimella</target> <target>Selaimella</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Videopuhelu</target> <target>Videopuhelu</target>
@@ -5395,10 +5225,6 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<target>Ääniviesti…</target> <target>Ääniviesti…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Odottaa tiedostoa</target> <target>Odottaa tiedostoa</target>
@@ -5929,10 +5755,6 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
<target>äänipuhelu (ei e2e-salattu)</target> <target>äänipuhelu (ei e2e-salattu)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>virheellinen viestin tunniste</target> <target>virheellinen viestin tunniste</target>
@@ -6511,10 +6333,6 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
<target>päivitetty ryhmäprofiili</target> <target>päivitetty ryhmäprofiili</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6652,10 +6470,6 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
<target>SimpleX käyttää Face ID:tä paikalliseen todennukseen</target> <target>SimpleX käyttää Face ID:tä paikalliseen todennukseen</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX tarvitsee mikrofonia ääni- ja videopuheluita ja ääniviestien tallentamista varten.</target> <target>SimpleX tarvitsee mikrofonia ääni- ja videopuheluita ja ääniviestien tallentamista varten.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -89,7 +89,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@" xml:space="preserve"> <trans-unit id="%@ and %@" xml:space="preserve">
<source>%@ and %@</source> <source>%@ and %@</source>
<target>%@ et %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@ connected" xml:space="preserve"> <trans-unit id="%@ and %@ connected" xml:space="preserve">
@@ -104,7 +103,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ connected" xml:space="preserve"> <trans-unit id="%@ connected" xml:space="preserve">
<source>%@ connected</source> <source>%@ connected</source>
<target>%@ connecté(e)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -134,7 +132,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld members" xml:space="preserve"> <trans-unit id="%@, %@ and %lld members" xml:space="preserve">
<source>%@, %@ and %lld members</source> <source>%@, %@ and %lld members</source>
<target>%@, %@ et %lld membres</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve"> <trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
@@ -204,7 +201,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld group events" xml:space="preserve"> <trans-unit id="%lld group events" xml:space="preserve">
<source>%lld group events</source> <source>%lld group events</source>
<target>%lld événements de groupe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld members" xml:space="preserve"> <trans-unit id="%lld members" xml:space="preserve">
@@ -214,17 +210,14 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked" xml:space="preserve"> <trans-unit id="%lld messages blocked" xml:space="preserve">
<source>%lld messages blocked</source> <source>%lld messages blocked</source>
<target>%lld messages bloqués</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages marked deleted" xml:space="preserve"> <trans-unit id="%lld messages marked deleted" xml:space="preserve">
<source>%lld messages marked deleted</source> <source>%lld messages marked deleted</source>
<target>%lld messages marqués comme supprimés</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages moderated by %@" xml:space="preserve"> <trans-unit id="%lld messages moderated by %@" xml:space="preserve">
<source>%lld messages moderated by %@</source> <source>%lld messages moderated by %@</source>
<target>%lld messages modérés par %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld minutes" xml:space="preserve"> <trans-unit id="%lld minutes" xml:space="preserve">
@@ -297,16 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(nouveau)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(cet appareil v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -395,15 +378,6 @@
- et bien d'autres choses encore !</target> - et bien d'autres choses encore !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- option pour notifier les contacts supprimés.
- noms de profil avec espaces.
- et plus encore !</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -420,7 +394,6 @@
</trans-unit> </trans-unit>
<trans-unit id="0 sec" xml:space="preserve"> <trans-unit id="0 sec" xml:space="preserve">
<source>0 sec</source> <source>0 sec</source>
<target>0 sec</target>
<note>time to disappear</note> <note>time to disappear</note>
</trans-unit> </trans-unit>
<trans-unit id="0s" xml:space="preserve"> <trans-unit id="0s" xml:space="preserve">
@@ -650,7 +623,6 @@
</trans-unit> </trans-unit>
<trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve"> <trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve">
<source>All new messages from %@ will be hidden!</source> <source>All new messages from %@ will be hidden!</source>
<target>Tous les nouveaux messages de %@ seront cachés !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve"> <trans-unit id="All your contacts will remain connected." xml:space="preserve">
@@ -760,12 +732,10 @@
</trans-unit> </trans-unit>
<trans-unit id="Already connecting!" xml:space="preserve"> <trans-unit id="Already connecting!" xml:space="preserve">
<source>Already connecting!</source> <source>Already connecting!</source>
<target>Déjà en connexion !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Already joining the group!" xml:space="preserve"> <trans-unit id="Already joining the group!" xml:space="preserve">
<source>Already joining the group!</source> <source>Already joining the group!</source>
<target>Groupe déjà rejoint !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Always use relay" xml:space="preserve"> <trans-unit id="Always use relay" xml:space="preserve">
@@ -888,11 +858,6 @@
<target>Retour</target> <target>Retour</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Mauvaise adresse de bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Mauvais ID de message</target> <target>Mauvais ID de message</target>
@@ -903,11 +868,6 @@
<target>Mauvais hash de message</target> <target>Mauvais hash de message</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Des groupes plus performants</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Meilleurs messages</target> <target>Meilleurs messages</target>
@@ -915,22 +875,14 @@
</trans-unit> </trans-unit>
<trans-unit id="Block" xml:space="preserve"> <trans-unit id="Block" xml:space="preserve">
<source>Block</source> <source>Block</source>
<target>Bloquer</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Bloquer des membres d'un groupe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<target>Bloquer ce membre</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member?" xml:space="preserve"> <trans-unit id="Block member?" xml:space="preserve">
<source>Block member?</source> <source>Block member?</source>
<target>Bloquer ce membre ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve"> <trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1194,43 +1146,27 @@
<target>Se connecter</target> <target>Se connecter</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Connexion automatique</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Se connecter incognito</target> <target>Se connecter incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Se connecter au bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<target>Se connecter à soi-même ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own SimpleX address!</source> This is your own SimpleX address!</source>
<target>Se connecter à soi-même ?
C'est votre propre adresse SimpleX !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own one-time link!</source> This is your own one-time link!</source>
<target>Se connecter à soi-même ?
Il s'agit de votre propre lien unique !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via contact address" xml:space="preserve"> <trans-unit id="Connect via contact address" xml:space="preserve">
<source>Connect via contact address</source> <source>Connect via contact address</source>
<target>Se connecter via l'adresse de contact</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via link" xml:space="preserve"> <trans-unit id="Connect via link" xml:space="preserve">
@@ -1250,17 +1186,6 @@ Il s'agit de votre propre lien unique !</target>
</trans-unit> </trans-unit>
<trans-unit id="Connect with %@" xml:space="preserve"> <trans-unit id="Connect with %@" xml:space="preserve">
<source>Connect with %@</source> <source>Connect with %@</source>
<target>Se connecter avec %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Bureau connecté</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Connecté au bureau</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
@@ -1273,11 +1198,6 @@ Il s'agit de votre propre lien unique !</target>
<target>Connexion au serveur… (erreur : %@)</target> <target>Connexion au serveur… (erreur : %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Connexion au bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Connexion</target> <target>Connexion</target>
@@ -1298,11 +1218,6 @@ Il s'agit de votre propre lien unique !</target>
<target>Demande de connexion envoyée !</target> <target>Demande de connexion envoyée !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Connexion terminée</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Délai de connexion</target> <target>Délai de connexion</target>
@@ -1370,7 +1285,6 @@ Il s'agit de votre propre lien unique !</target>
</trans-unit> </trans-unit>
<trans-unit id="Correct name to %@?" xml:space="preserve"> <trans-unit id="Correct name to %@?" xml:space="preserve">
<source>Correct name to %@?</source> <source>Correct name to %@?</source>
<target>Corriger le nom pour %@ ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create" xml:space="preserve"> <trans-unit id="Create" xml:space="preserve">
@@ -1383,11 +1297,6 @@ Il s'agit de votre propre lien unique !</target>
<target>Créer une adresse SimpleX</target> <target>Créer une adresse SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Création de groupes via un profil aléatoire.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Créez une adresse pour permettre aux gens de vous contacter.</target> <target>Créez une adresse pour permettre aux gens de vous contacter.</target>
@@ -1400,7 +1309,6 @@ Il s'agit de votre propre lien unique !</target>
</trans-unit> </trans-unit>
<trans-unit id="Create group" xml:space="preserve"> <trans-unit id="Create group" xml:space="preserve">
<source>Create group</source> <source>Create group</source>
<target>Créer un groupe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create group link" xml:space="preserve"> <trans-unit id="Create group link" xml:space="preserve">
@@ -1425,7 +1333,6 @@ Il s'agit de votre propre lien unique !</target>
</trans-unit> </trans-unit>
<trans-unit id="Create profile" xml:space="preserve"> <trans-unit id="Create profile" xml:space="preserve">
<source>Create profile</source> <source>Create profile</source>
<target>Créer le profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create queue" xml:space="preserve"> <trans-unit id="Create queue" xml:space="preserve">
@@ -1588,7 +1495,6 @@ Il s'agit de votre propre lien unique !</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete %lld messages?" xml:space="preserve"> <trans-unit id="Delete %lld messages?" xml:space="preserve">
<source>Delete %lld messages?</source> <source>Delete %lld messages?</source>
<target>Supprimer %lld messages ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete Contact" xml:space="preserve"> <trans-unit id="Delete Contact" xml:space="preserve">
@@ -1618,7 +1524,6 @@ Il s'agit de votre propre lien unique !</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete and notify contact" xml:space="preserve"> <trans-unit id="Delete and notify contact" xml:space="preserve">
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<target>Supprimer et en informer le contact</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete archive" xml:space="preserve"> <trans-unit id="Delete archive" xml:space="preserve">
@@ -1654,8 +1559,6 @@ Il s'agit de votre propre lien unique !</target>
<trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve"> <trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve">
<source>Delete contact? <source>Delete contact?
This cannot be undone!</source> This cannot be undone!</source>
<target>Supprimer le contact ?
Cette opération ne peut être annulée !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete database" xml:space="preserve"> <trans-unit id="Delete database" xml:space="preserve">
@@ -1798,21 +1701,6 @@ Cette opération ne peut être annulée !</target>
<target>Description</target> <target>Description</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Adresse de bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>La version de l'application de bureau %@ n'est pas compatible avec cette application.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Appareils de bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Développer</target> <target>Développer</target>
@@ -1903,21 +1791,11 @@ Cette opération ne peut être annulée !</target>
<target>Se déconnecter</target> <target>Se déconnecter</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Déconnecter le bureau ?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Découvrir et rejoindre des groupes</target> <target>Découvrir et rejoindre des groupes</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Rechercher sur le réseau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>N'utilisez PAS SimpleX pour les appels d'urgence.</target> <target>N'utilisez PAS SimpleX pour les appels d'urgence.</target>
@@ -2088,16 +1966,6 @@ Cette opération ne peut être annulée !</target>
<target>Message chiffrée: erreur inattendue</target> <target>Message chiffrée: erreur inattendue</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Erreur lors de la renégociation du chiffrement</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>La renégociation du chiffrement a échoué.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Entrer le code d'accès</target> <target>Entrer le code d'accès</target>
@@ -2110,7 +1978,6 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter group name…" xml:space="preserve"> <trans-unit id="Enter group name…" xml:space="preserve">
<source>Enter group name…</source> <source>Enter group name…</source>
<target>Entrer un nom de groupe…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase…" xml:space="preserve"> <trans-unit id="Enter passphrase…" xml:space="preserve">
@@ -2128,11 +1995,6 @@ Cette opération ne peut être annulée !</target>
<target>Entrer un serveur manuellement</target> <target>Entrer un serveur manuellement</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Entrez le nom de l'appareil…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Entrez un message de bienvenue…</target> <target>Entrez un message de bienvenue…</target>
@@ -2145,7 +2007,6 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter your name…" xml:space="preserve"> <trans-unit id="Enter your name…" xml:space="preserve">
<source>Enter your name…</source> <source>Enter your name…</source>
<target>Entrez votre nom…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error" xml:space="preserve"> <trans-unit id="Error" xml:space="preserve">
@@ -2425,7 +2286,6 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Expand" xml:space="preserve"> <trans-unit id="Expand" xml:space="preserve">
<source>Expand</source> <source>Expand</source>
<target>Développer</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Export database" xml:space="preserve"> <trans-unit id="Export database" xml:space="preserve">
@@ -2458,11 +2318,6 @@ Cette opération ne peut être annulée !</target>
<target>Rapide et ne nécessitant pas d'attendre que l'expéditeur soit en ligne !</target> <target>Rapide et ne nécessitant pas d'attendre que l'expéditeur soit en ligne !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Connexion plus rapide et messages plus fiables.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Favoris</target> <target>Favoris</target>
@@ -2558,11 +2413,6 @@ Cette opération ne peut être annulée !</target>
<target>Pour la console</target> <target>Pour la console</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Bureau trouvé</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Interface en français</target> <target>Interface en français</target>
@@ -2585,7 +2435,6 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve"> <trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source> <source>Fully decentralized visible only to members.</source>
<target>Entièrement décentralisé visible que par ses membres.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Fully re-implemented - work in background!" xml:space="preserve"> <trans-unit id="Fully re-implemented - work in background!" xml:space="preserve">
@@ -2610,12 +2459,10 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists" xml:space="preserve"> <trans-unit id="Group already exists" xml:space="preserve">
<source>Group already exists</source> <source>Group already exists</source>
<target>Le groupe existe déjà</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists!" xml:space="preserve"> <trans-unit id="Group already exists!" xml:space="preserve">
<source>Group already exists!</source> <source>Group already exists!</source>
<target>Ce groupe existe déjà !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group display name" xml:space="preserve"> <trans-unit id="Group display name" xml:space="preserve">
@@ -2888,11 +2735,6 @@ Cette opération ne peut être annulée !</target>
<target>Incognito</target> <target>Incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Groupes incognito</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Mode Incognito</target> <target>Mode Incognito</target>
@@ -2923,11 +2765,6 @@ Cette opération ne peut être annulée !</target>
<target>Version de la base de données incompatible</target> <target>Version de la base de données incompatible</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Version incompatible</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Code d'accès erroné</target> <target>Code d'accès erroné</target>
@@ -2977,7 +2814,6 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Invalid name!" xml:space="preserve"> <trans-unit id="Invalid name!" xml:space="preserve">
<source>Invalid name!</source> <source>Invalid name!</source>
<target>Nom invalide !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invalid server address!" xml:space="preserve"> <trans-unit id="Invalid server address!" xml:space="preserve">
@@ -3073,7 +2909,6 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Join group?" xml:space="preserve"> <trans-unit id="Join group?" xml:space="preserve">
<source>Join group?</source> <source>Join group?</source>
<target>Rejoindre le groupe ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join incognito" xml:space="preserve"> <trans-unit id="Join incognito" xml:space="preserve">
@@ -3083,14 +2918,11 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Join with current profile" xml:space="preserve"> <trans-unit id="Join with current profile" xml:space="preserve">
<source>Join with current profile</source> <source>Join with current profile</source>
<target>Rejoindre avec le profil actuel</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve"> <trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve">
<source>Join your group? <source>Join your group?
This is your link for group %@!</source> This is your link for group %@!</source>
<target>Rejoindre votre groupe ?
Voici votre lien pour le groupe %@ !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Joining group" xml:space="preserve"> <trans-unit id="Joining group" xml:space="preserve">
@@ -3098,11 +2930,6 @@ Voici votre lien pour le groupe %@ !</target>
<target>Entrain de rejoindre le groupe</target> <target>Entrain de rejoindre le groupe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Garder l'application ouverte pour l'utiliser depuis le bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Conserver vos connexions</target> <target>Conserver vos connexions</target>
@@ -3163,21 +2990,6 @@ Voici votre lien pour le groupe %@ !</target>
<target>Limitations</target> <target>Limitations</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Liez vos applications mobiles et de bureau ! 🔗</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>Options de bureau lié</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Bureaux liés</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Message dynamique !</target> <target>Message dynamique !</target>
@@ -3330,7 +3142,6 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="Messages from %@ will be shown!" xml:space="preserve"> <trans-unit id="Messages from %@ will be shown!" xml:space="preserve">
<source>Messages from %@ will be shown!</source> <source>Messages from %@ will be shown!</source>
<target>Les messages de %@ seront affichés !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrating database archive…" xml:space="preserve"> <trans-unit id="Migrating database archive…" xml:space="preserve">
@@ -3528,11 +3339,6 @@ Voici votre lien pour le groupe %@ !</target>
<target>Aucun fichier reçu ou envoyé</target> <target>Aucun fichier reçu ou envoyé</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Non compatible !</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Notifications</target> <target>Notifications</target>
@@ -3689,7 +3495,6 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="Open group" xml:space="preserve"> <trans-unit id="Open group" xml:space="preserve">
<source>Open group</source> <source>Open group</source>
<target>Ouvrir le groupe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Open user profiles" xml:space="preserve"> <trans-unit id="Open user profiles" xml:space="preserve">
@@ -3752,11 +3557,6 @@ Voici votre lien pour le groupe %@ !</target>
<target>Coller</target> <target>Coller</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Coller l'adresse du bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Coller l'image</target> <target>Coller l'image</target>
@@ -3904,12 +3704,10 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Nom du profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile name:" xml:space="preserve"> <trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source> <source>Profile name:</source>
<target>Nom du profil :</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile password" xml:space="preserve"> <trans-unit id="Profile password" xml:space="preserve">
@@ -4159,12 +3957,10 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="Repeat connection request?" xml:space="preserve"> <trans-unit id="Repeat connection request?" xml:space="preserve">
<source>Repeat connection request?</source> <source>Repeat connection request?</source>
<target>Répéter la demande de connexion ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Repeat join request?" xml:space="preserve"> <trans-unit id="Repeat join request?" xml:space="preserve">
<source>Repeat join request?</source> <source>Repeat join request?</source>
<target>Répéter la requête d'adhésion ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Reply" xml:space="preserve"> <trans-unit id="Reply" xml:space="preserve">
@@ -4352,11 +4148,6 @@ Voici votre lien pour le groupe %@ !</target>
<target>Scanner un code QR</target> <target>Scanner un code QR</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Scanner le code QR du bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Scanner le code</target> <target>Scanner le code</target>
@@ -4577,11 +4368,6 @@ Voici votre lien pour le groupe %@ !</target>
<target>Serveurs</target> <target>Serveurs</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Code de session</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Définir 1 jour</target> <target>Définir 1 jour</target>
@@ -4894,7 +4680,6 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="Tap to Connect" xml:space="preserve"> <trans-unit id="Tap to Connect" xml:space="preserve">
<source>Tap to Connect</source> <source>Tap to Connect</source>
<target>Tapez pour vous connecter</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to activate profile." xml:space="preserve"> <trans-unit id="Tap to activate profile." xml:space="preserve">
@@ -5079,11 +4864,6 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
<target>Cette action ne peut être annulée - votre profil, vos contacts, vos messages et vos fichiers seront irréversiblement perdus.</target> <target>Cette action ne peut être annulée - votre profil, vos contacts, vos messages et vos fichiers seront irréversiblement perdus.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>Ce nom d'appareil</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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Ce groupe compte plus de %lld membres, les accusés de réception ne sont pas envoyés.</target> <target>Ce groupe compte plus de %lld membres, les accusés de réception ne sont pas envoyés.</target>
@@ -5096,12 +4876,10 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
</trans-unit> </trans-unit>
<trans-unit id="This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="This is your own SimpleX address!" xml:space="preserve">
<source>This is your own SimpleX address!</source> <source>This is your own SimpleX address!</source>
<target>Voici votre propre adresse SimpleX !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This is your own one-time link!" xml:space="preserve"> <trans-unit id="This is your own one-time link!" xml:space="preserve">
<source>This is your own one-time link!</source> <source>This is your own one-time link!</source>
<target>Voici votre propre lien unique !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve"> <trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
@@ -5119,11 +4897,6 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
<target>Pour se connecter, votre contact peut scanner le code QR ou utiliser le lien dans l'application.</target> <target>Pour se connecter, votre contact peut scanner le code QR ou utiliser le lien dans l'application.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>Pour cacher les messages indésirables.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Pour établir une nouvelle connexion</target> <target>Pour établir une nouvelle connexion</target>
@@ -5208,17 +4981,14 @@ Vous serez invité à confirmer l'authentification avant que cette fonction ne s
</trans-unit> </trans-unit>
<trans-unit id="Unblock" xml:space="preserve"> <trans-unit id="Unblock" xml:space="preserve">
<source>Unblock</source> <source>Unblock</source>
<target>Débloquer</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member" xml:space="preserve"> <trans-unit id="Unblock member" xml:space="preserve">
<source>Unblock member</source> <source>Unblock member</source>
<target>Débloquer ce membre</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member?" xml:space="preserve"> <trans-unit id="Unblock member?" xml:space="preserve">
<source>Unblock member?</source> <source>Unblock member?</source>
<target>Débloquer ce membre ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unexpected error: %@" xml:space="preserve"> <trans-unit id="Unexpected error: %@" xml:space="preserve">
@@ -5283,16 +5053,6 @@ To connect, please ask your contact to create another connection link and check
Pour vous connecter, veuillez demander à votre contact de créer un autre lien de connexion et vérifiez que vous disposez d'une connexion réseau stable.</target> Pour vous connecter, veuillez demander à votre contact de créer un autre lien de connexion et vérifiez que vous disposez d'une connexion réseau stable.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Délier</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Délier le bureau ?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Déverrouiller</target> <target>Déverrouiller</target>
@@ -5383,11 +5143,6 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
<target>Utiliser pour les nouvelles connexions</target> <target>Utiliser pour les nouvelles connexions</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Utilisation depuis le bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Utiliser l'interface d'appel d'iOS</target> <target>Utiliser l'interface d'appel d'iOS</target>
@@ -5418,26 +5173,11 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
<target>Utilisation des serveurs SimpleX Chat.</target> <target>Utilisation des serveurs SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Vérifier le code avec le bureau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Vérifier la connexion</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Vérifier la sécurité de la connexion</target> <target>Vérifier la sécurité de la connexion</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Vérifier les connexions</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Vérifier le code de sécurité</target> <target>Vérifier le code de sécurité</target>
@@ -5448,11 +5188,6 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
<target>Via navigateur</target> <target>Via navigateur</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Via un protocole sécurisé de cryptographie post-quantique.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Appel vidéo</target> <target>Appel vidéo</target>
@@ -5503,11 +5238,6 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
<target>Message vocal…</target> <target>Message vocal…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>En attente du bureau...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>En attente du fichier</target> <target>En attente du fichier</target>
@@ -5610,39 +5340,31 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve"> <trans-unit id="You are already connecting to %@." xml:space="preserve">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Vous êtes déjà en train de vous connecter à %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve"> <trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
<source>You are already connecting via this one-time link!</source> <source>You are already connecting via this one-time link!</source>
<target>Vous êtes déjà connecté(e) via ce lien unique !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already in group %@." xml:space="preserve"> <trans-unit id="You are already in group %@." xml:space="preserve">
<source>You are already in group %@.</source> <source>You are already in group %@.</source>
<target>Vous êtes déjà dans le groupe %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group %@." xml:space="preserve"> <trans-unit id="You are already joining the group %@." xml:space="preserve">
<source>You are already joining the group %@.</source> <source>You are already joining the group %@.</source>
<target>Vous êtes déjà en train de rejoindre le groupe %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link!" xml:space="preserve"> <trans-unit id="You are already joining the group via this link!" xml:space="preserve">
<source>You are already joining the group via this link!</source> <source>You are already joining the group via this link!</source>
<target>Vous êtes déjà en train de rejoindre le groupe via ce lien !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link." xml:space="preserve"> <trans-unit id="You are already joining the group via this link." xml:space="preserve">
<source>You are already joining the group via this link.</source> <source>You are already joining the group via this link.</source>
<target>Vous êtes déjà en train de rejoindre le groupe via ce lien.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve"> <trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve">
<source>You are already joining the group! <source>You are already joining the group!
Repeat join request?</source> Repeat join request?</source>
<target>Vous êtes déjà membre de ce groupe !
Répéter la demande d'adhésion ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve"> <trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve">
@@ -5742,14 +5464,11 @@ Répéter la demande d'adhésion ?</target>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection via this address!" xml:space="preserve"> <trans-unit id="You have already requested connection via this address!" xml:space="preserve">
<source>You have already requested connection via this address!</source> <source>You have already requested connection via this address!</source>
<target>Vous avez déjà demandé une connexion via cette adresse !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve"> <trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve">
<source>You have already requested connection! <source>You have already requested connection!
Repeat connection request?</source> Repeat connection request?</source>
<target>Vous avez déjà demandé une connexion !
Répéter la demande de connexion ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have no chats" xml:space="preserve"> <trans-unit id="You have no chats" xml:space="preserve">
@@ -5804,7 +5523,6 @@ Répéter la demande de connexion ?</target>
</trans-unit> </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"> <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> <source>You will be connected when group link host's device is online, please wait or check later!</source>
<target>Vous serez connecté(e) lorsque l'appareil de l'hôte du lien de groupe sera en ligne, veuillez patienter ou vérifier plus tard !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve"> <trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve">
@@ -5824,7 +5542,6 @@ Répéter la demande de connexion ?</target>
</trans-unit> </trans-unit>
<trans-unit id="You will connect to all group members." xml:space="preserve"> <trans-unit id="You will connect to all group members." xml:space="preserve">
<source>You will connect to all group members.</source> <source>You will connect to all group members.</source>
<target>Vous vous connecterez à tous les membres du groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve"> <trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve">
@@ -5948,7 +5665,6 @@ Vous pouvez modifier ce choix dans les Paramètres.</target>
</trans-unit> </trans-unit>
<trans-unit id="Your profile" xml:space="preserve"> <trans-unit id="Your profile" xml:space="preserve">
<source>Your profile</source> <source>Your profile</source>
<target>Votre profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your profile **%@** will be shared." xml:space="preserve"> <trans-unit id="Your profile **%@** will be shared." xml:space="preserve">
@@ -6045,7 +5761,6 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="and %lld other events" xml:space="preserve"> <trans-unit id="and %lld other events" xml:space="preserve">
<source>and %lld other events</source> <source>and %lld other events</source>
<target>et %lld autres événements</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="audio call (not e2e encrypted)" xml:space="preserve"> <trans-unit id="audio call (not e2e encrypted)" xml:space="preserve">
@@ -6053,11 +5768,6 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
<target>appel audio (sans chiffrement)</target> <target>appel audio (sans chiffrement)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>auteur</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>ID de message incorrecte</target> <target>ID de message incorrecte</target>
@@ -6070,7 +5780,6 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="blocked" xml:space="preserve"> <trans-unit id="blocked" xml:space="preserve">
<source>blocked</source> <source>blocked</source>
<target>blocké</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="bold" xml:space="preserve"> <trans-unit id="bold" xml:space="preserve">
@@ -6245,7 +5954,6 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="deleted contact" xml:space="preserve"> <trans-unit id="deleted contact" xml:space="preserve">
<source>deleted contact</source> <source>deleted contact</source>
<target>contact supprimé</target>
<note>rcv direct event chat item</note> <note>rcv direct event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="deleted group" xml:space="preserve"> <trans-unit id="deleted group" xml:space="preserve">
@@ -6640,11 +6348,6 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
<target>mise à jour du profil de groupe</target> <target>mise à jour du profil de groupe</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6782,11 +6485,6 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
<target>SimpleGroup not found!X utilise Face ID pour l'authentification locale</target> <target>SimpleGroup not found!X utilise Face ID pour l'authentification locale</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX utilise un accès au réseau local pour permettre l'utilisation du profil de chat de l'utilisateur via l'application de bureau au sein de ce même réseau.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX a besoin d'un accès au microphone pour les appels audio et vidéo ainsi que pour enregistrer des messages vocaux.</target> <target>SimpleX a besoin d'un accès au microphone pour les appels audio et vidéo ainsi que pour enregistrer des messages vocaux.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -89,7 +89,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@" xml:space="preserve"> <trans-unit id="%@ and %@" xml:space="preserve">
<source>%@ and %@</source> <source>%@ and %@</source>
<target>%@ e %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@ connected" xml:space="preserve"> <trans-unit id="%@ and %@ connected" xml:space="preserve">
@@ -104,7 +103,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ connected" xml:space="preserve"> <trans-unit id="%@ connected" xml:space="preserve">
<source>%@ connected</source> <source>%@ connected</source>
<target>%@ si è connesso/a</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -134,7 +132,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld members" xml:space="preserve"> <trans-unit id="%@, %@ and %lld members" xml:space="preserve">
<source>%@, %@ and %lld members</source> <source>%@, %@ and %lld members</source>
<target>%@, %@ e %lld membri</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve"> <trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
@@ -204,7 +201,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld group events" xml:space="preserve"> <trans-unit id="%lld group events" xml:space="preserve">
<source>%lld group events</source> <source>%lld group events</source>
<target>%lld eventi del gruppo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld members" xml:space="preserve"> <trans-unit id="%lld members" xml:space="preserve">
@@ -214,17 +210,14 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked" xml:space="preserve"> <trans-unit id="%lld messages blocked" xml:space="preserve">
<source>%lld messages blocked</source> <source>%lld messages blocked</source>
<target>%lld messaggi bloccati</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages marked deleted" xml:space="preserve"> <trans-unit id="%lld messages marked deleted" xml:space="preserve">
<source>%lld messages marked deleted</source> <source>%lld messages marked deleted</source>
<target>%lld messaggi contrassegnati eliminati</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages moderated by %@" xml:space="preserve"> <trans-unit id="%lld messages moderated by %@" xml:space="preserve">
<source>%lld messages moderated by %@</source> <source>%lld messages moderated by %@</source>
<target>%lld messaggi moderati da %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld minutes" xml:space="preserve"> <trans-unit id="%lld minutes" xml:space="preserve">
@@ -297,16 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(nuovo)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(questo dispositivo v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -395,15 +378,6 @@
- e altro ancora!</target> - e altro ancora!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- avvisa facoltativamente i contatti eliminati.
- nomi del profilo con spazi.
- e molto altro!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -420,7 +394,6 @@
</trans-unit> </trans-unit>
<trans-unit id="0 sec" xml:space="preserve"> <trans-unit id="0 sec" xml:space="preserve">
<source>0 sec</source> <source>0 sec</source>
<target>0 sec</target>
<note>time to disappear</note> <note>time to disappear</note>
</trans-unit> </trans-unit>
<trans-unit id="0s" xml:space="preserve"> <trans-unit id="0s" xml:space="preserve">
@@ -650,7 +623,6 @@
</trans-unit> </trans-unit>
<trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve"> <trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve">
<source>All new messages from %@ will be hidden!</source> <source>All new messages from %@ will be hidden!</source>
<target>Tutti i nuovi messaggi da %@ verrranno nascosti!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve"> <trans-unit id="All your contacts will remain connected." xml:space="preserve">
@@ -760,12 +732,10 @@
</trans-unit> </trans-unit>
<trans-unit id="Already connecting!" xml:space="preserve"> <trans-unit id="Already connecting!" xml:space="preserve">
<source>Already connecting!</source> <source>Already connecting!</source>
<target>Già in connessione!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Already joining the group!" xml:space="preserve"> <trans-unit id="Already joining the group!" xml:space="preserve">
<source>Already joining the group!</source> <source>Already joining the group!</source>
<target>Già in ingresso nel gruppo!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Always use relay" xml:space="preserve"> <trans-unit id="Always use relay" xml:space="preserve">
@@ -888,11 +858,6 @@
<target>Indietro</target> <target>Indietro</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Indirizzo desktop errato</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>ID del messaggio errato</target> <target>ID del messaggio errato</target>
@@ -903,11 +868,6 @@
<target>Hash del messaggio errato</target> <target>Hash del messaggio errato</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Gruppi migliorati</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Messaggi migliorati</target> <target>Messaggi migliorati</target>
@@ -915,22 +875,14 @@
</trans-unit> </trans-unit>
<trans-unit id="Block" xml:space="preserve"> <trans-unit id="Block" xml:space="preserve">
<source>Block</source> <source>Block</source>
<target>Blocca</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Blocca i membri dei gruppi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<target>Blocca membro</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member?" xml:space="preserve"> <trans-unit id="Block member?" xml:space="preserve">
<source>Block member?</source> <source>Block member?</source>
<target>Bloccare il membro?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve"> <trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1194,42 +1146,27 @@
<target>Connetti</target> <target>Connetti</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Connetti in incognito</target> <target>Connetti in incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Connetti al desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<target>Connettersi a te stesso?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own SimpleX address!</source> This is your own SimpleX address!</source>
<target>Connettersi a te stesso?
Questo è il tuo indirizzo SimpleX!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own one-time link!</source> This is your own one-time link!</source>
<target>Connettersi a te stesso?
Questo è il tuo link una tantum!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via contact address" xml:space="preserve"> <trans-unit id="Connect via contact address" xml:space="preserve">
<source>Connect via contact address</source> <source>Connect via contact address</source>
<target>Connettere via indirizzo del contatto</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via link" xml:space="preserve"> <trans-unit id="Connect via link" xml:space="preserve">
@@ -1249,17 +1186,6 @@ Questo è il tuo link una tantum!</target>
</trans-unit> </trans-unit>
<trans-unit id="Connect with %@" xml:space="preserve"> <trans-unit id="Connect with %@" xml:space="preserve">
<source>Connect with %@</source> <source>Connect with %@</source>
<target>Connettersi con %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Desktop connesso</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Connesso al desktop</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
@@ -1272,11 +1198,6 @@ Questo è il tuo link una tantum!</target>
<target>Connessione al server… (errore: %@)</target> <target>Connessione al server… (errore: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Connessione al desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Connessione</target> <target>Connessione</target>
@@ -1297,11 +1218,6 @@ Questo è il tuo link una tantum!</target>
<target>Richiesta di connessione inviata!</target> <target>Richiesta di connessione inviata!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Connessione terminata</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Connessione scaduta</target> <target>Connessione scaduta</target>
@@ -1369,7 +1285,6 @@ Questo è il tuo link una tantum!</target>
</trans-unit> </trans-unit>
<trans-unit id="Correct name to %@?" xml:space="preserve"> <trans-unit id="Correct name to %@?" xml:space="preserve">
<source>Correct name to %@?</source> <source>Correct name to %@?</source>
<target>Correggere il nome a %@?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create" xml:space="preserve"> <trans-unit id="Create" xml:space="preserve">
@@ -1382,11 +1297,6 @@ Questo è il tuo link una tantum!</target>
<target>Crea indirizzo SimpleX</target> <target>Crea indirizzo SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Crea un gruppo usando un profilo casuale.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Crea un indirizzo per consentire alle persone di connettersi con te.</target> <target>Crea un indirizzo per consentire alle persone di connettersi con te.</target>
@@ -1399,7 +1309,6 @@ Questo è il tuo link una tantum!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create group" xml:space="preserve"> <trans-unit id="Create group" xml:space="preserve">
<source>Create group</source> <source>Create group</source>
<target>Crea gruppo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create group link" xml:space="preserve"> <trans-unit id="Create group link" xml:space="preserve">
@@ -1424,7 +1333,6 @@ Questo è il tuo link una tantum!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create profile" xml:space="preserve"> <trans-unit id="Create profile" xml:space="preserve">
<source>Create profile</source> <source>Create profile</source>
<target>Crea profilo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create queue" xml:space="preserve"> <trans-unit id="Create queue" xml:space="preserve">
@@ -1587,7 +1495,6 @@ Questo è il tuo link una tantum!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete %lld messages?" xml:space="preserve"> <trans-unit id="Delete %lld messages?" xml:space="preserve">
<source>Delete %lld messages?</source> <source>Delete %lld messages?</source>
<target>Eliminare %lld messaggi?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete Contact" xml:space="preserve"> <trans-unit id="Delete Contact" xml:space="preserve">
@@ -1617,7 +1524,6 @@ Questo è il tuo link una tantum!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete and notify contact" xml:space="preserve"> <trans-unit id="Delete and notify contact" xml:space="preserve">
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<target>Elimina e avvisa il contatto</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete archive" xml:space="preserve"> <trans-unit id="Delete archive" xml:space="preserve">
@@ -1653,8 +1559,6 @@ Questo è il tuo link una tantum!</target>
<trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve"> <trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve">
<source>Delete contact? <source>Delete contact?
This cannot be undone!</source> This cannot be undone!</source>
<target>Eliminare il contatto?
Non è reversibile!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete database" xml:space="preserve"> <trans-unit id="Delete database" xml:space="preserve">
@@ -1797,21 +1701,6 @@ Non è reversibile!</target>
<target>Descrizione</target> <target>Descrizione</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Indirizzo desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>La versione dell'app desktop %@ non è compatibile con questa app.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Dispositivi desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Sviluppa</target> <target>Sviluppa</target>
@@ -1902,20 +1791,11 @@ Non è reversibile!</target>
<target>Disconnetti</target> <target>Disconnetti</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Disconnettere il desktop?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Scopri ed unisciti ai gruppi</target> <target>Scopri ed unisciti ai gruppi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>NON usare SimpleX per chiamate di emergenza.</target> <target>NON usare SimpleX per chiamate di emergenza.</target>
@@ -2086,16 +1966,6 @@ Non è reversibile!</target>
<target>Messaggio crittografato: errore imprevisto</target> <target>Messaggio crittografato: errore imprevisto</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Errore di rinegoziazione crittografia</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>Rinegoziazione crittografia fallita.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Inserisci il codice di accesso</target> <target>Inserisci il codice di accesso</target>
@@ -2108,7 +1978,6 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter group name…" xml:space="preserve"> <trans-unit id="Enter group name…" xml:space="preserve">
<source>Enter group name…</source> <source>Enter group name…</source>
<target>Inserisci il nome del gruppo…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase…" xml:space="preserve"> <trans-unit id="Enter passphrase…" xml:space="preserve">
@@ -2126,11 +1995,6 @@ Non è reversibile!</target>
<target>Inserisci il server a mano</target> <target>Inserisci il server a mano</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Inserisci il nome di questo dispositivo…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Inserisci il messaggio di benvenuto…</target> <target>Inserisci il messaggio di benvenuto…</target>
@@ -2143,7 +2007,6 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter your name…" xml:space="preserve"> <trans-unit id="Enter your name…" xml:space="preserve">
<source>Enter your name…</source> <source>Enter your name…</source>
<target>Inserisci il tuo nome…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error" xml:space="preserve"> <trans-unit id="Error" xml:space="preserve">
@@ -2423,7 +2286,6 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Expand" xml:space="preserve"> <trans-unit id="Expand" xml:space="preserve">
<source>Expand</source> <source>Expand</source>
<target>Espandi</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Export database" xml:space="preserve"> <trans-unit id="Export database" xml:space="preserve">
@@ -2456,11 +2318,6 @@ Non è reversibile!</target>
<target>Veloce e senza aspettare che il mittente sia in linea!</target> <target>Veloce e senza aspettare che il mittente sia in linea!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Ingresso più veloce e messaggi più affidabili.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Preferito</target> <target>Preferito</target>
@@ -2556,10 +2413,6 @@ Non è reversibile!</target>
<target>Per console</target> <target>Per console</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Interfaccia francese</target> <target>Interfaccia francese</target>
@@ -2582,7 +2435,6 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve"> <trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source> <source>Fully decentralized visible only to members.</source>
<target>Completamente decentralizzato: visibile solo ai membri.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Fully re-implemented - work in background!" xml:space="preserve"> <trans-unit id="Fully re-implemented - work in background!" xml:space="preserve">
@@ -2607,12 +2459,10 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists" xml:space="preserve"> <trans-unit id="Group already exists" xml:space="preserve">
<source>Group already exists</source> <source>Group already exists</source>
<target>Il gruppo esiste già</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists!" xml:space="preserve"> <trans-unit id="Group already exists!" xml:space="preserve">
<source>Group already exists!</source> <source>Group already exists!</source>
<target>Il gruppo esiste già!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group display name" xml:space="preserve"> <trans-unit id="Group display name" xml:space="preserve">
@@ -2885,11 +2735,6 @@ Non è reversibile!</target>
<target>Incognito</target> <target>Incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Gruppi in incognito</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Modalità incognito</target> <target>Modalità incognito</target>
@@ -2920,11 +2765,6 @@ Non è reversibile!</target>
<target>Versione del database incompatibile</target> <target>Versione del database incompatibile</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Versione incompatibile</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Codice di accesso errato</target> <target>Codice di accesso errato</target>
@@ -2974,7 +2814,6 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Invalid name!" xml:space="preserve"> <trans-unit id="Invalid name!" xml:space="preserve">
<source>Invalid name!</source> <source>Invalid name!</source>
<target>Nome non valido!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invalid server address!" xml:space="preserve"> <trans-unit id="Invalid server address!" xml:space="preserve">
@@ -3070,7 +2909,6 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join group?" xml:space="preserve"> <trans-unit id="Join group?" xml:space="preserve">
<source>Join group?</source> <source>Join group?</source>
<target>Entrare nel gruppo?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join incognito" xml:space="preserve"> <trans-unit id="Join incognito" xml:space="preserve">
@@ -3080,14 +2918,11 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join with current profile" xml:space="preserve"> <trans-unit id="Join with current profile" xml:space="preserve">
<source>Join with current profile</source> <source>Join with current profile</source>
<target>Entra con il profilo attuale</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve"> <trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve">
<source>Join your group? <source>Join your group?
This is your link for group %@!</source> This is your link for group %@!</source>
<target>Entrare nel tuo gruppo?
Questo è il tuo link per il gruppo %@!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Joining group" xml:space="preserve"> <trans-unit id="Joining group" xml:space="preserve">
@@ -3095,11 +2930,6 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Ingresso nel gruppo</target> <target>Ingresso nel gruppo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Tieni aperta l'app per usarla dal desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Mantieni le tue connessioni</target> <target>Mantieni le tue connessioni</target>
@@ -3160,21 +2990,6 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Limitazioni</target> <target>Limitazioni</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Collega le app mobile e desktop! 🔗</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>Opzioni del desktop collegato</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Desktop collegati</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Messaggio in diretta!</target> <target>Messaggio in diretta!</target>
@@ -3327,7 +3142,6 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Messages from %@ will be shown!" xml:space="preserve"> <trans-unit id="Messages from %@ will be shown!" xml:space="preserve">
<source>Messages from %@ will be shown!</source> <source>Messages from %@ will be shown!</source>
<target>I messaggi da %@ verranno mostrati!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrating database archive…" xml:space="preserve"> <trans-unit id="Migrating database archive…" xml:space="preserve">
@@ -3525,10 +3339,6 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Nessun file ricevuto o inviato</target> <target>Nessun file ricevuto o inviato</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Notifiche</target> <target>Notifiche</target>
@@ -3685,7 +3495,6 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Open group" xml:space="preserve"> <trans-unit id="Open group" xml:space="preserve">
<source>Open group</source> <source>Open group</source>
<target>Apri gruppo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Open user profiles" xml:space="preserve"> <trans-unit id="Open user profiles" xml:space="preserve">
@@ -3748,11 +3557,6 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Incolla</target> <target>Incolla</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Incolla l'indirizzo desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Incolla immagine</target> <target>Incolla immagine</target>
@@ -3900,12 +3704,10 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Nome del profilo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile name:" xml:space="preserve"> <trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source> <source>Profile name:</source>
<target>Nome del profilo:</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile password" xml:space="preserve"> <trans-unit id="Profile password" xml:space="preserve">
@@ -4155,12 +3957,10 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Repeat connection request?" xml:space="preserve"> <trans-unit id="Repeat connection request?" xml:space="preserve">
<source>Repeat connection request?</source> <source>Repeat connection request?</source>
<target>Ripetere la richiesta di connessione?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Repeat join request?" xml:space="preserve"> <trans-unit id="Repeat join request?" xml:space="preserve">
<source>Repeat join request?</source> <source>Repeat join request?</source>
<target>Ripetere la richiesta di ingresso?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Reply" xml:space="preserve"> <trans-unit id="Reply" xml:space="preserve">
@@ -4348,11 +4148,6 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Scansiona codice QR</target> <target>Scansiona codice QR</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Scansiona codice QR dal desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Scansiona codice</target> <target>Scansiona codice</target>
@@ -4573,11 +4368,6 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Server</target> <target>Server</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Codice di sessione</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Imposta 1 giorno</target> <target>Imposta 1 giorno</target>
@@ -4890,7 +4680,6 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Tap to Connect" xml:space="preserve"> <trans-unit id="Tap to Connect" xml:space="preserve">
<source>Tap to Connect</source> <source>Tap to Connect</source>
<target>Tocca per connettere</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to activate profile." xml:space="preserve"> <trans-unit id="Tap to activate profile." xml:space="preserve">
@@ -5075,11 +4864,6 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
<target>Questa azione non può essere annullata: il tuo profilo, i contatti, i messaggi e i file andranno persi in modo irreversibile.</target> <target>Questa azione non può essere annullata: il tuo profilo, i contatti, i messaggi e i file andranno persi in modo irreversibile.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>Il nome di questo dispositivo</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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Questo gruppo ha più di %lld membri, le ricevute di consegna non vengono inviate.</target> <target>Questo gruppo ha più di %lld membri, le ricevute di consegna non vengono inviate.</target>
@@ -5092,12 +4876,10 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
</trans-unit> </trans-unit>
<trans-unit id="This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="This is your own SimpleX address!" xml:space="preserve">
<source>This is your own SimpleX address!</source> <source>This is your own SimpleX address!</source>
<target>Questo è il tuo indirizzo SimpleX!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This is your own one-time link!" xml:space="preserve"> <trans-unit id="This is your own one-time link!" xml:space="preserve">
<source>This is your own one-time link!</source> <source>This is your own one-time link!</source>
<target>Questo è il tuo link una tantum!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve"> <trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
@@ -5115,11 +4897,6 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
<target>Per connettervi, il tuo contatto può scansionare il codice QR o usare il link nell'app.</target> <target>Per connettervi, il tuo contatto può scansionare il codice QR o usare il link nell'app.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>Per nascondere messaggi indesiderati.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Per creare una nuova connessione</target> <target>Per creare una nuova connessione</target>
@@ -5204,17 +4981,14 @@ Ti verrà chiesto di completare l'autenticazione prima di attivare questa funzio
</trans-unit> </trans-unit>
<trans-unit id="Unblock" xml:space="preserve"> <trans-unit id="Unblock" xml:space="preserve">
<source>Unblock</source> <source>Unblock</source>
<target>Sblocca</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member" xml:space="preserve"> <trans-unit id="Unblock member" xml:space="preserve">
<source>Unblock member</source> <source>Unblock member</source>
<target>Sblocca membro</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member?" xml:space="preserve"> <trans-unit id="Unblock member?" xml:space="preserve">
<source>Unblock member?</source> <source>Unblock member?</source>
<target>Sbloccare il membro?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unexpected error: %@" xml:space="preserve"> <trans-unit id="Unexpected error: %@" xml:space="preserve">
@@ -5279,16 +5053,6 @@ To connect, please ask your contact to create another connection link and check
Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e controlla di avere una connessione di rete stabile.</target> Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e controlla di avere una connessione di rete stabile.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Scollega</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Scollegare il desktop?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Sblocca</target> <target>Sblocca</target>
@@ -5379,11 +5143,6 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
<target>Usa per connessioni nuove</target> <target>Usa per connessioni nuove</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Usa dal desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Usa interfaccia di chiamata iOS</target> <target>Usa interfaccia di chiamata iOS</target>
@@ -5414,26 +5173,11 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
<target>Utilizzo dei server SimpleX Chat.</target> <target>Utilizzo dei server SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Verifica il codice con il desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Verifica la connessione</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Verifica la sicurezza della connessione</target> <target>Verifica la sicurezza della connessione</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Verifica le connessioni</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Verifica codice di sicurezza</target> <target>Verifica codice di sicurezza</target>
@@ -5444,11 +5188,6 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
<target>Via browser</target> <target>Via browser</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Tramite protocollo sicuro resistente alla quantistica.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Videochiamata</target> <target>Videochiamata</target>
@@ -5499,10 +5238,6 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
<target>Messaggio vocale…</target> <target>Messaggio vocale…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>In attesa del file</target> <target>In attesa del file</target>
@@ -5605,39 +5340,31 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve"> <trans-unit id="You are already connecting to %@." xml:space="preserve">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Ti stai già connettendo a %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve"> <trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
<source>You are already connecting via this one-time link!</source> <source>You are already connecting via this one-time link!</source>
<target>Ti stai già connettendo tramite questo link una tantum!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already in group %@." xml:space="preserve"> <trans-unit id="You are already in group %@." xml:space="preserve">
<source>You are already in group %@.</source> <source>You are already in group %@.</source>
<target>Sei già nel gruppo %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group %@." xml:space="preserve"> <trans-unit id="You are already joining the group %@." xml:space="preserve">
<source>You are already joining the group %@.</source> <source>You are already joining the group %@.</source>
<target>Stai già entrando nel gruppo %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link!" xml:space="preserve"> <trans-unit id="You are already joining the group via this link!" xml:space="preserve">
<source>You are already joining the group via this link!</source> <source>You are already joining the group via this link!</source>
<target>Stai già entrando nel gruppo tramite questo link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link." xml:space="preserve"> <trans-unit id="You are already joining the group via this link." xml:space="preserve">
<source>You are already joining the group via this link.</source> <source>You are already joining the group via this link.</source>
<target>Stai già entrando nel gruppo tramite questo link.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve"> <trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve">
<source>You are already joining the group! <source>You are already joining the group!
Repeat join request?</source> Repeat join request?</source>
<target>Stai già entrando nel gruppo!
Ripetere la richiesta di ingresso?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve"> <trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve">
@@ -5737,14 +5464,11 @@ Ripetere la richiesta di ingresso?</target>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection via this address!" xml:space="preserve"> <trans-unit id="You have already requested connection via this address!" xml:space="preserve">
<source>You have already requested connection via this address!</source> <source>You have already requested connection via this address!</source>
<target>Hai già richiesto la connessione tramite questo indirizzo!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve"> <trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve">
<source>You have already requested connection! <source>You have already requested connection!
Repeat connection request?</source> Repeat connection request?</source>
<target>Hai già richiesto la connessione!
Ripetere la richiesta di connessione?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have no chats" xml:space="preserve"> <trans-unit id="You have no chats" xml:space="preserve">
@@ -5799,7 +5523,6 @@ Ripetere la richiesta di connessione?</target>
</trans-unit> </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"> <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> <source>You will be connected when group link host's device is online, please wait or check later!</source>
<target>Verrai connesso/a quando il dispositivo dell'host del gruppo sarà in linea, attendi o controlla più tardi!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve"> <trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve">
@@ -5819,7 +5542,6 @@ Ripetere la richiesta di connessione?</target>
</trans-unit> </trans-unit>
<trans-unit id="You will connect to all group members." xml:space="preserve"> <trans-unit id="You will connect to all group members." xml:space="preserve">
<source>You will connect to all group members.</source> <source>You will connect to all group members.</source>
<target>Ti connetterai a tutti i membri del gruppo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve"> <trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve">
@@ -5943,7 +5665,6 @@ Puoi modificarlo nelle impostazioni.</target>
</trans-unit> </trans-unit>
<trans-unit id="Your profile" xml:space="preserve"> <trans-unit id="Your profile" xml:space="preserve">
<source>Your profile</source> <source>Your profile</source>
<target>Il tuo profilo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your profile **%@** will be shared." xml:space="preserve"> <trans-unit id="Your profile **%@** will be shared." xml:space="preserve">
@@ -6040,7 +5761,6 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="and %lld other events" xml:space="preserve"> <trans-unit id="and %lld other events" xml:space="preserve">
<source>and %lld other events</source> <source>and %lld other events</source>
<target>e altri %lld eventi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="audio call (not e2e encrypted)" xml:space="preserve"> <trans-unit id="audio call (not e2e encrypted)" xml:space="preserve">
@@ -6048,10 +5768,6 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
<target>chiamata audio (non crittografata e2e)</target> <target>chiamata audio (non crittografata e2e)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>ID messaggio errato</target> <target>ID messaggio errato</target>
@@ -6064,7 +5780,6 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="blocked" xml:space="preserve"> <trans-unit id="blocked" xml:space="preserve">
<source>blocked</source> <source>blocked</source>
<target>bloccato</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="bold" xml:space="preserve"> <trans-unit id="bold" xml:space="preserve">
@@ -6099,7 +5814,7 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="changed role of %@ to %@" xml:space="preserve"> <trans-unit id="changed role of %@ to %@" xml:space="preserve">
<source>changed role of %1$@ to %2$@</source> <source>changed role of %1$@ to %2$@</source>
<target>ha cambiato il ruolo di %1$@ in %2$@</target> <target>cambiato il ruolo di %1$@ in %2$@</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="changed your role to %@" xml:space="preserve"> <trans-unit id="changed your role to %@" xml:space="preserve">
@@ -6239,7 +5954,6 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="deleted contact" xml:space="preserve"> <trans-unit id="deleted contact" xml:space="preserve">
<source>deleted contact</source> <source>deleted contact</source>
<target>contatto eliminato</target>
<note>rcv direct event chat item</note> <note>rcv direct event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="deleted group" xml:space="preserve"> <trans-unit id="deleted group" xml:space="preserve">
@@ -6634,11 +6348,6 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
<target>profilo del gruppo aggiornato</target> <target>profilo del gruppo aggiornato</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6776,11 +6485,6 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
<target>SimpleX usa Face ID per l'autenticazione locale</target> <target>SimpleX usa Face ID per l'autenticazione locale</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX usa l'accesso alla rete locale per consentire di usare il profilo di chat tramite l'app desktop sulla stessa rete.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX ha bisogno dell'accesso al microfono per le chiamate audio e video e per registrare messaggi vocali.</target> <target>SimpleX ha bisogno dell'accesso al microfono per le chiamate audio e video e per registrare messaggi vocali.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -290,14 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -383,12 +375,6 @@
- などなど!</target> - などなど!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -869,10 +855,6 @@
<target>戻る</target> <target>戻る</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>メッセージ ID が正しくありません</target> <target>メッセージ ID が正しくありません</target>
@@ -883,10 +865,6 @@
<target>メッセージのハッシュ値問題</target> <target>メッセージのハッシュ値問題</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>より良いメッセージ</target> <target>より良いメッセージ</target>
@@ -896,10 +874,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1169,19 +1143,11 @@
<target>接続</target> <target>接続</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>シークレットモードで接続</target> <target>シークレットモードで接続</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1219,14 +1185,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>サーバーに接続中…</target> <target>サーバーに接続中…</target>
@@ -1237,10 +1195,6 @@ This is your own one-time link!</source>
<target>サーバーに接続中… (エラー: %@)</target> <target>サーバーに接続中… (エラー: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>接続</target> <target>接続</target>
@@ -1261,10 +1215,6 @@ This is your own one-time link!</source>
<target>接続リクエストを送信しました!</target> <target>接続リクエストを送信しました!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>接続タイムアウト</target> <target>接続タイムアウト</target>
@@ -1344,10 +1294,6 @@ This is your own one-time link!</source>
<target>SimpleXアドレスの作成</target> <target>SimpleXアドレスの作成</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>人とつながるためのアドレスを作成する。</target> <target>人とつながるためのアドレスを作成する。</target>
@@ -1752,18 +1698,6 @@ This cannot be undone!</source>
<target>説明</target> <target>説明</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>開発</target> <target>開発</target>
@@ -1854,19 +1788,11 @@ This cannot be undone!</source>
<target>切断</target> <target>切断</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>グループを見つけて参加する</target> <target>グループを見つけて参加する</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>緊急通報にSimpleXを使用しないでください。</target> <target>緊急通報にSimpleXを使用しないでください。</target>
@@ -2037,14 +1963,6 @@ This cannot be undone!</source>
<target>暗号化されたメッセージ : 予期しないエラー</target> <target>暗号化されたメッセージ : 予期しないエラー</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>パスコードを入力</target> <target>パスコードを入力</target>
@@ -2074,10 +1992,6 @@ This cannot be undone!</source>
<target>サーバを手動で入力</target> <target>サーバを手動で入力</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>ウェルカムメッセージを入力してください…</target> <target>ウェルカムメッセージを入力してください…</target>
@@ -2399,10 +2313,6 @@ This cannot be undone!</source>
<target>送信者がオンラインになるまでの待ち時間がなく、速い!</target> <target>送信者がオンラインになるまでの待ち時間がなく、速い!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>お気に入り</target> <target>お気に入り</target>
@@ -2498,10 +2408,6 @@ This cannot be undone!</source>
<target>コンソール</target> <target>コンソール</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>フランス語UI</target> <target>フランス語UI</target>
@@ -2824,10 +2730,6 @@ This cannot be undone!</source>
<target>シークレットモード</target> <target>シークレットモード</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>シークレットモード</target> <target>シークレットモード</target>
@@ -2858,10 +2760,6 @@ This cannot be undone!</source>
<target>データベースのバージョンと互換性がない</target> <target>データベースのバージョンと互換性がない</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>パスコードが正しくありません</target> <target>パスコードが正しくありません</target>
@@ -3027,10 +2925,6 @@ This is your link for group %@!</source>
<target>グループに参加</target> <target>グループに参加</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>接続を維持</target> <target>接続を維持</target>
@@ -3091,18 +2985,6 @@ This is your link for group %@!</source>
<target>制限事項</target> <target>制限事項</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>ライブメッセージ!</target> <target>ライブメッセージ!</target>
@@ -3451,10 +3333,6 @@ This is your link for group %@!</source>
<target>送受信済みのファイルがありません</target> <target>送受信済みのファイルがありません</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>通知</target> <target>通知</target>
@@ -3673,10 +3551,6 @@ This is your link for group %@!</source>
<target>貼り付け</target> <target>貼り付け</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>画像の貼り付け</target> <target>画像の貼り付け</target>
@@ -4267,10 +4141,6 @@ This is your link for group %@!</source>
<target>QRコードを読み込む</target> <target>QRコードを読み込む</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>コードを読み込む</target> <target>コードを読み込む</target>
@@ -4483,10 +4353,6 @@ This is your link for group %@!</source>
<target>サーバ</target> <target>サーバ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>1日に設定</target> <target>1日に設定</target>
@@ -4983,10 +4849,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>あなたのプロフィール、連絡先、メッセージ、ファイルが完全削除されます (※元に戻せません※)。</target> <target>あなたのプロフィール、連絡先、メッセージ、ファイルが完全削除されます (※元に戻せません※)。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -5019,10 +4881,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>接続するにはQRコードを読み込むか、アプリ内のリンクを使用する必要があります。</target> <target>接続するにはQRコードを読み込むか、アプリ内のリンクを使用する必要があります。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>新規に接続する場合</target> <target>新規に接続する場合</target>
@@ -5178,14 +5036,6 @@ To connect, please ask your contact to create another connection link and check
接続するには、連絡先に別の接続リンクを作成するよう依頼し、ネットワーク接続が安定していることを確認してください。</target> 接続するには、連絡先に別の接続リンクを作成するよう依頼し、ネットワーク接続が安定していることを確認してください。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>ロック解除</target> <target>ロック解除</target>
@@ -5276,10 +5126,6 @@ To connect, please ask your contact to create another connection link and check
<target>新しい接続に使う</target> <target>新しい接続に使う</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>iOS通話インターフェースを使用する</target> <target>iOS通話インターフェースを使用する</target>
@@ -5310,23 +5156,11 @@ To connect, please ask your contact to create another connection link and check
<target>SimpleX チャット サーバーを使用する。</target> <target>SimpleX チャット サーバーを使用する。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>接続のセキュリティを確認</target> <target>接続のセキュリティを確認</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>セキュリティコードを確認</target> <target>セキュリティコードを確認</target>
@@ -5337,10 +5171,6 @@ To connect, please ask your contact to create another connection link and check
<target>ブラウザ経由</target> <target>ブラウザ経由</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>ビデオ通話</target> <target>ビデオ通話</target>
@@ -5391,10 +5221,6 @@ To connect, please ask your contact to create another connection link and check
<target>音声メッセージ…</target> <target>音声メッセージ…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>ファイル待ち</target> <target>ファイル待ち</target>
@@ -5925,10 +5751,6 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
<target>音声通話 (エンドツーエンド暗号化なし)</target> <target>音声通話 (エンドツーエンド暗号化なし)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>メッセージ ID が正しくありません</target> <target>メッセージ ID が正しくありません</target>
@@ -6507,10 +6329,6 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
<target>グループプロフィールを更新しました</target> <target>グループプロフィールを更新しました</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6648,10 +6466,6 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
<target>SimpleX はローカル認証に Face ID を使用します</target> <target>SimpleX はローカル認証に Face ID を使用します</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX では、音声通話やビデオ通話、および音声メッセージの録音のためにマイクへのアクセスが必要です。</target> <target>SimpleX では、音声通話やビデオ通話、および音声メッセージの録音のためにマイクへのアクセスが必要です。</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -89,7 +89,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@" xml:space="preserve"> <trans-unit id="%@ and %@" xml:space="preserve">
<source>%@ and %@</source> <source>%@ and %@</source>
<target>%@ en %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@ connected" xml:space="preserve"> <trans-unit id="%@ and %@ connected" xml:space="preserve">
@@ -104,7 +103,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ connected" xml:space="preserve"> <trans-unit id="%@ connected" xml:space="preserve">
<source>%@ connected</source> <source>%@ connected</source>
<target>%@ verbonden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -134,7 +132,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld members" xml:space="preserve"> <trans-unit id="%@, %@ and %lld members" xml:space="preserve">
<source>%@, %@ and %lld members</source> <source>%@, %@ and %lld members</source>
<target>%@, %@ en %lld leden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve"> <trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
@@ -204,7 +201,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld group events" xml:space="preserve"> <trans-unit id="%lld group events" xml:space="preserve">
<source>%lld group events</source> <source>%lld group events</source>
<target>%lld groep gebeurtenissen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld members" xml:space="preserve"> <trans-unit id="%lld members" xml:space="preserve">
@@ -214,17 +210,14 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked" xml:space="preserve"> <trans-unit id="%lld messages blocked" xml:space="preserve">
<source>%lld messages blocked</source> <source>%lld messages blocked</source>
<target>%lld berichten geblokkeerd</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages marked deleted" xml:space="preserve"> <trans-unit id="%lld messages marked deleted" xml:space="preserve">
<source>%lld messages marked deleted</source> <source>%lld messages marked deleted</source>
<target>%lld berichten gemarkeerd als verwijderd</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages moderated by %@" xml:space="preserve"> <trans-unit id="%lld messages moderated by %@" xml:space="preserve">
<source>%lld messages moderated by %@</source> <source>%lld messages moderated by %@</source>
<target>%lld berichten gemodereerd door %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld minutes" xml:space="preserve"> <trans-unit id="%lld minutes" xml:space="preserve">
@@ -297,16 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(nieuw)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(dit apparaat v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -392,15 +375,6 @@
- and more!</source> - and more!</source>
<target>- stabielere berichtbezorging. <target>- stabielere berichtbezorging.
- een beetje betere groepen. - een beetje betere groepen.
- en meer!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- optioneel verwijderde contacten op de hoogte stellen.
- profielnamen met spaties.
- en meer!</target> - en meer!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -420,7 +394,6 @@
</trans-unit> </trans-unit>
<trans-unit id="0 sec" xml:space="preserve"> <trans-unit id="0 sec" xml:space="preserve">
<source>0 sec</source> <source>0 sec</source>
<target>0 sec</target>
<note>time to disappear</note> <note>time to disappear</note>
</trans-unit> </trans-unit>
<trans-unit id="0s" xml:space="preserve"> <trans-unit id="0s" xml:space="preserve">
@@ -650,7 +623,6 @@
</trans-unit> </trans-unit>
<trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve"> <trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve">
<source>All new messages from %@ will be hidden!</source> <source>All new messages from %@ will be hidden!</source>
<target>Alle nieuwe berichten van %@ worden verborgen!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve"> <trans-unit id="All your contacts will remain connected." xml:space="preserve">
@@ -760,12 +732,10 @@
</trans-unit> </trans-unit>
<trans-unit id="Already connecting!" xml:space="preserve"> <trans-unit id="Already connecting!" xml:space="preserve">
<source>Already connecting!</source> <source>Already connecting!</source>
<target>Al bezig met verbinden!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Already joining the group!" xml:space="preserve"> <trans-unit id="Already joining the group!" xml:space="preserve">
<source>Already joining the group!</source> <source>Already joining the group!</source>
<target>Al lid van de groep!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Always use relay" xml:space="preserve"> <trans-unit id="Always use relay" xml:space="preserve">
@@ -888,11 +858,6 @@
<target>Terug</target> <target>Terug</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Onjuist desktopadres</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Onjuiste bericht-ID</target> <target>Onjuiste bericht-ID</target>
@@ -903,11 +868,6 @@
<target>Onjuiste bericht hash</target> <target>Onjuiste bericht hash</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Betere groepen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Betere berichten</target> <target>Betere berichten</target>
@@ -915,22 +875,14 @@
</trans-unit> </trans-unit>
<trans-unit id="Block" xml:space="preserve"> <trans-unit id="Block" xml:space="preserve">
<source>Block</source> <source>Block</source>
<target>Blokkeren</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Groepsleden blokkeren</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<target>Lid blokkeren</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member?" xml:space="preserve"> <trans-unit id="Block member?" xml:space="preserve">
<source>Block member?</source> <source>Block member?</source>
<target>Lid blokkeren?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve"> <trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1025,7 +977,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Change member role?" xml:space="preserve"> <trans-unit id="Change member role?" xml:space="preserve">
<source>Change member role?</source> <source>Change member role?</source>
<target>Rol van lid wijzigen?</target> <target>Rol van gebruiker wijzigen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change passcode" xml:space="preserve"> <trans-unit id="Change passcode" xml:space="preserve">
@@ -1194,43 +1146,27 @@
<target>Verbind</target> <target>Verbind</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Automatisch verbinden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Verbind incognito</target> <target>Verbind incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Verbinden met desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<target>Verbinding maken met jezelf?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own SimpleX address!</source> This is your own SimpleX address!</source>
<target>Verbinding maken met jezelf?
Dit is uw eigen SimpleX adres!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own one-time link!</source> This is your own one-time link!</source>
<target>Verbinding maken met jezelf?
Dit is uw eigen eenmalige link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via contact address" xml:space="preserve"> <trans-unit id="Connect via contact address" xml:space="preserve">
<source>Connect via contact address</source> <source>Connect via contact address</source>
<target>Verbinding maken via contactadres</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via link" xml:space="preserve"> <trans-unit id="Connect via link" xml:space="preserve">
@@ -1250,17 +1186,6 @@ Dit is uw eigen eenmalige link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Connect with %@" xml:space="preserve"> <trans-unit id="Connect with %@" xml:space="preserve">
<source>Connect with %@</source> <source>Connect with %@</source>
<target>Verbonden met %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Verbonden desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Verbonden met desktop</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
@@ -1273,11 +1198,6 @@ Dit is uw eigen eenmalige link!</target>
<target>Verbinden met server... (fout: %@)</target> <target>Verbinden met server... (fout: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Verbinding maken met desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Verbinding</target> <target>Verbinding</target>
@@ -1298,11 +1218,6 @@ Dit is uw eigen eenmalige link!</target>
<target>Verbindingsverzoek verzonden!</target> <target>Verbindingsverzoek verzonden!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Verbinding beëindigd</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Timeout verbinding</target> <target>Timeout verbinding</target>
@@ -1370,7 +1285,6 @@ Dit is uw eigen eenmalige link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Correct name to %@?" xml:space="preserve"> <trans-unit id="Correct name to %@?" xml:space="preserve">
<source>Correct name to %@?</source> <source>Correct name to %@?</source>
<target>Juiste naam voor %@?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create" xml:space="preserve"> <trans-unit id="Create" xml:space="preserve">
@@ -1383,11 +1297,6 @@ Dit is uw eigen eenmalige link!</target>
<target>Maak een SimpleX adres aan</target> <target>Maak een SimpleX adres aan</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Maak een groep met een willekeurig profiel.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Maak een adres aan zodat mensen contact met je kunnen opnemen.</target> <target>Maak een adres aan zodat mensen contact met je kunnen opnemen.</target>
@@ -1400,7 +1309,6 @@ Dit is uw eigen eenmalige link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create group" xml:space="preserve"> <trans-unit id="Create group" xml:space="preserve">
<source>Create group</source> <source>Create group</source>
<target>Groep aanmaken</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create group link" xml:space="preserve"> <trans-unit id="Create group link" xml:space="preserve">
@@ -1425,7 +1333,6 @@ Dit is uw eigen eenmalige link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create profile" xml:space="preserve"> <trans-unit id="Create profile" xml:space="preserve">
<source>Create profile</source> <source>Create profile</source>
<target>Maak een profiel aan</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create queue" xml:space="preserve"> <trans-unit id="Create queue" xml:space="preserve">
@@ -1588,7 +1495,6 @@ Dit is uw eigen eenmalige link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete %lld messages?" xml:space="preserve"> <trans-unit id="Delete %lld messages?" xml:space="preserve">
<source>Delete %lld messages?</source> <source>Delete %lld messages?</source>
<target>%lld berichten verwijderen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete Contact" xml:space="preserve"> <trans-unit id="Delete Contact" xml:space="preserve">
@@ -1618,7 +1524,6 @@ Dit is uw eigen eenmalige link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete and notify contact" xml:space="preserve"> <trans-unit id="Delete and notify contact" xml:space="preserve">
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<target>Contact verwijderen en op de hoogte stellen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete archive" xml:space="preserve"> <trans-unit id="Delete archive" xml:space="preserve">
@@ -1654,8 +1559,6 @@ Dit is uw eigen eenmalige link!</target>
<trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve"> <trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve">
<source>Delete contact? <source>Delete contact?
This cannot be undone!</source> This cannot be undone!</source>
<target>Verwijder contact?
Dit kan niet ongedaan gemaakt worden!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete database" xml:space="preserve"> <trans-unit id="Delete database" xml:space="preserve">
@@ -1798,21 +1701,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Beschrijving</target> <target>Beschrijving</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Desktop adres</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>Desktop-app-versie %@ is niet compatibel met deze app.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Desktop apparaten</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Ontwikkelen</target> <target>Ontwikkelen</target>
@@ -1903,21 +1791,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>verbinding verbreken</target> <target>verbinding verbreken</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Desktop loskoppelen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Ontdek en sluit je aan bij groepen</target> <target>Ontdek en sluit je aan bij groepen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Ontdek via het lokale netwerk</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>Gebruik SimpleX NIET voor noodoproepen.</target> <target>Gebruik SimpleX NIET voor noodoproepen.</target>
@@ -2088,16 +1966,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Versleuteld bericht: onverwachte fout</target> <target>Versleuteld bericht: onverwachte fout</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Fout bij heronderhandeling van codering</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>Opnieuw onderhandelen over de codering is mislukt.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Voer toegangscode in</target> <target>Voer toegangscode in</target>
@@ -2110,7 +1978,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter group name…" xml:space="preserve"> <trans-unit id="Enter group name…" xml:space="preserve">
<source>Enter group name…</source> <source>Enter group name…</source>
<target>Groep naam invoeren…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase…" xml:space="preserve"> <trans-unit id="Enter passphrase…" xml:space="preserve">
@@ -2128,11 +1995,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Voer de server handmatig in</target> <target>Voer de server handmatig in</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Voer deze apparaatnaam in…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Welkomst bericht invoeren…</target> <target>Welkomst bericht invoeren…</target>
@@ -2145,7 +2007,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter your name…" xml:space="preserve"> <trans-unit id="Enter your name…" xml:space="preserve">
<source>Enter your name…</source> <source>Enter your name…</source>
<target>Vul uw naam in…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error" xml:space="preserve"> <trans-unit id="Error" xml:space="preserve">
@@ -2170,7 +2031,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Error adding member(s)" xml:space="preserve"> <trans-unit id="Error adding member(s)" xml:space="preserve">
<source>Error adding member(s)</source> <source>Error adding member(s)</source>
<target>Fout bij het toevoegen van leden</target> <target>Fout bij het toevoegen van gebruiker(s)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
@@ -2300,7 +2161,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Error removing member" xml:space="preserve"> <trans-unit id="Error removing member" xml:space="preserve">
<source>Error removing member</source> <source>Error removing member</source>
<target>Fout bij verwijderen van lid</target> <target>Fout bij verwijderen van gebruiker</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error saving %@ servers" xml:space="preserve"> <trans-unit id="Error saving %@ servers" xml:space="preserve">
@@ -2425,7 +2286,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Expand" xml:space="preserve"> <trans-unit id="Expand" xml:space="preserve">
<source>Expand</source> <source>Expand</source>
<target>Uitbreiden</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Export database" xml:space="preserve"> <trans-unit id="Export database" xml:space="preserve">
@@ -2458,11 +2318,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Snel en niet wachten tot de afzender online is!</target> <target>Snel en niet wachten tot de afzender online is!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Snellere deelname en betrouwbaardere berichten.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Favoriet</target> <target>Favoriet</target>
@@ -2558,11 +2413,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Voor console</target> <target>Voor console</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Desktop gevonden</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Franse interface</target> <target>Franse interface</target>
@@ -2585,7 +2435,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve"> <trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source> <source>Fully decentralized visible only to members.</source>
<target>Volledig gedecentraliseerd alleen zichtbaar voor leden.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Fully re-implemented - work in background!" xml:space="preserve"> <trans-unit id="Fully re-implemented - work in background!" xml:space="preserve">
@@ -2610,12 +2459,10 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists" xml:space="preserve"> <trans-unit id="Group already exists" xml:space="preserve">
<source>Group already exists</source> <source>Group already exists</source>
<target>Groep bestaat al</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists!" xml:space="preserve"> <trans-unit id="Group already exists!" xml:space="preserve">
<source>Group already exists!</source> <source>Group already exists!</source>
<target>Groep bestaat al!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group display name" xml:space="preserve"> <trans-unit id="Group display name" xml:space="preserve">
@@ -2888,11 +2735,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Incognito</target> <target>Incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Incognitogroepen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Incognito modus</target> <target>Incognito modus</target>
@@ -2923,11 +2765,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Incompatibele database versie</target> <target>Incompatibele database versie</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Incompatibele versie</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Onjuiste toegangscode</target> <target>Onjuiste toegangscode</target>
@@ -2977,7 +2814,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Invalid name!" xml:space="preserve"> <trans-unit id="Invalid name!" xml:space="preserve">
<source>Invalid name!</source> <source>Invalid name!</source>
<target>Ongeldige naam!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invalid server address!" xml:space="preserve"> <trans-unit id="Invalid server address!" xml:space="preserve">
@@ -3073,7 +2909,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join group?" xml:space="preserve"> <trans-unit id="Join group?" xml:space="preserve">
<source>Join group?</source> <source>Join group?</source>
<target>Deelnemen aan groep?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join incognito" xml:space="preserve"> <trans-unit id="Join incognito" xml:space="preserve">
@@ -3083,14 +2918,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join with current profile" xml:space="preserve"> <trans-unit id="Join with current profile" xml:space="preserve">
<source>Join with current profile</source> <source>Join with current profile</source>
<target>Word lid met huidig profiel</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve"> <trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve">
<source>Join your group? <source>Join your group?
This is your link for group %@!</source> This is your link for group %@!</source>
<target>Sluit u aan bij uw groep?
Dit is jouw link voor groep %@!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Joining group" xml:space="preserve"> <trans-unit id="Joining group" xml:space="preserve">
@@ -3098,11 +2930,6 @@ Dit is jouw link voor groep %@!</target>
<target>Deel nemen aan groep</target> <target>Deel nemen aan groep</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Houd de app geopend om deze vanaf de desktop te gebruiken</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Behoud uw verbindingen</target> <target>Behoud uw verbindingen</target>
@@ -3163,21 +2990,6 @@ Dit is jouw link voor groep %@!</target>
<target>Beperkingen</target> <target>Beperkingen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Koppel mobiele en desktop-apps! 🔗</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>Gekoppelde desktop opties</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Gelinkte desktops</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Live bericht!</target> <target>Live bericht!</target>
@@ -3265,22 +3077,22 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Member" xml:space="preserve"> <trans-unit id="Member" xml:space="preserve">
<source>Member</source> <source>Member</source>
<target>Lid</target> <target>Gebruiker</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>De rol van lid wordt gewijzigd in "%@". Alle groepsleden worden op de hoogte gebracht.</target> <target>De rol van gebruiker wordt gewijzigd in "%@". Alle groepsleden worden op de hoogte gebracht.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. The member will receive a new invitation." xml:space="preserve"> <trans-unit id="Member role will be changed to &quot;%@&quot;. The member will receive a new invitation." xml:space="preserve">
<source>Member role will be changed to "%@". The member will receive a new invitation.</source> <source>Member role will be changed to "%@". The member will receive a new invitation.</source>
<target>De rol van lid wordt gewijzigd in "%@". Het lid ontvangt een nieuwe uitnodiging.</target> <target>De rol van gebruiker wordt gewijzigd in "%@". Het lid ontvangt een nieuwe uitnodiging.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Lid wordt uit de groep verwijderd, dit kan niet ongedaan worden gemaakt!</target> <target>Gebruiker wordt uit de groep verwijderd, dit kan niet ongedaan worden gemaakt!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message delivery error" xml:space="preserve"> <trans-unit id="Message delivery error" xml:space="preserve">
@@ -3330,7 +3142,6 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Messages from %@ will be shown!" xml:space="preserve"> <trans-unit id="Messages from %@ will be shown!" xml:space="preserve">
<source>Messages from %@ will be shown!</source> <source>Messages from %@ will be shown!</source>
<target>Berichten van %@ worden getoond!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrating database archive…" xml:space="preserve"> <trans-unit id="Migrating database archive…" xml:space="preserve">
@@ -3528,11 +3339,6 @@ Dit is jouw link voor groep %@!</target>
<target>Geen ontvangen of verzonden bestanden</target> <target>Geen ontvangen of verzonden bestanden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Niet compatibel!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Meldingen</target> <target>Meldingen</target>
@@ -3609,7 +3415,7 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Only group owners can enable files and media." xml:space="preserve"> <trans-unit id="Only group owners can enable files and media." xml:space="preserve">
<source>Only group owners can enable files and media.</source> <source>Only group owners can enable files and media.</source>
<target>Alleen groep eigenaren kunnen bestanden en media inschakelen.</target> <target>Alleen groepseigenaren kunnen bestanden en media inschakelen.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only group owners can enable voice messages." xml:space="preserve"> <trans-unit id="Only group owners can enable voice messages." xml:space="preserve">
@@ -3689,7 +3495,6 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Open group" xml:space="preserve"> <trans-unit id="Open group" xml:space="preserve">
<source>Open group</source> <source>Open group</source>
<target>Open groep</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Open user profiles" xml:space="preserve"> <trans-unit id="Open user profiles" xml:space="preserve">
@@ -3752,11 +3557,6 @@ Dit is jouw link voor groep %@!</target>
<target>Plakken</target> <target>Plakken</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Desktopadres plakken</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Afbeelding plakken</target> <target>Afbeelding plakken</target>
@@ -3904,12 +3704,10 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Profielnaam</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile name:" xml:space="preserve"> <trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source> <source>Profile name:</source>
<target>Profielnaam:</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile password" xml:space="preserve"> <trans-unit id="Profile password" xml:space="preserve">
@@ -4129,12 +3927,12 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Remove member" xml:space="preserve"> <trans-unit id="Remove member" xml:space="preserve">
<source>Remove member</source> <source>Remove member</source>
<target>Lid verwijderen</target> <target>Gebruiker verwijderen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Remove member?" xml:space="preserve"> <trans-unit id="Remove member?" xml:space="preserve">
<source>Remove member?</source> <source>Remove member?</source>
<target>Lid verwijderen?</target> <target>Gebruiker verwijderen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Remove passphrase from keychain?" xml:space="preserve"> <trans-unit id="Remove passphrase from keychain?" xml:space="preserve">
@@ -4159,12 +3957,10 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Repeat connection request?" xml:space="preserve"> <trans-unit id="Repeat connection request?" xml:space="preserve">
<source>Repeat connection request?</source> <source>Repeat connection request?</source>
<target>Verbindingsverzoek herhalen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Repeat join request?" xml:space="preserve"> <trans-unit id="Repeat join request?" xml:space="preserve">
<source>Repeat join request?</source> <source>Repeat join request?</source>
<target>Deelnameverzoek herhalen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Reply" xml:space="preserve"> <trans-unit id="Reply" xml:space="preserve">
@@ -4279,7 +4075,7 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
<target>Opslaan en groep leden melden</target> <target>Opslaan en Groep leden melden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and update group profile" xml:space="preserve"> <trans-unit id="Save and update group profile" xml:space="preserve">
@@ -4352,11 +4148,6 @@ Dit is jouw link voor groep %@!</target>
<target>Scan QR-code</target> <target>Scan QR-code</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Scan QR-code vanaf uw desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Code scannen</target> <target>Code scannen</target>
@@ -4577,11 +4368,6 @@ Dit is jouw link voor groep %@!</target>
<target>Servers</target> <target>Servers</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Sessie code</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Stel 1 dag in</target> <target>Stel 1 dag in</target>
@@ -4894,7 +4680,6 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Tap to Connect" xml:space="preserve"> <trans-unit id="Tap to Connect" xml:space="preserve">
<source>Tap to Connect</source> <source>Tap to Connect</source>
<target>Tik om verbinding te maken</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to activate profile." xml:space="preserve"> <trans-unit id="Tap to activate profile." xml:space="preserve">
@@ -4904,12 +4689,12 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Tap to join" xml:space="preserve"> <trans-unit id="Tap to join" xml:space="preserve">
<source>Tap to join</source> <source>Tap to join</source>
<target>Tik om lid te worden</target> <target>Tik om mee te doen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to join incognito" xml:space="preserve"> <trans-unit id="Tap to join incognito" xml:space="preserve">
<source>Tap to join incognito</source> <source>Tap to join incognito</source>
<target>Tik om incognito lid te worden</target> <target>Tik om incognito deel te nemen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to start a new chat" xml:space="preserve"> <trans-unit id="Tap to start a new chat" xml:space="preserve">
@@ -5079,11 +4864,6 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
<target>Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</target> <target>Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>Deze apparaatnaam</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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Deze groep heeft meer dan %lld -leden, ontvangstbevestigingen worden niet verzonden.</target> <target>Deze groep heeft meer dan %lld -leden, ontvangstbevestigingen worden niet verzonden.</target>
@@ -5096,12 +4876,10 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
</trans-unit> </trans-unit>
<trans-unit id="This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="This is your own SimpleX address!" xml:space="preserve">
<source>This is your own SimpleX address!</source> <source>This is your own SimpleX address!</source>
<target>Dit is uw eigen SimpleX adres!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This is your own one-time link!" xml:space="preserve"> <trans-unit id="This is your own one-time link!" xml:space="preserve">
<source>This is your own one-time link!</source> <source>This is your own one-time link!</source>
<target>Dit is uw eigen eenmalige link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve"> <trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
@@ -5119,11 +4897,6 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
<target>Om verbinding te maken, kan uw contact de QR-code scannen of de link in de app gebruiken.</target> <target>Om verbinding te maken, kan uw contact de QR-code scannen of de link in de app gebruiken.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>Om ongewenste berichten te verbergen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Om een nieuwe verbinding te maken</target> <target>Om een nieuwe verbinding te maken</target>
@@ -5208,17 +4981,14 @@ U wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingesc
</trans-unit> </trans-unit>
<trans-unit id="Unblock" xml:space="preserve"> <trans-unit id="Unblock" xml:space="preserve">
<source>Unblock</source> <source>Unblock</source>
<target>Deblokkeren</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member" xml:space="preserve"> <trans-unit id="Unblock member" xml:space="preserve">
<source>Unblock member</source> <source>Unblock member</source>
<target>Lid deblokkeren</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member?" xml:space="preserve"> <trans-unit id="Unblock member?" xml:space="preserve">
<source>Unblock member?</source> <source>Unblock member?</source>
<target>Lid deblokkeren?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unexpected error: %@" xml:space="preserve"> <trans-unit id="Unexpected error: %@" xml:space="preserve">
@@ -5283,16 +5053,6 @@ To connect, please ask your contact to create another connection link and check
Om verbinding te maken, vraagt u uw contact om een andere verbinding link te maken en te controleren of u een stabiele netwerkverbinding heeft.</target> Om verbinding te maken, vraagt u uw contact om een andere verbinding link te maken en te controleren of u een stabiele netwerkverbinding heeft.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Ontkoppelen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Desktop ontkoppelen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Ontgrendelen</target> <target>Ontgrendelen</target>
@@ -5383,11 +5143,6 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
<target>Gebruik voor nieuwe verbindingen</target> <target>Gebruik voor nieuwe verbindingen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Gebruik vanaf desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>De iOS-oproepinterface gebruiken</target> <target>De iOS-oproepinterface gebruiken</target>
@@ -5418,26 +5173,11 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
<target>SimpleX Chat servers gebruiken.</target> <target>SimpleX Chat servers gebruiken.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Code verifiëren met desktop</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Controleer de verbinding</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Controleer de verbindingsbeveiliging</target> <target>Controleer de verbindingsbeveiliging</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Controleer verbindingen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Controleer de beveiligingscode</target> <target>Controleer de beveiligingscode</target>
@@ -5448,11 +5188,6 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
<target>Via browser</target> <target>Via browser</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Via een beveiligd kwantumbestendig protocol.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>video oproep</target> <target>video oproep</target>
@@ -5503,11 +5238,6 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
<target>Spraakbericht…</target> <target>Spraakbericht…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Wachten op desktop...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Wachten op bestand</target> <target>Wachten op bestand</target>
@@ -5610,39 +5340,31 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve"> <trans-unit id="You are already connecting to %@." xml:space="preserve">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>U maakt al verbinding met %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve"> <trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
<source>You are already connecting via this one-time link!</source> <source>You are already connecting via this one-time link!</source>
<target>Je maakt al verbinding via deze eenmalige link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already in group %@." xml:space="preserve"> <trans-unit id="You are already in group %@." xml:space="preserve">
<source>You are already in group %@.</source> <source>You are already in group %@.</source>
<target>Je zit al in groep %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group %@." xml:space="preserve"> <trans-unit id="You are already joining the group %@." xml:space="preserve">
<source>You are already joining the group %@.</source> <source>You are already joining the group %@.</source>
<target>Je bent al lid van de groep %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link!" xml:space="preserve"> <trans-unit id="You are already joining the group via this link!" xml:space="preserve">
<source>You are already joining the group via this link!</source> <source>You are already joining the group via this link!</source>
<target>Je wordt al lid van de groep via deze link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link." xml:space="preserve"> <trans-unit id="You are already joining the group via this link." xml:space="preserve">
<source>You are already joining the group via this link.</source> <source>You are already joining the group via this link.</source>
<target>Je wordt al lid van de groep via deze link.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve"> <trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve">
<source>You are already joining the group! <source>You are already joining the group!
Repeat join request?</source> Repeat join request?</source>
<target>Je sluit je al aan bij de groep!
Deelnameverzoek herhalen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve"> <trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve">
@@ -5742,14 +5464,11 @@ Deelnameverzoek herhalen?</target>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection via this address!" xml:space="preserve"> <trans-unit id="You have already requested connection via this address!" xml:space="preserve">
<source>You have already requested connection via this address!</source> <source>You have already requested connection via this address!</source>
<target>U heeft al een verbinding aangevraagd via dit adres!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve"> <trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve">
<source>You have already requested connection! <source>You have already requested connection!
Repeat connection request?</source> Repeat connection request?</source>
<target>Je hebt al verbinding aangevraagd!
Verbindingsverzoek herhalen?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have no chats" xml:space="preserve"> <trans-unit id="You have no chats" xml:space="preserve">
@@ -5804,7 +5523,6 @@ Verbindingsverzoek herhalen?</target>
</trans-unit> </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"> <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> <source>You will be connected when group link host's device is online, please wait or check later!</source>
<target>U wordt verbonden wanneer het apparaat van de groep link host online is. Wacht even of controleer het later opnieuw!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve"> <trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve">
@@ -5824,7 +5542,6 @@ Verbindingsverzoek herhalen?</target>
</trans-unit> </trans-unit>
<trans-unit id="You will connect to all group members." xml:space="preserve"> <trans-unit id="You will connect to all group members." xml:space="preserve">
<source>You will connect to all group members.</source> <source>You will connect to all group members.</source>
<target>Je maakt verbinding met alle leden.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve"> <trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve">
@@ -5948,7 +5665,6 @@ U kunt dit wijzigen in Instellingen.</target>
</trans-unit> </trans-unit>
<trans-unit id="Your profile" xml:space="preserve"> <trans-unit id="Your profile" xml:space="preserve">
<source>Your profile</source> <source>Your profile</source>
<target>Jouw profiel</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your profile **%@** will be shared." xml:space="preserve"> <trans-unit id="Your profile **%@** will be shared." xml:space="preserve">
@@ -6045,7 +5761,6 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="and %lld other events" xml:space="preserve"> <trans-unit id="and %lld other events" xml:space="preserve">
<source>and %lld other events</source> <source>and %lld other events</source>
<target>en %lld andere gebeurtenissen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="audio call (not e2e encrypted)" xml:space="preserve"> <trans-unit id="audio call (not e2e encrypted)" xml:space="preserve">
@@ -6053,11 +5768,6 @@ SimpleX servers kunnen uw profiel niet zien.</target>
<target>audio oproep (niet e2e versleuteld)</target> <target>audio oproep (niet e2e versleuteld)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>auteur</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>Onjuiste bericht-ID</target> <target>Onjuiste bericht-ID</target>
@@ -6070,7 +5780,6 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="blocked" xml:space="preserve"> <trans-unit id="blocked" xml:space="preserve">
<source>blocked</source> <source>blocked</source>
<target>geblokkeerd</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="bold" xml:space="preserve"> <trans-unit id="bold" xml:space="preserve">
@@ -6245,7 +5954,6 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="deleted contact" xml:space="preserve"> <trans-unit id="deleted contact" xml:space="preserve">
<source>deleted contact</source> <source>deleted contact</source>
<target>verwijderd contact</target>
<note>rcv direct event chat item</note> <note>rcv direct event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="deleted group" xml:space="preserve"> <trans-unit id="deleted group" xml:space="preserve">
@@ -6460,7 +6168,7 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="member" xml:space="preserve"> <trans-unit id="member" xml:space="preserve">
<source>member</source> <source>member</source>
<target>lid</target> <target>gebruiker</target>
<note>member role</note> <note>member role</note>
</trans-unit> </trans-unit>
<trans-unit id="member connected" xml:space="preserve"> <trans-unit id="member connected" xml:space="preserve">
@@ -6640,11 +6348,6 @@ SimpleX servers kunnen uw profiel niet zien.</target>
<target>bijgewerkt groep profiel</target> <target>bijgewerkt groep profiel</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6782,11 +6485,6 @@ SimpleX servers kunnen uw profiel niet zien.</target>
<target>SimpleX gebruikt Face-ID voor lokale authenticatie</target> <target>SimpleX gebruikt Face-ID voor lokale authenticatie</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX maakt gebruik van lokale netwerktoegang om het gebruik van een gebruikerschatprofiel via de desktop-app op hetzelfde netwerk mogelijk te maken.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX heeft microfoon toegang nodig voor audio en video oproepen en om spraak berichten op te nemen.</target> <target>SimpleX heeft microfoon toegang nodig voor audio en video oproepen en om spraak berichten op te nemen.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -89,7 +89,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@" xml:space="preserve"> <trans-unit id="%@ and %@" xml:space="preserve">
<source>%@ and %@</source> <source>%@ and %@</source>
<target>%@ i %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@ connected" xml:space="preserve"> <trans-unit id="%@ and %@ connected" xml:space="preserve">
@@ -104,7 +103,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ connected" xml:space="preserve"> <trans-unit id="%@ connected" xml:space="preserve">
<source>%@ connected</source> <source>%@ connected</source>
<target>%@ połączony</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -134,7 +132,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld members" xml:space="preserve"> <trans-unit id="%@, %@ and %lld members" xml:space="preserve">
<source>%@, %@ and %lld members</source> <source>%@, %@ and %lld members</source>
<target>%@, %@ i %lld członków</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve"> <trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
@@ -204,7 +201,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld group events" xml:space="preserve"> <trans-unit id="%lld group events" xml:space="preserve">
<source>%lld group events</source> <source>%lld group events</source>
<target>%lld wydarzeń grupy</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld members" xml:space="preserve"> <trans-unit id="%lld members" xml:space="preserve">
@@ -214,17 +210,14 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked" xml:space="preserve"> <trans-unit id="%lld messages blocked" xml:space="preserve">
<source>%lld messages blocked</source> <source>%lld messages blocked</source>
<target>%lld wiadomości zablokowanych</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages marked deleted" xml:space="preserve"> <trans-unit id="%lld messages marked deleted" xml:space="preserve">
<source>%lld messages marked deleted</source> <source>%lld messages marked deleted</source>
<target>%lld wiadomości oznaczonych do usunięcia</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages moderated by %@" xml:space="preserve"> <trans-unit id="%lld messages moderated by %@" xml:space="preserve">
<source>%lld messages moderated by %@</source> <source>%lld messages moderated by %@</source>
<target>%lld wiadomości zmoderowanych przez %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld minutes" xml:space="preserve"> <trans-unit id="%lld minutes" xml:space="preserve">
@@ -297,16 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(nowy)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(to urządzenie v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -395,15 +378,6 @@
- i więcej!</target> - i więcej!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- opcjonalnie powiadamiaj usunięte kontakty.
- nazwy profili ze spacją.
- i wiele więcej!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -420,7 +394,6 @@
</trans-unit> </trans-unit>
<trans-unit id="0 sec" xml:space="preserve"> <trans-unit id="0 sec" xml:space="preserve">
<source>0 sec</source> <source>0 sec</source>
<target>0 sek</target>
<note>time to disappear</note> <note>time to disappear</note>
</trans-unit> </trans-unit>
<trans-unit id="0s" xml:space="preserve"> <trans-unit id="0s" xml:space="preserve">
@@ -650,7 +623,6 @@
</trans-unit> </trans-unit>
<trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve"> <trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve">
<source>All new messages from %@ will be hidden!</source> <source>All new messages from %@ will be hidden!</source>
<target>Wszystkie nowe wiadomości z %@ zostaną ukryte!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve"> <trans-unit id="All your contacts will remain connected." xml:space="preserve">
@@ -760,12 +732,10 @@
</trans-unit> </trans-unit>
<trans-unit id="Already connecting!" xml:space="preserve"> <trans-unit id="Already connecting!" xml:space="preserve">
<source>Already connecting!</source> <source>Already connecting!</source>
<target>Już połączony!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Already joining the group!" xml:space="preserve"> <trans-unit id="Already joining the group!" xml:space="preserve">
<source>Already joining the group!</source> <source>Already joining the group!</source>
<target>Już dołączono do grupy!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Always use relay" xml:space="preserve"> <trans-unit id="Always use relay" xml:space="preserve">
@@ -888,11 +858,6 @@
<target>Wstecz</target> <target>Wstecz</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Zły adres komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Zły identyfikator wiadomości</target> <target>Zły identyfikator wiadomości</target>
@@ -903,11 +868,6 @@
<target>Zły hash wiadomości</target> <target>Zły hash wiadomości</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Lepsze grupy</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Lepsze wiadomości</target> <target>Lepsze wiadomości</target>
@@ -915,22 +875,14 @@
</trans-unit> </trans-unit>
<trans-unit id="Block" xml:space="preserve"> <trans-unit id="Block" xml:space="preserve">
<source>Block</source> <source>Block</source>
<target>Zablokuj</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Blokuj członków grupy</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<target>Zablokuj członka</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member?" xml:space="preserve"> <trans-unit id="Block member?" xml:space="preserve">
<source>Block member?</source> <source>Block member?</source>
<target>Zablokować członka?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve"> <trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1194,43 +1146,27 @@
<target>Połącz</target> <target>Połącz</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Łącz automatycznie</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Połącz incognito</target> <target>Połącz incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Połącz do komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<target>Połączyć się ze sobą?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own SimpleX address!</source> This is your own SimpleX address!</source>
<target>Połączyć się ze sobą?
To jest twój własny adres SimpleX!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own one-time link!</source> This is your own one-time link!</source>
<target>Połączyć się ze sobą?
To jest twój jednorazowy link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via contact address" xml:space="preserve"> <trans-unit id="Connect via contact address" xml:space="preserve">
<source>Connect via contact address</source> <source>Connect via contact address</source>
<target>Połącz przez adres kontaktowy</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via link" xml:space="preserve"> <trans-unit id="Connect via link" xml:space="preserve">
@@ -1250,17 +1186,6 @@ To jest twój jednorazowy link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Connect with %@" xml:space="preserve"> <trans-unit id="Connect with %@" xml:space="preserve">
<source>Connect with %@</source> <source>Connect with %@</source>
<target>Połącz z %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Połączony komputer</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Połączony do komputera</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
@@ -1273,11 +1198,6 @@ To jest twój jednorazowy link!</target>
<target>Łączenie z serwerem... (błąd: %@)</target> <target>Łączenie z serwerem... (błąd: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Łączenie z komputerem</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Połączenie</target> <target>Połączenie</target>
@@ -1298,11 +1218,6 @@ To jest twój jednorazowy link!</target>
<target>Prośba o połączenie wysłana!</target> <target>Prośba o połączenie wysłana!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Połączenie zakończone</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Czas połączenia minął</target> <target>Czas połączenia minął</target>
@@ -1370,7 +1285,6 @@ To jest twój jednorazowy link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Correct name to %@?" xml:space="preserve"> <trans-unit id="Correct name to %@?" xml:space="preserve">
<source>Correct name to %@?</source> <source>Correct name to %@?</source>
<target>Poprawić imię na %@?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create" xml:space="preserve"> <trans-unit id="Create" xml:space="preserve">
@@ -1383,11 +1297,6 @@ To jest twój jednorazowy link!</target>
<target>Utwórz adres SimpleX</target> <target>Utwórz adres SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Utwórz grupę używając losowego profilu.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Utwórz adres, aby ludzie mogli się z Tobą połączyć.</target> <target>Utwórz adres, aby ludzie mogli się z Tobą połączyć.</target>
@@ -1400,7 +1309,6 @@ To jest twój jednorazowy link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create group" xml:space="preserve"> <trans-unit id="Create group" xml:space="preserve">
<source>Create group</source> <source>Create group</source>
<target>Utwórz grupę</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create group link" xml:space="preserve"> <trans-unit id="Create group link" xml:space="preserve">
@@ -1425,7 +1333,6 @@ To jest twój jednorazowy link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Create profile" xml:space="preserve"> <trans-unit id="Create profile" xml:space="preserve">
<source>Create profile</source> <source>Create profile</source>
<target>Utwórz profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create queue" xml:space="preserve"> <trans-unit id="Create queue" xml:space="preserve">
@@ -1588,7 +1495,6 @@ To jest twój jednorazowy link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete %lld messages?" xml:space="preserve"> <trans-unit id="Delete %lld messages?" xml:space="preserve">
<source>Delete %lld messages?</source> <source>Delete %lld messages?</source>
<target>Usunąć %lld wiadomości?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete Contact" xml:space="preserve"> <trans-unit id="Delete Contact" xml:space="preserve">
@@ -1618,7 +1524,6 @@ To jest twój jednorazowy link!</target>
</trans-unit> </trans-unit>
<trans-unit id="Delete and notify contact" xml:space="preserve"> <trans-unit id="Delete and notify contact" xml:space="preserve">
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<target>Usuń i powiadom kontakt</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete archive" xml:space="preserve"> <trans-unit id="Delete archive" xml:space="preserve">
@@ -1654,8 +1559,6 @@ To jest twój jednorazowy link!</target>
<trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve"> <trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve">
<source>Delete contact? <source>Delete contact?
This cannot be undone!</source> This cannot be undone!</source>
<target>Usunąć kontakt?
To nie może być cofnięte!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete database" xml:space="preserve"> <trans-unit id="Delete database" xml:space="preserve">
@@ -1798,21 +1701,6 @@ To nie może być cofnięte!</target>
<target>Opis</target> <target>Opis</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Adres komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>Wersja aplikacji komputerowej %@ nie jest kompatybilna z tą aplikacją.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Urządzenia komputerowe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Deweloperskie</target> <target>Deweloperskie</target>
@@ -1903,21 +1791,11 @@ To nie może być cofnięte!</target>
<target>Rozłącz</target> <target>Rozłącz</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Rozłączyć komputer?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Odkrywaj i dołączaj do grup</target> <target>Odkrywaj i dołączaj do grup</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Odkryj przez sieć lokalną</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>NIE używaj SimpleX do połączeń alarmowych.</target> <target>NIE używaj SimpleX do połączeń alarmowych.</target>
@@ -2088,16 +1966,6 @@ To nie może być cofnięte!</target>
<target>Zaszyfrowana wiadomość: nieoczekiwany błąd</target> <target>Zaszyfrowana wiadomość: nieoczekiwany błąd</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Błąd renegocjacji szyfrowania</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>Renegocjacja szyfrowania nie powiodła się.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Wprowadź Pin</target> <target>Wprowadź Pin</target>
@@ -2110,7 +1978,6 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter group name…" xml:space="preserve"> <trans-unit id="Enter group name…" xml:space="preserve">
<source>Enter group name…</source> <source>Enter group name…</source>
<target>Wpisz nazwę grupy…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase…" xml:space="preserve"> <trans-unit id="Enter passphrase…" xml:space="preserve">
@@ -2128,11 +1995,6 @@ To nie może być cofnięte!</target>
<target>Wprowadź serwer ręcznie</target> <target>Wprowadź serwer ręcznie</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Podaj nazwę urządzenia…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Wpisz wiadomość powitalną…</target> <target>Wpisz wiadomość powitalną…</target>
@@ -2145,7 +2007,6 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enter your name…" xml:space="preserve"> <trans-unit id="Enter your name…" xml:space="preserve">
<source>Enter your name…</source> <source>Enter your name…</source>
<target>Wpisz swoją nazwę…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error" xml:space="preserve"> <trans-unit id="Error" xml:space="preserve">
@@ -2425,7 +2286,6 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Expand" xml:space="preserve"> <trans-unit id="Expand" xml:space="preserve">
<source>Expand</source> <source>Expand</source>
<target>Rozszerz</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Export database" xml:space="preserve"> <trans-unit id="Export database" xml:space="preserve">
@@ -2458,11 +2318,6 @@ To nie może być cofnięte!</target>
<target>Szybko i bez czekania aż nadawca będzie online!</target> <target>Szybko i bez czekania aż nadawca będzie online!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Szybsze dołączenie i bardziej niezawodne wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Ulubione</target> <target>Ulubione</target>
@@ -2558,11 +2413,6 @@ To nie może być cofnięte!</target>
<target>Dla konsoli</target> <target>Dla konsoli</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Znaleziono komputer</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Francuski interfejs</target> <target>Francuski interfejs</target>
@@ -2585,7 +2435,6 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve"> <trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source> <source>Fully decentralized visible only to members.</source>
<target>W pełni zdecentralizowana widoczna tylko dla członków.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Fully re-implemented - work in background!" xml:space="preserve"> <trans-unit id="Fully re-implemented - work in background!" xml:space="preserve">
@@ -2610,12 +2459,10 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists" xml:space="preserve"> <trans-unit id="Group already exists" xml:space="preserve">
<source>Group already exists</source> <source>Group already exists</source>
<target>Grupa już istnieje</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists!" xml:space="preserve"> <trans-unit id="Group already exists!" xml:space="preserve">
<source>Group already exists!</source> <source>Group already exists!</source>
<target>Grupa już istnieje!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group display name" xml:space="preserve"> <trans-unit id="Group display name" xml:space="preserve">
@@ -2888,11 +2735,6 @@ To nie może być cofnięte!</target>
<target>Incognito</target> <target>Incognito</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Grupy incognito</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Tryb incognito</target> <target>Tryb incognito</target>
@@ -2923,11 +2765,6 @@ To nie może być cofnięte!</target>
<target>Niekompatybilna wersja bazy danych</target> <target>Niekompatybilna wersja bazy danych</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Niekompatybilna wersja</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Nieprawidłowy pin</target> <target>Nieprawidłowy pin</target>
@@ -2977,7 +2814,6 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Invalid name!" xml:space="preserve"> <trans-unit id="Invalid name!" xml:space="preserve">
<source>Invalid name!</source> <source>Invalid name!</source>
<target>Nieprawidłowa nazwa!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invalid server address!" xml:space="preserve"> <trans-unit id="Invalid server address!" xml:space="preserve">
@@ -3073,7 +2909,6 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join group?" xml:space="preserve"> <trans-unit id="Join group?" xml:space="preserve">
<source>Join group?</source> <source>Join group?</source>
<target>Dołączyć do grupy?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join incognito" xml:space="preserve"> <trans-unit id="Join incognito" xml:space="preserve">
@@ -3083,14 +2918,11 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Join with current profile" xml:space="preserve"> <trans-unit id="Join with current profile" xml:space="preserve">
<source>Join with current profile</source> <source>Join with current profile</source>
<target>Dołącz z obecnym profilem</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve"> <trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve">
<source>Join your group? <source>Join your group?
This is your link for group %@!</source> This is your link for group %@!</source>
<target>Dołączyć do twojej grupy?
To jest twój link do grupy %@!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Joining group" xml:space="preserve"> <trans-unit id="Joining group" xml:space="preserve">
@@ -3098,11 +2930,6 @@ To jest twój link do grupy %@!</target>
<target>Dołączanie do grupy</target> <target>Dołączanie do grupy</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Zostaw aplikację otwartą i używaj ją z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Zachowaj swoje połączenia</target> <target>Zachowaj swoje połączenia</target>
@@ -3163,21 +2990,6 @@ To jest twój link do grupy %@!</target>
<target>Ograniczenia</target> <target>Ograniczenia</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Połącz mobile i komputerowe aplikacje! 🔗</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>Połączone opcje komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Połączone komputery</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Wiadomość na żywo!</target> <target>Wiadomość na żywo!</target>
@@ -3330,7 +3142,6 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Messages from %@ will be shown!" xml:space="preserve"> <trans-unit id="Messages from %@ will be shown!" xml:space="preserve">
<source>Messages from %@ will be shown!</source> <source>Messages from %@ will be shown!</source>
<target>Wiadomości od %@ zostaną pokazane!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrating database archive…" xml:space="preserve"> <trans-unit id="Migrating database archive…" xml:space="preserve">
@@ -3528,11 +3339,6 @@ To jest twój link do grupy %@!</target>
<target>Brak odebranych lub wysłanych plików</target> <target>Brak odebranych lub wysłanych plików</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Nie kompatybilny!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Powiadomienia</target> <target>Powiadomienia</target>
@@ -3689,7 +3495,6 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Open group" xml:space="preserve"> <trans-unit id="Open group" xml:space="preserve">
<source>Open group</source> <source>Open group</source>
<target>Grupa otwarta</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Open user profiles" xml:space="preserve"> <trans-unit id="Open user profiles" xml:space="preserve">
@@ -3752,11 +3557,6 @@ To jest twój link do grupy %@!</target>
<target>Wklej</target> <target>Wklej</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Wklej adres komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Wklej obraz</target> <target>Wklej obraz</target>
@@ -3904,12 +3704,10 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Nazwa profilu</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile name:" xml:space="preserve"> <trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source> <source>Profile name:</source>
<target>Nazwa profilu:</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile password" xml:space="preserve"> <trans-unit id="Profile password" xml:space="preserve">
@@ -4159,12 +3957,10 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Repeat connection request?" xml:space="preserve"> <trans-unit id="Repeat connection request?" xml:space="preserve">
<source>Repeat connection request?</source> <source>Repeat connection request?</source>
<target>Powtórzyć prośbę połączenia?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Repeat join request?" xml:space="preserve"> <trans-unit id="Repeat join request?" xml:space="preserve">
<source>Repeat join request?</source> <source>Repeat join request?</source>
<target>Powtórzyć prośbę dołączenia?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Reply" xml:space="preserve"> <trans-unit id="Reply" xml:space="preserve">
@@ -4352,11 +4148,6 @@ To jest twój link do grupy %@!</target>
<target>Zeskanuj kod QR</target> <target>Zeskanuj kod QR</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Zeskanuj kod QR z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Zeskanuj kod</target> <target>Zeskanuj kod</target>
@@ -4577,11 +4368,6 @@ To jest twój link do grupy %@!</target>
<target>Serwery</target> <target>Serwery</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Kod sesji</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Ustaw 1 dzień</target> <target>Ustaw 1 dzień</target>
@@ -4894,7 +4680,6 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Tap to Connect" xml:space="preserve"> <trans-unit id="Tap to Connect" xml:space="preserve">
<source>Tap to Connect</source> <source>Tap to Connect</source>
<target>Dotknij aby połączyć</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to activate profile." xml:space="preserve"> <trans-unit id="Tap to activate profile." xml:space="preserve">
@@ -5079,11 +4864,6 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
<target>Tego działania nie można cofnąć - Twój profil, kontakty, wiadomości i pliki zostaną nieodwracalnie utracone.</target> <target>Tego działania nie można cofnąć - Twój profil, kontakty, wiadomości i pliki zostaną nieodwracalnie utracone.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>Nazwa tego urządzenia</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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>Ta grupa ma ponad %lld członków, potwierdzenia dostawy nie są wysyłane.</target> <target>Ta grupa ma ponad %lld członków, potwierdzenia dostawy nie są wysyłane.</target>
@@ -5096,12 +4876,10 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
</trans-unit> </trans-unit>
<trans-unit id="This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="This is your own SimpleX address!" xml:space="preserve">
<source>This is your own SimpleX address!</source> <source>This is your own SimpleX address!</source>
<target>To jest twój własny adres SimpleX!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This is your own one-time link!" xml:space="preserve"> <trans-unit id="This is your own one-time link!" xml:space="preserve">
<source>This is your own one-time link!</source> <source>This is your own one-time link!</source>
<target>To jest twój jednorazowy link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve"> <trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
@@ -5119,11 +4897,6 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
<target>Aby się połączyć, Twój kontakt może zeskanować kod QR lub skorzystać z linku w aplikacji.</target> <target>Aby się połączyć, Twój kontakt może zeskanować kod QR lub skorzystać z linku w aplikacji.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>Aby ukryć niechciane wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Aby nawiązać nowe połączenie</target> <target>Aby nawiązać nowe połączenie</target>
@@ -5208,17 +4981,14 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania.</ta
</trans-unit> </trans-unit>
<trans-unit id="Unblock" xml:space="preserve"> <trans-unit id="Unblock" xml:space="preserve">
<source>Unblock</source> <source>Unblock</source>
<target>Odblokuj</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member" xml:space="preserve"> <trans-unit id="Unblock member" xml:space="preserve">
<source>Unblock member</source> <source>Unblock member</source>
<target>Odblokuj członka</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member?" xml:space="preserve"> <trans-unit id="Unblock member?" xml:space="preserve">
<source>Unblock member?</source> <source>Unblock member?</source>
<target>Odblokować członka?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unexpected error: %@" xml:space="preserve"> <trans-unit id="Unexpected error: %@" xml:space="preserve">
@@ -5283,16 +5053,6 @@ To connect, please ask your contact to create another connection link and check
Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połączenia i sprawdź, czy masz stabilne połączenie z siecią.</target> Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połączenia i sprawdź, czy masz stabilne połączenie z siecią.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Odłącz</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Odłączyć komputer?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Odblokuj</target> <target>Odblokuj</target>
@@ -5383,11 +5143,6 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
<target>Użyj dla nowych połączeń</target> <target>Użyj dla nowych połączeń</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Użyj z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Użyj interfejsu połączeń iOS</target> <target>Użyj interfejsu połączeń iOS</target>
@@ -5418,26 +5173,11 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
<target>Używanie serwerów SimpleX Chat.</target> <target>Używanie serwerów SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Zweryfikuj kod z komputera</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Zweryfikuj połączenie</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Weryfikuj bezpieczeństwo połączenia</target> <target>Weryfikuj bezpieczeństwo połączenia</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Zweryfikuj połączenia</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Weryfikuj kod bezpieczeństwa</target> <target>Weryfikuj kod bezpieczeństwa</target>
@@ -5448,11 +5188,6 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
<target>Przez przeglądarkę</target> <target>Przez przeglądarkę</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Dzięki bezpiecznemu protokołowi odpornego kwantowo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Połączenie wideo</target> <target>Połączenie wideo</target>
@@ -5503,11 +5238,6 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
<target>Wiadomość głosowa…</target> <target>Wiadomość głosowa…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Oczekiwanie na komputer...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Oczekiwanie na plik</target> <target>Oczekiwanie na plik</target>
@@ -5610,39 +5340,31 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve"> <trans-unit id="You are already connecting to %@." xml:space="preserve">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Już się łączysz z %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve"> <trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
<source>You are already connecting via this one-time link!</source> <source>You are already connecting via this one-time link!</source>
<target>Już jesteś połączony z tym jednorazowym linkiem!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already in group %@." xml:space="preserve"> <trans-unit id="You are already in group %@." xml:space="preserve">
<source>You are already in group %@.</source> <source>You are already in group %@.</source>
<target>Już jesteś w grupie %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group %@." xml:space="preserve"> <trans-unit id="You are already joining the group %@." xml:space="preserve">
<source>You are already joining the group %@.</source> <source>You are already joining the group %@.</source>
<target>Już dołączasz do grupy %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link!" xml:space="preserve"> <trans-unit id="You are already joining the group via this link!" xml:space="preserve">
<source>You are already joining the group via this link!</source> <source>You are already joining the group via this link!</source>
<target>Już dołączasz do grupy przez ten link!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link." xml:space="preserve"> <trans-unit id="You are already joining the group via this link." xml:space="preserve">
<source>You are already joining the group via this link.</source> <source>You are already joining the group via this link.</source>
<target>Już dołączasz do grupy przez ten link.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve"> <trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve">
<source>You are already joining the group! <source>You are already joining the group!
Repeat join request?</source> Repeat join request?</source>
<target>Już dołączasz do grupy!
Powtórzyć prośbę dołączenia?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve"> <trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve">
@@ -5742,14 +5464,11 @@ Powtórzyć prośbę dołączenia?</target>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection via this address!" xml:space="preserve"> <trans-unit id="You have already requested connection via this address!" xml:space="preserve">
<source>You have already requested connection via this address!</source> <source>You have already requested connection via this address!</source>
<target>Już prosiłeś o połączenie na ten adres!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve"> <trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve">
<source>You have already requested connection! <source>You have already requested connection!
Repeat connection request?</source> Repeat connection request?</source>
<target>Już prosiłeś o połączenie!
Powtórzyć prośbę połączenia?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have no chats" xml:space="preserve"> <trans-unit id="You have no chats" xml:space="preserve">
@@ -5804,7 +5523,6 @@ Powtórzyć prośbę połączenia?</target>
</trans-unit> </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"> <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> <source>You will be connected when group link host's device is online, please wait or check later!</source>
<target>Zostaniesz połączony, gdy urządzenie hosta grupy będzie online, proszę czekać lub sprawdzić później!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve"> <trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve">
@@ -5824,7 +5542,6 @@ Powtórzyć prośbę połączenia?</target>
</trans-unit> </trans-unit>
<trans-unit id="You will connect to all group members." xml:space="preserve"> <trans-unit id="You will connect to all group members." xml:space="preserve">
<source>You will connect to all group members.</source> <source>You will connect to all group members.</source>
<target>Zostaniesz połączony ze wszystkimi członkami grupy.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve"> <trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve">
@@ -5948,7 +5665,6 @@ Możesz to zmienić w Ustawieniach.</target>
</trans-unit> </trans-unit>
<trans-unit id="Your profile" xml:space="preserve"> <trans-unit id="Your profile" xml:space="preserve">
<source>Your profile</source> <source>Your profile</source>
<target>Twój profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your profile **%@** will be shared." xml:space="preserve"> <trans-unit id="Your profile **%@** will be shared." xml:space="preserve">
@@ -6045,7 +5761,6 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="and %lld other events" xml:space="preserve"> <trans-unit id="and %lld other events" xml:space="preserve">
<source>and %lld other events</source> <source>and %lld other events</source>
<target>i %lld innych wydarzeń</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="audio call (not e2e encrypted)" xml:space="preserve"> <trans-unit id="audio call (not e2e encrypted)" xml:space="preserve">
@@ -6053,11 +5768,6 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
<target>połączenie audio (nie szyfrowane e2e)</target> <target>połączenie audio (nie szyfrowane e2e)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>autor</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>zły identyfikator wiadomości</target> <target>zły identyfikator wiadomości</target>
@@ -6070,7 +5780,6 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="blocked" xml:space="preserve"> <trans-unit id="blocked" xml:space="preserve">
<source>blocked</source> <source>blocked</source>
<target>zablokowany</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="bold" xml:space="preserve"> <trans-unit id="bold" xml:space="preserve">
@@ -6245,7 +5954,6 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="deleted contact" xml:space="preserve"> <trans-unit id="deleted contact" xml:space="preserve">
<source>deleted contact</source> <source>deleted contact</source>
<target>usunięto kontakt</target>
<note>rcv direct event chat item</note> <note>rcv direct event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="deleted group" xml:space="preserve"> <trans-unit id="deleted group" xml:space="preserve">
@@ -6640,11 +6348,6 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
<target>zaktualizowano profil grupy</target> <target>zaktualizowano profil grupy</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6782,11 +6485,6 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
<target>SimpleX używa Face ID do lokalnego uwierzytelniania</target> <target>SimpleX używa Face ID do lokalnego uwierzytelniania</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX używa sieci lokalnej aby pozwolić na dostęp profilom czatu użytkownika przez aplikację komputerową na tej samej sieci.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX potrzebuje dostępu do mikrofonu, w celu połączeń audio i wideo oraz nagrywania wiadomości głosowych.</target> <target>SimpleX potrzebuje dostępu do mikrofonu, w celu połączeń audio i wideo oraz nagrywania wiadomości głosowych.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -89,7 +89,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@" xml:space="preserve"> <trans-unit id="%@ and %@" xml:space="preserve">
<source>%@ and %@</source> <source>%@ and %@</source>
<target>%@ и %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ and %@ connected" xml:space="preserve"> <trans-unit id="%@ and %@ connected" xml:space="preserve">
@@ -104,7 +103,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ connected" xml:space="preserve"> <trans-unit id="%@ connected" xml:space="preserve">
<source>%@ connected</source> <source>%@ connected</source>
<target>%@ соединен(а)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -134,7 +132,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld members" xml:space="preserve"> <trans-unit id="%@, %@ and %lld members" xml:space="preserve">
<source>%@, %@ and %lld members</source> <source>%@, %@ and %lld members</source>
<target>%@, %@ и %lld членов группы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve"> <trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
@@ -204,7 +201,6 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld group events" xml:space="preserve"> <trans-unit id="%lld group events" xml:space="preserve">
<source>%lld group events</source> <source>%lld group events</source>
<target>%lld событий</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld members" xml:space="preserve"> <trans-unit id="%lld members" xml:space="preserve">
@@ -214,17 +210,14 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked" xml:space="preserve"> <trans-unit id="%lld messages blocked" xml:space="preserve">
<source>%lld messages blocked</source> <source>%lld messages blocked</source>
<target>%lld сообщений заблокировано</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages marked deleted" xml:space="preserve"> <trans-unit id="%lld messages marked deleted" xml:space="preserve">
<source>%lld messages marked deleted</source> <source>%lld messages marked deleted</source>
<target>%lld сообщений помечено удалёнными</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages moderated by %@" xml:space="preserve"> <trans-unit id="%lld messages moderated by %@" xml:space="preserve">
<source>%lld messages moderated by %@</source> <source>%lld messages moderated by %@</source>
<target>%lld сообщений модерировано членом %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld minutes" xml:space="preserve"> <trans-unit id="%lld minutes" xml:space="preserve">
@@ -297,16 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<target>(новое)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<target>(это устройство v%@)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -392,15 +375,6 @@
- and more!</source> - and more!</source>
<target>- более стабильная доставка сообщений. <target>- более стабильная доставка сообщений.
- немного улучшенные группы. - немного улучшенные группы.
- и прочее!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<target>- опционально уведомляйте удалённые контакты.
- имена профилей с пробелами.
- и прочее!</target> - и прочее!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -420,7 +394,6 @@
</trans-unit> </trans-unit>
<trans-unit id="0 sec" xml:space="preserve"> <trans-unit id="0 sec" xml:space="preserve">
<source>0 sec</source> <source>0 sec</source>
<target>0 сек</target>
<note>time to disappear</note> <note>time to disappear</note>
</trans-unit> </trans-unit>
<trans-unit id="0s" xml:space="preserve"> <trans-unit id="0s" xml:space="preserve">
@@ -650,7 +623,6 @@
</trans-unit> </trans-unit>
<trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve"> <trans-unit id="All new messages from %@ will be hidden!" xml:space="preserve">
<source>All new messages from %@ will be hidden!</source> <source>All new messages from %@ will be hidden!</source>
<target>Все новые сообщения от %@ будут скрыты!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All your contacts will remain connected." xml:space="preserve"> <trans-unit id="All your contacts will remain connected." xml:space="preserve">
@@ -760,12 +732,10 @@
</trans-unit> </trans-unit>
<trans-unit id="Already connecting!" xml:space="preserve"> <trans-unit id="Already connecting!" xml:space="preserve">
<source>Already connecting!</source> <source>Already connecting!</source>
<target>Уже соединяется!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Already joining the group!" xml:space="preserve"> <trans-unit id="Already joining the group!" xml:space="preserve">
<source>Already joining the group!</source> <source>Already joining the group!</source>
<target>Вступление в группу уже начато!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Always use relay" xml:space="preserve"> <trans-unit id="Always use relay" xml:space="preserve">
@@ -888,11 +858,6 @@
<target>Назад</target> <target>Назад</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<target>Неверный адрес компьютера</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Ошибка ID сообщения</target> <target>Ошибка ID сообщения</target>
@@ -903,11 +868,6 @@
<target>Ошибка хэш сообщения</target> <target>Ошибка хэш сообщения</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<target>Улучшенные группы</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Улучшенные сообщения</target> <target>Улучшенные сообщения</target>
@@ -915,22 +875,14 @@
</trans-unit> </trans-unit>
<trans-unit id="Block" xml:space="preserve"> <trans-unit id="Block" xml:space="preserve">
<source>Block</source> <source>Block</source>
<target>Заблокировать</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<target>Блокируйте членов группы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<target>Заблокировать члена группы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block member?" xml:space="preserve"> <trans-unit id="Block member?" xml:space="preserve">
<source>Block member?</source> <source>Block member?</source>
<target>Заблокировать члена группы?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve"> <trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1194,43 +1146,27 @@
<target>Соединиться</target> <target>Соединиться</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<target>Соединяться автоматически</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Соединиться Инкогнито</target> <target>Соединиться Инкогнито</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<target>Подключиться к компьютеру</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<target>Соединиться с самим собой?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own SimpleX address!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own SimpleX address!</source> This is your own SimpleX address!</source>
<target>Соединиться с самим собой?
Это ваш собственный адрес SimpleX!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve"> <trans-unit id="Connect to yourself?&#10;This is your own one-time link!" xml:space="preserve">
<source>Connect to yourself? <source>Connect to yourself?
This is your own one-time link!</source> This is your own one-time link!</source>
<target>Соединиться с самим собой?
Это ваша собственная одноразовая ссылка!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via contact address" xml:space="preserve"> <trans-unit id="Connect via contact address" xml:space="preserve">
<source>Connect via contact address</source> <source>Connect via contact address</source>
<target>Соединиться через адрес</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect via link" xml:space="preserve"> <trans-unit id="Connect via link" xml:space="preserve">
@@ -1250,17 +1186,6 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Connect with %@" xml:space="preserve"> <trans-unit id="Connect with %@" xml:space="preserve">
<source>Connect with %@</source> <source>Connect with %@</source>
<target>Соединиться с %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<target>Подключенный компьютер</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<target>Компьютер подключен</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
@@ -1273,11 +1198,6 @@ This is your own one-time link!</source>
<target>Устанавливается соединение с сервером… (ошибка: %@)</target> <target>Устанавливается соединение с сервером… (ошибка: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<target>Подключение к компьютеру</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Соединение</target> <target>Соединение</target>
@@ -1298,11 +1218,6 @@ This is your own one-time link!</source>
<target>Запрос на соединение отправлен!</target> <target>Запрос на соединение отправлен!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<target>Подключение прервано</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Превышено время соединения</target> <target>Превышено время соединения</target>
@@ -1370,7 +1285,6 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Correct name to %@?" xml:space="preserve"> <trans-unit id="Correct name to %@?" xml:space="preserve">
<source>Correct name to %@?</source> <source>Correct name to %@?</source>
<target>Исправить имя на %@?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create" xml:space="preserve"> <trans-unit id="Create" xml:space="preserve">
@@ -1383,11 +1297,6 @@ This is your own one-time link!</source>
<target>Создать адрес SimpleX</target> <target>Создать адрес SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<target>Создайте группу, используя случайный профиль.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Создайте адрес, чтобы можно было соединиться с вами.</target> <target>Создайте адрес, чтобы можно было соединиться с вами.</target>
@@ -1400,7 +1309,6 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Create group" xml:space="preserve"> <trans-unit id="Create group" xml:space="preserve">
<source>Create group</source> <source>Create group</source>
<target>Создать группу</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create group link" xml:space="preserve"> <trans-unit id="Create group link" xml:space="preserve">
@@ -1425,7 +1333,6 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Create profile" xml:space="preserve"> <trans-unit id="Create profile" xml:space="preserve">
<source>Create profile</source> <source>Create profile</source>
<target>Создать профиль</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create queue" xml:space="preserve"> <trans-unit id="Create queue" xml:space="preserve">
@@ -1588,7 +1495,6 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Delete %lld messages?" xml:space="preserve"> <trans-unit id="Delete %lld messages?" xml:space="preserve">
<source>Delete %lld messages?</source> <source>Delete %lld messages?</source>
<target>Удалить %lld сообщений?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete Contact" xml:space="preserve"> <trans-unit id="Delete Contact" xml:space="preserve">
@@ -1618,7 +1524,6 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Delete and notify contact" xml:space="preserve"> <trans-unit id="Delete and notify contact" xml:space="preserve">
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<target>Удалить и уведомить контакт</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete archive" xml:space="preserve"> <trans-unit id="Delete archive" xml:space="preserve">
@@ -1654,8 +1559,6 @@ This is your own one-time link!</source>
<trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve"> <trans-unit id="Delete contact?&#10;This cannot be undone!" xml:space="preserve">
<source>Delete contact? <source>Delete contact?
This cannot be undone!</source> This cannot be undone!</source>
<target>Удалить контакт?
Это не может быть отменено!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete database" xml:space="preserve"> <trans-unit id="Delete database" xml:space="preserve">
@@ -1798,21 +1701,6 @@ This cannot be undone!</source>
<target>Описание</target> <target>Описание</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<target>Адрес компьютера</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<target>Версия настольного приложения %@ несовместима с этим приложением.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<target>Компьютеры</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Для разработчиков</target> <target>Для разработчиков</target>
@@ -1903,21 +1791,11 @@ This cannot be undone!</source>
<target>Разрыв соединения</target> <target>Разрыв соединения</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<target>Отключить компьютер?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>Найдите и вступите в группы</target> <target>Найдите и вступите в группы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<target>Обнаружение по локальной сети</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>Не используйте SimpleX для экстренных звонков.</target> <target>Не используйте SimpleX для экстренных звонков.</target>
@@ -2088,16 +1966,6 @@ This cannot be undone!</source>
<target>Зашифрованное сообщение: неожиданная ошибка</target> <target>Зашифрованное сообщение: неожиданная ошибка</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<target>Ошибка нового соглашения о шифровании</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<target>Ошибка нового соглашения о шифровании.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Введите Код</target> <target>Введите Код</target>
@@ -2110,7 +1978,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Enter group name…" xml:space="preserve"> <trans-unit id="Enter group name…" xml:space="preserve">
<source>Enter group name…</source> <source>Enter group name…</source>
<target>Введите имя группы…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase…" xml:space="preserve"> <trans-unit id="Enter passphrase…" xml:space="preserve">
@@ -2128,11 +1995,6 @@ This cannot be undone!</source>
<target>Ввести сервер вручную</target> <target>Ввести сервер вручную</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<target>Введите имя этого устройства…</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Введите приветственное сообщение…</target> <target>Введите приветственное сообщение…</target>
@@ -2145,7 +2007,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Enter your name…" xml:space="preserve"> <trans-unit id="Enter your name…" xml:space="preserve">
<source>Enter your name…</source> <source>Enter your name…</source>
<target>Введите ваше имя…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error" xml:space="preserve"> <trans-unit id="Error" xml:space="preserve">
@@ -2205,7 +2066,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Error creating member contact" xml:space="preserve"> <trans-unit id="Error creating member contact" xml:space="preserve">
<source>Error creating member contact</source> <source>Error creating member contact</source>
<target>Ошибка создания контакта с членом группы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error creating profile!" xml:space="preserve"> <trans-unit id="Error creating profile!" xml:space="preserve">
@@ -2340,7 +2200,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Error sending member contact invitation" xml:space="preserve"> <trans-unit id="Error sending member contact invitation" xml:space="preserve">
<source>Error sending member contact invitation</source> <source>Error sending member contact invitation</source>
<target>Ошибка отправки приглашения члену группы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error sending message" xml:space="preserve"> <trans-unit id="Error sending message" xml:space="preserve">
@@ -2425,7 +2284,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Expand" xml:space="preserve"> <trans-unit id="Expand" xml:space="preserve">
<source>Expand</source> <source>Expand</source>
<target>Раскрыть</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Export database" xml:space="preserve"> <trans-unit id="Export database" xml:space="preserve">
@@ -2458,11 +2316,6 @@ This cannot be undone!</source>
<target>Быстрые и не нужно ждать, когда отправитель онлайн!</target> <target>Быстрые и не нужно ждать, когда отправитель онлайн!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<target>Быстрое вступление и надежная доставка сообщений.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Избранный</target> <target>Избранный</target>
@@ -2558,11 +2411,6 @@ This cannot be undone!</source>
<target>Для консоли</target> <target>Для консоли</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<target>Компьютер найден</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Французский интерфейс</target> <target>Французский интерфейс</target>
@@ -2585,7 +2433,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Fully decentralized visible only to members." xml:space="preserve"> <trans-unit id="Fully decentralized visible only to members." xml:space="preserve">
<source>Fully decentralized visible only to members.</source> <source>Fully decentralized visible only to members.</source>
<target>Группа полностью децентрализована – она видна только членам.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Fully re-implemented - work in background!" xml:space="preserve"> <trans-unit id="Fully re-implemented - work in background!" xml:space="preserve">
@@ -2610,12 +2457,10 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists" xml:space="preserve"> <trans-unit id="Group already exists" xml:space="preserve">
<source>Group already exists</source> <source>Group already exists</source>
<target>Группа уже существует</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group already exists!" xml:space="preserve"> <trans-unit id="Group already exists!" xml:space="preserve">
<source>Group already exists!</source> <source>Group already exists!</source>
<target>Группа уже существует!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group display name" xml:space="preserve"> <trans-unit id="Group display name" xml:space="preserve">
@@ -2888,11 +2733,6 @@ This cannot be undone!</source>
<target>Инкогнито</target> <target>Инкогнито</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<target>Инкогнито группы</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Режим Инкогнито</target> <target>Режим Инкогнито</target>
@@ -2923,11 +2763,6 @@ This cannot be undone!</source>
<target>Несовместимая версия базы данных</target> <target>Несовместимая версия базы данных</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<target>Несовместимая версия</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Неправильный код</target> <target>Неправильный код</target>
@@ -2977,7 +2812,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Invalid name!" xml:space="preserve"> <trans-unit id="Invalid name!" xml:space="preserve">
<source>Invalid name!</source> <source>Invalid name!</source>
<target>Неверное имя!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invalid server address!" xml:space="preserve"> <trans-unit id="Invalid server address!" xml:space="preserve">
@@ -3073,7 +2907,6 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Join group?" xml:space="preserve"> <trans-unit id="Join group?" xml:space="preserve">
<source>Join group?</source> <source>Join group?</source>
<target>Вступить в группу?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join incognito" xml:space="preserve"> <trans-unit id="Join incognito" xml:space="preserve">
@@ -3083,14 +2916,11 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Join with current profile" xml:space="preserve"> <trans-unit id="Join with current profile" xml:space="preserve">
<source>Join with current profile</source> <source>Join with current profile</source>
<target>Вступить с активным профилем</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve"> <trans-unit id="Join your group?&#10;This is your link for group %@!" xml:space="preserve">
<source>Join your group? <source>Join your group?
This is your link for group %@!</source> This is your link for group %@!</source>
<target>Вступить в вашу группу?
Это ваша ссылка на группу %@!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Joining group" xml:space="preserve"> <trans-unit id="Joining group" xml:space="preserve">
@@ -3098,11 +2928,6 @@ This is your link for group %@!</source>
<target>Вступление в группу</target> <target>Вступление в группу</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<target>Оставьте приложение открытым, чтобы использовать его с компьютера</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Сохраните Ваши соединения</target> <target>Сохраните Ваши соединения</target>
@@ -3163,21 +2988,6 @@ This is your link for group %@!</source>
<target>Ограничения</target> <target>Ограничения</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<target>Свяжите мобильное и настольное приложения! 🔗</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>Опции связанных компьютеров</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<target>Связанные компьютеры</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Живое сообщение!</target> <target>Живое сообщение!</target>
@@ -3330,7 +3140,6 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Messages from %@ will be shown!" xml:space="preserve"> <trans-unit id="Messages from %@ will be shown!" xml:space="preserve">
<source>Messages from %@ will be shown!</source> <source>Messages from %@ will be shown!</source>
<target>Сообщения от %@ будут показаны!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrating database archive…" xml:space="preserve"> <trans-unit id="Migrating database archive…" xml:space="preserve">
@@ -3528,11 +3337,6 @@ This is your link for group %@!</source>
<target>Нет полученных или отправленных файлов</target> <target>Нет полученных или отправленных файлов</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<target>Несовместимая версия!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Уведомления</target> <target>Уведомления</target>
@@ -3669,7 +3473,6 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Open" xml:space="preserve"> <trans-unit id="Open" xml:space="preserve">
<source>Open</source> <source>Open</source>
<target>Открыть</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Open Settings" xml:space="preserve"> <trans-unit id="Open Settings" xml:space="preserve">
@@ -3689,7 +3492,6 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Open group" xml:space="preserve"> <trans-unit id="Open group" xml:space="preserve">
<source>Open group</source> <source>Open group</source>
<target>Открыть группу</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Open user profiles" xml:space="preserve"> <trans-unit id="Open user profiles" xml:space="preserve">
@@ -3752,11 +3554,6 @@ This is your link for group %@!</source>
<target>Вставить</target> <target>Вставить</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<target>Вставить адрес компьютера</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Вставить изображение</target> <target>Вставить изображение</target>
@@ -3904,12 +3701,10 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Имя профиля</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile name:" xml:space="preserve"> <trans-unit id="Profile name:" xml:space="preserve">
<source>Profile name:</source> <source>Profile name:</source>
<target>Имя профиля:</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile password" xml:space="preserve"> <trans-unit id="Profile password" xml:space="preserve">
@@ -4159,12 +3954,10 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Repeat connection request?" xml:space="preserve"> <trans-unit id="Repeat connection request?" xml:space="preserve">
<source>Repeat connection request?</source> <source>Repeat connection request?</source>
<target>Повторить запрос на соединение?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Repeat join request?" xml:space="preserve"> <trans-unit id="Repeat join request?" xml:space="preserve">
<source>Repeat join request?</source> <source>Repeat join request?</source>
<target>Повторить запрос на вступление?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Reply" xml:space="preserve"> <trans-unit id="Reply" xml:space="preserve">
@@ -4352,11 +4145,6 @@ This is your link for group %@!</source>
<target>Сканировать QR код</target> <target>Сканировать QR код</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<target>Сканировать QR код с компьютера</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Сканировать код</target> <target>Сканировать код</target>
@@ -4439,7 +4227,6 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Send direct message to connect" xml:space="preserve"> <trans-unit id="Send direct message to connect" xml:space="preserve">
<source>Send direct message to connect</source> <source>Send direct message to connect</source>
<target>Отправьте сообщение чтобы соединиться</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Send disappearing message" xml:space="preserve"> <trans-unit id="Send disappearing message" xml:space="preserve">
@@ -4577,11 +4364,6 @@ This is your link for group %@!</source>
<target>Серверы</target> <target>Серверы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<target>Код сессии</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Установить 1 день</target> <target>Установить 1 день</target>
@@ -4894,7 +4676,6 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Tap to Connect" xml:space="preserve"> <trans-unit id="Tap to Connect" xml:space="preserve">
<source>Tap to Connect</source> <source>Tap to Connect</source>
<target>Нажмите чтобы соединиться</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Tap to activate profile." xml:space="preserve"> <trans-unit id="Tap to activate profile." xml:space="preserve">
@@ -5079,11 +4860,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Это действие нельзя отменить — Ваш профиль, контакты, сообщения и файлы будут безвозвратно утеряны.</target> <target>Это действие нельзя отменить — Ваш профиль, контакты, сообщения и файлы будут безвозвратно утеряны.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<target>Имя этого устройства</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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>В группе более %lld членов, отчёты о доставке выключены.</target> <target>В группе более %lld членов, отчёты о доставке выключены.</target>
@@ -5096,12 +4872,10 @@ It can happen because of some bug or when the connection is compromised.</source
</trans-unit> </trans-unit>
<trans-unit id="This is your own SimpleX address!" xml:space="preserve"> <trans-unit id="This is your own SimpleX address!" xml:space="preserve">
<source>This is your own SimpleX address!</source> <source>This is your own SimpleX address!</source>
<target>Это ваш собственный адрес SimpleX!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This is your own one-time link!" xml:space="preserve"> <trans-unit id="This is your own one-time link!" xml:space="preserve">
<source>This is your own one-time link!</source> <source>This is your own one-time link!</source>
<target>Это ваша собственная одноразовая ссылка!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve"> <trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
@@ -5119,11 +4893,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Чтобы соединиться с Вами, Ваш контакт может отсканировать QR-код или использовать ссылку в приложении.</target> <target>Чтобы соединиться с Вами, Ваш контакт может отсканировать QR-код или использовать ссылку в приложении.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<target>Чтобы скрыть нежелательные сообщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Чтобы соединиться</target> <target>Чтобы соединиться</target>
@@ -5208,17 +4977,14 @@ You will be prompted to complete authentication before this feature is enabled.<
</trans-unit> </trans-unit>
<trans-unit id="Unblock" xml:space="preserve"> <trans-unit id="Unblock" xml:space="preserve">
<source>Unblock</source> <source>Unblock</source>
<target>Разблокировать</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member" xml:space="preserve"> <trans-unit id="Unblock member" xml:space="preserve">
<source>Unblock member</source> <source>Unblock member</source>
<target>Разблокировать члена группы</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unblock member?" xml:space="preserve"> <trans-unit id="Unblock member?" xml:space="preserve">
<source>Unblock member?</source> <source>Unblock member?</source>
<target>Разблокировать члена группы?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unexpected error: %@" xml:space="preserve"> <trans-unit id="Unexpected error: %@" xml:space="preserve">
@@ -5283,16 +5049,6 @@ To connect, please ask your contact to create another connection link and check
Чтобы установить соединение, попросите Ваш контакт создать еще одну ссылку и проверьте Ваше соединение с сетью.</target> Чтобы установить соединение, попросите Ваш контакт создать еще одну ссылку и проверьте Ваше соединение с сетью.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<target>Забыть</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<target>Забыть компьютер?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Разблокировать</target> <target>Разблокировать</target>
@@ -5383,11 +5139,6 @@ To connect, please ask your contact to create another connection link and check
<target>Использовать для новых соединений</target> <target>Использовать для новых соединений</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<target>Использовать с компьютера</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Использовать интерфейс iOS для звонков</target> <target>Использовать интерфейс iOS для звонков</target>
@@ -5418,26 +5169,11 @@ To connect, please ask your contact to create another connection link and check
<target>Используются серверы, предоставленные SimpleX Chat.</target> <target>Используются серверы, предоставленные SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<target>Сверьте код с компьютером</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<target>Проверить соединение</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Проверить безопасность соединения</target> <target>Проверить безопасность соединения</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<target>Проверять соединения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Подтвердить код безопасности</target> <target>Подтвердить код безопасности</target>
@@ -5448,11 +5184,6 @@ To connect, please ask your contact to create another connection link and check
<target>В браузере</target> <target>В браузере</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<target>Через безопасный квантово-устойчивый протокол.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Видеозвонок</target> <target>Видеозвонок</target>
@@ -5503,11 +5234,6 @@ To connect, please ask your contact to create another connection link and check
<target>Голосовое сообщение…</target> <target>Голосовое сообщение…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<target>Ожидается подключение компьютера...</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Ожидается прием файла</target> <target>Ожидается прием файла</target>
@@ -5610,39 +5336,31 @@ To connect, please ask your contact to create another connection link and check
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve"> <trans-unit id="You are already connecting to %@." xml:space="preserve">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Вы уже соединяетесь с %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve"> <trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
<source>You are already connecting via this one-time link!</source> <source>You are already connecting via this one-time link!</source>
<target>Вы уже соединяетесь по этой одноразовой ссылке!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already in group %@." xml:space="preserve"> <trans-unit id="You are already in group %@." xml:space="preserve">
<source>You are already in group %@.</source> <source>You are already in group %@.</source>
<target>Вы уже состоите в группе %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group %@." xml:space="preserve"> <trans-unit id="You are already joining the group %@." xml:space="preserve">
<source>You are already joining the group %@.</source> <source>You are already joining the group %@.</source>
<target>Вы уже вступаете в группу %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link!" xml:space="preserve"> <trans-unit id="You are already joining the group via this link!" xml:space="preserve">
<source>You are already joining the group via this link!</source> <source>You are already joining the group via this link!</source>
<target>Вы уже вступаете в группу по этой ссылке!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group via this link." xml:space="preserve"> <trans-unit id="You are already joining the group via this link." xml:space="preserve">
<source>You are already joining the group via this link.</source> <source>You are already joining the group via this link.</source>
<target>Вы уже вступаете в группу по этой ссылке.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve"> <trans-unit id="You are already joining the group!&#10;Repeat join request?" xml:space="preserve">
<source>You are already joining the group! <source>You are already joining the group!
Repeat join request?</source> Repeat join request?</source>
<target>Вы уже вступаете в группу!
Повторить запрос на вступление?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve"> <trans-unit id="You are connected to the server used to receive messages from this contact." xml:space="preserve">
@@ -5742,14 +5460,11 @@ Repeat join request?</source>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection via this address!" xml:space="preserve"> <trans-unit id="You have already requested connection via this address!" xml:space="preserve">
<source>You have already requested connection via this address!</source> <source>You have already requested connection via this address!</source>
<target>Вы уже запросили соединение через этот адрес!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve"> <trans-unit id="You have already requested connection!&#10;Repeat connection request?" xml:space="preserve">
<source>You have already requested connection! <source>You have already requested connection!
Repeat connection request?</source> Repeat connection request?</source>
<target>Вы уже запросили соединение!
Повторить запрос?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You have no chats" xml:space="preserve"> <trans-unit id="You have no chats" xml:space="preserve">
@@ -5804,7 +5519,6 @@ Repeat connection request?</source>
</trans-unit> </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"> <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> <source>You will be connected when group link host's device is online, please wait or check later!</source>
<target>Соединение будет установлено, когда владелец ссылки группы будет онлайн. Пожалуйста, подождите или проверьте позже!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve"> <trans-unit id="You will be connected when your connection request is accepted, please wait or check later!" xml:space="preserve">
@@ -5824,7 +5538,6 @@ Repeat connection request?</source>
</trans-unit> </trans-unit>
<trans-unit id="You will connect to all group members." xml:space="preserve"> <trans-unit id="You will connect to all group members." xml:space="preserve">
<source>You will connect to all group members.</source> <source>You will connect to all group members.</source>
<target>Вы соединитесь со всеми членами группы.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve"> <trans-unit id="You will still receive calls and notifications from muted profiles when they are active." xml:space="preserve">
@@ -5948,7 +5661,6 @@ You can change it in Settings.</source>
</trans-unit> </trans-unit>
<trans-unit id="Your profile" xml:space="preserve"> <trans-unit id="Your profile" xml:space="preserve">
<source>Your profile</source> <source>Your profile</source>
<target>Ваш профиль</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your profile **%@** will be shared." xml:space="preserve"> <trans-unit id="Your profile **%@** will be shared." xml:space="preserve">
@@ -6045,7 +5757,6 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="and %lld other events" xml:space="preserve"> <trans-unit id="and %lld other events" xml:space="preserve">
<source>and %lld other events</source> <source>and %lld other events</source>
<target>и %lld других событий</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="audio call (not e2e encrypted)" xml:space="preserve"> <trans-unit id="audio call (not e2e encrypted)" xml:space="preserve">
@@ -6053,11 +5764,6 @@ SimpleX серверы не могут получить доступ к Ваше
<target>аудиозвонок (не e2e зашифрованный)</target> <target>аудиозвонок (не e2e зашифрованный)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<target>автор</target>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>ошибка ID сообщения</target> <target>ошибка ID сообщения</target>
@@ -6070,7 +5776,6 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="blocked" xml:space="preserve"> <trans-unit id="blocked" xml:space="preserve">
<source>blocked</source> <source>blocked</source>
<target>заблокировано</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="bold" xml:space="preserve"> <trans-unit id="bold" xml:space="preserve">
@@ -6145,7 +5850,6 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="connected directly" xml:space="preserve"> <trans-unit id="connected directly" xml:space="preserve">
<source>connected directly</source> <source>connected directly</source>
<target>соединен(а) напрямую</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="connecting" xml:space="preserve"> <trans-unit id="connecting" xml:space="preserve">
@@ -6245,7 +5949,6 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="deleted contact" xml:space="preserve"> <trans-unit id="deleted contact" xml:space="preserve">
<source>deleted contact</source> <source>deleted contact</source>
<target>удалил(а) контакт</target>
<note>rcv direct event chat item</note> <note>rcv direct event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="deleted group" xml:space="preserve"> <trans-unit id="deleted group" xml:space="preserve">
@@ -6612,7 +6315,6 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="send direct message" xml:space="preserve"> <trans-unit id="send direct message" xml:space="preserve">
<source>send direct message</source> <source>send direct message</source>
<target>отправьте сообщение</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="starting…" xml:space="preserve"> <trans-unit id="starting…" xml:space="preserve">
@@ -6640,11 +6342,6 @@ SimpleX серверы не могут получить доступ к Ваше
<target>обновил(а) профиль группы</target> <target>обновил(а) профиль группы</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<target>v%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6782,11 +6479,6 @@ SimpleX серверы не могут получить доступ к Ваше
<target>SimpleX использует Face ID для аутентификации</target> <target>SimpleX использует Face ID для аутентификации</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<target>SimpleX использует доступ к локальной сети, чтобы разрешить использование профиля чата через компьютер в той же сети.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX использует микрофон для аудио и видео звонков, и для записи голосовых сообщений.</target> <target>SimpleX использует микрофон для аудио и видео звонков, и для записи голосовых сообщений.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -284,14 +284,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -377,12 +369,6 @@
- และอื่น ๆ!</target> - และอื่น ๆ!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -860,10 +846,6 @@
<target>กลับ</target> <target>กลับ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>ID ข้อความที่ไม่ดี</target> <target>ID ข้อความที่ไม่ดี</target>
@@ -874,10 +856,6 @@
<target>แฮชข้อความไม่ดี</target> <target>แฮชข้อความไม่ดี</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>ข้อความที่ดีขึ้น</target> <target>ข้อความที่ดีขึ้น</target>
@@ -887,10 +865,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1159,18 +1133,10 @@
<target>เชื่อมต่อ</target> <target>เชื่อมต่อ</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1207,14 +1173,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>กำลังเชื่อมต่อกับเซิร์ฟเวอร์…</target> <target>กำลังเชื่อมต่อกับเซิร์ฟเวอร์…</target>
@@ -1225,10 +1183,6 @@ This is your own one-time link!</source>
<target>กำลังเชื่อมต่อกับเซิร์ฟเวอร์... (ข้อผิดพลาด: %@)</target> <target>กำลังเชื่อมต่อกับเซิร์ฟเวอร์... (ข้อผิดพลาด: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>การเชื่อมต่อ</target> <target>การเชื่อมต่อ</target>
@@ -1249,10 +1203,6 @@ This is your own one-time link!</source>
<target>ส่งคําขอเชื่อมต่อแล้ว!</target> <target>ส่งคําขอเชื่อมต่อแล้ว!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>หมดเวลาการเชื่อมต่อ</target> <target>หมดเวลาการเชื่อมต่อ</target>
@@ -1332,10 +1282,6 @@ This is your own one-time link!</source>
<target>สร้างที่อยู่ SimpleX</target> <target>สร้างที่อยู่ SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>สร้างที่อยู่เพื่อให้ผู้อื่นเชื่อมต่อกับคุณ</target> <target>สร้างที่อยู่เพื่อให้ผู้อื่นเชื่อมต่อกับคุณ</target>
@@ -1738,18 +1684,6 @@ This cannot be undone!</source>
<target>คำอธิบาย</target> <target>คำอธิบาย</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>พัฒนา</target> <target>พัฒนา</target>
@@ -1840,18 +1774,10 @@ This cannot be undone!</source>
<target>ตัดการเชื่อมต่อ</target> <target>ตัดการเชื่อมต่อ</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>อย่าใช้ SimpleX สําหรับการโทรฉุกเฉิน</target> <target>อย่าใช้ SimpleX สําหรับการโทรฉุกเฉิน</target>
@@ -2020,14 +1946,6 @@ This cannot be undone!</source>
<target>ข้อความที่ encrypt: ข้อผิดพลาดที่ไม่คาดคิด</target> <target>ข้อความที่ encrypt: ข้อผิดพลาดที่ไม่คาดคิด</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>ใส่รหัสผ่าน</target> <target>ใส่รหัสผ่าน</target>
@@ -2057,10 +1975,6 @@ This cannot be undone!</source>
<target>ใส่เซิร์ฟเวอร์ด้วยตนเอง</target> <target>ใส่เซิร์ฟเวอร์ด้วยตนเอง</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>ใส่ข้อความต้อนรับ…</target> <target>ใส่ข้อความต้อนรับ…</target>
@@ -2381,10 +2295,6 @@ This cannot be undone!</source>
<target>รวดเร็วและไม่ต้องรอจนกว่าผู้ส่งจะออนไลน์!</target> <target>รวดเร็วและไม่ต้องรอจนกว่าผู้ส่งจะออนไลน์!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>ที่ชอบ</target> <target>ที่ชอบ</target>
@@ -2480,10 +2390,6 @@ This cannot be undone!</source>
<target>สำหรับคอนโซล</target> <target>สำหรับคอนโซล</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>อินเทอร์เฟซภาษาฝรั่งเศส</target> <target>อินเทอร์เฟซภาษาฝรั่งเศส</target>
@@ -2806,10 +2712,6 @@ This cannot be undone!</source>
<target>ไม่ระบุตัวตน</target> <target>ไม่ระบุตัวตน</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>โหมดไม่ระบุตัวตน</target> <target>โหมดไม่ระบุตัวตน</target>
@@ -2839,10 +2741,6 @@ This cannot be undone!</source>
<target>เวอร์ชันฐานข้อมูลที่เข้ากันไม่ได้</target> <target>เวอร์ชันฐานข้อมูลที่เข้ากันไม่ได้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>รหัสผ่านไม่ถูกต้อง</target> <target>รหัสผ่านไม่ถูกต้อง</target>
@@ -3007,10 +2905,6 @@ This is your link for group %@!</source>
<target>กำลังจะเข้าร่วมกลุ่ม</target> <target>กำลังจะเข้าร่วมกลุ่ม</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>รักษาการเชื่อมต่อของคุณ</target> <target>รักษาการเชื่อมต่อของคุณ</target>
@@ -3071,18 +2965,6 @@ This is your link for group %@!</source>
<target>ข้อจำกัด</target> <target>ข้อจำกัด</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>ข้อความสด!</target> <target>ข้อความสด!</target>
@@ -3429,10 +3311,6 @@ This is your link for group %@!</source>
<target>ไม่มีไฟล์ที่ได้รับหรือส่ง</target> <target>ไม่มีไฟล์ที่ได้รับหรือส่ง</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>การแจ้งเตือน</target> <target>การแจ้งเตือน</target>
@@ -3650,10 +3528,6 @@ This is your link for group %@!</source>
<target>แปะ</target> <target>แปะ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>แปะภาพ</target> <target>แปะภาพ</target>
@@ -4242,10 +4116,6 @@ This is your link for group %@!</source>
<target>สแกนคิวอาร์โค้ด</target> <target>สแกนคิวอาร์โค้ด</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>สแกนรหัส</target> <target>สแกนรหัส</target>
@@ -4463,10 +4333,6 @@ This is your link for group %@!</source>
<target>เซิร์ฟเวอร์</target> <target>เซิร์ฟเวอร์</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>ตั้ง 1 วัน</target> <target>ตั้ง 1 วัน</target>
@@ -4960,10 +4826,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>การดำเนินการนี้ไม่สามารถยกเลิกได้ - โปรไฟล์ ผู้ติดต่อ ข้อความ และไฟล์ของคุณจะสูญหายไปอย่างถาวร</target> <target>การดำเนินการนี้ไม่สามารถยกเลิกได้ - โปรไฟล์ ผู้ติดต่อ ข้อความ และไฟล์ของคุณจะสูญหายไปอย่างถาวร</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4996,10 +4858,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>เพื่อการเชื่อมต่อ ผู้ติดต่อของคุณสามารถสแกนคิวอาร์โค้ดหรือใช้ลิงก์ในแอป</target> <target>เพื่อการเชื่อมต่อ ผู้ติดต่อของคุณสามารถสแกนคิวอาร์โค้ดหรือใช้ลิงก์ในแอป</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>เพื่อสร้างการเชื่อมต่อใหม่</target> <target>เพื่อสร้างการเชื่อมต่อใหม่</target>
@@ -5155,14 +5013,6 @@ To connect, please ask your contact to create another connection link and check
ในการเชื่อมต่อ โปรดขอให้ผู้ติดต่อของคุณสร้างลิงก์การเชื่อมต่ออื่น และตรวจสอบว่าคุณมีการเชื่อมต่อเครือข่ายที่เสถียร</target> ในการเชื่อมต่อ โปรดขอให้ผู้ติดต่อของคุณสร้างลิงก์การเชื่อมต่ออื่น และตรวจสอบว่าคุณมีการเชื่อมต่อเครือข่ายที่เสถียร</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>ปลดล็อค</target> <target>ปลดล็อค</target>
@@ -5252,10 +5102,6 @@ To connect, please ask your contact to create another connection link and check
<target>ใช้สำหรับการเชื่อมต่อใหม่</target> <target>ใช้สำหรับการเชื่อมต่อใหม่</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>ใช้อินเทอร์เฟซการโทร iOS</target> <target>ใช้อินเทอร์เฟซการโทร iOS</target>
@@ -5285,23 +5131,11 @@ To connect, please ask your contact to create another connection link and check
<target>กำลังใช้เซิร์ฟเวอร์ SimpleX Chat อยู่</target> <target>กำลังใช้เซิร์ฟเวอร์ SimpleX Chat อยู่</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>ตรวจสอบความปลอดภัยในการเชื่อมต่อ</target> <target>ตรวจสอบความปลอดภัยในการเชื่อมต่อ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>ตรวจสอบรหัสความปลอดภัย</target> <target>ตรวจสอบรหัสความปลอดภัย</target>
@@ -5312,10 +5146,6 @@ To connect, please ask your contact to create another connection link and check
<target>ผ่านเบราว์เซอร์</target> <target>ผ่านเบราว์เซอร์</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>การสนทนาทางวิดีโอ</target> <target>การสนทนาทางวิดีโอ</target>
@@ -5366,10 +5196,6 @@ To connect, please ask your contact to create another connection link and check
<target>ข้อความเสียง…</target> <target>ข้อความเสียง…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>กำลังรอไฟล์</target> <target>กำลังรอไฟล์</target>
@@ -5898,10 +5724,6 @@ SimpleX servers cannot see your profile.</source>
<target>การโทรด้วยเสียง (ไม่ได้ encrypt จากต้นจนจบ)</target> <target>การโทรด้วยเสียง (ไม่ได้ encrypt จากต้นจนจบ)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>ID ข้อความที่ไม่ดี</target> <target>ID ข้อความที่ไม่ดี</target>
@@ -6478,10 +6300,6 @@ SimpleX servers cannot see your profile.</source>
<target>อัปเดตโปรไฟล์กลุ่มแล้ว</target> <target>อัปเดตโปรไฟล์กลุ่มแล้ว</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6619,10 +6437,6 @@ SimpleX servers cannot see your profile.</source>
<target>SimpleX ใช้ Face ID สำหรับการรับรองความถูกต้องในเครื่อง</target> <target>SimpleX ใช้ Face ID สำหรับการรับรองความถูกต้องในเครื่อง</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX ต้องการการเข้าถึงไมโครโฟนสำหรับการโทรด้วยเสียงและวิดีโอ และเพื่อบันทึกข้อความเสียง</target> <target>SimpleX ต้องการการเข้าถึงไมโครโฟนสำหรับการโทรด้วยเสียงและวิดีโอ และเพื่อบันทึกข้อความเสียง</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -289,14 +289,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -382,12 +374,6 @@
- і багато іншого!</target> - і багато іншого!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -867,10 +853,6 @@
<target>Назад</target> <target>Назад</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>Неправильний ідентифікатор повідомлення</target> <target>Неправильний ідентифікатор повідомлення</target>
@@ -881,10 +863,6 @@
<target>Поганий хеш повідомлення</target> <target>Поганий хеш повідомлення</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>Кращі повідомлення</target> <target>Кращі повідомлення</target>
@@ -894,10 +872,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1166,19 +1140,11 @@
<target>Підключіться</target> <target>Підключіться</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>Підключайтеся інкогніто</target> <target>Підключайтеся інкогніто</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1216,14 +1182,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>Підключення до сервера…</target> <target>Підключення до сервера…</target>
@@ -1234,10 +1192,6 @@ This is your own one-time link!</source>
<target>Підключення до сервера... (помилка: %@)</target> <target>Підключення до сервера... (помилка: %@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>Підключення</target> <target>Підключення</target>
@@ -1258,10 +1212,6 @@ This is your own one-time link!</source>
<target>Запит на підключення відправлено!</target> <target>Запит на підключення відправлено!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>Тайм-аут з'єднання</target> <target>Тайм-аут з'єднання</target>
@@ -1341,10 +1291,6 @@ This is your own one-time link!</source>
<target>Створіть адресу SimpleX</target> <target>Створіть адресу SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>Створіть адресу, щоб люди могли з вами зв'язатися.</target> <target>Створіть адресу, щоб люди могли з вами зв'язатися.</target>
@@ -1748,18 +1694,6 @@ This cannot be undone!</source>
<target>Опис</target> <target>Опис</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>Розробник</target> <target>Розробник</target>
@@ -1850,18 +1784,10 @@ This cannot be undone!</source>
<target>Від'єднати</target> <target>Від'єднати</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>НЕ використовуйте SimpleX для екстрених викликів.</target> <target>НЕ використовуйте SimpleX для екстрених викликів.</target>
@@ -2030,14 +1956,6 @@ This cannot be undone!</source>
<target>Зашифроване повідомлення: несподівана помилка</target> <target>Зашифроване повідомлення: несподівана помилка</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>Введіть пароль</target> <target>Введіть пароль</target>
@@ -2067,10 +1985,6 @@ This cannot be undone!</source>
<target>Увійдіть на сервер вручну</target> <target>Увійдіть на сервер вручну</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>Введіть вітальне повідомлення…</target> <target>Введіть вітальне повідомлення…</target>
@@ -2391,10 +2305,6 @@ This cannot be undone!</source>
<target>Швидко і без очікування, поки відправник буде онлайн!</target> <target>Швидко і без очікування, поки відправник буде онлайн!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>Улюблений</target> <target>Улюблений</target>
@@ -2490,10 +2400,6 @@ This cannot be undone!</source>
<target>Для консолі</target> <target>Для консолі</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>Французький інтерфейс</target> <target>Французький інтерфейс</target>
@@ -2816,10 +2722,6 @@ This cannot be undone!</source>
<target>Інкогніто</target> <target>Інкогніто</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>Режим інкогніто</target> <target>Режим інкогніто</target>
@@ -2850,10 +2752,6 @@ This cannot be undone!</source>
<target>Несумісна версія бази даних</target> <target>Несумісна версія бази даних</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>Неправильний пароль</target> <target>Неправильний пароль</target>
@@ -3019,10 +2917,6 @@ This is your link for group %@!</source>
<target>Приєднання до групи</target> <target>Приєднання до групи</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>Зберігайте свої зв'язки</target> <target>Зберігайте свої зв'язки</target>
@@ -3083,18 +2977,6 @@ This is your link for group %@!</source>
<target>Обмеження</target> <target>Обмеження</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>Живе повідомлення!</target> <target>Живе повідомлення!</target>
@@ -3443,10 +3325,6 @@ This is your link for group %@!</source>
<target>Немає отриманих або відправлених файлів</target> <target>Немає отриманих або відправлених файлів</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>Сповіщення</target> <target>Сповіщення</target>
@@ -3664,10 +3542,6 @@ This is your link for group %@!</source>
<target>Вставити</target> <target>Вставити</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>Вставити зображення</target> <target>Вставити зображення</target>
@@ -4259,10 +4133,6 @@ This is your link for group %@!</source>
<target>Відскануйте QR-код</target> <target>Відскануйте QR-код</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>Сканувати код</target> <target>Сканувати код</target>
@@ -4482,10 +4352,6 @@ This is your link for group %@!</source>
<target>Сервери</target> <target>Сервери</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>Встановити 1 день</target> <target>Встановити 1 день</target>
@@ -4981,10 +4847,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Цю дію неможливо скасувати - ваш профіль, контакти, повідомлення та файли будуть безповоротно втрачені.</target> <target>Цю дію неможливо скасувати - ваш профіль, контакти, повідомлення та файли будуть безповоротно втрачені.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>У цій групі більше %lld учасників, підтвердження доставки не надсилаються.</target> <target>У цій групі більше %lld учасників, підтвердження доставки не надсилаються.</target>
@@ -5018,10 +4880,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Щоб підключитися, ваш контакт може відсканувати QR-код або скористатися посиланням у додатку.</target> <target>Щоб підключитися, ваш контакт може відсканувати QR-код або скористатися посиланням у додатку.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>Щоб створити нове з'єднання</target> <target>Щоб створити нове з'єднання</target>
@@ -5177,14 +5035,6 @@ To connect, please ask your contact to create another connection link and check
Щоб підключитися, попросіть вашого контакта створити інше посилання і перевірте, чи маєте ви стабільне з'єднання з мережею.</target> Щоб підключитися, попросіть вашого контакта створити інше посилання і перевірте, чи маєте ви стабільне з'єднання з мережею.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>Розблокувати</target> <target>Розблокувати</target>
@@ -5275,10 +5125,6 @@ To connect, please ask your contact to create another connection link and check
<target>Використовуйте для нових з'єднань</target> <target>Використовуйте для нових з'єднань</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>Використовуйте інтерфейс виклику iOS</target> <target>Використовуйте інтерфейс виклику iOS</target>
@@ -5309,23 +5155,11 @@ To connect, please ask your contact to create another connection link and check
<target>Використання серверів SimpleX Chat.</target> <target>Використання серверів SimpleX Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>Перевірте безпеку з'єднання</target> <target>Перевірте безпеку з'єднання</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>Підтвердіть код безпеки</target> <target>Підтвердіть код безпеки</target>
@@ -5336,10 +5170,6 @@ To connect, please ask your contact to create another connection link and check
<target>Через браузер</target> <target>Через браузер</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>Відеодзвінок</target> <target>Відеодзвінок</target>
@@ -5390,10 +5220,6 @@ To connect, please ask your contact to create another connection link and check
<target>Голосове повідомлення…</target> <target>Голосове повідомлення…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>Очікування файлу</target> <target>Очікування файлу</target>
@@ -5924,10 +5750,6 @@ SimpleX servers cannot see your profile.</source>
<target>аудіовиклик (без шифрування e2e)</target> <target>аудіовиклик (без шифрування e2e)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>невірний ідентифікатор повідомлення</target> <target>невірний ідентифікатор повідомлення</target>
@@ -6506,10 +6328,6 @@ SimpleX servers cannot see your profile.</source>
<target>оновлений профіль групи</target> <target>оновлений профіль групи</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6647,10 +6465,6 @@ SimpleX servers cannot see your profile.</source>
<target>SimpleX використовує Face ID для локальної автентифікації</target> <target>SimpleX використовує Face ID для локальної автентифікації</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX потребує доступу до мікрофона для аудіо та відео дзвінків, а також для запису голосових повідомлень.</target> <target>SimpleX потребує доступу до мікрофона для аудіо та відео дзвінків, а також для запису голосових повідомлень.</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
@@ -290,14 +290,6 @@
<target>(</target> <target>(</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve">
<source>(new)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
<source>)</source> <source>)</source>
<target>)</target> <target>)</target>
@@ -386,12 +378,6 @@
- 以及更多!</target> - 以及更多!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="- optionally notify deleted contacts.&#10;- profile names with spaces.&#10;- and more!" xml:space="preserve">
<source>- optionally notify deleted contacts.
- profile names with spaces.
- and more!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve"> <trans-unit id="- voice messages up to 5 minutes.&#10;- custom time to disappear.&#10;- editing history." xml:space="preserve">
<source>- voice messages up to 5 minutes. <source>- voice messages up to 5 minutes.
- custom time to disappear. - custom time to disappear.
@@ -872,10 +858,6 @@
<target>返回</target> <target>返回</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Bad desktop address" xml:space="preserve">
<source>Bad desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Bad message ID" xml:space="preserve"> <trans-unit id="Bad message ID" xml:space="preserve">
<source>Bad message ID</source> <source>Bad message ID</source>
<target>错误消息 ID</target> <target>错误消息 ID</target>
@@ -886,10 +868,6 @@
<target>错误消息散列</target> <target>错误消息散列</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Better groups" xml:space="preserve">
<source>Better groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Better messages" xml:space="preserve"> <trans-unit id="Better messages" xml:space="preserve">
<source>Better messages</source> <source>Better messages</source>
<target>更好的消息</target> <target>更好的消息</target>
@@ -899,10 +877,6 @@
<source>Block</source> <source>Block</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Block group members" xml:space="preserve">
<source>Block group members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Block member" xml:space="preserve"> <trans-unit id="Block member" xml:space="preserve">
<source>Block member</source> <source>Block member</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1172,19 +1146,11 @@
<target>连接</target> <target>连接</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect automatically" xml:space="preserve">
<source>Connect automatically</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect incognito" xml:space="preserve"> <trans-unit id="Connect incognito" xml:space="preserve">
<source>Connect incognito</source> <source>Connect incognito</source>
<target>在隐身状态下连接</target> <target>在隐身状态下连接</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
<source>Connect to yourself?</source> <source>Connect to yourself?</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1222,14 +1188,6 @@ This is your own one-time link!</source>
<source>Connect with %@</source> <source>Connect with %@</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
<source>Connecting to server…</source> <source>Connecting to server…</source>
<target>连接服务器中……</target> <target>连接服务器中……</target>
@@ -1240,10 +1198,6 @@ This is your own one-time link!</source>
<target>连接服务器中……(错误:%@</target> <target>连接服务器中……(错误:%@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
<source>Connection</source> <source>Connection</source>
<target>连接</target> <target>连接</target>
@@ -1264,10 +1218,6 @@ This is your own one-time link!</source>
<target>已发送连接请求!</target> <target>已发送连接请求!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
<source>Connection timeout</source> <source>Connection timeout</source>
<target>连接超时</target> <target>连接超时</target>
@@ -1347,10 +1297,6 @@ This is your own one-time link!</source>
<target>创建 SimpleX 地址</target> <target>创建 SimpleX 地址</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Create a group using a random profile." xml:space="preserve">
<source>Create a group using a random profile.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Create an address to let people connect with you." xml:space="preserve"> <trans-unit id="Create an address to let people connect with you." xml:space="preserve">
<source>Create an address to let people connect with you.</source> <source>Create an address to let people connect with you.</source>
<target>创建一个地址,让人们与您联系。</target> <target>创建一个地址,让人们与您联系。</target>
@@ -1755,18 +1701,6 @@ This cannot be undone!</source>
<target>描述</target> <target>描述</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Desktop address" xml:space="preserve">
<source>Desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop app version %@ is not compatible with this app." xml:space="preserve">
<source>Desktop app version %@ is not compatible with this app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Develop" xml:space="preserve"> <trans-unit id="Develop" xml:space="preserve">
<source>Develop</source> <source>Develop</source>
<target>开发</target> <target>开发</target>
@@ -1857,19 +1791,11 @@ This cannot be undone!</source>
<target>断开连接</target> <target>断开连接</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect desktop?" xml:space="preserve">
<source>Disconnect desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Discover and join groups" xml:space="preserve"> <trans-unit id="Discover and join groups" xml:space="preserve">
<source>Discover and join groups</source> <source>Discover and join groups</source>
<target>发现和加入群组</target> <target>发现和加入群组</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Discover via local network" xml:space="preserve">
<source>Discover via local network</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve"> <trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
<source>Do NOT use SimpleX for emergency calls.</source> <source>Do NOT use SimpleX for emergency calls.</source>
<target>请勿使用 SimpleX 进行紧急通话。</target> <target>请勿使用 SimpleX 进行紧急通话。</target>
@@ -2040,14 +1966,6 @@ This cannot be undone!</source>
<target>加密消息:意外错误</target> <target>加密消息:意外错误</target>
<note>notification</note> <note>notification</note>
</trans-unit> </trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<source>Encryption re-negotiation error</source>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
<source>Encryption re-negotiation failed.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter Passcode" xml:space="preserve"> <trans-unit id="Enter Passcode" xml:space="preserve">
<source>Enter Passcode</source> <source>Enter Passcode</source>
<target>输入密码</target> <target>输入密码</target>
@@ -2077,10 +1995,6 @@ This cannot be undone!</source>
<target>手动输入服务器</target> <target>手动输入服务器</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter this device name…" xml:space="preserve">
<source>Enter this device name…</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enter welcome message…" xml:space="preserve"> <trans-unit id="Enter welcome message…" xml:space="preserve">
<source>Enter welcome message…</source> <source>Enter welcome message…</source>
<target>输入欢迎消息……</target> <target>输入欢迎消息……</target>
@@ -2404,10 +2318,6 @@ This cannot be undone!</source>
<target>快速且无需等待发件人在线!</target> <target>快速且无需等待发件人在线!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Faster joining and more reliable messages." xml:space="preserve">
<source>Faster joining and more reliable messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Favorite" xml:space="preserve"> <trans-unit id="Favorite" xml:space="preserve">
<source>Favorite</source> <source>Favorite</source>
<target>最喜欢</target> <target>最喜欢</target>
@@ -2503,10 +2413,6 @@ This cannot be undone!</source>
<target>用于控制台</target> <target>用于控制台</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve">
<source>Found desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="French interface" xml:space="preserve"> <trans-unit id="French interface" xml:space="preserve">
<source>French interface</source> <source>French interface</source>
<target>法语界面</target> <target>法语界面</target>
@@ -2829,10 +2735,6 @@ This cannot be undone!</source>
<target>隐身聊天</target> <target>隐身聊天</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incognito groups" xml:space="preserve">
<source>Incognito groups</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito mode" xml:space="preserve"> <trans-unit id="Incognito mode" xml:space="preserve">
<source>Incognito mode</source> <source>Incognito mode</source>
<target>隐身模式</target> <target>隐身模式</target>
@@ -2863,10 +2765,6 @@ This cannot be undone!</source>
<target>数据库版本不兼容</target> <target>数据库版本不兼容</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Incompatible version" xml:space="preserve">
<source>Incompatible version</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incorrect passcode" xml:space="preserve"> <trans-unit id="Incorrect passcode" xml:space="preserve">
<source>Incorrect passcode</source> <source>Incorrect passcode</source>
<target>密码错误</target> <target>密码错误</target>
@@ -3032,10 +2930,6 @@ This is your link for group %@!</source>
<target>加入群组中</target> <target>加入群组中</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
<source>Keep the app open to use it from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Keep your connections" xml:space="preserve"> <trans-unit id="Keep your connections" xml:space="preserve">
<source>Keep your connections</source> <source>Keep your connections</source>
<target>保持连接</target> <target>保持连接</target>
@@ -3096,18 +2990,6 @@ This is your link for group %@!</source>
<target>限制</target> <target>限制</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Link mobile and desktop apps! 🔗" xml:space="preserve">
<source>Link mobile and desktop apps! 🔗</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktop options" xml:space="preserve">
<source>Linked desktop options</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Linked desktops" xml:space="preserve">
<source>Linked desktops</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Live message!" xml:space="preserve"> <trans-unit id="Live message!" xml:space="preserve">
<source>Live message!</source> <source>Live message!</source>
<target>实时消息!</target> <target>实时消息!</target>
@@ -3457,10 +3339,6 @@ This is your link for group %@!</source>
<target>未收到或发送文件</target> <target>未收到或发送文件</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Not compatible!" xml:space="preserve">
<source>Not compatible!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Notifications" xml:space="preserve"> <trans-unit id="Notifications" xml:space="preserve">
<source>Notifications</source> <source>Notifications</source>
<target>通知</target> <target>通知</target>
@@ -3679,10 +3557,6 @@ This is your link for group %@!</source>
<target>粘贴</target> <target>粘贴</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Paste desktop address" xml:space="preserve">
<source>Paste desktop address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Paste image" xml:space="preserve"> <trans-unit id="Paste image" xml:space="preserve">
<source>Paste image</source> <source>Paste image</source>
<target>粘贴图片</target> <target>粘贴图片</target>
@@ -4274,10 +4148,6 @@ This is your link for group %@!</source>
<target>扫描二维码</target> <target>扫描二维码</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Scan QR code from desktop" xml:space="preserve">
<source>Scan QR code from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Scan code" xml:space="preserve"> <trans-unit id="Scan code" xml:space="preserve">
<source>Scan code</source> <source>Scan code</source>
<target>扫码</target> <target>扫码</target>
@@ -4498,10 +4368,6 @@ This is your link for group %@!</source>
<target>服务器</target> <target>服务器</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Session code" xml:space="preserve">
<source>Session code</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Set 1 day" xml:space="preserve"> <trans-unit id="Set 1 day" xml:space="preserve">
<source>Set 1 day</source> <source>Set 1 day</source>
<target>设定1天</target> <target>设定1天</target>
@@ -4998,10 +4864,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>此操作无法撤消——您的个人资料、联系人、消息和文件将不可撤回地丢失。</target> <target>此操作无法撤消——您的个人资料、联系人、消息和文件将不可撤回地丢失。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve">
<source>This device name</source>
<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"> <trans-unit id="This group has over %lld members, delivery receipts are not sent." xml:space="preserve">
<source>This group has over %lld members, delivery receipts are not sent.</source> <source>This group has over %lld members, delivery receipts are not sent.</source>
<target>该组有超过 %lld 个成员,不发送送货单。</target> <target>该组有超过 %lld 个成员,不发送送货单。</target>
@@ -5035,10 +4897,6 @@ It can happen because of some bug or when the connection is compromised.</source
<target>您的联系人可以扫描二维码或使用应用程序中的链接来建立连接。</target> <target>您的联系人可以扫描二维码或使用应用程序中的链接来建立连接。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="To hide unwanted messages." xml:space="preserve">
<source>To hide unwanted messages.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To make a new connection" xml:space="preserve"> <trans-unit id="To make a new connection" xml:space="preserve">
<source>To make a new connection</source> <source>To make a new connection</source>
<target>建立新连接</target> <target>建立新连接</target>
@@ -5195,14 +5053,6 @@ To connect, please ask your contact to create another connection link and check
如果要连接,请让您的联系人创建另一个连接链接,并检查您的网络连接是否稳定。</target> 如果要连接,请让您的联系人创建另一个连接链接,并检查您的网络连接是否稳定。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Unlink" xml:space="preserve">
<source>Unlink</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlink desktop?" xml:space="preserve">
<source>Unlink desktop?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Unlock" xml:space="preserve"> <trans-unit id="Unlock" xml:space="preserve">
<source>Unlock</source> <source>Unlock</source>
<target>解锁</target> <target>解锁</target>
@@ -5293,10 +5143,6 @@ To connect, please ask your contact to create another connection link and check
<target>用于新连接</target> <target>用于新连接</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
<source>Use from desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use iOS call interface" xml:space="preserve"> <trans-unit id="Use iOS call interface" xml:space="preserve">
<source>Use iOS call interface</source> <source>Use iOS call interface</source>
<target>使用 iOS 通话界面</target> <target>使用 iOS 通话界面</target>
@@ -5327,23 +5173,11 @@ To connect, please ask your contact to create another connection link and check
<target>使用 SimpleX Chat 服务器。</target> <target>使用 SimpleX Chat 服务器。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify code with desktop" xml:space="preserve">
<source>Verify code with desktop</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection" xml:space="preserve">
<source>Verify connection</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify connection security" xml:space="preserve"> <trans-unit id="Verify connection security" xml:space="preserve">
<source>Verify connection security</source> <source>Verify connection security</source>
<target>验证连接安全</target> <target>验证连接安全</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Verify connections" xml:space="preserve">
<source>Verify connections</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Verify security code" xml:space="preserve"> <trans-unit id="Verify security code" xml:space="preserve">
<source>Verify security code</source> <source>Verify security code</source>
<target>验证安全码</target> <target>验证安全码</target>
@@ -5354,10 +5188,6 @@ To connect, please ask your contact to create another connection link and check
<target>通过浏览器</target> <target>通过浏览器</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<source>Via secure quantum resistant protocol.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve"> <trans-unit id="Video call" xml:space="preserve">
<source>Video call</source> <source>Video call</source>
<target>视频通话</target> <target>视频通话</target>
@@ -5408,10 +5238,6 @@ To connect, please ask your contact to create another connection link and check
<target>语音消息……</target> <target>语音消息……</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Waiting for desktop..." xml:space="preserve">
<source>Waiting for desktop...</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Waiting for file" xml:space="preserve"> <trans-unit id="Waiting for file" xml:space="preserve">
<source>Waiting for file</source> <source>Waiting for file</source>
<target>等待文件中</target> <target>等待文件中</target>
@@ -5942,10 +5768,6 @@ SimpleX 服务器无法看到您的资料。</target>
<target>语音通话(非端到端加密)</target> <target>语音通话(非端到端加密)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="author" xml:space="preserve">
<source>author</source>
<note>member role</note>
</trans-unit>
<trans-unit id="bad message ID" xml:space="preserve"> <trans-unit id="bad message ID" xml:space="preserve">
<source>bad message ID</source> <source>bad message ID</source>
<target>错误消息 ID</target> <target>错误消息 ID</target>
@@ -6526,10 +6348,6 @@ SimpleX 服务器无法看到您的资料。</target>
<target>已更新的群组资料</target> <target>已更新的群组资料</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="v%@" xml:space="preserve">
<source>v%@</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="v%@ (%@)" xml:space="preserve"> <trans-unit id="v%@ (%@)" xml:space="preserve">
<source>v%@ (%@)</source> <source>v%@ (%@)</source>
<target>v%@ (%@)</target> <target>v%@ (%@)</target>
@@ -6667,10 +6485,6 @@ SimpleX 服务器无法看到您的资料。</target>
<target>SimpleX 使用Face ID进行本地身份验证</target> <target>SimpleX 使用Face ID进行本地身份验证</target>
<note>Privacy - Face ID Usage Description</note> <note>Privacy - Face ID Usage Description</note>
</trans-unit> </trans-unit>
<trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
<source>SimpleX uses local network access to allow using user chat profile via desktop app on the same network.</source>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve"> <trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source> <source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX 需要麦克风访问权限才能进行音频和视频通话,以及录制语音消息。</target> <target>SimpleX 需要麦克风访问权限才能进行音频和视频通话,以及录制语音消息。</target>
@@ -4,8 +4,6 @@
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; "NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication"; "NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; "NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
/* Privacy - Photo Library Additions Usage Description */ /* Privacy - Photo Library Additions Usage Description */
+26 -48
View File
@@ -39,7 +39,6 @@
5C36027327F47AD5009F19D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C36027227F47AD5009F19D9 /* AppDelegate.swift */; }; 5C36027327F47AD5009F19D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C36027227F47AD5009F19D9 /* AppDelegate.swift */; };
5C3A88CE27DF50170060F1C2 /* DetermineWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */; }; 5C3A88CE27DF50170060F1C2 /* DetermineWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */; };
5C3A88D127DF57800060F1C2 /* FramedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88D027DF57800060F1C2 /* FramedItemView.swift */; }; 5C3A88D127DF57800060F1C2 /* FramedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88D027DF57800060F1C2 /* FramedItemView.swift */; };
5C3CCFCC2AE6BD3100C3F0C3 /* ConnectDesktopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */; };
5C3F1D562842B68D00EC8A82 /* IntegrityErrorItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F1D552842B68D00EC8A82 /* IntegrityErrorItemView.swift */; }; 5C3F1D562842B68D00EC8A82 /* IntegrityErrorItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F1D552842B68D00EC8A82 /* IntegrityErrorItemView.swift */; };
5C3F1D58284363C400EC8A82 /* PrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F1D57284363C400EC8A82 /* PrivacySettings.swift */; }; 5C3F1D58284363C400EC8A82 /* PrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F1D57284363C400EC8A82 /* PrivacySettings.swift */; };
5C4B3B0A285FB130003915F2 /* DatabaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B3B09285FB130003915F2 /* DatabaseView.swift */; }; 5C4B3B0A285FB130003915F2 /* DatabaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B3B09285FB130003915F2 /* DatabaseView.swift */; };
@@ -118,13 +117,6 @@
5CCB939C297EFCB100399E78 /* NavStackCompat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCB939B297EFCB100399E78 /* NavStackCompat.swift */; }; 5CCB939C297EFCB100399E78 /* NavStackCompat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCB939B297EFCB100399E78 /* NavStackCompat.swift */; };
5CCD403427A5F6DF00368C90 /* AddContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD403327A5F6DF00368C90 /* AddContactView.swift */; }; 5CCD403427A5F6DF00368C90 /* AddContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD403327A5F6DF00368C90 /* AddContactView.swift */; };
5CCD403727A5F9A200368C90 /* ScanToConnectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD403627A5F9A200368C90 /* ScanToConnectView.swift */; }; 5CCD403727A5F9A200368C90 /* ScanToConnectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD403627A5F9A200368C90 /* ScanToConnectView.swift */; };
5CD67B8F2B0E858A00C510B1 /* hs_init.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD67B8D2B0E858A00C510B1 /* hs_init.h */; settings = {ATTRIBUTES = (Public, ); }; };
5CD67B902B0E858A00C510B1 /* hs_init.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CD67B8E2B0E858A00C510B1 /* hs_init.c */; };
5CD67BA02B120ADF00C510B1 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B9B2B120ADF00C510B1 /* libgmp.a */; };
5CD67BA12B120ADF00C510B1 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B9C2B120ADF00C510B1 /* libgmpxx.a */; };
5CD67BA22B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B9D2B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u.a */; };
5CD67BA32B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B9E2B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u-ghc8.10.7.a */; };
5CD67BA42B120ADF00C510B1 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD67B9F2B120ADF00C510B1 /* libffi.a */; };
5CDCAD482818589900503DA2 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CDCAD472818589900503DA2 /* NotificationService.swift */; }; 5CDCAD482818589900503DA2 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CDCAD472818589900503DA2 /* NotificationService.swift */; };
5CE2BA702845308900EC33A6 /* SimpleXChat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; }; 5CE2BA702845308900EC33A6 /* SimpleXChat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; };
5CE2BA712845308900EC33A6 /* SimpleXChat.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 5CE2BA712845308900EC33A6 /* SimpleXChat.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@@ -150,6 +142,11 @@
5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEACCEC27DEA495000BD591 /* MsgContentView.swift */; }; 5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEACCEC27DEA495000BD591 /* MsgContentView.swift */; };
5CEBD7462A5C0A8F00665FE2 /* KeyboardPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */; }; 5CEBD7462A5C0A8F00665FE2 /* KeyboardPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */; };
5CEBD7482A5F115D00665FE2 /* SetDeliveryReceiptsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */; }; 5CEBD7482A5F115D00665FE2 /* SetDeliveryReceiptsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */; };
5CF4DF772AFF8D4E007893ED /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF4DF722AFF8D4D007893ED /* libffi.a */; };
5CF4DF782AFF8D4E007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF4DF732AFF8D4D007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a */; };
5CF4DF792AFF8D4E007893ED /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF4DF742AFF8D4D007893ED /* libgmpxx.a */; };
5CF4DF7A2AFF8D4E007893ED /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF4DF752AFF8D4E007893ED /* libgmp.a */; };
5CF4DF7B2AFF8D4E007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CF4DF762AFF8D4E007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a */; };
5CFA59C42860BC6200863A68 /* MigrateToAppGroupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */; }; 5CFA59C42860BC6200863A68 /* MigrateToAppGroupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */; };
5CFA59D12864782E00863A68 /* ChatArchiveView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59CF286477B400863A68 /* ChatArchiveView.swift */; }; 5CFA59D12864782E00863A68 /* ChatArchiveView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59CF286477B400863A68 /* ChatArchiveView.swift */; };
5CFE0921282EEAF60002594B /* ZoomableScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */; }; 5CFE0921282EEAF60002594B /* ZoomableScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */; };
@@ -285,7 +282,6 @@
5C36027227F47AD5009F19D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 5C36027227F47AD5009F19D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetermineWidth.swift; sourceTree = "<group>"; }; 5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetermineWidth.swift; sourceTree = "<group>"; };
5C3A88D027DF57800060F1C2 /* FramedItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FramedItemView.swift; sourceTree = "<group>"; }; 5C3A88D027DF57800060F1C2 /* FramedItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FramedItemView.swift; sourceTree = "<group>"; };
5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectDesktopView.swift; sourceTree = "<group>"; };
5C3F1D552842B68D00EC8A82 /* IntegrityErrorItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntegrityErrorItemView.swift; sourceTree = "<group>"; }; 5C3F1D552842B68D00EC8A82 /* IntegrityErrorItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntegrityErrorItemView.swift; sourceTree = "<group>"; };
5C3F1D57284363C400EC8A82 /* PrivacySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacySettings.swift; sourceTree = "<group>"; }; 5C3F1D57284363C400EC8A82 /* PrivacySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacySettings.swift; sourceTree = "<group>"; };
5C422A7C27A9A6FA0097A1E1 /* SimpleX (iOS).entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "SimpleX (iOS).entitlements"; sourceTree = "<group>"; }; 5C422A7C27A9A6FA0097A1E1 /* SimpleX (iOS).entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "SimpleX (iOS).entitlements"; sourceTree = "<group>"; };
@@ -401,13 +397,6 @@
5CCB939B297EFCB100399E78 /* NavStackCompat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavStackCompat.swift; sourceTree = "<group>"; }; 5CCB939B297EFCB100399E78 /* NavStackCompat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavStackCompat.swift; sourceTree = "<group>"; };
5CCD403327A5F6DF00368C90 /* AddContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddContactView.swift; sourceTree = "<group>"; }; 5CCD403327A5F6DF00368C90 /* AddContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddContactView.swift; sourceTree = "<group>"; };
5CCD403627A5F9A200368C90 /* ScanToConnectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanToConnectView.swift; sourceTree = "<group>"; }; 5CCD403627A5F9A200368C90 /* ScanToConnectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanToConnectView.swift; sourceTree = "<group>"; };
5CD67B8D2B0E858A00C510B1 /* hs_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hs_init.h; sourceTree = "<group>"; };
5CD67B8E2B0E858A00C510B1 /* hs_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hs_init.c; sourceTree = "<group>"; };
5CD67B9B2B120ADF00C510B1 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
5CD67B9C2B120ADF00C510B1 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
5CD67B9D2B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u.a"; sourceTree = "<group>"; };
5CD67B9E2B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u-ghc8.10.7.a"; sourceTree = "<group>"; };
5CD67B9F2B120ADF00C510B1 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
5CDCAD452818589900503DA2 /* SimpleX NSE.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "SimpleX NSE.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 5CDCAD452818589900503DA2 /* SimpleX NSE.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "SimpleX NSE.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
5CDCAD472818589900503DA2 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = "<group>"; }; 5CDCAD472818589900503DA2 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = "<group>"; };
5CDCAD492818589900503DA2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 5CDCAD492818589900503DA2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -434,6 +423,11 @@
5CEACCEC27DEA495000BD591 /* MsgContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MsgContentView.swift; sourceTree = "<group>"; }; 5CEACCEC27DEA495000BD591 /* MsgContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MsgContentView.swift; sourceTree = "<group>"; };
5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardPadding.swift; sourceTree = "<group>"; }; 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardPadding.swift; sourceTree = "<group>"; };
5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetDeliveryReceiptsView.swift; sourceTree = "<group>"; }; 5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetDeliveryReceiptsView.swift; sourceTree = "<group>"; };
5CF4DF722AFF8D4D007893ED /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
5CF4DF732AFF8D4D007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a"; sourceTree = "<group>"; };
5CF4DF742AFF8D4D007893ED /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
5CF4DF752AFF8D4E007893ED /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
5CF4DF762AFF8D4E007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a"; sourceTree = "<group>"; };
5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToAppGroupView.swift; sourceTree = "<group>"; }; 5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToAppGroupView.swift; sourceTree = "<group>"; };
5CFA59CF286477B400863A68 /* ChatArchiveView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatArchiveView.swift; sourceTree = "<group>"; }; 5CFA59CF286477B400863A68 /* ChatArchiveView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatArchiveView.swift; sourceTree = "<group>"; };
5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ZoomableScrollView.swift; path = Shared/Views/ZoomableScrollView.swift; sourceTree = SOURCE_ROOT; }; 5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ZoomableScrollView.swift; path = Shared/Views/ZoomableScrollView.swift; sourceTree = SOURCE_ROOT; };
@@ -511,13 +505,13 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
5CD67BA12B120ADF00C510B1 /* libgmpxx.a in Frameworks */,
5CD67BA22B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u.a in Frameworks */,
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
5CD67BA02B120ADF00C510B1 /* libgmp.a in Frameworks */, 5CF4DF792AFF8D4E007893ED /* libgmpxx.a in Frameworks */,
5CD67BA42B120ADF00C510B1 /* libffi.a in Frameworks */, 5CF4DF772AFF8D4E007893ED /* libffi.a in Frameworks */,
5CD67BA32B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u-ghc8.10.7.a in Frameworks */,
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
5CF4DF7A2AFF8D4E007893ED /* libgmp.a in Frameworks */,
5CF4DF7B2AFF8D4E007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a in Frameworks */,
5CF4DF782AFF8D4E007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -550,7 +544,6 @@
5CB924DD27A8622200ACCCDD /* NewChat */, 5CB924DD27A8622200ACCCDD /* NewChat */,
5CFA59C22860B04D00863A68 /* Database */, 5CFA59C22860B04D00863A68 /* Database */,
5CB634AB29E46CDB0066AD6B /* LocalAuth */, 5CB634AB29E46CDB0066AD6B /* LocalAuth */,
5CA8D01B2AD9B076001FD661 /* RemoteAccess */,
5CB924DF27A8678B00ACCCDD /* UserSettings */, 5CB924DF27A8678B00ACCCDD /* UserSettings */,
5C2E261127A30FEA00F70299 /* TerminalView.swift */, 5C2E261127A30FEA00F70299 /* TerminalView.swift */,
); );
@@ -579,11 +572,11 @@
5C764E5C279C70B7000C6508 /* Libraries */ = { 5C764E5C279C70B7000C6508 /* Libraries */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5CD67B9F2B120ADF00C510B1 /* libffi.a */, 5CF4DF722AFF8D4D007893ED /* libffi.a */,
5CD67B9B2B120ADF00C510B1 /* libgmp.a */, 5CF4DF752AFF8D4E007893ED /* libgmp.a */,
5CD67B9C2B120ADF00C510B1 /* libgmpxx.a */, 5CF4DF742AFF8D4D007893ED /* libgmpxx.a */,
5CD67B9E2B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u-ghc8.10.7.a */, 5CF4DF732AFF8D4D007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a */,
5CD67B9D2B120ADF00C510B1 /* libHSsimplex-chat-5.4.0.6-9DfazyElTA72omjHp0C93u.a */, 5CF4DF762AFF8D4E007893ED /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a */,
); );
path = Libraries; path = Libraries;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -691,14 +684,6 @@
path = "Tests iOS"; path = "Tests iOS";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
5CA8D01B2AD9B076001FD661 /* RemoteAccess */ = {
isa = PBXGroup;
children = (
5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */,
);
path = RemoteAccess;
sourceTree = "<group>";
};
5CB0BA8C282711BC00B3292C /* Onboarding */ = { 5CB0BA8C282711BC00B3292C /* Onboarding */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@@ -812,8 +797,6 @@
5CE2BA8A2845332200EC33A6 /* SimpleX.h */, 5CE2BA8A2845332200EC33A6 /* SimpleX.h */,
5CE2BA78284530CC00EC33A6 /* SimpleXChat.docc */, 5CE2BA78284530CC00EC33A6 /* SimpleXChat.docc */,
5CE2BA96284537A800EC33A6 /* dummy.m */, 5CE2BA96284537A800EC33A6 /* dummy.m */,
5CD67B8D2B0E858A00C510B1 /* hs_init.h */,
5CD67B8E2B0E858A00C510B1 /* hs_init.c */,
); );
path = SimpleXChat; path = SimpleXChat;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -898,7 +881,6 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
5CE2BA77284530BF00EC33A6 /* SimpleXChat.h in Headers */, 5CE2BA77284530BF00EC33A6 /* SimpleXChat.h in Headers */,
5CD67B8F2B0E858A00C510B1 /* hs_init.h in Headers */,
5CE2BA952845354B00EC33A6 /* SimpleX.h in Headers */, 5CE2BA952845354B00EC33A6 /* SimpleX.h in Headers */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@@ -1188,7 +1170,6 @@
6454036F2822A9750090DDFF /* ComposeFileView.swift in Sources */, 6454036F2822A9750090DDFF /* ComposeFileView.swift in Sources */,
5C5DB70E289ABDD200730FFF /* AppearanceSettings.swift in Sources */, 5C5DB70E289ABDD200730FFF /* AppearanceSettings.swift in Sources */,
5C5F2B6D27EBC3FE006A9D5F /* ImagePicker.swift in Sources */, 5C5F2B6D27EBC3FE006A9D5F /* ImagePicker.swift in Sources */,
5C3CCFCC2AE6BD3100C3F0C3 /* ConnectDesktopView.swift in Sources */,
5C9C2DA92899DA6F00CC63B1 /* NetworkAndServers.swift in Sources */, 5C9C2DA92899DA6F00CC63B1 /* NetworkAndServers.swift in Sources */,
5C6BA667289BD954009B8ECC /* DismissSheets.swift in Sources */, 5C6BA667289BD954009B8ECC /* DismissSheets.swift in Sources */,
5C577F7D27C83AA10006112D /* MarkdownHelp.swift in Sources */, 5C577F7D27C83AA10006112D /* MarkdownHelp.swift in Sources */,
@@ -1269,7 +1250,6 @@
5C00168128C4FE760094D739 /* KeyChain.swift in Sources */, 5C00168128C4FE760094D739 /* KeyChain.swift in Sources */,
5CE2BA97284537A800EC33A6 /* dummy.m in Sources */, 5CE2BA97284537A800EC33A6 /* dummy.m in Sources */,
5CE2BA922845340900EC33A6 /* FileUtils.swift in Sources */, 5CE2BA922845340900EC33A6 /* FileUtils.swift in Sources */,
5CD67B902B0E858A00C510B1 /* hs_init.c in Sources */,
5CE2BA91284533A300EC33A6 /* Notifications.swift in Sources */, 5CE2BA91284533A300EC33A6 /* Notifications.swift in Sources */,
5CE2BA79284530CC00EC33A6 /* SimpleXChat.docc in Sources */, 5CE2BA79284530CC00EC33A6 /* SimpleXChat.docc in Sources */,
5CE2BA90284533A300EC33A6 /* JSON.swift in Sources */, 5CE2BA90284533A300EC33A6 /* JSON.swift in Sources */,
@@ -1502,7 +1482,7 @@
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 184; CURRENT_PROJECT_VERSION = 181;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -1510,7 +1490,6 @@
INFOPLIST_FILE = "SimpleX--iOS--Info.plist"; INFOPLIST_FILE = "SimpleX--iOS--Info.plist";
INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
INFOPLIST_KEY_NSFaceIDUsageDescription = "SimpleX uses Face ID for local authentication"; INFOPLIST_KEY_NSFaceIDUsageDescription = "SimpleX uses Face ID for local authentication";
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; INFOPLIST_KEY_NSMicrophoneUsageDescription = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "SimpleX needs access to Photo Library for saving captured and received media"; INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "SimpleX needs access to Photo Library for saving captured and received media";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
@@ -1545,7 +1524,7 @@
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 184; CURRENT_PROJECT_VERSION = 181;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -1553,7 +1532,6 @@
INFOPLIST_FILE = "SimpleX--iOS--Info.plist"; INFOPLIST_FILE = "SimpleX--iOS--Info.plist";
INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls."; INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
INFOPLIST_KEY_NSFaceIDUsageDescription = "SimpleX uses Face ID for local authentication"; INFOPLIST_KEY_NSFaceIDUsageDescription = "SimpleX uses Face ID for local authentication";
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SimpleX uses local network access to allow using user chat profile via desktop app on the same network.";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "SimpleX needs microphone access for audio and video calls, and to record voice messages."; INFOPLIST_KEY_NSMicrophoneUsageDescription = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "SimpleX needs access to Photo Library for saving captured and received media"; INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "SimpleX needs access to Photo Library for saving captured and received media";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
@@ -1626,7 +1604,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 184; CURRENT_PROJECT_VERSION = 181;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -1658,7 +1636,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 184; CURRENT_PROJECT_VERSION = 181;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -1690,7 +1668,7 @@
APPLICATION_EXTENSION_API_ONLY = YES; APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 184; CURRENT_PROJECT_VERSION = 181;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
@@ -1736,7 +1714,7 @@
APPLICATION_EXTENSION_API_ONLY = YES; APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 184; CURRENT_PROJECT_VERSION = 181;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
-103
View File
@@ -120,16 +120,6 @@ public enum ChatCommand {
case receiveFile(fileId: Int64, encrypted: Bool?, inline: Bool?) case receiveFile(fileId: Int64, encrypted: Bool?, inline: Bool?)
case setFileToReceive(fileId: Int64, encrypted: Bool?) case setFileToReceive(fileId: Int64, encrypted: Bool?)
case cancelFile(fileId: Int64) case cancelFile(fileId: Int64)
// remote desktop commands
case setLocalDeviceName(displayName: String)
case connectRemoteCtrl(xrcpInvitation: String)
case findKnownRemoteCtrl
case confirmRemoteCtrl(remoteCtrlId: Int64)
case verifyRemoteCtrlSession(sessionCode: String)
case listRemoteCtrls
case stopRemoteCtrl
case deleteRemoteCtrl(remoteCtrlId: Int64)
// misc
case showVersion case showVersion
case string(String) case string(String)
@@ -270,14 +260,6 @@ public enum ChatCommand {
case let .receiveFile(fileId, encrypt, inline): return "/freceive \(fileId)\(onOffParam("encrypt", encrypt))\(onOffParam("inline", inline))" case let .receiveFile(fileId, encrypt, inline): return "/freceive \(fileId)\(onOffParam("encrypt", encrypt))\(onOffParam("inline", inline))"
case let .setFileToReceive(fileId, encrypt): return "/_set_file_to_receive \(fileId)\(onOffParam("encrypt", encrypt))" case let .setFileToReceive(fileId, encrypt): return "/_set_file_to_receive \(fileId)\(onOffParam("encrypt", encrypt))"
case let .cancelFile(fileId): return "/fcancel \(fileId)" case let .cancelFile(fileId): return "/fcancel \(fileId)"
case let .setLocalDeviceName(displayName): return "/set device name \(displayName)"
case let .connectRemoteCtrl(xrcpInv): return "/connect remote ctrl \(xrcpInv)"
case .findKnownRemoteCtrl: return "/find remote ctrl"
case let .confirmRemoteCtrl(rcId): return "/confirm remote ctrl \(rcId)"
case let .verifyRemoteCtrlSession(sessCode): return "/verify remote ctrl \(sessCode)"
case .listRemoteCtrls: return "/list remote ctrls"
case .stopRemoteCtrl: return "/stop remote ctrl"
case let .deleteRemoteCtrl(rcId): return "/delete remote ctrl \(rcId)"
case .showVersion: return "/version" case .showVersion: return "/version"
case let .string(str): return str case let .string(str): return str
} }
@@ -393,14 +375,6 @@ public enum ChatCommand {
case .receiveFile: return "receiveFile" case .receiveFile: return "receiveFile"
case .setFileToReceive: return "setFileToReceive" case .setFileToReceive: return "setFileToReceive"
case .cancelFile: return "cancelFile" case .cancelFile: return "cancelFile"
case .setLocalDeviceName: return "setLocalDeviceName"
case .connectRemoteCtrl: return "connectRemoteCtrl"
case .findKnownRemoteCtrl: return "findKnownRemoteCtrl"
case .confirmRemoteCtrl: return "confirmRemoteCtrl"
case .verifyRemoteCtrlSession: return "verifyRemoteCtrlSession"
case .listRemoteCtrls: return "listRemoteCtrls"
case .stopRemoteCtrl: return "stopRemoteCtrl"
case .deleteRemoteCtrl: return "deleteRemoteCtrl"
case .showVersion: return "showVersion" case .showVersion: return "showVersion"
case .string: return "console command" case .string: return "console command"
} }
@@ -607,14 +581,6 @@ public enum ChatResponse: Decodable, Error {
case ntfMessages(user_: User?, connEntity: ConnectionEntity?, msgTs: Date?, ntfMessages: [NtfMsgInfo]) case ntfMessages(user_: User?, connEntity: ConnectionEntity?, msgTs: Date?, ntfMessages: [NtfMsgInfo])
case newContactConnection(user: UserRef, connection: PendingContactConnection) case newContactConnection(user: UserRef, connection: PendingContactConnection)
case contactConnectionDeleted(user: UserRef, connection: PendingContactConnection) case contactConnectionDeleted(user: UserRef, connection: PendingContactConnection)
// remote desktop responses/events
case remoteCtrlList(remoteCtrls: [RemoteCtrlInfo])
case remoteCtrlFound(remoteCtrl: RemoteCtrlInfo, ctrlAppInfo_: CtrlAppInfo?, appVersion: String, compatible: Bool)
case remoteCtrlConnecting(remoteCtrl_: RemoteCtrlInfo?, ctrlAppInfo: CtrlAppInfo, appVersion: String)
case remoteCtrlSessionCode(remoteCtrl_: RemoteCtrlInfo?, sessionCode: String)
case remoteCtrlConnected(remoteCtrl: RemoteCtrlInfo)
case remoteCtrlStopped
// misc
case versionInfo(versionInfo: CoreVersionInfo, chatMigrations: [UpMigration], agentMigrations: [UpMigration]) case versionInfo(versionInfo: CoreVersionInfo, chatMigrations: [UpMigration], agentMigrations: [UpMigration])
case cmdOk(user: UserRef?) case cmdOk(user: UserRef?)
case chatCmdError(user_: UserRef?, chatError: ChatError) case chatCmdError(user_: UserRef?, chatError: ChatError)
@@ -754,12 +720,6 @@ public enum ChatResponse: Decodable, Error {
case .ntfMessages: return "ntfMessages" case .ntfMessages: return "ntfMessages"
case .newContactConnection: return "newContactConnection" case .newContactConnection: return "newContactConnection"
case .contactConnectionDeleted: return "contactConnectionDeleted" case .contactConnectionDeleted: return "contactConnectionDeleted"
case .remoteCtrlList: return "remoteCtrlList"
case .remoteCtrlFound: return "remoteCtrlFound"
case .remoteCtrlConnecting: return "remoteCtrlConnecting"
case .remoteCtrlSessionCode: return "remoteCtrlSessionCode"
case .remoteCtrlConnected: return "remoteCtrlConnected"
case .remoteCtrlStopped: return "remoteCtrlStopped"
case .versionInfo: return "versionInfo" case .versionInfo: return "versionInfo"
case .cmdOk: return "cmdOk" case .cmdOk: return "cmdOk"
case .chatCmdError: return "chatCmdError" case .chatCmdError: return "chatCmdError"
@@ -902,12 +862,6 @@ public enum ChatResponse: Decodable, Error {
case let .ntfMessages(u, connEntity, msgTs, ntfMessages): return withUser(u, "connEntity: \(String(describing: connEntity))\nmsgTs: \(String(describing: msgTs))\nntfMessages: \(String(describing: ntfMessages))") case let .ntfMessages(u, connEntity, msgTs, ntfMessages): return withUser(u, "connEntity: \(String(describing: connEntity))\nmsgTs: \(String(describing: msgTs))\nntfMessages: \(String(describing: ntfMessages))")
case let .newContactConnection(u, connection): return withUser(u, String(describing: connection)) case let .newContactConnection(u, connection): return withUser(u, String(describing: connection))
case let .contactConnectionDeleted(u, connection): return withUser(u, String(describing: connection)) case let .contactConnectionDeleted(u, connection): return withUser(u, String(describing: connection))
case let .remoteCtrlList(remoteCtrls): return String(describing: remoteCtrls)
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible): return "remoteCtrl:\n\(String(describing: remoteCtrl))\nctrlAppInfo_:\n\(String(describing: ctrlAppInfo_))\nappVersion: \(appVersion)\ncompatible: \(compatible)"
case let .remoteCtrlConnecting(remoteCtrl_, ctrlAppInfo, appVersion): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nctrlAppInfo:\n\(String(describing: ctrlAppInfo))\nappVersion: \(appVersion)"
case let .remoteCtrlSessionCode(remoteCtrl_, sessionCode): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nsessionCode: \(sessionCode)"
case let .remoteCtrlConnected(remoteCtrl): return String(describing: remoteCtrl)
case .remoteCtrlStopped: return noDetails
case let .versionInfo(versionInfo, chatMigrations, agentMigrations): return "\(String(describing: versionInfo))\n\nchat migrations: \(chatMigrations.map(\.upName))\n\nagent migrations: \(agentMigrations.map(\.upName))" case let .versionInfo(versionInfo, chatMigrations, agentMigrations): return "\(String(describing: versionInfo))\n\nchat migrations: \(chatMigrations.map(\.upName))\n\nagent migrations: \(agentMigrations.map(\.upName))"
case .cmdOk: return noDetails case .cmdOk: return noDetails
case let .chatCmdError(u, chatError): return withUser(u, String(describing: chatError)) case let .chatCmdError(u, chatError): return withUser(u, String(describing: chatError))
@@ -1534,34 +1488,6 @@ public enum NotificationPreviewMode: String, SelectableItem {
public static var values: [NotificationPreviewMode] = [.message, .contact, .hidden] public static var values: [NotificationPreviewMode] = [.message, .contact, .hidden]
} }
public struct RemoteCtrlInfo: Decodable {
public var remoteCtrlId: Int64
public var ctrlDeviceName: String
public var sessionState: RemoteCtrlSessionState?
public var deviceViewName: String {
ctrlDeviceName == "" ? "\(remoteCtrlId)" : ctrlDeviceName
}
}
public enum RemoteCtrlSessionState: Decodable {
case starting
case searching
case connecting
case pendingConfirmation(sessionCode: String)
case connected(sessionCode: String)
}
public struct CtrlAppInfo: Decodable {
public var appVersionRange: AppVersionRange
public var deviceName: String
}
public struct AppVersionRange: Decodable {
public var minVersion: String
public var maxVersion: String
}
public struct CoreVersionInfo: Decodable { public struct CoreVersionInfo: Decodable {
public var version: String public var version: String
public var simplexmqVersion: String public var simplexmqVersion: String
@@ -1589,7 +1515,6 @@ public enum ChatError: Decodable {
case errorAgent(agentError: AgentErrorType) case errorAgent(agentError: AgentErrorType)
case errorStore(storeError: StoreError) case errorStore(storeError: StoreError)
case errorDatabase(databaseError: DatabaseError) case errorDatabase(databaseError: DatabaseError)
case errorRemoteCtrl(remoteCtrlError: RemoteCtrlError)
case invalidJSON(json: String) case invalidJSON(json: String)
} }
@@ -1749,7 +1674,6 @@ public enum AgentErrorType: Decodable {
case SMP(smpErr: ProtocolErrorType) case SMP(smpErr: ProtocolErrorType)
case NTF(ntfErr: ProtocolErrorType) case NTF(ntfErr: ProtocolErrorType)
case XFTP(xftpErr: XFTPErrorType) case XFTP(xftpErr: XFTPErrorType)
case RCP(rcpErr: RCErrorType)
case BROKER(brokerAddress: String, brokerErr: BrokerErrorType) case BROKER(brokerAddress: String, brokerErr: BrokerErrorType)
case AGENT(agentErr: SMPAgentError) case AGENT(agentErr: SMPAgentError)
case INTERNAL(internalErr: String) case INTERNAL(internalErr: String)
@@ -1807,22 +1731,6 @@ public enum XFTPErrorType: Decodable {
case INTERNAL case INTERNAL
} }
public enum RCErrorType: Decodable {
case `internal`(internalErr: String)
case identity
case noLocalAddress
case tlsStartFailed
case exception(exception: String)
case ctrlAuth
case ctrlNotFound
case ctrlError(ctrlErr: String)
case version
case encrypt
case decrypt
case blockSize
case syntax(syntaxErr: String)
}
public enum ProtocolCommandError: Decodable { public enum ProtocolCommandError: Decodable {
case UNKNOWN case UNKNOWN
case SYNTAX case SYNTAX
@@ -1858,14 +1766,3 @@ public enum ArchiveError: Decodable {
case `import`(chatError: ChatError) case `import`(chatError: ChatError)
case importFile(file: String, chatError: ChatError) case importFile(file: String, chatError: ChatError)
} }
public enum RemoteCtrlError: Decodable {
case inactive
case badState
case busy
case timeout
case disconnected(remoteCtrlId: Int64, reason: String)
case badInvitation
case badVersion(appVersion: String)
// case protocolError(protocolError: RemoteProtocolError)
}
+5 -9
View File
@@ -1847,7 +1847,7 @@ public struct GroupMember: Identifiable, Decodable {
public func canChangeRoleTo(groupInfo: GroupInfo) -> [GroupMemberRole]? { public func canChangeRoleTo(groupInfo: GroupInfo) -> [GroupMemberRole]? {
if !canBeRemoved(groupInfo: groupInfo) { return nil } if !canBeRemoved(groupInfo: groupInfo) { return nil }
let userRole = groupInfo.membership.memberRole let userRole = groupInfo.membership.memberRole
return GroupMemberRole.allCases.filter { $0 <= userRole && $0 != .author } return GroupMemberRole.allCases.filter { $0 <= userRole }
} }
public var memberIncognito: Bool { public var memberIncognito: Bool {
@@ -1887,7 +1887,6 @@ public struct GroupMemberIds: Decodable {
public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Decodable { public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Decodable {
case observer = "observer" case observer = "observer"
case author = "author"
case member = "member" case member = "member"
case admin = "admin" case admin = "admin"
case owner = "owner" case owner = "owner"
@@ -1897,7 +1896,6 @@ public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Dec
public var text: String { public var text: String {
switch self { switch self {
case .observer: return NSLocalizedString("observer", comment: "member role") case .observer: return NSLocalizedString("observer", comment: "member role")
case .author: return NSLocalizedString("author", comment: "member role")
case .member: return NSLocalizedString("member", comment: "member role") case .member: return NSLocalizedString("member", comment: "member role")
case .admin: return NSLocalizedString("admin", comment: "member role") case .admin: return NSLocalizedString("admin", comment: "member role")
case .owner: return NSLocalizedString("owner", comment: "member role") case .owner: return NSLocalizedString("owner", comment: "member role")
@@ -1907,10 +1905,9 @@ public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Dec
private var comparisonValue: Int { private var comparisonValue: Int {
switch self { switch self {
case .observer: return 0 case .observer: return 0
case .author: return 1 case .member: return 1
case .member: return 2 case .admin: return 2
case .admin: return 3 case .owner: return 3
case .owner: return 4
} }
} }
@@ -2668,6 +2665,7 @@ public enum CIContent: Decodable, ItemContent {
case .rcvDecryptionError: return true case .rcvDecryptionError: return true
case .rcvGroupInvitation: return true case .rcvGroupInvitation: return true
case .rcvModerated: return true case .rcvModerated: return true
case .sndModerated: return true
case .invalidJSON: return true case .invalidJSON: return true
default: return false default: return false
} }
@@ -2679,7 +2677,6 @@ public enum MsgDecryptError: String, Decodable {
case tooManySkipped case tooManySkipped
case ratchetEarlier case ratchetEarlier
case other case other
case ratchetSync
var text: String { var text: String {
switch self { switch self {
@@ -2687,7 +2684,6 @@ public enum MsgDecryptError: String, Decodable {
case .tooManySkipped: return NSLocalizedString("Permanent decryption error", comment: "message decrypt error item") case .tooManySkipped: return NSLocalizedString("Permanent decryption error", comment: "message decrypt error item")
case .ratchetEarlier: return NSLocalizedString("Decryption error", comment: "message decrypt error item") case .ratchetEarlier: return NSLocalizedString("Decryption error", comment: "message decrypt error item")
case .other: return NSLocalizedString("Decryption error", comment: "message decrypt error item") case .other: return NSLocalizedString("Decryption error", comment: "message decrypt error item")
case .ratchetSync: return NSLocalizedString("Encryption re-negotiation error", comment: "message decrypt error item")
} }
} }
} }
+1 -3
View File
@@ -9,7 +9,7 @@
#ifndef SimpleX_h #ifndef SimpleX_h
#define SimpleX_h #define SimpleX_h
#include "hs_init.h" #endif /* SimpleX_h */
extern void hs_init(int argc, char **argv[]); extern void hs_init(int argc, char **argv[]);
@@ -42,5 +42,3 @@ extern char *chat_encrypt_file(char *fromPath, char *toPath);
// chat_decrypt_file returns null-terminated string with the error message // chat_decrypt_file returns null-terminated string with the error message
extern char *chat_decrypt_file(char *fromPath, char *key, char *nonce, char *toPath); extern char *chat_decrypt_file(char *fromPath, char *key, char *nonce, char *toPath);
#endif /* SimpleX_h */
-25
View File
@@ -1,25 +0,0 @@
//
// hs_init.c
// SimpleXChat
//
// Created by Evgeny on 22/11/2023.
// Copyright © 2023 SimpleX Chat. All rights reserved.
//
#include "hs_init.h"
extern void hs_init_with_rtsopts(int * argc, char **argv[]);
void haskell_init(void) {
int argc = 5;
char *argv[] = {
"simplex",
"+RTS", // requires `hs_init_with_rtsopts`
"-A16m", // chunk size for new allocations
"-H64m", // initial heap size
"-xn", // non-moving GC
0
};
char **pargv = argv;
hs_init_with_rtsopts(&argc, &pargv);
}
-14
View File
@@ -1,14 +0,0 @@
//
// hs_init.h
// SimpleXChat
//
// Created by Evgeny on 22/11/2023.
// Copyright © 2023 SimpleX Chat. All rights reserved.
//
#ifndef hs_init_h
#define hs_init_h
void haskell_init(void);
#endif /* hs_init_h */
+10 -331
View File
@@ -25,9 +25,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- more stable message delivery.\n- a bit better groups.\n- and more!" = "- stabilere Zustellung von Nachrichten.\n- ein bisschen verbesserte Gruppen.\n- und mehr!"; "- more stable message delivery.\n- a bit better groups.\n- and more!" = "- stabilere Zustellung von Nachrichten.\n- ein bisschen verbesserte Gruppen.\n- und mehr!";
/* No comment provided by engineer. */
"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- Optionale Benachrichtigung von gelöschten Kontakten.\n- Profilnamen mit Leerzeichen.\n- Und mehr!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- Bis zu 5 Minuten lange Sprachnachrichten.\n- Zeitdauer für verschwindende Nachrichten anpassen.\n- Nachrichten-Historie bearbeiten."; "- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- Bis zu 5 Minuten lange Sprachnachrichten.\n- Zeitdauer für verschwindende Nachrichten anpassen.\n- Nachrichten-Historie bearbeiten.";
@@ -46,12 +43,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"(" = "("; "(" = "(";
/* No comment provided by engineer. */
"(new)" = "(Neu)";
/* No comment provided by engineer. */
"(this device v%@)" = "(Dieses Gerät hat v%@)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
")" = ")"; ")" = ")";
@@ -128,17 +119,11 @@
"%@ %@" = "%@ %@"; "%@ %@" = "%@ %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ and %@" = "%@ und %@"; "%@ and %@ connected" = "%@ und %@ wurden verbunden";
/* No comment provided by engineer. */
"%@ and %@ connected" = "%@ und %@ wurden mit Ihnen verbunden";
/* copied message info, <sender> at <time> */ /* copied message info, <sender> at <time> */
"%@ at %@:" = "%1$@ an %2$@:"; "%@ at %@:" = "%1$@ an %2$@:";
/* No comment provided by engineer. */
"%@ connected" = "%@ wurde mit Ihnen verbunden";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ ist mit Ihnen verbunden!"; "%@ is connected!" = "%@ ist mit Ihnen verbunden!";
@@ -155,10 +140,7 @@
"%@ wants to connect!" = "%@ will sich mit Ihnen verbinden!"; "%@ wants to connect!" = "%@ will sich mit Ihnen verbinden!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@, %@ and %lld members" = "%@, %@ und %lld Mitglieder"; "%@, %@ and %lld other members connected" = "%@, %@ und %lld weitere Mitglieder wurden verbunden";
/* No comment provided by engineer. */
"%@, %@ and %lld other members connected" = "%@, %@ und %lld weitere Mitglieder wurden mit Ihnen verbunden";
/* copied message info */ /* copied message info */
"%@:" = "%@:"; "%@:" = "%@:";
@@ -196,21 +178,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld file(s) with total size of %@" = "%lld Datei(en) mit einem Gesamtspeicherverbrauch von %@"; "%lld file(s) with total size of %@" = "%lld Datei(en) mit einem Gesamtspeicherverbrauch von %@";
/* No comment provided by engineer. */
"%lld group events" = "%lld Gruppenereignisse";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld members" = "%lld Mitglieder"; "%lld members" = "%lld Mitglieder";
/* No comment provided by engineer. */
"%lld messages blocked" = "%lld Nachrichten blockiert";
/* No comment provided by engineer. */
"%lld messages marked deleted" = "%lld Nachrichten als gelöscht markiert";
/* No comment provided by engineer. */
"%lld messages moderated by %@" = "%lld Nachrichten von %@ moderiert";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld minutes" = "%lld Minuten"; "%lld minutes" = "%lld Minuten";
@@ -259,9 +229,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"~strike~" = "\\~durchstreichen~"; "~strike~" = "\\~durchstreichen~";
/* time to disappear */
"0 sec" = "0 sek";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"0s" = "0s"; "0s" = "0s";
@@ -404,9 +371,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Alle Nachrichten werden gelöscht - dies kann nicht rückgängig gemacht werden! Die Nachrichten werden NUR bei Ihnen gelöscht."; "All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Alle Nachrichten werden gelöscht - dies kann nicht rückgängig gemacht werden! Die Nachrichten werden NUR bei Ihnen gelöscht.";
/* No comment provided by engineer. */
"All new messages from %@ will be hidden!" = "Alle neuen Nachrichten von %@ werden verborgen!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts will remain connected." = "Alle Ihre Kontakte bleiben verbunden."; "All your contacts will remain connected." = "Alle Ihre Kontakte bleiben verbunden.";
@@ -470,12 +434,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Already connected?" = "Sind Sie bereits verbunden?"; "Already connected?" = "Sind Sie bereits verbunden?";
/* No comment provided by engineer. */
"Already connecting!" = "Bereits verbunden!";
/* No comment provided by engineer. */
"Already joining the group!" = "Sie sind bereits Mitglied der Gruppe!";
/* pref value */ /* pref value */
"always" = "Immer"; "always" = "Immer";
@@ -485,9 +443,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"An empty chat profile with the provided name is created, and the app opens as usual." = "Es wurde ein leeres Chat-Profil mit dem eingegebenen Namen erstellt und die App öffnet wie gewohnt."; "An empty chat profile with the provided name is created, and the app opens as usual." = "Es wurde ein leeres Chat-Profil mit dem eingegebenen Namen erstellt und die App öffnet wie gewohnt.";
/* No comment provided by engineer. */
"and %lld other events" = "und %lld weitere Ereignisse";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Answer call" = "Anruf annehmen"; "Answer call" = "Anruf annehmen";
@@ -545,9 +500,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Authentication unavailable" = "Authentifizierung nicht verfügbar"; "Authentication unavailable" = "Authentifizierung nicht verfügbar";
/* member role */
"author" = "Autor";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Auto-accept" = "Automatisch akzeptieren"; "Auto-accept" = "Automatisch akzeptieren";
@@ -560,9 +512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Back" = "Zurück"; "Back" = "Zurück";
/* No comment provided by engineer. */
"Bad desktop address" = "Falsche Desktop-Adresse";
/* integrity error chat item */ /* integrity error chat item */
"bad message hash" = "Ungültiger Nachrichten-Hash"; "bad message hash" = "Ungültiger Nachrichten-Hash";
@@ -575,27 +524,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Bad message ID" = "Falsche Nachrichten-ID"; "Bad message ID" = "Falsche Nachrichten-ID";
/* No comment provided by engineer. */
"Better groups" = "Bessere Gruppen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Better messages" = "Verbesserungen bei Nachrichten"; "Better messages" = "Verbesserungen bei Nachrichten";
/* No comment provided by engineer. */
"Block" = "Blockieren";
/* No comment provided by engineer. */
"Block group members" = "Gruppenmitglieder blockieren";
/* No comment provided by engineer. */
"Block member" = "Mitglied blockieren";
/* No comment provided by engineer. */
"Block member?" = "Mitglied blockieren?";
/* No comment provided by engineer. */
"blocked" = "blockiert";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"bold" = "fett"; "bold" = "fett";
@@ -789,30 +720,12 @@
/* server test step */ /* server test step */
"Connect" = "Verbinden"; "Connect" = "Verbinden";
/* No comment provided by engineer. */
"Connect automatically" = "Automatisch verbinden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect incognito" = "Inkognito verbinden"; "Connect incognito" = "Inkognito verbinden";
/* No comment provided by engineer. */
"Connect to desktop" = "Mit dem Desktop verbinden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "Mit den SimpleX Chat-Entwicklern verbinden."; "connect to SimpleX Chat developers." = "Mit den SimpleX Chat-Entwicklern verbinden.";
/* No comment provided by engineer. */
"Connect to yourself?" = "Mit Ihnen selbst verbinden?";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own one-time link!" = "Mit Ihnen selbst verbinden?\nDas ist Ihr eigener Einmal-Link!";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own SimpleX address!" = "Mit Ihnen selbst verbinden?\nDas ist Ihre eigene SimpleX-Adresse!";
/* No comment provided by engineer. */
"Connect via contact address" = "Über die Kontakt-Adresse verbinden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via link" = "Über einen Link verbinden"; "Connect via link" = "Über einen Link verbinden";
@@ -822,21 +735,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via one-time link" = "Über einen Einmal-Link verbinden"; "Connect via one-time link" = "Über einen Einmal-Link verbinden";
/* No comment provided by engineer. */
"Connect with %@" = "Mit %@ verbinden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connected" = "Verbunden"; "connected" = "Verbunden";
/* No comment provided by engineer. */
"Connected desktop" = "Verbundener Desktop";
/* rcv group event chat item */ /* rcv group event chat item */
"connected directly" = "Direkt miteinander verbunden"; "connected directly" = "Direkt miteinander verbunden";
/* No comment provided by engineer. */
"Connected to desktop" = "Mit dem Desktop verbunden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting" = "verbinde"; "connecting" = "verbinde";
@@ -861,9 +765,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Mit dem Server verbinden… (Fehler: %@)"; "Connecting server… (error: %@)" = "Mit dem Server verbinden… (Fehler: %@)";
/* No comment provided by engineer. */
"Connecting to desktop" = "Mit dem Desktop verbinden";
/* chat list item title */ /* chat list item title */
"connecting…" = "Verbinde…"; "connecting…" = "Verbinde…";
@@ -882,9 +783,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "Verbindungsanfrage wurde gesendet!"; "Connection request sent!" = "Verbindungsanfrage wurde gesendet!";
/* No comment provided by engineer. */
"Connection terminated" = "Verbindung beendet";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection timeout" = "Verbindungszeitüberschreitung"; "Connection timeout" = "Verbindungszeitüberschreitung";
@@ -933,24 +831,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Core version: v%@" = "Core Version: v%@"; "Core version: v%@" = "Core Version: v%@";
/* No comment provided by engineer. */
"Correct name to %@?" = "Richtiger Name für %@?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create" = "Erstellen"; "Create" = "Erstellen";
/* No comment provided by engineer. */
"Create a group using a random profile." = "Erstellen Sie eine Gruppe mit einem zufälligen Profil.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create an address to let people connect with you." = "Erstellen Sie eine Adresse, damit sich Personen mit Ihnen verbinden können."; "Create an address to let people connect with you." = "Erstellen Sie eine Adresse, damit sich Personen mit Ihnen verbinden können.";
/* server test step */ /* server test step */
"Create file" = "Datei erstellen"; "Create file" = "Datei erstellen";
/* No comment provided by engineer. */
"Create group" = "Gruppe erstellen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create group link" = "Gruppenlink erstellen"; "Create group link" = "Gruppenlink erstellen";
@@ -963,9 +852,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create one-time invitation link" = "Einmal-Einladungslink erstellen"; "Create one-time invitation link" = "Einmal-Einladungslink erstellen";
/* No comment provided by engineer. */
"Create profile" = "Profil erstellen";
/* server test step */ /* server test step */
"Create queue" = "Erzeuge Warteschlange"; "Create queue" = "Erzeuge Warteschlange";
@@ -1080,9 +966,6 @@
/* chat item action */ /* chat item action */
"Delete" = "Löschen"; "Delete" = "Löschen";
/* No comment provided by engineer. */
"Delete %lld messages?" = "%lld Nachrichten löschen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete address" = "Adresse löschen"; "Delete address" = "Adresse löschen";
@@ -1095,9 +978,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete all files" = "Alle Dateien löschen"; "Delete all files" = "Alle Dateien löschen";
/* No comment provided by engineer. */
"Delete and notify contact" = "Kontakt löschen und benachrichtigen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete archive" = "Archiv löschen"; "Delete archive" = "Archiv löschen";
@@ -1119,9 +999,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete Contact" = "Kontakt löschen"; "Delete Contact" = "Kontakt löschen";
/* No comment provided by engineer. */
"Delete contact?\nThis cannot be undone!" = "Kontakt löschen?\nDas kann nicht rückgängig gemacht werden!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete database" = "Datenbank löschen"; "Delete database" = "Datenbank löschen";
@@ -1197,9 +1074,6 @@
/* copied message info */ /* copied message info */
"Deleted at: %@" = "Gelöscht um: %@"; "Deleted at: %@" = "Gelöscht um: %@";
/* rcv direct event chat item */
"deleted contact" = "Gelöschter Kontakt";
/* rcv group event chat item */ /* rcv group event chat item */
"deleted group" = "Gruppe gelöscht"; "deleted group" = "Gruppe gelöscht";
@@ -1215,15 +1089,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Description" = "Beschreibung"; "Description" = "Beschreibung";
/* No comment provided by engineer. */
"Desktop address" = "Desktop-Adresse";
/* No comment provided by engineer. */
"Desktop app version %@ is not compatible with this app." = "Desktop App-Version %@ ist mit dieser App nicht kompatibel.";
/* No comment provided by engineer. */
"Desktop devices" = "Desktop-Geräte";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Develop" = "Entwicklung"; "Develop" = "Entwicklung";
@@ -1287,15 +1152,9 @@
/* server test step */ /* server test step */
"Disconnect" = "Trennen"; "Disconnect" = "Trennen";
/* No comment provided by engineer. */
"Disconnect desktop?" = "Desktop-Verbindung trennen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Discover and join groups" = "Gruppen entdecken und ihnen beitreten"; "Discover and join groups" = "Gruppen entdecken und ihnen beitreten";
/* No comment provided by engineer. */
"Discover via local network" = "Lokales Netzwerk durchsuchen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Do it later" = "Später wiederholen"; "Do it later" = "Später wiederholen";
@@ -1431,12 +1290,6 @@
/* chat item text */ /* chat item text */
"encryption re-negotiation allowed for %@" = "Neuaushandlung der Verschlüsselung von %@ erlaubt"; "encryption re-negotiation allowed for %@" = "Neuaushandlung der Verschlüsselung von %@ erlaubt";
/* message decrypt error item */
"Encryption re-negotiation error" = "Fehler bei der Neuverhandlung der Verschlüsselung";
/* No comment provided by engineer. */
"Encryption re-negotiation failed." = "Neuverhandlung der Verschlüsselung fehlgeschlagen.";
/* chat item text */ /* chat item text */
"encryption re-negotiation required" = "Neuaushandlung der Verschlüsselung notwendig"; "encryption re-negotiation required" = "Neuaushandlung der Verschlüsselung notwendig";
@@ -1452,9 +1305,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter correct passphrase." = "Geben Sie das korrekte Passwort ein."; "Enter correct passphrase." = "Geben Sie das korrekte Passwort ein.";
/* No comment provided by engineer. */
"Enter group name…" = "Geben Sie den Gruppennamen ein…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter Passcode" = "Zugangscode eingeben"; "Enter Passcode" = "Zugangscode eingeben";
@@ -1467,18 +1317,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter server manually" = "Geben Sie den Server manuell ein"; "Enter server manually" = "Geben Sie den Server manuell ein";
/* No comment provided by engineer. */
"Enter this device name…" = "Geben Sie diesen Gerätenamen ein…";
/* placeholder */ /* placeholder */
"Enter welcome message…" = "Geben Sie eine Begrüßungsmeldung ein …"; "Enter welcome message…" = "Geben Sie eine Begrüßungsmeldung ein …";
/* placeholder */ /* placeholder */
"Enter welcome message… (optional)" = "Geben Sie eine Begrüßungsmeldung ein … (optional)"; "Enter welcome message… (optional)" = "Geben Sie eine Begrüßungsmeldung ein … (optional)";
/* No comment provided by engineer. */
"Enter your name…" = "Geben Sie Ihren Namen ein…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"error" = "Fehler"; "error" = "Fehler";
@@ -1650,9 +1494,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Exit without saving" = "Beenden ohne Speichern"; "Exit without saving" = "Beenden ohne Speichern";
/* chat item action */
"Expand" = "Erweitern";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Export database" = "Datenbank exportieren"; "Export database" = "Datenbank exportieren";
@@ -1671,9 +1512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fast and no wait until the sender is online!" = "Schnell und ohne warten auf den Absender, bis er online ist!"; "Fast and no wait until the sender is online!" = "Schnell und ohne warten auf den Absender, bis er online ist!";
/* No comment provided by engineer. */
"Faster joining and more reliable messages." = "Schnellerer Gruppenbeitritt und zuverlässigere Nachrichtenzustellung.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Favorite" = "Favorit"; "Favorite" = "Favorit";
@@ -1731,9 +1569,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Für Konsole"; "For console" = "Für Konsole";
/* No comment provided by engineer. */
"Found desktop" = "Gefundener Desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"French interface" = "Französische Bedienoberfläche"; "French interface" = "Französische Bedienoberfläche";
@@ -1746,9 +1581,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Full name:" = "Vollständiger Name:"; "Full name:" = "Vollständiger Name:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Vollständig dezentralisiert nur für Mitglieder sichtbar.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "Komplett neu umgesetzt - arbeitet nun im Hintergrund!"; "Fully re-implemented - work in background!" = "Komplett neu umgesetzt - arbeitet nun im Hintergrund!";
@@ -1761,12 +1593,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group" = "Gruppe"; "Group" = "Gruppe";
/* No comment provided by engineer. */
"Group already exists" = "Die Gruppe besteht bereits";
/* No comment provided by engineer. */
"Group already exists!" = "Die Gruppe besteht bereits!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"group deleted" = "Gruppe gelöscht"; "group deleted" = "Gruppe gelöscht";
@@ -1938,9 +1764,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Inkognito"; "Incognito" = "Inkognito";
/* No comment provided by engineer. */
"Incognito groups" = "Inkognito-Gruppen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito mode" = "Inkognito-Modus"; "Incognito mode" = "Inkognito-Modus";
@@ -1968,9 +1791,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incompatible database version" = "Inkompatible Datenbank-Version"; "Incompatible database version" = "Inkompatible Datenbank-Version";
/* No comment provided by engineer. */
"Incompatible version" = "Inkompatible Version";
/* PIN entry */ /* PIN entry */
"Incorrect passcode" = "Zugangscode ist falsch"; "Incorrect passcode" = "Zugangscode ist falsch";
@@ -2010,9 +1830,6 @@
/* invalid chat item */ /* invalid chat item */
"invalid data" = "Ungültige Daten"; "invalid data" = "Ungültige Daten";
/* No comment provided by engineer. */
"Invalid name!" = "Ungültiger Name!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid server address!" = "Ungültige Serveradresse!"; "Invalid server address!" = "Ungültige Serveradresse!";
@@ -2071,7 +1888,7 @@
"It can happen when:\n1. The messages expired in the sending client after 2 days or on the server after 30 days.\n2. Message decryption failed, because you or your contact used old database backup.\n3. The connection was compromised." = "Dies kann unter folgenden Umständen passieren:\n1. Die Nachrichten verfallen auf dem sendenden Client-System nach 2 Tagen oder auf dem Server nach 30 Tagen.\n2. Die Nachrichten-Entschlüsselung ist fehlgeschlagen, da von Ihnen oder Ihrem Kontakt ein altes Datenbank-Backup genutzt wurde.\n3. Die Verbindung wurde kompromittiert."; "It can happen when:\n1. The messages expired in the sending client after 2 days or on the server after 30 days.\n2. Message decryption failed, because you or your contact used old database backup.\n3. The connection was compromised." = "Dies kann unter folgenden Umständen passieren:\n1. Die Nachrichten verfallen auf dem sendenden Client-System nach 2 Tagen oder auf dem Server nach 30 Tagen.\n2. Die Nachrichten-Entschlüsselung ist fehlgeschlagen, da von Ihnen oder Ihrem Kontakt ein altes Datenbank-Backup genutzt wurde.\n3. Die Verbindung wurde kompromittiert.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It seems like you are already connected via this link. If it is not the case, there was an error (%@)." = "Es sieht so aus, als ob Sie bereits über diesen Link verbunden sind. Wenn das nicht der Fall ist, gab es einen Fehler (%@)."; "It seems like you are already connected via this link. If it is not the case, there was an error (%@)." = "Es sieht so aus, dass Sie bereits über diesen Link verbunden sind. Wenn das nicht der Fall, gab es einen Fehler (%@).";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Italian interface" = "Italienische Bedienoberfläche"; "Italian interface" = "Italienische Bedienoberfläche";
@@ -2091,24 +1908,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join group" = "Treten Sie der Gruppe bei"; "Join group" = "Treten Sie der Gruppe bei";
/* No comment provided by engineer. */
"Join group?" = "Der Gruppe beitreten?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join incognito" = "Inkognito beitreten"; "Join incognito" = "Inkognito beitreten";
/* No comment provided by engineer. */
"Join with current profile" = "Mit dem aktuellen Profil beitreten";
/* No comment provided by engineer. */
"Join your group?\nThis is your link for group %@!" = "Ihrer Gruppe beitreten?\nDas ist Ihr Link für die Gruppe %@!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Joining group" = "Der Gruppe beitreten"; "Joining group" = "Der Gruppe beitreten";
/* 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";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Keep your connections" = "Ihre Verbindungen beibehalten"; "Keep your connections" = "Ihre Verbindungen beibehalten";
@@ -2145,15 +1950,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Limitations" = "Einschränkungen"; "Limitations" = "Einschränkungen";
/* No comment provided by engineer. */
"Link mobile and desktop apps! 🔗" = "Verknüpfe Mobiltelefon- und Desktop-Apps! 🔗";
/* No comment provided by engineer. */
"Linked desktop options" = "Verknüpfte Desktop-Optionen";
/* No comment provided by engineer. */
"Linked desktops" = "Verknüpfte Desktops";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"LIVE" = "LIVE"; "LIVE" = "LIVE";
@@ -2259,9 +2055,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages & files" = "Nachrichten"; "Messages & files" = "Nachrichten";
/* No comment provided by engineer. */
"Messages from %@ will be shown!" = "Die Nachrichten von %@ werden angezeigt!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrating database archive…" = "Datenbank-Archiv wird migriert…"; "Migrating database archive…" = "Datenbank-Archiv wird migriert…";
@@ -2409,9 +2202,6 @@
/* copied message info in history */ /* copied message info in history */
"no text" = "Kein Text"; "no text" = "Kein Text";
/* No comment provided by engineer. */
"Not compatible!" = "Nicht kompatibel!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Notifications" = "Benachrichtigungen"; "Notifications" = "Benachrichtigungen";
@@ -2516,9 +2306,6 @@
/* authentication reason */ /* authentication reason */
"Open chat console" = "Chat-Konsole öffnen"; "Open chat console" = "Chat-Konsole öffnen";
/* No comment provided by engineer. */
"Open group" = "Gruppe öffnen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open Settings" = "Geräte-Einstellungen öffnen"; "Open Settings" = "Geräte-Einstellungen öffnen";
@@ -2555,9 +2342,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste" = "Einfügen"; "Paste" = "Einfügen";
/* No comment provided by engineer. */
"Paste desktop address" = "Desktop-Adresse einfügen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste image" = "Bild einfügen"; "Paste image" = "Bild einfügen";
@@ -2654,12 +2438,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Profilbild"; "Profile image" = "Profilbild";
/* No comment provided by engineer. */
"Profile name" = "Profilname";
/* No comment provided by engineer. */
"Profile name:" = "Profilname:";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile password" = "Passwort für Profil"; "Profile password" = "Passwort für Profil";
@@ -2825,12 +2603,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Renegotiate encryption?" = "Verschlüsselung neu aushandeln?"; "Renegotiate encryption?" = "Verschlüsselung neu aushandeln?";
/* No comment provided by engineer. */
"Repeat connection request?" = "Verbindungsanfrage wiederholen?";
/* No comment provided by engineer. */
"Repeat join request?" = "Verbindungsanfrage wiederholen?";
/* chat item action */ /* chat item action */
"Reply" = "Antwort"; "Reply" = "Antwort";
@@ -2942,9 +2714,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan QR code" = "QR-Code scannen"; "Scan QR code" = "QR-Code scannen";
/* No comment provided by engineer. */
"Scan QR code from desktop" = "Den QR-Code vom Desktop scannen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan security code from your contact's app." = "Scannen Sie den Sicherheitscode von der App Ihres Kontakts."; "Scan security code from your contact's app." = "Scannen Sie den Sicherheitscode von der App Ihres Kontakts.";
@@ -3089,9 +2858,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Servers" = "Server"; "Servers" = "Server";
/* No comment provided by engineer. */
"Session code" = "Sitzungscode";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Set 1 day" = "Einen Tag festlegen"; "Set 1 day" = "Einen Tag festlegen";
@@ -3278,9 +3044,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to activate profile." = "Tippen Sie auf das Profil um es zu aktivieren."; "Tap to activate profile." = "Tippen Sie auf das Profil um es zu aktivieren.";
/* No comment provided by engineer. */
"Tap to Connect" = "Zum Verbinden antippen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to join" = "Zum Beitreten tippen"; "Tap to join" = "Zum Beitreten tippen";
@@ -3401,21 +3164,12 @@
/* notification title */ /* notification title */
"this contact" = "Dieser Kontakt"; "this contact" = "Dieser Kontakt";
/* No comment provided by engineer. */
"This device name" = "Dieser Gerätename";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "Es werden keine Empfangsbestätigungen gesendet, da diese Gruppe über %lld Mitglieder hat."; "This group has over %lld members, delivery receipts are not sent." = "Es werden keine Empfangsbestätigungen gesendet, da diese Gruppe über %lld Mitglieder hat.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group no longer exists." = "Diese Gruppe existiert nicht mehr."; "This group no longer exists." = "Diese Gruppe existiert nicht mehr.";
/* No comment provided by engineer. */
"This is your own one-time link!" = "Das ist Ihr eigener Einmal-Link!";
/* No comment provided by engineer. */
"This is your own SimpleX address!" = "Das ist Ihre eigene SimpleX-Adresse!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This setting applies to messages in your current chat profile **%@**." = "Diese Einstellung gilt für Nachrichten in Ihrem aktuellen Chat-Profil **%@**."; "This setting applies to messages in your current chat profile **%@**." = "Diese Einstellung gilt für Nachrichten in Ihrem aktuellen Chat-Profil **%@**.";
@@ -3425,9 +3179,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To connect, your contact can scan QR code or use the link in the app." = "Um eine Verbindung herzustellen, kann Ihr Kontakt den QR-Code scannen oder den Link in der App verwenden."; "To connect, your contact can scan QR code or use the link in the app." = "Um eine Verbindung herzustellen, kann Ihr Kontakt den QR-Code scannen oder den Link in der App verwenden.";
/* No comment provided by engineer. */
"To hide unwanted messages." = "Um unerwünschte Nachrichten zu verbergen.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To make a new connection" = "Um eine Verbindung mit einem neuen Kontakt zu erstellen"; "To make a new connection" = "Um eine Verbindung mit einem neuen Kontakt zu erstellen";
@@ -3444,7 +3195,7 @@
"To record voice message please grant permission to use Microphone." = "Bitte erlauben Sie die Nutzung des Mikrofons, um Sprachnachrichten aufnehmen zu können."; "To record voice message please grant permission to use Microphone." = "Bitte erlauben Sie die Nutzung des Mikrofons, um Sprachnachrichten aufnehmen zu können.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." = "Geben Sie ein vollständiges Passwort in das Suchfeld auf der Seite **Ihre Chat-Profile** ein, um Ihr verborgenes Profil zu sehen."; "To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." = "Geben Sie ein vollständiges Passwort in das Suchfeld auf der Seite **Meine Chat-Profile** ein, um Ihr verborgenes Profil zu sehen.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To support instant push notifications the chat database has to be migrated." = "Um sofortige Push-Benachrichtigungen zu unterstützen, muss die Chat-Datenbank migriert werden."; "To support instant push notifications the chat database has to be migrated." = "Um sofortige Push-Benachrichtigungen zu unterstützen, muss die Chat-Datenbank migriert werden.";
@@ -3476,15 +3227,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unable to record voice message" = "Die Aufnahme einer Sprachnachricht ist nicht möglich"; "Unable to record voice message" = "Die Aufnahme einer Sprachnachricht ist nicht möglich";
/* No comment provided by engineer. */
"Unblock" = "Freigeben";
/* No comment provided by engineer. */
"Unblock member" = "Mitglied freigeben";
/* No comment provided by engineer. */
"Unblock member?" = "Mitglied freigeben?";
/* item status description */ /* item status description */
"Unexpected error: %@" = "Unerwarteter Fehler: %@"; "Unexpected error: %@" = "Unerwarteter Fehler: %@";
@@ -3524,12 +3266,6 @@
/* No comment provided by engineer. */ /* 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." = "Entweder hat Ihr Kontakt die Verbindung gelöscht, oder dieser Link wurde bereits verwendet, es könnte sich um einen Fehler handeln - Bitte melden Sie es uns.\nBitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um sich neu verbinden zu können und stellen Sie sicher, dass Sie eine stabile Netzwerk-Verbindung haben."; "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." = "Entweder hat Ihr Kontakt die Verbindung gelöscht, oder dieser Link wurde bereits verwendet, es könnte sich um einen Fehler handeln - Bitte melden Sie es uns.\nBitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um sich neu verbinden zu können und stellen Sie sicher, dass Sie eine stabile Netzwerk-Verbindung haben.";
/* No comment provided by engineer. */
"Unlink" = "Entkoppeln";
/* No comment provided by engineer. */
"Unlink desktop?" = "Desktop entkoppeln?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unlock" = "Entsperren"; "Unlock" = "Entsperren";
@@ -3584,9 +3320,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Für neue Verbindungen nutzen"; "Use for new connections" = "Für neue Verbindungen nutzen";
/* No comment provided by engineer. */
"Use from desktop" = "Vom Desktop aus nutzen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use iOS call interface" = "iOS Anrufschnittstelle nutzen"; "Use iOS call interface" = "iOS Anrufschnittstelle nutzen";
@@ -3608,24 +3341,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Using SimpleX Chat servers." = "Verwendung von SimpleX-Chat-Servern."; "Using SimpleX Chat servers." = "Verwendung von SimpleX-Chat-Servern.";
/* No comment provided by engineer. */
"v%@" = "v%@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"v%@ (%@)" = "v%@ (%@)"; "v%@ (%@)" = "v%@ (%@)";
/* No comment provided by engineer. */
"Verify code with desktop" = "Code mit dem Desktop überprüfen";
/* No comment provided by engineer. */
"Verify connection" = "Verbindung überprüfen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify connection security" = "Sicherheit der Verbindung überprüfen"; "Verify connection security" = "Sicherheit der Verbindung überprüfen";
/* No comment provided by engineer. */
"Verify connections" = "Verbindungen überprüfen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify security code" = "Sicherheitscode überprüfen"; "Verify security code" = "Sicherheitscode überprüfen";
@@ -3644,9 +3365,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"via relay" = "über Relais"; "via relay" = "über Relais";
/* No comment provided by engineer. */
"Via secure quantum resistant protocol." = "Über ein sicheres quantenbeständiges Protokoll.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video call" = "Videoanruf"; "Video call" = "Videoanruf";
@@ -3686,9 +3404,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"waiting for confirmation…" = "Warten auf Bestätigung…"; "waiting for confirmation…" = "Warten auf Bestätigung…";
/* No comment provided by engineer. */
"Waiting for desktop..." = "Es wird auf den Desktop gewartet...";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Waiting for file" = "Warte auf Datei"; "Waiting for file" = "Warte auf Datei";
@@ -3744,7 +3459,7 @@
"yes" = "Ja"; "yes" = "Ja";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Ihre Daten"; "You" = "Meine Daten";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You accepted connection" = "Sie haben die Verbindung akzeptiert"; "You accepted connection" = "Sie haben die Verbindung akzeptiert";
@@ -3758,27 +3473,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connected to %@." = "Sie sind bereits mit %@ verbunden."; "You are already connected to %@." = "Sie sind bereits mit %@ verbunden.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Sie sind bereits mit %@ verbunden.";
/* No comment provided by engineer. */
"You are already connecting via this one-time link!" = "Sie sind bereits über diesen Einmal-Link verbunden!";
/* No comment provided by engineer. */
"You are already in group %@." = "Sie sind bereits Mitglied der Gruppe %@.";
/* No comment provided by engineer. */
"You are already joining the group %@." = "Sie sind bereits Mitglied der Gruppe %@.";
/* No comment provided by engineer. */
"You are already joining the group via this link!" = "Sie sind über diesen Link bereits Mitglied der Gruppe!";
/* No comment provided by engineer. */
"You are already joining the group via this link." = "Sie sind über diesen Link bereits Mitglied der Gruppe.";
/* No comment provided by engineer. */
"You are already joining the group!\nRepeat join request?" = "Sie sind bereits Mitglied dieser Gruppe!\nVerbindungsanfrage wiederholen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are connected to the server used to receive messages from this contact." = "Sie sind mit dem Server verbunden, der für den Empfang von Nachrichten mit diesem Kontakt genutzt wird."; "You are connected to the server used to receive messages from this contact." = "Sie sind mit dem Server verbunden, der für den Empfang von Nachrichten mit diesem Kontakt genutzt wird.";
@@ -3854,12 +3548,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You could not be verified; please try again." = "Sie konnten nicht überprüft werden; bitte versuchen Sie es erneut."; "You could not be verified; please try again." = "Sie konnten nicht überprüft werden; bitte versuchen Sie es erneut.";
/* No comment provided by engineer. */
"You have already requested connection via this address!" = "Sie haben über diese Adresse bereits eine Verbindung beantragt!";
/* No comment provided by engineer. */
"You have already requested connection!\nRepeat connection request?" = "Sie haben bereits ein Verbindungsanfrage beantragt!\nVerbindungsanfrage wiederholen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You have no chats" = "Sie haben keine Chats"; "You have no chats" = "Sie haben keine Chats";
@@ -3902,9 +3590,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected to group when the group host's device is online, please wait or check later!" = "Sie werden mit der Gruppe verbunden, sobald das Endgerät des Gruppen-Hosts online ist. Bitte warten oder schauen Sie später nochmal nach!"; "You will be connected to group when the group host's device is online, please wait or check later!" = "Sie werden mit der Gruppe verbunden, sobald das Endgerät des Gruppen-Hosts online ist. Bitte warten oder schauen Sie später nochmal nach!";
/* No comment provided by engineer. */
"You will be connected when group link host's device is online, please wait or check later!" = "Sie werden verbunden, sobald das Endgerät des Gruppenlink-Hosts online ist. Bitte warten oder schauen Sie später nochmal nach!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected when your connection request is accepted, please wait or check later!" = "Sie werden verbunden, sobald Ihre Verbindungsanfrage akzeptiert wird. Bitte warten oder schauen Sie später nochmal nach!"; "You will be connected when your connection request is accepted, please wait or check later!" = "Sie werden verbunden, sobald Ihre Verbindungsanfrage akzeptiert wird. Bitte warten oder schauen Sie später nochmal nach!";
@@ -3914,9 +3599,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Sie müssen sich authentifizieren, wenn Sie die im Hintergrund befindliche App nach 30 Sekunden starten oder fortsetzen."; "You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Sie müssen sich authentifizieren, wenn Sie die im Hintergrund befindliche App nach 30 Sekunden starten oder fortsetzen.";
/* No comment provided by engineer. */
"You will connect to all group members." = "Sie werden mit allen Gruppenmitgliedern verbunden.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Sie können Anrufe und Benachrichtigungen auch von stummgeschalteten Profilen empfangen, solange diese aktiv sind."; "You will still receive calls and notifications from muted profiles when they are active." = "Sie können Anrufe und Benachrichtigungen auch von stummgeschalteten Profilen empfangen, solange diese aktiv sind.";
@@ -3948,7 +3630,7 @@
"Your chat database is not encrypted - set passphrase to encrypt it." = "Ihre Chat-Datenbank ist nicht verschlüsselt. Bitte legen Sie ein Passwort fest, um sie zu schützen."; "Your chat database is not encrypted - set passphrase to encrypt it." = "Ihre Chat-Datenbank ist nicht verschlüsselt. Bitte legen Sie ein Passwort fest, um sie zu schützen.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your chat profiles" = "Ihre Chat-Profile"; "Your chat profiles" = "Meine Chat-Profile";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your contact needs to be online for the connection to complete.\nYou can cancel this connection and remove the contact (and try later with a new link)." = "Damit die Verbindung hergestellt werden kann, muss Ihr Kontakt online sein.\nSie können diese Verbindung abbrechen und den Kontakt entfernen (und es später nochmals mit einem neuen Link versuchen)."; "Your contact needs to be online for the connection to complete.\nYou can cancel this connection and remove the contact (and try later with a new link)." = "Damit die Verbindung hergestellt werden kann, muss Ihr Kontakt online sein.\nSie können diese Verbindung abbrechen und den Kontakt entfernen (und es später nochmals mit einem neuen Link versuchen).";
@@ -3975,13 +3657,10 @@
"Your ICE servers" = "Ihre ICE-Server"; "Your ICE servers" = "Ihre ICE-Server";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your preferences" = "Ihre Präferenzen"; "Your preferences" = "Meine Präferenzen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your privacy" = "Ihre Privatsphäre"; "Your privacy" = "Meine Privatsphäre";
/* No comment provided by engineer. */
"Your profile" = "Mein Profil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your profile **%@** will be shared." = "Ihr Profil **%@** wird geteilt."; "Your profile **%@** will be shared." = "Ihr Profil **%@** wird geteilt.";
@@ -4002,10 +3681,10 @@
"Your server address" = "Ihre Serveradresse"; "Your server address" = "Ihre Serveradresse";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your settings" = "Ihre Einstellungen"; "Your settings" = "Meine Einstellungen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your SimpleX address" = "Ihre SimpleX-Adresse"; "Your SimpleX address" = "Meine SimpleX-Adresse";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your SMP servers" = "Ihre SMP-Server"; "Your SMP servers" = "Ihre SMP-Server";
@@ -7,9 +7,6 @@
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "Face ID wird von SimpleX für die lokale Authentifizierung genutzt"; "NSFaceIDUsageDescription" = "Face ID wird von SimpleX für die lokale Authentifizierung genutzt";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX nutzt den lokalen Netzwerkzugriff, um die Nutzung von Benutzer-Chatprofilen über eine Desktop-App im gleichen Netzwerk zu erlauben.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX benötigt Zugriff auf das Mikrofon, um Audio- und Videoanrufe und die Aufnahme von Sprachnachrichten zu ermöglichen."; "NSMicrophoneUsageDescription" = "SimpleX benötigt Zugriff auf das Mikrofon, um Audio- und Videoanrufe und die Aufnahme von Sprachnachrichten zu ermöglichen.";
-321
View File
@@ -25,9 +25,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- more stable message delivery.\n- a bit better groups.\n- and more!" = "- une diffusion plus stable des messages.\n- des groupes un peu plus performants.\n- et bien d'autres choses encore !"; "- more stable message delivery.\n- a bit better groups.\n- and more!" = "- une diffusion plus stable des messages.\n- des groupes un peu plus performants.\n- et bien d'autres choses encore !";
/* No comment provided by engineer. */
"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- option pour notifier les contacts supprimés.\n- noms de profil avec espaces.\n- et plus encore !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- messages vocaux pouvant durer jusqu'à 5 minutes.\n- délai personnalisé de disparition.\n- l'historique de modification."; "- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- messages vocaux pouvant durer jusqu'à 5 minutes.\n- délai personnalisé de disparition.\n- l'historique de modification.";
@@ -46,12 +43,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"(" = "("; "(" = "(";
/* No comment provided by engineer. */
"(new)" = "(nouveau)";
/* No comment provided by engineer. */
"(this device v%@)" = "(cet appareil v%@)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
")" = ")"; ")" = ")";
@@ -127,18 +118,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ %@" = "%@ %@"; "%@ %@" = "%@ %@";
/* No comment provided by engineer. */
"%@ and %@" = "%@ et %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ and %@ connected" = "%@ et %@ sont connecté.es"; "%@ and %@ connected" = "%@ et %@ sont connecté.es";
/* copied message info, <sender> at <time> */ /* copied message info, <sender> at <time> */
"%@ at %@:" = "%1$@ à %2$@:"; "%@ at %@:" = "%1$@ à %2$@:";
/* No comment provided by engineer. */
"%@ connected" = "%@ connecté(e)";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ est connecté·e !"; "%@ is connected!" = "%@ est connecté·e !";
@@ -154,9 +139,6 @@
/* notification title */ /* notification title */
"%@ wants to connect!" = "%@ veut se connecter !"; "%@ wants to connect!" = "%@ veut se connecter !";
/* No comment provided by engineer. */
"%@, %@ and %lld members" = "%@, %@ et %lld membres";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@, %@ and %lld other members connected" = "%@, %@ et %lld autres membres sont connectés"; "%@, %@ and %lld other members connected" = "%@, %@ et %lld autres membres sont connectés";
@@ -196,21 +178,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld file(s) with total size of %@" = "%lld fichier·s pour une taille totale de %@"; "%lld file(s) with total size of %@" = "%lld fichier·s pour une taille totale de %@";
/* No comment provided by engineer. */
"%lld group events" = "%lld événements de groupe";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld members" = "%lld membres"; "%lld members" = "%lld membres";
/* No comment provided by engineer. */
"%lld messages blocked" = "%lld messages bloqués";
/* No comment provided by engineer. */
"%lld messages marked deleted" = "%lld messages marqués comme supprimés";
/* No comment provided by engineer. */
"%lld messages moderated by %@" = "%lld messages modérés par %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld minutes" = "%lld minutes"; "%lld minutes" = "%lld minutes";
@@ -259,9 +229,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"~strike~" = "\\~barré~"; "~strike~" = "\\~barré~";
/* time to disappear */
"0 sec" = "0 sec";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"0s" = "0s"; "0s" = "0s";
@@ -404,9 +371,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Tous les messages seront supprimés - impossible de revenir en arrière ! Les messages seront supprimés UNIQUEMENT pour vous."; "All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Tous les messages seront supprimés - impossible de revenir en arrière ! Les messages seront supprimés UNIQUEMENT pour vous.";
/* No comment provided by engineer. */
"All new messages from %@ will be hidden!" = "Tous les nouveaux messages de %@ seront cachés !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts will remain connected." = "Tous vos contacts resteront connectés."; "All your contacts will remain connected." = "Tous vos contacts resteront connectés.";
@@ -470,12 +434,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Already connected?" = "Déjà connecté ?"; "Already connected?" = "Déjà connecté ?";
/* No comment provided by engineer. */
"Already connecting!" = "Déjà en connexion !";
/* No comment provided by engineer. */
"Already joining the group!" = "Groupe déjà rejoint !";
/* pref value */ /* pref value */
"always" = "toujours"; "always" = "toujours";
@@ -485,9 +443,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"An empty chat profile with the provided name is created, and the app opens as usual." = "Un profil de chat vierge portant le nom fourni est créé et l'application s'ouvre normalement."; "An empty chat profile with the provided name is created, and the app opens as usual." = "Un profil de chat vierge portant le nom fourni est créé et l'application s'ouvre normalement.";
/* No comment provided by engineer. */
"and %lld other events" = "et %lld autres événements";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Answer call" = "Répondre à l'appel"; "Answer call" = "Répondre à l'appel";
@@ -545,9 +500,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Authentication unavailable" = "Authentification indisponible"; "Authentication unavailable" = "Authentification indisponible";
/* member role */
"author" = "auteur";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Auto-accept" = "Auto-accepter"; "Auto-accept" = "Auto-accepter";
@@ -560,9 +512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Back" = "Retour"; "Back" = "Retour";
/* No comment provided by engineer. */
"Bad desktop address" = "Mauvaise adresse de bureau";
/* integrity error chat item */ /* integrity error chat item */
"bad message hash" = "hash de message incorrect"; "bad message hash" = "hash de message incorrect";
@@ -575,27 +524,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Bad message ID" = "Mauvais ID de message"; "Bad message ID" = "Mauvais ID de message";
/* No comment provided by engineer. */
"Better groups" = "Des groupes plus performants";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Better messages" = "Meilleurs messages"; "Better messages" = "Meilleurs messages";
/* No comment provided by engineer. */
"Block" = "Bloquer";
/* No comment provided by engineer. */
"Block group members" = "Bloquer des membres d'un groupe";
/* No comment provided by engineer. */
"Block member" = "Bloquer ce membre";
/* No comment provided by engineer. */
"Block member?" = "Bloquer ce membre ?";
/* No comment provided by engineer. */
"blocked" = "blocké";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"bold" = "gras"; "bold" = "gras";
@@ -789,30 +720,12 @@
/* server test step */ /* server test step */
"Connect" = "Se connecter"; "Connect" = "Se connecter";
/* No comment provided by engineer. */
"Connect automatically" = "Connexion automatique";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect incognito" = "Se connecter incognito"; "Connect incognito" = "Se connecter incognito";
/* No comment provided by engineer. */
"Connect to desktop" = "Se connecter au bureau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "se connecter aux developpeurs de SimpleX Chat."; "connect to SimpleX Chat developers." = "se connecter aux developpeurs de SimpleX Chat.";
/* No comment provided by engineer. */
"Connect to yourself?" = "Se connecter à soi-même ?";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own one-time link!" = "Se connecter à soi-même ?\nIl s'agit de votre propre lien unique !";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own SimpleX address!" = "Se connecter à soi-même ?\nC'est votre propre adresse SimpleX !";
/* No comment provided by engineer. */
"Connect via contact address" = "Se connecter via l'adresse de contact";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via link" = "Se connecter via un lien"; "Connect via link" = "Se connecter via un lien";
@@ -822,21 +735,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via one-time link" = "Se connecter via un lien unique"; "Connect via one-time link" = "Se connecter via un lien unique";
/* No comment provided by engineer. */
"Connect with %@" = "Se connecter avec %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connected" = "connecté"; "connected" = "connecté";
/* No comment provided by engineer. */
"Connected desktop" = "Bureau connecté";
/* rcv group event chat item */ /* rcv group event chat item */
"connected directly" = "s'est connecté.e de manière directe"; "connected directly" = "s'est connecté.e de manière directe";
/* No comment provided by engineer. */
"Connected to desktop" = "Connecté au bureau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting" = "connexion"; "connecting" = "connexion";
@@ -861,9 +765,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Connexion au serveur… (erreur : %@)"; "Connecting server… (error: %@)" = "Connexion au serveur… (erreur : %@)";
/* No comment provided by engineer. */
"Connecting to desktop" = "Connexion au bureau";
/* chat list item title */ /* chat list item title */
"connecting…" = "connexion…"; "connecting…" = "connexion…";
@@ -882,9 +783,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "Demande de connexion envoyée !"; "Connection request sent!" = "Demande de connexion envoyée !";
/* No comment provided by engineer. */
"Connection terminated" = "Connexion terminée";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection timeout" = "Délai de connexion"; "Connection timeout" = "Délai de connexion";
@@ -933,24 +831,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Core version: v%@" = "Version du cœur : v%@"; "Core version: v%@" = "Version du cœur : v%@";
/* No comment provided by engineer. */
"Correct name to %@?" = "Corriger le nom pour %@ ?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create" = "Créer"; "Create" = "Créer";
/* No comment provided by engineer. */
"Create a group using a random profile." = "Création de groupes via un profil aléatoire.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create an address to let people connect with you." = "Créez une adresse pour permettre aux gens de vous contacter."; "Create an address to let people connect with you." = "Créez une adresse pour permettre aux gens de vous contacter.";
/* server test step */ /* server test step */
"Create file" = "Créer un fichier"; "Create file" = "Créer un fichier";
/* No comment provided by engineer. */
"Create group" = "Créer un groupe";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create group link" = "Créer un lien de groupe"; "Create group link" = "Créer un lien de groupe";
@@ -963,9 +852,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create one-time invitation link" = "Créer un lien d'invitation unique"; "Create one-time invitation link" = "Créer un lien d'invitation unique";
/* No comment provided by engineer. */
"Create profile" = "Créer le profil";
/* server test step */ /* server test step */
"Create queue" = "Créer une file d'attente"; "Create queue" = "Créer une file d'attente";
@@ -1080,9 +966,6 @@
/* chat item action */ /* chat item action */
"Delete" = "Supprimer"; "Delete" = "Supprimer";
/* No comment provided by engineer. */
"Delete %lld messages?" = "Supprimer %lld messages ?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete address" = "Supprimer l'adresse"; "Delete address" = "Supprimer l'adresse";
@@ -1095,9 +978,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete all files" = "Effacer tous les fichiers"; "Delete all files" = "Effacer tous les fichiers";
/* No comment provided by engineer. */
"Delete and notify contact" = "Supprimer et en informer le contact";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete archive" = "Supprimer l'archive"; "Delete archive" = "Supprimer l'archive";
@@ -1119,9 +999,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete Contact" = "Supprimer le contact"; "Delete Contact" = "Supprimer le contact";
/* No comment provided by engineer. */
"Delete contact?\nThis cannot be undone!" = "Supprimer le contact ?\nCette opération ne peut être annulée !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete database" = "Supprimer la base de données"; "Delete database" = "Supprimer la base de données";
@@ -1197,9 +1074,6 @@
/* copied message info */ /* copied message info */
"Deleted at: %@" = "Supprimé à : %@"; "Deleted at: %@" = "Supprimé à : %@";
/* rcv direct event chat item */
"deleted contact" = "contact supprimé";
/* rcv group event chat item */ /* rcv group event chat item */
"deleted group" = "groupe supprimé"; "deleted group" = "groupe supprimé";
@@ -1215,15 +1089,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Description" = "Description"; "Description" = "Description";
/* No comment provided by engineer. */
"Desktop address" = "Adresse de bureau";
/* No comment provided by engineer. */
"Desktop app version %@ is not compatible with this app." = "La version de l'application de bureau %@ n'est pas compatible avec cette application.";
/* No comment provided by engineer. */
"Desktop devices" = "Appareils de bureau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Develop" = "Développer"; "Develop" = "Développer";
@@ -1287,15 +1152,9 @@
/* server test step */ /* server test step */
"Disconnect" = "Se déconnecter"; "Disconnect" = "Se déconnecter";
/* No comment provided by engineer. */
"Disconnect desktop?" = "Déconnecter le bureau ?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Discover and join groups" = "Découvrir et rejoindre des groupes"; "Discover and join groups" = "Découvrir et rejoindre des groupes";
/* No comment provided by engineer. */
"Discover via local network" = "Rechercher sur le réseau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Do it later" = "Faites-le plus tard"; "Do it later" = "Faites-le plus tard";
@@ -1431,12 +1290,6 @@
/* chat item text */ /* chat item text */
"encryption re-negotiation allowed for %@" = "renégociation de chiffrement autorisée pour %@"; "encryption re-negotiation allowed for %@" = "renégociation de chiffrement autorisée pour %@";
/* message decrypt error item */
"Encryption re-negotiation error" = "Erreur lors de la renégociation du chiffrement";
/* No comment provided by engineer. */
"Encryption re-negotiation failed." = "La renégociation du chiffrement a échoué.";
/* chat item text */ /* chat item text */
"encryption re-negotiation required" = "renégociation de chiffrement requise"; "encryption re-negotiation required" = "renégociation de chiffrement requise";
@@ -1452,9 +1305,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter correct passphrase." = "Entrez la phrase secrète correcte."; "Enter correct passphrase." = "Entrez la phrase secrète correcte.";
/* No comment provided by engineer. */
"Enter group name…" = "Entrer un nom de groupe…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter Passcode" = "Entrer le code d'accès"; "Enter Passcode" = "Entrer le code d'accès";
@@ -1467,18 +1317,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter server manually" = "Entrer un serveur manuellement"; "Enter server manually" = "Entrer un serveur manuellement";
/* No comment provided by engineer. */
"Enter this device name…" = "Entrez le nom de l'appareil…";
/* placeholder */ /* placeholder */
"Enter welcome message…" = "Entrez un message de bienvenue…"; "Enter welcome message…" = "Entrez un message de bienvenue…";
/* placeholder */ /* placeholder */
"Enter welcome message… (optional)" = "Entrez un message de bienvenue… (facultatif)"; "Enter welcome message… (optional)" = "Entrez un message de bienvenue… (facultatif)";
/* No comment provided by engineer. */
"Enter your name…" = "Entrez votre nom…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"error" = "erreur"; "error" = "erreur";
@@ -1650,9 +1494,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Exit without saving" = "Quitter sans sauvegarder"; "Exit without saving" = "Quitter sans sauvegarder";
/* chat item action */
"Expand" = "Développer";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Export database" = "Exporter la base de données"; "Export database" = "Exporter la base de données";
@@ -1671,9 +1512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fast and no wait until the sender is online!" = "Rapide et ne nécessitant pas d'attendre que l'expéditeur soit en ligne !"; "Fast and no wait until the sender is online!" = "Rapide et ne nécessitant pas d'attendre que l'expéditeur soit en ligne !";
/* No comment provided by engineer. */
"Faster joining and more reliable messages." = "Connexion plus rapide et messages plus fiables.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Favorite" = "Favoris"; "Favorite" = "Favoris";
@@ -1731,9 +1569,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Pour la console"; "For console" = "Pour la console";
/* No comment provided by engineer. */
"Found desktop" = "Bureau trouvé";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"French interface" = "Interface en français"; "French interface" = "Interface en français";
@@ -1746,9 +1581,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Full name:" = "Nom complet :"; "Full name:" = "Nom complet :";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Entièrement décentralisé visible que par ses membres.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "Entièrement réimplémenté - fonctionne en arrière-plan !"; "Fully re-implemented - work in background!" = "Entièrement réimplémenté - fonctionne en arrière-plan !";
@@ -1761,12 +1593,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group" = "Groupe"; "Group" = "Groupe";
/* No comment provided by engineer. */
"Group already exists" = "Le groupe existe déjà";
/* No comment provided by engineer. */
"Group already exists!" = "Ce groupe existe déjà !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"group deleted" = "groupe supprimé"; "group deleted" = "groupe supprimé";
@@ -1938,9 +1764,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
/* No comment provided by engineer. */
"Incognito groups" = "Groupes incognito";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito mode" = "Mode Incognito"; "Incognito mode" = "Mode Incognito";
@@ -1968,9 +1791,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incompatible database version" = "Version de la base de données incompatible"; "Incompatible database version" = "Version de la base de données incompatible";
/* No comment provided by engineer. */
"Incompatible version" = "Version incompatible";
/* PIN entry */ /* PIN entry */
"Incorrect passcode" = "Code d'accès erroné"; "Incorrect passcode" = "Code d'accès erroné";
@@ -2010,9 +1830,6 @@
/* invalid chat item */ /* invalid chat item */
"invalid data" = "données invalides"; "invalid data" = "données invalides";
/* No comment provided by engineer. */
"Invalid name!" = "Nom invalide !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid server address!" = "Adresse de serveur invalide !"; "Invalid server address!" = "Adresse de serveur invalide !";
@@ -2091,24 +1908,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join group" = "Rejoindre le groupe"; "Join group" = "Rejoindre le groupe";
/* No comment provided by engineer. */
"Join group?" = "Rejoindre le groupe ?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join incognito" = "Rejoindre en incognito"; "Join incognito" = "Rejoindre en incognito";
/* No comment provided by engineer. */
"Join with current profile" = "Rejoindre avec le profil actuel";
/* No comment provided by engineer. */
"Join your group?\nThis is your link for group %@!" = "Rejoindre votre groupe ?\nVoici votre lien pour le groupe %@ !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Joining group" = "Entrain de rejoindre le groupe"; "Joining group" = "Entrain de rejoindre le groupe";
/* No comment provided by engineer. */
"Keep the app open to use it from desktop" = "Garder l'application ouverte pour l'utiliser depuis le bureau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Keep your connections" = "Conserver vos connexions"; "Keep your connections" = "Conserver vos connexions";
@@ -2145,15 +1950,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Limitations" = "Limitations"; "Limitations" = "Limitations";
/* No comment provided by engineer. */
"Link mobile and desktop apps! 🔗" = "Liez vos applications mobiles et de bureau ! 🔗";
/* No comment provided by engineer. */
"Linked desktop options" = "Options de bureau lié";
/* No comment provided by engineer. */
"Linked desktops" = "Bureaux liés";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"LIVE" = "LIVE"; "LIVE" = "LIVE";
@@ -2259,9 +2055,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages & files" = "Messages"; "Messages & files" = "Messages";
/* No comment provided by engineer. */
"Messages from %@ will be shown!" = "Les messages de %@ seront affichés !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrating database archive…" = "Migration de l'archive de la base de données…"; "Migrating database archive…" = "Migration de l'archive de la base de données…";
@@ -2409,9 +2202,6 @@
/* copied message info in history */ /* copied message info in history */
"no text" = "aucun texte"; "no text" = "aucun texte";
/* No comment provided by engineer. */
"Not compatible!" = "Non compatible !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Notifications" = "Notifications"; "Notifications" = "Notifications";
@@ -2516,9 +2306,6 @@
/* authentication reason */ /* authentication reason */
"Open chat console" = "Ouvrir la console du chat"; "Open chat console" = "Ouvrir la console du chat";
/* No comment provided by engineer. */
"Open group" = "Ouvrir le groupe";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open Settings" = "Ouvrir les Paramètres"; "Open Settings" = "Ouvrir les Paramètres";
@@ -2555,9 +2342,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste" = "Coller"; "Paste" = "Coller";
/* No comment provided by engineer. */
"Paste desktop address" = "Coller l'adresse du bureau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste image" = "Coller l'image"; "Paste image" = "Coller l'image";
@@ -2654,12 +2438,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Image de profil"; "Profile image" = "Image 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. */ /* No comment provided by engineer. */
"Profile password" = "Mot de passe de profil"; "Profile password" = "Mot de passe de profil";
@@ -2825,12 +2603,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Renegotiate encryption?" = "Renégocier le chiffrement?"; "Renegotiate encryption?" = "Renégocier le chiffrement?";
/* No comment provided by engineer. */
"Repeat connection request?" = "Répéter la demande de connexion ?";
/* No comment provided by engineer. */
"Repeat join request?" = "Répéter la requête d'adhésion ?";
/* chat item action */ /* chat item action */
"Reply" = "Répondre"; "Reply" = "Répondre";
@@ -2942,9 +2714,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan QR code" = "Scanner un code QR"; "Scan QR code" = "Scanner un code QR";
/* No comment provided by engineer. */
"Scan QR code from desktop" = "Scanner le code QR du bureau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan security code from your contact's app." = "Scannez le code de sécurité depuis l'application de votre contact."; "Scan security code from your contact's app." = "Scannez le code de sécurité depuis l'application de votre contact.";
@@ -3089,9 +2858,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Servers" = "Serveurs"; "Servers" = "Serveurs";
/* No comment provided by engineer. */
"Session code" = "Code de session";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Set 1 day" = "Définir 1 jour"; "Set 1 day" = "Définir 1 jour";
@@ -3278,9 +3044,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to activate profile." = "Appuyez pour activer un profil."; "Tap to activate profile." = "Appuyez pour activer un profil.";
/* No comment provided by engineer. */
"Tap to Connect" = "Tapez pour vous connecter";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to join" = "Appuyez pour rejoindre"; "Tap to join" = "Appuyez pour rejoindre";
@@ -3401,21 +3164,12 @@
/* notification title */ /* notification title */
"this contact" = "ce contact"; "this contact" = "ce contact";
/* No comment provided by engineer. */
"This device name" = "Ce nom d'appareil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "Ce groupe compte plus de %lld membres, les accusés de réception ne sont pas envoyés."; "This group has over %lld members, delivery receipts are not sent." = "Ce groupe compte plus de %lld membres, les accusés de réception ne sont pas envoyés.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group no longer exists." = "Ce groupe n'existe plus."; "This group no longer exists." = "Ce groupe n'existe plus.";
/* No comment provided by engineer. */
"This is your own one-time link!" = "Voici votre propre lien unique !";
/* No comment provided by engineer. */
"This is your own SimpleX address!" = "Voici votre propre adresse SimpleX !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This setting applies to messages in your current chat profile **%@**." = "Ce paramètre s'applique aux messages de votre profil de chat actuel **%@**."; "This setting applies to messages in your current chat profile **%@**." = "Ce paramètre s'applique aux messages de votre profil de chat actuel **%@**.";
@@ -3425,9 +3179,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To connect, your contact can scan QR code or use the link in the app." = "Pour se connecter, votre contact peut scanner le code QR ou utiliser le lien dans l'application."; "To connect, your contact can scan QR code or use the link in the app." = "Pour se connecter, votre contact peut scanner le code QR ou utiliser le lien dans l'application.";
/* No comment provided by engineer. */
"To hide unwanted messages." = "Pour cacher les messages indésirables.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To make a new connection" = "Pour établir une nouvelle connexion"; "To make a new connection" = "Pour établir une nouvelle connexion";
@@ -3476,15 +3227,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unable to record voice message" = "Impossible d'enregistrer un message vocal"; "Unable to record voice message" = "Impossible d'enregistrer un message vocal";
/* No comment provided by engineer. */
"Unblock" = "Débloquer";
/* No comment provided by engineer. */
"Unblock member" = "Débloquer ce membre";
/* No comment provided by engineer. */
"Unblock member?" = "Débloquer ce membre ?";
/* item status description */ /* item status description */
"Unexpected error: %@" = "Erreur inattendue: %@"; "Unexpected error: %@" = "Erreur inattendue: %@";
@@ -3524,12 +3266,6 @@
/* No comment provided by engineer. */ /* 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." = "A moins que votre contact ait supprimé la connexion ou que ce lien ait déjà été utilisé, il peut s'agir d'un bug - veuillez le signaler.\nPour vous connecter, veuillez demander à votre contact de créer un autre lien de connexion et vérifiez que vous disposez d'une connexion réseau stable."; "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." = "A moins que votre contact ait supprimé la connexion ou que ce lien ait déjà été utilisé, il peut s'agir d'un bug - veuillez le signaler.\nPour vous connecter, veuillez demander à votre contact de créer un autre lien de connexion et vérifiez que vous disposez d'une connexion réseau stable.";
/* No comment provided by engineer. */
"Unlink" = "Délier";
/* No comment provided by engineer. */
"Unlink desktop?" = "Délier le bureau ?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unlock" = "Déverrouiller"; "Unlock" = "Déverrouiller";
@@ -3584,9 +3320,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Utiliser pour les nouvelles connexions"; "Use for new connections" = "Utiliser pour les nouvelles connexions";
/* No comment provided by engineer. */
"Use from desktop" = "Utilisation depuis le bureau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use iOS call interface" = "Utiliser l'interface d'appel d'iOS"; "Use iOS call interface" = "Utiliser l'interface d'appel d'iOS";
@@ -3608,24 +3341,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Using SimpleX Chat servers." = "Utilisation des serveurs SimpleX Chat."; "Using SimpleX Chat servers." = "Utilisation des serveurs SimpleX Chat.";
/* No comment provided by engineer. */
"v%@" = "v%@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"v%@ (%@)" = "v%@ (%@)"; "v%@ (%@)" = "v%@ (%@)";
/* No comment provided by engineer. */
"Verify code with desktop" = "Vérifier le code avec le bureau";
/* No comment provided by engineer. */
"Verify connection" = "Vérifier la connexion";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify connection security" = "Vérifier la sécurité de la connexion"; "Verify connection security" = "Vérifier la sécurité de la connexion";
/* No comment provided by engineer. */
"Verify connections" = "Vérifier les connexions";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify security code" = "Vérifier le code de sécurité"; "Verify security code" = "Vérifier le code de sécurité";
@@ -3644,9 +3365,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"via relay" = "via relais"; "via relay" = "via relais";
/* No comment provided by engineer. */
"Via secure quantum resistant protocol." = "Via un protocole sécurisé de cryptographie post-quantique.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video call" = "Appel vidéo"; "Video call" = "Appel vidéo";
@@ -3686,9 +3404,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"waiting for confirmation…" = "en attente de confirmation…"; "waiting for confirmation…" = "en attente de confirmation…";
/* No comment provided by engineer. */
"Waiting for desktop..." = "En attente du bureau...";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Waiting for file" = "En attente du fichier"; "Waiting for file" = "En attente du fichier";
@@ -3758,27 +3473,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connected to %@." = "Vous êtes déjà connecté·e à %@ via ce lien."; "You are already connected to %@." = "Vous êtes déjà connecté·e à %@ via ce lien.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Vous êtes déjà en train de vous connecter à %@.";
/* No comment provided by engineer. */
"You are already connecting via this one-time link!" = "Vous êtes déjà connecté(e) via ce lien unique !";
/* No comment provided by engineer. */
"You are already in group %@." = "Vous êtes déjà dans le groupe %@.";
/* No comment provided by engineer. */
"You are already joining the group %@." = "Vous êtes déjà en train de rejoindre le groupe %@.";
/* No comment provided by engineer. */
"You are already joining the group via this link!" = "Vous êtes déjà en train de rejoindre le groupe via ce lien !";
/* No comment provided by engineer. */
"You are already joining the group via this link." = "Vous êtes déjà en train de rejoindre le groupe via ce lien.";
/* No comment provided by engineer. */
"You are already joining the group!\nRepeat join request?" = "Vous êtes déjà membre de ce groupe !\nRépéter la demande d'adhésion ?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are connected to the server used to receive messages from this contact." = "Vous êtes connecté·e au serveur utilisé pour recevoir les messages de ce contact."; "You are connected to the server used to receive messages from this contact." = "Vous êtes connecté·e au serveur utilisé pour recevoir les messages de ce contact.";
@@ -3854,12 +3548,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You could not be verified; please try again." = "Vous n'avez pas pu être vérifié·e; veuillez réessayer."; "You could not be verified; please try again." = "Vous n'avez pas pu être vérifié·e; veuillez réessayer.";
/* No comment provided by engineer. */
"You have already requested connection via this address!" = "Vous avez déjà demandé une connexion via cette adresse !";
/* No comment provided by engineer. */
"You have already requested connection!\nRepeat connection request?" = "Vous avez déjà demandé une connexion !\nRépéter la demande de connexion ?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You have no chats" = "Vous n'avez aucune discussion"; "You have no chats" = "Vous n'avez aucune discussion";
@@ -3902,9 +3590,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected to group when the group host's device is online, please wait or check later!" = "Vous serez connecté·e au groupe lorsque l'appareil de l'hôte sera en ligne, veuillez attendre ou vérifier plus tard !"; "You will be connected to group when the group host's device is online, please wait or check later!" = "Vous serez connecté·e au groupe lorsque l'appareil de l'hôte sera en ligne, veuillez attendre ou vérifier plus tard !";
/* No comment provided by engineer. */
"You will be connected when group link host's device is online, please wait or check later!" = "Vous serez connecté(e) lorsque l'appareil de l'hôte du lien de groupe sera en ligne, veuillez patienter ou vérifier plus tard !";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected when your connection request is accepted, please wait or check later!" = "Vous serez connecté·e lorsque votre demande de connexion sera acceptée, veuillez attendre ou vérifier plus tard !"; "You will be connected when your connection request is accepted, please wait or check later!" = "Vous serez connecté·e lorsque votre demande de connexion sera acceptée, veuillez attendre ou vérifier plus tard !";
@@ -3914,9 +3599,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Il vous sera demandé de vous authentifier lorsque vous démarrez ou reprenez l'application après 30 secondes en arrière-plan."; "You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Il vous sera demandé de vous authentifier lorsque vous démarrez ou reprenez l'application après 30 secondes en arrière-plan.";
/* No comment provided by engineer. */
"You will connect to all group members." = "Vous vous connecterez à tous les membres du groupe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Vous continuerez à recevoir des appels et des notifications des profils mis en sourdine lorsqu'ils sont actifs."; "You will still receive calls and notifications from muted profiles when they are active." = "Vous continuerez à recevoir des appels et des notifications des profils mis en sourdine lorsqu'ils sont actifs.";
@@ -3980,9 +3662,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your privacy" = "Votre vie privée"; "Your privacy" = "Votre vie privée";
/* No comment provided by engineer. */
"Your profile" = "Votre profil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your profile **%@** will be shared." = "Votre profil **%@** sera partagé."; "Your profile **%@** will be shared." = "Votre profil **%@** sera partagé.";
@@ -7,9 +7,6 @@
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleGroup not found!X utilise Face ID pour l'authentification locale"; "NSFaceIDUsageDescription" = "SimpleGroup not found!X utilise Face ID pour l'authentification locale";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX utilise un accès au réseau local pour permettre l'utilisation du profil de chat de l'utilisateur via l'application de bureau au sein de ce même réseau.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX a besoin d'un accès au microphone pour les appels audio et vidéo ainsi que pour enregistrer des messages vocaux."; "NSMicrophoneUsageDescription" = "SimpleX a besoin d'un accès au microphone pour les appels audio et vidéo ainsi que pour enregistrer des messages vocaux.";
+1 -304
View File
@@ -25,9 +25,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- more stable message delivery.\n- a bit better groups.\n- and more!" = "- recapito dei messaggi più stabile.\n- gruppi un po' migliorati.\n- e altro ancora!"; "- more stable message delivery.\n- a bit better groups.\n- and more!" = "- recapito dei messaggi più stabile.\n- gruppi un po' migliorati.\n- e altro ancora!";
/* No comment provided by engineer. */
"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- avvisa facoltativamente i contatti eliminati.\n- nomi del profilo con spazi.\n- e molto altro!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- messaggi vocali fino a 5 minuti.\n- tempo di scomparsa personalizzato.\n- cronologia delle modifiche."; "- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- messaggi vocali fino a 5 minuti.\n- tempo di scomparsa personalizzato.\n- cronologia delle modifiche.";
@@ -46,12 +43,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"(" = "("; "(" = "(";
/* No comment provided by engineer. */
"(new)" = "(nuovo)";
/* No comment provided by engineer. */
"(this device v%@)" = "(questo dispositivo v%@)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
")" = ")"; ")" = ")";
@@ -127,18 +118,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ %@" = "%@ %@"; "%@ %@" = "%@ %@";
/* No comment provided by engineer. */
"%@ and %@" = "%@ e %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ and %@ connected" = "%@ e %@ sono connessi/e"; "%@ and %@ connected" = "%@ e %@ sono connessi/e";
/* copied message info, <sender> at <time> */ /* copied message info, <sender> at <time> */
"%@ at %@:" = "%1$@ alle %2$@:"; "%@ at %@:" = "%1$@ alle %2$@:";
/* No comment provided by engineer. */
"%@ connected" = "%@ si è connesso/a";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ è connesso/a!"; "%@ is connected!" = "%@ è connesso/a!";
@@ -154,9 +139,6 @@
/* notification title */ /* notification title */
"%@ wants to connect!" = "%@ si vuole connettere!"; "%@ wants to connect!" = "%@ si vuole connettere!";
/* No comment provided by engineer. */
"%@, %@ and %lld members" = "%@, %@ e %lld membri";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@, %@ and %lld other members connected" = "%@, %@ e altri %lld membri sono connessi"; "%@, %@ and %lld other members connected" = "%@, %@ e altri %lld membri sono connessi";
@@ -196,21 +178,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld file(s) with total size of %@" = "%lld file con dimensione totale di %@"; "%lld file(s) with total size of %@" = "%lld file con dimensione totale di %@";
/* No comment provided by engineer. */
"%lld group events" = "%lld eventi del gruppo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld members" = "%lld membri"; "%lld members" = "%lld membri";
/* No comment provided by engineer. */
"%lld messages blocked" = "%lld messaggi bloccati";
/* No comment provided by engineer. */
"%lld messages marked deleted" = "%lld messaggi contrassegnati eliminati";
/* No comment provided by engineer. */
"%lld messages moderated by %@" = "%lld messaggi moderati da %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld minutes" = "%lld minuti"; "%lld minutes" = "%lld minuti";
@@ -259,9 +229,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"~strike~" = "\\~barrato~"; "~strike~" = "\\~barrato~";
/* time to disappear */
"0 sec" = "0 sec";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"0s" = "0s"; "0s" = "0s";
@@ -404,9 +371,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Tutti i messaggi verranno eliminati, non è reversibile! I messaggi verranno eliminati SOLO per te."; "All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Tutti i messaggi verranno eliminati, non è reversibile! I messaggi verranno eliminati SOLO per te.";
/* No comment provided by engineer. */
"All new messages from %@ will be hidden!" = "Tutti i nuovi messaggi da %@ verrranno nascosti!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts will remain connected." = "Tutti i tuoi contatti resteranno connessi."; "All your contacts will remain connected." = "Tutti i tuoi contatti resteranno connessi.";
@@ -470,12 +434,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Already connected?" = "Già connesso/a?"; "Already connected?" = "Già connesso/a?";
/* No comment provided by engineer. */
"Already connecting!" = "Già in connessione!";
/* No comment provided by engineer. */
"Already joining the group!" = "Già in ingresso nel gruppo!";
/* pref value */ /* pref value */
"always" = "sempre"; "always" = "sempre";
@@ -485,9 +443,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"An empty chat profile with the provided name is created, and the app opens as usual." = "Viene creato un profilo di chat vuoto con il nome scelto e l'app si apre come al solito."; "An empty chat profile with the provided name is created, and the app opens as usual." = "Viene creato un profilo di chat vuoto con il nome scelto e l'app si apre come al solito.";
/* No comment provided by engineer. */
"and %lld other events" = "e altri %lld eventi";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Answer call" = "Rispondi alla chiamata"; "Answer call" = "Rispondi alla chiamata";
@@ -557,9 +512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Back" = "Indietro"; "Back" = "Indietro";
/* No comment provided by engineer. */
"Bad desktop address" = "Indirizzo desktop errato";
/* integrity error chat item */ /* integrity error chat item */
"bad message hash" = "hash del messaggio errato"; "bad message hash" = "hash del messaggio errato";
@@ -572,27 +524,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Bad message ID" = "ID del messaggio errato"; "Bad message ID" = "ID del messaggio errato";
/* No comment provided by engineer. */
"Better groups" = "Gruppi migliorati";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Better messages" = "Messaggi migliorati"; "Better messages" = "Messaggi migliorati";
/* No comment provided by engineer. */
"Block" = "Blocca";
/* No comment provided by engineer. */
"Block group members" = "Blocca i membri dei gruppi";
/* No comment provided by engineer. */
"Block member" = "Blocca membro";
/* No comment provided by engineer. */
"Block member?" = "Bloccare il membro?";
/* No comment provided by engineer. */
"blocked" = "bloccato";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"bold" = "grassetto"; "bold" = "grassetto";
@@ -688,7 +622,7 @@
"changed address for you" = "indirizzo cambiato per te"; "changed address for you" = "indirizzo cambiato per te";
/* rcv group event chat item */ /* rcv group event chat item */
"changed role of %@ to %@" = "ha cambiato il ruolo di %1$@ in %2$@"; "changed role of %@ to %@" = "cambiato il ruolo di %1$@ in %2$@";
/* rcv group event chat item */ /* rcv group event chat item */
"changed your role to %@" = "cambiato il tuo ruolo in %@"; "changed your role to %@" = "cambiato il tuo ruolo in %@";
@@ -789,24 +723,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect incognito" = "Connetti in incognito"; "Connect incognito" = "Connetti in incognito";
/* No comment provided by engineer. */
"Connect to desktop" = "Connetti al desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "connettiti agli sviluppatori di SimpleX Chat."; "connect to SimpleX Chat developers." = "connettiti agli sviluppatori di SimpleX Chat.";
/* No comment provided by engineer. */
"Connect to yourself?" = "Connettersi a te stesso?";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own one-time link!" = "Connettersi a te stesso?\nQuesto è il tuo link una tantum!";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own SimpleX address!" = "Connettersi a te stesso?\nQuesto è il tuo indirizzo SimpleX!";
/* No comment provided by engineer. */
"Connect via contact address" = "Connettere via indirizzo del contatto";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via link" = "Connetti via link"; "Connect via link" = "Connetti via link";
@@ -816,21 +735,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via one-time link" = "Connetti via link una tantum"; "Connect via one-time link" = "Connetti via link una tantum";
/* No comment provided by engineer. */
"Connect with %@" = "Connettersi con %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connected" = "connesso/a"; "connected" = "connesso/a";
/* No comment provided by engineer. */
"Connected desktop" = "Desktop connesso";
/* rcv group event chat item */ /* rcv group event chat item */
"connected directly" = "si è connesso/a direttamente"; "connected directly" = "si è connesso/a direttamente";
/* No comment provided by engineer. */
"Connected to desktop" = "Connesso al desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting" = "in connessione"; "connecting" = "in connessione";
@@ -855,9 +765,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Connessione al server… (errore: %@)"; "Connecting server… (error: %@)" = "Connessione al server… (errore: %@)";
/* No comment provided by engineer. */
"Connecting to desktop" = "Connessione al desktop";
/* chat list item title */ /* chat list item title */
"connecting…" = "in connessione…"; "connecting…" = "in connessione…";
@@ -876,9 +783,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "Richiesta di connessione inviata!"; "Connection request sent!" = "Richiesta di connessione inviata!";
/* No comment provided by engineer. */
"Connection terminated" = "Connessione terminata";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection timeout" = "Connessione scaduta"; "Connection timeout" = "Connessione scaduta";
@@ -927,24 +831,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Core version: v%@" = "Versione core: v%@"; "Core version: v%@" = "Versione core: v%@";
/* No comment provided by engineer. */
"Correct name to %@?" = "Correggere il nome a %@?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create" = "Crea"; "Create" = "Crea";
/* No comment provided by engineer. */
"Create a group using a random profile." = "Crea un gruppo usando un profilo casuale.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create an address to let people connect with you." = "Crea un indirizzo per consentire alle persone di connettersi con te."; "Create an address to let people connect with you." = "Crea un indirizzo per consentire alle persone di connettersi con te.";
/* server test step */ /* server test step */
"Create file" = "Crea file"; "Create file" = "Crea file";
/* No comment provided by engineer. */
"Create group" = "Crea gruppo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create group link" = "Crea link del gruppo"; "Create group link" = "Crea link del gruppo";
@@ -957,9 +852,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create one-time invitation link" = "Crea link di invito una tantum"; "Create one-time invitation link" = "Crea link di invito una tantum";
/* No comment provided by engineer. */
"Create profile" = "Crea profilo";
/* server test step */ /* server test step */
"Create queue" = "Crea coda"; "Create queue" = "Crea coda";
@@ -1074,9 +966,6 @@
/* chat item action */ /* chat item action */
"Delete" = "Elimina"; "Delete" = "Elimina";
/* No comment provided by engineer. */
"Delete %lld messages?" = "Eliminare %lld messaggi?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete address" = "Elimina indirizzo"; "Delete address" = "Elimina indirizzo";
@@ -1089,9 +978,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete all files" = "Elimina tutti i file"; "Delete all files" = "Elimina tutti i file";
/* No comment provided by engineer. */
"Delete and notify contact" = "Elimina e avvisa il contatto";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete archive" = "Elimina archivio"; "Delete archive" = "Elimina archivio";
@@ -1113,9 +999,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete Contact" = "Elimina contatto"; "Delete Contact" = "Elimina contatto";
/* No comment provided by engineer. */
"Delete contact?\nThis cannot be undone!" = "Eliminare il contatto?\nNon è reversibile!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete database" = "Elimina database"; "Delete database" = "Elimina database";
@@ -1191,9 +1074,6 @@
/* copied message info */ /* copied message info */
"Deleted at: %@" = "Eliminato il: %@"; "Deleted at: %@" = "Eliminato il: %@";
/* rcv direct event chat item */
"deleted contact" = "contatto eliminato";
/* rcv group event chat item */ /* rcv group event chat item */
"deleted group" = "gruppo eliminato"; "deleted group" = "gruppo eliminato";
@@ -1209,15 +1089,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Description" = "Descrizione"; "Description" = "Descrizione";
/* No comment provided by engineer. */
"Desktop address" = "Indirizzo desktop";
/* No comment provided by engineer. */
"Desktop app version %@ is not compatible with this app." = "La versione dell'app desktop %@ non è compatibile con questa app.";
/* No comment provided by engineer. */
"Desktop devices" = "Dispositivi desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Develop" = "Sviluppa"; "Develop" = "Sviluppa";
@@ -1281,9 +1152,6 @@
/* server test step */ /* server test step */
"Disconnect" = "Disconnetti"; "Disconnect" = "Disconnetti";
/* No comment provided by engineer. */
"Disconnect desktop?" = "Disconnettere il desktop?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Discover and join groups" = "Scopri ed unisciti ai gruppi"; "Discover and join groups" = "Scopri ed unisciti ai gruppi";
@@ -1422,12 +1290,6 @@
/* chat item text */ /* chat item text */
"encryption re-negotiation allowed for %@" = "rinegoziazione della crittografia consentita per %@"; "encryption re-negotiation allowed for %@" = "rinegoziazione della crittografia consentita per %@";
/* message decrypt error item */
"Encryption re-negotiation error" = "Errore di rinegoziazione crittografia";
/* No comment provided by engineer. */
"Encryption re-negotiation failed." = "Rinegoziazione crittografia fallita.";
/* chat item text */ /* chat item text */
"encryption re-negotiation required" = "richiesta rinegoziazione della crittografia"; "encryption re-negotiation required" = "richiesta rinegoziazione della crittografia";
@@ -1443,9 +1305,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter correct passphrase." = "Inserisci la password giusta."; "Enter correct passphrase." = "Inserisci la password giusta.";
/* No comment provided by engineer. */
"Enter group name…" = "Inserisci il nome del gruppo…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter Passcode" = "Inserisci il codice di accesso"; "Enter Passcode" = "Inserisci il codice di accesso";
@@ -1458,18 +1317,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter server manually" = "Inserisci il server a mano"; "Enter server manually" = "Inserisci il server a mano";
/* No comment provided by engineer. */
"Enter this device name…" = "Inserisci il nome di questo dispositivo…";
/* placeholder */ /* placeholder */
"Enter welcome message…" = "Inserisci il messaggio di benvenuto…"; "Enter welcome message…" = "Inserisci il messaggio di benvenuto…";
/* placeholder */ /* placeholder */
"Enter welcome message… (optional)" = "Inserisci il messaggio di benvenuto… (facoltativo)"; "Enter welcome message… (optional)" = "Inserisci il messaggio di benvenuto… (facoltativo)";
/* No comment provided by engineer. */
"Enter your name…" = "Inserisci il tuo nome…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"error" = "errore"; "error" = "errore";
@@ -1641,9 +1494,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Exit without saving" = "Esci senza salvare"; "Exit without saving" = "Esci senza salvare";
/* chat item action */
"Expand" = "Espandi";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Export database" = "Esporta database"; "Export database" = "Esporta database";
@@ -1662,9 +1512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fast and no wait until the sender is online!" = "Veloce e senza aspettare che il mittente sia in linea!"; "Fast and no wait until the sender is online!" = "Veloce e senza aspettare che il mittente sia in linea!";
/* No comment provided by engineer. */
"Faster joining and more reliable messages." = "Ingresso più veloce e messaggi più affidabili.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Favorite" = "Preferito"; "Favorite" = "Preferito";
@@ -1734,9 +1581,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Full name:" = "Nome completo:"; "Full name:" = "Nome completo:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Completamente decentralizzato: visibile solo ai membri.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "Completamente reimplementato - funziona in secondo piano!"; "Fully re-implemented - work in background!" = "Completamente reimplementato - funziona in secondo piano!";
@@ -1749,12 +1593,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group" = "Gruppo"; "Group" = "Gruppo";
/* No comment provided by engineer. */
"Group already exists" = "Il gruppo esiste già";
/* No comment provided by engineer. */
"Group already exists!" = "Il gruppo esiste già!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"group deleted" = "gruppo eliminato"; "group deleted" = "gruppo eliminato";
@@ -1926,9 +1764,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
/* No comment provided by engineer. */
"Incognito groups" = "Gruppi in incognito";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito mode" = "Modalità incognito"; "Incognito mode" = "Modalità incognito";
@@ -1956,9 +1791,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incompatible database version" = "Versione del database incompatibile"; "Incompatible database version" = "Versione del database incompatibile";
/* No comment provided by engineer. */
"Incompatible version" = "Versione incompatibile";
/* PIN entry */ /* PIN entry */
"Incorrect passcode" = "Codice di accesso errato"; "Incorrect passcode" = "Codice di accesso errato";
@@ -1998,9 +1830,6 @@
/* invalid chat item */ /* invalid chat item */
"invalid data" = "dati non validi"; "invalid data" = "dati non validi";
/* No comment provided by engineer. */
"Invalid name!" = "Nome non valido!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid server address!" = "Indirizzo del server non valido!"; "Invalid server address!" = "Indirizzo del server non valido!";
@@ -2079,24 +1908,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join group" = "Entra nel gruppo"; "Join group" = "Entra nel gruppo";
/* No comment provided by engineer. */
"Join group?" = "Entrare nel gruppo?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join incognito" = "Entra in incognito"; "Join incognito" = "Entra in incognito";
/* No comment provided by engineer. */
"Join with current profile" = "Entra con il profilo attuale";
/* No comment provided by engineer. */
"Join your group?\nThis is your link for group %@!" = "Entrare nel tuo gruppo?\nQuesto è il tuo link per il gruppo %@!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Joining group" = "Ingresso nel gruppo"; "Joining group" = "Ingresso nel gruppo";
/* No comment provided by engineer. */
"Keep the app open to use it from desktop" = "Tieni aperta l'app per usarla dal desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Keep your connections" = "Mantieni le tue connessioni"; "Keep your connections" = "Mantieni le tue connessioni";
@@ -2133,15 +1950,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Limitations" = "Limitazioni"; "Limitations" = "Limitazioni";
/* No comment provided by engineer. */
"Link mobile and desktop apps! 🔗" = "Collega le app mobile e desktop! 🔗";
/* No comment provided by engineer. */
"Linked desktop options" = "Opzioni del desktop collegato";
/* No comment provided by engineer. */
"Linked desktops" = "Desktop collegati";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"LIVE" = "IN DIRETTA"; "LIVE" = "IN DIRETTA";
@@ -2247,9 +2055,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages & files" = "Messaggi"; "Messages & files" = "Messaggi";
/* No comment provided by engineer. */
"Messages from %@ will be shown!" = "I messaggi da %@ verranno mostrati!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrating database archive…" = "Migrazione archivio del database…"; "Migrating database archive…" = "Migrazione archivio del database…";
@@ -2501,9 +2306,6 @@
/* authentication reason */ /* authentication reason */
"Open chat console" = "Apri la console della chat"; "Open chat console" = "Apri la console della chat";
/* No comment provided by engineer. */
"Open group" = "Apri gruppo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open Settings" = "Apri le impostazioni"; "Open Settings" = "Apri le impostazioni";
@@ -2540,9 +2342,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste" = "Incolla"; "Paste" = "Incolla";
/* No comment provided by engineer. */
"Paste desktop address" = "Incolla l'indirizzo desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste image" = "Incolla immagine"; "Paste image" = "Incolla immagine";
@@ -2639,12 +2438,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Immagine del profilo"; "Profile image" = "Immagine 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. */ /* No comment provided by engineer. */
"Profile password" = "Password del profilo"; "Profile password" = "Password del profilo";
@@ -2810,12 +2603,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Renegotiate encryption?" = "Rinegoziare la crittografia?"; "Renegotiate encryption?" = "Rinegoziare la crittografia?";
/* No comment provided by engineer. */
"Repeat connection request?" = "Ripetere la richiesta di connessione?";
/* No comment provided by engineer. */
"Repeat join request?" = "Ripetere la richiesta di ingresso?";
/* chat item action */ /* chat item action */
"Reply" = "Rispondi"; "Reply" = "Rispondi";
@@ -2927,9 +2714,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan QR code" = "Scansiona codice QR"; "Scan QR code" = "Scansiona codice QR";
/* No comment provided by engineer. */
"Scan QR code from desktop" = "Scansiona codice QR dal desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan security code from your contact's app." = "Scansiona il codice di sicurezza dall'app del tuo contatto."; "Scan security code from your contact's app." = "Scansiona il codice di sicurezza dall'app del tuo contatto.";
@@ -3074,9 +2858,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Servers" = "Server"; "Servers" = "Server";
/* No comment provided by engineer. */
"Session code" = "Codice di sessione";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Set 1 day" = "Imposta 1 giorno"; "Set 1 day" = "Imposta 1 giorno";
@@ -3263,9 +3044,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to activate profile." = "Tocca per attivare il profilo."; "Tap to activate profile." = "Tocca per attivare il profilo.";
/* No comment provided by engineer. */
"Tap to Connect" = "Tocca per connettere";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to join" = "Tocca per entrare"; "Tap to join" = "Tocca per entrare";
@@ -3386,21 +3164,12 @@
/* notification title */ /* notification title */
"this contact" = "questo contatto"; "this contact" = "questo contatto";
/* No comment provided by engineer. */
"This device name" = "Il nome di questo dispositivo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "Questo gruppo ha più di %lld membri, le ricevute di consegna non vengono inviate."; "This group has over %lld members, delivery receipts are not sent." = "Questo gruppo ha più di %lld membri, le ricevute di consegna non vengono inviate.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group no longer exists." = "Questo gruppo non esiste più."; "This group no longer exists." = "Questo gruppo non esiste più.";
/* No comment provided by engineer. */
"This is your own one-time link!" = "Questo è il tuo link una tantum!";
/* No comment provided by engineer. */
"This is your own SimpleX address!" = "Questo è il tuo indirizzo SimpleX!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This setting applies to messages in your current chat profile **%@**." = "Questa impostazione si applica ai messaggi del profilo di chat attuale **%@**."; "This setting applies to messages in your current chat profile **%@**." = "Questa impostazione si applica ai messaggi del profilo di chat attuale **%@**.";
@@ -3410,9 +3179,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To connect, your contact can scan QR code or use the link in the app." = "Per connettervi, il tuo contatto può scansionare il codice QR o usare il link nell'app."; "To connect, your contact can scan QR code or use the link in the app." = "Per connettervi, il tuo contatto può scansionare il codice QR o usare il link nell'app.";
/* No comment provided by engineer. */
"To hide unwanted messages." = "Per nascondere messaggi indesiderati.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To make a new connection" = "Per creare una nuova connessione"; "To make a new connection" = "Per creare una nuova connessione";
@@ -3461,15 +3227,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unable to record voice message" = "Impossibile registrare il messaggio vocale"; "Unable to record voice message" = "Impossibile registrare il messaggio vocale";
/* No comment provided by engineer. */
"Unblock" = "Sblocca";
/* No comment provided by engineer. */
"Unblock member" = "Sblocca membro";
/* No comment provided by engineer. */
"Unblock member?" = "Sbloccare il membro?";
/* item status description */ /* item status description */
"Unexpected error: %@" = "Errore imprevisto: % @"; "Unexpected error: %@" = "Errore imprevisto: % @";
@@ -3509,12 +3266,6 @@
/* No comment provided by engineer. */ /* 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." = "A meno che il tuo contatto non abbia eliminato la connessione o che questo link non sia già stato usato, potrebbe essere un errore; per favore segnalalo.\nPer connetterti, chiedi al tuo contatto di creare un altro link di connessione e controlla di avere una connessione di rete stabile."; "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." = "A meno che il tuo contatto non abbia eliminato la connessione o che questo link non sia già stato usato, potrebbe essere un errore; per favore segnalalo.\nPer connetterti, chiedi al tuo contatto di creare un altro link di connessione e controlla di avere una connessione di rete stabile.";
/* No comment provided by engineer. */
"Unlink" = "Scollega";
/* No comment provided by engineer. */
"Unlink desktop?" = "Scollegare il desktop?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unlock" = "Sblocca"; "Unlock" = "Sblocca";
@@ -3569,9 +3320,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Usa per connessioni nuove"; "Use for new connections" = "Usa per connessioni nuove";
/* No comment provided by engineer. */
"Use from desktop" = "Usa dal desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use iOS call interface" = "Usa interfaccia di chiamata iOS"; "Use iOS call interface" = "Usa interfaccia di chiamata iOS";
@@ -3593,24 +3341,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Using SimpleX Chat servers." = "Utilizzo dei server SimpleX Chat."; "Using SimpleX Chat servers." = "Utilizzo dei server SimpleX Chat.";
/* No comment provided by engineer. */
"v%@" = "v%@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"v%@ (%@)" = "v%@ (%@)"; "v%@ (%@)" = "v%@ (%@)";
/* No comment provided by engineer. */
"Verify code with desktop" = "Verifica il codice con il desktop";
/* No comment provided by engineer. */
"Verify connection" = "Verifica la connessione";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify connection security" = "Verifica la sicurezza della connessione"; "Verify connection security" = "Verifica la sicurezza della connessione";
/* No comment provided by engineer. */
"Verify connections" = "Verifica le connessioni";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify security code" = "Verifica codice di sicurezza"; "Verify security code" = "Verifica codice di sicurezza";
@@ -3629,9 +3365,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"via relay" = "via relay"; "via relay" = "via relay";
/* No comment provided by engineer. */
"Via secure quantum resistant protocol." = "Tramite protocollo sicuro resistente alla quantistica.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video call" = "Videochiamata"; "Video call" = "Videochiamata";
@@ -3740,27 +3473,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connected to %@." = "Sei già connesso/a a %@."; "You are already connected to %@." = "Sei già connesso/a a %@.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Ti stai già connettendo a %@.";
/* No comment provided by engineer. */
"You are already connecting via this one-time link!" = "Ti stai già connettendo tramite questo link una tantum!";
/* No comment provided by engineer. */
"You are already in group %@." = "Sei già nel gruppo %@.";
/* No comment provided by engineer. */
"You are already joining the group %@." = "Stai già entrando nel gruppo %@.";
/* No comment provided by engineer. */
"You are already joining the group via this link!" = "Stai già entrando nel gruppo tramite questo link!";
/* No comment provided by engineer. */
"You are already joining the group via this link." = "Stai già entrando nel gruppo tramite questo link.";
/* No comment provided by engineer. */
"You are already joining the group!\nRepeat join request?" = "Stai già entrando nel gruppo!\nRipetere la richiesta di ingresso?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are connected to the server used to receive messages from this contact." = "Sei connesso/a al server usato per ricevere messaggi da questo contatto."; "You are connected to the server used to receive messages from this contact." = "Sei connesso/a al server usato per ricevere messaggi da questo contatto.";
@@ -3836,12 +3548,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You could not be verified; please try again." = "Non è stato possibile verificarti, riprova."; "You could not be verified; please try again." = "Non è stato possibile verificarti, riprova.";
/* No comment provided by engineer. */
"You have already requested connection via this address!" = "Hai già richiesto la connessione tramite questo indirizzo!";
/* No comment provided by engineer. */
"You have already requested connection!\nRepeat connection request?" = "Hai già richiesto la connessione!\nRipetere la richiesta di connessione?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You have no chats" = "Non hai chat"; "You have no chats" = "Non hai chat";
@@ -3884,9 +3590,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected to group when the group host's device is online, please wait or check later!" = "Verrai connesso/a al gruppo quando il dispositivo dell'host del gruppo sarà in linea, attendi o controlla più tardi!"; "You will be connected to group when the group host's device is online, please wait or check later!" = "Verrai connesso/a al gruppo quando il dispositivo dell'host del gruppo sarà in linea, attendi o controlla più tardi!";
/* No comment provided by engineer. */
"You will be connected when group link host's device is online, please wait or check later!" = "Verrai connesso/a quando il dispositivo dell'host del gruppo sarà in linea, attendi o controlla più tardi!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected when your connection request is accepted, please wait or check later!" = "Verrai connesso/a quando la tua richiesta di connessione verrà accettata, attendi o controlla più tardi!"; "You will be connected when your connection request is accepted, please wait or check later!" = "Verrai connesso/a quando la tua richiesta di connessione verrà accettata, attendi o controlla più tardi!";
@@ -3896,9 +3599,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Dovrai autenticarti quando avvii o riapri l'app dopo 30 secondi in secondo piano."; "You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Dovrai autenticarti quando avvii o riapri l'app dopo 30 secondi in secondo piano.";
/* No comment provided by engineer. */
"You will connect to all group members." = "Ti connetterai a tutti i membri del gruppo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Continuerai a ricevere chiamate e notifiche da profili silenziati quando sono attivi."; "You will still receive calls and notifications from muted profiles when they are active." = "Continuerai a ricevere chiamate e notifiche da profili silenziati quando sono attivi.";
@@ -3962,9 +3662,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your privacy" = "La tua privacy"; "Your privacy" = "La tua privacy";
/* No comment provided by engineer. */
"Your profile" = "Il tuo profilo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your profile **%@** will be shared." = "Il tuo profilo **%@** verrà condiviso."; "Your profile **%@** will be shared." = "Il tuo profilo **%@** verrà condiviso.";
@@ -7,9 +7,6 @@
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX usa Face ID per l'autenticazione locale"; "NSFaceIDUsageDescription" = "SimpleX usa Face ID per l'autenticazione locale";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX usa l'accesso alla rete locale per consentire di usare il profilo di chat tramite l'app desktop sulla stessa rete.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX ha bisogno dell'accesso al microfono per le chiamate audio e video e per registrare messaggi vocali."; "NSMicrophoneUsageDescription" = "SimpleX ha bisogno dell'accesso al microfono per le chiamate audio e video e per registrare messaggi vocali.";
+14 -335
View File
@@ -25,9 +25,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- more stable message delivery.\n- a bit better groups.\n- and more!" = "- stabielere berichtbezorging.\n- een beetje betere groepen.\n- en meer!"; "- more stable message delivery.\n- a bit better groups.\n- and more!" = "- stabielere berichtbezorging.\n- een beetje betere groepen.\n- en meer!";
/* No comment provided by engineer. */
"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- optioneel verwijderde contacten op de hoogte stellen.\n- profielnamen met spaties.\n- en meer!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- spraakberichten tot 5 minuten.\n- aangepaste tijd om te verdwijnen.\n- bewerkingsgeschiedenis."; "- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- spraakberichten tot 5 minuten.\n- aangepaste tijd om te verdwijnen.\n- bewerkingsgeschiedenis.";
@@ -46,12 +43,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"(" = "("; "(" = "(";
/* No comment provided by engineer. */
"(new)" = "(nieuw)";
/* No comment provided by engineer. */
"(this device v%@)" = "(dit apparaat v%@)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
")" = ")"; ")" = ")";
@@ -127,18 +118,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ %@" = "%@ %@"; "%@ %@" = "%@ %@";
/* No comment provided by engineer. */
"%@ and %@" = "%@ en %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ and %@ connected" = "%@ en %@ verbonden"; "%@ and %@ connected" = "%@ en %@ verbonden";
/* copied message info, <sender> at <time> */ /* copied message info, <sender> at <time> */
"%@ at %@:" = "%1$@ bij %2$@:"; "%@ at %@:" = "%1$@ bij %2$@:";
/* No comment provided by engineer. */
"%@ connected" = "%@ verbonden";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ is verbonden!"; "%@ is connected!" = "%@ is verbonden!";
@@ -154,9 +139,6 @@
/* notification title */ /* notification title */
"%@ wants to connect!" = "%@ wil verbinding maken!"; "%@ wants to connect!" = "%@ wil verbinding maken!";
/* No comment provided by engineer. */
"%@, %@ and %lld members" = "%@, %@ en %lld leden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@, %@ and %lld other members connected" = "%@, %@ en %lld andere leden hebben verbinding gemaakt"; "%@, %@ and %lld other members connected" = "%@, %@ en %lld andere leden hebben verbinding gemaakt";
@@ -196,21 +178,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld file(s) with total size of %@" = "%lld bestand(en) met een totale grootte van %@"; "%lld file(s) with total size of %@" = "%lld bestand(en) met een totale grootte van %@";
/* No comment provided by engineer. */
"%lld group events" = "%lld groep gebeurtenissen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld members" = "%lld leden"; "%lld members" = "%lld leden";
/* No comment provided by engineer. */
"%lld messages blocked" = "%lld berichten geblokkeerd";
/* No comment provided by engineer. */
"%lld messages marked deleted" = "%lld berichten gemarkeerd als verwijderd";
/* No comment provided by engineer. */
"%lld messages moderated by %@" = "%lld berichten gemodereerd door %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld minutes" = "%lld minuten"; "%lld minutes" = "%lld minuten";
@@ -259,9 +229,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"~strike~" = "\\~staking~"; "~strike~" = "\\~staking~";
/* time to disappear */
"0 sec" = "0 sec";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"0s" = "0s"; "0s" = "0s";
@@ -404,9 +371,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Alle berichten worden verwijderd, dit kan niet ongedaan worden gemaakt! De berichten worden ALLEEN voor jou verwijderd."; "All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Alle berichten worden verwijderd, dit kan niet ongedaan worden gemaakt! De berichten worden ALLEEN voor jou verwijderd.";
/* No comment provided by engineer. */
"All new messages from %@ will be hidden!" = "Alle nieuwe berichten van %@ worden verborgen!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts will remain connected." = "Al uw contacten blijven verbonden."; "All your contacts will remain connected." = "Al uw contacten blijven verbonden.";
@@ -470,12 +434,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Already connected?" = "Al verbonden?"; "Already connected?" = "Al verbonden?";
/* No comment provided by engineer. */
"Already connecting!" = "Al bezig met verbinden!";
/* No comment provided by engineer. */
"Already joining the group!" = "Al lid van de groep!";
/* pref value */ /* pref value */
"always" = "altijd"; "always" = "altijd";
@@ -485,9 +443,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"An empty chat profile with the provided name is created, and the app opens as usual." = "Er wordt een leeg chatprofiel met de opgegeven naam gemaakt en de app wordt zoals gewoonlijk geopend."; "An empty chat profile with the provided name is created, and the app opens as usual." = "Er wordt een leeg chatprofiel met de opgegeven naam gemaakt en de app wordt zoals gewoonlijk geopend.";
/* No comment provided by engineer. */
"and %lld other events" = "en %lld andere gebeurtenissen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Answer call" = "Beantwoord oproep"; "Answer call" = "Beantwoord oproep";
@@ -545,9 +500,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Authentication unavailable" = "Verificatie niet beschikbaar"; "Authentication unavailable" = "Verificatie niet beschikbaar";
/* member role */
"author" = "auteur";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Auto-accept" = "Automatisch accepteren"; "Auto-accept" = "Automatisch accepteren";
@@ -560,9 +512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Back" = "Terug"; "Back" = "Terug";
/* No comment provided by engineer. */
"Bad desktop address" = "Onjuist desktopadres";
/* integrity error chat item */ /* integrity error chat item */
"bad message hash" = "Onjuiste bericht hash"; "bad message hash" = "Onjuiste bericht hash";
@@ -575,27 +524,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Bad message ID" = "Onjuiste bericht-ID"; "Bad message ID" = "Onjuiste bericht-ID";
/* No comment provided by engineer. */
"Better groups" = "Betere groepen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Better messages" = "Betere berichten"; "Better messages" = "Betere berichten";
/* No comment provided by engineer. */
"Block" = "Blokkeren";
/* No comment provided by engineer. */
"Block group members" = "Groepsleden blokkeren";
/* No comment provided by engineer. */
"Block member" = "Lid blokkeren";
/* No comment provided by engineer. */
"Block member?" = "Lid blokkeren?";
/* No comment provided by engineer. */
"blocked" = "geblokkeerd";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"bold" = "vetgedrukt"; "bold" = "vetgedrukt";
@@ -666,7 +597,7 @@
"Change lock mode" = "Wijzig de vergrendelings modus"; "Change lock mode" = "Wijzig de vergrendelings modus";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change member role?" = "Rol van lid wijzigen?"; "Change member role?" = "Rol van gebruiker wijzigen?";
/* authentication reason */ /* authentication reason */
"Change passcode" = "Toegangscode wijzigen"; "Change passcode" = "Toegangscode wijzigen";
@@ -789,30 +720,12 @@
/* server test step */ /* server test step */
"Connect" = "Verbind"; "Connect" = "Verbind";
/* No comment provided by engineer. */
"Connect automatically" = "Automatisch verbinden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect incognito" = "Verbind incognito"; "Connect incognito" = "Verbind incognito";
/* No comment provided by engineer. */
"Connect to desktop" = "Verbinden met desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "maak verbinding met SimpleX Chat-ontwikkelaars."; "connect to SimpleX Chat developers." = "maak verbinding met SimpleX Chat-ontwikkelaars.";
/* No comment provided by engineer. */
"Connect to yourself?" = "Verbinding maken met jezelf?";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own one-time link!" = "Verbinding maken met jezelf?\nDit is uw eigen eenmalige link!";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own SimpleX address!" = "Verbinding maken met jezelf?\nDit is uw eigen SimpleX adres!";
/* No comment provided by engineer. */
"Connect via contact address" = "Verbinding maken via contactadres";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via link" = "Maak verbinding via link"; "Connect via link" = "Maak verbinding via link";
@@ -822,21 +735,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via one-time link" = "Verbinden via een eenmalige link?"; "Connect via one-time link" = "Verbinden via een eenmalige link?";
/* No comment provided by engineer. */
"Connect with %@" = "Verbonden met %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connected" = "verbonden"; "connected" = "verbonden";
/* No comment provided by engineer. */
"Connected desktop" = "Verbonden desktop";
/* rcv group event chat item */ /* rcv group event chat item */
"connected directly" = "direct verbonden"; "connected directly" = "direct verbonden";
/* No comment provided by engineer. */
"Connected to desktop" = "Verbonden met desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting" = "Verbinden"; "connecting" = "Verbinden";
@@ -861,9 +765,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Verbinden met server... (fout: %@)"; "Connecting server… (error: %@)" = "Verbinden met server... (fout: %@)";
/* No comment provided by engineer. */
"Connecting to desktop" = "Verbinding maken met desktop";
/* chat list item title */ /* chat list item title */
"connecting…" = "Verbinden…"; "connecting…" = "Verbinden…";
@@ -882,9 +783,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "Verbindingsverzoek verzonden!"; "Connection request sent!" = "Verbindingsverzoek verzonden!";
/* No comment provided by engineer. */
"Connection terminated" = "Verbinding beëindigd";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection timeout" = "Timeout verbinding"; "Connection timeout" = "Timeout verbinding";
@@ -933,24 +831,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Core version: v%@" = "Core versie: v% @"; "Core version: v%@" = "Core versie: v% @";
/* No comment provided by engineer. */
"Correct name to %@?" = "Juiste naam voor %@?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create" = "Maak"; "Create" = "Maak";
/* No comment provided by engineer. */
"Create a group using a random profile." = "Maak een groep met een willekeurig profiel.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create an address to let people connect with you." = "Maak een adres aan zodat mensen contact met je kunnen opnemen."; "Create an address to let people connect with you." = "Maak een adres aan zodat mensen contact met je kunnen opnemen.";
/* server test step */ /* server test step */
"Create file" = "Bestand maken"; "Create file" = "Bestand maken";
/* No comment provided by engineer. */
"Create group" = "Groep aanmaken";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create group link" = "Groep link maken"; "Create group link" = "Groep link maken";
@@ -963,9 +852,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create one-time invitation link" = "Maak een eenmalige uitnodiging link"; "Create one-time invitation link" = "Maak een eenmalige uitnodiging link";
/* No comment provided by engineer. */
"Create profile" = "Maak een profiel aan";
/* server test step */ /* server test step */
"Create queue" = "Maak een wachtrij"; "Create queue" = "Maak een wachtrij";
@@ -1080,9 +966,6 @@
/* chat item action */ /* chat item action */
"Delete" = "Verwijderen"; "Delete" = "Verwijderen";
/* No comment provided by engineer. */
"Delete %lld messages?" = "%lld berichten verwijderen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete address" = "Adres verwijderen"; "Delete address" = "Adres verwijderen";
@@ -1095,9 +978,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete all files" = "Verwijder alle bestanden"; "Delete all files" = "Verwijder alle bestanden";
/* No comment provided by engineer. */
"Delete and notify contact" = "Contact verwijderen en op de hoogte stellen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete archive" = "Archief verwijderen"; "Delete archive" = "Archief verwijderen";
@@ -1119,9 +999,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete Contact" = "Verwijder contact"; "Delete Contact" = "Verwijder contact";
/* No comment provided by engineer. */
"Delete contact?\nThis cannot be undone!" = "Verwijder contact?\nDit kan niet ongedaan gemaakt worden!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete database" = "Database verwijderen"; "Delete database" = "Database verwijderen";
@@ -1197,9 +1074,6 @@
/* copied message info */ /* copied message info */
"Deleted at: %@" = "Verwijderd om: %@"; "Deleted at: %@" = "Verwijderd om: %@";
/* rcv direct event chat item */
"deleted contact" = "verwijderd contact";
/* rcv group event chat item */ /* rcv group event chat item */
"deleted group" = "verwijderde groep"; "deleted group" = "verwijderde groep";
@@ -1215,15 +1089,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Description" = "Beschrijving"; "Description" = "Beschrijving";
/* No comment provided by engineer. */
"Desktop address" = "Desktop adres";
/* No comment provided by engineer. */
"Desktop app version %@ is not compatible with this app." = "Desktop-app-versie %@ is niet compatibel met deze app.";
/* No comment provided by engineer. */
"Desktop devices" = "Desktop apparaten";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Develop" = "Ontwikkelen"; "Develop" = "Ontwikkelen";
@@ -1287,15 +1152,9 @@
/* server test step */ /* server test step */
"Disconnect" = "verbinding verbreken"; "Disconnect" = "verbinding verbreken";
/* No comment provided by engineer. */
"Disconnect desktop?" = "Desktop loskoppelen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Discover and join groups" = "Ontdek en sluit je aan bij groepen"; "Discover and join groups" = "Ontdek en sluit je aan bij groepen";
/* No comment provided by engineer. */
"Discover via local network" = "Ontdek via het lokale netwerk";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Do it later" = "Doe het later"; "Do it later" = "Doe het later";
@@ -1431,12 +1290,6 @@
/* chat item text */ /* chat item text */
"encryption re-negotiation allowed for %@" = "versleuteling heronderhandeling toegestaan voor % @"; "encryption re-negotiation allowed for %@" = "versleuteling heronderhandeling toegestaan voor % @";
/* message decrypt error item */
"Encryption re-negotiation error" = "Fout bij heronderhandeling van codering";
/* No comment provided by engineer. */
"Encryption re-negotiation failed." = "Opnieuw onderhandelen over de codering is mislukt.";
/* chat item text */ /* chat item text */
"encryption re-negotiation required" = "heronderhandeling van versleuteling vereist"; "encryption re-negotiation required" = "heronderhandeling van versleuteling vereist";
@@ -1452,9 +1305,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter correct passphrase." = "Voer het juiste wachtwoord in."; "Enter correct passphrase." = "Voer het juiste wachtwoord in.";
/* No comment provided by engineer. */
"Enter group name…" = "Groep naam invoeren…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter Passcode" = "Voer toegangscode in"; "Enter Passcode" = "Voer toegangscode in";
@@ -1467,18 +1317,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter server manually" = "Voer de server handmatig in"; "Enter server manually" = "Voer de server handmatig in";
/* No comment provided by engineer. */
"Enter this device name…" = "Voer deze apparaatnaam in…";
/* placeholder */ /* placeholder */
"Enter welcome message…" = "Welkomst bericht invoeren…"; "Enter welcome message…" = "Welkomst bericht invoeren…";
/* placeholder */ /* placeholder */
"Enter welcome message… (optional)" = "Voer welkomst bericht in... (optioneel)"; "Enter welcome message… (optional)" = "Voer welkomst bericht in... (optioneel)";
/* No comment provided by engineer. */
"Enter your name…" = "Vul uw naam in…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"error" = "fout"; "error" = "fout";
@@ -1495,7 +1339,7 @@
"Error accessing database file" = "Fout bij toegang tot database bestand"; "Error accessing database file" = "Fout bij toegang tot database bestand";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Fout bij het toevoegen van leden"; "Error adding member(s)" = "Fout bij het toevoegen van gebruiker(s)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Fout bij wijzigen van adres"; "Error changing address" = "Fout bij wijzigen van adres";
@@ -1573,7 +1417,7 @@
"Error receiving file" = "Fout bij ontvangen van bestand"; "Error receiving file" = "Fout bij ontvangen van bestand";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error removing member" = "Fout bij verwijderen van lid"; "Error removing member" = "Fout bij verwijderen van gebruiker";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error saving %@ servers" = "Fout bij opslaan van %@ servers"; "Error saving %@ servers" = "Fout bij opslaan van %@ servers";
@@ -1650,9 +1494,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Exit without saving" = "Afsluiten zonder opslaan"; "Exit without saving" = "Afsluiten zonder opslaan";
/* chat item action */
"Expand" = "Uitbreiden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Export database" = "Database exporteren"; "Export database" = "Database exporteren";
@@ -1671,9 +1512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fast and no wait until the sender is online!" = "Snel en niet wachten tot de afzender online is!"; "Fast and no wait until the sender is online!" = "Snel en niet wachten tot de afzender online is!";
/* No comment provided by engineer. */
"Faster joining and more reliable messages." = "Snellere deelname en betrouwbaardere berichten.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Favorite" = "Favoriet"; "Favorite" = "Favoriet";
@@ -1731,9 +1569,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Voor console"; "For console" = "Voor console";
/* No comment provided by engineer. */
"Found desktop" = "Desktop gevonden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"French interface" = "Franse interface"; "French interface" = "Franse interface";
@@ -1746,9 +1581,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Full name:" = "Volledige naam:"; "Full name:" = "Volledige naam:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Volledig gedecentraliseerd alleen zichtbaar voor leden.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "Volledig opnieuw geïmplementeerd - werk op de achtergrond!"; "Fully re-implemented - work in background!" = "Volledig opnieuw geïmplementeerd - werk op de achtergrond!";
@@ -1761,12 +1593,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group" = "Groep"; "Group" = "Groep";
/* No comment provided by engineer. */
"Group already exists" = "Groep bestaat al";
/* No comment provided by engineer. */
"Group already exists!" = "Groep bestaat al!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"group deleted" = "groep verwijderd"; "group deleted" = "groep verwijderd";
@@ -1938,9 +1764,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
/* No comment provided by engineer. */
"Incognito groups" = "Incognitogroepen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito mode" = "Incognito modus"; "Incognito mode" = "Incognito modus";
@@ -1968,9 +1791,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incompatible database version" = "Incompatibele database versie"; "Incompatible database version" = "Incompatibele database versie";
/* No comment provided by engineer. */
"Incompatible version" = "Incompatibele versie";
/* PIN entry */ /* PIN entry */
"Incorrect passcode" = "Onjuiste toegangscode"; "Incorrect passcode" = "Onjuiste toegangscode";
@@ -2010,9 +1830,6 @@
/* invalid chat item */ /* invalid chat item */
"invalid data" = "ongeldige gegevens"; "invalid data" = "ongeldige gegevens";
/* No comment provided by engineer. */
"Invalid name!" = "Ongeldige naam!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid server address!" = "Ongeldig server adres!"; "Invalid server address!" = "Ongeldig server adres!";
@@ -2091,24 +1908,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join group" = "Word lid van groep"; "Join group" = "Word lid van groep";
/* No comment provided by engineer. */
"Join group?" = "Deelnemen aan groep?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join incognito" = "Doe incognito mee"; "Join incognito" = "Doe incognito mee";
/* No comment provided by engineer. */
"Join with current profile" = "Word lid met huidig profiel";
/* No comment provided by engineer. */
"Join your group?\nThis is your link for group %@!" = "Sluit u aan bij uw groep?\nDit is jouw link voor groep %@!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Joining group" = "Deel nemen aan groep"; "Joining group" = "Deel nemen aan groep";
/* No comment provided by engineer. */
"Keep the app open to use it from desktop" = "Houd de app geopend om deze vanaf de desktop te gebruiken";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Keep your connections" = "Behoud uw verbindingen"; "Keep your connections" = "Behoud uw verbindingen";
@@ -2145,15 +1950,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Limitations" = "Beperkingen"; "Limitations" = "Beperkingen";
/* No comment provided by engineer. */
"Link mobile and desktop apps! 🔗" = "Koppel mobiele en desktop-apps! 🔗";
/* No comment provided by engineer. */
"Linked desktop options" = "Gekoppelde desktop opties";
/* No comment provided by engineer. */
"Linked desktops" = "Gelinkte desktops";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"LIVE" = "LIVE"; "LIVE" = "LIVE";
@@ -2212,22 +2008,22 @@
"Max 30 seconds, received instantly." = "Max 30 seconden, direct ontvangen."; "Max 30 seconds, received instantly." = "Max 30 seconden, direct ontvangen.";
/* member role */ /* member role */
"member" = "lid"; "member" = "gebruiker";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member" = "Lid"; "Member" = "Gebruiker";
/* rcv group event chat item */ /* rcv group event chat item */
"member connected" = "is toegetreden"; "member connected" = "is toegetreden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member role will be changed to \"%@\". All group members will be notified." = "De rol van lid wordt gewijzigd in \"%@\". Alle groepsleden worden op de hoogte gebracht."; "Member role will be changed to \"%@\". All group members will be notified." = "De rol van gebruiker wordt gewijzigd in \"%@\". Alle groepsleden worden op de hoogte gebracht.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member role will be changed to \"%@\". The member will receive a new invitation." = "De rol van lid wordt gewijzigd in \"%@\". Het lid ontvangt een nieuwe uitnodiging."; "Member role will be changed to \"%@\". The member will receive a new invitation." = "De rol van gebruiker wordt gewijzigd in \"%@\". Het lid ontvangt een nieuwe uitnodiging.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Lid wordt uit de groep verwijderd, dit kan niet ongedaan worden gemaakt!"; "Member will be removed from group - this cannot be undone!" = "Gebruiker wordt uit de groep verwijderd, dit kan niet ongedaan worden gemaakt!";
/* item status text */ /* item status text */
"Message delivery error" = "Fout bij bezorging van bericht"; "Message delivery error" = "Fout bij bezorging van bericht";
@@ -2259,9 +2055,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages & files" = "Berichten"; "Messages & files" = "Berichten";
/* No comment provided by engineer. */
"Messages from %@ will be shown!" = "Berichten van %@ worden getoond!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrating database archive…" = "Database archief migreren…"; "Migrating database archive…" = "Database archief migreren…";
@@ -2409,9 +2202,6 @@
/* copied message info in history */ /* copied message info in history */
"no text" = "geen tekst"; "no text" = "geen tekst";
/* No comment provided by engineer. */
"Not compatible!" = "Niet compatibel!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Notifications" = "Meldingen"; "Notifications" = "Meldingen";
@@ -2472,7 +2262,7 @@
"Only group owners can change group preferences." = "Alleen groep eigenaren kunnen groep voorkeuren wijzigen."; "Only group owners can change group preferences." = "Alleen groep eigenaren kunnen groep voorkeuren wijzigen.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only group owners can enable files and media." = "Alleen groep eigenaren kunnen bestanden en media inschakelen."; "Only group owners can enable files and media." = "Alleen groepseigenaren kunnen bestanden en media inschakelen.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only group owners can enable voice messages." = "Alleen groep eigenaren kunnen spraak berichten inschakelen."; "Only group owners can enable voice messages." = "Alleen groep eigenaren kunnen spraak berichten inschakelen.";
@@ -2516,9 +2306,6 @@
/* authentication reason */ /* authentication reason */
"Open chat console" = "Chat console openen"; "Open chat console" = "Chat console openen";
/* No comment provided by engineer. */
"Open group" = "Open groep";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open Settings" = "Open instellingen"; "Open Settings" = "Open instellingen";
@@ -2555,9 +2342,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste" = "Plakken"; "Paste" = "Plakken";
/* No comment provided by engineer. */
"Paste desktop address" = "Desktopadres plakken";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste image" = "Afbeelding plakken"; "Paste image" = "Afbeelding plakken";
@@ -2654,12 +2438,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "profielfoto"; "Profile image" = "profielfoto";
/* No comment provided by engineer. */
"Profile name" = "Profielnaam";
/* No comment provided by engineer. */
"Profile name:" = "Profielnaam:";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile password" = "Profiel wachtwoord"; "Profile password" = "Profiel wachtwoord";
@@ -2799,10 +2577,10 @@
"Remove" = "Verwijderen"; "Remove" = "Verwijderen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Remove member" = "Lid verwijderen"; "Remove member" = "Gebruiker verwijderen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Remove member?" = "Lid verwijderen?"; "Remove member?" = "Gebruiker verwijderen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Remove passphrase from keychain?" = "Wachtwoord van de keychain verwijderen?"; "Remove passphrase from keychain?" = "Wachtwoord van de keychain verwijderen?";
@@ -2825,12 +2603,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Renegotiate encryption?" = "Heronderhandelen over versleuteling?"; "Renegotiate encryption?" = "Heronderhandelen over versleuteling?";
/* No comment provided by engineer. */
"Repeat connection request?" = "Verbindingsverzoek herhalen?";
/* No comment provided by engineer. */
"Repeat join request?" = "Deelnameverzoek herhalen?";
/* chat item action */ /* chat item action */
"Reply" = "Antwoord"; "Reply" = "Antwoord";
@@ -2895,7 +2667,7 @@
"Save and notify contact" = "Opslaan en Contact melden"; "Save and notify contact" = "Opslaan en Contact melden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save and notify group members" = "Opslaan en groep leden melden"; "Save and notify group members" = "Opslaan en Groep leden melden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save and update group profile" = "Groep profiel opslaan en bijwerken"; "Save and update group profile" = "Groep profiel opslaan en bijwerken";
@@ -2942,9 +2714,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan QR code" = "Scan QR-code"; "Scan QR code" = "Scan QR-code";
/* No comment provided by engineer. */
"Scan QR code from desktop" = "Scan QR-code vanaf uw desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan security code from your contact's app." = "Scan de beveiligingscode van de app van uw contact."; "Scan security code from your contact's app." = "Scan de beveiligingscode van de app van uw contact.";
@@ -3089,9 +2858,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Servers" = "Servers"; "Servers" = "Servers";
/* No comment provided by engineer. */
"Session code" = "Sessie code";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Set 1 day" = "Stel 1 dag in"; "Set 1 day" = "Stel 1 dag in";
@@ -3279,13 +3045,10 @@
"Tap to activate profile." = "Tik om profiel te activeren."; "Tap to activate profile." = "Tik om profiel te activeren.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to Connect" = "Tik om verbinding te maken"; "Tap to join" = "Tik om mee te doen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to join" = "Tik om lid te worden"; "Tap to join incognito" = "Tik om incognito deel te nemen";
/* No comment provided by engineer. */
"Tap to join incognito" = "Tik om incognito lid te worden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to start a new chat" = "Tik om een nieuw gesprek te starten"; "Tap to start a new chat" = "Tik om een nieuw gesprek te starten";
@@ -3401,21 +3164,12 @@
/* notification title */ /* notification title */
"this contact" = "dit contact"; "this contact" = "dit contact";
/* No comment provided by engineer. */
"This device name" = "Deze apparaatnaam";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "Deze groep heeft meer dan %lld -leden, ontvangstbevestigingen worden niet verzonden."; "This group has over %lld members, delivery receipts are not sent." = "Deze groep heeft meer dan %lld -leden, ontvangstbevestigingen worden niet verzonden.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group no longer exists." = "Deze groep bestaat niet meer."; "This group no longer exists." = "Deze groep bestaat niet meer.";
/* No comment provided by engineer. */
"This is your own one-time link!" = "Dit is uw eigen eenmalige link!";
/* No comment provided by engineer. */
"This is your own SimpleX address!" = "Dit is uw eigen SimpleX adres!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This setting applies to messages in your current chat profile **%@**." = "Deze instelling is van toepassing op berichten in je huidige chat profiel **%@**."; "This setting applies to messages in your current chat profile **%@**." = "Deze instelling is van toepassing op berichten in je huidige chat profiel **%@**.";
@@ -3425,9 +3179,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To connect, your contact can scan QR code or use the link in the app." = "Om verbinding te maken, kan uw contact de QR-code scannen of de link in de app gebruiken."; "To connect, your contact can scan QR code or use the link in the app." = "Om verbinding te maken, kan uw contact de QR-code scannen of de link in de app gebruiken.";
/* No comment provided by engineer. */
"To hide unwanted messages." = "Om ongewenste berichten te verbergen.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To make a new connection" = "Om een nieuwe verbinding te maken"; "To make a new connection" = "Om een nieuwe verbinding te maken";
@@ -3476,15 +3227,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unable to record voice message" = "Kan spraakbericht niet opnemen"; "Unable to record voice message" = "Kan spraakbericht niet opnemen";
/* No comment provided by engineer. */
"Unblock" = "Deblokkeren";
/* No comment provided by engineer. */
"Unblock member" = "Lid deblokkeren";
/* No comment provided by engineer. */
"Unblock member?" = "Lid deblokkeren?";
/* item status description */ /* item status description */
"Unexpected error: %@" = "Onverwachte fout: %@"; "Unexpected error: %@" = "Onverwachte fout: %@";
@@ -3524,12 +3266,6 @@
/* No comment provided by engineer. */ /* 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." = "Tenzij uw contact de verbinding heeft verwijderd of deze link al is gebruikt, kan het een bug zijn. Meld het alstublieft.\nOm verbinding te maken, vraagt u uw contact om een andere verbinding link te maken en te controleren of u een stabiele netwerkverbinding heeft."; "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." = "Tenzij uw contact de verbinding heeft verwijderd of deze link al is gebruikt, kan het een bug zijn. Meld het alstublieft.\nOm verbinding te maken, vraagt u uw contact om een andere verbinding link te maken en te controleren of u een stabiele netwerkverbinding heeft.";
/* No comment provided by engineer. */
"Unlink" = "Ontkoppelen";
/* No comment provided by engineer. */
"Unlink desktop?" = "Desktop ontkoppelen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unlock" = "Ontgrendelen"; "Unlock" = "Ontgrendelen";
@@ -3584,9 +3320,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Gebruik voor nieuwe verbindingen"; "Use for new connections" = "Gebruik voor nieuwe verbindingen";
/* No comment provided by engineer. */
"Use from desktop" = "Gebruik vanaf desktop";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use iOS call interface" = "De iOS-oproepinterface gebruiken"; "Use iOS call interface" = "De iOS-oproepinterface gebruiken";
@@ -3608,24 +3341,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Using SimpleX Chat servers." = "SimpleX Chat servers gebruiken."; "Using SimpleX Chat servers." = "SimpleX Chat servers gebruiken.";
/* No comment provided by engineer. */
"v%@" = "v%@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"v%@ (%@)" = "v%@ (%@)"; "v%@ (%@)" = "v%@ (%@)";
/* No comment provided by engineer. */
"Verify code with desktop" = "Code verifiëren met desktop";
/* No comment provided by engineer. */
"Verify connection" = "Controleer de verbinding";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify connection security" = "Controleer de verbindingsbeveiliging"; "Verify connection security" = "Controleer de verbindingsbeveiliging";
/* No comment provided by engineer. */
"Verify connections" = "Controleer verbindingen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify security code" = "Controleer de beveiligingscode"; "Verify security code" = "Controleer de beveiligingscode";
@@ -3644,9 +3365,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"via relay" = "via relais"; "via relay" = "via relais";
/* No comment provided by engineer. */
"Via secure quantum resistant protocol." = "Via een beveiligd kwantumbestendig protocol.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video call" = "video oproep"; "Video call" = "video oproep";
@@ -3686,9 +3404,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"waiting for confirmation…" = "Wachten op bevestiging…"; "waiting for confirmation…" = "Wachten op bevestiging…";
/* No comment provided by engineer. */
"Waiting for desktop..." = "Wachten op desktop...";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Waiting for file" = "Wachten op bestand"; "Waiting for file" = "Wachten op bestand";
@@ -3758,27 +3473,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connected to %@." = "U bent al verbonden met %@."; "You are already connected to %@." = "U bent al verbonden met %@.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "U maakt al verbinding met %@.";
/* No comment provided by engineer. */
"You are already connecting via this one-time link!" = "Je maakt al verbinding via deze eenmalige link!";
/* No comment provided by engineer. */
"You are already in group %@." = "Je zit al in groep %@.";
/* No comment provided by engineer. */
"You are already joining the group %@." = "Je bent al lid van de groep %@.";
/* No comment provided by engineer. */
"You are already joining the group via this link!" = "Je wordt al lid van de groep via deze link!";
/* No comment provided by engineer. */
"You are already joining the group via this link." = "Je wordt al lid van de groep via deze link.";
/* No comment provided by engineer. */
"You are already joining the group!\nRepeat join request?" = "Je sluit je al aan bij de groep!\nDeelnameverzoek herhalen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are connected to the server used to receive messages from this contact." = "U bent verbonden met de server die wordt gebruikt om berichten van dit contact te ontvangen."; "You are connected to the server used to receive messages from this contact." = "U bent verbonden met de server die wordt gebruikt om berichten van dit contact te ontvangen.";
@@ -3854,12 +3548,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You could not be verified; please try again." = "U kon niet worden geverifieerd; probeer het opnieuw."; "You could not be verified; please try again." = "U kon niet worden geverifieerd; probeer het opnieuw.";
/* No comment provided by engineer. */
"You have already requested connection via this address!" = "U heeft al een verbinding aangevraagd via dit adres!";
/* No comment provided by engineer. */
"You have already requested connection!\nRepeat connection request?" = "Je hebt al verbinding aangevraagd!\nVerbindingsverzoek herhalen?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You have no chats" = "Je hebt geen gesprekken"; "You have no chats" = "Je hebt geen gesprekken";
@@ -3902,9 +3590,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected to group when the group host's device is online, please wait or check later!" = "Je wordt verbonden met de groep wanneer het apparaat van de groep host online is, even geduld a.u.b. of controleer het later!"; "You will be connected to group when the group host's device is online, please wait or check later!" = "Je wordt verbonden met de groep wanneer het apparaat van de groep host online is, even geduld a.u.b. of controleer het later!";
/* No comment provided by engineer. */
"You will be connected when group link host's device is online, please wait or check later!" = "U wordt verbonden wanneer het apparaat van de groep link host online is. Wacht even of controleer het later opnieuw!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected when your connection request is accepted, please wait or check later!" = "U wordt verbonden wanneer uw verbindingsverzoek wordt geaccepteerd, even geduld a.u.b. of controleer later!"; "You will be connected when your connection request is accepted, please wait or check later!" = "U wordt verbonden wanneer uw verbindingsverzoek wordt geaccepteerd, even geduld a.u.b. of controleer later!";
@@ -3914,9 +3599,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be required to authenticate when you start or resume the app after 30 seconds in background." = "U moet zich authenticeren wanneer u de app na 30 seconden op de achtergrond start of hervat."; "You will be required to authenticate when you start or resume the app after 30 seconds in background." = "U moet zich authenticeren wanneer u de app na 30 seconden op de achtergrond start of hervat.";
/* No comment provided by engineer. */
"You will connect to all group members." = "Je maakt verbinding met alle leden.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "U ontvangt nog steeds oproepen en meldingen van gedempte profielen wanneer deze actief zijn."; "You will still receive calls and notifications from muted profiles when they are active." = "U ontvangt nog steeds oproepen en meldingen van gedempte profielen wanneer deze actief zijn.";
@@ -3980,9 +3662,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your privacy" = "Uw privacy"; "Your privacy" = "Uw privacy";
/* No comment provided by engineer. */
"Your profile" = "Jouw profiel";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your profile **%@** will be shared." = "Uw profiel **%@** wordt gedeeld."; "Your profile **%@** will be shared." = "Uw profiel **%@** wordt gedeeld.";
@@ -7,9 +7,6 @@
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX gebruikt Face-ID voor lokale authenticatie"; "NSFaceIDUsageDescription" = "SimpleX gebruikt Face-ID voor lokale authenticatie";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX maakt gebruik van lokale netwerktoegang om het gebruik van een gebruikerschatprofiel via de desktop-app op hetzelfde netwerk mogelijk te maken.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX heeft microfoon toegang nodig voor audio en video oproepen en om spraak berichten op te nemen."; "NSMicrophoneUsageDescription" = "SimpleX heeft microfoon toegang nodig voor audio en video oproepen en om spraak berichten op te nemen.";
-321
View File
@@ -25,9 +25,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- more stable message delivery.\n- a bit better groups.\n- and more!" = "- bardziej stabilne dostarczanie wiadomości.\n- nieco lepsze grupy.\n- i więcej!"; "- more stable message delivery.\n- a bit better groups.\n- and more!" = "- bardziej stabilne dostarczanie wiadomości.\n- nieco lepsze grupy.\n- i więcej!";
/* No comment provided by engineer. */
"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- opcjonalnie powiadamiaj usunięte kontakty.\n- nazwy profili ze spacją.\n- i wiele więcej!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- wiadomości głosowe do 5 minut.\n- niestandardowy czas zniknięcia.\n- historia edycji."; "- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- wiadomości głosowe do 5 minut.\n- niestandardowy czas zniknięcia.\n- historia edycji.";
@@ -46,12 +43,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"(" = "("; "(" = "(";
/* No comment provided by engineer. */
"(new)" = "(nowy)";
/* No comment provided by engineer. */
"(this device v%@)" = "(to urządzenie v%@)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
")" = ")"; ")" = ")";
@@ -127,18 +118,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ %@" = "%@ %@"; "%@ %@" = "%@ %@";
/* No comment provided by engineer. */
"%@ and %@" = "%@ i %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ and %@ connected" = "%@ i %@ połączeni"; "%@ and %@ connected" = "%@ i %@ połączeni";
/* copied message info, <sender> at <time> */ /* copied message info, <sender> at <time> */
"%@ at %@:" = "%1$@ o %2$@:"; "%@ at %@:" = "%1$@ o %2$@:";
/* No comment provided by engineer. */
"%@ connected" = "%@ połączony";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ jest połączony!"; "%@ is connected!" = "%@ jest połączony!";
@@ -154,9 +139,6 @@
/* notification title */ /* notification title */
"%@ wants to connect!" = "%@ chce się połączyć!"; "%@ wants to connect!" = "%@ chce się połączyć!";
/* No comment provided by engineer. */
"%@, %@ and %lld members" = "%@, %@ i %lld członków";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@, %@ and %lld other members connected" = "%@, %@ i %lld innych członków połączeni"; "%@, %@ and %lld other members connected" = "%@, %@ i %lld innych członków połączeni";
@@ -196,21 +178,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld file(s) with total size of %@" = "%lld plik(i) o całkowitym rozmiarze %@"; "%lld file(s) with total size of %@" = "%lld plik(i) o całkowitym rozmiarze %@";
/* No comment provided by engineer. */
"%lld group events" = "%lld wydarzeń grupy";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld members" = "%lld członków"; "%lld members" = "%lld członków";
/* No comment provided by engineer. */
"%lld messages blocked" = "%lld wiadomości zablokowanych";
/* No comment provided by engineer. */
"%lld messages marked deleted" = "%lld wiadomości oznaczonych do usunięcia";
/* No comment provided by engineer. */
"%lld messages moderated by %@" = "%lld wiadomości zmoderowanych przez %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld minutes" = "%lld minut"; "%lld minutes" = "%lld minut";
@@ -259,9 +229,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"~strike~" = "\\~strajk~"; "~strike~" = "\\~strajk~";
/* time to disappear */
"0 sec" = "0 sek";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"0s" = "0s"; "0s" = "0s";
@@ -404,9 +371,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Wszystkie wiadomości zostaną usunięte - nie można tego cofnąć! Wiadomości zostaną usunięte TYLKO dla Ciebie."; "All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Wszystkie wiadomości zostaną usunięte - nie można tego cofnąć! Wiadomości zostaną usunięte TYLKO dla Ciebie.";
/* No comment provided by engineer. */
"All new messages from %@ will be hidden!" = "Wszystkie nowe wiadomości z %@ zostaną ukryte!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts will remain connected." = "Wszystkie Twoje kontakty pozostaną połączone."; "All your contacts will remain connected." = "Wszystkie Twoje kontakty pozostaną połączone.";
@@ -470,12 +434,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Already connected?" = "Już połączony?"; "Already connected?" = "Już połączony?";
/* No comment provided by engineer. */
"Already connecting!" = "Już połączony!";
/* No comment provided by engineer. */
"Already joining the group!" = "Już dołączono do grupy!";
/* pref value */ /* pref value */
"always" = "zawsze"; "always" = "zawsze";
@@ -485,9 +443,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"An empty chat profile with the provided name is created, and the app opens as usual." = "Tworzony jest pusty profil czatu o podanej nazwie, a aplikacja otwiera się jak zwykle."; "An empty chat profile with the provided name is created, and the app opens as usual." = "Tworzony jest pusty profil czatu o podanej nazwie, a aplikacja otwiera się jak zwykle.";
/* No comment provided by engineer. */
"and %lld other events" = "i %lld innych wydarzeń";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Answer call" = "Odbierz połączenie"; "Answer call" = "Odbierz połączenie";
@@ -545,9 +500,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Authentication unavailable" = "Uwierzytelnianie niedostępne"; "Authentication unavailable" = "Uwierzytelnianie niedostępne";
/* member role */
"author" = "autor";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Auto-accept" = "Automatycznie akceptuj"; "Auto-accept" = "Automatycznie akceptuj";
@@ -560,9 +512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Back" = "Wstecz"; "Back" = "Wstecz";
/* No comment provided by engineer. */
"Bad desktop address" = "Zły adres komputera";
/* integrity error chat item */ /* integrity error chat item */
"bad message hash" = "zły hash wiadomości"; "bad message hash" = "zły hash wiadomości";
@@ -575,27 +524,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Bad message ID" = "Zły identyfikator wiadomości"; "Bad message ID" = "Zły identyfikator wiadomości";
/* No comment provided by engineer. */
"Better groups" = "Lepsze grupy";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Better messages" = "Lepsze wiadomości"; "Better messages" = "Lepsze wiadomości";
/* No comment provided by engineer. */
"Block" = "Zablokuj";
/* No comment provided by engineer. */
"Block group members" = "Blokuj członków grupy";
/* No comment provided by engineer. */
"Block member" = "Zablokuj członka";
/* No comment provided by engineer. */
"Block member?" = "Zablokować członka?";
/* No comment provided by engineer. */
"blocked" = "zablokowany";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"bold" = "pogrubiona"; "bold" = "pogrubiona";
@@ -789,30 +720,12 @@
/* server test step */ /* server test step */
"Connect" = "Połącz"; "Connect" = "Połącz";
/* No comment provided by engineer. */
"Connect automatically" = "Łącz automatycznie";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect incognito" = "Połącz incognito"; "Connect incognito" = "Połącz incognito";
/* No comment provided by engineer. */
"Connect to desktop" = "Połącz do komputera";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "połącz się z deweloperami SimpleX Chat."; "connect to SimpleX Chat developers." = "połącz się z deweloperami SimpleX Chat.";
/* No comment provided by engineer. */
"Connect to yourself?" = "Połączyć się ze sobą?";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own one-time link!" = "Połączyć się ze sobą?\nTo jest twój jednorazowy link!";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own SimpleX address!" = "Połączyć się ze sobą?\nTo jest twój własny adres SimpleX!";
/* No comment provided by engineer. */
"Connect via contact address" = "Połącz przez adres kontaktowy";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via link" = "Połącz się przez link"; "Connect via link" = "Połącz się przez link";
@@ -822,21 +735,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via one-time link" = "Połącz przez jednorazowy link"; "Connect via one-time link" = "Połącz przez jednorazowy link";
/* No comment provided by engineer. */
"Connect with %@" = "Połącz z %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connected" = "połączony"; "connected" = "połączony";
/* No comment provided by engineer. */
"Connected desktop" = "Połączony komputer";
/* rcv group event chat item */ /* rcv group event chat item */
"connected directly" = "połącz bezpośrednio"; "connected directly" = "połącz bezpośrednio";
/* No comment provided by engineer. */
"Connected to desktop" = "Połączony do komputera";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting" = "łączenie"; "connecting" = "łączenie";
@@ -861,9 +765,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Łączenie z serwerem... (błąd: %@)"; "Connecting server… (error: %@)" = "Łączenie z serwerem... (błąd: %@)";
/* No comment provided by engineer. */
"Connecting to desktop" = "Łączenie z komputerem";
/* chat list item title */ /* chat list item title */
"connecting…" = "łączenie…"; "connecting…" = "łączenie…";
@@ -882,9 +783,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "Prośba o połączenie wysłana!"; "Connection request sent!" = "Prośba o połączenie wysłana!";
/* No comment provided by engineer. */
"Connection terminated" = "Połączenie zakończone";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection timeout" = "Czas połączenia minął"; "Connection timeout" = "Czas połączenia minął";
@@ -933,24 +831,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Core version: v%@" = "Wersja rdzenia: v%@"; "Core version: v%@" = "Wersja rdzenia: v%@";
/* No comment provided by engineer. */
"Correct name to %@?" = "Poprawić imię na %@?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create" = "Utwórz"; "Create" = "Utwórz";
/* No comment provided by engineer. */
"Create a group using a random profile." = "Utwórz grupę używając losowego profilu.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create an address to let people connect with you." = "Utwórz adres, aby ludzie mogli się z Tobą połączyć."; "Create an address to let people connect with you." = "Utwórz adres, aby ludzie mogli się z Tobą połączyć.";
/* server test step */ /* server test step */
"Create file" = "Utwórz plik"; "Create file" = "Utwórz plik";
/* No comment provided by engineer. */
"Create group" = "Utwórz grupę";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create group link" = "Utwórz link do grupy"; "Create group link" = "Utwórz link do grupy";
@@ -963,9 +852,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create one-time invitation link" = "Utwórz jednorazowy link do zaproszenia"; "Create one-time invitation link" = "Utwórz jednorazowy link do zaproszenia";
/* No comment provided by engineer. */
"Create profile" = "Utwórz profil";
/* server test step */ /* server test step */
"Create queue" = "Utwórz kolejkę"; "Create queue" = "Utwórz kolejkę";
@@ -1080,9 +966,6 @@
/* chat item action */ /* chat item action */
"Delete" = "Usuń"; "Delete" = "Usuń";
/* No comment provided by engineer. */
"Delete %lld messages?" = "Usunąć %lld wiadomości?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete address" = "Usuń adres"; "Delete address" = "Usuń adres";
@@ -1095,9 +978,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete all files" = "Usuń wszystkie pliki"; "Delete all files" = "Usuń wszystkie pliki";
/* No comment provided by engineer. */
"Delete and notify contact" = "Usuń i powiadom kontakt";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete archive" = "Usuń archiwum"; "Delete archive" = "Usuń archiwum";
@@ -1119,9 +999,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete Contact" = "Usuń Kontakt"; "Delete Contact" = "Usuń Kontakt";
/* No comment provided by engineer. */
"Delete contact?\nThis cannot be undone!" = "Usunąć kontakt?\nTo nie może być cofnięte!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete database" = "Usuń bazę danych"; "Delete database" = "Usuń bazę danych";
@@ -1197,9 +1074,6 @@
/* copied message info */ /* copied message info */
"Deleted at: %@" = "Usunięto o: %@"; "Deleted at: %@" = "Usunięto o: %@";
/* rcv direct event chat item */
"deleted contact" = "usunięto kontakt";
/* rcv group event chat item */ /* rcv group event chat item */
"deleted group" = "usunięta grupa"; "deleted group" = "usunięta grupa";
@@ -1215,15 +1089,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Description" = "Opis"; "Description" = "Opis";
/* No comment provided by engineer. */
"Desktop address" = "Adres komputera";
/* No comment provided by engineer. */
"Desktop app version %@ is not compatible with this app." = "Wersja aplikacji komputerowej %@ nie jest kompatybilna z tą aplikacją.";
/* No comment provided by engineer. */
"Desktop devices" = "Urządzenia komputerowe";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Develop" = "Deweloperskie"; "Develop" = "Deweloperskie";
@@ -1287,15 +1152,9 @@
/* server test step */ /* server test step */
"Disconnect" = "Rozłącz"; "Disconnect" = "Rozłącz";
/* No comment provided by engineer. */
"Disconnect desktop?" = "Rozłączyć komputer?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Discover and join groups" = "Odkrywaj i dołączaj do grup"; "Discover and join groups" = "Odkrywaj i dołączaj do grup";
/* No comment provided by engineer. */
"Discover via local network" = "Odkryj przez sieć lokalną";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Do it later" = "Zrób to później"; "Do it later" = "Zrób to później";
@@ -1431,12 +1290,6 @@
/* chat item text */ /* chat item text */
"encryption re-negotiation allowed for %@" = "renegocjacja szyfrowania dozwolona dla %@"; "encryption re-negotiation allowed for %@" = "renegocjacja szyfrowania dozwolona dla %@";
/* message decrypt error item */
"Encryption re-negotiation error" = "Błąd renegocjacji szyfrowania";
/* No comment provided by engineer. */
"Encryption re-negotiation failed." = "Renegocjacja szyfrowania nie powiodła się.";
/* chat item text */ /* chat item text */
"encryption re-negotiation required" = "renegocjacja szyfrowania wymagana"; "encryption re-negotiation required" = "renegocjacja szyfrowania wymagana";
@@ -1452,9 +1305,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter correct passphrase." = "Wprowadź poprawne hasło."; "Enter correct passphrase." = "Wprowadź poprawne hasło.";
/* No comment provided by engineer. */
"Enter group name…" = "Wpisz nazwę grupy…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter Passcode" = "Wprowadź Pin"; "Enter Passcode" = "Wprowadź Pin";
@@ -1467,18 +1317,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter server manually" = "Wprowadź serwer ręcznie"; "Enter server manually" = "Wprowadź serwer ręcznie";
/* No comment provided by engineer. */
"Enter this device name…" = "Podaj nazwę urządzenia…";
/* placeholder */ /* placeholder */
"Enter welcome message…" = "Wpisz wiadomość powitalną…"; "Enter welcome message…" = "Wpisz wiadomość powitalną…";
/* placeholder */ /* placeholder */
"Enter welcome message… (optional)" = "Wpisz wiadomość powitalną… (opcjonalne)"; "Enter welcome message… (optional)" = "Wpisz wiadomość powitalną… (opcjonalne)";
/* No comment provided by engineer. */
"Enter your name…" = "Wpisz swoją nazwę…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"error" = "błąd"; "error" = "błąd";
@@ -1650,9 +1494,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Exit without saving" = "Wyjdź bez zapisywania"; "Exit without saving" = "Wyjdź bez zapisywania";
/* chat item action */
"Expand" = "Rozszerz";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Export database" = "Eksportuj bazę danych"; "Export database" = "Eksportuj bazę danych";
@@ -1671,9 +1512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fast and no wait until the sender is online!" = "Szybko i bez czekania aż nadawca będzie online!"; "Fast and no wait until the sender is online!" = "Szybko i bez czekania aż nadawca będzie online!";
/* No comment provided by engineer. */
"Faster joining and more reliable messages." = "Szybsze dołączenie i bardziej niezawodne wiadomości.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Favorite" = "Ulubione"; "Favorite" = "Ulubione";
@@ -1731,9 +1569,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Dla konsoli"; "For console" = "Dla konsoli";
/* No comment provided by engineer. */
"Found desktop" = "Znaleziono komputer";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"French interface" = "Francuski interfejs"; "French interface" = "Francuski interfejs";
@@ -1746,9 +1581,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Full name:" = "Pełna nazwa:"; "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.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "W pełni ponownie zaimplementowany - praca w tle!"; "Fully re-implemented - work in background!" = "W pełni ponownie zaimplementowany - praca w tle!";
@@ -1761,12 +1593,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group" = "Grupa"; "Group" = "Grupa";
/* No comment provided by engineer. */
"Group already exists" = "Grupa już istnieje";
/* No comment provided by engineer. */
"Group already exists!" = "Grupa już istnieje!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"group deleted" = "grupa usunięta"; "group deleted" = "grupa usunięta";
@@ -1938,9 +1764,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
/* No comment provided by engineer. */
"Incognito groups" = "Grupy incognito";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito mode" = "Tryb incognito"; "Incognito mode" = "Tryb incognito";
@@ -1968,9 +1791,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incompatible database version" = "Niekompatybilna wersja bazy danych"; "Incompatible database version" = "Niekompatybilna wersja bazy danych";
/* No comment provided by engineer. */
"Incompatible version" = "Niekompatybilna wersja";
/* PIN entry */ /* PIN entry */
"Incorrect passcode" = "Nieprawidłowy pin"; "Incorrect passcode" = "Nieprawidłowy pin";
@@ -2010,9 +1830,6 @@
/* invalid chat item */ /* invalid chat item */
"invalid data" = "nieprawidłowe dane"; "invalid data" = "nieprawidłowe dane";
/* No comment provided by engineer. */
"Invalid name!" = "Nieprawidłowa nazwa!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid server address!" = "Nieprawidłowy adres serwera!"; "Invalid server address!" = "Nieprawidłowy adres serwera!";
@@ -2091,24 +1908,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join group" = "Dołącz do grupy"; "Join group" = "Dołącz do grupy";
/* No comment provided by engineer. */
"Join group?" = "Dołączyć do grupy?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join incognito" = "Dołącz incognito"; "Join incognito" = "Dołącz incognito";
/* No comment provided by engineer. */
"Join with current profile" = "Dołącz z obecnym profilem";
/* No comment provided by engineer. */
"Join your group?\nThis is your link for group %@!" = "Dołączyć do twojej grupy?\nTo jest twój link do grupy %@!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Joining group" = "Dołączanie do grupy"; "Joining group" = "Dołączanie do grupy";
/* No comment provided by engineer. */
"Keep the app open to use it from desktop" = "Zostaw aplikację otwartą i używaj ją z komputera";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Keep your connections" = "Zachowaj swoje połączenia"; "Keep your connections" = "Zachowaj swoje połączenia";
@@ -2145,15 +1950,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Limitations" = "Ograniczenia"; "Limitations" = "Ograniczenia";
/* No comment provided by engineer. */
"Link mobile and desktop apps! 🔗" = "Połącz mobile i komputerowe aplikacje! 🔗";
/* No comment provided by engineer. */
"Linked desktop options" = "Połączone opcje komputera";
/* No comment provided by engineer. */
"Linked desktops" = "Połączone komputery";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"LIVE" = "NA ŻYWO"; "LIVE" = "NA ŻYWO";
@@ -2259,9 +2055,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages & files" = "Wiadomości i pliki"; "Messages & files" = "Wiadomości i pliki";
/* No comment provided by engineer. */
"Messages from %@ will be shown!" = "Wiadomości od %@ zostaną pokazane!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrating database archive…" = "Migrowanie archiwum bazy danych…"; "Migrating database archive…" = "Migrowanie archiwum bazy danych…";
@@ -2409,9 +2202,6 @@
/* copied message info in history */ /* copied message info in history */
"no text" = "brak tekstu"; "no text" = "brak tekstu";
/* No comment provided by engineer. */
"Not compatible!" = "Nie kompatybilny!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Notifications" = "Powiadomienia"; "Notifications" = "Powiadomienia";
@@ -2516,9 +2306,6 @@
/* authentication reason */ /* authentication reason */
"Open chat console" = "Otwórz konsolę czatu"; "Open chat console" = "Otwórz konsolę czatu";
/* No comment provided by engineer. */
"Open group" = "Grupa otwarta";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open Settings" = "Otwórz Ustawienia"; "Open Settings" = "Otwórz Ustawienia";
@@ -2555,9 +2342,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste" = "Wklej"; "Paste" = "Wklej";
/* No comment provided by engineer. */
"Paste desktop address" = "Wklej adres komputera";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste image" = "Wklej obraz"; "Paste image" = "Wklej obraz";
@@ -2654,12 +2438,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Zdjęcie profilowe"; "Profile image" = "Zdjęcie profilowe";
/* No comment provided by engineer. */
"Profile name" = "Nazwa profilu";
/* No comment provided by engineer. */
"Profile name:" = "Nazwa profilu:";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile password" = "Hasło profilu"; "Profile password" = "Hasło profilu";
@@ -2825,12 +2603,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Renegotiate encryption?" = "Renegocjować szyfrowanie?"; "Renegotiate encryption?" = "Renegocjować szyfrowanie?";
/* No comment provided by engineer. */
"Repeat connection request?" = "Powtórzyć prośbę połączenia?";
/* No comment provided by engineer. */
"Repeat join request?" = "Powtórzyć prośbę dołączenia?";
/* chat item action */ /* chat item action */
"Reply" = "Odpowiedz"; "Reply" = "Odpowiedz";
@@ -2942,9 +2714,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan QR code" = "Zeskanuj kod QR"; "Scan QR code" = "Zeskanuj kod QR";
/* No comment provided by engineer. */
"Scan QR code from desktop" = "Zeskanuj kod QR z komputera";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan security code from your contact's app." = "Zeskanuj kod bezpieczeństwa z aplikacji Twojego kontaktu."; "Scan security code from your contact's app." = "Zeskanuj kod bezpieczeństwa z aplikacji Twojego kontaktu.";
@@ -3089,9 +2858,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Servers" = "Serwery"; "Servers" = "Serwery";
/* No comment provided by engineer. */
"Session code" = "Kod sesji";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Set 1 day" = "Ustaw 1 dzień"; "Set 1 day" = "Ustaw 1 dzień";
@@ -3278,9 +3044,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to activate profile." = "Dotknij, aby aktywować profil."; "Tap to activate profile." = "Dotknij, aby aktywować profil.";
/* No comment provided by engineer. */
"Tap to Connect" = "Dotknij aby połączyć";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to join" = "Dotknij, aby dołączyć"; "Tap to join" = "Dotknij, aby dołączyć";
@@ -3401,21 +3164,12 @@
/* notification title */ /* notification title */
"this contact" = "ten kontakt"; "this contact" = "ten kontakt";
/* No comment provided by engineer. */
"This device name" = "Nazwa tego urządzenia";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "Ta grupa ma ponad %lld członków, potwierdzenia dostawy nie są wysyłane."; "This group has over %lld members, delivery receipts are not sent." = "Ta grupa ma ponad %lld członków, potwierdzenia dostawy nie są wysyłane.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group no longer exists." = "Ta grupa już nie istnieje."; "This group no longer exists." = "Ta grupa już nie istnieje.";
/* No comment provided by engineer. */
"This is your own one-time link!" = "To jest twój jednorazowy link!";
/* No comment provided by engineer. */
"This is your own SimpleX address!" = "To jest twój własny adres SimpleX!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This setting applies to messages in your current chat profile **%@**." = "To ustawienie dotyczy wiadomości Twojego bieżącego profilu czatu **%@**."; "This setting applies to messages in your current chat profile **%@**." = "To ustawienie dotyczy wiadomości Twojego bieżącego profilu czatu **%@**.";
@@ -3425,9 +3179,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To connect, your contact can scan QR code or use the link in the app." = "Aby się połączyć, Twój kontakt może zeskanować kod QR lub skorzystać z linku w aplikacji."; "To connect, your contact can scan QR code or use the link in the app." = "Aby się połączyć, Twój kontakt może zeskanować kod QR lub skorzystać z linku w aplikacji.";
/* No comment provided by engineer. */
"To hide unwanted messages." = "Aby ukryć niechciane wiadomości.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To make a new connection" = "Aby nawiązać nowe połączenie"; "To make a new connection" = "Aby nawiązać nowe połączenie";
@@ -3476,15 +3227,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unable to record voice message" = "Nie można nagrać wiadomości głosowej"; "Unable to record voice message" = "Nie można nagrać wiadomości głosowej";
/* No comment provided by engineer. */
"Unblock" = "Odblokuj";
/* No comment provided by engineer. */
"Unblock member" = "Odblokuj członka";
/* No comment provided by engineer. */
"Unblock member?" = "Odblokować członka?";
/* item status description */ /* item status description */
"Unexpected error: %@" = "Nieoczekiwany błąd: %@"; "Unexpected error: %@" = "Nieoczekiwany błąd: %@";
@@ -3524,12 +3266,6 @@
/* No comment provided by engineer. */ /* 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." = "O ile Twój kontakt nie usunął połączenia lub ten link był już użyty, może to być błąd - zgłoś go.\nAby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połączenia i sprawdź, czy masz stabilne połączenie z siecią."; "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." = "O ile Twój kontakt nie usunął połączenia lub ten link był już użyty, może to być błąd - zgłoś go.\nAby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połączenia i sprawdź, czy masz stabilne połączenie z siecią.";
/* No comment provided by engineer. */
"Unlink" = "Odłącz";
/* No comment provided by engineer. */
"Unlink desktop?" = "Odłączyć komputer?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unlock" = "Odblokuj"; "Unlock" = "Odblokuj";
@@ -3584,9 +3320,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Użyj dla nowych połączeń"; "Use for new connections" = "Użyj dla nowych połączeń";
/* No comment provided by engineer. */
"Use from desktop" = "Użyj z komputera";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use iOS call interface" = "Użyj interfejsu połączeń iOS"; "Use iOS call interface" = "Użyj interfejsu połączeń iOS";
@@ -3608,24 +3341,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Using SimpleX Chat servers." = "Używanie serwerów SimpleX Chat."; "Using SimpleX Chat servers." = "Używanie serwerów SimpleX Chat.";
/* No comment provided by engineer. */
"v%@" = "v%@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"v%@ (%@)" = "v%@ (%@)"; "v%@ (%@)" = "v%@ (%@)";
/* No comment provided by engineer. */
"Verify code with desktop" = "Zweryfikuj kod z komputera";
/* No comment provided by engineer. */
"Verify connection" = "Zweryfikuj połączenie";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify connection security" = "Weryfikuj bezpieczeństwo połączenia"; "Verify connection security" = "Weryfikuj bezpieczeństwo połączenia";
/* No comment provided by engineer. */
"Verify connections" = "Zweryfikuj połączenia";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify security code" = "Weryfikuj kod bezpieczeństwa"; "Verify security code" = "Weryfikuj kod bezpieczeństwa";
@@ -3644,9 +3365,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"via relay" = "przez przekaźnik"; "via relay" = "przez przekaźnik";
/* No comment provided by engineer. */
"Via secure quantum resistant protocol." = "Dzięki bezpiecznemu protokołowi odpornego kwantowo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video call" = "Połączenie wideo"; "Video call" = "Połączenie wideo";
@@ -3686,9 +3404,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"waiting for confirmation…" = "oczekiwanie na potwierdzenie…"; "waiting for confirmation…" = "oczekiwanie na potwierdzenie…";
/* No comment provided by engineer. */
"Waiting for desktop..." = "Oczekiwanie na komputer...";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Waiting for file" = "Oczekiwanie na plik"; "Waiting for file" = "Oczekiwanie na plik";
@@ -3758,27 +3473,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connected to %@." = "Jesteś już połączony z %@."; "You are already connected to %@." = "Jesteś już połączony z %@.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Już się łączysz z %@.";
/* No comment provided by engineer. */
"You are already connecting via this one-time link!" = "Już jesteś połączony z tym jednorazowym linkiem!";
/* No comment provided by engineer. */
"You are already in group %@." = "Już jesteś w grupie %@.";
/* No comment provided by engineer. */
"You are already joining the group %@." = "Już dołączasz do grupy %@.";
/* No comment provided by engineer. */
"You are already joining the group via this link!" = "Już dołączasz do grupy przez ten link!";
/* No comment provided by engineer. */
"You are already joining the group via this link." = "Już dołączasz do grupy przez ten link.";
/* No comment provided by engineer. */
"You are already joining the group!\nRepeat join request?" = "Już dołączasz do grupy!\nPowtórzyć prośbę dołączenia?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are connected to the server used to receive messages from this contact." = "Jesteś połączony z serwerem używanym do odbierania wiadomości od tego kontaktu."; "You are connected to the server used to receive messages from this contact." = "Jesteś połączony z serwerem używanym do odbierania wiadomości od tego kontaktu.";
@@ -3854,12 +3548,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You could not be verified; please try again." = "Nie można zweryfikować użytkownika; proszę spróbować ponownie."; "You could not be verified; please try again." = "Nie można zweryfikować użytkownika; proszę spróbować ponownie.";
/* No comment provided by engineer. */
"You have already requested connection via this address!" = "Już prosiłeś o połączenie na ten adres!";
/* No comment provided by engineer. */
"You have already requested connection!\nRepeat connection request?" = "Już prosiłeś o połączenie!\nPowtórzyć prośbę połączenia?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You have no chats" = "Nie masz czatów"; "You have no chats" = "Nie masz czatów";
@@ -3902,9 +3590,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected to group when the group host's device is online, please wait or check later!" = "Zostaniesz połączony do grupy, gdy urządzenie gospodarza grupy będzie online, proszę czekać lub sprawdzić później!"; "You will be connected to group when the group host's device is online, please wait or check later!" = "Zostaniesz połączony do grupy, gdy urządzenie gospodarza grupy będzie online, proszę czekać lub sprawdzić później!";
/* No comment provided by engineer. */
"You will be connected when group link host's device is online, please wait or check later!" = "Zostaniesz połączony, gdy urządzenie hosta grupy będzie online, proszę czekać lub sprawdzić później!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected when your connection request is accepted, please wait or check later!" = "Zostaniesz połączony, gdy Twoje żądanie połączenia zostanie zaakceptowane, proszę czekać lub sprawdzić później!"; "You will be connected when your connection request is accepted, please wait or check later!" = "Zostaniesz połączony, gdy Twoje żądanie połączenia zostanie zaakceptowane, proszę czekać lub sprawdzić później!";
@@ -3914,9 +3599,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Uwierzytelnienie będzie wymagane przy uruchamianiu lub wznawianiu aplikacji po 30 sekundach w tle."; "You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Uwierzytelnienie będzie wymagane przy uruchamianiu lub wznawianiu aplikacji po 30 sekundach w tle.";
/* No comment provided by engineer. */
"You will connect to all group members." = "Zostaniesz połączony ze wszystkimi członkami grupy.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Nadal będziesz otrzymywać połączenia i powiadomienia z wyciszonych profili, gdy są one aktywne."; "You will still receive calls and notifications from muted profiles when they are active." = "Nadal będziesz otrzymywać połączenia i powiadomienia z wyciszonych profili, gdy są one aktywne.";
@@ -3980,9 +3662,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your privacy" = "Twoja prywatność"; "Your privacy" = "Twoja prywatność";
/* No comment provided by engineer. */
"Your profile" = "Twój profil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your profile **%@** will be shared." = "Twój profil **%@** zostanie udostępniony."; "Your profile **%@** will be shared." = "Twój profil **%@** zostanie udostępniony.";
@@ -7,9 +7,6 @@
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX używa Face ID do lokalnego uwierzytelniania"; "NSFaceIDUsageDescription" = "SimpleX używa Face ID do lokalnego uwierzytelniania";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX używa sieci lokalnej aby pozwolić na dostęp profilom czatu użytkownika przez aplikację komputerową na tej samej sieci.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX potrzebuje dostępu do mikrofonu, w celu połączeń audio i wideo oraz nagrywania wiadomości głosowych."; "NSMicrophoneUsageDescription" = "SimpleX potrzebuje dostępu do mikrofonu, w celu połączeń audio i wideo oraz nagrywania wiadomości głosowych.";
-339
View File
@@ -25,9 +25,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- more stable message delivery.\n- a bit better groups.\n- and more!" = "- более стабильная доставка сообщений.\n- немного улучшенные группы.\n- и прочее!"; "- more stable message delivery.\n- a bit better groups.\n- and more!" = "- более стабильная доставка сообщений.\n- немного улучшенные группы.\n- и прочее!";
/* No comment provided by engineer. */
"- optionally notify deleted contacts.\n- profile names with spaces.\n- and more!" = "- опционально уведомляйте удалённые контакты.\n- имена профилей с пробелами.\n- и прочее!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- голосовые сообщения до 5 минут.\n- настройка времени исчезающих сообщений.\n- история редактирования."; "- voice messages up to 5 minutes.\n- custom time to disappear.\n- editing history." = "- голосовые сообщения до 5 минут.\n- настройка времени исчезающих сообщений.\n- история редактирования.";
@@ -46,12 +43,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"(" = "("; "(" = "(";
/* No comment provided by engineer. */
"(new)" = "(новое)";
/* No comment provided by engineer. */
"(this device v%@)" = "(это устройство v%@)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
")" = ")"; ")" = ")";
@@ -127,18 +118,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ %@" = "%@ %@"; "%@ %@" = "%@ %@";
/* No comment provided by engineer. */
"%@ and %@" = "%@ и %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ and %@ connected" = "%@ и %@ соединены"; "%@ and %@ connected" = "%@ и %@ соединены";
/* copied message info, <sender> at <time> */ /* copied message info, <sender> at <time> */
"%@ at %@:" = "%1$@ в %2$@:"; "%@ at %@:" = "%1$@ в %2$@:";
/* No comment provided by engineer. */
"%@ connected" = "%@ соединен(а)";
/* notification title */ /* notification title */
"%@ is connected!" = "Установлено соединение с %@!"; "%@ is connected!" = "Установлено соединение с %@!";
@@ -154,9 +139,6 @@
/* notification title */ /* notification title */
"%@ wants to connect!" = "%@ хочет соединиться!"; "%@ wants to connect!" = "%@ хочет соединиться!";
/* No comment provided by engineer. */
"%@, %@ and %lld members" = "%@, %@ и %lld членов группы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@, %@ and %lld other members connected" = "%@, %@ и %lld других членов соединены"; "%@, %@ and %lld other members connected" = "%@, %@ и %lld других членов соединены";
@@ -196,21 +178,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld file(s) with total size of %@" = "%lld файл(ов) общим размером %@"; "%lld file(s) with total size of %@" = "%lld файл(ов) общим размером %@";
/* No comment provided by engineer. */
"%lld group events" = "%lld событий";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld members" = "Членов группы: %lld"; "%lld members" = "Членов группы: %lld";
/* No comment provided by engineer. */
"%lld messages blocked" = "%lld сообщений заблокировано";
/* No comment provided by engineer. */
"%lld messages marked deleted" = "%lld сообщений помечено удалёнными";
/* No comment provided by engineer. */
"%lld messages moderated by %@" = "%lld сообщений модерировано членом %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld minutes" = "%lld минуты"; "%lld minutes" = "%lld минуты";
@@ -259,9 +229,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"~strike~" = "\\~зачеркнуть~"; "~strike~" = "\\~зачеркнуть~";
/* time to disappear */
"0 sec" = "0 сек";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"0s" = "0с"; "0s" = "0с";
@@ -404,9 +371,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Все сообщения будут удалены - это действие нельзя отменить! Сообщения будут удалены только для Вас."; "All messages will be deleted - this cannot be undone! The messages will be deleted ONLY for you." = "Все сообщения будут удалены - это действие нельзя отменить! Сообщения будут удалены только для Вас.";
/* No comment provided by engineer. */
"All new messages from %@ will be hidden!" = "Все новые сообщения от %@ будут скрыты!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts will remain connected." = "Все контакты, которые соединились через этот адрес, сохранятся."; "All your contacts will remain connected." = "Все контакты, которые соединились через этот адрес, сохранятся.";
@@ -470,12 +434,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Already connected?" = "Соединение уже установлено?"; "Already connected?" = "Соединение уже установлено?";
/* No comment provided by engineer. */
"Already connecting!" = "Уже соединяется!";
/* No comment provided by engineer. */
"Already joining the group!" = "Вступление в группу уже начато!";
/* pref value */ /* pref value */
"always" = "всегда"; "always" = "всегда";
@@ -485,9 +443,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"An empty chat profile with the provided name is created, and the app opens as usual." = "Будет создан пустой профиль чата с указанным именем, и приложение откроется в обычном режиме."; "An empty chat profile with the provided name is created, and the app opens as usual." = "Будет создан пустой профиль чата с указанным именем, и приложение откроется в обычном режиме.";
/* No comment provided by engineer. */
"and %lld other events" = "и %lld других событий";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Answer call" = "Принять звонок"; "Answer call" = "Принять звонок";
@@ -545,9 +500,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Authentication unavailable" = "Аутентификация недоступна"; "Authentication unavailable" = "Аутентификация недоступна";
/* member role */
"author" = "автор";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Auto-accept" = "Автоприем"; "Auto-accept" = "Автоприем";
@@ -560,9 +512,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Back" = "Назад"; "Back" = "Назад";
/* No comment provided by engineer. */
"Bad desktop address" = "Неверный адрес компьютера";
/* integrity error chat item */ /* integrity error chat item */
"bad message hash" = "ошибка хэш сообщения"; "bad message hash" = "ошибка хэш сообщения";
@@ -575,27 +524,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Bad message ID" = "Ошибка ID сообщения"; "Bad message ID" = "Ошибка ID сообщения";
/* No comment provided by engineer. */
"Better groups" = "Улучшенные группы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Better messages" = "Улучшенные сообщения"; "Better messages" = "Улучшенные сообщения";
/* No comment provided by engineer. */
"Block" = "Заблокировать";
/* No comment provided by engineer. */
"Block group members" = "Блокируйте членов группы";
/* No comment provided by engineer. */
"Block member" = "Заблокировать члена группы";
/* No comment provided by engineer. */
"Block member?" = "Заблокировать члена группы?";
/* No comment provided by engineer. */
"blocked" = "заблокировано";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"bold" = "жирный"; "bold" = "жирный";
@@ -789,30 +720,12 @@
/* server test step */ /* server test step */
"Connect" = "Соединиться"; "Connect" = "Соединиться";
/* No comment provided by engineer. */
"Connect automatically" = "Соединяться автоматически";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect incognito" = "Соединиться Инкогнито"; "Connect incognito" = "Соединиться Инкогнито";
/* No comment provided by engineer. */
"Connect to desktop" = "Подключиться к компьютеру";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "соединитесь с разработчиками."; "connect to SimpleX Chat developers." = "соединитесь с разработчиками.";
/* No comment provided by engineer. */
"Connect to yourself?" = "Соединиться с самим собой?";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own one-time link!" = "Соединиться с самим собой?\nЭто ваша собственная одноразовая ссылка!";
/* No comment provided by engineer. */
"Connect to yourself?\nThis is your own SimpleX address!" = "Соединиться с самим собой?\nЭто ваш собственный адрес SimpleX!";
/* No comment provided by engineer. */
"Connect via contact address" = "Соединиться через адрес";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via link" = "Соединиться через ссылку"; "Connect via link" = "Соединиться через ссылку";
@@ -822,21 +735,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via one-time link" = "Соединиться через одноразовую ссылку"; "Connect via one-time link" = "Соединиться через одноразовую ссылку";
/* No comment provided by engineer. */
"Connect with %@" = "Соединиться с %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connected" = "соединение установлено"; "connected" = "соединение установлено";
/* No comment provided by engineer. */
"Connected desktop" = "Подключенный компьютер";
/* rcv group event chat item */
"connected directly" = "соединен(а) напрямую";
/* No comment provided by engineer. */
"Connected to desktop" = "Компьютер подключен";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting" = "соединяется"; "connecting" = "соединяется";
@@ -861,9 +762,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Устанавливается соединение с сервером… (ошибка: %@)"; "Connecting server… (error: %@)" = "Устанавливается соединение с сервером… (ошибка: %@)";
/* No comment provided by engineer. */
"Connecting to desktop" = "Подключение к компьютеру";
/* chat list item title */ /* chat list item title */
"connecting…" = "соединяется…"; "connecting…" = "соединяется…";
@@ -882,9 +780,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "Запрос на соединение отправлен!"; "Connection request sent!" = "Запрос на соединение отправлен!";
/* No comment provided by engineer. */
"Connection terminated" = "Подключение прервано";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection timeout" = "Превышено время соединения"; "Connection timeout" = "Превышено время соединения";
@@ -933,24 +828,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Core version: v%@" = "Версия ядра: v%@"; "Core version: v%@" = "Версия ядра: v%@";
/* No comment provided by engineer. */
"Correct name to %@?" = "Исправить имя на %@?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create" = "Создать"; "Create" = "Создать";
/* No comment provided by engineer. */
"Create a group using a random profile." = "Создайте группу, используя случайный профиль.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create an address to let people connect with you." = "Создайте адрес, чтобы можно было соединиться с вами."; "Create an address to let people connect with you." = "Создайте адрес, чтобы можно было соединиться с вами.";
/* server test step */ /* server test step */
"Create file" = "Создание файла"; "Create file" = "Создание файла";
/* No comment provided by engineer. */
"Create group" = "Создать группу";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create group link" = "Создать ссылку группы"; "Create group link" = "Создать ссылку группы";
@@ -963,9 +849,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create one-time invitation link" = "Создать ссылку-приглашение"; "Create one-time invitation link" = "Создать ссылку-приглашение";
/* No comment provided by engineer. */
"Create profile" = "Создать профиль";
/* server test step */ /* server test step */
"Create queue" = "Создание очереди"; "Create queue" = "Создание очереди";
@@ -1080,9 +963,6 @@
/* chat item action */ /* chat item action */
"Delete" = "Удалить"; "Delete" = "Удалить";
/* No comment provided by engineer. */
"Delete %lld messages?" = "Удалить %lld сообщений?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete address" = "Удалить адрес"; "Delete address" = "Удалить адрес";
@@ -1095,9 +975,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete all files" = "Удалить все файлы"; "Delete all files" = "Удалить все файлы";
/* No comment provided by engineer. */
"Delete and notify contact" = "Удалить и уведомить контакт";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete archive" = "Удалить архив"; "Delete archive" = "Удалить архив";
@@ -1119,9 +996,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete Contact" = "Удалить контакт"; "Delete Contact" = "Удалить контакт";
/* No comment provided by engineer. */
"Delete contact?\nThis cannot be undone!" = "Удалить контакт?\nЭто не может быть отменено!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete database" = "Удалить данные чата"; "Delete database" = "Удалить данные чата";
@@ -1197,9 +1071,6 @@
/* copied message info */ /* copied message info */
"Deleted at: %@" = "Удалено: %@"; "Deleted at: %@" = "Удалено: %@";
/* rcv direct event chat item */
"deleted contact" = "удалил(а) контакт";
/* rcv group event chat item */ /* rcv group event chat item */
"deleted group" = "удалил(а) группу"; "deleted group" = "удалил(а) группу";
@@ -1215,15 +1086,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Description" = "Описание"; "Description" = "Описание";
/* No comment provided by engineer. */
"Desktop address" = "Адрес компьютера";
/* No comment provided by engineer. */
"Desktop app version %@ is not compatible with this app." = "Версия настольного приложения %@ несовместима с этим приложением.";
/* No comment provided by engineer. */
"Desktop devices" = "Компьютеры";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Develop" = "Для разработчиков"; "Develop" = "Для разработчиков";
@@ -1287,15 +1149,9 @@
/* server test step */ /* server test step */
"Disconnect" = "Разрыв соединения"; "Disconnect" = "Разрыв соединения";
/* No comment provided by engineer. */
"Disconnect desktop?" = "Отключить компьютер?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Discover and join groups" = "Найдите и вступите в группы"; "Discover and join groups" = "Найдите и вступите в группы";
/* No comment provided by engineer. */
"Discover via local network" = "Обнаружение по локальной сети";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Do it later" = "Отложить"; "Do it later" = "Отложить";
@@ -1431,12 +1287,6 @@
/* chat item text */ /* chat item text */
"encryption re-negotiation allowed for %@" = "новое соглашение о шифровании разрешено для %@"; "encryption re-negotiation allowed for %@" = "новое соглашение о шифровании разрешено для %@";
/* message decrypt error item */
"Encryption re-negotiation error" = "Ошибка нового соглашения о шифровании";
/* No comment provided by engineer. */
"Encryption re-negotiation failed." = "Ошибка нового соглашения о шифровании.";
/* chat item text */ /* chat item text */
"encryption re-negotiation required" = "требуется новое соглашение о шифровании"; "encryption re-negotiation required" = "требуется новое соглашение о шифровании";
@@ -1452,9 +1302,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter correct passphrase." = "Введите правильный пароль."; "Enter correct passphrase." = "Введите правильный пароль.";
/* No comment provided by engineer. */
"Enter group name…" = "Введите имя группы…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter Passcode" = "Введите Код"; "Enter Passcode" = "Введите Код";
@@ -1467,18 +1314,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter server manually" = "Ввести сервер вручную"; "Enter server manually" = "Ввести сервер вручную";
/* No comment provided by engineer. */
"Enter this device name…" = "Введите имя этого устройства…";
/* placeholder */ /* placeholder */
"Enter welcome message…" = "Введите приветственное сообщение…"; "Enter welcome message…" = "Введите приветственное сообщение…";
/* placeholder */ /* placeholder */
"Enter welcome message… (optional)" = "Введите приветственное сообщение... (опционально)"; "Enter welcome message… (optional)" = "Введите приветственное сообщение... (опционально)";
/* No comment provided by engineer. */
"Enter your name…" = "Введите ваше имя…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"error" = "ошибка"; "error" = "ошибка";
@@ -1515,9 +1356,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error creating group link" = "Ошибка при создании ссылки группы"; "Error creating group link" = "Ошибка при создании ссылки группы";
/* No comment provided by engineer. */
"Error creating member contact" = "Ошибка создания контакта с членом группы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error creating profile!" = "Ошибка создания профиля!"; "Error creating profile!" = "Ошибка создания профиля!";
@@ -1596,9 +1434,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error sending email" = "Ошибка отправки email"; "Error sending email" = "Ошибка отправки email";
/* No comment provided by engineer. */
"Error sending member contact invitation" = "Ошибка отправки приглашения члену группы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error sending message" = "Ошибка при отправке сообщения"; "Error sending message" = "Ошибка при отправке сообщения";
@@ -1650,9 +1485,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Exit without saving" = "Выйти без сохранения"; "Exit without saving" = "Выйти без сохранения";
/* chat item action */
"Expand" = "Раскрыть";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Export database" = "Экспорт архива чата"; "Export database" = "Экспорт архива чата";
@@ -1671,9 +1503,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fast and no wait until the sender is online!" = "Быстрые и не нужно ждать, когда отправитель онлайн!"; "Fast and no wait until the sender is online!" = "Быстрые и не нужно ждать, когда отправитель онлайн!";
/* No comment provided by engineer. */
"Faster joining and more reliable messages." = "Быстрое вступление и надежная доставка сообщений.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Favorite" = "Избранный"; "Favorite" = "Избранный";
@@ -1731,9 +1560,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Для консоли"; "For console" = "Для консоли";
/* No comment provided by engineer. */
"Found desktop" = "Компьютер найден";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"French interface" = "Французский интерфейс"; "French interface" = "Французский интерфейс";
@@ -1746,9 +1572,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Full name:" = "Полное имя:"; "Full name:" = "Полное имя:";
/* No comment provided by engineer. */
"Fully decentralized visible only to members." = "Группа полностью децентрализована – она видна только членам.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fully re-implemented - work in background!" = "Полностью обновлены - работают в фоне!"; "Fully re-implemented - work in background!" = "Полностью обновлены - работают в фоне!";
@@ -1761,12 +1584,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group" = "Группа"; "Group" = "Группа";
/* No comment provided by engineer. */
"Group already exists" = "Группа уже существует";
/* No comment provided by engineer. */
"Group already exists!" = "Группа уже существует!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"group deleted" = "группа удалена"; "group deleted" = "группа удалена";
@@ -1938,9 +1755,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Инкогнито"; "Incognito" = "Инкогнито";
/* No comment provided by engineer. */
"Incognito groups" = "Инкогнито группы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito mode" = "Режим Инкогнито"; "Incognito mode" = "Режим Инкогнито";
@@ -1968,9 +1782,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incompatible database version" = "Несовместимая версия базы данных"; "Incompatible database version" = "Несовместимая версия базы данных";
/* No comment provided by engineer. */
"Incompatible version" = "Несовместимая версия";
/* PIN entry */ /* PIN entry */
"Incorrect passcode" = "Неправильный код"; "Incorrect passcode" = "Неправильный код";
@@ -2010,9 +1821,6 @@
/* invalid chat item */ /* invalid chat item */
"invalid data" = "ошибка данных"; "invalid data" = "ошибка данных";
/* No comment provided by engineer. */
"Invalid name!" = "Неверное имя!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid server address!" = "Ошибка в адресе сервера!"; "Invalid server address!" = "Ошибка в адресе сервера!";
@@ -2091,24 +1899,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join group" = "Вступить в группу"; "Join group" = "Вступить в группу";
/* No comment provided by engineer. */
"Join group?" = "Вступить в группу?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Join incognito" = "Вступить инкогнито"; "Join incognito" = "Вступить инкогнито";
/* No comment provided by engineer. */
"Join with current profile" = "Вступить с активным профилем";
/* No comment provided by engineer. */
"Join your group?\nThis is your link for group %@!" = "Вступить в вашу группу?\nЭто ваша ссылка на группу %@!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Joining group" = "Вступление в группу"; "Joining group" = "Вступление в группу";
/* No comment provided by engineer. */
"Keep the app open to use it from desktop" = "Оставьте приложение открытым, чтобы использовать его с компьютера";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Keep your connections" = "Сохраните Ваши соединения"; "Keep your connections" = "Сохраните Ваши соединения";
@@ -2145,15 +1941,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Limitations" = "Ограничения"; "Limitations" = "Ограничения";
/* No comment provided by engineer. */
"Link mobile and desktop apps! 🔗" = "Свяжите мобильное и настольное приложения! 🔗";
/* No comment provided by engineer. */
"Linked desktop options" = "Опции связанных компьютеров";
/* No comment provided by engineer. */
"Linked desktops" = "Связанные компьютеры";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"LIVE" = "LIVE"; "LIVE" = "LIVE";
@@ -2259,9 +2046,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages & files" = "Сообщения"; "Messages & files" = "Сообщения";
/* No comment provided by engineer. */
"Messages from %@ will be shown!" = "Сообщения от %@ будут показаны!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrating database archive…" = "Данные чата перемещаются…"; "Migrating database archive…" = "Данные чата перемещаются…";
@@ -2409,9 +2193,6 @@
/* copied message info in history */ /* copied message info in history */
"no text" = "нет текста"; "no text" = "нет текста";
/* No comment provided by engineer. */
"Not compatible!" = "Несовместимая версия!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Notifications" = "Уведомления"; "Notifications" = "Уведомления";
@@ -2507,18 +2288,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only your contact can send voice messages." = "Только Ваш контакт может отправлять голосовые сообщения."; "Only your contact can send voice messages." = "Только Ваш контакт может отправлять голосовые сообщения.";
/* No comment provided by engineer. */
"Open" = "Открыть";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open chat" = "Открыть чат"; "Open chat" = "Открыть чат";
/* authentication reason */ /* authentication reason */
"Open chat console" = "Открыть консоль"; "Open chat console" = "Открыть консоль";
/* No comment provided by engineer. */
"Open group" = "Открыть группу";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open Settings" = "Открыть Настройки"; "Open Settings" = "Открыть Настройки";
@@ -2555,9 +2330,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste" = "Вставить"; "Paste" = "Вставить";
/* No comment provided by engineer. */
"Paste desktop address" = "Вставить адрес компьютера";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Paste image" = "Вставить изображение"; "Paste image" = "Вставить изображение";
@@ -2654,12 +2426,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Аватар"; "Profile image" = "Аватар";
/* No comment provided by engineer. */
"Profile name" = "Имя профиля";
/* No comment provided by engineer. */
"Profile name:" = "Имя профиля:";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile password" = "Пароль профиля"; "Profile password" = "Пароль профиля";
@@ -2825,12 +2591,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Renegotiate encryption?" = "Пересогласовать шифрование?"; "Renegotiate encryption?" = "Пересогласовать шифрование?";
/* No comment provided by engineer. */
"Repeat connection request?" = "Повторить запрос на соединение?";
/* No comment provided by engineer. */
"Repeat join request?" = "Повторить запрос на вступление?";
/* chat item action */ /* chat item action */
"Reply" = "Ответить"; "Reply" = "Ответить";
@@ -2942,9 +2702,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan QR code" = "Сканировать QR код"; "Scan QR code" = "Сканировать QR код";
/* No comment provided by engineer. */
"Scan QR code from desktop" = "Сканировать QR код с компьютера";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Scan security code from your contact's app." = "Сканируйте код безопасности из приложения контакта."; "Scan security code from your contact's app." = "Сканируйте код безопасности из приложения контакта.";
@@ -2999,15 +2756,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Send delivery receipts to" = "Отправка отчётов о доставке"; "Send delivery receipts to" = "Отправка отчётов о доставке";
/* No comment provided by engineer. */
"send direct message" = "отправьте сообщение";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Send direct message" = "Отправить сообщение"; "Send direct message" = "Отправить сообщение";
/* No comment provided by engineer. */
"Send direct message to connect" = "Отправьте сообщение чтобы соединиться";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Send disappearing message" = "Отправить исчезающее сообщение"; "Send disappearing message" = "Отправить исчезающее сообщение";
@@ -3089,9 +2840,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Servers" = "Серверы"; "Servers" = "Серверы";
/* No comment provided by engineer. */
"Session code" = "Код сессии";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Set 1 day" = "Установить 1 день"; "Set 1 day" = "Установить 1 день";
@@ -3278,9 +3026,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to activate profile." = "Нажмите, чтобы сделать профиль активным."; "Tap to activate profile." = "Нажмите, чтобы сделать профиль активным.";
/* No comment provided by engineer. */
"Tap to Connect" = "Нажмите чтобы соединиться";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to join" = "Нажмите, чтобы вступить"; "Tap to join" = "Нажмите, чтобы вступить";
@@ -3401,21 +3146,12 @@
/* notification title */ /* notification title */
"this contact" = "этот контакт"; "this contact" = "этот контакт";
/* No comment provided by engineer. */
"This device name" = "Имя этого устройства";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group has over %lld members, delivery receipts are not sent." = "В группе более %lld членов, отчёты о доставке выключены."; "This group has over %lld members, delivery receipts are not sent." = "В группе более %lld членов, отчёты о доставке выключены.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This group no longer exists." = "Эта группа больше не существует."; "This group no longer exists." = "Эта группа больше не существует.";
/* No comment provided by engineer. */
"This is your own one-time link!" = "Это ваша собственная одноразовая ссылка!";
/* No comment provided by engineer. */
"This is your own SimpleX address!" = "Это ваш собственный адрес SimpleX!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This setting applies to messages in your current chat profile **%@**." = "Эта настройка применяется к сообщениям в Вашем текущем профиле чата **%@**."; "This setting applies to messages in your current chat profile **%@**." = "Эта настройка применяется к сообщениям в Вашем текущем профиле чата **%@**.";
@@ -3425,9 +3161,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To connect, your contact can scan QR code or use the link in the app." = "Чтобы соединиться с Вами, Ваш контакт может отсканировать QR-код или использовать ссылку в приложении."; "To connect, your contact can scan QR code or use the link in the app." = "Чтобы соединиться с Вами, Ваш контакт может отсканировать QR-код или использовать ссылку в приложении.";
/* No comment provided by engineer. */
"To hide unwanted messages." = "Чтобы скрыть нежелательные сообщения.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To make a new connection" = "Чтобы соединиться"; "To make a new connection" = "Чтобы соединиться";
@@ -3476,15 +3209,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unable to record voice message" = "Невозможно записать голосовое сообщение"; "Unable to record voice message" = "Невозможно записать голосовое сообщение";
/* No comment provided by engineer. */
"Unblock" = "Разблокировать";
/* No comment provided by engineer. */
"Unblock member" = "Разблокировать члена группы";
/* No comment provided by engineer. */
"Unblock member?" = "Разблокировать члена группы?";
/* item status description */ /* item status description */
"Unexpected error: %@" = "Неожиданная ошибка: %@"; "Unexpected error: %@" = "Неожиданная ошибка: %@";
@@ -3524,12 +3248,6 @@
/* No comment provided by engineer. */ /* 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." = "Возможно, Ваш контакт удалил ссылку, или она уже была использована. Если это не так, то это может быть ошибкой - пожалуйста, сообщите нам об этом.\nЧтобы установить соединение, попросите Ваш контакт создать еще одну ссылку и проверьте Ваше соединение с сетью."; "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." = "Возможно, Ваш контакт удалил ссылку, или она уже была использована. Если это не так, то это может быть ошибкой - пожалуйста, сообщите нам об этом.\nЧтобы установить соединение, попросите Ваш контакт создать еще одну ссылку и проверьте Ваше соединение с сетью.";
/* No comment provided by engineer. */
"Unlink" = "Забыть";
/* No comment provided by engineer. */
"Unlink desktop?" = "Забыть компьютер?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unlock" = "Разблокировать"; "Unlock" = "Разблокировать";
@@ -3584,9 +3302,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Использовать для новых соединений"; "Use for new connections" = "Использовать для новых соединений";
/* No comment provided by engineer. */
"Use from desktop" = "Использовать с компьютера";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use iOS call interface" = "Использовать интерфейс iOS для звонков"; "Use iOS call interface" = "Использовать интерфейс iOS для звонков";
@@ -3608,24 +3323,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Using SimpleX Chat servers." = "Используются серверы, предоставленные SimpleX Chat."; "Using SimpleX Chat servers." = "Используются серверы, предоставленные SimpleX Chat.";
/* No comment provided by engineer. */
"v%@" = "v%@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"v%@ (%@)" = "v%@ (%@)"; "v%@ (%@)" = "v%@ (%@)";
/* No comment provided by engineer. */
"Verify code with desktop" = "Сверьте код с компьютером";
/* No comment provided by engineer. */
"Verify connection" = "Проверить соединение";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify connection security" = "Проверить безопасность соединения"; "Verify connection security" = "Проверить безопасность соединения";
/* No comment provided by engineer. */
"Verify connections" = "Проверять соединения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Verify security code" = "Подтвердить код безопасности"; "Verify security code" = "Подтвердить код безопасности";
@@ -3644,9 +3347,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"via relay" = "через relay сервер"; "via relay" = "через relay сервер";
/* No comment provided by engineer. */
"Via secure quantum resistant protocol." = "Через безопасный квантово-устойчивый протокол.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video call" = "Видеозвонок"; "Video call" = "Видеозвонок";
@@ -3686,9 +3386,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"waiting for confirmation…" = "ожидается подтверждение…"; "waiting for confirmation…" = "ожидается подтверждение…";
/* No comment provided by engineer. */
"Waiting for desktop..." = "Ожидается подключение компьютера...";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Waiting for file" = "Ожидается прием файла"; "Waiting for file" = "Ожидается прием файла";
@@ -3758,27 +3455,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connected to %@." = "Вы уже соединены с контактом %@."; "You are already connected to %@." = "Вы уже соединены с контактом %@.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Вы уже соединяетесь с %@.";
/* No comment provided by engineer. */
"You are already connecting via this one-time link!" = "Вы уже соединяетесь по этой одноразовой ссылке!";
/* No comment provided by engineer. */
"You are already in group %@." = "Вы уже состоите в группе %@.";
/* No comment provided by engineer. */
"You are already joining the group %@." = "Вы уже вступаете в группу %@.";
/* No comment provided by engineer. */
"You are already joining the group via this link!" = "Вы уже вступаете в группу по этой ссылке!";
/* No comment provided by engineer. */
"You are already joining the group via this link." = "Вы уже вступаете в группу по этой ссылке.";
/* No comment provided by engineer. */
"You are already joining the group!\nRepeat join request?" = "Вы уже вступаете в группу!\nПовторить запрос на вступление?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are connected to the server used to receive messages from this contact." = "Установлено соединение с сервером, через который Вы получаете сообщения от этого контакта."; "You are connected to the server used to receive messages from this contact." = "Установлено соединение с сервером, через который Вы получаете сообщения от этого контакта.";
@@ -3854,12 +3530,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You could not be verified; please try again." = "Верификация не удалась; пожалуйста, попробуйте ещё раз."; "You could not be verified; please try again." = "Верификация не удалась; пожалуйста, попробуйте ещё раз.";
/* No comment provided by engineer. */
"You have already requested connection via this address!" = "Вы уже запросили соединение через этот адрес!";
/* No comment provided by engineer. */
"You have already requested connection!\nRepeat connection request?" = "Вы уже запросили соединение!\nПовторить запрос?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You have no chats" = "У Вас нет чатов"; "You have no chats" = "У Вас нет чатов";
@@ -3902,9 +3572,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected to group when the group host's device is online, please wait or check later!" = "Соединение с группой будет установлено, когда хост группы будет онлайн. Пожалуйста, подождите или проверьте позже!"; "You will be connected to group when the group host's device is online, please wait or check later!" = "Соединение с группой будет установлено, когда хост группы будет онлайн. Пожалуйста, подождите или проверьте позже!";
/* No comment provided by engineer. */
"You will be connected when group link host's device is online, please wait or check later!" = "Соединение будет установлено, когда владелец ссылки группы будет онлайн. Пожалуйста, подождите или проверьте позже!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected when your connection request is accepted, please wait or check later!" = "Соединение будет установлено, когда Ваш запрос будет принят. Пожалуйста, подождите или проверьте позже!"; "You will be connected when your connection request is accepted, please wait or check later!" = "Соединение будет установлено, когда Ваш запрос будет принят. Пожалуйста, подождите или проверьте позже!";
@@ -3914,9 +3581,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Вы будете аутентифицированы при запуске и возобновлении приложения, которое было 30 секунд в фоновом режиме."; "You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Вы будете аутентифицированы при запуске и возобновлении приложения, которое было 30 секунд в фоновом режиме.";
/* No comment provided by engineer. */
"You will connect to all group members." = "Вы соединитесь со всеми членами группы.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Вы все равно получите звонки и уведомления в профилях без звука, когда они активные."; "You will still receive calls and notifications from muted profiles when they are active." = "Вы все равно получите звонки и уведомления в профилях без звука, когда они активные.";
@@ -3980,9 +3644,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your privacy" = "Конфиденциальность"; "Your privacy" = "Конфиденциальность";
/* No comment provided by engineer. */
"Your profile" = "Ваш профиль";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your profile **%@** will be shared." = "Будет отправлен Ваш профиль **%@**."; "Your profile **%@** will be shared." = "Будет отправлен Ваш профиль **%@**.";
@@ -7,9 +7,6 @@
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "SimpleX использует Face ID для аутентификации"; "NSFaceIDUsageDescription" = "SimpleX использует Face ID для аутентификации";
/* Privacy - Local Network Usage Description */
"NSLocalNetworkUsageDescription" = "SimpleX использует доступ к локальной сети, чтобы разрешить использование профиля чата через компьютер в той же сети.";
/* Privacy - Microphone Usage Description */ /* Privacy - Microphone Usage Description */
"NSMicrophoneUsageDescription" = "SimpleX использует микрофон для аудио и видео звонков, и для записи голосовых сообщений."; "NSMicrophoneUsageDescription" = "SimpleX использует микрофон для аудио и видео звонков, и для записи голосовых сообщений.";
@@ -15,6 +15,7 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" /> tools:ignore="ScopedStorage" />
@@ -126,7 +126,7 @@ fun processIntent(intent: Intent?) {
when (intent?.action) { when (intent?.action) {
"android.intent.action.VIEW" -> { "android.intent.action.VIEW" -> {
val uri = intent.data val uri = intent.data
if (uri != null) connectIfOpenedViaUri(chatModel.remoteHostId(), uri.toURI(), ChatModel) if (uri != null) connectIfOpenedViaUri(uri.toURI(), ChatModel)
} }
} }
} }
@@ -57,7 +57,7 @@ class SimplexApp: Application(), LifecycleEventObserver {
updatingChatsMutex.withLock { updatingChatsMutex.withLock {
kotlin.runCatching { kotlin.runCatching {
val currentUserId = chatModel.currentUser.value?.userId val currentUserId = chatModel.currentUser.value?.userId
val chats = ArrayList(chatController.apiGetChats(chatModel.remoteHostId())) val chats = ArrayList(chatController.apiGetChats())
/** Active user can be changed in background while [ChatController.apiGetChats] is executing */ /** Active user can be changed in background while [ChatController.apiGetChats] is executing */
if (chatModel.currentUser.value?.userId == currentUserId) { if (chatModel.currentUser.value?.userId == currentUserId) {
val currentChatId = chatModel.chatId.value val currentChatId = chatModel.chatId.value
@@ -231,7 +231,6 @@ fun PreviewIncomingCallLockScreenAlert() {
) { ) {
IncomingCallLockScreenAlertLayout( IncomingCallLockScreenAlertLayout(
invitation = RcvCallInvitation( invitation = RcvCallInvitation(
remoteHostId = null,
user = User.sampleData, user = User.sampleData,
contact = Contact.sampleData, contact = Contact.sampleData,
callType = CallType(media = CallMediaType.Audio, capabilities = CallCapabilities(encryption = false)), callType = CallType(media = CallMediaType.Audio, capabilities = CallCapabilities(encryption = false)),
@@ -16,8 +16,6 @@ import kotlin.random.Random
actual val appPlatform = AppPlatform.ANDROID actual val appPlatform = AppPlatform.ANDROID
actual val deviceName = android.os.Build.MODEL
var isAppOnForeground: Boolean = false var isAppOnForeground: Boolean = false
@Suppress("ConstantLocale") @Suppress("ConstantLocale")
@@ -23,8 +23,6 @@ actual val agentDatabaseFileName: String = "files_agent.db"
actual val databaseExportDir: File = androidAppContext.cacheDir actual val databaseExportDir: File = androidAppContext.cacheDir
actual val remoteHostsDir: File = File(tmpDir.absolutePath + File.separator + "remote_hosts")
actual fun desktopOpenDatabaseDir() {} actual fun desktopOpenDatabaseDir() {}
@Composable @Composable
@@ -4,7 +4,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.painter.Painter
import com.google.accompanist.insets.navigationBarsWithImePadding import com.google.accompanist.insets.navigationBarsWithImePadding
import java.io.File
actual fun Modifier.navigationBarsWithImePadding(): Modifier = navigationBarsWithImePadding() actual fun Modifier.navigationBarsWithImePadding(): Modifier = navigationBarsWithImePadding()
@@ -20,7 +19,7 @@ actual fun ProvideWindowInsets(
@Composable @Composable
actual fun Modifier.desktopOnExternalDrag( actual fun Modifier.desktopOnExternalDrag(
enabled: Boolean, enabled: Boolean,
onFiles: (List<File>) -> Unit, onFiles: (List<String>) -> Unit,
onImage: (Painter) -> Unit, onImage: (Painter) -> Unit,
onText: (String) -> Unit onText: (String) -> Unit
): Modifier = this ): Modifier = this
@@ -38,7 +38,7 @@ actual class RecorderNative: RecorderInterface {
rec.setAudioSamplingRate(16000) rec.setAudioSamplingRate(16000)
rec.setAudioEncodingBitRate(32000) rec.setAudioEncodingBitRate(32000)
rec.setMaxDuration(MAX_VOICE_MILLIS_FOR_SENDING) rec.setMaxDuration(MAX_VOICE_MILLIS_FOR_SENDING)
val fileToSave = File.createTempFile(generateNewFileName("voice", "${RecorderInterface.extension}_", tmpDir), ".tmp", tmpDir) val fileToSave = File.createTempFile(generateNewFileName("voice", "${RecorderInterface.extension}_"), ".tmp", tmpDir)
fileToSave.deleteOnExit() fileToSave.deleteOnExit()
val path = fileToSave.absolutePath val path = fileToSave.absolutePath
filePath = path filePath = path
@@ -8,12 +8,15 @@ import android.provider.MediaStore
import android.webkit.MimeTypeMap import android.webkit.MimeTypeMap
import androidx.compose.ui.platform.ClipboardManager import androidx.compose.ui.platform.ClipboardManager
import androidx.compose.ui.platform.UriHandler import androidx.compose.ui.platform.UriHandler
import androidx.core.content.FileProvider
import androidx.core.net.toUri
import chat.simplex.common.helpers.* import chat.simplex.common.helpers.*
import chat.simplex.common.model.* import chat.simplex.common.model.*
import chat.simplex.common.views.helpers.* import chat.simplex.common.views.helpers.*
import java.io.BufferedOutputStream import java.io.BufferedOutputStream
import java.io.File import java.io.File
import chat.simplex.res.MR import chat.simplex.res.MR
import java.io.ByteArrayOutputStream
actual fun ClipboardManager.shareText(text: String) { actual fun ClipboardManager.shareText(text: String) {
val sendIntent: Intent = Intent().apply { val sendIntent: Intent = Intent().apply {
@@ -71,7 +71,7 @@ actual class VideoPlayer actual constructor(
private fun start(seek: Long? = null, onProgressUpdate: (position: Long?, state: TrackState) -> Unit): Boolean { private fun start(seek: Long? = null, onProgressUpdate: (position: Long?, state: TrackState) -> Unit): Boolean {
val filepath = getAppFilePath(uri) val filepath = getAppFilePath(uri)
if (filepath == null || !File(filepath).exists()) { if (filepath == null || !File(filepath).exists()) {
Log.e(TAG, "No such file: $filepath") Log.e(TAG, "No such file: $uri")
brokenVideo.value = true brokenVideo.value = true
return false return false
} }
@@ -115,23 +115,22 @@ actual fun ActiveCallView() {
val call = chatModel.activeCall.value val call = chatModel.activeCall.value
if (call != null) { if (call != null) {
Log.d(TAG, "has active call $call") Log.d(TAG, "has active call $call")
val callRh = call.remoteHostId
when (val r = apiMsg.resp) { when (val r = apiMsg.resp) {
is WCallResponse.Capabilities -> withBGApi { is WCallResponse.Capabilities -> withBGApi {
val callType = CallType(call.localMedia, r.capabilities) val callType = CallType(call.localMedia, r.capabilities)
chatModel.controller.apiSendCallInvitation(callRh, call.contact, callType) chatModel.controller.apiSendCallInvitation(call.contact, callType)
chatModel.activeCall.value = call.copy(callState = CallState.InvitationSent, localCapabilities = r.capabilities) chatModel.activeCall.value = call.copy(callState = CallState.InvitationSent, localCapabilities = r.capabilities)
} }
is WCallResponse.Offer -> withBGApi { is WCallResponse.Offer -> withBGApi {
chatModel.controller.apiSendCallOffer(callRh, call.contact, r.offer, r.iceCandidates, call.localMedia, r.capabilities) chatModel.controller.apiSendCallOffer(call.contact, r.offer, r.iceCandidates, call.localMedia, r.capabilities)
chatModel.activeCall.value = call.copy(callState = CallState.OfferSent, localCapabilities = r.capabilities) chatModel.activeCall.value = call.copy(callState = CallState.OfferSent, localCapabilities = r.capabilities)
} }
is WCallResponse.Answer -> withBGApi { is WCallResponse.Answer -> withBGApi {
chatModel.controller.apiSendCallAnswer(callRh, call.contact, r.answer, r.iceCandidates) chatModel.controller.apiSendCallAnswer(call.contact, r.answer, r.iceCandidates)
chatModel.activeCall.value = call.copy(callState = CallState.Negotiated) chatModel.activeCall.value = call.copy(callState = CallState.Negotiated)
} }
is WCallResponse.Ice -> withBGApi { is WCallResponse.Ice -> withBGApi {
chatModel.controller.apiSendCallExtraInfo(callRh, call.contact, r.iceCandidates) chatModel.controller.apiSendCallExtraInfo(call.contact, r.iceCandidates)
} }
is WCallResponse.Connection -> is WCallResponse.Connection ->
try { try {
@@ -140,7 +139,7 @@ actual fun ActiveCallView() {
chatModel.activeCall.value = call.copy(callState = CallState.Connected, connectedAt = Clock.System.now()) chatModel.activeCall.value = call.copy(callState = CallState.Connected, connectedAt = Clock.System.now())
setCallSound(call.soundSpeaker, audioViaBluetooth) setCallSound(call.soundSpeaker, audioViaBluetooth)
} }
withBGApi { chatModel.controller.apiCallStatus(callRh, call.contact, callStatus) } withBGApi { chatModel.controller.apiCallStatus(call.contact, callStatus) }
} catch (e: Error) { } catch (e: Error) {
Log.d(TAG,"call status ${r.state.connectionState} not used") Log.d(TAG,"call status ${r.state.connectionState} not used")
} }
@@ -579,7 +578,6 @@ fun PreviewActiveCallOverlayVideo() {
SimpleXTheme { SimpleXTheme {
ActiveCallOverlayLayout( ActiveCallOverlayLayout(
call = Call( call = Call(
remoteHostId = null,
contact = Contact.sampleData, contact = Contact.sampleData,
callState = CallState.Negotiated, callState = CallState.Negotiated,
localMedia = CallMediaType.Video, localMedia = CallMediaType.Video,
@@ -605,7 +603,6 @@ fun PreviewActiveCallOverlayAudio() {
SimpleXTheme { SimpleXTheme {
ActiveCallOverlayLayout( ActiveCallOverlayLayout(
call = Call( call = Call(
remoteHostId = null,
contact = Contact.sampleData, contact = Contact.sampleData,
callState = CallState.Negotiated, callState = CallState.Negotiated,
localMedia = CallMediaType.Audio, localMedia = CallMediaType.Audio,
@@ -0,0 +1,16 @@
package chat.simplex.common.views.chat
import android.Manifest
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import chat.simplex.common.views.chat.ScanCodeLayout
import com.google.accompanist.permissions.rememberPermissionState
@Composable
actual fun ScanCodeView(verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit, close: () -> Unit) {
val cameraPermissionState = rememberPermissionState(permission = Manifest.permission.CAMERA)
LaunchedEffect(Unit) {
cameraPermissionState.launchPermissionRequest()
}
ScanCodeLayout(verifyCode, close)
}
@@ -167,7 +167,7 @@ actual fun getAppFileUri(fileName: String): URI =
FileProvider.getUriForFile(androidAppContext, "$APPLICATION_ID.provider", if (File(fileName).isAbsolute) File(fileName) else File(getAppFilePath(fileName))).toURI() FileProvider.getUriForFile(androidAppContext, "$APPLICATION_ID.provider", if (File(fileName).isAbsolute) File(fileName) else File(getAppFilePath(fileName))).toURI()
// https://developer.android.com/training/data-storage/shared/documents-files#bitmap // https://developer.android.com/training/data-storage/shared/documents-files#bitmap
actual suspend fun getLoadedImage(file: CIFile?): Pair<ImageBitmap, ByteArray>? { actual fun getLoadedImage(file: CIFile?): Pair<ImageBitmap, ByteArray>? {
val filePath = getLoadedFilePath(file) val filePath = getLoadedFilePath(file)
return if (filePath != null && file != null) { return if (filePath != null && file != null) {
try { try {
@@ -295,7 +295,7 @@ actual suspend fun saveTempImageUncompressed(image: ImageBitmap, asPng: Boolean)
return try { return try {
val ext = if (asPng) "png" else "jpg" val ext = if (asPng) "png" else "jpg"
tmpDir.mkdir() tmpDir.mkdir()
return File(tmpDir.absolutePath + File.separator + generateNewFileName("IMG", ext, tmpDir)).apply { return File(tmpDir.absolutePath + File.separator + generateNewFileName("IMG", ext)).apply {
outputStream().use { out -> outputStream().use { out ->
image.asAndroidBitmap().compress(if (asPng) Bitmap.CompressFormat.PNG else Bitmap.CompressFormat.JPEG, 85, out) image.asAndroidBitmap().compress(if (asPng) Bitmap.CompressFormat.PNG else Bitmap.CompressFormat.JPEG, 85, out)
out.flush() out.flush()
@@ -9,12 +9,10 @@ import dev.icerock.moko.resources.compose.painterResource
import dev.icerock.moko.resources.compose.stringResource import dev.icerock.moko.resources.compose.stringResource
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import chat.simplex.common.model.ChatModel import chat.simplex.common.model.ChatModel
import chat.simplex.common.model.RemoteHostInfo
import chat.simplex.res.MR import chat.simplex.res.MR
@Composable @Composable
actual fun ConnectViaLinkView(m: ChatModel, rh: RemoteHostInfo?, close: () -> Unit) { actual fun ConnectViaLinkView(m: ChatModel, close: () -> Unit) {
// TODO this should close if remote host changes in model
val selection = remember { val selection = remember {
mutableStateOf( mutableStateOf(
runCatching { ConnectViaLinkTab.valueOf(m.controller.appPrefs.connectViaLinkTab.get()!!) }.getOrDefault(ConnectViaLinkTab.SCAN) runCatching { ConnectViaLinkTab.valueOf(m.controller.appPrefs.connectViaLinkTab.get()!!) }.getOrDefault(ConnectViaLinkTab.SCAN)
@@ -33,10 +31,10 @@ actual fun ConnectViaLinkView(m: ChatModel, rh: RemoteHostInfo?, close: () -> Un
Column(Modifier.weight(1f)) { Column(Modifier.weight(1f)) {
when (selection.value) { when (selection.value) {
ConnectViaLinkTab.SCAN -> { ConnectViaLinkTab.SCAN -> {
ScanToConnectView(m, rh, close) ScanToConnectView(m, close)
} }
ConnectViaLinkTab.PASTE -> { ConnectViaLinkTab.PASTE -> {
PasteToConnectView(m, rh, close) PasteToConnectView(m, close)
} }
} }
} }
@@ -1,6 +1,5 @@
package chat.simplex.common.views.newchat package chat.simplex.common.views.newchat
import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.util.Log import android.util.Log
import android.view.ViewGroup import android.view.ViewGroup
@@ -20,7 +19,6 @@ import boofcv.android.ConvertCameraImage
import boofcv.factory.fiducial.FactoryFiducial import boofcv.factory.fiducial.FactoryFiducial
import boofcv.struct.image.GrayU8 import boofcv.struct.image.GrayU8
import chat.simplex.common.platform.TAG import chat.simplex.common.platform.TAG
import com.google.accompanist.permissions.rememberPermissionState
import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ListenableFuture
import java.util.concurrent.* import java.util.concurrent.*
@@ -28,10 +26,6 @@ import java.util.concurrent.*
@Composable @Composable
actual fun QRCodeScanner(onBarcode: (String) -> Unit) { actual fun QRCodeScanner(onBarcode: (String) -> Unit) {
val cameraPermissionState = rememberPermissionState(permission = Manifest.permission.CAMERA)
LaunchedEffect(Unit) {
cameraPermissionState.launchPermissionRequest()
}
val context = LocalContext.current val context = LocalContext.current
val lifecycleOwner = LocalLifecycleOwner.current val lifecycleOwner = LocalLifecycleOwner.current
var preview by remember { mutableStateOf<Preview?>(null) } var preview by remember { mutableStateOf<Preview?>(null) }
@@ -4,18 +4,16 @@ import android.Manifest
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import chat.simplex.common.model.ChatModel import chat.simplex.common.model.ChatModel
import chat.simplex.common.model.RemoteHostInfo
import com.google.accompanist.permissions.rememberPermissionState import com.google.accompanist.permissions.rememberPermissionState
@Composable @Composable
actual fun ScanToConnectView(chatModel: ChatModel, rh: RemoteHostInfo?, close: () -> Unit) { actual fun ScanToConnectView(chatModel: ChatModel, close: () -> Unit) {
val cameraPermissionState = rememberPermissionState(permission = Manifest.permission.CAMERA) val cameraPermissionState = rememberPermissionState(permission = Manifest.permission.CAMERA)
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
cameraPermissionState.launchPermissionRequest() cameraPermissionState.launchPermissionRequest()
} }
ConnectContactLayout( ConnectContactLayout(
chatModel = chatModel, chatModel = chatModel,
rh = rh,
incognitoPref = chatModel.controller.appPrefs.incognito, incognitoPref = chatModel.controller.appPrefs.incognito,
close = close close = close
) )
@@ -7,10 +7,10 @@ import chat.simplex.common.model.ServerCfg
import com.google.accompanist.permissions.rememberPermissionState import com.google.accompanist.permissions.rememberPermissionState
@Composable @Composable
actual fun ScanProtocolServer(rhId: Long?, onNext: (ServerCfg) -> Unit) { actual fun ScanProtocolServer(onNext: (ServerCfg) -> Unit) {
val cameraPermissionState = rememberPermissionState(permission = Manifest.permission.CAMERA) val cameraPermissionState = rememberPermissionState(permission = Manifest.permission.CAMERA)
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
cameraPermissionState.launchPermissionRequest() cameraPermissionState.launchPermissionRequest()
} }
ScanProtocolServerLayout(rhId, onNext) ScanProtocolServerLayout(onNext)
} }
@@ -5,7 +5,7 @@
//#include <android/log.h> //#include <android/log.h>
// from the RTS // from the RTS
void hs_init_with_rtsopts(int * argc, char **argv[]); void hs_init(int * argc, char **argv[]);
// from android-support // from android-support
void setLineBuffering(void); void setLineBuffering(void);
@@ -32,33 +32,15 @@ Java_chat_simplex_common_platform_CoreKt_pipeStdOutToSocket(JNIEnv *env, __unuse
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_chat_simplex_common_platform_CoreKt_initHS(__unused JNIEnv *env, __unused jclass clazz) { Java_chat_simplex_common_platform_CoreKt_initHS(__unused JNIEnv *env, __unused jclass clazz) {
int argc = 5; hs_init(NULL, NULL);
char *argv[] = {
"simplex",
"+RTS", // requires `hs_init_with_rtsopts`
"-A16m", // chunk size for new allocations
"-H64m", // initial heap size
"-xn", // non-moving GC
NULL
};
char **pargv = argv;
hs_init_with_rtsopts(&argc, &pargv);
setLineBuffering(); setLineBuffering();
} }
// from simplex-chat // from simplex-chat
typedef long* chat_ctrl; typedef long* chat_ctrl;
/*
When you start using any new function from Haskell libraries,
you have to add the function name to the file libsimplex.dll.def in the root directory.
And do the same by adding it into flake.nix file in the root directory,
Otherwise, Windows and Android libraries cannot be built.
*/
extern char *chat_migrate_init(const char *path, const char *key, const char *confirm, chat_ctrl *ctrl); extern char *chat_migrate_init(const char *path, const char *key, const char *confirm, chat_ctrl *ctrl);
extern char *chat_send_cmd(chat_ctrl ctrl, const char *cmd); extern char *chat_send_cmd(chat_ctrl ctrl, const char *cmd);
extern char *chat_send_remote_cmd(chat_ctrl ctrl, const int rhId, const char *cmd);
extern char *chat_recv_msg(chat_ctrl ctrl); // deprecated extern char *chat_recv_msg(chat_ctrl ctrl); // deprecated
extern char *chat_recv_msg_wait(chat_ctrl ctrl, const int wait); extern char *chat_recv_msg_wait(chat_ctrl ctrl, const int wait);
extern char *chat_parse_markdown(const char *str); extern char *chat_parse_markdown(const char *str);
@@ -104,14 +86,6 @@ Java_chat_simplex_common_platform_CoreKt_chatSendCmd(JNIEnv *env, __unused jclas
return res; return res;
} }
JNIEXPORT jstring JNICALL
Java_chat_simplex_common_platform_CoreKt_chatSendRemoteCmd(JNIEnv *env, __unused jclass clazz, jlong controller, jint rhId, jstring msg) {
const char *_msg = (*env)->GetStringUTFChars(env, msg, JNI_FALSE);
jstring res = (*env)->NewStringUTF(env, chat_send_remote_cmd((void*)controller, rhId, _msg));
(*env)->ReleaseStringUTFChars(env, msg, _msg);
return res;
}
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_chat_simplex_common_platform_CoreKt_chatRecvMsg(JNIEnv *env, __unused jclass clazz, jlong controller) { Java_chat_simplex_common_platform_CoreKt_chatRecvMsg(JNIEnv *env, __unused jclass clazz, jlong controller) {
return (*env)->NewStringUTF(env, chat_recv_msg((void*)controller)); return (*env)->NewStringUTF(env, chat_recv_msg((void*)controller));
@@ -4,34 +4,18 @@
#include <stdint.h> #include <stdint.h>
// from the RTS // from the RTS
void hs_init_with_rtsopts(int * argc, char **argv[]); void hs_init(int * argc, char **argv[]);
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_chat_simplex_common_platform_CoreKt_initHS(JNIEnv *env, jclass clazz) { Java_chat_simplex_common_platform_CoreKt_initHS(JNIEnv *env, jclass clazz) {
#ifdef _WIN32 hs_init(NULL, NULL);
int argc = 4;
char *argv[] = {"simplex", "+RTS", "-A16m", "-H64m", NULL}; // non-moving GC is broken on windows with GHC 9.4-9.6.3
#else
int argc = 5;
char *argv[] = {"simplex", "+RTS", "-A16m", "-H64m", "-xn", NULL}; // see android/simplex-api.c for details
#endif
char **pargv = argv;
hs_init_with_rtsopts(&argc, &pargv);
} }
// from simplex-chat // from simplex-chat
typedef long* chat_ctrl; typedef long* chat_ctrl;
/*
When you start using any new function from Haskell libraries,
you have to add the function name to the file libsimplex.dll.def in the root directory.
And do the same by adding it into flake.nix file in the root directory,
Otherwise, Windows and Android libraries cannot be built.
*/
extern char *chat_migrate_init(const char *path, const char *key, const char *confirm, chat_ctrl *ctrl); extern char *chat_migrate_init(const char *path, const char *key, const char *confirm, chat_ctrl *ctrl);
extern char *chat_send_cmd(chat_ctrl ctrl, const char *cmd); extern char *chat_send_cmd(chat_ctrl ctrl, const char *cmd);
extern char *chat_send_remote_cmd(chat_ctrl ctrl, const int rhId, const char *cmd);
extern char *chat_recv_msg(chat_ctrl ctrl); // deprecated extern char *chat_recv_msg(chat_ctrl ctrl); // deprecated
extern char *chat_recv_msg_wait(chat_ctrl ctrl, const int wait); extern char *chat_recv_msg_wait(chat_ctrl ctrl, const int wait);
extern char *chat_parse_markdown(const char *str); extern char *chat_parse_markdown(const char *str);
@@ -114,14 +98,6 @@ Java_chat_simplex_common_platform_CoreKt_chatSendCmd(JNIEnv *env, jclass clazz,
return res; return res;
} }
JNIEXPORT jstring JNICALL
Java_chat_simplex_common_platform_CoreKt_chatSendRemoteCmd(JNIEnv *env, jclass clazz, jlong controller, jint rhId, jstring msg) {
const char *_msg = encode_to_utf8_chars(env, msg);
jstring res = decode_to_utf8_string(env, chat_send_remote_cmd((void*)controller, rhId, _msg));
(*env)->ReleaseStringUTFChars(env, msg, _msg);
return res;
}
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_chat_simplex_common_platform_CoreKt_chatRecvMsg(JNIEnv *env, jclass clazz, jlong controller) { Java_chat_simplex_common_platform_CoreKt_chatRecvMsg(JNIEnv *env, jclass clazz, jlong controller) {
return decode_to_utf8_string(env, chat_recv_msg((void*)controller)); return decode_to_utf8_string(env, chat_recv_msg((void*)controller));
@@ -38,7 +38,7 @@ import kotlinx.coroutines.flow.*
data class SettingsViewState( data class SettingsViewState(
val userPickerState: MutableStateFlow<AnimatedViewState>, val userPickerState: MutableStateFlow<AnimatedViewState>,
val scaffoldState: ScaffoldState, val scaffoldState: ScaffoldState,
val switchingUsersAndHosts: MutableState<Boolean> val switchingUsers: MutableState<Boolean>
) )
@Composable @Composable
@@ -65,7 +65,7 @@ fun MainScreen() {
!chatModel.controller.appPrefs.laNoticeShown.get() !chatModel.controller.appPrefs.laNoticeShown.get()
&& showAdvertiseLAAlert && showAdvertiseLAAlert
&& chatModel.controller.appPrefs.onboardingStage.get() == OnboardingStage.OnboardingComplete && chatModel.controller.appPrefs.onboardingStage.get() == OnboardingStage.OnboardingComplete
&& chatModel.chats.count() > 1 && chatModel.chats.isNotEmpty()
&& chatModel.activeCallInvitation.value == null && chatModel.activeCallInvitation.value == null
) { ) {
AppLock.showLANotice(ChatModel.controller.appPrefs.laNoticeShown) } AppLock.showLANotice(ChatModel.controller.appPrefs.laNoticeShown) }
@@ -121,8 +121,8 @@ fun MainScreen() {
showAdvertiseLAAlert = true showAdvertiseLAAlert = true
val userPickerState by rememberSaveable(stateSaver = AnimatedViewState.saver()) { mutableStateOf(MutableStateFlow(AnimatedViewState.GONE)) } val userPickerState by rememberSaveable(stateSaver = AnimatedViewState.saver()) { mutableStateOf(MutableStateFlow(AnimatedViewState.GONE)) }
val scaffoldState = rememberScaffoldState() val scaffoldState = rememberScaffoldState()
val switchingUsersAndHosts = rememberSaveable { mutableStateOf(false) } val switchingUsers = rememberSaveable { mutableStateOf(false) }
val settingsState = remember { SettingsViewState(userPickerState, scaffoldState, switchingUsersAndHosts) } val settingsState = remember { SettingsViewState(userPickerState, scaffoldState, switchingUsers) }
if (appPlatform.isAndroid) { if (appPlatform.isAndroid) {
AndroidScreen(settingsState) AndroidScreen(settingsState)
} else { } else {
@@ -138,7 +138,7 @@ fun MainScreen() {
} }
onboarding == OnboardingStage.Step2_CreateProfile -> CreateFirstProfile(chatModel) {} onboarding == OnboardingStage.Step2_CreateProfile -> CreateFirstProfile(chatModel) {}
onboarding == OnboardingStage.Step2_5_SetupDatabasePassphrase -> SetupDatabasePassphrase(chatModel) onboarding == OnboardingStage.Step2_5_SetupDatabasePassphrase -> SetupDatabasePassphrase(chatModel)
onboarding == OnboardingStage.Step3_CreateSimpleXAddress -> CreateSimpleXAddress(chatModel, null) onboarding == OnboardingStage.Step3_CreateSimpleXAddress -> CreateSimpleXAddress(chatModel)
onboarding == OnboardingStage.Step4_SetNotificationsMode -> SetNotificationsMode(chatModel) onboarding == OnboardingStage.Step4_SetNotificationsMode -> SetNotificationsMode(chatModel)
} }
if (appPlatform.isAndroid) { if (appPlatform.isAndroid) {
@@ -298,7 +298,7 @@ fun DesktopScreen(settingsState: SettingsViewState) {
EndPartOfScreen() EndPartOfScreen()
} }
} }
val (userPickerState, scaffoldState, switchingUsersAndHosts ) = settingsState val (userPickerState, scaffoldState, switchingUsers ) = settingsState
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
if (scaffoldState.drawerState.isOpen) { if (scaffoldState.drawerState.isOpen) {
Box( Box(
@@ -312,9 +312,8 @@ fun DesktopScreen(settingsState: SettingsViewState) {
) )
} }
VerticalDivider(Modifier.padding(start = DEFAULT_START_MODAL_WIDTH)) VerticalDivider(Modifier.padding(start = DEFAULT_START_MODAL_WIDTH))
UserPicker(chatModel, userPickerState, switchingUsersAndHosts) { UserPicker(chatModel, userPickerState, switchingUsers) {
scope.launch { if (scaffoldState.drawerState.isOpen) scaffoldState.drawerState.close() else scaffoldState.drawerState.open() } scope.launch { if (scaffoldState.drawerState.isOpen) scaffoldState.drawerState.close() else scaffoldState.drawerState.open() }
userPickerState.value = AnimatedViewState.GONE
} }
ModalManager.fullscreen.showInView() ModalManager.fullscreen.showInView()
} }
@@ -1,9 +1,7 @@
package chat.simplex.common.model package chat.simplex.common.model
import androidx.compose.material.* import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.runtime.snapshots.SnapshotStateList
import androidx.compose.runtime.snapshots.SnapshotStateMap
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.font.* import androidx.compose.ui.text.font.*
@@ -108,14 +106,6 @@ object ChatModel {
var updatingChatsMutex: Mutex = Mutex() var updatingChatsMutex: Mutex = Mutex()
// remote controller
val remoteHosts = mutableStateListOf<RemoteHostInfo>()
val currentRemoteHost = mutableStateOf<RemoteHostInfo?>(null)
val remoteHostId: Long? @Composable get() = remember { currentRemoteHost }.value?.remoteHostId
fun remoteHostId(): Long? = currentRemoteHost.value?.remoteHostId
val remoteHostPairing = mutableStateOf<Pair<RemoteHostInfo?, RemoteHostSessionState>?>(null)
val remoteCtrlSession = mutableStateOf<RemoteCtrlSession?>(null)
fun getUser(userId: Long): User? = if (currentUser.value?.userId == userId) { fun getUser(userId: Long): User? = if (currentUser.value?.userId == userId) {
currentUser.value currentUser.value
} else { } else {
@@ -123,7 +113,7 @@ object ChatModel {
} }
private fun getUserIndex(user: User): Int = private fun getUserIndex(user: User): Int =
users.indexOfFirst { it.user.userId == user.userId && it.user.remoteHostId == user.remoteHostId } users.indexOfFirst { it.user.userId == user.userId }
fun updateUser(user: User) { fun updateUser(user: User) {
val i = getUserIndex(user) val i = getUserIndex(user)
@@ -143,17 +133,16 @@ object ChatModel {
} }
// toList() here is to prevent ConcurrentModificationException that is rarely happens but happens // toList() here is to prevent ConcurrentModificationException that is rarely happens but happens
fun hasChat(rhId: Long?, id: String): Boolean = chats.toList().firstOrNull { it.id == id && it.remoteHostId == rhId } != null fun hasChat(id: String): Boolean = chats.toList().firstOrNull { it.id == id } != null
// TODO pass rhId?
fun getChat(id: String): Chat? = chats.toList().firstOrNull { it.id == id } fun getChat(id: String): Chat? = chats.toList().firstOrNull { it.id == id }
fun getContactChat(contactId: Long): Chat? = chats.toList().firstOrNull { it.chatInfo is ChatInfo.Direct && it.chatInfo.apiId == contactId } fun getContactChat(contactId: Long): Chat? = chats.toList().firstOrNull { it.chatInfo is ChatInfo.Direct && it.chatInfo.apiId == contactId }
fun getGroupChat(groupId: Long): Chat? = chats.toList().firstOrNull { it.chatInfo is ChatInfo.Group && it.chatInfo.apiId == groupId } fun getGroupChat(groupId: Long): Chat? = chats.toList().firstOrNull { it.chatInfo is ChatInfo.Group && it.chatInfo.apiId == groupId }
fun getGroupMember(groupMemberId: Long): GroupMember? = groupMembers.firstOrNull { it.groupMemberId == groupMemberId } fun getGroupMember(groupMemberId: Long): GroupMember? = groupMembers.firstOrNull { it.groupMemberId == groupMemberId }
private fun getChatIndex(rhId: Long?, id: String): Int = chats.toList().indexOfFirst { it.id == id && it.remoteHostId == rhId } private fun getChatIndex(id: String): Int = chats.toList().indexOfFirst { it.id == id }
fun addChat(chat: Chat) = chats.add(index = 0, chat) fun addChat(chat: Chat) = chats.add(index = 0, chat)
fun updateChatInfo(rhId: Long?, cInfo: ChatInfo) { fun updateChatInfo(cInfo: ChatInfo) {
val i = getChatIndex(rhId, cInfo.id) val i = getChatIndex(cInfo.id)
if (i >= 0) { if (i >= 0) {
val currentCInfo = chats[i].chatInfo val currentCInfo = chats[i].chatInfo
var newCInfo = cInfo var newCInfo = cInfo
@@ -175,23 +164,23 @@ object ChatModel {
} }
} }
fun updateContactConnection(rhId: Long?, contactConnection: PendingContactConnection) = updateChat(rhId, ChatInfo.ContactConnection(contactConnection)) fun updateContactConnection(contactConnection: PendingContactConnection) = updateChat(ChatInfo.ContactConnection(contactConnection))
fun updateContact(rhId: Long?, contact: Contact) = updateChat(rhId, ChatInfo.Direct(contact), addMissing = contact.directOrUsed) fun updateContact(contact: Contact) = updateChat(ChatInfo.Direct(contact), addMissing = contact.directOrUsed)
fun updateContactConnectionStats(rhId: Long?, contact: Contact, connectionStats: ConnectionStats) { fun updateContactConnectionStats(contact: Contact, connectionStats: ConnectionStats) {
val updatedConn = contact.activeConn?.copy(connectionStats = connectionStats) val updatedConn = contact.activeConn?.copy(connectionStats = connectionStats)
val updatedContact = contact.copy(activeConn = updatedConn) val updatedContact = contact.copy(activeConn = updatedConn)
updateContact(rhId, updatedContact) updateContact(updatedContact)
} }
fun updateGroup(rhId: Long?, groupInfo: GroupInfo) = updateChat(rhId, ChatInfo.Group(groupInfo)) fun updateGroup(groupInfo: GroupInfo) = updateChat(ChatInfo.Group(groupInfo))
private fun updateChat(rhId: Long?, cInfo: ChatInfo, addMissing: Boolean = true) { private fun updateChat(cInfo: ChatInfo, addMissing: Boolean = true) {
if (hasChat(rhId, cInfo.id)) { if (hasChat(cInfo.id)) {
updateChatInfo(rhId, cInfo) updateChatInfo(cInfo)
} else if (addMissing) { } else if (addMissing) {
addChat(Chat(remoteHostId = rhId, chatInfo = cInfo, chatItems = arrayListOf())) addChat(Chat(chatInfo = cInfo, chatItems = arrayListOf()))
} }
} }
@@ -206,8 +195,8 @@ object ChatModel {
} }
} }
fun replaceChat(rhId: Long?, id: String, chat: Chat) { fun replaceChat(id: String, chat: Chat) {
val i = getChatIndex(rhId, id) val i = getChatIndex(id)
if (i >= 0) { if (i >= 0) {
chats[i] = chat chats[i] = chat
} else { } else {
@@ -216,9 +205,9 @@ object ChatModel {
} }
} }
suspend fun addChatItem(rhId: Long?, cInfo: ChatInfo, cItem: ChatItem) = updatingChatsMutex.withLock { suspend fun addChatItem(cInfo: ChatInfo, cItem: ChatItem) = updatingChatsMutex.withLock {
// update previews // update previews
val i = getChatIndex(rhId, cInfo.id) val i = getChatIndex(cInfo.id)
val chat: Chat val chat: Chat
if (i >= 0) { if (i >= 0) {
chat = chats[i] chat = chats[i]
@@ -227,7 +216,7 @@ object ChatModel {
chatStats = chatStats =
if (cItem.meta.itemStatus is CIStatus.RcvNew) { if (cItem.meta.itemStatus is CIStatus.RcvNew) {
val minUnreadId = if(chat.chatStats.minUnreadItemId == 0L) cItem.id else chat.chatStats.minUnreadItemId val minUnreadId = if(chat.chatStats.minUnreadItemId == 0L) cItem.id else chat.chatStats.minUnreadItemId
increaseUnreadCounter(rhId, currentUser.value!!) increaseUnreadCounter(currentUser.value!!)
chat.chatStats.copy(unreadCount = chat.chatStats.unreadCount + 1, minUnreadItemId = minUnreadId) chat.chatStats.copy(unreadCount = chat.chatStats.unreadCount + 1, minUnreadItemId = minUnreadId)
} }
else else
@@ -237,7 +226,7 @@ object ChatModel {
popChat_(i) popChat_(i)
} }
} else { } else {
addChat(Chat(remoteHostId = rhId, chatInfo = cInfo, chatItems = arrayListOf(cItem))) addChat(Chat(chatInfo = cInfo, chatItems = arrayListOf(cItem)))
} }
Log.d(TAG, "TODOCHAT: addChatItem: adding to chat ${chatId.value} from ${cInfo.id} ${cItem.id}, size ${chatItems.size}") Log.d(TAG, "TODOCHAT: addChatItem: adding to chat ${chatId.value} from ${cInfo.id} ${cItem.id}, size ${chatItems.size}")
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
@@ -257,9 +246,9 @@ object ChatModel {
} }
} }
suspend fun upsertChatItem(rhId: Long?, cInfo: ChatInfo, cItem: ChatItem): Boolean = updatingChatsMutex.withLock { suspend fun upsertChatItem(cInfo: ChatInfo, cItem: ChatItem): Boolean = updatingChatsMutex.withLock {
// update previews // update previews
val i = getChatIndex(rhId, cInfo.id) val i = getChatIndex(cInfo.id)
val chat: Chat val chat: Chat
val res: Boolean val res: Boolean
if (i >= 0) { if (i >= 0) {
@@ -269,12 +258,12 @@ object ChatModel {
chats[i] = chat.copy(chatItems = arrayListOf(cItem)) chats[i] = chat.copy(chatItems = arrayListOf(cItem))
if (pItem.isRcvNew && !cItem.isRcvNew) { if (pItem.isRcvNew && !cItem.isRcvNew) {
// status changed from New to Read, update counter // status changed from New to Read, update counter
decreaseCounterInChat(rhId, cInfo.id) decreaseCounterInChat(cInfo.id)
} }
} }
res = false res = false
} else { } else {
addChat(Chat(remoteHostId = rhId, chatInfo = cInfo, chatItems = arrayListOf(cItem))) addChat(Chat(chatInfo = cInfo, chatItems = arrayListOf(cItem)))
res = true res = true
} }
Log.d(TAG, "TODOCHAT: upsertChatItem: upserting to chat ${chatId.value} from ${cInfo.id} ${cItem.id}, size ${chatItems.size}") Log.d(TAG, "TODOCHAT: upsertChatItem: upserting to chat ${chatId.value} from ${cInfo.id} ${cItem.id}, size ${chatItems.size}")
@@ -316,12 +305,12 @@ object ChatModel {
} }
} }
fun removeChatItem(rhId: Long?, cInfo: ChatInfo, cItem: ChatItem) { fun removeChatItem(cInfo: ChatInfo, cItem: ChatItem) {
if (cItem.isRcvNew) { if (cItem.isRcvNew) {
decreaseCounterInChat(rhId, cInfo.id) decreaseCounterInChat(cInfo.id)
} }
// update previews // update previews
val i = getChatIndex(rhId, cInfo.id) val i = getChatIndex(cInfo.id)
val chat: Chat val chat: Chat
if (i >= 0) { if (i >= 0) {
chat = chats[i] chat = chats[i]
@@ -340,11 +329,11 @@ object ChatModel {
} }
} }
fun clearChat(rhId: Long?, cInfo: ChatInfo) { fun clearChat(cInfo: ChatInfo) {
// clear preview // clear preview
val i = getChatIndex(rhId, cInfo.id) val i = getChatIndex(cInfo.id)
if (i >= 0) { if (i >= 0) {
decreaseUnreadCounter(rhId, currentUser.value!!, chats[i].chatStats.unreadCount) decreaseUnreadCounter(currentUser.value!!, chats[i].chatStats.unreadCount)
chats[i] = chats[i].copy(chatItems = arrayListOf(), chatStats = Chat.ChatStats(), chatInfo = cInfo) chats[i] = chats[i].copy(chatItems = arrayListOf(), chatStats = Chat.ChatStats(), chatInfo = cInfo)
} }
// clear current chat // clear current chat
@@ -354,15 +343,15 @@ object ChatModel {
} }
} }
fun updateCurrentUser(rhId: Long?, newProfile: Profile, preferences: FullChatPreferences? = null) { fun updateCurrentUser(newProfile: Profile, preferences: FullChatPreferences? = null) {
val current = currentUser.value ?: return val current = currentUser.value ?: return
val updated = current.copy( val updated = current.copy(
profile = newProfile.toLocalProfile(current.profile.profileId), profile = newProfile.toLocalProfile(current.profile.profileId),
fullPreferences = preferences ?: current.fullPreferences fullPreferences = preferences ?: current.fullPreferences
) )
val i = users.indexOfFirst { it.user.userId == current.userId && it.user.remoteHostId == rhId } val indexInUsers = users.indexOfFirst { it.user.userId == current.userId }
if (i != -1) { if (indexInUsers != -1) {
users[i] = users[i].copy(user = updated) users[indexInUsers] = UserInfo(updated, users[indexInUsers].unreadCount)
} }
currentUser.value = updated currentUser.value = updated
} }
@@ -381,17 +370,16 @@ object ChatModel {
} }
} }
fun markChatItemsRead(chat: Chat, range: CC.ItemRange? = null, unreadCountAfter: Int? = null) { fun markChatItemsRead(cInfo: ChatInfo, range: CC.ItemRange? = null, unreadCountAfter: Int? = null) {
val cInfo = chat.chatInfo val markedRead = markItemsReadInCurrentChat(cInfo, range)
val markedRead = markItemsReadInCurrentChat(chat, range)
// update preview // update preview
val chatIdx = getChatIndex(chat.remoteHostId, cInfo.id) val chatIdx = getChatIndex(cInfo.id)
if (chatIdx >= 0) { if (chatIdx >= 0) {
val chat = chats[chatIdx] val chat = chats[chatIdx]
val lastId = chat.chatItems.lastOrNull()?.id val lastId = chat.chatItems.lastOrNull()?.id
if (lastId != null) { if (lastId != null) {
val unreadCount = unreadCountAfter ?: if (range != null) chat.chatStats.unreadCount - markedRead else 0 val unreadCount = unreadCountAfter ?: if (range != null) chat.chatStats.unreadCount - markedRead else 0
decreaseUnreadCounter(chat.remoteHostId, currentUser.value!!, chat.chatStats.unreadCount - unreadCount) decreaseUnreadCounter(currentUser.value!!, chat.chatStats.unreadCount - unreadCount)
chats[chatIdx] = chat.copy( chats[chatIdx] = chat.copy(
chatStats = chat.chatStats.copy( chatStats = chat.chatStats.copy(
unreadCount = unreadCount, unreadCount = unreadCount,
@@ -403,8 +391,7 @@ object ChatModel {
} }
} }
private fun markItemsReadInCurrentChat(chat: Chat, range: CC.ItemRange? = null): Int { private fun markItemsReadInCurrentChat(cInfo: ChatInfo, range: CC.ItemRange? = null): Int {
val cInfo = chat.chatInfo
var markedRead = 0 var markedRead = 0
if (chatId.value == cInfo.id) { if (chatId.value == cInfo.id) {
var i = 0 var i = 0
@@ -428,13 +415,13 @@ object ChatModel {
return markedRead return markedRead
} }
private fun decreaseCounterInChat(rhId: Long?, chatId: ChatId) { private fun decreaseCounterInChat(chatId: ChatId) {
val chatIndex = getChatIndex(rhId, chatId) val chatIndex = getChatIndex(chatId)
if (chatIndex == -1) return if (chatIndex == -1) return
val chat = chats[chatIndex] val chat = chats[chatIndex]
val unreadCount = kotlin.math.max(chat.chatStats.unreadCount - 1, 0) val unreadCount = kotlin.math.max(chat.chatStats.unreadCount - 1, 0)
decreaseUnreadCounter(rhId, currentUser.value!!, chat.chatStats.unreadCount - unreadCount) decreaseUnreadCounter(currentUser.value!!, chat.chatStats.unreadCount - unreadCount)
chats[chatIndex] = chat.copy( chats[chatIndex] = chat.copy(
chatStats = chat.chatStats.copy( chatStats = chat.chatStats.copy(
unreadCount = unreadCount, unreadCount = unreadCount,
@@ -442,18 +429,18 @@ object ChatModel {
) )
} }
fun increaseUnreadCounter(rhId: Long?, user: UserLike) { fun increaseUnreadCounter(user: UserLike) {
changeUnreadCounter(rhId, user, 1) changeUnreadCounter(user, 1)
} }
fun decreaseUnreadCounter(rhId: Long?, user: UserLike, by: Int = 1) { fun decreaseUnreadCounter(user: UserLike, by: Int = 1) {
changeUnreadCounter(rhId, user, -by) changeUnreadCounter(user, -by)
} }
private fun changeUnreadCounter(rhId: Long?, user: UserLike, by: Int) { private fun changeUnreadCounter(user: UserLike, by: Int) {
val i = users.indexOfFirst { it.user.userId == user.userId && it.user.remoteHostId == rhId } val i = users.indexOfFirst { it.user.userId == user.userId }
if (i != -1) { if (i != -1) {
users[i] = users[i].copy(unreadCount = users[i].unreadCount + by) users[i] = UserInfo(users[i].user, users[i].unreadCount + by)
} }
} }
@@ -549,14 +536,14 @@ object ChatModel {
} }
} }
fun removeChat(rhId: Long?, id: String) { fun removeChat(id: String) {
chats.removeAll { it.id == id && it.remoteHostId == rhId } chats.removeAll { it.id == id }
} }
fun upsertGroupMember(rhId: Long?, groupInfo: GroupInfo, member: GroupMember): Boolean { fun upsertGroupMember(groupInfo: GroupInfo, member: GroupMember): Boolean {
// user member was updated // user member was updated
if (groupInfo.membership.groupMemberId == member.groupMemberId) { if (groupInfo.membership.groupMemberId == member.groupMemberId) {
updateGroup(rhId, groupInfo) updateGroup(groupInfo)
return false return false
} }
// update current chat // update current chat
@@ -574,12 +561,12 @@ object ChatModel {
} }
} }
fun updateGroupMemberConnectionStats(rhId: Long?, groupInfo: GroupInfo, member: GroupMember, connectionStats: ConnectionStats) { fun updateGroupMemberConnectionStats(groupInfo: GroupInfo, member: GroupMember, connectionStats: ConnectionStats) {
val memberConn = member.activeConn val memberConn = member.activeConn
if (memberConn != null) { if (memberConn != null) {
val updatedConn = memberConn.copy(connectionStats = connectionStats) val updatedConn = memberConn.copy(connectionStats = connectionStats)
val updatedMember = member.copy(activeConn = updatedConn) val updatedMember = member.copy(activeConn = updatedConn)
upsertGroupMember(rhId, groupInfo, updatedMember) upsertGroupMember(groupInfo, updatedMember)
} }
} }
@@ -604,8 +591,6 @@ object ChatModel {
} }
terminalItems.add(item) terminalItems.add(item)
} }
fun connectedToRemote(): Boolean = currentRemoteHost.value != null || remoteCtrlSession.value?.active == true
} }
enum class ChatType(val type: String) { enum class ChatType(val type: String) {
@@ -617,7 +602,6 @@ enum class ChatType(val type: String) {
@Serializable @Serializable
data class User( data class User(
val remoteHostId: Long?,
override val userId: Long, override val userId: Long,
val userContactId: Long, val userContactId: Long,
val localDisplayName: String, val localDisplayName: String,
@@ -638,12 +622,8 @@ data class User(
val addressShared: Boolean = profile.contactLink != null val addressShared: Boolean = profile.contactLink != null
fun updateRemoteHostId(rh: Long?): User =
if (rh == null) this else this.copy(remoteHostId = rh)
companion object { companion object {
val sampleData = User( val sampleData = User(
remoteHostId = null,
userId = 1, userId = 1,
userContactId = 1, userContactId = 1,
localDisplayName = "alice", localDisplayName = "alice",
@@ -720,11 +700,10 @@ interface SomeChat {
} }
@Serializable @Stable @Serializable @Stable
data class Chat( data class Chat (
val remoteHostId: Long?,
val chatInfo: ChatInfo, val chatInfo: ChatInfo,
val chatItems: List<ChatItem>, val chatItems: List<ChatItem>,
val chatStats: ChatStats = ChatStats() val chatStats: ChatStats = ChatStats(),
) { ) {
val userCanSend: Boolean val userCanSend: Boolean
get() = when (chatInfo) { get() = when (chatInfo) {
@@ -754,7 +733,6 @@ data class Chat(
companion object { companion object {
val sampleData = Chat( val sampleData = Chat(
remoteHostId = null,
chatInfo = ChatInfo.Direct.sampleData, chatInfo = ChatInfo.Direct.sampleData,
chatItems = arrayListOf(ChatItem.getSampleData()) chatItems = arrayListOf(ChatItem.getSampleData())
) )
@@ -1256,7 +1234,7 @@ data class GroupMember (
fun canChangeRoleTo(groupInfo: GroupInfo): List<GroupMemberRole>? = fun canChangeRoleTo(groupInfo: GroupInfo): List<GroupMemberRole>? =
if (!canBeRemoved(groupInfo)) null if (!canBeRemoved(groupInfo)) null
else groupInfo.membership.memberRole.let { userRole -> else groupInfo.membership.memberRole.let { userRole ->
GroupMemberRole.values().filter { it <= userRole && it != GroupMemberRole.Author } GroupMemberRole.values().filter { it <= userRole }
} }
val memberIncognito = memberProfile.profileId != memberContactProfileId val memberIncognito = memberProfile.profileId != memberContactProfileId
@@ -1298,14 +1276,12 @@ data class GroupMemberIds(
@Serializable @Serializable
enum class GroupMemberRole(val memberRole: String) { enum class GroupMemberRole(val memberRole: String) {
@SerialName("observer") Observer("observer"), // order matters in comparisons @SerialName("observer") Observer("observer"), // order matters in comparisons
@SerialName("author") Author("author"),
@SerialName("member") Member("member"), @SerialName("member") Member("member"),
@SerialName("admin") Admin("admin"), @SerialName("admin") Admin("admin"),
@SerialName("owner") Owner("owner"); @SerialName("owner") Owner("owner");
val text: String get() = when (this) { val text: String get() = when (this) {
Observer -> generalGetString(MR.strings.group_member_role_observer) Observer -> generalGetString(MR.strings.group_member_role_observer)
Author -> generalGetString(MR.strings.group_member_role_author)
Member -> generalGetString(MR.strings.group_member_role_member) Member -> generalGetString(MR.strings.group_member_role_member)
Admin -> generalGetString(MR.strings.group_member_role_admin) Admin -> generalGetString(MR.strings.group_member_role_admin)
Owner -> generalGetString(MR.strings.group_member_role_owner) Owner -> generalGetString(MR.strings.group_member_role_owner)
@@ -2102,6 +2078,7 @@ sealed class CIContent: ItemContent {
is RcvDecryptionError -> true is RcvDecryptionError -> true
is RcvGroupInvitation -> true is RcvGroupInvitation -> true
is RcvModerated -> true is RcvModerated -> true
is SndModerated -> true
is InvalidJSON -> true is InvalidJSON -> true
else -> false else -> false
} }
@@ -2130,15 +2107,13 @@ enum class MsgDecryptError {
@SerialName("ratchetHeader") RatchetHeader, @SerialName("ratchetHeader") RatchetHeader,
@SerialName("tooManySkipped") TooManySkipped, @SerialName("tooManySkipped") TooManySkipped,
@SerialName("ratchetEarlier") RatchetEarlier, @SerialName("ratchetEarlier") RatchetEarlier,
@SerialName("other") Other, @SerialName("other") Other;
@SerialName("ratchetSync") RatchetSync;
val text: String get() = when (this) { val text: String get() = when (this) {
RatchetHeader -> generalGetString(MR.strings.decryption_error) RatchetHeader -> generalGetString(MR.strings.decryption_error)
TooManySkipped -> generalGetString(MR.strings.decryption_error) TooManySkipped -> generalGetString(MR.strings.decryption_error)
RatchetEarlier -> generalGetString(MR.strings.decryption_error) RatchetEarlier -> generalGetString(MR.strings.decryption_error)
Other -> generalGetString(MR.strings.decryption_error) Other -> generalGetString(MR.strings.decryption_error)
RatchetSync -> generalGetString(MR.strings.encryption_renegotiation_error)
} }
} }
@@ -2243,7 +2218,7 @@ enum class MREmojiChar(val value: String) {
} }
@Serializable @Serializable
data class CIFile( class CIFile(
val fileId: Long, val fileId: Long,
val fileName: String, val fileName: String,
val fileSize: Long, val fileSize: Long,
@@ -2287,39 +2262,6 @@ data class CIFile(
is CIFileStatus.Invalid -> null is CIFileStatus.Invalid -> null
} }
/**
* DO NOT CALL this function in compose scope, [LaunchedEffect], [DisposableEffect] and so on. Only with [withBGApi] or [runBlocking].
* Otherwise, it will be canceled when moving to another screen/item/view, etc
* */
suspend fun loadRemoteFile(allowToShowAlert: Boolean): Boolean {
val rh = chatModel.currentRemoteHost.value
val user = chatModel.currentUser.value
if (rh == null || user == null || fileSource == null || !loaded) return false
if (getLoadedFilePath(this) != null) return true
if (cachedRemoteFileRequests.contains(fileSource)) return false
val rf = RemoteFile(
userId = user.userId,
fileId = fileId,
sent = fileStatus.sent,
fileSource = fileSource
)
cachedRemoteFileRequests[fileSource] = false
val showAlert = fileSize > 5_000_000 && allowToShowAlert
if (showAlert) {
AlertManager.shared.showAlertMsgWithProgress(
title = generalGetString(MR.strings.loading_remote_file_title),
text = generalGetString(MR.strings.loading_remote_file_desc)
)
}
val res = chatModel.controller.getRemoteFile(rh.remoteHostId, rf)
cachedRemoteFileRequests[fileSource] = res
if (showAlert) {
AlertManager.shared.hideAlert()
}
return res
}
companion object { companion object {
fun getSample( fun getSample(
fileId: Long = 1, fileId: Long = 1,
@@ -2329,8 +2271,6 @@ data class CIFile(
fileStatus: CIFileStatus = CIFileStatus.RcvComplete fileStatus: CIFileStatus = CIFileStatus.RcvComplete
): CIFile = ): CIFile =
CIFile(fileId = fileId, fileName = fileName, fileSize = fileSize, fileSource = if (filePath == null) null else CryptoFile.plain(filePath), fileStatus = fileStatus, fileProtocol = FileProtocol.XFTP) CIFile(fileId = fileId, fileName = fileName, fileSize = fileSize, fileSource = if (filePath == null) null else CryptoFile.plain(filePath), fileStatus = fileStatus, fileProtocol = FileProtocol.XFTP)
val cachedRemoteFileRequests = SnapshotStateMap<CryptoFile, Boolean>()
} }
} }
@@ -2362,8 +2302,6 @@ data class CryptoFile(
companion object { companion object {
fun plain(f: String): CryptoFile = CryptoFile(f, null) fun plain(f: String): CryptoFile = CryptoFile(f, null)
fun desktopPlain(f: URI): CryptoFile = CryptoFile(f.toFile().absolutePath, null)
} }
} }
@@ -2426,21 +2364,6 @@ sealed class CIFileStatus {
@Serializable @SerialName("rcvCancelled") object RcvCancelled: CIFileStatus() @Serializable @SerialName("rcvCancelled") object RcvCancelled: CIFileStatus()
@Serializable @SerialName("rcvError") object RcvError: CIFileStatus() @Serializable @SerialName("rcvError") object RcvError: CIFileStatus()
@Serializable @SerialName("invalid") class Invalid(val text: String): CIFileStatus() @Serializable @SerialName("invalid") class Invalid(val text: String): CIFileStatus()
val sent: Boolean get() = when (this) {
is SndStored -> true
is SndTransfer -> true
is SndComplete -> true
is SndCancelled -> true
is SndError -> true
is RcvInvitation -> false
is RcvAccepted -> false
is RcvTransfer -> false
is RcvComplete -> false
is RcvCancelled -> false
is RcvError -> false
is Invalid -> false
}
} }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@@ -2919,37 +2842,3 @@ enum class NotificationPreviewMode {
val default: NotificationPreviewMode = MESSAGE val default: NotificationPreviewMode = MESSAGE
} }
} }
data class RemoteCtrlSession(
val ctrlAppInfo: CtrlAppInfo?,
val appVersion: String,
val sessionState: UIRemoteCtrlSessionState
) {
val active: Boolean
get () = sessionState is UIRemoteCtrlSessionState.Connected
val sessionCode: String?
get() = when (val s = sessionState) {
is UIRemoteCtrlSessionState.PendingConfirmation -> s.sessionCode
is UIRemoteCtrlSessionState.Connected -> s.sessionCode
else -> null
}
}
@Serializable
sealed class RemoteCtrlSessionState {
@Serializable @SerialName("starting") object Starting: RemoteCtrlSessionState()
@Serializable @SerialName("searching") object Searching: RemoteCtrlSessionState()
@Serializable @SerialName("connecting") object Connecting: RemoteCtrlSessionState()
@Serializable @SerialName("pendingConfirmation") data class PendingConfirmation(val sessionCode: String): RemoteCtrlSessionState()
@Serializable @SerialName("connected") data class Connected(val sessionCode: String): RemoteCtrlSessionState()
}
sealed class UIRemoteCtrlSessionState {
object Starting: UIRemoteCtrlSessionState()
object Searching: UIRemoteCtrlSessionState()
data class Found(val remoteCtrl: RemoteCtrlInfo, val compatible: Boolean): UIRemoteCtrlSessionState()
data class Connecting(val remoteCtrl_: RemoteCtrlInfo? = null): UIRemoteCtrlSessionState()
data class PendingConfirmation(val remoteCtrl_: RemoteCtrlInfo? = null, val sessionCode: String): UIRemoteCtrlSessionState()
data class Connected(val remoteCtrl: RemoteCtrlInfo, val sessionCode: String): UIRemoteCtrlSessionState()
}
@@ -18,8 +18,6 @@ enum class AppPlatform {
expect val appPlatform: AppPlatform expect val appPlatform: AppPlatform
expect val deviceName: String
val appVersionInfo: Pair<String, Int?> = if (appPlatform == AppPlatform.ANDROID) val appVersionInfo: Pair<String, Int?> = if (appPlatform == AppPlatform.ANDROID)
BuildConfigCommon.ANDROID_VERSION_NAME to BuildConfigCommon.ANDROID_VERSION_CODE BuildConfigCommon.ANDROID_VERSION_NAME to BuildConfigCommon.ANDROID_VERSION_CODE
else else
@@ -15,7 +15,6 @@ external fun pipeStdOutToSocket(socketName: String) : Int
typealias ChatCtrl = Long typealias ChatCtrl = Long
external fun chatMigrateInit(dbPath: String, dbKey: String, confirm: String): Array<Any> external fun chatMigrateInit(dbPath: String, dbKey: String, confirm: String): Array<Any>
external fun chatSendCmd(ctrl: ChatCtrl, msg: String): String external fun chatSendCmd(ctrl: ChatCtrl, msg: String): String
external fun chatSendRemoteCmd(ctrl: ChatCtrl, rhId: Int, msg: String): String
external fun chatRecvMsg(ctrl: ChatCtrl): String external fun chatRecvMsg(ctrl: ChatCtrl): String
external fun chatRecvMsgWait(ctrl: ChatCtrl, timeout: Int): String external fun chatRecvMsgWait(ctrl: ChatCtrl, timeout: Int): String
external fun chatParseMarkdown(str: String): String external fun chatParseMarkdown(str: String): String
@@ -53,7 +52,7 @@ suspend fun initChatController(useKey: String? = null, confirmMigrations: Migrat
} else if (startChat) { } else if (startChat) {
// If we migrated successfully means previous re-encryption process on database level finished successfully too // If we migrated successfully means previous re-encryption process on database level finished successfully too
if (appPreferences.encryptionStartedAt.get() != null) appPreferences.encryptionStartedAt.set(null) if (appPreferences.encryptionStartedAt.get() != null) appPreferences.encryptionStartedAt.set(null)
val user = chatController.apiGetActiveUser(null) val user = chatController.apiGetActiveUser()
if (user == null) { if (user == null) {
chatModel.controller.appPrefs.onboardingStage.set(OnboardingStage.Step1_SimpleXInfo) chatModel.controller.appPrefs.onboardingStage.set(OnboardingStage.Step1_SimpleXInfo)
chatModel.controller.appPrefs.privacyDeliveryReceiptsSet.set(true) chatModel.controller.appPrefs.privacyDeliveryReceiptsSet.set(true)
@@ -7,8 +7,6 @@ import chat.simplex.common.views.helpers.generalGetString
import chat.simplex.res.MR import chat.simplex.res.MR
import java.io.* import java.io.*
import java.net.URI import java.net.URI
import java.net.URLDecoder
import java.net.URLEncoder
expect val dataDir: File expect val dataDir: File
expect val tmpDir: File expect val tmpDir: File
@@ -26,14 +24,8 @@ expect val agentDatabaseFileName: String
* */ * */
expect val databaseExportDir: File expect val databaseExportDir: File
expect val remoteHostsDir: File
expect fun desktopOpenDatabaseDir() expect fun desktopOpenDatabaseDir()
fun createURIFromPath(absolutePath: String): URI = URI.create(URLEncoder.encode(absolutePath, "UTF-8"))
fun URI.toFile(): File = File(URLDecoder.decode(rawPath, "UTF-8").removePrefix("file:"))
fun copyFileToFile(from: File, to: URI, finally: () -> Unit) { fun copyFileToFile(from: File, to: URI, finally: () -> Unit) {
try { try {
to.outputStream().use { stream -> to.outputStream().use { stream ->
@@ -67,20 +59,14 @@ fun copyBytesToFile(bytes: ByteArrayInputStream, to: URI, finally: () -> Unit) {
} }
fun getAppFilePath(fileName: String): String { fun getAppFilePath(fileName: String): String {
val rh = chatModel.currentRemoteHost.value return appFilesDir.absolutePath + File.separator + fileName
val s = File.separator
return if (rh == null) {
appFilesDir.absolutePath + s + fileName
} else {
remoteHostsDir.absolutePath + s + rh.storePath + s + "simplex_v1_files" + s + fileName
}
} }
fun getLoadedFilePath(file: CIFile?): String? { fun getLoadedFilePath(file: CIFile?): String? {
val f = file?.fileSource?.filePath val f = file?.fileSource?.filePath
return if (f != null && file.loaded) { return if (f != null && file.loaded) {
val filePath = getAppFilePath(f) val filePath = getAppFilePath(f)
if (fileReady(file, filePath)) filePath else null if (File(filePath).exists()) filePath else null
} else { } else {
null null
} }
@@ -90,17 +76,12 @@ fun getLoadedFileSource(file: CIFile?): CryptoFile? {
val f = file?.fileSource?.filePath val f = file?.fileSource?.filePath
return if (f != null && file.loaded) { return if (f != null && file.loaded) {
val filePath = getAppFilePath(f) val filePath = getAppFilePath(f)
if (fileReady(file, filePath)) file.fileSource else null if (File(filePath).exists()) file.fileSource else null
} else { } else {
null null
} }
} }
private fun fileReady(file: CIFile, filePath: String) =
File(filePath).exists() &&
CIFile.cachedRemoteFileRequests[file.fileSource] != false
&& File(filePath).length() >= file.fileSize
/** /**
* [rememberedValue] is used in `remember(rememberedValue)`. So when the value changes, file saver will update a callback function * [rememberedValue] is used in `remember(rememberedValue)`. So when the value changes, file saver will update a callback function
* */ * */
@@ -3,7 +3,6 @@ package chat.simplex.common.platform
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.painter.Painter
import java.io.File
expect fun Modifier.navigationBarsWithImePadding(): Modifier expect fun Modifier.navigationBarsWithImePadding(): Modifier
@@ -17,7 +16,7 @@ expect fun ProvideWindowInsets(
@Composable @Composable
expect fun Modifier.desktopOnExternalDrag( expect fun Modifier.desktopOnExternalDrag(
enabled: Boolean = true, enabled: Boolean = true,
onFiles: (List<File>) -> Unit = {}, onFiles: (List<String>) -> Unit = {},
onImage: (Painter) -> Unit = {}, onImage: (Painter) -> Unit = {},
onText: (String) -> Unit = {} onText: (String) -> Unit = {}
): Modifier ): Modifier
@@ -49,8 +49,7 @@ abstract class NtfManager {
null null
} }
val apiId = chatId.replace("<@", "").toLongOrNull() ?: return val apiId = chatId.replace("<@", "").toLongOrNull() ?: return
// TODO include remote host in notification acceptContactRequest(incognito, apiId, cInfo, isCurrentUser, ChatModel)
acceptContactRequest(null, incognito, apiId, cInfo, isCurrentUser, ChatModel)
cancelNotificationsForChat(chatId) cancelNotificationsForChat(chatId)
} }
@@ -58,12 +57,11 @@ abstract class NtfManager {
withBGApi { withBGApi {
awaitChatStartedIfNeeded(chatModel) awaitChatStartedIfNeeded(chatModel)
if (userId != null && userId != chatModel.currentUser.value?.userId && chatModel.currentUser.value != null) { if (userId != null && userId != chatModel.currentUser.value?.userId && chatModel.currentUser.value != null) {
// TODO include remote host ID in desktop notifications? chatModel.controller.changeActiveUser(userId, null)
chatModel.controller.changeActiveUser(null, userId, null)
} }
val cInfo = chatModel.getChat(chatId)?.chatInfo val cInfo = chatModel.getChat(chatId)?.chatInfo
chatModel.clearOverlays.value = true chatModel.clearOverlays.value = true
if (cInfo != null && (cInfo is ChatInfo.Direct || cInfo is ChatInfo.Group)) openChat(null, cInfo, chatModel) if (cInfo != null && (cInfo is ChatInfo.Direct || cInfo is ChatInfo.Group)) openChat(cInfo, chatModel)
} }
} }
@@ -71,8 +69,7 @@ abstract class NtfManager {
withBGApi { withBGApi {
awaitChatStartedIfNeeded(chatModel) awaitChatStartedIfNeeded(chatModel)
if (userId != null && userId != chatModel.currentUser.value?.userId && chatModel.currentUser.value != null) { if (userId != null && userId != chatModel.currentUser.value?.userId && chatModel.currentUser.value != null) {
// TODO include remote host ID in desktop notifications? chatModel.controller.changeActiveUser(userId, null)
chatModel.controller.changeActiveUser(null, userId, null)
} }
chatModel.chatId.value = null chatModel.chatId.value = null
chatModel.clearOverlays.value = true chatModel.clearOverlays.value = true
@@ -43,13 +43,16 @@ object VideoPlayerHolder {
): VideoPlayer = ): VideoPlayer =
players.getOrPut(uri to gallery) { VideoPlayer(uri, gallery, defaultPreview, defaultDuration, soundEnabled) } players.getOrPut(uri to gallery) { VideoPlayer(uri, gallery, defaultPreview, defaultDuration, soundEnabled) }
private fun player(uri: URI?, gallery: Boolean): VideoPlayer? { fun enableSound(enable: Boolean, fileName: String?, gallery: Boolean): Boolean =
uri ?: return null player(fileName, gallery)?.enableSound(enable) == true
return players.values.firstOrNull { player -> player.uri == uri && player.gallery == gallery }
private fun player(fileName: String?, gallery: Boolean): VideoPlayer? {
fileName ?: return null
return players.values.firstOrNull { player -> player.uri.path?.endsWith(fileName) == true && player.gallery == gallery }
} }
fun release(uri: URI, gallery: Boolean, remove: Boolean) = fun release(uri: URI, gallery: Boolean, remove: Boolean) =
player(uri, gallery)?.release(remove).run { } player(uri.path, gallery)?.release(remove).run { }
fun stopAll() { fun stopAll() {
players.values.forEach { it.stop() } players.values.forEach { it.stop() }
@@ -47,14 +47,13 @@ private fun sendCommand(chatModel: ChatModel, composeState: MutableState<Compose
val s = composeState.value.message val s = composeState.value.message
if (s.startsWith("/sql") && (!prefPerformLA || !developerTools)) { if (s.startsWith("/sql") && (!prefPerformLA || !developerTools)) {
val resp = CR.ChatCmdError(null, ChatError.ChatErrorChat(ChatErrorType.CommandError("Failed reading: empty"))) val resp = CR.ChatCmdError(null, ChatError.ChatErrorChat(ChatErrorType.CommandError("Failed reading: empty")))
chatModel.addTerminalItem(TerminalItem.cmd(null, CC.Console(s))) chatModel.addTerminalItem(TerminalItem.cmd(CC.Console(s)))
chatModel.addTerminalItem(TerminalItem.resp(null, resp)) chatModel.addTerminalItem(TerminalItem.resp(resp))
composeState.value = ComposeState(useLinkPreviews = false) composeState.value = ComposeState(useLinkPreviews = false)
} else { } else {
withApi { withApi {
// show "in progress" // show "in progress"
// TODO show active remote host in chat console? chatModel.controller.sendCmd(CC.Console(s))
chatModel.controller.sendCmd(chatModel.remoteHostId(), CC.Console(s))
composeState.value = ComposeState(useLinkPreviews = false) composeState.value = ComposeState(useLinkPreviews = false)
// hide "in progress" // hide "in progress"
} }
@@ -140,10 +139,8 @@ fun TerminalLog(terminalItems: List<TerminalItem>) {
val clipboard = LocalClipboardManager.current val clipboard = LocalClipboardManager.current
LazyColumn(state = listState, reverseLayout = true) { LazyColumn(state = listState, reverseLayout = true) {
items(reversedTerminalItems) { item -> items(reversedTerminalItems) { item ->
val rhId = item.remoteHostId
val rhIdStr = if (rhId == null) "" else "$rhId "
Text( Text(
"$rhIdStr${item.date.toString().subSequence(11, 19)} ${item.label}", "${item.date.toString().subSequence(11, 19)} ${item.label}",
style = TextStyle(fontFamily = FontFamily.Monospace, fontSize = 18.sp, color = MaterialTheme.colors.primary), style = TextStyle(fontFamily = FontFamily.Monospace, fontSize = 18.sp, color = MaterialTheme.colors.primary),
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis, overflow = TextOverflow.Ellipsis,
@@ -170,19 +170,18 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
fun createProfileInProfiles(chatModel: ChatModel, displayName: String, close: () -> Unit) { fun createProfileInProfiles(chatModel: ChatModel, displayName: String, close: () -> Unit) {
withApi { withApi {
val rhId = chatModel.remoteHostId()
val user = chatModel.controller.apiCreateActiveUser( val user = chatModel.controller.apiCreateActiveUser(
rhId, Profile(displayName.trim(), "", null) Profile(displayName.trim(), "", null)
) ?: return@withApi ) ?: return@withApi
chatModel.currentUser.value = user chatModel.currentUser.value = user
if (chatModel.users.isEmpty()) { if (chatModel.users.isEmpty()) {
chatModel.controller.startChat(user) chatModel.controller.startChat(user)
chatModel.controller.appPrefs.onboardingStage.set(OnboardingStage.Step3_CreateSimpleXAddress) chatModel.controller.appPrefs.onboardingStage.set(OnboardingStage.Step3_CreateSimpleXAddress)
} else { } else {
val users = chatModel.controller.listUsers(rhId) val users = chatModel.controller.listUsers()
chatModel.users.clear() chatModel.users.clear()
chatModel.users.addAll(users) chatModel.users.addAll(users)
chatModel.controller.getUserChatData(rhId) chatModel.controller.getUserChatData()
close() close()
} }
} }
@@ -191,7 +190,7 @@ fun createProfileInProfiles(chatModel: ChatModel, displayName: String, close: ()
fun createProfileOnboarding(chatModel: ChatModel, displayName: String, close: () -> Unit) { fun createProfileOnboarding(chatModel: ChatModel, displayName: String, close: () -> Unit) {
withApi { withApi {
chatModel.controller.apiCreateActiveUser( chatModel.controller.apiCreateActiveUser(
null, Profile(displayName.trim(), "", null) Profile(displayName.trim(), "", null)
) ?: return@withApi ) ?: return@withApi
val onboardingStage = chatModel.controller.appPrefs.onboardingStage val onboardingStage = chatModel.controller.appPrefs.onboardingStage
if (chatModel.users.isEmpty()) { if (chatModel.users.isEmpty()) {
@@ -43,7 +43,6 @@ class CallManager(val chatModel: ChatModel) {
private fun justAcceptIncomingCall(invitation: RcvCallInvitation) { private fun justAcceptIncomingCall(invitation: RcvCallInvitation) {
with (chatModel) { with (chatModel) {
activeCall.value = Call( activeCall.value = Call(
remoteHostId = invitation.remoteHostId,
contact = invitation.contact, contact = invitation.contact,
callState = CallState.InvitationAccepted, callState = CallState.InvitationAccepted,
localMedia = invitation.callType.media, localMedia = invitation.callType.media,
@@ -77,7 +76,7 @@ class CallManager(val chatModel: ChatModel) {
Log.d(TAG, "CallManager.endCall: ending call...") Log.d(TAG, "CallManager.endCall: ending call...")
callCommand.add(WCallCommand.End) callCommand.add(WCallCommand.End)
showCallView.value = false showCallView.value = false
controller.apiEndCall(call.remoteHostId, call.contact) controller.apiEndCall(call.contact)
activeCall.value = null activeCall.value = null
} }
} }
@@ -91,7 +90,7 @@ class CallManager(val chatModel: ChatModel) {
ntfManager.cancelCallNotification() ntfManager.cancelCallNotification()
} }
withApi { withApi {
if (!controller.apiRejectCall(invitation.remoteHostId, invitation.contact)) { if (!controller.apiRejectCall(invitation.contact)) {
Log.e(TAG, "apiRejectCall error") Log.e(TAG, "apiRejectCall error")
} }
} }
@@ -106,7 +106,6 @@ fun PreviewIncomingCallAlertLayout() {
SimpleXTheme { SimpleXTheme {
IncomingCallAlertLayout( IncomingCallAlertLayout(
invitation = RcvCallInvitation( invitation = RcvCallInvitation(
remoteHostId = null,
user = User.sampleData, user = User.sampleData,
contact = Contact.sampleData, contact = Contact.sampleData,
callType = CallType(media = CallMediaType.Audio, capabilities = CallCapabilities(encryption = false)), callType = CallType(media = CallMediaType.Audio, capabilities = CallCapabilities(encryption = false)),
@@ -11,7 +11,6 @@ import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
data class Call( data class Call(
val remoteHostId: Long?,
val contact: Contact, val contact: Contact,
val callState: CallState, val callState: CallState,
val localMedia: CallMediaType, val localMedia: CallMediaType,
@@ -96,14 +95,7 @@ sealed class WCallResponse {
@Serializable data class WebRTCSession(val rtcSession: String, val rtcIceCandidates: String) @Serializable data class WebRTCSession(val rtcSession: String, val rtcIceCandidates: String)
@Serializable data class WebRTCExtraInfo(val rtcIceCandidates: String) @Serializable data class WebRTCExtraInfo(val rtcIceCandidates: String)
@Serializable data class CallType(val media: CallMediaType, val capabilities: CallCapabilities) @Serializable data class CallType(val media: CallMediaType, val capabilities: CallCapabilities)
@Serializable data class RcvCallInvitation( @Serializable data class RcvCallInvitation(val user: User, val contact: Contact, val callType: CallType, val sharedKey: String? = null, val callTs: Instant) {
val remoteHostId: Long?,
val user: User,
val contact: Contact,
val callType: CallType,
val sharedKey: String? = null,
val callTs: Instant
) {
val callTypeText: String get() = generalGetString(when(callType.media) { val callTypeText: String get() = generalGetString(when(callType.media) {
CallMediaType.Video -> if (sharedKey == null) MR.strings.video_call_no_encryption else MR.strings.encrypted_video_call CallMediaType.Video -> if (sharedKey == null) MR.strings.video_call_no_encryption else MR.strings.encrypted_video_call
CallMediaType.Audio -> if (sharedKey == null) MR.strings.audio_call_no_encryption else MR.strings.encrypted_audio_call CallMediaType.Audio -> if (sharedKey == null) MR.strings.audio_call_no_encryption else MR.strings.encrypted_audio_call
@@ -61,7 +61,6 @@ fun ChatInfoView(
val contactNetworkStatus = remember(chatModel.networkStatuses.toMap(), contact) { val contactNetworkStatus = remember(chatModel.networkStatuses.toMap(), contact) {
mutableStateOf(chatModel.contactNetworkStatus(contact)) mutableStateOf(chatModel.contactNetworkStatus(contact))
} }
val chatRh = chat.remoteHostId
val sendReceipts = remember(contact.id) { mutableStateOf(SendReceipts.fromBool(contact.chatSettings.sendRcpts, currentUser.sendRcptsContacts)) } val sendReceipts = remember(contact.id) { mutableStateOf(SendReceipts.fromBool(contact.chatSettings.sendRcpts, currentUser.sendRcptsContacts)) }
ChatInfoLayout( ChatInfoLayout(
chat, chat,
@@ -82,25 +81,25 @@ fun ChatInfoView(
connectionCode, connectionCode,
developerTools, developerTools,
onLocalAliasChanged = { onLocalAliasChanged = {
setContactAlias(chat, it, chatModel) setContactAlias(chat.chatInfo.apiId, it, chatModel)
}, },
openPreferences = { openPreferences = {
ModalManager.end.showCustomModal { close -> ModalManager.end.showCustomModal { close ->
val user = chatModel.currentUser.value val user = chatModel.currentUser.value
if (user != null) { if (user != null) {
ContactPreferencesView(chatModel, user, chatRh, contact.contactId, close) ContactPreferencesView(chatModel, user, contact.contactId, close)
} }
} }
}, },
deleteContact = { deleteContactDialog(chat, chatModel, close) }, deleteContact = { deleteContactDialog(chat.chatInfo, chatModel, close) },
clearChat = { clearChatDialog(chat, chatModel, close) }, clearChat = { clearChatDialog(chat.chatInfo, chatModel, close) },
switchContactAddress = { switchContactAddress = {
showSwitchAddressAlert(switchAddress = { showSwitchAddressAlert(switchAddress = {
withApi { withApi {
val cStats = chatModel.controller.apiSwitchContact(chatRh, contact.contactId) val cStats = chatModel.controller.apiSwitchContact(contact.contactId)
connStats.value = cStats connStats.value = cStats
if (cStats != null) { if (cStats != null) {
chatModel.updateContactConnectionStats(chatRh, contact, cStats) chatModel.updateContactConnectionStats(contact, cStats)
} }
close.invoke() close.invoke()
} }
@@ -109,20 +108,20 @@ fun ChatInfoView(
abortSwitchContactAddress = { abortSwitchContactAddress = {
showAbortSwitchAddressAlert(abortSwitchAddress = { showAbortSwitchAddressAlert(abortSwitchAddress = {
withApi { withApi {
val cStats = chatModel.controller.apiAbortSwitchContact(chatRh, contact.contactId) val cStats = chatModel.controller.apiAbortSwitchContact(contact.contactId)
connStats.value = cStats connStats.value = cStats
if (cStats != null) { if (cStats != null) {
chatModel.updateContactConnectionStats(chatRh, contact, cStats) chatModel.updateContactConnectionStats(contact, cStats)
} }
} }
}) })
}, },
syncContactConnection = { syncContactConnection = {
withApi { withApi {
val cStats = chatModel.controller.apiSyncContactRatchet(chatRh, contact.contactId, force = false) val cStats = chatModel.controller.apiSyncContactRatchet(contact.contactId, force = false)
connStats.value = cStats connStats.value = cStats
if (cStats != null) { if (cStats != null) {
chatModel.updateContactConnectionStats(chatRh, contact, cStats) chatModel.updateContactConnectionStats(contact, cStats)
} }
close.invoke() close.invoke()
} }
@@ -130,10 +129,10 @@ fun ChatInfoView(
syncContactConnectionForce = { syncContactConnectionForce = {
showSyncConnectionForceAlert(syncConnectionForce = { showSyncConnectionForceAlert(syncConnectionForce = {
withApi { withApi {
val cStats = chatModel.controller.apiSyncContactRatchet(chatRh, contact.contactId, force = true) val cStats = chatModel.controller.apiSyncContactRatchet(contact.contactId, force = true)
connStats.value = cStats connStats.value = cStats
if (cStats != null) { if (cStats != null) {
chatModel.updateContactConnectionStats(chatRh, contact, cStats) chatModel.updateContactConnectionStats(contact, cStats)
} }
close.invoke() close.invoke()
} }
@@ -147,10 +146,9 @@ fun ChatInfoView(
connectionCode, connectionCode,
ct.verified, ct.verified,
verify = { code -> verify = { code ->
chatModel.controller.apiVerifyContact(chatRh, ct.contactId, code)?.let { r -> chatModel.controller.apiVerifyContact(ct.contactId, code)?.let { r ->
val (verified, existingCode) = r val (verified, existingCode) = r
chatModel.updateContact( chatModel.updateContact(
chatRh,
ct.copy( ct.copy(
activeConn = ct.activeConn?.copy( activeConn = ct.activeConn?.copy(
connectionCode = if (verified) SecurityCode(existingCode, Clock.System.now()) else null connectionCode = if (verified) SecurityCode(existingCode, Clock.System.now()) else null
@@ -197,8 +195,7 @@ sealed class SendReceipts {
} }
} }
fun deleteContactDialog(chat: Chat, chatModel: ChatModel, close: (() -> Unit)? = null) { fun deleteContactDialog(chatInfo: ChatInfo, chatModel: ChatModel, close: (() -> Unit)? = null) {
val chatInfo = chat.chatInfo
AlertManager.shared.showAlertDialogButtonsColumn( AlertManager.shared.showAlertDialogButtonsColumn(
title = generalGetString(MR.strings.delete_contact_question), title = generalGetString(MR.strings.delete_contact_question),
text = AnnotatedString(generalGetString(MR.strings.delete_contact_all_messages_deleted_cannot_undo_warning)), text = AnnotatedString(generalGetString(MR.strings.delete_contact_all_messages_deleted_cannot_undo_warning)),
@@ -209,7 +206,7 @@ fun deleteContactDialog(chat: Chat, chatModel: ChatModel, close: (() -> Unit)? =
SectionItemView({ SectionItemView({
AlertManager.shared.hideAlert() AlertManager.shared.hideAlert()
withApi { withApi {
deleteContact(chat, chatModel, close, notify = true) deleteContact(chatInfo, chatModel, close, notify = true)
} }
}) { }) {
Text(generalGetString(MR.strings.delete_and_notify_contact), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.error) Text(generalGetString(MR.strings.delete_and_notify_contact), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.error)
@@ -218,7 +215,7 @@ fun deleteContactDialog(chat: Chat, chatModel: ChatModel, close: (() -> Unit)? =
SectionItemView({ SectionItemView({
AlertManager.shared.hideAlert() AlertManager.shared.hideAlert()
withApi { withApi {
deleteContact(chat, chatModel, close, notify = false) deleteContact(chatInfo, chatModel, close, notify = false)
} }
}) { }) {
Text(generalGetString(MR.strings.delete_verb), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.error) Text(generalGetString(MR.strings.delete_verb), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.error)
@@ -228,7 +225,7 @@ fun deleteContactDialog(chat: Chat, chatModel: ChatModel, close: (() -> Unit)? =
SectionItemView({ SectionItemView({
AlertManager.shared.hideAlert() AlertManager.shared.hideAlert()
withApi { withApi {
deleteContact(chat, chatModel, close) deleteContact(chatInfo, chatModel, close)
} }
}) { }) {
Text(generalGetString(MR.strings.delete_verb), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.error) Text(generalGetString(MR.strings.delete_verb), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.error)
@@ -245,13 +242,11 @@ fun deleteContactDialog(chat: Chat, chatModel: ChatModel, close: (() -> Unit)? =
) )
} }
fun deleteContact(chat: Chat, chatModel: ChatModel, close: (() -> Unit)?, notify: Boolean? = null) { fun deleteContact(chatInfo: ChatInfo, chatModel: ChatModel, close: (() -> Unit)?, notify: Boolean? = null) {
val chatInfo = chat.chatInfo
withApi { withApi {
val chatRh = chat.remoteHostId val r = chatModel.controller.apiDeleteChat(chatInfo.chatType, chatInfo.apiId, notify)
val r = chatModel.controller.apiDeleteChat(chatRh, chatInfo.chatType, chatInfo.apiId, notify)
if (r) { if (r) {
chatModel.removeChat(chatRh, chatInfo.id) chatModel.removeChat(chatInfo.id)
if (chatModel.chatId.value == chatInfo.id) { if (chatModel.chatId.value == chatInfo.id) {
chatModel.chatId.value = null chatModel.chatId.value = null
ModalManager.end.closeModals() ModalManager.end.closeModals()
@@ -262,18 +257,16 @@ fun deleteContact(chat: Chat, chatModel: ChatModel, close: (() -> Unit)?, notify
} }
} }
fun clearChatDialog(chat: Chat, chatModel: ChatModel, close: (() -> Unit)? = null) { fun clearChatDialog(chatInfo: ChatInfo, chatModel: ChatModel, close: (() -> Unit)? = null) {
val chatInfo = chat.chatInfo
AlertManager.shared.showAlertDialog( AlertManager.shared.showAlertDialog(
title = generalGetString(MR.strings.clear_chat_question), title = generalGetString(MR.strings.clear_chat_question),
text = generalGetString(MR.strings.clear_chat_warning), text = generalGetString(MR.strings.clear_chat_warning),
confirmText = generalGetString(MR.strings.clear_verb), confirmText = generalGetString(MR.strings.clear_verb),
onConfirm = { onConfirm = {
withApi { withApi {
val chatRh = chat.remoteHostId val updatedChatInfo = chatModel.controller.apiClearChat(chatInfo.chatType, chatInfo.apiId)
val updatedChatInfo = chatModel.controller.apiClearChat(chatRh, chatInfo.chatType, chatInfo.apiId)
if (updatedChatInfo != null) { if (updatedChatInfo != null) {
chatModel.clearChat(chatRh, updatedChatInfo) chatModel.clearChat(updatedChatInfo)
ntfManager.cancelNotificationsForChat(chatInfo.id) ntfManager.cancelNotificationsForChat(chatInfo.id)
close?.invoke() close?.invoke()
} }
@@ -676,10 +669,9 @@ fun ShareAddressButton(onClick: () -> Unit) {
) )
} }
private fun setContactAlias(chat: Chat, localAlias: String, chatModel: ChatModel) = withApi { private fun setContactAlias(contactApiId: Long, localAlias: String, chatModel: ChatModel) = withApi {
val chatRh = chat.remoteHostId chatModel.controller.apiSetContactAlias(contactApiId, localAlias)?.let {
chatModel.controller.apiSetContactAlias(chatRh, chat.chatInfo.apiId, localAlias)?.let { chatModel.updateContact(it)
chatModel.updateContact(chatRh, it)
} }
} }
@@ -718,7 +710,6 @@ fun PreviewChatInfoLayout() {
SimpleXTheme { SimpleXTheme {
ChatInfoLayout( ChatInfoLayout(
chat = Chat( chat = Chat(
remoteHostId = null,
chatInfo = ChatInfo.Direct.sampleData, chatInfo = ChatInfo.Direct.sampleData,
chatItems = arrayListOf() chatItems = arrayListOf()
), ),
@@ -100,12 +100,11 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
} }
} }
val view = LocalMultiplatformView() val view = LocalMultiplatformView()
val chat = activeChat.value if (activeChat.value == null || user == null) {
if (chat == null || user == null) {
chatModel.chatId.value = null chatModel.chatId.value = null
ModalManager.end.closeModals() ModalManager.end.closeModals()
} else { } else {
val chatRh = chat.remoteHostId val chat = activeChat.value!!
// We need to have real unreadCount value for displaying it inside top right button // We need to have real unreadCount value for displaying it inside top right button
// Having activeChat reloaded on every change in it is inefficient (UI lags) // Having activeChat reloaded on every change in it is inefficient (UI lags)
val unreadCount = remember { val unreadCount = remember {
@@ -167,11 +166,11 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
var preloadedCode: String? = null var preloadedCode: String? = null
var preloadedLink: Pair<String, GroupMemberRole>? = null var preloadedLink: Pair<String, GroupMemberRole>? = null
if (chat.chatInfo is ChatInfo.Direct) { if (chat.chatInfo is ChatInfo.Direct) {
preloadedContactInfo = chatModel.controller.apiContactInfo(chatRh, chat.chatInfo.apiId) preloadedContactInfo = chatModel.controller.apiContactInfo(chat.chatInfo.apiId)
preloadedCode = chatModel.controller.apiGetContactCode(chatRh, chat.chatInfo.apiId)?.second preloadedCode = chatModel.controller.apiGetContactCode(chat.chatInfo.apiId)?.second
} else if (chat.chatInfo is ChatInfo.Group) { } else if (chat.chatInfo is ChatInfo.Group) {
setGroupMembers(chatRh, chat.chatInfo.groupInfo, chatModel) setGroupMembers(chat.chatInfo.groupInfo, chatModel)
preloadedLink = chatModel.controller.apiGetGroupLink(chatRh, chat.chatInfo.groupInfo.groupId) preloadedLink = chatModel.controller.apiGetGroupLink(chat.chatInfo.groupInfo.groupId)
} }
ModalManager.end.showModalCloseable(true) { close -> ModalManager.end.showModalCloseable(true) { close ->
val chat = remember { activeChat }.value val chat = remember { activeChat }.value
@@ -179,20 +178,20 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
var contactInfo: Pair<ConnectionStats?, Profile?>? by remember { mutableStateOf(preloadedContactInfo) } var contactInfo: Pair<ConnectionStats?, Profile?>? by remember { mutableStateOf(preloadedContactInfo) }
var code: String? by remember { mutableStateOf(preloadedCode) } var code: String? by remember { mutableStateOf(preloadedCode) }
KeyChangeEffect(chat.id, ChatModel.networkStatuses.toMap()) { KeyChangeEffect(chat.id, ChatModel.networkStatuses.toMap()) {
contactInfo = chatModel.controller.apiContactInfo(chatRh, chat.chatInfo.apiId) contactInfo = chatModel.controller.apiContactInfo(chat.chatInfo.apiId)
preloadedContactInfo = contactInfo preloadedContactInfo = contactInfo
code = chatModel.controller.apiGetContactCode(chatRh, chat.chatInfo.apiId)?.second code = chatModel.controller.apiGetContactCode(chat.chatInfo.apiId)?.second
preloadedCode = code preloadedCode = code
} }
ChatInfoView(chatModel, (chat.chatInfo as ChatInfo.Direct).contact, contactInfo?.first, contactInfo?.second, chat.chatInfo.localAlias, code, close) ChatInfoView(chatModel, (chat.chatInfo as ChatInfo.Direct).contact, contactInfo?.first, contactInfo?.second, chat.chatInfo.localAlias, code, close)
} else if (chat?.chatInfo is ChatInfo.Group) { } else if (chat?.chatInfo is ChatInfo.Group) {
var link: Pair<String, GroupMemberRole>? by remember(chat.id) { mutableStateOf(preloadedLink) } var link: Pair<String, GroupMemberRole>? by remember(chat.id) { mutableStateOf(preloadedLink) }
KeyChangeEffect(chat.id) { KeyChangeEffect(chat.id) {
setGroupMembers(chatRh, (chat.chatInfo as ChatInfo.Group).groupInfo, chatModel) setGroupMembers((chat.chatInfo as ChatInfo.Group).groupInfo, chatModel)
link = chatModel.controller.apiGetGroupLink(chatRh, chat.chatInfo.groupInfo.groupId) link = chatModel.controller.apiGetGroupLink(chat.chatInfo.groupInfo.groupId)
preloadedLink = link preloadedLink = link
} }
GroupChatInfoView(chatModel, chatRh, chat.id, link?.first, link?.second, { GroupChatInfoView(chatModel, link?.first, link?.second, {
link = it link = it
preloadedLink = it preloadedLink = it
}, close) }, close)
@@ -203,19 +202,19 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
showMemberInfo = { groupInfo: GroupInfo, member: GroupMember -> showMemberInfo = { groupInfo: GroupInfo, member: GroupMember ->
hideKeyboard(view) hideKeyboard(view)
withApi { withApi {
val r = chatModel.controller.apiGroupMemberInfo(chatRh, groupInfo.groupId, member.groupMemberId) val r = chatModel.controller.apiGroupMemberInfo(groupInfo.groupId, member.groupMemberId)
val stats = r?.second val stats = r?.second
val (_, code) = if (member.memberActive) { val (_, code) = if (member.memberActive) {
val memCode = chatModel.controller.apiGetGroupMemberCode(chatRh, groupInfo.apiId, member.groupMemberId) val memCode = chatModel.controller.apiGetGroupMemberCode(groupInfo.apiId, member.groupMemberId)
member to memCode?.second member to memCode?.second
} else { } else {
member to null member to null
} }
setGroupMembers(chatRh, groupInfo, chatModel) setGroupMembers(groupInfo, chatModel)
ModalManager.end.closeModals() ModalManager.end.closeModals()
ModalManager.end.showModalCloseable(true) { close -> ModalManager.end.showModalCloseable(true) { close ->
remember { derivedStateOf { chatModel.getGroupMember(member.groupMemberId) } }.value?.let { mem -> remember { derivedStateOf { chatModel.getGroupMember(member.groupMemberId) } }.value?.let { mem ->
GroupMemberInfoView(chatRh, groupInfo, mem, stats, code, chatModel, close, close) GroupMemberInfoView(groupInfo, mem, stats, code, chatModel, close, close)
} }
} }
} }
@@ -226,7 +225,7 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
if (c != null && firstId != null) { if (c != null && firstId != null) {
withApi { withApi {
Log.d(TAG, "TODOCHAT: loadPrevMessages: loading for ${c.id}, current chatId ${ChatModel.chatId.value}, size was ${ChatModel.chatItems.size}") Log.d(TAG, "TODOCHAT: loadPrevMessages: loading for ${c.id}, current chatId ${ChatModel.chatId.value}, size was ${ChatModel.chatItems.size}")
apiLoadPrevMessages(c, chatModel, firstId, searchText.value) apiLoadPrevMessages(c.chatInfo, chatModel, firstId, searchText.value)
Log.d(TAG, "TODOCHAT: loadPrevMessages: loaded for ${c.id}, current chatId ${ChatModel.chatId.value}, size now ${ChatModel.chatItems.size}") Log.d(TAG, "TODOCHAT: loadPrevMessages: loaded for ${c.id}, current chatId ${ChatModel.chatId.value}, size now ${ChatModel.chatItems.size}")
} }
} }
@@ -242,7 +241,6 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
val toChatItem: ChatItem? val toChatItem: ChatItem?
if (mode == CIDeleteMode.cidmBroadcast && groupInfo != null && groupMember != null) { if (mode == CIDeleteMode.cidmBroadcast && groupInfo != null && groupMember != null) {
val r = chatModel.controller.apiDeleteMemberChatItem( val r = chatModel.controller.apiDeleteMemberChatItem(
chatRh,
groupId = groupInfo.groupId, groupId = groupInfo.groupId,
groupMemberId = groupMember.groupMemberId, groupMemberId = groupMember.groupMemberId,
itemId = itemId itemId = itemId
@@ -251,7 +249,6 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
toChatItem = r?.second toChatItem = r?.second
} else { } else {
val r = chatModel.controller.apiDeleteChatItem( val r = chatModel.controller.apiDeleteChatItem(
chatRh,
type = cInfo.chatType, type = cInfo.chatType,
id = cInfo.apiId, id = cInfo.apiId,
itemId = itemId, itemId = itemId,
@@ -261,9 +258,9 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
toChatItem = r?.toChatItem?.chatItem toChatItem = r?.toChatItem?.chatItem
} }
if (toChatItem == null && deletedChatItem != null) { if (toChatItem == null && deletedChatItem != null) {
chatModel.removeChatItem(chatRh, cInfo, deletedChatItem) chatModel.removeChatItem(cInfo, deletedChatItem)
} else if (toChatItem != null) { } else if (toChatItem != null) {
chatModel.upsertChatItem(chatRh, cInfo, toChatItem) chatModel.upsertChatItem(cInfo, toChatItem)
} }
} }
}, },
@@ -274,27 +271,27 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
val deletedItems: ArrayList<ChatItem> = arrayListOf() val deletedItems: ArrayList<ChatItem> = arrayListOf()
for (itemId in itemIds) { for (itemId in itemIds) {
val di = chatModel.controller.apiDeleteChatItem( val di = chatModel.controller.apiDeleteChatItem(
chatRh, chatInfo.chatType, chatInfo.apiId, itemId, CIDeleteMode.cidmInternal chatInfo.chatType, chatInfo.apiId, itemId, CIDeleteMode.cidmInternal
)?.deletedChatItem?.chatItem )?.deletedChatItem?.chatItem
if (di != null) { if (di != null) {
deletedItems.add(di) deletedItems.add(di)
} }
} }
for (di in deletedItems) { for (di in deletedItems) {
chatModel.removeChatItem(chatRh, chatInfo, di) chatModel.removeChatItem(chatInfo, di)
} }
} }
} }
}, },
receiveFile = { fileId, encrypted -> receiveFile = { fileId, encrypted ->
withApi { chatModel.controller.receiveFile(chatRh, user, fileId, encrypted) } withApi { chatModel.controller.receiveFile(user, fileId, encrypted) }
}, },
cancelFile = { fileId -> cancelFile = { fileId ->
withApi { chatModel.controller.cancelFile(chatRh, user, fileId) } withApi { chatModel.controller.cancelFile(user, fileId) }
}, },
joinGroup = { groupId, onComplete -> joinGroup = { groupId, onComplete ->
withApi { withApi {
chatModel.controller.apiJoinGroup(chatRh, groupId) chatModel.controller.apiJoinGroup(groupId)
onComplete.invoke() onComplete.invoke()
} }
}, },
@@ -302,7 +299,7 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
withBGApi { withBGApi {
val cInfo = chat.chatInfo val cInfo = chat.chatInfo
if (cInfo is ChatInfo.Direct) { if (cInfo is ChatInfo.Direct) {
chatModel.activeCall.value = Call(remoteHostId = chatRh, contact = cInfo.contact, callState = CallState.WaitCapabilities, localMedia = media) chatModel.activeCall.value = Call(contact = cInfo.contact, callState = CallState.WaitCapabilities, localMedia = media)
chatModel.showCallView.value = true chatModel.showCallView.value = true
chatModel.callCommand.add(WCallCommand.Capabilities(media)) chatModel.callCommand.add(WCallCommand.Capabilities(media))
} }
@@ -323,48 +320,48 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
}, },
acceptFeature = { contact, feature, param -> acceptFeature = { contact, feature, param ->
withApi { withApi {
chatModel.controller.allowFeatureToContact(chatRh, contact, feature, param) chatModel.controller.allowFeatureToContact(contact, feature, param)
} }
}, },
openDirectChat = { contactId -> openDirectChat = { contactId ->
withApi { withApi {
openDirectChat(chatRh, contactId, chatModel) openDirectChat(contactId, chatModel)
} }
}, },
updateContactStats = { contact -> updateContactStats = { contact ->
withApi { withApi {
val r = chatModel.controller.apiContactInfo(chatRh, chat.chatInfo.apiId) val r = chatModel.controller.apiContactInfo(chat.chatInfo.apiId)
if (r != null) { if (r != null) {
val contactStats = r.first val contactStats = r.first
if (contactStats != null) if (contactStats != null)
chatModel.updateContactConnectionStats(chatRh, contact, contactStats) chatModel.updateContactConnectionStats(contact, contactStats)
} }
} }
}, },
updateMemberStats = { groupInfo, member -> updateMemberStats = { groupInfo, member ->
withApi { withApi {
val r = chatModel.controller.apiGroupMemberInfo(chatRh, groupInfo.groupId, member.groupMemberId) val r = chatModel.controller.apiGroupMemberInfo(groupInfo.groupId, member.groupMemberId)
if (r != null) { if (r != null) {
val memStats = r.second val memStats = r.second
if (memStats != null) { if (memStats != null) {
chatModel.updateGroupMemberConnectionStats(chatRh, groupInfo, r.first, memStats) chatModel.updateGroupMemberConnectionStats(groupInfo, r.first, memStats)
} }
} }
} }
}, },
syncContactConnection = { contact -> syncContactConnection = { contact ->
withApi { withApi {
val cStats = chatModel.controller.apiSyncContactRatchet(chatRh, contact.contactId, force = false) val cStats = chatModel.controller.apiSyncContactRatchet(contact.contactId, force = false)
if (cStats != null) { if (cStats != null) {
chatModel.updateContactConnectionStats(chatRh, contact, cStats) chatModel.updateContactConnectionStats(contact, cStats)
} }
} }
}, },
syncMemberConnection = { groupInfo, member -> syncMemberConnection = { groupInfo, member ->
withApi { withApi {
val r = chatModel.controller.apiSyncGroupMemberRatchet(chatRh, groupInfo.apiId, member.groupMemberId, force = false) val r = chatModel.controller.apiSyncGroupMemberRatchet(groupInfo.apiId, member.groupMemberId, force = false)
if (r != null) { if (r != null) {
chatModel.updateGroupMemberConnectionStats(chatRh, groupInfo, r.first, r.second) chatModel.updateGroupMemberConnectionStats(groupInfo, r.first, r.second)
} }
} }
}, },
@@ -377,7 +374,6 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
setReaction = { cInfo, cItem, add, reaction -> setReaction = { cInfo, cItem, add, reaction ->
withApi { withApi {
val updatedCI = chatModel.controller.apiChatItemReaction( val updatedCI = chatModel.controller.apiChatItemReaction(
rh = chatRh,
type = cInfo.chatType, type = cInfo.chatType,
id = cInfo.apiId, id = cInfo.apiId,
itemId = cItem.id, itemId = cItem.id,
@@ -391,10 +387,10 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
}, },
showItemDetails = { cInfo, cItem -> showItemDetails = { cInfo, cItem ->
withApi { withApi {
val ciInfo = chatModel.controller.apiGetChatItemInfo(chatRh, cInfo.chatType, cInfo.apiId, cItem.id) val ciInfo = chatModel.controller.apiGetChatItemInfo(cInfo.chatType, cInfo.apiId, cItem.id)
if (ciInfo != null) { if (ciInfo != null) {
if (chat.chatInfo is ChatInfo.Group) { if (chat.chatInfo is ChatInfo.Group) {
setGroupMembers(chatRh, chat.chatInfo.groupInfo, chatModel) setGroupMembers(chat.chatInfo.groupInfo, chatModel)
} }
ModalManager.end.closeModals() ModalManager.end.closeModals()
ModalManager.end.showModal(endButtons = { ShareButton { ModalManager.end.showModal(endButtons = { ShareButton {
@@ -408,29 +404,28 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
addMembers = { groupInfo -> addMembers = { groupInfo ->
hideKeyboard(view) hideKeyboard(view)
withApi { withApi {
setGroupMembers(chatRh, groupInfo, chatModel) setGroupMembers(groupInfo, chatModel)
ModalManager.end.closeModals() ModalManager.end.closeModals()
ModalManager.end.showModalCloseable(true) { close -> ModalManager.end.showModalCloseable(true) { close ->
AddGroupMembersView(chatRh, groupInfo, false, chatModel, close) AddGroupMembersView(groupInfo, false, chatModel, close)
} }
} }
}, },
openGroupLink = { groupInfo -> openGroupLink = { groupInfo ->
hideKeyboard(view) hideKeyboard(view)
withApi { withApi {
val link = chatModel.controller.apiGetGroupLink(chatRh, groupInfo.groupId) val link = chatModel.controller.apiGetGroupLink(groupInfo.groupId)
ModalManager.end.closeModals() ModalManager.end.closeModals()
ModalManager.end.showModalCloseable(true) { ModalManager.end.showModalCloseable(true) {
GroupLinkView(chatModel, chatRh, groupInfo, link?.first, link?.second, onGroupLinkUpdated = null) GroupLinkView(chatModel, groupInfo, link?.first, link?.second, onGroupLinkUpdated = null)
} }
} }
}, },
markRead = { range, unreadCountAfter -> markRead = { range, unreadCountAfter ->
chatModel.markChatItemsRead(chat, range, unreadCountAfter) chatModel.markChatItemsRead(chat.chatInfo, range, unreadCountAfter)
ntfManager.cancelNotificationsForChat(chat.id) ntfManager.cancelNotificationsForChat(chat.id)
withBGApi { withBGApi {
chatModel.controller.apiChatRead( chatModel.controller.apiChatRead(
chatRh,
chat.chatInfo.chatType, chat.chatInfo.chatType,
chat.chatInfo.apiId, chat.chatInfo.apiId,
range range
@@ -442,7 +437,7 @@ fun ChatView(chatId: String, chatModel: ChatModel, onComposed: suspend (chatId:
if (searchText.value == value) return@ChatLayout if (searchText.value == value) return@ChatLayout
val c = chatModel.getChat(chat.chatInfo.id) ?: return@ChatLayout val c = chatModel.getChat(chat.chatInfo.id) ?: return@ChatLayout
withApi { withApi {
apiFindMessages(c, chatModel, value) apiFindMessages(c.chatInfo, chatModel, value)
searchText.value = value searchText.value = value
} }
}, },
@@ -501,9 +496,8 @@ fun ChatLayout(
.fillMaxWidth() .fillMaxWidth()
.desktopOnExternalDrag( .desktopOnExternalDrag(
enabled = !attachmentDisabled.value && rememberUpdatedState(chat.userCanSend).value, enabled = !attachmentDisabled.value && rememberUpdatedState(chat.userCanSend).value,
onFiles = { paths -> composeState.onFilesAttached(paths.map { it.toURI() }) }, onFiles = { paths -> composeState.onFilesAttached(paths.map { URI.create(it) }) },
onImage = { onImage = {
// TODO: file is not saved anywhere?!
val tmpFile = File.createTempFile("image", ".bmp", tmpDir) val tmpFile = File.createTempFile("image", ".bmp", tmpDir)
tmpFile.deleteOnExit() tmpFile.deleteOnExit()
chatModel.filesToDelete.add(tmpFile) chatModel.filesToDelete.add(tmpFile)
@@ -900,7 +894,7 @@ fun BoxWithConstraintsScope.ChatItemsList(
@Composable @Composable
fun ChatItemViewShortHand(cItem: ChatItem, range: IntRange?) { fun ChatItemViewShortHand(cItem: ChatItem, range: IntRange?) {
ChatItemView(chat.chatInfo, cItem, composeState, provider, useLinkPreviews = useLinkPreviews, linkMode = linkMode, revealed = revealed, range = range, deleteMessage = deleteMessage, deleteMessages = deleteMessages, receiveFile = receiveFile, cancelFile = cancelFile, joinGroup = joinGroup, acceptCall = acceptCall, acceptFeature = acceptFeature, openDirectChat = openDirectChat, updateContactStats = updateContactStats, updateMemberStats = updateMemberStats, syncContactConnection = syncContactConnection, syncMemberConnection = syncMemberConnection, findModelChat = findModelChat, findModelMember = findModelMember, scrollToItem = scrollToItem, setReaction = setReaction, showItemDetails = showItemDetails, developerTools = developerTools) ChatItemView(chat.chatInfo, cItem, composeState, provider, useLinkPreviews = useLinkPreviews, linkMode = linkMode, revealed = revealed, range = range, deleteMessage = deleteMessage, deleteMessages = deleteMessages, receiveFile = receiveFile, cancelFile = cancelFile, joinGroup = { _, _ -> }, acceptCall = acceptCall, acceptFeature = acceptFeature, openDirectChat = openDirectChat, updateContactStats = updateContactStats, updateMemberStats = updateMemberStats, syncContactConnection = syncContactConnection, syncMemberConnection = syncMemberConnection, findModelChat = findModelChat, findModelMember = findModelMember, scrollToItem = scrollToItem, setReaction = setReaction, showItemDetails = showItemDetails, developerTools = developerTools)
} }
@Composable @Composable
@@ -1258,16 +1252,14 @@ private fun markUnreadChatAsRead(activeChat: MutableState<Chat?>, chatModel: Cha
val chat = activeChat.value val chat = activeChat.value
if (chat?.chatStats?.unreadChat != true) return if (chat?.chatStats?.unreadChat != true) return
withApi { withApi {
val chatRh = chat.remoteHostId
val success = chatModel.controller.apiChatUnread( val success = chatModel.controller.apiChatUnread(
chatRh,
chat.chatInfo.chatType, chat.chatInfo.chatType,
chat.chatInfo.apiId, chat.chatInfo.apiId,
false false
) )
if (success && chat.id == activeChat.value?.id) { if (success && chat.id == activeChat.value?.id) {
activeChat.value = chat.copy(chatStats = chat.chatStats.copy(unreadChat = false)) activeChat.value = chat.copy(chatStats = chat.chatStats.copy(unreadChat = false))
chatModel.replaceChat(chatRh, chat.id, activeChat.value!!) chatModel.replaceChat(chat.id, activeChat.value!!)
} }
} }
} }
@@ -1307,7 +1299,7 @@ private fun providerForGallery(
scrollTo: (Int) -> Unit scrollTo: (Int) -> Unit
): ImageGalleryProvider { ): ImageGalleryProvider {
fun canShowMedia(item: ChatItem): Boolean = fun canShowMedia(item: ChatItem): Boolean =
(item.content.msgContent is MsgContent.MCImage || item.content.msgContent is MsgContent.MCVideo) && (item.file?.loaded == true && (getLoadedFilePath(item.file) != null || chatModel.connectedToRemote())) (item.content.msgContent is MsgContent.MCImage || item.content.msgContent is MsgContent.MCVideo) && (item.file?.loaded == true && getLoadedFilePath(item.file) != null)
fun item(skipInternalIndex: Int, initialChatId: Long): Pair<Int, ChatItem>? { fun item(skipInternalIndex: Int, initialChatId: Long): Pair<Int, ChatItem>? {
var processedInternalIndex = -skipInternalIndex.sign var processedInternalIndex = -skipInternalIndex.sign
@@ -1334,7 +1326,7 @@ private fun providerForGallery(
val item = item(internalIndex, initialChatId)?.second ?: return null val item = item(internalIndex, initialChatId)?.second ?: return null
return when (item.content.msgContent) { return when (item.content.msgContent) {
is MsgContent.MCImage -> { is MsgContent.MCImage -> {
val res = runBlocking { getLoadedImage(item.file) } val res = getLoadedImage(item.file)
val filePath = getLoadedFilePath(item.file) val filePath = getLoadedFilePath(item.file)
if (res != null && filePath != null) { if (res != null && filePath != null) {
val (imageBitmap: ImageBitmap, data: ByteArray) = res val (imageBitmap: ImageBitmap, data: ByteArray) = res
@@ -1342,7 +1334,7 @@ private fun providerForGallery(
} else null } else null
} }
is MsgContent.MCVideo -> { is MsgContent.MCVideo -> {
val filePath = if (chatModel.connectedToRemote() && item.file?.loaded == true) getAppFilePath(item.file.fileName) else getLoadedFilePath(item.file) val filePath = getLoadedFilePath(item.file)
if (filePath != null) { if (filePath != null) {
val uri = getAppFileUri(filePath.substringAfterLast(File.separator)) val uri = getAppFileUri(filePath.substringAfterLast(File.separator))
ProviderMedia.Video(uri, (item.content.msgContent as MsgContent.MCVideo).image) ProviderMedia.Video(uri, (item.content.msgContent as MsgContent.MCVideo).image)
@@ -1418,7 +1410,6 @@ fun PreviewChatLayout() {
val searchValue = remember { mutableStateOf("") } val searchValue = remember { mutableStateOf("") }
ChatLayout( ChatLayout(
chat = Chat( chat = Chat(
remoteHostId = null,
chatInfo = ChatInfo.Direct.sampleData, chatInfo = ChatInfo.Direct.sampleData,
chatItems = chatItems, chatItems = chatItems,
chatStats = Chat.ChatStats() chatStats = Chat.ChatStats()
@@ -1491,7 +1482,6 @@ fun PreviewGroupChatLayout() {
val searchValue = remember { mutableStateOf("") } val searchValue = remember { mutableStateOf("") }
ChatLayout( ChatLayout(
chat = Chat( chat = Chat(
remoteHostId = null,
chatInfo = ChatInfo.Group.sampleData, chatInfo = ChatInfo.Group.sampleData,
chatItems = chatItems, chatItems = chatItems,
chatStats = Chat.ChatStats() chatStats = Chat.ChatStats()
@@ -15,8 +15,6 @@ import dev.icerock.moko.resources.compose.painterResource
import dev.icerock.moko.resources.compose.stringResource import dev.icerock.moko.resources.compose.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import chat.simplex.common.model.* import chat.simplex.common.model.*
import chat.simplex.common.model.ChatModel.controller
import chat.simplex.common.model.ChatModel.filesToDelete
import chat.simplex.common.platform.* import chat.simplex.common.platform.*
import chat.simplex.common.ui.theme.Indigo import chat.simplex.common.ui.theme.Indigo
import chat.simplex.common.ui.theme.isSystemInDarkTheme import chat.simplex.common.ui.theme.isSystemInDarkTheme
@@ -351,10 +349,8 @@ fun ComposeView(
} }
} }
suspend fun send(chat: Chat, mc: MsgContent, quoted: Long?, file: CryptoFile? = null, live: Boolean = false, ttl: Int?): ChatItem? { suspend fun send(cInfo: ChatInfo, mc: MsgContent, quoted: Long?, file: CryptoFile? = null, live: Boolean = false, ttl: Int?): ChatItem? {
val cInfo = chat.chatInfo
val aChatItem = chatModel.controller.apiSendMessage( val aChatItem = chatModel.controller.apiSendMessage(
rh = chat.remoteHostId,
type = cInfo.chatType, type = cInfo.chatType,
id = cInfo.apiId, id = cInfo.apiId,
file = file, file = file,
@@ -364,7 +360,7 @@ fun ComposeView(
ttl = ttl ttl = ttl
) )
if (aChatItem != null) { if (aChatItem != null) {
chatModel.addChatItem(chat.remoteHostId, cInfo, aChatItem.chatItem) chatModel.addChatItem(cInfo, aChatItem.chatItem)
return aChatItem.chatItem return aChatItem.chatItem
} }
if (file != null) removeFile(file.filePath) if (file != null) removeFile(file.filePath)
@@ -411,25 +407,23 @@ fun ComposeView(
suspend fun sendMemberContactInvitation() { suspend fun sendMemberContactInvitation() {
val mc = checkLinkPreview() val mc = checkLinkPreview()
val contact = chatModel.controller.apiSendMemberContactInvitation(chat.remoteHostId, chat.chatInfo.apiId, mc) val contact = chatModel.controller.apiSendMemberContactInvitation(chat.chatInfo.apiId, mc)
if (contact != null) { if (contact != null) {
chatModel.updateContact(chat.remoteHostId, contact) chatModel.updateContact(contact)
} }
} }
suspend fun updateMessage(ei: ChatItem, chat: Chat, live: Boolean): ChatItem? { suspend fun updateMessage(ei: ChatItem, cInfo: ChatInfo, live: Boolean): ChatItem? {
val cInfo = chat.chatInfo
val oldMsgContent = ei.content.msgContent val oldMsgContent = ei.content.msgContent
if (oldMsgContent != null) { if (oldMsgContent != null) {
val updatedItem = chatModel.controller.apiUpdateChatItem( val updatedItem = chatModel.controller.apiUpdateChatItem(
rh = chat.remoteHostId,
type = cInfo.chatType, type = cInfo.chatType,
id = cInfo.apiId, id = cInfo.apiId,
itemId = ei.meta.itemId, itemId = ei.meta.itemId,
mc = updateMsgContent(oldMsgContent), mc = updateMsgContent(oldMsgContent),
live = live live = live
) )
if (updatedItem != null) chatModel.upsertChatItem(chat.remoteHostId, cInfo, updatedItem.chatItem) if (updatedItem != null) chatModel.upsertChatItem(cInfo, updatedItem.chatItem)
return updatedItem?.chatItem return updatedItem?.chatItem
} }
return null return null
@@ -447,29 +441,21 @@ fun ComposeView(
sent = null sent = null
} else if (cs.contextItem is ComposeContextItem.EditingItem) { } else if (cs.contextItem is ComposeContextItem.EditingItem) {
val ei = cs.contextItem.chatItem val ei = cs.contextItem.chatItem
sent = updateMessage(ei, chat, live) sent = updateMessage(ei, cInfo, live)
} else if (liveMessage != null && liveMessage.sent) { } else if (liveMessage != null && liveMessage.sent) {
sent = updateMessage(liveMessage.chatItem, chat, live) sent = updateMessage(liveMessage.chatItem, cInfo, live)
} else { } else {
val msgs: ArrayList<MsgContent> = ArrayList() val msgs: ArrayList<MsgContent> = ArrayList()
val files: ArrayList<CryptoFile> = ArrayList() val files: ArrayList<CryptoFile> = ArrayList()
val remoteHost = chatModel.currentRemoteHost.value
when (val preview = cs.preview) { when (val preview = cs.preview) {
ComposePreview.NoPreview -> msgs.add(MsgContent.MCText(msgText)) ComposePreview.NoPreview -> msgs.add(MsgContent.MCText(msgText))
is ComposePreview.CLinkPreview -> msgs.add(checkLinkPreview()) is ComposePreview.CLinkPreview -> msgs.add(checkLinkPreview())
is ComposePreview.MediaPreview -> { is ComposePreview.MediaPreview -> {
preview.content.forEachIndexed { index, it -> preview.content.forEachIndexed { index, it ->
val encrypted = chatController.appPrefs.privacyEncryptLocalFiles.get()
val file = when (it) { val file = when (it) {
is UploadContent.SimpleImage -> is UploadContent.SimpleImage -> saveImage(it.uri, encrypted = chatController.appPrefs.privacyEncryptLocalFiles.get())
if (remoteHost == null) saveImage(it.uri, encrypted = encrypted) is UploadContent.AnimatedImage -> saveAnimImage(it.uri, encrypted = chatController.appPrefs.privacyEncryptLocalFiles.get())
else desktopSaveImageInTmp(it.uri) is UploadContent.Video -> saveFileFromUri(it.uri, encrypted = false)
is UploadContent.AnimatedImage ->
if (remoteHost == null) saveAnimImage(it.uri, encrypted = encrypted)
else CryptoFile.desktopPlain(it.uri)
is UploadContent.Video ->
if (remoteHost == null) saveFileFromUri(it.uri, encrypted = false)
else CryptoFile.desktopPlain(it.uri)
} }
if (file != null) { if (file != null) {
files.add(file) files.add(file)
@@ -484,32 +470,22 @@ fun ComposeView(
is ComposePreview.VoicePreview -> { is ComposePreview.VoicePreview -> {
val tmpFile = File(preview.voice) val tmpFile = File(preview.voice)
AudioPlayer.stop(tmpFile.absolutePath) AudioPlayer.stop(tmpFile.absolutePath)
if (remoteHost == null) { val actualFile = File(getAppFilePath(tmpFile.name.replaceAfter(RecorderInterface.extension, "")))
val actualFile = File(getAppFilePath(tmpFile.name.replaceAfter(RecorderInterface.extension, ""))) files.add(withContext(Dispatchers.IO) {
files.add(withContext(Dispatchers.IO) { if (chatController.appPrefs.privacyEncryptLocalFiles.get()) {
if (chatController.appPrefs.privacyEncryptLocalFiles.get()) { val args = encryptCryptoFile(tmpFile.absolutePath, actualFile.absolutePath)
val args = encryptCryptoFile(tmpFile.absolutePath, actualFile.absolutePath) tmpFile.delete()
tmpFile.delete() CryptoFile(actualFile.name, args)
CryptoFile(actualFile.name, args) } else {
} else { Files.move(tmpFile.toPath(), actualFile.toPath())
Files.move(tmpFile.toPath(), actualFile.toPath()) CryptoFile.plain(actualFile.name)
CryptoFile.plain(actualFile.name) }
} })
}) deleteUnusedFiles()
deleteUnusedFiles()
} else {
files.add(CryptoFile.plain(tmpFile.absolutePath))
// It will be deleted on JVM shutdown or next start (if the app crashes unexpectedly)
filesToDelete.remove(tmpFile)
}
msgs.add(MsgContent.MCVoice(if (msgs.isEmpty()) msgText else "", preview.durationMs / 1000)) msgs.add(MsgContent.MCVoice(if (msgs.isEmpty()) msgText else "", preview.durationMs / 1000))
} }
is ComposePreview.FilePreview -> { is ComposePreview.FilePreview -> {
val file = if (remoteHost == null) { val file = saveFileFromUri(preview.uri, encrypted = chatController.appPrefs.privacyEncryptLocalFiles.get())
saveFileFromUri(preview.uri, encrypted = chatController.appPrefs.privacyEncryptLocalFiles.get())
} else {
CryptoFile.desktopPlain(preview.uri)
}
if (file != null) { if (file != null) {
files.add((file)) files.add((file))
msgs.add(MsgContent.MCFile(if (msgs.isEmpty()) msgText else "")) msgs.add(MsgContent.MCFile(if (msgs.isEmpty()) msgText else ""))
@@ -523,15 +499,7 @@ fun ComposeView(
sent = null sent = null
msgs.forEachIndexed { index, content -> msgs.forEachIndexed { index, content ->
if (index > 0) delay(100) if (index > 0) delay(100)
var file = files.getOrNull(index) sent = send(cInfo, content, if (index == 0) quotedItemId else null, files.getOrNull(index),
if (remoteHost != null && file != null) {
file = controller.storeRemoteFile(
rhId = remoteHost.remoteHostId,
storeEncrypted = if (content is MsgContent.MCVideo) false else null,
localPath = file.filePath
)
}
sent = send(chat, content, if (index == 0) quotedItemId else null, file,
live = if (content !is MsgContent.MCVoice && index == msgs.lastIndex) live else false, live = if (content !is MsgContent.MCVoice && index == msgs.lastIndex) live else false,
ttl = ttl ttl = ttl
) )
@@ -541,7 +509,7 @@ fun ComposeView(
cs.preview is ComposePreview.FilePreview || cs.preview is ComposePreview.FilePreview ||
cs.preview is ComposePreview.VoicePreview) cs.preview is ComposePreview.VoicePreview)
) { ) {
sent = send(chat, MsgContent.MCText(msgText), quotedItemId, null, live, ttl) sent = send(cInfo, MsgContent.MCText(msgText), quotedItemId, null, live, ttl)
} }
} }
clearState(live) clearState(live)
@@ -576,7 +544,7 @@ fun ComposeView(
fun allowVoiceToContact() { fun allowVoiceToContact() {
val contact = (chat.chatInfo as ChatInfo.Direct?)?.contact ?: return val contact = (chat.chatInfo as ChatInfo.Direct?)?.contact ?: return
withApi { withApi {
chatModel.controller.allowFeatureToContact(chat.remoteHostId, contact, ChatFeature.Voice) chatModel.controller.allowFeatureToContact(contact, ChatFeature.Voice)
} }
} }
@@ -850,7 +818,6 @@ fun ComposeView(
deleteUnusedFiles() deleteUnusedFiles()
} }
chatModel.removeLiveDummy() chatModel.removeLiveDummy()
CIFile.cachedRemoteFileRequests.clear()
} }
val timedMessageAllowed = remember(chat.chatInfo) { chat.chatInfo.featureEnabled(ChatFeature.TimedMessages) } val timedMessageAllowed = remember(chat.chatInfo) { chat.chatInfo.featureEnabled(ChatFeature.TimedMessages) }
@@ -25,7 +25,6 @@ import chat.simplex.res.MR
fun ContactPreferencesView( fun ContactPreferencesView(
m: ChatModel, m: ChatModel,
user: User, user: User,
rhId: Long?,
contactId: Long, contactId: Long,
close: () -> Unit, close: () -> Unit,
) { ) {
@@ -37,9 +36,9 @@ fun ContactPreferencesView(
fun savePrefs(afterSave: () -> Unit = {}) { fun savePrefs(afterSave: () -> Unit = {}) {
withApi { withApi {
val prefs = contactFeaturesAllowedToPrefs(featuresAllowed) val prefs = contactFeaturesAllowedToPrefs(featuresAllowed)
val toContact = m.controller.apiSetContactPrefs(rhId, ct.contactId, prefs) val toContact = m.controller.apiSetContactPrefs(ct.contactId, prefs)
if (toContact != null) { if (toContact != null) {
m.updateContact(rhId, toContact) m.updateContact(toContact)
currentFeaturesAllowed = featuresAllowed currentFeaturesAllowed = featuresAllowed
} }
afterSave() afterSave()
@@ -11,13 +11,16 @@ import chat.simplex.res.MR
import dev.icerock.moko.resources.compose.stringResource import dev.icerock.moko.resources.compose.stringResource
@Composable @Composable
fun ScanCodeView(verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit, close: () -> Unit) { expect fun ScanCodeView(verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit, close: () -> Unit)
@Composable
fun ScanCodeLayout(verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit, close: () -> Unit) {
Column( Column(
Modifier Modifier
.fillMaxSize() .fillMaxSize()
.padding(horizontal = DEFAULT_PADDING) .padding(horizontal = DEFAULT_PADDING)
) { ) {
AppBarTitle(stringResource(MR.strings.scan_code), withPadding = false) AppBarTitle(stringResource(MR.strings.scan_code), false)
Box( Box(
Modifier Modifier
.fillMaxWidth() .fillMaxWidth()
@@ -63,7 +63,7 @@ private fun VerifyCodeLayout(
.verticalScroll(rememberScrollState()) .verticalScroll(rememberScrollState())
.padding(horizontal = DEFAULT_PADDING) .padding(horizontal = DEFAULT_PADDING)
) { ) {
AppBarTitle(stringResource(MR.strings.security_code), withPadding = false) AppBarTitle(stringResource(MR.strings.security_code), false)
val splitCode = splitToParts(connectionCode, 24) val splitCode = splitToParts(connectionCode, 24)
Row(Modifier.fillMaxWidth().padding(bottom = DEFAULT_PADDING_HALF), horizontalArrangement = Arrangement.Center) { Row(Modifier.fillMaxWidth().padding(bottom = DEFAULT_PADDING_HALF), horizontalArrangement = Arrangement.Center) {
if (connectionVerified) { if (connectionVerified) {

Some files were not shown because too many files have changed in this diff Show More