mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
Compare commits
102 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 84a0db706a | |||
| 9ec69e17a5 | |||
| 52272cd29a | |||
| 8517d91861 | |||
| 27eb11b6de | |||
| 2091346690 | |||
| 8098f1f81f | |||
| b979d04d1f | |||
| 3118e430f8 | |||
| 69f9bd5316 | |||
| 3b3e922da2 | |||
| d3cceba743 | |||
| 8d65fdc2ff | |||
| 305a091a09 | |||
| e1f3920ddc | |||
| 8e8c391703 | |||
| 20853b07df | |||
| 3455ced143 | |||
| 5387d991d0 | |||
| dac5d9e672 | |||
| ba37cf3cc7 | |||
| 6b0fd777a3 | |||
| 0d71e5c4e2 | |||
| b590950655 | |||
| 745136d6dd | |||
| a2757179ba | |||
| a70c785ac0 | |||
| ac98f4363e | |||
| 906800c3c6 | |||
| 81c53420be | |||
| 840099ad17 | |||
| 656ae93851 | |||
| 21d32a3273 | |||
| eaba362792 | |||
| 362691308d | |||
| 9abe91de61 | |||
| 1bd6ac2079 | |||
| e86eb5e3c5 | |||
| f8c111633b | |||
| d55f098b86 | |||
| db40aafabf | |||
| 0151aa2e8c | |||
| fa975fa76d | |||
| 03b6cd4627 | |||
| e358ffe403 | |||
| 2c4993b491 | |||
| e7c1391e03 | |||
| bd16b89bc8 | |||
| c80cd66701 | |||
| 5d8e11c3a2 | |||
| df8ce2b06d | |||
| 6ff5f31bee | |||
| 5e29cda27b | |||
| 2e573662d5 | |||
| 4075c26dd2 | |||
| d64351b760 | |||
| b06211bd4e | |||
| 33bc539e16 | |||
| febea096db | |||
| f0781adbd3 | |||
| df30bb99cb | |||
| 7c86484978 | |||
| 307211a47f | |||
| 7d6c7c58d7 | |||
| 93319d947d | |||
| ea4927c9b0 | |||
| fe0d811bf7 | |||
| cbb3da8f83 | |||
| 83f0bd9fd3 | |||
| 615c483912 | |||
| e0c2272fcb | |||
| 362581432c | |||
| df1a471c56 | |||
| 7d43a43e82 | |||
| ae8ad5c639 | |||
| 1408d75eb3 | |||
| f408988035 | |||
| 945c5015d8 | |||
| 2e431c5afa | |||
| 924273191e | |||
| 9b82cc3303 | |||
| 19e2cebd68 | |||
| 5ef14ca95e | |||
| 886dc56de8 | |||
| bd2ca74987 | |||
| 586671c307 | |||
| ff504702de | |||
| 69e23ad58f | |||
| e9bf229a9d | |||
| 60e0e454e8 | |||
| de76e271a8 | |||
| 5f66c29dbd | |||
| 97cd2682d7 | |||
| 4f8a70a6c1 | |||
| c1a0943448 | |||
| c1c17d1f19 | |||
| 009d13210f | |||
| 892f6498be | |||
| 3fa1d7b07c | |||
| ee146cdc7b | |||
| 219381f941 | |||
| 89f380400e |
@@ -233,7 +233,7 @@ You can use SimpleX with your own servers and still communicate with people usin
|
||||
|
||||
Recent and important updates:
|
||||
|
||||
[Nov 25, 2025. Servers operated by Flux - true privacy and decentralization for all users](./20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.md)
|
||||
[Dec 10, 2024. SimpleX network: preset servers operated by Flux, business chats and more with v6.2 of the apps](./20241210-simplex-network-v6-2-servers-by-flux-business-chats.md)
|
||||
|
||||
[Oct 14, 2024. SimpleX network: security review of protocols design by Trail of Bits, v6.1 released with better calls and user experience.](./blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.md)
|
||||
|
||||
@@ -243,20 +243,14 @@ Recent and important updates:
|
||||
|
||||
[Mar 14, 2024. SimpleX Chat v5.6 beta: adding quantum resistance to Signal double ratchet algorithm.](./blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md)
|
||||
|
||||
[Jan 24, 2024. SimpleX Chat: free infrastructure from Linode, v5.5 released with private notes, group history and a simpler UX to connect.](./blog/20240124-simplex-chat-infrastructure-costs-v5-5-simplex-ux-private-notes-group-history.md)
|
||||
|
||||
[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).
|
||||
|
||||
[Apr 22, 2023. SimpleX Chat: vision and funding, v5.0 released with videos and files up to 1gb](./blog/20230422-simplex-chat-vision-funding-v5-videos-files-passcode.md).
|
||||
|
||||
[Mar 1, 2023. SimpleX File Transfer Protocol – send large files efficiently, privately and securely, soon to be integrated into SimpleX Chat apps.](./blog/20230301-simplex-file-transfer-protocol.md).
|
||||
|
||||
[Nov 8, 2022. Security audit by Trail of Bits, the new website and v4.2 released](./blog/20221108-simplex-chat-v4.2-security-audit-new-website.md).
|
||||
|
||||
[Sep 28, 2022. v4.0: encrypted local chat database and many other changes](./blog/20220928-simplex-chat-v4-encrypted-database.md).
|
||||
|
||||
[All updates](./blog)
|
||||
|
||||
## :zap: Quick installation of a terminal app
|
||||
@@ -384,9 +378,11 @@ Please also join [#simplex-devs](https://simplex.chat/contact#/?v=1-2&smp=smp%3A
|
||||
- ✅ Improve sending videos (including encryption of locally stored videos).
|
||||
- ✅ Post-quantum resistant key exchange in double ratchet protocol.
|
||||
- ✅ Message delivery relay for senders (to conceal IP address from the recipients' servers and to reduce the traffic).
|
||||
- ✅ Support multiple network operators in the app.
|
||||
- 🏗 Large groups, communities and public channels.
|
||||
- 🏗 Short links to connect and join groups.
|
||||
- 🏗 Improve stability and reduce battery usage.
|
||||
- 🏗 Improve experience for the new users.
|
||||
- 🏗 Large groups, communities and public channels.
|
||||
- Privacy & security slider - a simple way to set all settings at once.
|
||||
- SMP queue redundancy and rotation (manual is supported).
|
||||
- Include optional message into connection request sent via contact address.
|
||||
|
||||
@@ -26,6 +26,7 @@ enum NtfCallAction {
|
||||
class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
|
||||
static let shared = NtfManager()
|
||||
|
||||
public var navigatingToChat = false
|
||||
private var granted = false
|
||||
private var prevNtfTime: Dictionary<ChatId, Date> = [:]
|
||||
|
||||
@@ -74,7 +75,10 @@ class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
|
||||
}
|
||||
} else {
|
||||
if let chatId = content.targetContentIdentifier {
|
||||
ItemsModel.shared.loadOpenChat(chatId)
|
||||
self.navigatingToChat = true
|
||||
ItemsModel.shared.loadOpenChat(chatId) {
|
||||
self.navigatingToChat = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -519,7 +519,14 @@ func testProtoServer(server: String) async throws -> Result<(), ProtocolTestFail
|
||||
throw r
|
||||
}
|
||||
|
||||
func getServerOperators() throws -> ServerOperatorConditions {
|
||||
func getServerOperators() async throws -> ServerOperatorConditions {
|
||||
let r = await chatSendCmd(.apiGetServerOperators)
|
||||
if case let .serverOperatorConditions(conditions) = r { return conditions }
|
||||
logger.error("getServerOperators error: \(String(describing: r))")
|
||||
throw r
|
||||
}
|
||||
|
||||
func getServerOperatorsSync() throws -> ServerOperatorConditions {
|
||||
let r = chatSendCmdSync(.apiGetServerOperators)
|
||||
if case let .serverOperatorConditions(conditions) = r { return conditions }
|
||||
logger.error("getServerOperators error: \(String(describing: r))")
|
||||
@@ -1599,7 +1606,7 @@ func initializeChat(start: Bool, confirmStart: Bool = false, dbKey: String? = ni
|
||||
try apiSetEncryptLocalFiles(privacyEncryptLocalFilesGroupDefault.get())
|
||||
m.chatInitialized = true
|
||||
m.currentUser = try apiGetActiveUser()
|
||||
m.conditions = try getServerOperators()
|
||||
m.conditions = try getServerOperatorsSync()
|
||||
if shouldImportAppSettingsDefault.get() {
|
||||
do {
|
||||
let appSettings = try apiGetAppSettings(settings: AppSettings.current.prepareForExport())
|
||||
@@ -2014,11 +2021,16 @@ func processReceivedMsg(_ res: ChatResponse) async {
|
||||
m.removeChat(hostConn.id)
|
||||
}
|
||||
}
|
||||
case let .businessLinkConnecting(user, groupInfo, hostMember, fromContact):
|
||||
case let .businessLinkConnecting(user, groupInfo, _, fromContact):
|
||||
if !active(user) { return }
|
||||
|
||||
await MainActor.run {
|
||||
m.updateGroup(groupInfo)
|
||||
}
|
||||
if m.chatId == fromContact.id {
|
||||
ItemsModel.shared.loadOpenChat(groupInfo.id)
|
||||
}
|
||||
await MainActor.run {
|
||||
m.removeChat(fromContact.id)
|
||||
}
|
||||
case let .joinedGroupMemberConnecting(user, groupInfo, _, member):
|
||||
|
||||
@@ -143,7 +143,8 @@ struct SimpleXApp: App {
|
||||
let chats = try await apiGetChatsAsync()
|
||||
await MainActor.run { chatModel.updateChats(chats) }
|
||||
if let id = chatModel.chatId,
|
||||
let chat = chatModel.getChat(id) {
|
||||
let chat = chatModel.getChat(id),
|
||||
!NtfManager.shared.navigatingToChat {
|
||||
Task { await loadChat(chat: chat, clearItems: false) }
|
||||
}
|
||||
if let ncr = chatModel.ntfContactRequest {
|
||||
|
||||
@@ -96,6 +96,8 @@ struct ChatInfoView: View {
|
||||
@ObservedObject var chat: Chat
|
||||
@State var contact: Contact
|
||||
@State var localAlias: String
|
||||
@State var featuresAllowed: ContactFeaturesAllowed
|
||||
@State var currentFeaturesAllowed: ContactFeaturesAllowed
|
||||
var onSearch: () -> Void
|
||||
@State private var connectionStats: ConnectionStats? = nil
|
||||
@State private var customUserProfile: Profile? = nil
|
||||
@@ -154,8 +156,8 @@ struct ChatInfoView: View {
|
||||
HStack(alignment: .center, spacing: 8) {
|
||||
let buttonWidth = g.size.width / 4
|
||||
searchButton(width: buttonWidth)
|
||||
AudioCallButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
VideoButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
AudioCallButton(chat: chat, contact: contact, connectionStats: $connectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
VideoButton(chat: chat, contact: contact, connectionStats: $connectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
muteButton(width: buttonWidth)
|
||||
}
|
||||
}
|
||||
@@ -312,7 +314,15 @@ struct ChatInfoView: View {
|
||||
case .networkStatusAlert: return networkStatusAlert()
|
||||
case .switchAddressAlert: return switchAddressAlert(switchContactAddress)
|
||||
case .abortSwitchAddressAlert: return abortSwitchAddressAlert(abortSwitchContactAddress)
|
||||
case .syncConnectionForceAlert: return syncConnectionForceAlert({ syncContactConnection(force: true) })
|
||||
case .syncConnectionForceAlert:
|
||||
return syncConnectionForceAlert({
|
||||
Task {
|
||||
if let stats = await syncContactConnection(contact, force: true, showAlert: { alert = .someAlert(alert: $0) }) {
|
||||
connectionStats = stats
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
})
|
||||
case let .queueInfo(info): return queueInfoAlert(info)
|
||||
case let .someAlert(a): return a.alert
|
||||
case let .error(title, error): return mkAlert(title: title, message: error)
|
||||
@@ -327,6 +337,16 @@ struct ChatInfoView: View {
|
||||
$0.content
|
||||
}
|
||||
}
|
||||
.onDisappear {
|
||||
if currentFeaturesAllowed != featuresAllowed {
|
||||
showAlert(
|
||||
title: NSLocalizedString("Save preferences?", comment: "alert title"),
|
||||
buttonTitle: NSLocalizedString("Save and notify contact", comment: "alert button"),
|
||||
buttonAction: { savePreferences() },
|
||||
cancelButton: true
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func contactInfoHeader() -> some View {
|
||||
@@ -447,8 +467,9 @@ struct ChatInfoView: View {
|
||||
NavigationLink {
|
||||
ContactPreferencesView(
|
||||
contact: $contact,
|
||||
featuresAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
|
||||
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences)
|
||||
featuresAllowed: $featuresAllowed,
|
||||
currentFeaturesAllowed: $currentFeaturesAllowed,
|
||||
savePreferences: savePreferences
|
||||
)
|
||||
.navigationBarTitle("Contact preferences")
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
@@ -480,7 +501,12 @@ struct ChatInfoView: View {
|
||||
|
||||
private func synchronizeConnectionButton() -> some View {
|
||||
Button {
|
||||
syncContactConnection(force: false)
|
||||
Task {
|
||||
if let stats = await syncContactConnection(contact, force: false, showAlert: { alert = .someAlert(alert: $0) }) {
|
||||
connectionStats = stats
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
} label: {
|
||||
Label("Fix connection", systemImage: "exclamationmark.arrow.triangle.2.circlepath")
|
||||
.foregroundColor(.orange)
|
||||
@@ -599,29 +625,50 @@ struct ChatInfoView: View {
|
||||
}
|
||||
}
|
||||
|
||||
private func syncContactConnection(force: Bool) {
|
||||
private func savePreferences() {
|
||||
Task {
|
||||
do {
|
||||
let stats = try apiSyncContactRatchet(contact.apiId, force)
|
||||
connectionStats = stats
|
||||
await MainActor.run {
|
||||
chatModel.updateContactConnectionStats(contact, stats)
|
||||
dismiss()
|
||||
}
|
||||
} catch let error {
|
||||
logger.error("syncContactConnection apiSyncContactRatchet error: \(responseError(error))")
|
||||
let a = getErrorAlert(error, "Error synchronizing connection")
|
||||
await MainActor.run {
|
||||
alert = .error(title: a.title, error: a.message)
|
||||
let prefs = contactFeaturesAllowedToPrefs(featuresAllowed)
|
||||
if let toContact = try await apiSetContactPrefs(contactId: contact.contactId, preferences: prefs) {
|
||||
await MainActor.run {
|
||||
contact = toContact
|
||||
chatModel.updateContact(toContact)
|
||||
currentFeaturesAllowed = featuresAllowed
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
logger.error("ContactPreferencesView apiSetContactPrefs error: \(responseError(error))")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func syncContactConnection(_ contact: Contact, force: Bool, showAlert: (SomeAlert) -> Void) async -> ConnectionStats? {
|
||||
do {
|
||||
let stats = try apiSyncContactRatchet(contact.apiId, force)
|
||||
await MainActor.run {
|
||||
ChatModel.shared.updateContactConnectionStats(contact, stats)
|
||||
}
|
||||
return stats
|
||||
} catch let error {
|
||||
logger.error("syncContactConnection apiSyncContactRatchet error: \(responseError(error))")
|
||||
let a = getErrorAlert(error, "Error synchronizing connection")
|
||||
await MainActor.run {
|
||||
showAlert(
|
||||
SomeAlert(
|
||||
alert: mkAlert(title: a.title, message: a.message),
|
||||
id: "syncContactConnection error"
|
||||
)
|
||||
)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
struct AudioCallButton: View {
|
||||
var chat: Chat
|
||||
var contact: Contact
|
||||
@Binding var connectionStats: ConnectionStats?
|
||||
var width: CGFloat
|
||||
var showAlert: (SomeAlert) -> Void
|
||||
|
||||
@@ -629,6 +676,7 @@ struct AudioCallButton: View {
|
||||
CallButton(
|
||||
chat: chat,
|
||||
contact: contact,
|
||||
connectionStats: $connectionStats,
|
||||
image: "phone.fill",
|
||||
title: "call",
|
||||
mediaType: .audio,
|
||||
@@ -641,6 +689,7 @@ struct AudioCallButton: View {
|
||||
struct VideoButton: View {
|
||||
var chat: Chat
|
||||
var contact: Contact
|
||||
@Binding var connectionStats: ConnectionStats?
|
||||
var width: CGFloat
|
||||
var showAlert: (SomeAlert) -> Void
|
||||
|
||||
@@ -648,6 +697,7 @@ struct VideoButton: View {
|
||||
CallButton(
|
||||
chat: chat,
|
||||
contact: contact,
|
||||
connectionStats: $connectionStats,
|
||||
image: "video.fill",
|
||||
title: "video",
|
||||
mediaType: .video,
|
||||
@@ -660,6 +710,7 @@ struct VideoButton: View {
|
||||
private struct CallButton: View {
|
||||
var chat: Chat
|
||||
var contact: Contact
|
||||
@Binding var connectionStats: ConnectionStats?
|
||||
var image: String
|
||||
var title: LocalizedStringKey
|
||||
var mediaType: CallMediaType
|
||||
@@ -671,12 +722,40 @@ private struct CallButton: View {
|
||||
|
||||
InfoViewButton(image: image, title: title, disabledLook: !canCall, width: width) {
|
||||
if canCall {
|
||||
if CallController.useCallKit() {
|
||||
CallController.shared.startCall(contact, mediaType)
|
||||
} else {
|
||||
// When CallKit is not used, colorscheme will be changed and it will be visible if not hiding sheets first
|
||||
dismissAllSheets(animated: true) {
|
||||
CallController.shared.startCall(contact, mediaType)
|
||||
if let connStats = connectionStats {
|
||||
if connStats.ratchetSyncState == .ok {
|
||||
if CallController.useCallKit() {
|
||||
CallController.shared.startCall(contact, mediaType)
|
||||
} else {
|
||||
// When CallKit is not used, colorscheme will be changed and it will be visible if not hiding sheets first
|
||||
dismissAllSheets(animated: true) {
|
||||
CallController.shared.startCall(contact, mediaType)
|
||||
}
|
||||
}
|
||||
} else if connStats.ratchetSyncAllowed {
|
||||
showAlert(SomeAlert(
|
||||
alert: Alert(
|
||||
title: Text("Fix connection?"),
|
||||
message: Text("Connection requires encryption renegotiation."),
|
||||
primaryButton: .default(Text("Fix")) {
|
||||
Task {
|
||||
if let stats = await syncContactConnection(contact, force: false, showAlert: showAlert) {
|
||||
connectionStats = stats
|
||||
}
|
||||
}
|
||||
},
|
||||
secondaryButton: .cancel()
|
||||
),
|
||||
id: "can't call contact, fix connection"
|
||||
))
|
||||
} else {
|
||||
showAlert(SomeAlert(
|
||||
alert: mkAlert(
|
||||
title: "Can't call contact",
|
||||
message: "Encryption renegotiation in progress."
|
||||
),
|
||||
id: "can't call contact, encryption renegotiation in progress"
|
||||
))
|
||||
}
|
||||
}
|
||||
} else if contact.nextSendGrpInv {
|
||||
@@ -1173,6 +1252,8 @@ struct ChatInfoView_Previews: PreviewProvider {
|
||||
chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: []),
|
||||
contact: Contact.sampleData,
|
||||
localAlias: "",
|
||||
featuresAllowed: contactUserPrefsToFeaturesAllowed(Contact.sampleData.mergedPreferences),
|
||||
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(Contact.sampleData.mergedPreferences),
|
||||
onSearch: {}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ struct CIMemberCreatedContactView: View {
|
||||
.onTapGesture {
|
||||
dismissAllSheets(animated: true)
|
||||
DispatchQueue.main.async {
|
||||
m.chatId = "@\(contactId)"
|
||||
ItemsModel.shared.loadOpenChat("@\(contactId)")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -133,7 +133,12 @@ struct ChatView: View {
|
||||
.appSheet(item: $selectedMember) { member in
|
||||
Group {
|
||||
if case let .group(groupInfo) = chat.chatInfo {
|
||||
GroupMemberInfoView(groupInfo: groupInfo, groupMember: member, navigation: true)
|
||||
GroupMemberInfoView(
|
||||
groupInfo: groupInfo,
|
||||
chat: chat,
|
||||
groupMember: member,
|
||||
navigation: true
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -226,6 +231,8 @@ struct ChatView: View {
|
||||
chat: chat,
|
||||
contact: contact,
|
||||
localAlias: chat.chatInfo.localAlias,
|
||||
featuresAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
|
||||
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
|
||||
onSearch: { focusSearch() }
|
||||
)
|
||||
}
|
||||
@@ -1122,6 +1129,7 @@ struct ChatView: View {
|
||||
} else {
|
||||
let mem = GMember.init(member)
|
||||
m.groupMembers.append(mem)
|
||||
m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1
|
||||
selectedMember = mem
|
||||
}
|
||||
}
|
||||
@@ -1877,6 +1885,7 @@ struct ReactionContextMenu: View {
|
||||
} else {
|
||||
let member = GMember.init(mem)
|
||||
m.groupMembers.append(member)
|
||||
m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1
|
||||
selectedMember = member
|
||||
}
|
||||
} label: {
|
||||
|
||||
@@ -14,9 +14,10 @@ struct ContactPreferencesView: View {
|
||||
@EnvironmentObject var chatModel: ChatModel
|
||||
@EnvironmentObject var theme: AppTheme
|
||||
@Binding var contact: Contact
|
||||
@State var featuresAllowed: ContactFeaturesAllowed
|
||||
@State var currentFeaturesAllowed: ContactFeaturesAllowed
|
||||
@Binding var featuresAllowed: ContactFeaturesAllowed
|
||||
@Binding var currentFeaturesAllowed: ContactFeaturesAllowed
|
||||
@State private var showSaveDialogue = false
|
||||
let savePreferences: () -> Void
|
||||
|
||||
var body: some View {
|
||||
let user: User = chatModel.currentUser!
|
||||
@@ -48,7 +49,10 @@ struct ContactPreferencesView: View {
|
||||
savePreferences()
|
||||
dismiss()
|
||||
}
|
||||
Button("Exit without saving") { dismiss() }
|
||||
Button("Exit without saving") {
|
||||
featuresAllowed = currentFeaturesAllowed
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,31 +122,15 @@ struct ContactPreferencesView: View {
|
||||
private func featureFooter(_ feature: ChatFeature, _ enabled: FeatureEnabled) -> some View {
|
||||
Text(feature.enabledDescription(enabled))
|
||||
}
|
||||
|
||||
private func savePreferences() {
|
||||
Task {
|
||||
do {
|
||||
let prefs = contactFeaturesAllowedToPrefs(featuresAllowed)
|
||||
if let toContact = try await apiSetContactPrefs(contactId: contact.contactId, preferences: prefs) {
|
||||
await MainActor.run {
|
||||
contact = toContact
|
||||
chatModel.updateContact(toContact)
|
||||
currentFeaturesAllowed = featuresAllowed
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
logger.error("ContactPreferencesView apiSetContactPrefs error: \(responseError(error))")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ContactPreferencesView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
ContactPreferencesView(
|
||||
contact: Binding.constant(Contact.sampleData),
|
||||
featuresAllowed: ContactFeaturesAllowed.sampleData,
|
||||
currentFeaturesAllowed: ContactFeaturesAllowed.sampleData
|
||||
featuresAllowed: Binding.constant(ContactFeaturesAllowed.sampleData),
|
||||
currentFeaturesAllowed: Binding.constant(ContactFeaturesAllowed.sampleData),
|
||||
savePreferences: {}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,12 @@ struct AddGroupMembersViewCommon: View {
|
||||
let count = selectedContacts.count
|
||||
Section {
|
||||
if creatingGroup {
|
||||
groupPreferencesButton($groupInfo, true)
|
||||
GroupPreferencesButton(
|
||||
groupInfo: $groupInfo,
|
||||
preferences: groupInfo.fullGroupPreferences,
|
||||
currentPreferences: groupInfo.fullGroupPreferences,
|
||||
creatingGroup: true
|
||||
)
|
||||
}
|
||||
rolePicker()
|
||||
inviteMembersButton()
|
||||
|
||||
@@ -87,7 +87,7 @@ struct GroupChatInfoView: View {
|
||||
if groupInfo.groupProfile.description != nil || (groupInfo.isOwner && groupInfo.businessChat == nil) {
|
||||
addOrEditWelcomeMessage()
|
||||
}
|
||||
groupPreferencesButton($groupInfo)
|
||||
GroupPreferencesButton(groupInfo: $groupInfo, preferences: groupInfo.fullGroupPreferences, currentPreferences: groupInfo.fullGroupPreferences)
|
||||
if members.filter({ $0.wrapped.memberCurrent }).count <= SMALL_GROUPS_RCPS_MEM_LIMIT {
|
||||
sendReceiptsOption()
|
||||
} else {
|
||||
@@ -439,7 +439,7 @@ struct GroupChatInfoView: View {
|
||||
}
|
||||
|
||||
private func memberInfoView(_ groupMember: GMember) -> some View {
|
||||
GroupMemberInfoView(groupInfo: groupInfo, groupMember: groupMember)
|
||||
GroupMemberInfoView(groupInfo: groupInfo, chat: chat, groupMember: groupMember)
|
||||
.navigationBarHidden(false)
|
||||
}
|
||||
|
||||
@@ -654,27 +654,72 @@ func deleteGroupAlertMessage(_ groupInfo: GroupInfo) -> Text {
|
||||
)
|
||||
}
|
||||
|
||||
func groupPreferencesButton(_ groupInfo: Binding<GroupInfo>, _ creatingGroup: Bool = false) -> some View {
|
||||
let label: LocalizedStringKey = groupInfo.wrappedValue.businessChat == nil ? "Group preferences" : "Chat preferences"
|
||||
return NavigationLink {
|
||||
GroupPreferencesView(
|
||||
groupInfo: groupInfo,
|
||||
preferences: groupInfo.wrappedValue.fullGroupPreferences,
|
||||
currentPreferences: groupInfo.wrappedValue.fullGroupPreferences,
|
||||
creatingGroup: creatingGroup
|
||||
)
|
||||
.navigationBarTitle(label)
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
} label: {
|
||||
if creatingGroup {
|
||||
Text("Set group preferences")
|
||||
} else {
|
||||
Label(label, systemImage: "switch.2")
|
||||
struct GroupPreferencesButton: View {
|
||||
@Binding var groupInfo: GroupInfo
|
||||
@State var preferences: FullGroupPreferences
|
||||
@State var currentPreferences: FullGroupPreferences
|
||||
var creatingGroup: Bool = false
|
||||
|
||||
private var label: LocalizedStringKey {
|
||||
groupInfo.businessChat == nil ? "Group preferences" : "Chat preferences"
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
NavigationLink {
|
||||
GroupPreferencesView(
|
||||
groupInfo: $groupInfo,
|
||||
preferences: $preferences,
|
||||
currentPreferences: currentPreferences,
|
||||
creatingGroup: creatingGroup,
|
||||
savePreferences: savePreferences
|
||||
)
|
||||
.navigationBarTitle(label)
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.onDisappear {
|
||||
let saveText = NSLocalizedString(
|
||||
creatingGroup ? "Save" : "Save and notify group members",
|
||||
comment: "alert button"
|
||||
)
|
||||
|
||||
if groupInfo.fullGroupPreferences != preferences {
|
||||
showAlert(
|
||||
title: NSLocalizedString("Save preferences?", comment: "alert title"),
|
||||
buttonTitle: saveText,
|
||||
buttonAction: { savePreferences() },
|
||||
cancelButton: true
|
||||
)
|
||||
}
|
||||
}
|
||||
} label: {
|
||||
if creatingGroup {
|
||||
Text("Set group preferences")
|
||||
} else {
|
||||
Label(label, systemImage: "switch.2")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func savePreferences() {
|
||||
Task {
|
||||
do {
|
||||
var gp = groupInfo.groupProfile
|
||||
gp.groupPreferences = toGroupPreferences(preferences)
|
||||
let gInfo = try await apiUpdateGroup(groupInfo.groupId, gp)
|
||||
await MainActor.run {
|
||||
groupInfo = gInfo
|
||||
ChatModel.shared.updateGroup(gInfo)
|
||||
currentPreferences = preferences
|
||||
}
|
||||
} catch {
|
||||
logger.error("GroupPreferencesView apiUpdateGroup error: \(responseError(error))")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
func cantInviteIncognitoAlert() -> Alert {
|
||||
Alert(
|
||||
title: Text("Can't invite contacts!"),
|
||||
|
||||
@@ -14,11 +14,15 @@ struct GroupMemberInfoView: View {
|
||||
@EnvironmentObject var theme: AppTheme
|
||||
@Environment(\.dismiss) var dismiss: DismissAction
|
||||
@State var groupInfo: GroupInfo
|
||||
@ObservedObject var chat: Chat
|
||||
@ObservedObject var groupMember: GMember
|
||||
var navigation: Bool = false
|
||||
@State private var connectionStats: ConnectionStats? = nil
|
||||
@State private var connectionCode: String? = nil
|
||||
@State private var connectionLoaded: Bool = false
|
||||
@State private var knownContactChat: Chat? = nil
|
||||
@State private var knownContact: Contact? = nil
|
||||
@State private var knownContactConnectionStats: ConnectionStats? = nil
|
||||
@State private var newRole: GroupMemberRole = .member
|
||||
@State private var alert: GroupMemberInfoViewAlert?
|
||||
@State private var sheet: PlanAndConnectActionSheet?
|
||||
@@ -118,8 +122,8 @@ struct GroupMemberInfoView: View {
|
||||
} label: {
|
||||
Label("Share address", systemImage: "square.and.arrow.up")
|
||||
}
|
||||
if let contactId = member.memberContactId {
|
||||
if knownDirectChat(contactId) == nil && !groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
|
||||
if member.memberContactId != nil {
|
||||
if knownContactChat == nil && !groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
|
||||
connectViaAddressButton(contactLink)
|
||||
}
|
||||
} else {
|
||||
@@ -228,6 +232,18 @@ struct GroupMemberInfoView: View {
|
||||
}
|
||||
logger.error("apiGroupMemberInfo or apiGetGroupMemberCode error: \(responseError(error))")
|
||||
}
|
||||
if let contactId = member.memberContactId, let (contactChat, contact) = knownDirectChat(contactId) {
|
||||
knownContactChat = contactChat
|
||||
knownContact = contact
|
||||
do {
|
||||
let (stats, _) = try await apiContactInfo(contactChat.chatInfo.apiId)
|
||||
await MainActor.run {
|
||||
knownContactConnectionStats = stats
|
||||
}
|
||||
} catch let error {
|
||||
logger.error("apiContactInfo error: \(responseError(error))")
|
||||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: newRole) { newRole in
|
||||
if newRole != member.memberRole {
|
||||
@@ -261,6 +277,11 @@ struct GroupMemberInfoView: View {
|
||||
ProgressView().scaleEffect(2)
|
||||
}
|
||||
}
|
||||
.onChange(of: chat.chatInfo) { c in
|
||||
if case let .group(gI) = chat.chatInfo {
|
||||
groupInfo = gI
|
||||
}
|
||||
}
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
}
|
||||
|
||||
@@ -268,10 +289,10 @@ struct GroupMemberInfoView: View {
|
||||
GeometryReader { g in
|
||||
let buttonWidth = g.size.width / 4
|
||||
HStack(alignment: .center, spacing: 8) {
|
||||
if let contactId = member.memberContactId, let (chat, contact) = knownDirectChat(contactId) {
|
||||
if let chat = knownContactChat, let contact = knownContact {
|
||||
knownDirectChatButton(chat, width: buttonWidth)
|
||||
AudioCallButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
VideoButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
AudioCallButton(chat: chat, contact: contact, connectionStats: $knownContactConnectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
VideoButton(chat: chat, contact: contact, connectionStats: $knownContactConnectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
|
||||
} else if groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
|
||||
if let contactId = member.memberContactId {
|
||||
newDirectChatButton(contactId, width: buttonWidth)
|
||||
@@ -360,25 +381,49 @@ struct GroupMemberInfoView: View {
|
||||
|
||||
func createMemberContactButton(width: CGFloat) -> some View {
|
||||
InfoViewButton(image: "message.fill", title: "message", width: width) {
|
||||
progressIndicator = true
|
||||
Task {
|
||||
do {
|
||||
let memberContact = try await apiCreateMemberContact(groupInfo.apiId, groupMember.groupMemberId)
|
||||
await MainActor.run {
|
||||
progressIndicator = false
|
||||
chatModel.addChat(Chat(chatInfo: .direct(contact: memberContact)))
|
||||
ItemsModel.shared.loadOpenChat(memberContact.id) {
|
||||
dismissAllSheets(animated: true)
|
||||
if let connStats = connectionStats {
|
||||
if connStats.ratchetSyncState == .ok {
|
||||
progressIndicator = true
|
||||
Task {
|
||||
do {
|
||||
let memberContact = try await apiCreateMemberContact(groupInfo.apiId, groupMember.groupMemberId)
|
||||
await MainActor.run {
|
||||
progressIndicator = false
|
||||
chatModel.addChat(Chat(chatInfo: .direct(contact: memberContact)))
|
||||
ItemsModel.shared.loadOpenChat(memberContact.id) {
|
||||
dismissAllSheets(animated: true)
|
||||
}
|
||||
NetworkModel.shared.setContactNetworkStatus(memberContact, .connected)
|
||||
}
|
||||
} catch let error {
|
||||
logger.error("createMemberContactButton apiCreateMemberContact error: \(responseError(error))")
|
||||
let a = getErrorAlert(error, "Error creating member contact")
|
||||
await MainActor.run {
|
||||
progressIndicator = false
|
||||
alert = .error(title: a.title, error: a.message)
|
||||
}
|
||||
}
|
||||
NetworkModel.shared.setContactNetworkStatus(memberContact, .connected)
|
||||
}
|
||||
} catch let error {
|
||||
logger.error("createMemberContactButton apiCreateMemberContact error: \(responseError(error))")
|
||||
let a = getErrorAlert(error, "Error creating member contact")
|
||||
await MainActor.run {
|
||||
progressIndicator = false
|
||||
alert = .error(title: a.title, error: a.message)
|
||||
}
|
||||
} else if connStats.ratchetSyncAllowed {
|
||||
alert = .someAlert(alert: SomeAlert(
|
||||
alert: Alert(
|
||||
title: Text("Fix connection?"),
|
||||
message: Text("Connection requires encryption renegotiation."),
|
||||
primaryButton: .default(Text("Fix")) {
|
||||
syncMemberConnection(force: false)
|
||||
},
|
||||
secondaryButton: .cancel()
|
||||
),
|
||||
id: "can't message member, fix connection"
|
||||
))
|
||||
} else {
|
||||
alert = .someAlert(alert: SomeAlert(
|
||||
alert: mkAlert(
|
||||
title: "Can't message member",
|
||||
message: "Encryption renegotiation in progress."
|
||||
),
|
||||
id: "can't message contact, encryption renegotiation in progress"
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -758,6 +803,7 @@ struct GroupMemberInfoView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
GroupMemberInfoView(
|
||||
groupInfo: GroupInfo.sampleData,
|
||||
chat: Chat.sampleData,
|
||||
groupMember: GMember.sampleData
|
||||
)
|
||||
}
|
||||
|
||||
@@ -20,9 +20,10 @@ struct GroupPreferencesView: View {
|
||||
@EnvironmentObject var chatModel: ChatModel
|
||||
@EnvironmentObject var theme: AppTheme
|
||||
@Binding var groupInfo: GroupInfo
|
||||
@State var preferences: FullGroupPreferences
|
||||
@State var currentPreferences: FullGroupPreferences
|
||||
@Binding var preferences: FullGroupPreferences
|
||||
var currentPreferences: FullGroupPreferences
|
||||
let creatingGroup: Bool
|
||||
let savePreferences: () -> Void
|
||||
@State private var showSaveDialogue = false
|
||||
|
||||
var body: some View {
|
||||
@@ -68,7 +69,10 @@ struct GroupPreferencesView: View {
|
||||
savePreferences()
|
||||
dismiss()
|
||||
}
|
||||
Button("Exit without saving") { dismiss() }
|
||||
Button("Exit without saving") {
|
||||
preferences = currentPreferences
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,32 +136,16 @@ struct GroupPreferencesView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func savePreferences() {
|
||||
Task {
|
||||
do {
|
||||
var gp = groupInfo.groupProfile
|
||||
gp.groupPreferences = toGroupPreferences(preferences)
|
||||
let gInfo = try await apiUpdateGroup(groupInfo.groupId, gp)
|
||||
await MainActor.run {
|
||||
groupInfo = gInfo
|
||||
chatModel.updateGroup(gInfo)
|
||||
currentPreferences = preferences
|
||||
}
|
||||
} catch {
|
||||
logger.error("GroupPreferencesView apiUpdateGroup error: \(responseError(error))")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct GroupPreferencesView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
GroupPreferencesView(
|
||||
groupInfo: Binding.constant(GroupInfo.sampleData),
|
||||
preferences: FullGroupPreferences.sampleData,
|
||||
preferences: Binding.constant(FullGroupPreferences.sampleData),
|
||||
currentPreferences: FullGroupPreferences.sampleData,
|
||||
creatingGroup: false
|
||||
creatingGroup: false,
|
||||
savePreferences: {}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -587,7 +587,7 @@ struct SMPStatsView: View {
|
||||
} header: {
|
||||
Text("Statistics")
|
||||
} footer: {
|
||||
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is private to your device.")
|
||||
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is kept private on your device.")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -703,7 +703,7 @@ struct XFTPStatsView: View {
|
||||
} header: {
|
||||
Text("Statistics")
|
||||
} footer: {
|
||||
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is private to your device.")
|
||||
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is kept private on your device.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,6 @@ struct ChooseServerOperators: View {
|
||||
var onboarding: Bool
|
||||
@State private var serverOperators: [ServerOperator] = []
|
||||
@State private var selectedOperatorIds = Set<Int64>()
|
||||
@State private var reviewConditionsNavLinkActive = false
|
||||
@State private var sheetItem: ChooseServerOperatorsSheet? = nil
|
||||
@State private var notificationsModeNavLinkActive = false
|
||||
@State private var justOpened = true
|
||||
@@ -79,7 +78,7 @@ struct ChooseServerOperators: View {
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
|
||||
if onboarding {
|
||||
title.padding(.top, 50)
|
||||
title.padding(.top, 25)
|
||||
} else {
|
||||
title
|
||||
}
|
||||
@@ -92,11 +91,14 @@ struct ChooseServerOperators: View {
|
||||
ForEach(serverOperators) { srvOperator in
|
||||
operatorCheckView(srvOperator)
|
||||
}
|
||||
Text("You can configure servers via settings.")
|
||||
.font(.footnote)
|
||||
.multilineTextAlignment(.center)
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.padding(.horizontal, 32)
|
||||
VStack {
|
||||
Text("SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.").padding(.bottom, 8)
|
||||
Text("You can configure servers via settings.")
|
||||
}
|
||||
.font(.footnote)
|
||||
.multilineTextAlignment(.center)
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.padding(.horizontal, 16)
|
||||
|
||||
Spacer()
|
||||
|
||||
@@ -166,8 +168,9 @@ struct ChooseServerOperators: View {
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
}
|
||||
}
|
||||
.frame(maxHeight: .infinity, alignment: .top)
|
||||
}
|
||||
.frame(maxHeight: .infinity)
|
||||
.frame(maxHeight: .infinity, alignment: .top)
|
||||
.padding(onboarding ? 25 : 16)
|
||||
}
|
||||
|
||||
@@ -214,23 +217,15 @@ struct ChooseServerOperators: View {
|
||||
}
|
||||
|
||||
private func reviewConditionsButton() -> some View {
|
||||
ZStack {
|
||||
Button {
|
||||
reviewConditionsNavLinkActive = true
|
||||
} label: {
|
||||
Text("Review conditions")
|
||||
}
|
||||
.buttonStyle(OnboardingButtonStyle(isDisabled: selectedOperatorIds.isEmpty))
|
||||
.disabled(selectedOperatorIds.isEmpty)
|
||||
|
||||
NavigationLink(isActive: $reviewConditionsNavLinkActive) {
|
||||
reviewConditionsDestinationView()
|
||||
} label: {
|
||||
EmptyView()
|
||||
}
|
||||
.frame(width: 1, height: 1)
|
||||
.hidden()
|
||||
NavigationLink("Review conditions") {
|
||||
reviewConditionsView()
|
||||
.navigationTitle("Conditions of use")
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
}
|
||||
.buttonStyle(OnboardingButtonStyle(isDisabled: selectedOperatorIds.isEmpty))
|
||||
.disabled(selectedOperatorIds.isEmpty)
|
||||
}
|
||||
|
||||
private func setOperatorsButton() -> some View {
|
||||
@@ -309,21 +304,13 @@ struct ChooseServerOperators: View {
|
||||
.modifier(ThemedBackground())
|
||||
}
|
||||
|
||||
private func reviewConditionsDestinationView() -> some View {
|
||||
reviewConditionsView()
|
||||
.navigationTitle("Conditions of use")
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
}
|
||||
|
||||
@ViewBuilder private func reviewConditionsView() -> some View {
|
||||
let operatorsWithConditionsAccepted = ChatModel.shared.conditions.serverOperators.filter { $0.conditionsAcceptance.conditionsAccepted }
|
||||
let acceptForOperators = selectedOperators.filter { !$0.conditionsAcceptance.conditionsAccepted }
|
||||
VStack(alignment: .leading, spacing: 20) {
|
||||
if !operatorsWithConditionsAccepted.isEmpty {
|
||||
Text("Conditions are already accepted for following operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("Same conditions will apply to operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("Conditions are already accepted for these operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("The same conditions will apply to operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
} else {
|
||||
Text("Conditions will be accepted for operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
}
|
||||
@@ -409,26 +396,53 @@ struct ChooseServerOperators: View {
|
||||
let operatorsPostLink = URL(string: "https://simplex.chat/blog/20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.html")!
|
||||
|
||||
struct ChooseServerOperatorsInfoView: View {
|
||||
@Environment(\.colorScheme) var colorScheme: ColorScheme
|
||||
@EnvironmentObject var theme: AppTheme
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
Text("Server operators")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.vertical)
|
||||
ScrollView {
|
||||
VStack(alignment: .leading) {
|
||||
Group {
|
||||
Text("The app protects your privacy by using different operators in each conversation.")
|
||||
Text("When more than one operator is enabled, none of them has metadata to learn who communicates with whom.")
|
||||
Text("For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.")
|
||||
NavigationView {
|
||||
List {
|
||||
VStack(alignment: .leading, spacing: 12) {
|
||||
Text("The app protects your privacy by using different operators in each conversation.")
|
||||
Text("When more than one operator is enabled, none of them has metadata to learn who communicates with whom.")
|
||||
Text("For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.")
|
||||
}
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.listRowBackground(Color.clear)
|
||||
.listRowSeparator(.hidden)
|
||||
.listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
|
||||
.padding(.top)
|
||||
|
||||
Section {
|
||||
ForEach(ChatModel.shared.conditions.serverOperators) { op in
|
||||
operatorInfoNavLinkView(op)
|
||||
}
|
||||
.padding(.bottom)
|
||||
} header: {
|
||||
Text("About operators")
|
||||
.foregroundColor(theme.colors.secondary)
|
||||
}
|
||||
}
|
||||
.navigationTitle("Server operators")
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
}
|
||||
}
|
||||
|
||||
private func operatorInfoNavLinkView(_ op: ServerOperator) -> some View {
|
||||
NavigationLink() {
|
||||
OperatorInfoView(serverOperator: op)
|
||||
.navigationBarTitle("Network operator")
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
} label: {
|
||||
HStack {
|
||||
Image(op.logo(colorScheme))
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: 24, height: 24)
|
||||
Text(op.tradeName)
|
||||
}
|
||||
}
|
||||
.padding()
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
|
||||
.modifier(ThemedBackground())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -136,7 +136,6 @@ struct CreateFirstProfile: View {
|
||||
.multilineTextAlignment(.center)
|
||||
}
|
||||
.frame(maxWidth: .infinity) // Ensures it takes up the full width
|
||||
.padding(.top, 25)
|
||||
.padding(.horizontal, 10)
|
||||
|
||||
HStack {
|
||||
|
||||
@@ -19,10 +19,10 @@ struct SetNotificationsMode: View {
|
||||
GeometryReader { g in
|
||||
ScrollView {
|
||||
VStack(alignment: .center, spacing: 20) {
|
||||
Text("Push Notifications")
|
||||
Text("Push notifications")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 50)
|
||||
.padding(.top, 25)
|
||||
|
||||
infoText()
|
||||
|
||||
@@ -119,6 +119,7 @@ struct NtfModeSelector: View {
|
||||
Text(ntfModeShortDescription(mode))
|
||||
.lineLimit(2)
|
||||
.font(.callout)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
}
|
||||
}
|
||||
.padding(.vertical, 12)
|
||||
|
||||
@@ -65,6 +65,7 @@ extension AppSettings {
|
||||
if let val = uiCurrentThemeIds { currentThemeIdsDefault.set(val) }
|
||||
if let val = uiThemes { themeOverridesDefault.set(val.skipDuplicates()) }
|
||||
if let val = oneHandUI { groupDefaults.setValue(val, forKey: GROUP_DEFAULT_ONE_HAND_UI) }
|
||||
if let val = chatBottomBar { groupDefaults.setValue(val, forKey: GROUP_DEFAULT_CHAT_BOTTOM_BAR) }
|
||||
}
|
||||
|
||||
public static var current: AppSettings {
|
||||
@@ -100,6 +101,7 @@ extension AppSettings {
|
||||
c.uiCurrentThemeIds = currentThemeIdsDefault.get()
|
||||
c.uiThemes = themeOverridesDefault.get()
|
||||
c.oneHandUI = groupDefaults.bool(forKey: GROUP_DEFAULT_ONE_HAND_UI)
|
||||
c.chatBottomBar = groupDefaults.bool(forKey: GROUP_DEFAULT_CHAT_BOTTOM_BAR)
|
||||
return c
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,9 +331,12 @@ struct OperatorInfoView: View {
|
||||
Text(d)
|
||||
}
|
||||
}
|
||||
Link(serverOperator.info.website.absoluteString, destination: serverOperator.info.website)
|
||||
}
|
||||
Section {
|
||||
Link("\(serverOperator.info.website)", destination: URL(string: serverOperator.info.website)!)
|
||||
if let selfhost = serverOperator.info.selfhost {
|
||||
Section {
|
||||
Link(selfhost.text, destination: selfhost.link)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -421,7 +424,6 @@ struct SingleOperatorUsageConditionsView: View {
|
||||
@Binding var userServers: [UserOperatorServers]
|
||||
@Binding var serverErrors: [UserServersError]
|
||||
var operatorIndex: Int
|
||||
@State private var usageConditionsNavLinkActive: Bool = false
|
||||
|
||||
var body: some View {
|
||||
viewBody()
|
||||
@@ -433,52 +435,45 @@ struct SingleOperatorUsageConditionsView: View {
|
||||
|
||||
// In current UI implementation this branch doesn't get shown - as conditions can't be opened from inside operator once accepted
|
||||
VStack(alignment: .leading, spacing: 20) {
|
||||
Group {
|
||||
viewHeader()
|
||||
ConditionsTextView()
|
||||
.padding(.bottom)
|
||||
.padding(.bottom)
|
||||
}
|
||||
.padding(.horizontal)
|
||||
viewHeader()
|
||||
ConditionsTextView()
|
||||
}
|
||||
.padding(.bottom)
|
||||
.padding(.bottom)
|
||||
.padding(.horizontal)
|
||||
.frame(maxHeight: .infinity)
|
||||
|
||||
} else if !operatorsWithConditionsAccepted.isEmpty {
|
||||
|
||||
NavigationView {
|
||||
VStack(alignment: .leading, spacing: 20) {
|
||||
Group {
|
||||
viewHeader()
|
||||
Text("Conditions are already accepted for following operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("Same conditions will apply to operator **\(userServers[operatorIndex].operator_.legalName_)**.")
|
||||
conditionsAppliedToOtherOperatorsText()
|
||||
usageConditionsNavLinkButton()
|
||||
viewHeader()
|
||||
Text("Conditions are already accepted for these operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
|
||||
Text("The same conditions will apply to operator **\(userServers[operatorIndex].operator_.legalName_)**.")
|
||||
conditionsAppliedToOtherOperatorsText()
|
||||
Spacer()
|
||||
|
||||
Spacer()
|
||||
|
||||
acceptConditionsButton()
|
||||
.padding(.bottom)
|
||||
.padding(.bottom)
|
||||
}
|
||||
.padding(.horizontal)
|
||||
acceptConditionsButton()
|
||||
usageConditionsNavLinkButton()
|
||||
}
|
||||
.padding(.bottom)
|
||||
.padding(.bottom)
|
||||
.padding(.horizontal)
|
||||
.frame(maxHeight: .infinity)
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
VStack(alignment: .leading, spacing: 20) {
|
||||
Group {
|
||||
viewHeader()
|
||||
Text("To use the servers of **\(userServers[operatorIndex].operator_.legalName_)**, accept conditions of use.")
|
||||
conditionsAppliedToOtherOperatorsText()
|
||||
ConditionsTextView()
|
||||
acceptConditionsButton()
|
||||
.padding(.bottom)
|
||||
.padding(.bottom)
|
||||
}
|
||||
.padding(.horizontal)
|
||||
viewHeader()
|
||||
Text("To use the servers of **\(userServers[operatorIndex].operator_.legalName_)**, accept conditions of use.")
|
||||
conditionsAppliedToOtherOperatorsText()
|
||||
ConditionsTextView()
|
||||
acceptConditionsButton()
|
||||
.padding(.bottom)
|
||||
.padding(.bottom)
|
||||
}
|
||||
.padding(.horizontal)
|
||||
.frame(maxHeight: .infinity)
|
||||
|
||||
}
|
||||
@@ -545,31 +540,16 @@ struct SingleOperatorUsageConditionsView: View {
|
||||
}
|
||||
|
||||
private func usageConditionsNavLinkButton() -> some View {
|
||||
ZStack {
|
||||
Button {
|
||||
usageConditionsNavLinkActive = true
|
||||
} label: {
|
||||
Text("View conditions")
|
||||
}
|
||||
|
||||
NavigationLink(isActive: $usageConditionsNavLinkActive) {
|
||||
usageConditionsDestinationView()
|
||||
} label: {
|
||||
EmptyView()
|
||||
}
|
||||
.frame(width: 1, height: 1)
|
||||
.hidden()
|
||||
NavigationLink("View conditions") {
|
||||
ConditionsTextView()
|
||||
.padding()
|
||||
.navigationTitle("Conditions of use")
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
}
|
||||
}
|
||||
|
||||
private func usageConditionsDestinationView() -> some View {
|
||||
ConditionsTextView()
|
||||
.padding()
|
||||
.padding(.bottom)
|
||||
.navigationTitle("Conditions of use")
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
.font(.callout)
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ struct UserProfilesView: View {
|
||||
action()
|
||||
} else {
|
||||
authenticate(
|
||||
reason: NSLocalizedString("Change user profiles", comment: "authentication reason")
|
||||
reason: NSLocalizedString("Change chat profiles", comment: "authentication reason")
|
||||
) { laResult in
|
||||
switch laResult {
|
||||
case .success, .unavailable:
|
||||
|
||||
@@ -566,6 +566,10 @@
|
||||
<target>За SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -727,8 +731,8 @@
|
||||
<target>Всички данни се изтриват при въвеждане.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -1288,6 +1292,10 @@
|
||||
<target>Промени</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Промяна на паролата на базата данни?</target>
|
||||
@@ -1334,10 +1342,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1533,8 +1537,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5344,10 +5348,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push известия</target>
|
||||
@@ -5752,14 +5752,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>По-безопасни групи</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Запази</target>
|
||||
@@ -5774,7 +5766,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Запази и уведоми контакта</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -5808,7 +5800,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Запази настройките?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6388,6 +6380,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>SimpleX Адрес</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>Сигурността на SimpleX Chat беше одитирана от Trail of Bits.</target>
|
||||
@@ -6850,6 +6846,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>Профилът се споделя само с вашите контакти.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -8122,6 +8126,10 @@ Repeat connection request?</source>
|
||||
<target>обаждането прието</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>админ</target>
|
||||
@@ -8308,7 +8316,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>свързване…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8792,6 +8800,10 @@ Repeat connection request?</source>
|
||||
<target>ви острани</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>запазено</target>
|
||||
|
||||
@@ -548,6 +548,10 @@
|
||||
<target>O SimpleX chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -708,8 +712,8 @@
|
||||
<target>Všechna data se při zadání vymažou.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -1247,6 +1251,10 @@
|
||||
<target>Změnit</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Změnit přístupovou frázi databáze?</target>
|
||||
@@ -1293,10 +1301,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1488,8 +1492,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5166,10 +5170,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Nabízená oznámení</target>
|
||||
@@ -5562,14 +5562,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Uložit</target>
|
||||
@@ -5584,7 +5576,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Uložit a upozornit kontakt</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -5618,7 +5610,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Uložit předvolby?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6186,6 +6178,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>SimpleX Adresa</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>Zabezpečení SimpleX chatu bylo auditováno společností Trail of Bits.</target>
|
||||
@@ -6638,6 +6634,14 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
|
||||
<target>Profil je sdílen pouze s vašimi kontakty.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -7853,6 +7857,10 @@ Repeat connection request?</source>
|
||||
<target>přijatý hovor</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>správce</target>
|
||||
@@ -8032,7 +8040,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>připojení…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8507,6 +8515,10 @@ Repeat connection request?</source>
|
||||
<target>odstranil vás</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -577,6 +577,11 @@
|
||||
<target>Über SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<target>Über Betreiber</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Akzent</target>
|
||||
@@ -637,6 +642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Freunde aufnehmen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -656,6 +662,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Team-Mitglieder aufnehmen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -670,6 +677,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Nehmen Sie Team-Mitglieder in Ihre Unterhaltungen auf.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -752,8 +760,8 @@
|
||||
<target>Alle Daten werden gelöscht, sobald dieser eingegeben wird.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Alle Daten werden nur auf Ihrem Gerät gespeichert.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1244,10 +1252,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Geschäftliche Adresse</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Geschäftliche Chats</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1341,6 +1351,11 @@
|
||||
<target>Ändern</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Chat-Profile wechseln</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Datenbank-Passwort ändern?</target>
|
||||
@@ -1387,21 +1402,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Chat-Profile wechseln</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>Chat besteht bereits</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>Chat besteht bereits!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1494,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>Der Chat wird für alle Mitglieder gelöscht. Dies kann nicht rückgängig gemacht werden!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>Der Chat wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -1602,8 +1617,8 @@
|
||||
<target>Die Nutzungsbedingungen der/des Betreiber(s) werden akzeptiert: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>Die Nutzungsbedingungen der/des folgenden Betreiber(s) wurden schon akzeptiert: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -2243,6 +2258,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Chat löschen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2273,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Chat löschen?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2526,6 +2543,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>In diesem Chat sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -4101,6 +4119,7 @@ Weitere Verbesserungen sind bald verfügbar!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Zum Chat einladen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4263,10 +4282,12 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Chat verlassen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Chat verlassen?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4422,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>Die Rolle des Mitglieds wird auf "%@" geändert. Alle Chat-Mitglieder werden darüber informiert.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4437,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>Das Mitglied wird aus dem Chat entfernt. Dies kann nicht rückgängig gemacht werden!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -5032,6 +5055,7 @@ Dies erfordert die Aktivierung eines VPNs.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Nur Chat-Eigentümer können die Präferenzen ändern.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5166,6 +5190,7 @@ Dies erfordert die Aktivierung eines VPNs.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>Oder importieren Sie eine Archiv-Datei</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5431,6 +5456,7 @@ Fehler: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Schutz der Privatsphäre Ihrer Kunden.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5590,11 +5616,6 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
<target>Der Proxy benötigt ein Passwort</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push-Benachrichtigungen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-Benachrichtigungen</target>
|
||||
@@ -6021,16 +6042,6 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
<target>Sicherere Gruppen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Speichern</target>
|
||||
@@ -6045,7 +6056,7 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Speichern und Kontakt benachrichtigen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6080,7 +6091,7 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Präferenzen speichern?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6703,6 +6714,11 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
<target>SimpleX-Adresse</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<target>SimpleX-Chat und Flux haben vereinbart, die von Flux betriebenen Server in die App aufzunehmen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>Die Sicherheit von SimpleX Chat wurde von Trail of Bits überprüft.</target>
|
||||
@@ -7017,6 +7033,7 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Tippen Sie im Menü auf SimpleX-Adresse erstellen, um sie später zu erstellen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,6 +7208,16 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
|
||||
<target>Das Profil wird nur mit Ihren Kontakten geteilt.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Der zweite voreingestellte Netzwerk-Betreiber in der App!</target>
|
||||
@@ -7208,12 +7235,12 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve">
|
||||
<source>The servers for new connections of your current chat profile **%@**.</source>
|
||||
<target>Mögliche Server für neue Verbindungen von Ihrem aktuellen Chat-Profil **%@**.</target>
|
||||
<target>Nachrichten-Server für neue Verbindungen über Ihr aktuelles Chat-Profil **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
|
||||
<source>The servers for new files of your current chat profile **%@**.</source>
|
||||
<target>Die Server Deines aktuellen Chat-Profils für neue Dateien **%@**.</target>
|
||||
<target>Medien- und Datei-Server für neue Daten über Ihr aktuelles Chat-Profil **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
|
||||
@@ -8057,6 +8084,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Sie sind bereits mit %@ verbunden.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8335,6 +8363,7 @@ Verbindungsanfrage wiederholen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Sie werden von diesem Chat keine Nachrichten mehr erhalten. Der Nachrichtenverlauf wird beibehalten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -8522,6 +8551,11 @@ Verbindungsanfrage wiederholen?</target>
|
||||
<target>Anruf angenommen</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<target>Einladung akzeptiert</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>Admin</target>
|
||||
@@ -8710,7 +8744,7 @@ Verbindungsanfrage wiederholen?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>Verbinde…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9204,6 +9238,11 @@ Verbindungsanfrage wiederholen?</target>
|
||||
<target>hat Sie aus der Gruppe entfernt</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<target>Zur Verbindung aufgefordert</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>abgespeichert</target>
|
||||
|
||||
@@ -577,6 +577,11 @@
|
||||
<target>About SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<target>About operators</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Accent</target>
|
||||
@@ -755,9 +760,9 @@
|
||||
<target>All data is erased when it is entered.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<target>All data is private to your device.</target>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>All data is kept private on your device.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -1346,6 +1351,11 @@
|
||||
<target>Change</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Change chat profiles</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Change database passphrase?</target>
|
||||
@@ -1392,11 +1402,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Change user profiles</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
@@ -1612,9 +1617,9 @@
|
||||
<target>Conditions are accepted for the operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<target>Conditions are already accepted for following operator(s): **%@**.</target>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>Conditions are already accepted for these operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5611,11 +5616,6 @@ Enable in *Network & servers* settings.</target>
|
||||
<target>Proxy requires password</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push Notifications</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push notifications</target>
|
||||
@@ -6042,16 +6042,6 @@ Enable in *Network & servers* settings.</target>
|
||||
<target>Safer groups</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Same conditions will apply to operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Same conditions will apply to operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Save</target>
|
||||
@@ -6066,7 +6056,7 @@ Enable in *Network & servers* settings.</target>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Save and notify contact</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6101,7 +6091,7 @@ Enable in *Network & servers* settings.</target>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Save preferences?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6724,6 +6714,11 @@ Enable in *Network & servers* settings.</target>
|
||||
<target>SimpleX Address</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<target>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>SimpleX Chat security was audited by Trail of Bits.</target>
|
||||
@@ -7213,6 +7208,16 @@ It can happen because of some bug or when the connection is compromised.</target
|
||||
<target>The profile is only shared with your contacts.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>The same conditions will apply to operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>The same conditions will apply to operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>The second preset operator in the app!</target>
|
||||
@@ -8546,6 +8551,11 @@ Repeat connection request?</target>
|
||||
<target>accepted call</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<target>accepted invitation</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>admin</target>
|
||||
@@ -8734,7 +8744,7 @@ Repeat connection request?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>connecting…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9228,6 +9238,11 @@ Repeat connection request?</target>
|
||||
<target>removed you</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<target>requested to connect</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>saved</target>
|
||||
|
||||
@@ -550,11 +550,11 @@
|
||||
<target>Se usará una conexión TCP independiente **por cada perfil que tengas en la aplicación**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A separate TCP connection will be used **for each contact and group member**. **Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." xml:space="preserve">
|
||||
<trans-unit id="A separate TCP connection will be used **for each contact and group member**. **Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." xml:space="preserve" approved="no">
|
||||
<source>A separate TCP connection will be used **for each contact and group member**.
|
||||
**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail.</source>
|
||||
<target>Se usará una conexión TCP independiente **por cada contacto y miembro de grupo**.
|
||||
**Atención**: si tienes muchas conexiones, tu consumo de batería y tráfico pueden ser sustancialmente mayores y algunas conexiones pueden fallar.</target>
|
||||
<target state="translated">Se usará una conexión TCP independiente **por cada contacto y miembro de grupo**.
|
||||
**Atención**: si tienes muchas conexiones, tu consumo de batería y tráfico pueden aumentar bastante y algunas conexiones pueden fallar.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Abort" xml:space="preserve">
|
||||
@@ -577,6 +577,11 @@
|
||||
<target>Sobre SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<target>Acerca de los operadores</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Color</target>
|
||||
@@ -637,6 +642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Añadir amigos</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -656,6 +662,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Añadir miembros del equipo</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -670,6 +677,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Añade a los miembros de tu equipo a las conversaciones.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -752,8 +760,8 @@
|
||||
<target>Al introducirlo todos los datos son eliminados.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Todos los datos son privados y están en tu dispositivo.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -982,9 +990,9 @@
|
||||
<target>El código de acceso será reemplazado por código de autodestrucción.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="App session" xml:space="preserve">
|
||||
<trans-unit id="App session" xml:space="preserve" approved="no">
|
||||
<source>App session</source>
|
||||
<target>Sesión de aplicación</target>
|
||||
<target state="translated">por sesión</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="App version" xml:space="preserve">
|
||||
@@ -1244,10 +1252,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Dirección empresarial</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Chats empresariales</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1341,6 +1351,11 @@
|
||||
<target>Cambiar</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Cambiar perfil de usuario</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>¿Cambiar contraseña de la base de datos?</target>
|
||||
@@ -1387,21 +1402,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Cambiar perfil de usuario</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>El chat ya existe</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>¡El chat ya existe!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1494,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>El chat será eliminado para todos los miembros. ¡No podrá deshacerse!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>El chat será eliminado para tí. ¡No podrá deshacerse!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -1602,8 +1617,8 @@
|
||||
<target>Las condiciones se han aceptado para el(los) operador(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>Las condiciones ya se han aceptado para el/los siguiente(s) operador(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -2243,6 +2258,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Eliminar chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2273,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>¿Eliminar chat?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2291,7 +2308,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete files and media?" xml:space="preserve">
|
||||
<source>Delete files and media?</source>
|
||||
<target>Eliminar archivos y multimedia?</target>
|
||||
<target>¿Eliminar archivos y multimedia?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete files for all chat profiles" xml:space="preserve">
|
||||
@@ -2526,6 +2543,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>Mensajes directos no permitidos entre miembros de este chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -2736,7 +2754,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enable Flux" xml:space="preserve">
|
||||
<source>Enable Flux</source>
|
||||
<target>Habilitar Flux</target>
|
||||
<target>Habilita Flux</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enable SimpleX Lock" xml:space="preserve">
|
||||
@@ -2819,9 +2837,9 @@ This is your own one-time link!</source>
|
||||
<target>¿Cifrar base de datos?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Encrypt local files" xml:space="preserve">
|
||||
<trans-unit id="Encrypt local files" xml:space="preserve" approved="no">
|
||||
<source>Encrypt local files</source>
|
||||
<target>Cifra archivos locales</target>
|
||||
<target state="translated">Cifrar archivos locales</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Encrypt stored files & media" xml:space="preserve">
|
||||
@@ -3511,9 +3529,9 @@ This is your own one-time link!</source>
|
||||
<target>Si por ejemplo tu contacto recibe los mensajes a través de un servidor de SimpleX Chat, tu aplicación los entregará a través de un servidor de Flux.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For private routing" xml:space="preserve">
|
||||
<trans-unit id="For private routing" xml:space="preserve" approved="no">
|
||||
<source>For private routing</source>
|
||||
<target>Para el enrutamiento privado</target>
|
||||
<target state="translated">Para enrutamiento privado</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For social media" xml:space="preserve">
|
||||
@@ -4101,6 +4119,7 @@ More improvements are coming soon!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Invitar al chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4263,10 +4282,12 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Salir del chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>¿Salir del chat?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4422,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>El rol del miembro cambiará a "%@" y todos serán notificados.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4437,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>El miembro será eliminado del chat. ¡No podrá deshacerse!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -4757,9 +4780,9 @@ This is your link for group %@!</source>
|
||||
<target>Se usarán credenciales SOCKS nuevas cada vez que inicies la aplicación.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New SOCKS credentials will be used for each server." xml:space="preserve">
|
||||
<trans-unit id="New SOCKS credentials will be used for each server." xml:space="preserve" approved="no">
|
||||
<source>New SOCKS credentials will be used for each server.</source>
|
||||
<target>Se usarán credenciales SOCKS nuevas por cada servidor.</target>
|
||||
<target state="translated">Se usarán credenciales SOCKS nuevas para cada servidor.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New chat" xml:space="preserve">
|
||||
@@ -4882,14 +4905,14 @@ This is your link for group %@!</source>
|
||||
<target>No hay información, intenta recargar</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No media & file servers." xml:space="preserve">
|
||||
<trans-unit id="No media & file servers." xml:space="preserve" approved="no">
|
||||
<source>No media & file servers.</source>
|
||||
<target>Ningún servidor de archivos y multimedia.</target>
|
||||
<target state="translated">Sin servidores para archivos y multimedia.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No message servers." xml:space="preserve">
|
||||
<trans-unit id="No message servers." xml:space="preserve" approved="no">
|
||||
<source>No message servers.</source>
|
||||
<target>Ningún servidor de mensajes.</target>
|
||||
<target state="translated">Sin servidores para mensajes.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No network connection" xml:space="preserve">
|
||||
@@ -4912,9 +4935,9 @@ This is your link for group %@!</source>
|
||||
<target>Sin permiso para grabar mensajes de voz</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No push server" xml:space="preserve">
|
||||
<trans-unit id="No push server" xml:space="preserve" approved="no">
|
||||
<source>No push server</source>
|
||||
<target>Ningún servidor push</target>
|
||||
<target state="translated">Sin servidores push</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No received or sent files" xml:space="preserve">
|
||||
@@ -4922,24 +4945,24 @@ This is your link for group %@!</source>
|
||||
<target>Sin archivos recibidos o enviados</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers for private message routing." xml:space="preserve">
|
||||
<trans-unit id="No servers for private message routing." xml:space="preserve" approved="no">
|
||||
<source>No servers for private message routing.</source>
|
||||
<target>Ningún servidor para enrutamiento privado.</target>
|
||||
<target state="translated">Sin servidores para enrutamiento privado.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to receive files." xml:space="preserve">
|
||||
<trans-unit id="No servers to receive files." xml:space="preserve" approved="no">
|
||||
<source>No servers to receive files.</source>
|
||||
<target>Ningún servidor para recibir archivos.</target>
|
||||
<target state="translated">Sin servidores para recibir archivos.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to receive messages." xml:space="preserve">
|
||||
<trans-unit id="No servers to receive messages." xml:space="preserve" approved="no">
|
||||
<source>No servers to receive messages.</source>
|
||||
<target>Ningún servidor para recibir mensajes.</target>
|
||||
<target state="translated">Sin servidores para recibir mensajes.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to send files." xml:space="preserve">
|
||||
<trans-unit id="No servers to send files." xml:space="preserve" approved="no">
|
||||
<source>No servers to send files.</source>
|
||||
<target>Ningún servidor para enviar archivos.</target>
|
||||
<target state="translated">Sin servidores para enviar archivos.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No user identifiers." xml:space="preserve">
|
||||
@@ -5032,6 +5055,7 @@ Requiere activación de la VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Sólo los propietarios del chat pueden cambiar las preferencias.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5166,6 +5190,7 @@ Requiere activación de la VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>O importa desde un archivo</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5406,7 +5431,7 @@ Error: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Preset server address" xml:space="preserve">
|
||||
<source>Preset server address</source>
|
||||
<target>Dirección del servidor predefinida</target>
|
||||
<target>Dirección predefinida del servidor</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Preset servers" xml:space="preserve">
|
||||
@@ -5431,6 +5456,7 @@ Error: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Privacidad para tus clientes.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5590,14 +5616,9 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
<target>El proxy requiere contraseña</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Notificaciones push</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Notificaciones automáticas</target>
|
||||
<target>Notificaciones push</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push server" xml:space="preserve">
|
||||
@@ -5632,7 +5653,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Read more" xml:space="preserve">
|
||||
<source>Read more</source>
|
||||
<target>Conoce más</target>
|
||||
<target>Saber más</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Read more in [User Guide](https://simplex.chat/docs/guide/chat-profiles.html#incognito-mode)." xml:space="preserve">
|
||||
@@ -6021,16 +6042,6 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
<target>Grupos más seguros</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán al operador **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán a el/los operador(es) **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Guardar</target>
|
||||
@@ -6045,7 +6056,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Guardar y notificar contacto</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6080,7 +6091,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>¿Guardar preferencias?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6600,7 +6611,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share SimpleX address on social media." xml:space="preserve">
|
||||
<source>Share SimpleX address on social media.</source>
|
||||
<target>Compartir dirección SimpleX en redes sociales.</target>
|
||||
<target>Comparte tu dirección SimpleX en redes sociales.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address" xml:space="preserve">
|
||||
@@ -6703,6 +6714,11 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
<target>Dirección SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<target>Simplex Chat y Flux han acordado incluir servidores operados por Flux en la aplicación</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>La seguridad de SimpleX Chat ha sido auditada por Trail of Bits.</target>
|
||||
@@ -6735,12 +6751,12 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX address and 1-time links are safe to share via any messenger." xml:space="preserve">
|
||||
<source>SimpleX address and 1-time links are safe to share via any messenger.</source>
|
||||
<target>Compartir enlaces de un uso y direcciones SimpleX es seguro a través de cualquier medio.</target>
|
||||
<target>Compartir los enlaces de un uso y las direcciones SimpleX es seguro a través de cualquier medio.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX address or 1-time link?" xml:space="preserve">
|
||||
<source>SimpleX address or 1-time link?</source>
|
||||
<target>Dirección SimpleX o enlace de un uso?</target>
|
||||
<target>¿Dirección SimpleX o enlace de un uso?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX contact address" xml:space="preserve">
|
||||
@@ -7017,6 +7033,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Pulsa Crear dirección SimpleX en el menú para crearla más tarde.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,9 +7208,19 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
|
||||
<target>El perfil sólo se comparte con tus contactos.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán al operador **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Las mismas condiciones se aplicarán a el/los operador(es) **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>El segundo operador predefinido!</target>
|
||||
<target>¡Segundo operador predefinido!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second tick we missed! ✅" xml:space="preserve">
|
||||
@@ -7206,14 +7233,14 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
|
||||
<target>El remitente NO será notificado</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve">
|
||||
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve" approved="no">
|
||||
<source>The servers for new connections of your current chat profile **%@**.</source>
|
||||
<target>Lista de servidores para las conexiones nuevas de tu perfil actual **%@**.</target>
|
||||
<target state="translated">Servidores para conexiones nuevas en tu perfil **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
|
||||
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve" approved="no">
|
||||
<source>The servers for new files of your current chat profile **%@**.</source>
|
||||
<target>Los servidores para archivos nuevos en tu perfil actual **%@**.</target>
|
||||
<target state="translated">Servidores para archivos nuevos en tu perfil **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
|
||||
@@ -7398,9 +7425,9 @@ Se te pedirá que completes la autenticación antes de activar esta función.</t
|
||||
<target>Para permitir las notificaciones automáticas instantáneas, la base de datos se debe migrar.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To use the servers of **%@**, accept conditions of use." xml:space="preserve">
|
||||
<trans-unit id="To use the servers of **%@**, accept conditions of use." xml:space="preserve" approved="no">
|
||||
<source>To use the servers of **%@**, accept conditions of use.</source>
|
||||
<target>Para usar los servidores de **%@**, acepta las condiciones de uso.</target>
|
||||
<target state="translated">Para usar los servidores de **%@**, debes aceptar las condiciones de uso.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To verify end-to-end encryption with your contact compare (or scan) the code on your devices." xml:space="preserve">
|
||||
@@ -7695,9 +7722,9 @@ Para conectarte pide a tu contacto que cree otro enlace y comprueba la conexión
|
||||
<target>Usar para mensajes</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use for new connections" xml:space="preserve">
|
||||
<trans-unit id="Use for new connections" xml:space="preserve" approved="no">
|
||||
<source>Use for new connections</source>
|
||||
<target>Usar para conexiones nuevas</target>
|
||||
<target state="translated">Para conexiones nuevas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use from desktop" xml:space="preserve">
|
||||
@@ -8052,11 +8079,12 @@ Para conectarte pide a tu contacto que cree otro enlace y comprueba la conexión
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected to %@." xml:space="preserve">
|
||||
<source>You are already connected to %@.</source>
|
||||
<target>Ya estás conectado a %@.</target>
|
||||
<target>Ya estás conectado con %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Ya estás conectado con %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8278,9 +8306,9 @@ Repeat connection request?</source>
|
||||
<target>Debes usar la versión más reciente de tu base de datos ÚNICAMENTE en un dispositivo, de lo contrario podrías dejar de recibir mensajes de algunos contactos.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You need to allow your contact to call to be able to call them." xml:space="preserve">
|
||||
<trans-unit id="You need to allow your contact to call to be able to call them." xml:space="preserve" approved="no">
|
||||
<source>You need to allow your contact to call to be able to call them.</source>
|
||||
<target>Necesitas permitir que tus contacto llamen para poder llamarles.</target>
|
||||
<target state="translated">Debes permitir que tus contacto te llamen para poder llamarles.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You need to allow your contact to send voice messages to be able to send them." xml:space="preserve">
|
||||
@@ -8335,6 +8363,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Dejarás de recibir mensajes de este chat. El historial del chat se conserva.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -8522,6 +8551,11 @@ Repeat connection request?</source>
|
||||
<target>llamada aceptada</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<target>invitación aceptada</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>administrador</target>
|
||||
@@ -8710,7 +8744,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>conectando…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8904,7 +8938,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="for better metadata privacy." xml:space="preserve">
|
||||
<source>for better metadata privacy.</source>
|
||||
<target>para mayor privacidad de los metadatos.</target>
|
||||
<target>para mejorar la privacidad de los metadatos.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="forwarded" xml:space="preserve">
|
||||
@@ -9204,6 +9238,11 @@ Repeat connection request?</source>
|
||||
<target>te ha expulsado</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<target>solicitado para conectar</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>guardado</target>
|
||||
@@ -9480,9 +9519,9 @@ last received msg: %2$@</source>
|
||||
<target>SimpleX</target>
|
||||
<note>Bundle name</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSCameraUsageDescription" xml:space="preserve">
|
||||
<trans-unit id="NSCameraUsageDescription" xml:space="preserve" approved="no">
|
||||
<source>SimpleX needs camera access to scan QR codes to connect to other users and for video calls.</source>
|
||||
<target>SimpleX necesita acceso a la cámara para escanear códigos QR para conectarse con otros usuarios y para las videollamadas.</target>
|
||||
<target state="translated">SimpleX necesita acceso a la cámara para escanear códigos QR para conectarse con otros usuarios y para las videollamadas.</target>
|
||||
<note>Privacy - Camera Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
|
||||
@@ -9495,9 +9534,9 @@ last received msg: %2$@</source>
|
||||
<target>SimpleX utiliza el acceso a la red local para abrir el perfil de chat en la aplicación de ordenador en la misma red.</target>
|
||||
<note>Privacy - Local Network Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
|
||||
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve" approved="no">
|
||||
<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 state="translated">SimpleX necesita acceso al micrófono para las llamadas de audio, vídeo y para grabar mensajes de voz.</target>
|
||||
<note>Privacy - Microphone Usage Description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
|
||||
|
||||
@@ -543,6 +543,10 @@
|
||||
<target>Tietoja SimpleX Chatistä</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -703,8 +707,8 @@
|
||||
<target>Kaikki tiedot poistetaan, kun se syötetään.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -1240,6 +1244,10 @@
|
||||
<target>Muuta</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Muutetaanko tietokannan tunnuslause?</target>
|
||||
@@ -1286,10 +1294,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1481,8 +1485,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5154,10 +5158,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-ilmoitukset</target>
|
||||
@@ -5550,14 +5550,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Tallenna</target>
|
||||
@@ -5572,7 +5564,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Tallenna ja ilmoita kontaktille</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -5606,7 +5598,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Tallenna asetukset?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6173,6 +6165,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>SimpleX-osoite</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>Trail of Bits on tarkastanut SimpleX Chatin tietoturvan.</target>
|
||||
@@ -6624,6 +6620,14 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
|
||||
<target>Profiili jaetaan vain kontaktiesi kanssa.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -7838,6 +7842,10 @@ Repeat connection request?</source>
|
||||
<target>hyväksytty puhelu</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>ylläpitäjä</target>
|
||||
@@ -8016,7 +8024,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>yhdistää…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8492,6 +8500,10 @@ Repeat connection request?</source>
|
||||
<target>poisti sinut</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -572,6 +572,10 @@
|
||||
<target>À propos de SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Principale</target>
|
||||
@@ -741,8 +745,8 @@
|
||||
<target>Toutes les données sont effacées lorsqu'il est saisi.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Toutes les données restent confinées dans votre appareil.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1329,6 +1333,10 @@
|
||||
<target>Changer</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Changer la phrase secrète de la base de données ?</target>
|
||||
@@ -1375,10 +1383,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1585,8 +1589,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5530,10 +5534,6 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||
<target>Le proxy est protégé par un mot de passe</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Notifications push</target>
|
||||
@@ -5958,14 +5958,6 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||
<target>Groupes plus sûrs</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Enregistrer</target>
|
||||
@@ -5980,7 +5972,7 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Enregistrer et en informer le contact</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6015,7 +6007,7 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Enregistrer les préférences ?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6631,6 +6623,10 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||
<target>Adresse SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>La sécurité de SimpleX Chat a été auditée par Trail of Bits.</target>
|
||||
@@ -7113,6 +7109,14 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
|
||||
<target>Le profil n'est partagé qu'avec vos contacts.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -8425,6 +8429,10 @@ Répéter la demande de connexion ?</target>
|
||||
<target>appel accepté</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>admin</target>
|
||||
@@ -8613,7 +8621,7 @@ Répéter la demande de connexion ?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>connexion…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9106,6 +9114,10 @@ Répéter la demande de connexion ?</target>
|
||||
<target>vous a retiré</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>enregistré</target>
|
||||
|
||||
@@ -530,9 +530,9 @@
|
||||
<p><a href="%@">Csatlakozzon hozzám a SimpleX Chaten keresztül</a></p></target>
|
||||
<note>email text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A few more things" xml:space="preserve">
|
||||
<trans-unit id="A few more things" xml:space="preserve" approved="no">
|
||||
<source>A few more things</source>
|
||||
<target>Még néhány dolog</target>
|
||||
<target state="translated">Néhány további dolog</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A new contact" xml:space="preserve">
|
||||
@@ -574,7 +574,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="About SimpleX Chat" xml:space="preserve">
|
||||
<source>About SimpleX Chat</source>
|
||||
<target>A SimpleX Chatről</target>
|
||||
<target>SimpleX Chat névjegye</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<target>Az üzemeltetőkről</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
@@ -637,6 +642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Barátok hozzáadása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -654,8 +660,9 @@
|
||||
<target>Kiszolgáló hozzáadása QR-kód beolvasásával.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<trans-unit id="Add team members" xml:space="preserve" approved="no">
|
||||
<source>Add team members</source>
|
||||
<target state="translated">Kollégák hozzáadása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -668,8 +675,9 @@
|
||||
<target>Üdvözlőüzenet hozzáadása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve" approved="no">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target state="translated">Adja hozzá a kollégáit a beszélgetésekhez.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -752,9 +760,9 @@
|
||||
<target>A jelkód megadása után az összes adat törlésre kerül.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<target>Az összes adat biztonságban van az eszközén.</target>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve" approved="no">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target state="translated">Az összes adat privát módon van tárolva az Ön eszközén.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -762,9 +770,9 @@
|
||||
<target>Az összes csoporttag kapcsolatban marad.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." xml:space="preserve">
|
||||
<trans-unit id="All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." xml:space="preserve" approved="no">
|
||||
<source>All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages.</source>
|
||||
<target>Az összes üzenetet és fájlt **végpontok közötti titkosítással** küldi, a közvetlen üzenetekben pedig kvantumrezisztens biztonsággal.</target>
|
||||
<target state="translated">Az összes üzenet és fájl **végpontok közötti titkosítással**, a közvetlen üzenetek továbbá kvantumálló titkosítással is rendelkeznek.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All messages will be deleted - this cannot be undone!" xml:space="preserve">
|
||||
@@ -952,9 +960,9 @@
|
||||
<target>Bárki üzemeltethet kiszolgálókat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="App build: %@" xml:space="preserve">
|
||||
<trans-unit id="App build: %@" xml:space="preserve" approved="no">
|
||||
<source>App build: %@</source>
|
||||
<target>Az alkalmazás build száma: %@</target>
|
||||
<target state="translated">Az alkalmazás összeállítási száma: %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="App data migration" xml:space="preserve">
|
||||
@@ -1209,7 +1217,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
<source>Blur media</source>
|
||||
<target>Média elhomályosítása</target>
|
||||
<target>Médiatartalom elhomályosítása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
|
||||
@@ -1244,10 +1252,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Üzleti cím</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Üzleti csevegések</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1341,6 +1351,11 @@
|
||||
<target>Változtatás</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Csevegési profilok megváltoztatása</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Adatbázis-jelmondat megváltoztatása?</target>
|
||||
@@ -1387,21 +1402,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Felhasználói profilok megváltoztatása</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Csevegés</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>A csevegés már létezik</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>A csevegés már létezik!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1494,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>A csevegés minden tag számára törlésre kerül - ezt a műveletet nem lehet visszavonni!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>A csevegés törlésre kerül az Ön számára - ezt a műveletet nem lehet visszavonni!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -1602,8 +1617,8 @@
|
||||
<target>A következő üzemeltető(k) számára elfogadott feltételek: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>A feltételek már el lettek fogadva a következő üzemeltető(k) számára: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -2243,6 +2258,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Csevegés törlése</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2273,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Csevegés törlése?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2526,6 +2543,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>A tagok közötti közvetlen üzenetek le vannak tiltva ebben a csevegésben.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -2869,9 +2887,9 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
<target>Titkosított üzenet: váratlan hiba</target>
|
||||
<note>notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
|
||||
<trans-unit id="Encryption re-negotiation error" xml:space="preserve" approved="no">
|
||||
<source>Encryption re-negotiation error</source>
|
||||
<target>Titkosítás újraegyeztetési hiba</target>
|
||||
<target state="translated">Titkosítás-újraegyeztetési hiba</target>
|
||||
<note>message decrypt error item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
|
||||
@@ -3508,7 +3526,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." xml:space="preserve">
|
||||
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
|
||||
<target>Ha például az ismerőse a SimpleX Chat kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása a Flux egyik kiszolgálóját használja a kézbesítéshez.</target>
|
||||
<target>Például, ha az Ön ismerőse egy SimpleX Chat-kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása egy Flux-kiszolgálón keresztül fogja azokat kézbesíteni.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For private routing" xml:space="preserve">
|
||||
@@ -4101,6 +4119,7 @@ További fejlesztések hamarosan!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Meghívás a csevegésbe</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4263,10 +4282,12 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Csevegés elhagyása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Csevegés elhagyása?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4422,7 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>A tag szerepeköre meg fog változni a következőre: "%@". A csevegés tagjai értesítést fognak kapni.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4437,7 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>A tag el lesz távolítva a csevegésből - ezt a műveletet nem lehet visszavonni!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -4587,9 +4610,9 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
|
||||
<target>Az üzeneteket, fájlokat és hívásokat **végpontok közötti titkosítással**, sérülés utáni titkosság-védelemmel és -helyreállítással, továbbá visszautasítással védi.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
|
||||
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve" approved="no">
|
||||
<source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
|
||||
<target>Az üzeneteket, fájlokat és hívásokat **végpontok közötti kvantumrezisztens titkosítással**, sérülés utáni titkosság-védelemmel és -helyreállítással, továbbá visszautasítással védi.</target>
|
||||
<target state="translated">Az üzenetek, fájlok és hívások **végpontok közötti kvantumálló titkosítással** sérülés utáni titkosságvédelemmel, visszautasítással és feltörés utáni helyreállítással vannak védve.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Migrate device" xml:space="preserve">
|
||||
@@ -5032,6 +5055,7 @@ VPN engedélyezése szükséges.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Csak a csevegés tulajdonosai módosíthatják a beállításokat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5166,6 +5190,7 @@ VPN engedélyezése szükséges.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>Vagy archívumfájl importálása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5431,6 +5456,7 @@ Hiba: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Az Ön ügyfeleinek adatvédelme.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5545,7 +5571,7 @@ Hiba: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||
<source>Protect IP address</source>
|
||||
<target>IP-cím védelem</target>
|
||||
<target>IP-cím védelme</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||
@@ -5590,11 +5616,6 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<target>A proxy jelszót igényel</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push értesítések</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-értesítések</target>
|
||||
@@ -5605,9 +5626,9 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<target>Push-kiszolgáló</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Quantum resistant encryption" xml:space="preserve">
|
||||
<trans-unit id="Quantum resistant encryption" xml:space="preserve" approved="no">
|
||||
<source>Quantum resistant encryption</source>
|
||||
<target>Kvantumrezisztens titkosítás</target>
|
||||
<target state="translated">Kvantumálló titkosítás</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Rate the app" xml:space="preserve">
|
||||
@@ -6021,16 +6042,6 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<target>Biztonságosabb csoportok</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Mentés</target>
|
||||
@@ -6045,7 +6056,7 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Mentés és az ismerős értesítése</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6080,7 +6091,7 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Beállítások mentése?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6119,7 +6130,7 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
</trans-unit>
|
||||
<trans-unit id="Saved from" xml:space="preserve">
|
||||
<source>Saved from</source>
|
||||
<target>Mentve innen:</target>
|
||||
<target>Elmentve innen:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Saved message" xml:space="preserve">
|
||||
@@ -6703,6 +6714,11 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
<target>SimpleX-cím</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<target>A SimpleX Chat és a Flux megállapodást kötött arról, hogy a Flux által üzemeltetett kiszolgálókat beépítik az alkalmazásba.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>A SimpleX Chat biztonsága a Trail of Bits által lett auditálva.</target>
|
||||
@@ -7017,6 +7033,7 @@ Engedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Koppintson a SimpleX-cím létrehozása menüpontra a későbbi létrehozáshoz.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,6 +7208,16 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
|
||||
<target>A profilja csak az ismerőseivel kerül megosztásra.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Ugyanezek a feltételek lesznek elfogadva a következő üzemeltetőre is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>A második előre beállított üzemeltető az alkalmazásban!</target>
|
||||
@@ -7206,14 +7233,14 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
|
||||
<target>A feladó NEM fog értesítést kapni</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve">
|
||||
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve" approved="no">
|
||||
<source>The servers for new connections of your current chat profile **%@**.</source>
|
||||
<target>A jelenlegi csevegési profilhoz tartozó új kapcsolatok kiszolgálói **%@**.</target>
|
||||
<target state="translated">Az Ön jelenlegi **%@** nevű csevegő-profiljához tartozó új kapcsolatok kiszolgálói.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
|
||||
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve" approved="no">
|
||||
<source>The servers for new files of your current chat profile **%@**.</source>
|
||||
<target>Az Ön jelenlegi **%@** nevű csevegőprofiljához tartozó új fájlok kiszolgálói.</target>
|
||||
<target state="translated">Az Ön jelenlegi **%@** nevű csevegő-profiljához tartozó új fájlok kiszolgálói.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
|
||||
@@ -7236,9 +7263,9 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
|
||||
<target>Ezek a feltételek lesznek elfogadva a következő számára is: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="These settings are for your current profile **%@**." xml:space="preserve">
|
||||
<trans-unit id="These settings are for your current profile **%@**." xml:space="preserve" approved="no">
|
||||
<source>These settings are for your current profile **%@**.</source>
|
||||
<target>Ezek a beállítások csak a jelenlegi (**%@**) profiljára vonatkoznak.</target>
|
||||
<target state="translated">Ezek a beállítások csak az Ön jelenlegi **%@** nevű csevegő-profiljára vonatkoznak.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="They can be overridden in contact and group settings." xml:space="preserve">
|
||||
@@ -7266,9 +7293,9 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
|
||||
<target>Ez a csevegés végpontok közötti titkosítással védett.</target>
|
||||
<note>E2EE info chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This chat is protected by quantum resistant end-to-end encryption." xml:space="preserve">
|
||||
<trans-unit id="This chat is protected by quantum resistant end-to-end encryption." xml:space="preserve" approved="no">
|
||||
<source>This chat is protected by quantum resistant end-to-end encryption.</source>
|
||||
<target>Ez a csevegés végpontok közötti kvantumrezisztens tikosítással védett.</target>
|
||||
<target state="translated">Ez a csevegés végpontok közötti kvantumálló tikosítással védett.</target>
|
||||
<note>E2EE info chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This device name" xml:space="preserve">
|
||||
@@ -7306,9 +7333,9 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
|
||||
<target>Ezt a hivatkozást egy másik hordozható eszközön már használták, hozzon létre egy új hivatkozást a számítógépén.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
|
||||
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve" approved="no">
|
||||
<source>This setting applies to messages in your current chat profile **%@**.</source>
|
||||
<target>Ez a beállítás csak a jelenlegi (**%@**) profiljában lévő üzenetekre vonatkozik.</target>
|
||||
<target state="translated">Ez a beállítás csak az Ön jelenlegi **%@** nevű csevegő-profiljában lévő üzenetekre vonatkozik.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Title" xml:space="preserve">
|
||||
@@ -7805,9 +7832,9 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
|
||||
<target>Böngészőn keresztül</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
|
||||
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve" approved="no">
|
||||
<source>Via secure quantum resistant protocol.</source>
|
||||
<target>Biztonságos kvantumrezisztens-protokollon keresztül.</target>
|
||||
<target state="translated">Biztonságos kvantumálló-protokollon keresztül.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Video call" xml:space="preserve">
|
||||
@@ -7900,9 +7927,9 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
|
||||
<target>Várakozás a videóra</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallpaper accent" xml:space="preserve">
|
||||
<trans-unit id="Wallpaper accent" xml:space="preserve" approved="no">
|
||||
<source>Wallpaper accent</source>
|
||||
<target>Háttérkép kiemelés</target>
|
||||
<target state="translated">Háttérkép kiemelőszíne</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Wallpaper background" xml:space="preserve">
|
||||
@@ -8050,18 +8077,19 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
|
||||
<target>Már van egy csevegési profil ugyanezzel a megjelenített névvel. Válasszon egy másik nevet.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected to %@." xml:space="preserve">
|
||||
<trans-unit id="You are already connected to %@." xml:space="preserve" approved="no">
|
||||
<source>You are already connected to %@.</source>
|
||||
<target>Ön már kapcsolódva van ehhez: %@.</target>
|
||||
<target state="translated">Ön már kapcsolódva van a következőhöz: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Ön már kapcsolódva van vele: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve" approved="no">
|
||||
<source>You are already connecting to %@.</source>
|
||||
<target>Már folyamatban van a kapcsolódás ehhez: %@.</target>
|
||||
<target state="translated">Már folyamatban van a kapcsolódás a következőhöz: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
|
||||
@@ -8128,7 +8156,7 @@ Csatlakozáskérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can configure servers via settings." xml:space="preserve">
|
||||
<source>You can configure servers via settings.</source>
|
||||
<target>A kiszolgálókat a beállításokon keresztül konfigurálhatja.</target>
|
||||
<target>A kiszolgálókat a „Hálózat és kiszolgálók” menüben konfigurálhatja.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
@@ -8178,7 +8206,7 @@ Csatlakozáskérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can set lock screen notification preview via settings." xml:space="preserve">
|
||||
<source>You can set lock screen notification preview via settings.</source>
|
||||
<target>A beállításokon keresztül beállíthatja a lezárási képernyő értesítési előnézetét.</target>
|
||||
<target>A lezárási képernyő értesítési előnézetét az „Értesítések” menüben állíthatja be.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can share a link or a QR code - anybody will be able to join the group. You won't lose members of the group if you later delete it." xml:space="preserve">
|
||||
@@ -8335,6 +8363,7 @@ Kapcsolatkérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Ön nem fog több üzenetet kapni ebből a csevegésből, de a csevegés előzményei megmaradnak.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -8522,6 +8551,11 @@ Kapcsolatkérés megismétlése?</target>
|
||||
<target>elfogadott hívás</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<target>elfogadott meghívó</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>adminisztrátor</target>
|
||||
@@ -8710,7 +8744,7 @@ Kapcsolatkérés megismétlése?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>kapcsolódás…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8747,9 +8781,9 @@ Kapcsolatkérés megismétlése?</target>
|
||||
<target>egyedi</target>
|
||||
<note>dropdown time picker choice</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="database version is newer than the app, but no down migration for: %@" xml:space="preserve">
|
||||
<trans-unit id="database version is newer than the app, but no down migration for: %@" xml:space="preserve" approved="no">
|
||||
<source>database version is newer than the app, but no down migration for: %@</source>
|
||||
<target>az adatbázis verziója újabb, mint az alkalmazásé, de nincs visszafelé átköltöztetés ehhez: %@</target>
|
||||
<target state="translated">az adatbázis verziója újabb, mint az alkalmazásé, de nincs visszafelé átköltöztetés a következőhöz: %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="days" xml:space="preserve">
|
||||
@@ -8857,24 +8891,24 @@ Kapcsolatkérés megismétlése?</target>
|
||||
<target>titkosítás rendben vele: %@</target>
|
||||
<note>chat item text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="encryption re-negotiation allowed" xml:space="preserve">
|
||||
<trans-unit id="encryption re-negotiation allowed" xml:space="preserve" approved="no">
|
||||
<source>encryption re-negotiation allowed</source>
|
||||
<target>titkosítás újraegyeztetés engedélyezve</target>
|
||||
<target state="translated">titkosítás-újraegyeztetés engedélyezve</target>
|
||||
<note>chat item text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="encryption re-negotiation allowed for %@" xml:space="preserve">
|
||||
<trans-unit id="encryption re-negotiation allowed for %@" xml:space="preserve" approved="no">
|
||||
<source>encryption re-negotiation allowed for %@</source>
|
||||
<target>titkosítás újraegyeztetés engedélyezve vele: %@</target>
|
||||
<target state="translated">a titkosítás újraegyeztetése engedélyezve van a következőhöz: %@</target>
|
||||
<note>chat item text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="encryption re-negotiation required" xml:space="preserve">
|
||||
<trans-unit id="encryption re-negotiation required" xml:space="preserve" approved="no">
|
||||
<source>encryption re-negotiation required</source>
|
||||
<target>titkosítás újraegyeztetés szükséges</target>
|
||||
<target state="translated">titkosítás-újraegyeztetés szükséges</target>
|
||||
<note>chat item text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="encryption re-negotiation required for %@" xml:space="preserve">
|
||||
<trans-unit id="encryption re-negotiation required for %@" xml:space="preserve" approved="no">
|
||||
<source>encryption re-negotiation required for %@</source>
|
||||
<target>titkosítás újraegyeztetés szükséges %@ számára</target>
|
||||
<target state="translated">a titkosítás újraegyeztetése szükséges a következőhöz: %@</target>
|
||||
<note>chat item text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ended" xml:space="preserve">
|
||||
@@ -9159,9 +9193,9 @@ Kapcsolatkérés megismétlése?</target>
|
||||
<target>ponttól-pontig</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="quantum resistant e2e encryption" xml:space="preserve">
|
||||
<trans-unit id="quantum resistant e2e encryption" xml:space="preserve" approved="no">
|
||||
<source>quantum resistant e2e encryption</source>
|
||||
<target>végpontok közötti kvantumrezisztens titkosítás</target>
|
||||
<target state="translated">végpontok közötti kvantumálló titkosítás</target>
|
||||
<note>chat item text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="received answer…" xml:space="preserve">
|
||||
@@ -9204,6 +9238,11 @@ Kapcsolatkérés megismétlése?</target>
|
||||
<target>eltávolította Önt</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<target>kérelmezve a kapcsolódáshoz</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>mentett</target>
|
||||
@@ -9211,7 +9250,7 @@ Kapcsolatkérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved from %@" xml:space="preserve">
|
||||
<source>saved from %@</source>
|
||||
<target>mentve innen: %@</target>
|
||||
<target>elmentve innen: %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="search" xml:space="preserve">
|
||||
|
||||
@@ -577,6 +577,11 @@
|
||||
<target>Riguardo SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve" approved="no">
|
||||
<source>About operators</source>
|
||||
<target state="translated">Info sugli operatori</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Principale</target>
|
||||
@@ -637,6 +642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Aggiungi amici</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -656,6 +662,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Aggiungi membri del team</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -670,6 +677,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Aggiungi i membri del tuo team alle conversazioni.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -752,8 +760,8 @@
|
||||
<target>Tutti i dati vengono cancellati quando inserito.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Tutti i dati sono privati, nel tuo dispositivo.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1084,12 +1092,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Auto-accept contact requests" xml:space="preserve">
|
||||
<source>Auto-accept contact requests</source>
|
||||
<target>Auto-accetta richieste di contatto</target>
|
||||
<target>Auto-accetta le richieste di contatto</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Auto-accept images" xml:space="preserve">
|
||||
<source>Auto-accept images</source>
|
||||
<target>Auto-accetta immagini</target>
|
||||
<target>Auto-accetta le immagini</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Auto-accept settings" xml:space="preserve">
|
||||
@@ -1209,7 +1217,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
<source>Blur media</source>
|
||||
<target>Sfocatura file multimediali</target>
|
||||
<target>Sfocatura dei file multimediali</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
|
||||
@@ -1244,10 +1252,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Indirizzo di lavoro</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Chat di lavoro</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1341,6 +1351,11 @@
|
||||
<target>Cambia</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Modifica profili utente</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Cambiare password del database?</target>
|
||||
@@ -1387,21 +1402,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Modifica profili utente</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>La chat esiste già</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>La chat esiste già!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1494,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>La chat verrà eliminata per tutti i membri, non è reversibile!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>La chat verrà eliminata solo per te, non è reversibile!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -1602,8 +1617,8 @@
|
||||
<target>Le condizioni sono state accettate per gli operatori: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>Le condizioni sono già state accettate per i seguenti operatori: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -2243,6 +2258,7 @@ Questo è il tuo link una tantum!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Elimina chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2273,7 @@ Questo è il tuo link una tantum!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Eliminare la chat?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2526,6 +2543,7 @@ Questo è il tuo link una tantum!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>I messaggi diretti tra i membri sono vietati in questa chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -4101,6 +4119,7 @@ Altri miglioramenti sono in arrivo!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Invita in chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4263,10 +4282,12 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Esci dalla chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Uscire dalla chat?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4422,7 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>Il ruolo del membro verrà cambiato in "%@". Verranno notificati tutti i membri della chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4437,7 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>Il membro verrà rimosso dalla chat, non è reversibile!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -4479,7 +4502,7 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message draft" xml:space="preserve">
|
||||
<source>Message draft</source>
|
||||
<target>Bozza dei messaggi</target>
|
||||
<target>Bozza del messaggio</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message forwarded" xml:space="preserve">
|
||||
@@ -5032,6 +5055,7 @@ Richiede l'attivazione della VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Solo i proprietari della chat possono modificarne le preferenze.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5166,6 +5190,7 @@ Richiede l'attivazione della VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>O importa file archivio</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5431,6 +5456,7 @@ Errore: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Privacy per i tuoi clienti.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5590,11 +5616,6 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
<target>Il proxy richiede una password</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Notifiche push</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Notifiche push</target>
|
||||
@@ -5968,12 +5989,12 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Review conditions" xml:space="preserve">
|
||||
<source>Review conditions</source>
|
||||
<target>Esamina le condizioni</target>
|
||||
<target>Leggi le condizioni</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Review later" xml:space="preserve">
|
||||
<source>Review later</source>
|
||||
<target>Esamina più tardi</target>
|
||||
<target>Leggi più tardi</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Revoke" xml:space="preserve">
|
||||
@@ -6021,16 +6042,6 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
<target>Gruppi più sicuri</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno all'operatore **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno agli operatori **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Salva</target>
|
||||
@@ -6045,7 +6056,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Salva e avvisa il contatto</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6080,7 +6091,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Salvare le preferenze?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6279,7 +6290,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Send link previews" xml:space="preserve">
|
||||
<source>Send link previews</source>
|
||||
<target>Invia anteprime dei link</target>
|
||||
<target>Invia le anteprime dei link</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Send live message" xml:space="preserve">
|
||||
@@ -6600,7 +6611,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share SimpleX address on social media." xml:space="preserve">
|
||||
<source>Share SimpleX address on social media.</source>
|
||||
<target>Condividi indirizzo SimpleX sui social media.</target>
|
||||
<target>Condividi l'indirizzo SimpleX sui social media.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address" xml:space="preserve">
|
||||
@@ -6703,6 +6714,11 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
<target>Indirizzo SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve" approved="no">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<target state="translated">SimpleX Chat e Flux hanno concluso un accordo per includere server gestiti da Flux nell'app.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>La sicurezza di SimpleX Chat è stata verificata da Trail of Bits.</target>
|
||||
@@ -7017,6 +7033,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Tocca Crea indirizzo SimpleX nel menu per crearlo più tardi.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,6 +7208,16 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
|
||||
<target>Il profilo è condiviso solo con i tuoi contatti.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno all'operatore **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Le stesse condizioni si applicheranno agli operatori **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Il secondo operatore preimpostato nell'app!</target>
|
||||
@@ -8057,6 +8084,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Sei già connesso/a con %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8335,6 +8363,7 @@ Ripetere la richiesta di connessione?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Non riceverai più messaggi da questa chat. La cronologia della chat verrà conservata.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -8522,6 +8551,11 @@ Ripetere la richiesta di connessione?</target>
|
||||
<target>chiamata accettata</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve" approved="no">
|
||||
<source>accepted invitation</source>
|
||||
<target state="translated">invito accettato</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>amministratore</target>
|
||||
@@ -8710,7 +8744,7 @@ Ripetere la richiesta di connessione?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>in connessione…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9204,6 +9238,11 @@ Ripetere la richiesta di connessione?</target>
|
||||
<target>ti ha rimosso/a</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve" approved="no">
|
||||
<source>requested to connect</source>
|
||||
<target state="translated">richiesto di connettersi</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>salvato</target>
|
||||
|
||||
@@ -560,6 +560,10 @@
|
||||
<target>SimpleX Chat について</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -720,8 +724,8 @@
|
||||
<target>入力するとすべてのデータが消去されます。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -1264,6 +1268,10 @@
|
||||
<target>変更</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>データベースのパスフレーズを更新しますか?</target>
|
||||
@@ -1310,10 +1318,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1511,8 +1515,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -2474,9 +2478,9 @@ This is your own one-time link!</source>
|
||||
<source>Do not use credentials with proxy.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Don't create address" xml:space="preserve">
|
||||
<trans-unit id="Don't create address" xml:space="preserve" approved="no">
|
||||
<source>Don't create address</source>
|
||||
<target>アドレスを作成しないでください</target>
|
||||
<target state="translated">アドレスを作成しない</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Don't enable" xml:space="preserve">
|
||||
@@ -3756,9 +3760,9 @@ More improvements are coming soon!</source>
|
||||
<target>インストール [ターミナル用SimpleX Chat](https://github.com/simplex-chat/simplex-chat)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Instant" xml:space="preserve">
|
||||
<trans-unit id="Instant" xml:space="preserve" approved="no">
|
||||
<source>Instant</source>
|
||||
<target>すぐに</target>
|
||||
<target state="translated">即時</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Instant push notifications will be hidden! " xml:space="preserve">
|
||||
@@ -4294,8 +4298,9 @@ This is your link for group %@!</source>
|
||||
<source>Migrate device</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Migrate from another device" xml:space="preserve">
|
||||
<trans-unit id="Migrate from another device" xml:space="preserve" approved="no">
|
||||
<source>Migrate from another device</source>
|
||||
<target state="translated">別の端末から移行</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Migrate here" xml:space="preserve">
|
||||
@@ -5079,8 +5084,9 @@ Error: %@</source>
|
||||
<source>Private message routing 🚀</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Private notes" xml:space="preserve">
|
||||
<trans-unit id="Private notes" xml:space="preserve" approved="no">
|
||||
<source>Private notes</source>
|
||||
<target state="translated">プライベートノート</target>
|
||||
<note>name of notes to self</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Private routing" xml:space="preserve">
|
||||
@@ -5204,10 +5210,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>プッシュ通知</target>
|
||||
@@ -5599,14 +5601,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>保存</target>
|
||||
@@ -5621,7 +5615,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>保存して、連絡先にに知らせる</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -5655,7 +5649,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>この設定でよろしいですか?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6215,6 +6209,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>SimpleXアドレス</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>SimpleX Chat のセキュリティは Trail of Bits によって監査されました。</target>
|
||||
@@ -6667,6 +6665,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>プロフィールは連絡先にしか共有されません。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -7533,8 +7539,9 @@ Repeat join request?</source>
|
||||
<target>ユーザープロファイルを右にスワイプすると、非表示またはミュートにすることができます。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can make it visible to your SimpleX contacts via Settings." xml:space="preserve">
|
||||
<trans-unit id="You can make it visible to your SimpleX contacts via Settings." xml:space="preserve" approved="no">
|
||||
<source>You can make it visible to your SimpleX contacts via Settings.</source>
|
||||
<target state="translated">設定でSimpleXの連絡先に表示させることができます。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can now chat with %@" xml:space="preserve">
|
||||
@@ -7880,6 +7887,10 @@ Repeat connection request?</source>
|
||||
<target>受けた通話</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>管理者</target>
|
||||
@@ -8058,7 +8069,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>接続待ち…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8534,6 +8545,10 @@ Repeat connection request?</source>
|
||||
<target>あなたを除名しました</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -577,6 +577,11 @@
|
||||
<target>Over SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<target>Over operatoren</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Accent</target>
|
||||
@@ -637,6 +642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Vrienden toevoegen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -656,6 +662,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Teamleden toevoegen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -670,6 +677,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Voeg uw teamleden toe aan de gesprekken.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
@@ -752,8 +760,8 @@
|
||||
<target>Alle gegevens worden bij het invoeren gewist.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Alle gegevens zijn privé op uw apparaat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -829,7 +837,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||
<target>Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</target>
|
||||
<target>Sta het definitief verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow message reactions only if your contact allows them." xml:space="preserve">
|
||||
@@ -859,7 +867,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||
<source>Allow to irreversibly delete sent messages. (24 hours)</source>
|
||||
<target>Sta toe om verzonden berichten onomkeerbaar te verwijderen. (24 uur)</target>
|
||||
<target>Sta toe om verzonden berichten definitief te verwijderen. (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||
@@ -899,7 +907,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow your contacts to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||
<source>Allow your contacts to irreversibly delete sent messages. (24 hours)</source>
|
||||
<target>Laat uw contacten verzonden berichten onomkeerbaar verwijderen. (24 uur)</target>
|
||||
<target>Laat uw contacten verzonden berichten definitief verwijderen. (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow your contacts to send disappearing messages." xml:space="preserve">
|
||||
@@ -1054,7 +1062,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Audio/video calls are prohibited." xml:space="preserve">
|
||||
<source>Audio/video calls are prohibited.</source>
|
||||
<target>Audio/video gesprekken zijn verboden.</target>
|
||||
<target>Audio/video gesprekken zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Authentication cancelled" xml:space="preserve">
|
||||
@@ -1244,10 +1252,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Zakelijk adres</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Zakelijke chats</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1267,7 +1277,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Calls prohibited!" xml:space="preserve">
|
||||
<source>Calls prohibited!</source>
|
||||
<target>Bellen verboden!</target>
|
||||
<target>Bellen niet toegestaan!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Camera not available" xml:space="preserve">
|
||||
@@ -1341,6 +1351,11 @@
|
||||
<target>Veranderen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Gebruikersprofielen wijzigen</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Wachtwoord database wijzigen?</target>
|
||||
@@ -1387,21 +1402,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Gebruikersprofielen wijzigen</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>Chat bestaat al</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>Chat bestaat al!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1481,10 +1494,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>De chat wordt voor alle leden verwijderd - dit kan niet ongedaan worden gemaakt!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>De chat wordt voor je verwijderd - dit kan niet ongedaan worden gemaakt!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -1602,8 +1617,8 @@
|
||||
<target>Voorwaarden worden geaccepteerd voor de operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>Voorwaarden zijn reeds geaccepteerd voor de volgende operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -2243,6 +2258,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Chat verwijderen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2257,6 +2273,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Chat verwijderen?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2526,11 +2543,12 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>Directe berichten tussen leden zijn in deze chat niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited.</source>
|
||||
<target>Directe berichten tussen leden zijn verboden in deze groep.</target>
|
||||
<target>Directe berichten tussen leden zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disable (keep overrides)" xml:space="preserve">
|
||||
@@ -2565,12 +2583,12 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disappearing messages are prohibited in this chat." xml:space="preserve">
|
||||
<source>Disappearing messages are prohibited in this chat.</source>
|
||||
<target>Verdwijnende berichten zijn verboden in dit gesprek.</target>
|
||||
<target>Verdwijnende berichten zijn niet toegestaan in dit gesprek.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
|
||||
<source>Disappearing messages are prohibited.</source>
|
||||
<target>Verdwijnende berichten zijn verboden in deze groep.</target>
|
||||
<target>Verdwijnende berichten zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Disappears at" xml:space="preserve">
|
||||
@@ -3428,7 +3446,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Files and media are prohibited." xml:space="preserve">
|
||||
<source>Files and media are prohibited.</source>
|
||||
<target>Bestanden en media zijn verboden in deze groep.</target>
|
||||
<target>Bestanden en media zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||
@@ -3438,7 +3456,7 @@ Dit is uw eigen eenmalige link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||
<source>Files and media prohibited!</source>
|
||||
<target>Bestanden en media verboden!</target>
|
||||
<target>Bestanden en media niet toegestaan!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Filter unread and favorite chats." xml:space="preserve">
|
||||
@@ -3842,7 +3860,7 @@ Fout: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="If you enter this passcode when opening the app, all app data will be irreversibly removed!" xml:space="preserve">
|
||||
<source>If you enter this passcode when opening the app, all app data will be irreversibly removed!</source>
|
||||
<target>Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens onomkeerbaar verwijderd!</target>
|
||||
<target>Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens definitief verwijderd!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="If you enter your self-destruct passcode while opening the app:" xml:space="preserve">
|
||||
@@ -4101,6 +4119,7 @@ Binnenkort meer verbeteringen!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Uitnodigen voor een chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4115,12 +4134,12 @@ Binnenkort meer verbeteringen!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Irreversible message deletion is prohibited in this chat." xml:space="preserve">
|
||||
<source>Irreversible message deletion is prohibited in this chat.</source>
|
||||
<target>Het onomkeerbaar verwijderen van berichten is verboden in dit gesprek.</target>
|
||||
<target>Het definitief verwijderen van berichten is niet toegestaan in dit gesprek.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
|
||||
<source>Irreversible message deletion is prohibited.</source>
|
||||
<target>Het onomkeerbaar verwijderen van berichten is verboden in deze groep.</target>
|
||||
<target>Het definitief verwijderen van berichten is verbHet definitief verwijderen van berichten is niet toegestaan..</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
|
||||
@@ -4263,10 +4282,12 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Chat verlaten</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Chat verlaten?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4401,6 +4422,7 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>De rol van het lid wordt gewijzigd naar "%@". Alle chatleden worden op de hoogte gebracht.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4415,6 +4437,7 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>Lid wordt verwijderd uit de chat - dit kan niet ongedaan worden gemaakt!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -4504,12 +4527,12 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message reactions are prohibited in this chat." xml:space="preserve">
|
||||
<source>Message reactions are prohibited in this chat.</source>
|
||||
<target>Reacties op berichten zijn verboden in deze chat.</target>
|
||||
<target>Reacties op berichten zijn niet toegestaan in deze chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message reactions are prohibited." xml:space="preserve">
|
||||
<source>Message reactions are prohibited.</source>
|
||||
<target>Reacties op berichten zijn verboden in deze groep.</target>
|
||||
<target>Reacties op berichten zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message reception" xml:space="preserve">
|
||||
@@ -5032,6 +5055,7 @@ Vereist het inschakelen van VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Alleen chateigenaren kunnen voorkeuren wijzigen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5066,7 +5090,7 @@ Vereist het inschakelen van VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" xml:space="preserve">
|
||||
<source>Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)</source>
|
||||
<target>Alleen jij kunt berichten onomkeerbaar verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)</target>
|
||||
<target>Alleen jij kunt berichten definitief verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only you can make calls." xml:space="preserve">
|
||||
@@ -5166,6 +5190,7 @@ Vereist het inschakelen van VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>Of importeer archiefbestand</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5431,6 +5456,7 @@ Fout: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Privacy voor uw klanten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5505,7 +5531,7 @@ Fout: %@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Prohibit irreversible message deletion." xml:space="preserve">
|
||||
<source>Prohibit irreversible message deletion.</source>
|
||||
<target>Verbied het onomkeerbaar verwijderen van berichten.</target>
|
||||
<target>Verbied het definitief verwijderen van berichten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Prohibit message reactions." xml:space="preserve">
|
||||
@@ -5590,11 +5616,6 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
<target>Proxy vereist wachtwoord</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Pushmeldingen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push meldingen</target>
|
||||
@@ -6021,16 +6042,6 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
<target>Veiligere groepen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Opslaan</target>
|
||||
@@ -6045,7 +6056,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Opslaan en Contact melden</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6080,7 +6091,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Voorkeuren opslaan?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6703,6 +6714,11 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
<target>SimpleX adres</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<target>Simplex-chat en flux hebben een overeenkomst gemaakt om door flux geëxploiteerde servers in de app op te nemen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>De beveiliging van SimpleX Chat is gecontroleerd door Trail of Bits.</target>
|
||||
@@ -6765,7 +6781,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX links are prohibited." xml:space="preserve">
|
||||
<source>SimpleX links are prohibited.</source>
|
||||
<target>SimpleX-links zijn in deze groep verboden.</target>
|
||||
<target>SimpleX-links zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||
@@ -7017,6 +7033,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Tik op SimpleX-adres maken in het menu om het later te maken.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7191,6 +7208,16 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
|
||||
<target>Het profiel wordt alleen gedeeld met uw contacten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Dezelfde voorwaarden gelden voor operator(s): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>De tweede vooraf ingestelde operator in de app!</target>
|
||||
@@ -7258,7 +7285,7 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." xml:space="preserve">
|
||||
<source>This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost.</source>
|
||||
<target>Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</target>
|
||||
<target>Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan definitief verloren.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This chat is protected by end-to-end encryption." xml:space="preserve">
|
||||
@@ -7857,12 +7884,12 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages are prohibited in this chat." xml:space="preserve">
|
||||
<source>Voice messages are prohibited in this chat.</source>
|
||||
<target>Spraak berichten zijn verboden in deze chat.</target>
|
||||
<target>Spraak berichten zijn niet toegestaan in dit gesprek.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages are prohibited." xml:space="preserve">
|
||||
<source>Voice messages are prohibited.</source>
|
||||
<target>Spraak berichten zijn verboden in deze groep.</target>
|
||||
<target>Spraak berichten zijn niet toegestaan.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||
@@ -7872,7 +7899,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||
<source>Voice messages prohibited!</source>
|
||||
<target>Spraak berichten verboden!</target>
|
||||
<target>Spraak berichten niet toegestaan!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Voice message…" xml:space="preserve">
|
||||
@@ -8057,6 +8084,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>U bent al verbonden met %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8335,6 +8363,7 @@ Verbindingsverzoek herhalen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>U ontvangt geen berichten meer van deze chat. De chatgeschiedenis blijft bewaard.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -8522,6 +8551,11 @@ Verbindingsverzoek herhalen?</target>
|
||||
<target>geaccepteerde oproep</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<target>geaccepteerde uitnodiging</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>Beheerder</target>
|
||||
@@ -8710,7 +8744,7 @@ Verbindingsverzoek herhalen?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>Verbinden…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9204,6 +9238,11 @@ Verbindingsverzoek herhalen?</target>
|
||||
<target>heeft je verwijderd</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<target>gevraagd om verbinding te maken</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>opgeslagen</target>
|
||||
|
||||
@@ -572,6 +572,10 @@
|
||||
<target>O SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Akcent</target>
|
||||
@@ -741,8 +745,8 @@
|
||||
<target>Wszystkie dane są usuwane po jego wprowadzeniu.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Wszystkie dane są prywatne na Twoim urządzeniu.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1324,6 +1328,10 @@
|
||||
<target>Zmień</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Zmienić hasło bazy danych?</target>
|
||||
@@ -1370,10 +1378,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1580,8 +1584,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5520,10 +5524,6 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||
<target>Proxy wymaga hasła</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Powiadomienia push</target>
|
||||
@@ -5948,14 +5948,6 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||
<target>Bezpieczniejsze grupy</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Zapisz</target>
|
||||
@@ -5970,7 +5962,7 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Zapisz i powiadom kontakt</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6005,7 +5997,7 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Zapisać preferencje?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6621,6 +6613,10 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||
<target>Adres SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>Bezpieczeństwo SimpleX Chat zostało zaudytowane przez Trail of Bits.</target>
|
||||
@@ -7100,6 +7096,14 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
|
||||
<target>Profil jest udostępniany tylko Twoim kontaktom.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -8412,6 +8416,10 @@ Powtórzyć prośbę połączenia?</target>
|
||||
<target>zaakceptowane połączenie</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>administrator</target>
|
||||
@@ -8600,7 +8608,7 @@ Powtórzyć prośbę połączenia?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>łączenie…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9093,6 +9101,10 @@ Powtórzyć prośbę połączenia?</target>
|
||||
<target>usunął cię</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>zapisane</target>
|
||||
|
||||
@@ -5425,8 +5425,8 @@ Isso pode acontecer por causa de algum bug ou quando a conexão está comprometi
|
||||
<source>Advanced settings</source>
|
||||
<target state="translated">Configurações avançadas</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve" approved="no">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve" approved="no">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target state="translated">Toda informação é privada em seu dispositivo.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve" approved="no">
|
||||
|
||||
@@ -114,10 +114,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ server" xml:space="preserve">
|
||||
<source>%@ server</source>
|
||||
<target>%@ сервер</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ servers" xml:space="preserve">
|
||||
<source>%@ servers</source>
|
||||
<target>%@ серверы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ uploaded" xml:space="preserve">
|
||||
@@ -382,6 +384,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="**Scan / Paste link**: to connect via a link you received." xml:space="preserve">
|
||||
<source>**Scan / Paste link**: to connect via a link you received.</source>
|
||||
<target>**Сканировать / Вставить ссылку**: чтобы соединиться через полученную ссылку.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="**Warning**: Instant push notifications require passphrase saved in Keychain." xml:space="preserve">
|
||||
@@ -492,10 +495,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1-time link" xml:space="preserve">
|
||||
<source>1-time link</source>
|
||||
<target>Одноразовая ссылка</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="1-time link can be used *with one contact only* - share in person or via any messenger." xml:space="preserve">
|
||||
<source>1-time link can be used *with one contact only* - share in person or via any messenger.</source>
|
||||
<target>Одноразовая ссылка может быть использована *только с одним контактом* - поделитесь при встрече или через любой мессенджер.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5 minutes" xml:space="preserve">
|
||||
@@ -572,6 +577,11 @@
|
||||
<target>Информация о SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<target>Об операторах</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Акцент</target>
|
||||
@@ -586,6 +596,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept conditions" xml:space="preserve">
|
||||
<source>Accept conditions</source>
|
||||
<target>Принять условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept connection request?" xml:space="preserve">
|
||||
@@ -606,6 +617,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Accepted conditions" xml:space="preserve">
|
||||
<source>Accepted conditions</source>
|
||||
<target>Принятые условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Acknowledged" xml:space="preserve">
|
||||
@@ -630,6 +642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add friends" xml:space="preserve">
|
||||
<source>Add friends</source>
|
||||
<target>Добавить друзей</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
@@ -649,6 +662,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add team members" xml:space="preserve">
|
||||
<source>Add team members</source>
|
||||
<target>Добавить сотрудников</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add to another device" xml:space="preserve">
|
||||
@@ -663,14 +677,17 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
|
||||
<source>Add your team members to the conversations.</source>
|
||||
<target>Добавьте сотрудников в разговор.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added media & file servers" xml:space="preserve">
|
||||
<source>Added media & file servers</source>
|
||||
<target>Дополнительные серверы файлов и медиа</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Added message servers" xml:space="preserve">
|
||||
<source>Added message servers</source>
|
||||
<target>Дополнительные серверы сообщений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Additional accent" xml:space="preserve">
|
||||
@@ -700,10 +717,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Address or 1-time link?" xml:space="preserve">
|
||||
<source>Address or 1-time link?</source>
|
||||
<target>Адрес или одноразовая ссылка?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Address settings" xml:space="preserve">
|
||||
<source>Address settings</source>
|
||||
<target>Настройки адреса</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admins can block a member for all." xml:space="preserve">
|
||||
@@ -741,8 +760,8 @@
|
||||
<target>Все данные удаляются при его вводе.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Все данные хранятся только на вашем устройстве.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1233,10 +1252,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Business address" xml:space="preserve">
|
||||
<source>Business address</source>
|
||||
<target>Бизнес адрес</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Business chats" xml:space="preserve">
|
||||
<source>Business chats</source>
|
||||
<target>Бизнес разговоры</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
|
||||
@@ -1330,6 +1351,11 @@
|
||||
<target>Поменять</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Поменять профили</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Поменять пароль базы данных?</target>
|
||||
@@ -1376,20 +1402,19 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<target>Разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists" xml:space="preserve">
|
||||
<source>Chat already exists</source>
|
||||
<target>Разговор уже существует</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat already exists!" xml:space="preserve">
|
||||
<source>Chat already exists!</source>
|
||||
<target>Разговор уже существует!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat colors" xml:space="preserve">
|
||||
@@ -1469,10 +1494,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for all members - this cannot be undone!</source>
|
||||
<target>Разговор будет удален для всех участников - это действие нельзя отменить!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
|
||||
<source>Chat will be deleted for you - this cannot be undone!</source>
|
||||
<target>Разговор будет удален для Вас - это действие нельзя отменить!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chats" xml:space="preserve">
|
||||
@@ -1482,10 +1509,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Check messages every 20 min." xml:space="preserve">
|
||||
<source>Check messages every 20 min.</source>
|
||||
<target>Проверять сообщения каждые 20 минут.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Check messages when allowed." xml:space="preserve">
|
||||
<source>Check messages when allowed.</source>
|
||||
<target>Проверять сообщения по возможности.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Check server address and try again." xml:space="preserve">
|
||||
@@ -1580,38 +1609,47 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions accepted on: %@." xml:space="preserve">
|
||||
<source>Conditions accepted on: %@.</source>
|
||||
<target>Условия приняты: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are accepted for the operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<target>Условия приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>Условия уже приняты для следующих оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
<source>Conditions of use</source>
|
||||
<target>Условия использования</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted for enabled operators after 30 days." xml:space="preserve">
|
||||
<source>Conditions will be accepted for enabled operators after 30 days.</source>
|
||||
<target>Условия будут приняты для включенных операторов через 30 дней.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted for operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions will be accepted for operator(s): **%@**.</source>
|
||||
<target>Условия будут приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted for the operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions will be accepted for the operator(s): **%@**.</source>
|
||||
<target>Условия будут приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be accepted on: %@." xml:space="preserve">
|
||||
<source>Conditions will be accepted on: %@.</source>
|
||||
<target>Условия будут приняты: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions will be automatically accepted for enabled operators on: %@." xml:space="preserve">
|
||||
<source>Conditions will be automatically accepted for enabled operators on: %@.</source>
|
||||
<target>Условия будут автоматически приняты для включенных операторов: %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Configure ICE servers" xml:space="preserve">
|
||||
@@ -1810,6 +1848,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connection security" xml:space="preserve">
|
||||
<source>Connection security</source>
|
||||
<target>Безопасность соединения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connection terminated" xml:space="preserve">
|
||||
@@ -1929,6 +1968,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create 1-time link" xml:space="preserve">
|
||||
<source>Create 1-time link</source>
|
||||
<target>Создать одноразовую ссылку</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Create SimpleX address" xml:space="preserve">
|
||||
@@ -2018,6 +2058,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Current conditions text couldn't be loaded, you can review conditions via this link:" xml:space="preserve">
|
||||
<source>Current conditions text couldn't be loaded, you can review conditions via this link:</source>
|
||||
<target>Текст условий использования не может быть показан, вы можете посмотреть их через ссылку:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Current passphrase…" xml:space="preserve">
|
||||
@@ -2217,6 +2258,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat" xml:space="preserve">
|
||||
<source>Delete chat</source>
|
||||
<target>Удалить разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat profile" xml:space="preserve">
|
||||
@@ -2231,6 +2273,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete chat?" xml:space="preserve">
|
||||
<source>Delete chat?</source>
|
||||
<target>Удалить разговор?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete connection" xml:space="preserve">
|
||||
@@ -2395,6 +2438,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delivered even when Apple drops them." xml:space="preserve">
|
||||
<source>Delivered even when Apple drops them.</source>
|
||||
<target>Доставляются даже тогда, когда Apple их теряет.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delivery" xml:space="preserve">
|
||||
@@ -2499,6 +2543,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
|
||||
<source>Direct messages between members are prohibited in this chat.</source>
|
||||
<target>Прямые сообщения между членами запрещены в этом разговоре.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
|
||||
@@ -2684,6 +2729,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="E2E encrypted notifications." xml:space="preserve">
|
||||
<source>E2E encrypted notifications.</source>
|
||||
<target>E2E зашифрованные нотификации.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Edit" xml:space="preserve">
|
||||
@@ -2708,6 +2754,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enable Flux" xml:space="preserve">
|
||||
<source>Enable Flux</source>
|
||||
<target>Включить Flux</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Enable SimpleX Lock" xml:space="preserve">
|
||||
@@ -2917,6 +2964,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error accepting conditions" xml:space="preserve">
|
||||
<source>Error accepting conditions</source>
|
||||
<target>Ошибка приема условий</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error accepting contact request" xml:space="preserve">
|
||||
@@ -2931,6 +2979,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error adding server" xml:space="preserve">
|
||||
<source>Error adding server</source>
|
||||
<target>Ошибка добавления сервера</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error changing address" xml:space="preserve">
|
||||
@@ -3075,6 +3124,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error loading servers" xml:space="preserve">
|
||||
<source>Error loading servers</source>
|
||||
<target>Ошибка загрузки серверов</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error migrating settings" xml:space="preserve">
|
||||
@@ -3134,6 +3184,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error saving servers" xml:space="preserve">
|
||||
<source>Error saving servers</source>
|
||||
<target>Ошибка сохранения серверов</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error saving settings" xml:space="preserve">
|
||||
@@ -3208,6 +3259,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error updating server" xml:space="preserve">
|
||||
<source>Error updating server</source>
|
||||
<target>Ошибка сохранения сервера</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error updating settings" xml:space="preserve">
|
||||
@@ -3257,6 +3309,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Errors in servers configuration." xml:space="preserve">
|
||||
<source>Errors in servers configuration.</source>
|
||||
<target>Ошибки в настройках серверов.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Even when disabled in the conversation." xml:space="preserve">
|
||||
@@ -3463,6 +3516,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="For chat profile %@:" xml:space="preserve">
|
||||
<source>For chat profile %@:</source>
|
||||
<target>Для профиля чата %@:</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For console" xml:space="preserve">
|
||||
@@ -3472,14 +3526,17 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." xml:space="preserve">
|
||||
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
|
||||
<target>Например, если Ваш контакт получает сообщения через сервер SimpleX Chat, Ваше приложение доставит их через сервер Flux.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For private routing" xml:space="preserve">
|
||||
<source>For private routing</source>
|
||||
<target>Для доставки сообщений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="For social media" xml:space="preserve">
|
||||
<source>For social media</source>
|
||||
<target>Для социальных сетей</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Forward" xml:space="preserve">
|
||||
@@ -3758,10 +3815,12 @@ Error: %2$@</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="How it affects privacy" xml:space="preserve">
|
||||
<source>How it affects privacy</source>
|
||||
<target>Как это влияет на конфиденциальность</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="How it helps privacy" xml:space="preserve">
|
||||
<source>How it helps privacy</source>
|
||||
<target>Как это улучшает конфиденциальность</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="How to" xml:space="preserve">
|
||||
@@ -4059,6 +4118,7 @@ More improvements are coming soon!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to chat" xml:space="preserve">
|
||||
<source>Invite to chat</source>
|
||||
<target>Пригласить в разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Invite to group" xml:space="preserve">
|
||||
@@ -4221,10 +4281,12 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat" xml:space="preserve">
|
||||
<source>Leave chat</source>
|
||||
<target>Покинуть разговор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave chat?" xml:space="preserve">
|
||||
<source>Leave chat?</source>
|
||||
<target>Покинуть разговор?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Leave group" xml:space="preserve">
|
||||
@@ -4359,6 +4421,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All chat members will be notified." xml:space="preserve">
|
||||
<source>Member role will be changed to "%@". All chat members will be notified.</source>
|
||||
<target>Роль участника будет изменена на "%@". Все участники разговора получат уведомление.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member role will be changed to "%@". All group members will be notified." xml:space="preserve">
|
||||
@@ -4373,6 +4436,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
|
||||
<source>Member will be removed from chat - this cannot be undone!</source>
|
||||
<target>Член будет удален из разговора - это действие нельзя отменить!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
|
||||
@@ -4637,6 +4701,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="More reliable notifications" xml:space="preserve">
|
||||
<source>More reliable notifications</source>
|
||||
<target>Более надежные уведомления</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||
@@ -4676,6 +4741,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network decentralization" xml:space="preserve">
|
||||
<source>Network decentralization</source>
|
||||
<target>Децентрализация сети</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||
@@ -4690,6 +4756,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network operator" xml:space="preserve">
|
||||
<source>Network operator</source>
|
||||
<target>Оператор сети</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Network settings" xml:space="preserve">
|
||||
@@ -4749,6 +4816,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New events" xml:space="preserve">
|
||||
<source>New events</source>
|
||||
<target>Новые события</target>
|
||||
<note>notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New in %@" xml:space="preserve">
|
||||
@@ -4778,6 +4846,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New server" xml:space="preserve">
|
||||
<source>New server</source>
|
||||
<target>Новый сервер</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No" xml:space="preserve">
|
||||
@@ -4837,10 +4906,12 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="No media & file servers." xml:space="preserve">
|
||||
<source>No media & file servers.</source>
|
||||
<target>Нет серверов файлов и медиа.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No message servers." xml:space="preserve">
|
||||
<source>No message servers.</source>
|
||||
<target>Нет серверов сообщений.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No network connection" xml:space="preserve">
|
||||
@@ -4875,18 +4946,22 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers for private message routing." xml:space="preserve">
|
||||
<source>No servers for private message routing.</source>
|
||||
<target>Нет серверов для доставки сообщений.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to receive files." xml:space="preserve">
|
||||
<source>No servers to receive files.</source>
|
||||
<target>Нет серверов для приема файлов.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to receive messages." xml:space="preserve">
|
||||
<source>No servers to receive messages.</source>
|
||||
<target>Нет серверов для приема сообщений.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No servers to send files." xml:space="preserve">
|
||||
<source>No servers to send files.</source>
|
||||
<target>Нет серверов для отправки файлов.</target>
|
||||
<note>servers error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No user identifiers." xml:space="preserve">
|
||||
@@ -4921,6 +4996,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Notifications privacy" xml:space="preserve">
|
||||
<source>Notifications privacy</source>
|
||||
<target>Конфиденциальность уведомлений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Now admins can: - delete members' messages. - disable members ("observer" role)" xml:space="preserve">
|
||||
@@ -4978,6 +5054,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
|
||||
<source>Only chat owners can change preferences.</source>
|
||||
<target>Только владельцы разговора могут поменять предпочтения.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
|
||||
@@ -5067,6 +5144,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open changes" xml:space="preserve">
|
||||
<source>Open changes</source>
|
||||
<target>Открыть изменения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open chat" xml:space="preserve">
|
||||
@@ -5081,6 +5159,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open conditions" xml:space="preserve">
|
||||
<source>Open conditions</source>
|
||||
<target>Открыть условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open group" xml:space="preserve">
|
||||
@@ -5100,14 +5179,17 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Operator" xml:space="preserve">
|
||||
<source>Operator</source>
|
||||
<target>Оператор</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Operator server" xml:space="preserve">
|
||||
<source>Operator server</source>
|
||||
<target>Сервер оператора</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or import archive file" xml:space="preserve">
|
||||
<source>Or import archive file</source>
|
||||
<target>Или импортировать файл архива</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or paste archive link" xml:space="preserve">
|
||||
@@ -5132,6 +5214,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Or to share privately" xml:space="preserve">
|
||||
<source>Or to share privately</source>
|
||||
<target>Или поделиться конфиденциально</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Other" xml:space="preserve">
|
||||
@@ -5352,6 +5435,7 @@ Error: %@</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Preset servers" xml:space="preserve">
|
||||
<source>Preset servers</source>
|
||||
<target>Серверы по умолчанию</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Preview" xml:space="preserve">
|
||||
@@ -5371,6 +5455,7 @@ Error: %@</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy for your customers." xml:space="preserve">
|
||||
<source>Privacy for your customers.</source>
|
||||
<target>Конфиденциальность для ваших покупателей.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Privacy redefined" xml:space="preserve">
|
||||
@@ -5497,7 +5582,7 @@ Error: %@</source>
|
||||
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||
Enable in *Network & servers* settings.</source>
|
||||
<target>Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.
|
||||
Включите в настройках *Сеть и серверы*.</target>
|
||||
Включите в настройках *Сети и серверов*.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||
@@ -5530,10 +5615,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Прокси требует пароль</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Доставка уведомлений</target>
|
||||
@@ -5907,10 +5988,12 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Review conditions" xml:space="preserve">
|
||||
<source>Review conditions</source>
|
||||
<target>Посмотреть условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Review later" xml:space="preserve">
|
||||
<source>Review later</source>
|
||||
<target>Посмотреть позже</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Revoke" xml:space="preserve">
|
||||
@@ -5958,14 +6041,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Более безопасные группы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Сохранить</target>
|
||||
@@ -5980,7 +6055,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Сохранить и уведомить контакт</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6015,7 +6090,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Сохранить предпочтения?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6369,6 +6444,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server added to operator %@." xml:space="preserve">
|
||||
<source>Server added to operator %@.</source>
|
||||
<target>Сервер добавлен к оператору %@.</target>
|
||||
<note>alert message</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server address" xml:space="preserve">
|
||||
@@ -6388,14 +6464,17 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server operator changed." xml:space="preserve">
|
||||
<source>Server operator changed.</source>
|
||||
<target>Оператор серверов изменен.</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server operators" xml:space="preserve">
|
||||
<source>Server operators</source>
|
||||
<target>Операторы серверов</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server protocol changed." xml:space="preserve">
|
||||
<source>Server protocol changed.</source>
|
||||
<target>Протокол сервера изменен.</target>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||
@@ -6526,10 +6605,12 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share 1-time link with a friend" xml:space="preserve">
|
||||
<source>Share 1-time link with a friend</source>
|
||||
<target>Поделитесь одноразовой ссылкой с другом</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share SimpleX address on social media." xml:space="preserve">
|
||||
<source>Share SimpleX address on social media.</source>
|
||||
<target>Поделитесь SimpleX адресом в социальных сетях.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address" xml:space="preserve">
|
||||
@@ -6539,6 +6620,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address publicly" xml:space="preserve">
|
||||
<source>Share address publicly</source>
|
||||
<target>Поделитесь адресом</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share address with contacts?" xml:space="preserve">
|
||||
@@ -6631,6 +6713,11 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Адрес SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<target>SimpleX Chat и Flux заключили соглашение добавить серверы под управлением Flux в приложение.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>Безопасность SimpleX Chat была проверена Trail of Bits.</target>
|
||||
@@ -6663,10 +6750,12 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX address and 1-time links are safe to share via any messenger." xml:space="preserve">
|
||||
<source>SimpleX address and 1-time links are safe to share via any messenger.</source>
|
||||
<target>Адрес SimpleX и одноразовые ссылки безопасно отправлять через любой мессенджер.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX address or 1-time link?" xml:space="preserve">
|
||||
<source>SimpleX address or 1-time link?</source>
|
||||
<target>Адрес SimpleX или одноразовая ссылка?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX contact address" xml:space="preserve">
|
||||
@@ -6762,6 +6851,8 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Some servers failed the test: %@" xml:space="preserve">
|
||||
<source>Some servers failed the test:
|
||||
%@</source>
|
||||
<target>Серверы не прошли тест:
|
||||
%@</target>
|
||||
<note>alert message</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Somebody" xml:space="preserve">
|
||||
@@ -6941,6 +7032,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
|
||||
<source>Tap Create SimpleX address in the menu to create it later.</source>
|
||||
<target>Нажмите Создать адрес SimpleX в меню, чтобы создать его позже.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Tap button " xml:space="preserve">
|
||||
@@ -7032,6 +7124,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="The app protects your privacy by using different operators in each conversation." xml:space="preserve">
|
||||
<source>The app protects your privacy by using different operators in each conversation.</source>
|
||||
<target>Приложение улучшает конфиденциальность используя разных операторов в каждом разговоре.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||
@@ -7051,6 +7144,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="The connection reached the limit of undelivered messages, your contact may be offline." xml:space="preserve">
|
||||
<source>The connection reached the limit of undelivered messages, your contact may be offline.</source>
|
||||
<target>Соединение достигло предела недоставленных сообщений. Возможно, Ваш контакт не в сети.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The connection you accepted will be cancelled!" xml:space="preserve">
|
||||
@@ -7113,8 +7207,19 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>Профиль отправляется только Вашим контактам.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Те же самые условия будут приняты для оператора **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Те же самые условия будут приняты для оператора(ов): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Второй оператор серверов в приложении!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second tick we missed! ✅" xml:space="preserve">
|
||||
@@ -7134,6 +7239,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
|
||||
<source>The servers for new files of your current chat profile **%@**.</source>
|
||||
<target>Серверы для новых файлов Вашего текущего профиля **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
|
||||
@@ -7153,6 +7259,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="These conditions will also apply for: **%@**." xml:space="preserve">
|
||||
<source>These conditions will also apply for: **%@**.</source>
|
||||
<target>Эти условия также будут применены к: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="These settings are for your current profile **%@**." xml:space="preserve">
|
||||
@@ -7257,6 +7364,7 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
</trans-unit>
|
||||
<trans-unit id="To protect against your link being replaced, you can compare contact security codes." xml:space="preserve">
|
||||
<source>To protect against your link being replaced, you can compare contact security codes.</source>
|
||||
<target>Чтобы защитить Вашу ссылку от замены, Вы можете сравнить код безопасности.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To protect timezone, image/voice files use UTC." xml:space="preserve">
|
||||
@@ -7283,6 +7391,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="To receive" xml:space="preserve">
|
||||
<source>To receive</source>
|
||||
<target>Для получения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To record speech please grant permission to use Microphone." xml:space="preserve">
|
||||
@@ -7307,6 +7416,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="To send" xml:space="preserve">
|
||||
<source>To send</source>
|
||||
<target>Для оправки</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To support instant push notifications the chat database has to be migrated." xml:space="preserve">
|
||||
@@ -7316,6 +7426,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="To use the servers of **%@**, accept conditions of use." xml:space="preserve">
|
||||
<source>To use the servers of **%@**, accept conditions of use.</source>
|
||||
<target>Чтобы использовать серверы оператора **%@**, примите условия использования.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="To verify end-to-end encryption with your contact compare (or scan) the code on your devices." xml:space="preserve">
|
||||
@@ -7410,6 +7521,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="Undelivered messages" xml:space="preserve">
|
||||
<source>Undelivered messages</source>
|
||||
<target>Недоставленные сообщения</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||
@@ -7571,6 +7683,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="Use %@" xml:space="preserve">
|
||||
<source>Use %@</source>
|
||||
<target>Использовать %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use .onion hosts" xml:space="preserve">
|
||||
@@ -7600,10 +7713,12 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="Use for files" xml:space="preserve">
|
||||
<source>Use for files</source>
|
||||
<target>Использовать для файлов</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use for messages" xml:space="preserve">
|
||||
<source>Use for messages</source>
|
||||
<target>Использовать для сообщений</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use for new connections" xml:space="preserve">
|
||||
@@ -7648,6 +7763,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="Use servers" xml:space="preserve">
|
||||
<source>Use servers</source>
|
||||
<target>Использовать серверы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Use the app while in the call." xml:space="preserve">
|
||||
@@ -7742,6 +7858,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="View conditions" xml:space="preserve">
|
||||
<source>View conditions</source>
|
||||
<target>Посмотреть условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="View security code" xml:space="preserve">
|
||||
@@ -7751,6 +7868,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="View updated conditions" xml:space="preserve">
|
||||
<source>View updated conditions</source>
|
||||
<target>Посмотреть измененные условия</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Visible history" xml:space="preserve">
|
||||
@@ -7865,6 +7983,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="When more than one operator is enabled, none of them has metadata to learn who communicates with whom." xml:space="preserve">
|
||||
<source>When more than one operator is enabled, none of them has metadata to learn who communicates with whom.</source>
|
||||
<target>Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." xml:space="preserve">
|
||||
@@ -7964,6 +8083,7 @@ To connect, please ask your contact to create another connection link and check
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connected with %@." xml:space="preserve">
|
||||
<source>You are already connected with %@.</source>
|
||||
<target>Вы уже соединены с %@.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You are already connecting to %@." xml:space="preserve">
|
||||
@@ -8030,10 +8150,12 @@ Repeat join request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can configure operators in Network & servers settings." xml:space="preserve">
|
||||
<source>You can configure operators in Network & servers settings.</source>
|
||||
<target>Вы можете настроить операторов в настройках Сети и серверов.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can configure servers via settings." xml:space="preserve">
|
||||
<source>You can configure servers via settings.</source>
|
||||
<target>Вы можете настроить серверы позже.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
@@ -8078,6 +8200,7 @@ Repeat join request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can set connection name, to remember who the link was shared with." xml:space="preserve">
|
||||
<source>You can set connection name, to remember who the link was shared with.</source>
|
||||
<target>Вы можете установить имя соединения, чтобы запомнить кому Вы отправили ссылку.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can set lock screen notification preview via settings." xml:space="preserve">
|
||||
@@ -8239,6 +8362,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
|
||||
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
|
||||
<target>Вы прекратите получать сообщения в этом разговоре. История будет сохранена.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
|
||||
@@ -8383,6 +8507,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your servers" xml:space="preserve">
|
||||
<source>Your servers</source>
|
||||
<target>Ваши серверы</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your settings" xml:space="preserve">
|
||||
@@ -8425,6 +8550,11 @@ Repeat connection request?</source>
|
||||
<target>принятый звонок</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<target>принятое приглашение</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>админ</target>
|
||||
@@ -8613,7 +8743,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>соединяется…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8807,6 +8937,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="for better metadata privacy." xml:space="preserve">
|
||||
<source>for better metadata privacy.</source>
|
||||
<target>для лучшей конфиденциальности метаданных.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="forwarded" xml:space="preserve">
|
||||
@@ -9106,6 +9237,11 @@ Repeat connection request?</source>
|
||||
<target>удалил(а) Вас из группы</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<target>запрошено соединение</target>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>сохранено</target>
|
||||
@@ -9438,22 +9574,27 @@ last received msg: %2$@</source>
|
||||
<body>
|
||||
<trans-unit id="%d new events" xml:space="preserve">
|
||||
<source>%d new events</source>
|
||||
<target>%d новых сообщений</target>
|
||||
<note>notification body</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="From: %@" xml:space="preserve">
|
||||
<source>From: %@</source>
|
||||
<target>От: %@</target>
|
||||
<note>notification body</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New events" xml:space="preserve">
|
||||
<source>New events</source>
|
||||
<target>Новые события</target>
|
||||
<note>notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New messages" xml:space="preserve">
|
||||
<source>New messages</source>
|
||||
<target>Новые сообщения</target>
|
||||
<note>notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New messages in %d chats" xml:space="preserve">
|
||||
<source>New messages in %d chats</source>
|
||||
<target>Новые сообщения в %d разговоре(ах)</target>
|
||||
<note>notification body</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
||||
@@ -536,6 +536,10 @@
|
||||
<target>เกี่ยวกับ SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -695,8 +699,8 @@
|
||||
<target>ข้อมูลทั้งหมดจะถูกลบเมื่อถูกป้อน</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -1232,6 +1236,10 @@
|
||||
<target>เปลี่ยน</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>เปลี่ยนรหัสผ่านฐานข้อมูล?</target>
|
||||
@@ -1278,10 +1286,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1473,8 +1477,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5133,10 +5137,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>การแจ้งเตือนแบบทันที</target>
|
||||
@@ -5527,14 +5527,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Safer groups</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>บันทึก</target>
|
||||
@@ -5549,7 +5541,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>บันทึกและแจ้งผู้ติดต่อ</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -5583,7 +5575,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>บันทึกการตั้งค่า?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6147,6 +6139,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>ที่อยู่ SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>ความปลอดภัยของ SimpleX Chat ได้รับการตรวจสอบโดย Trail of Bits</target>
|
||||
@@ -6598,6 +6594,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -7806,6 +7810,10 @@ Repeat connection request?</source>
|
||||
<target>รับสายแล้ว</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>ผู้ดูแลระบบ</target>
|
||||
@@ -7984,7 +7992,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>กำลังเชื่อมต่อ…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -8458,6 +8466,10 @@ Repeat connection request?</source>
|
||||
<target>ลบคุณออกแล้ว</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
|
||||
@@ -572,6 +572,10 @@
|
||||
<target>SimpleX Chat hakkında</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Ana renk</target>
|
||||
@@ -741,8 +745,8 @@
|
||||
<target>Kullanıldığında bütün veriler silinir.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Tüm veriler cihazınıza özeldir.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1329,6 +1333,10 @@
|
||||
<target>Değiştir</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Veritabanı parolasını değiştir?</target>
|
||||
@@ -1375,10 +1383,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1585,8 +1589,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5530,10 +5534,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Proxy şifre gerektirir</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Anında bildirimler</target>
|
||||
@@ -5958,14 +5958,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Daha güvenli gruplar</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Kaydet</target>
|
||||
@@ -5980,7 +5972,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Kaydet ve kişilere bildir</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6015,7 +6007,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Tercihler kaydedilsin mi?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6631,6 +6623,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>SimpleX Adresi</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>SimpleX Chat güvenliği Trails of Bits tarafından denetlenmiştir.</target>
|
||||
@@ -7113,6 +7109,14 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.
|
||||
<target>Profil sadece kişilerinle paylaşılacak.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -8425,6 +8429,10 @@ Bağlantı isteği tekrarlansın mı?</target>
|
||||
<target>kabul edilen arama</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>yönetici</target>
|
||||
@@ -8613,7 +8621,7 @@ Bağlantı isteği tekrarlansın mı?</target>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>bağlanılıyor…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9106,6 +9114,10 @@ Bağlantı isteği tekrarlansın mı?</target>
|
||||
<target>sen kaldırıldın</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>kaydedildi</target>
|
||||
|
||||
@@ -577,6 +577,10 @@
|
||||
<target>Про чат SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>Акцент</target>
|
||||
@@ -752,8 +756,8 @@
|
||||
<target>Всі дані стираються при введенні.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>Всі дані є приватними для вашого пристрою.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1341,6 +1345,11 @@
|
||||
<target>Зміна</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<target>Зміна профілів користувачів</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>Змінити пароль до бази даних?</target>
|
||||
@@ -1387,11 +1396,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<target>Зміна профілів користувачів</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1602,8 +1606,8 @@
|
||||
<target>Для оператора(ів) приймаються умови: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<target>Умови вже прийняті для наступних операторів: **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -5590,14 +5594,9 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Проксі вимагає пароль</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<target>Push-сповіщення</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>Push-повідомлення</target>
|
||||
<target>Push-сповіщення</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push server" xml:space="preserve">
|
||||
@@ -6021,16 +6020,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Безпечніші групи</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<target>Такі ж умови діятимуть і для оператора **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Такі ж умови будуть застосовуватися до оператора(ів): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>Зберегти</target>
|
||||
@@ -6045,7 +6034,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>Зберегти та повідомити контакт</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -6080,7 +6069,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>Зберегти настройки?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6703,6 +6692,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>Адреса SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>Безпека SimpleX Chat була перевірена компанією Trail of Bits.</target>
|
||||
@@ -7191,6 +7184,16 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>Профіль доступний лише вашим контактам.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<target>Такі ж умови діятимуть і для оператора **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<target>Такі ж умови будуть застосовуватися до оператора(ів): **%@**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<target>Другий попередньо встановлений оператор у застосунку!</target>
|
||||
@@ -8522,6 +8525,10 @@ Repeat connection request?</source>
|
||||
<target>прийнято виклик</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>адмін</target>
|
||||
@@ -8710,7 +8717,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>з'єднання…</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9204,6 +9211,10 @@ Repeat connection request?</source>
|
||||
<target>прибрали вас</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>збережено</target>
|
||||
|
||||
@@ -566,6 +566,10 @@
|
||||
<target>关于SimpleX Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About operators" xml:space="preserve">
|
||||
<source>About operators</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent" xml:space="preserve">
|
||||
<source>Accent</source>
|
||||
<target>强调</target>
|
||||
@@ -735,8 +739,8 @@
|
||||
<target>所有数据在输入后将被删除。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All data is private to your device." xml:space="preserve">
|
||||
<source>All data is private to your device.</source>
|
||||
<trans-unit id="All data is kept private on your device." xml:space="preserve">
|
||||
<source>All data is kept private on your device.</source>
|
||||
<target>所有数据都是您设备的私有数据.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
@@ -1316,6 +1320,10 @@
|
||||
<target>更改</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change chat profiles" xml:space="preserve">
|
||||
<source>Change chat profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
||||
<source>Change database passphrase?</source>
|
||||
<target>更改数据库密码?</target>
|
||||
@@ -1362,10 +1370,6 @@
|
||||
<note>authentication reason
|
||||
set passcode view</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Change user profiles" xml:space="preserve">
|
||||
<source>Change user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat" xml:space="preserve">
|
||||
<source>Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -1571,8 +1575,8 @@
|
||||
<source>Conditions are accepted for the operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for following operator(s): **%@**.</source>
|
||||
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
|
||||
<source>Conditions are already accepted for these operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conditions of use" xml:space="preserve">
|
||||
@@ -5485,10 +5489,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<source>Proxy requires password</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push Notifications" xml:space="preserve">
|
||||
<source>Push Notifications</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Push notifications" xml:space="preserve">
|
||||
<source>Push notifications</source>
|
||||
<target>推送通知</target>
|
||||
@@ -5911,14 +5911,6 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>更安全的群组</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>Same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" xml:space="preserve">
|
||||
<source>Save</source>
|
||||
<target>保存</target>
|
||||
@@ -5933,7 +5925,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save and notify contact" xml:space="preserve">
|
||||
<source>Save and notify contact</source>
|
||||
<target>保存并通知联系人</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save and notify group members" xml:space="preserve">
|
||||
<source>Save and notify group members</source>
|
||||
@@ -5968,7 +5960,7 @@ Enable in *Network & servers* settings.</source>
|
||||
<trans-unit id="Save preferences?" xml:space="preserve">
|
||||
<source>Save preferences?</source>
|
||||
<target>保存偏好设置?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
<note>alert title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save profile password" xml:space="preserve">
|
||||
<source>Save profile password</source>
|
||||
@@ -6578,6 +6570,10 @@ Enable in *Network & servers* settings.</source>
|
||||
<target>SimpleX 地址</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
|
||||
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
|
||||
<source>SimpleX Chat security was audited by Trail of Bits.</source>
|
||||
<target>SimpleX Chat 的安全性 由 Trail of Bits 审核。</target>
|
||||
@@ -7055,6 +7051,14 @@ It can happen because of some bug or when the connection is compromised.</source
|
||||
<target>该资料仅与您的联系人共享。</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
|
||||
<source>The same conditions will apply to operator(s): **%@**.</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
|
||||
<source>The second preset operator in the app!</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
@@ -8358,6 +8362,10 @@ Repeat connection request?</source>
|
||||
<target>已接受通话</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="accepted invitation" xml:space="preserve">
|
||||
<source>accepted invitation</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" xml:space="preserve">
|
||||
<source>admin</source>
|
||||
<target>管理员</target>
|
||||
@@ -8546,7 +8554,7 @@ Repeat connection request?</source>
|
||||
<trans-unit id="connecting…" xml:space="preserve">
|
||||
<source>connecting…</source>
|
||||
<target>连接中……</target>
|
||||
<note>chat list item title</note>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="connection established" xml:space="preserve">
|
||||
<source>connection established</source>
|
||||
@@ -9039,6 +9047,10 @@ Repeat connection request?</source>
|
||||
<target>已将您移除</target>
|
||||
<note>rcv group event chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="requested to connect" xml:space="preserve">
|
||||
<source>requested to connect</source>
|
||||
<note>chat list item title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="saved" xml:space="preserve">
|
||||
<source>saved</source>
|
||||
<target>已保存</target>
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
/*
|
||||
Localizable.strings
|
||||
SimpleX
|
||||
/* notification body */
|
||||
"%d new events" = "%d новых сообщений";
|
||||
|
||||
/* notification body */
|
||||
"From: %@" = "От: %@";
|
||||
|
||||
/* notification */
|
||||
"New events" = "Новые события";
|
||||
|
||||
/* notification */
|
||||
"New messages" = "Новые сообщения";
|
||||
|
||||
/* notification body */
|
||||
"New messages in %d chats" = "Новые сообщения в %d разговоре(ах)";
|
||||
|
||||
Created by EP on 30/07/2024.
|
||||
Copyright © 2024 SimpleX Chat. All rights reserved.
|
||||
*/
|
||||
|
||||
@@ -167,9 +167,9 @@
|
||||
648010AB281ADD15009009B9 /* CIFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648010AA281ADD15009009B9 /* CIFileView.swift */; };
|
||||
648679AB2BC96A74006456E7 /* ChatItemForwardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */; };
|
||||
649B28DD2CFE07CF00536B68 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D82CFE07CF00536B68 /* libffi.a */; };
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy-ghc9.6.3.a */; };
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a */; };
|
||||
649B28DF2CFE07CF00536B68 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DA2CFE07CF00536B68 /* libgmpxx.a */; };
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy.a */; };
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a */; };
|
||||
649B28E12CFE07CF00536B68 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DC2CFE07CF00536B68 /* libgmp.a */; };
|
||||
649BCDA0280460FD00C3A862 /* ComposeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCD9F280460FD00C3A862 /* ComposeImageView.swift */; };
|
||||
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; };
|
||||
@@ -516,9 +516,9 @@
|
||||
648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemForwardingView.swift; sourceTree = "<group>"; };
|
||||
6493D667280ED77F007A76FB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
649B28D82CFE07CF00536B68 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
649B28DA2CFE07CF00536B68 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy.a"; sourceTree = "<group>"; };
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a"; sourceTree = "<group>"; };
|
||||
649B28DC2CFE07CF00536B68 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
649BCD9F280460FD00C3A862 /* ComposeImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeImageView.swift; sourceTree = "<group>"; };
|
||||
649BCDA12805D6EF00C3A862 /* CIImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIImageView.swift; sourceTree = "<group>"; };
|
||||
@@ -671,9 +671,9 @@
|
||||
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
|
||||
649B28E12CFE07CF00536B68 /* libgmp.a in Frameworks */,
|
||||
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy.a in Frameworks */,
|
||||
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a in Frameworks */,
|
||||
CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */,
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy-ghc9.6.3.a in Frameworks */,
|
||||
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a in Frameworks */,
|
||||
649B28DD2CFE07CF00536B68 /* libffi.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -754,8 +754,8 @@
|
||||
649B28D82CFE07CF00536B68 /* libffi.a */,
|
||||
649B28DC2CFE07CF00536B68 /* libgmp.a */,
|
||||
649B28DA2CFE07CF00536B68 /* libgmpxx.a */,
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy-ghc9.6.3.a */,
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.4-3HGUY7rfU7IFvhj8CPEbqy.a */,
|
||||
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a */,
|
||||
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a */,
|
||||
);
|
||||
path = Libraries;
|
||||
sourceTree = "<group>";
|
||||
@@ -1931,7 +1931,7 @@
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -1980,7 +1980,7 @@
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -2021,7 +2021,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
@@ -2041,7 +2041,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
@@ -2066,7 +2066,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = s;
|
||||
@@ -2103,7 +2103,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_CODE_COVERAGE = NO;
|
||||
@@ -2140,7 +2140,7 @@
|
||||
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@@ -2191,7 +2191,7 @@
|
||||
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@@ -2242,7 +2242,7 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
@@ -2276,7 +2276,7 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 250;
|
||||
CURRENT_PROJECT_VERSION = 254;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
|
||||
@@ -1212,13 +1212,12 @@ public enum ServerProtocol: String, Decodable {
|
||||
public enum OperatorTag: String, Codable {
|
||||
case simplex = "simplex"
|
||||
case flux = "flux"
|
||||
case xyz = "xyz"
|
||||
case demo = "demo"
|
||||
}
|
||||
|
||||
public struct ServerOperatorInfo: Decodable {
|
||||
public struct ServerOperatorInfo {
|
||||
public var description: [String]
|
||||
public var website: String
|
||||
public var website: URL
|
||||
public var selfhost: (text: String, link: URL)? = nil
|
||||
public var logo: String
|
||||
public var largeLogo: String
|
||||
public var logoDarkMode: String
|
||||
@@ -1228,10 +1227,10 @@ public struct ServerOperatorInfo: Decodable {
|
||||
public let operatorsInfo: Dictionary<OperatorTag, ServerOperatorInfo> = [
|
||||
.simplex: ServerOperatorInfo(
|
||||
description: [
|
||||
"SimpleX Chat is the first communication network that has no user profile IDs of any kind, not even random numbers or keys that identify the users.",
|
||||
"SimpleX Chat is the first communication network that has no user profile IDs of any kind, not even random numbers or identity keys.",
|
||||
"SimpleX Chat Ltd develops the communication software for SimpleX network."
|
||||
],
|
||||
website: "https://simplex.chat",
|
||||
website: URL(string: "https://simplex.chat")!,
|
||||
logo: "decentralized",
|
||||
largeLogo: "logo",
|
||||
logoDarkMode: "decentralized-light",
|
||||
@@ -1239,31 +1238,17 @@ public let operatorsInfo: Dictionary<OperatorTag, ServerOperatorInfo> = [
|
||||
),
|
||||
.flux: ServerOperatorInfo(
|
||||
description: [
|
||||
"Flux is the largest decentralized cloud infrastructure, leveraging a global network of user-operated computational nodes.",
|
||||
"Flux offers a powerful, scalable, and affordable platform designed to support individuals, businesses, and cutting-edge technologies like AI. With high uptime and worldwide distribution, Flux ensures reliable, accessible cloud computing for all."
|
||||
"Flux is the largest decentralized cloud, based on a global network of user-operated nodes.",
|
||||
"Flux offers a powerful, scalable, and affordable cutting edge technology platform for all.",
|
||||
"Flux operates servers in SimpleX network to improve its privacy and decentralization."
|
||||
],
|
||||
website: "https://runonflux.com",
|
||||
website: URL(string: "https://runonflux.com")!,
|
||||
selfhost: (text: "Self-host SimpleX servers on Flux", link: URL(string: "https://home.runonflux.io/apps/marketplace?q=simplex")!),
|
||||
logo: "flux_logo_symbol",
|
||||
largeLogo: "flux_logo",
|
||||
logoDarkMode: "flux_logo_symbol",
|
||||
largeLogoDarkMode: "flux_logo-light"
|
||||
),
|
||||
.xyz: ServerOperatorInfo(
|
||||
description: ["XYZ servers"],
|
||||
website: "XYZ website",
|
||||
logo: "shield",
|
||||
largeLogo: "logo",
|
||||
logoDarkMode: "shield",
|
||||
largeLogoDarkMode: "logo-light"
|
||||
),
|
||||
.demo: ServerOperatorInfo(
|
||||
description: ["Demo operator"],
|
||||
website: "Demo website",
|
||||
logo: "decentralized",
|
||||
largeLogo: "logo",
|
||||
logoDarkMode: "decentralized-light",
|
||||
largeLogoDarkMode: "logo-light"
|
||||
)
|
||||
]
|
||||
|
||||
public struct UsageConditions: Decodable {
|
||||
@@ -1358,7 +1343,7 @@ public struct ServerOperator: Identifiable, Equatable, Codable {
|
||||
|
||||
public static let dummyOperatorInfo = ServerOperatorInfo(
|
||||
description: ["Default"],
|
||||
website: "Default",
|
||||
website: URL(string: "https://simplex.chat")!,
|
||||
logo: "decentralized",
|
||||
largeLogo: "logo",
|
||||
logoDarkMode: "decentralized-light",
|
||||
@@ -1384,30 +1369,6 @@ public struct ServerOperator: Identifiable, Equatable, Codable {
|
||||
smpRoles: ServerRoles(storage: true, proxy: true),
|
||||
xftpRoles: ServerRoles(storage: true, proxy: true)
|
||||
)
|
||||
|
||||
public static var sampleData2 = ServerOperator(
|
||||
operatorId: 2,
|
||||
operatorTag: .xyz,
|
||||
tradeName: "XYZ",
|
||||
legalName: nil,
|
||||
serverDomains: ["xyz.com"],
|
||||
conditionsAcceptance: .required(deadline: nil),
|
||||
enabled: false,
|
||||
smpRoles: ServerRoles(storage: false, proxy: true),
|
||||
xftpRoles: ServerRoles(storage: false, proxy: true)
|
||||
)
|
||||
|
||||
public static var sampleData3 = ServerOperator(
|
||||
operatorId: 3,
|
||||
operatorTag: .demo,
|
||||
tradeName: "Demo",
|
||||
legalName: nil,
|
||||
serverDomains: ["demo.com"],
|
||||
conditionsAcceptance: .required(deadline: nil),
|
||||
enabled: false,
|
||||
smpRoles: ServerRoles(storage: true, proxy: false),
|
||||
xftpRoles: ServerRoles(storage: true, proxy: false)
|
||||
)
|
||||
}
|
||||
|
||||
public struct ServerRoles: Equatable, Codable {
|
||||
@@ -2655,6 +2616,7 @@ public struct AppSettings: Codable, Equatable {
|
||||
public var uiCurrentThemeIds: [String: String]? = nil
|
||||
public var uiThemes: [ThemeOverrides]? = nil
|
||||
public var oneHandUI: Bool? = nil
|
||||
public var chatBottomBar: Bool? = nil
|
||||
|
||||
public func prepareForExport() -> AppSettings {
|
||||
var empty = AppSettings()
|
||||
@@ -2689,6 +2651,7 @@ public struct AppSettings: Codable, Equatable {
|
||||
if uiCurrentThemeIds != def.uiCurrentThemeIds { empty.uiCurrentThemeIds = uiCurrentThemeIds }
|
||||
if uiThemes != def.uiThemes { empty.uiThemes = uiThemes }
|
||||
if oneHandUI != def.oneHandUI { empty.oneHandUI = oneHandUI }
|
||||
if chatBottomBar != def.chatBottomBar { empty.chatBottomBar = chatBottomBar }
|
||||
return empty
|
||||
}
|
||||
|
||||
@@ -2723,7 +2686,8 @@ public struct AppSettings: Codable, Equatable {
|
||||
uiDarkColorScheme: DefaultTheme.SIMPLEX.themeName,
|
||||
uiCurrentThemeIds: nil as [String: String]?,
|
||||
uiThemes: nil as [ThemeOverrides]?,
|
||||
oneHandUI: false
|
||||
oneHandUI: true,
|
||||
chatBottomBar: true
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ public let GROUP_DEFAULT_CONFIRM_DB_UPGRADES = "confirmDBUpgrades"
|
||||
public let GROUP_DEFAULT_CALL_KIT_ENABLED = "callKitEnabled"
|
||||
public let GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED = "pqExperimentalEnabled" // no longer used
|
||||
public let GROUP_DEFAULT_ONE_HAND_UI = "oneHandUI"
|
||||
public let GROUP_DEFAULT_CHAT_BOTTOM_BAR = "chatBottomBar"
|
||||
|
||||
public let APP_GROUP_NAME = "group.chat.simplex.app"
|
||||
|
||||
@@ -94,7 +95,8 @@ public func registerGroupDefaults() {
|
||||
GROUP_DEFAULT_CONFIRM_DB_UPGRADES: false,
|
||||
GROUP_DEFAULT_CALL_KIT_ENABLED: true,
|
||||
GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED: false,
|
||||
GROUP_DEFAULT_ONE_HAND_UI: true
|
||||
GROUP_DEFAULT_ONE_HAND_UI: true,
|
||||
GROUP_DEFAULT_CHAT_BOTTOM_BAR: true
|
||||
])
|
||||
}
|
||||
|
||||
|
||||
@@ -1782,9 +1782,11 @@ public struct PendingContactConnection: Decodable, NamedChat, Hashable {
|
||||
public var displayName: String {
|
||||
get {
|
||||
if let initiated = pccConnStatus.initiated {
|
||||
return initiated && !viaContactUri
|
||||
return viaContactUri
|
||||
? NSLocalizedString("requested to connect", comment: "chat list item title")
|
||||
: initiated
|
||||
? NSLocalizedString("invited to connect", comment: "chat list item title")
|
||||
: NSLocalizedString("connecting…", comment: "chat list item title")
|
||||
: NSLocalizedString("accepted invitation", comment: "chat list item title")
|
||||
} else {
|
||||
// this should not be in the list
|
||||
return NSLocalizedString("connection established", comment: "chat list item title (it should not be shown")
|
||||
@@ -1962,8 +1964,9 @@ public struct GroupProfile: Codable, NamedChat, Hashable {
|
||||
}
|
||||
|
||||
public struct BusinessChatInfo: Decodable, Hashable {
|
||||
public var memberId: String
|
||||
public var chatType: BusinessChatType
|
||||
public var businessId: String
|
||||
public var customerId: String
|
||||
}
|
||||
|
||||
public enum BusinessChatType: String, Codable, Hashable {
|
||||
|
||||
@@ -918,7 +918,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Свързване с настолно устройство";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "свързване…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1905,27 +1905,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Групови линкове";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Членовете на групата могат да добавят реакции към съобщенията.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Членовете на групата могат да изпращат лични съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Членовете на групата могат да изпращат изчезващи съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Групово съобщение:";
|
||||
|
||||
@@ -2376,6 +2355,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Членът ще бъде премахнат от групата - това не може да бъде отменено!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Членовете на групата могат да добавят реакции към съобщенията.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Членовете на групата могат да изпращат лични съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Членовете на групата могат да изпращат изчезващи съобщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "Грешка при доставката на съобщението";
|
||||
|
||||
@@ -3139,7 +3139,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Запази (и уведоми контактите)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Запази и уведоми контакта";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3157,7 +3157,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Запази паролата в Keychain";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Запази настройките?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -729,7 +729,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting server… (error: %@)" = "Připojování k serveru... (chyba: %@)";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "připojení…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1544,24 +1544,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Odkazy na skupiny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Členové skupin mohou přidávat reakce na zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Členové skupiny mohou posílat přímé zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Členové skupiny mohou posílat mizící zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Členové skupiny mohou posílat soubory a média.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Členové skupiny mohou posílat hlasové zprávy.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Skupinová zpráva:";
|
||||
|
||||
@@ -1934,6 +1916,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Člen bude odstraněn ze skupiny - toto nelze vzít zpět!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Členové skupin mohou přidávat reakce na zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Členové skupiny mohou posílat přímé zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Členové skupiny mohou posílat mizící zprávy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Členové skupiny mohou posílat soubory a média.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Členové skupiny mohou posílat hlasové zprávy.";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "Chyba doručení zprávy";
|
||||
|
||||
@@ -2538,7 +2538,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Uložit (a informovat kontakty)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Uložit a upozornit kontakt";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2556,7 +2556,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Uložit přístupovou frázi do Klíčenky";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Uložit předvolby?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -343,6 +343,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Abort changing address?" = "Wechsel der Empfängeradresse beenden?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About operators" = "Über Betreiber";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About SimpleX Chat" = "Über SimpleX Chat";
|
||||
|
||||
@@ -376,6 +379,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Accepted conditions" = "Akzeptierte Nutzungsbedingungen";
|
||||
|
||||
/* chat list item title */
|
||||
"accepted invitation" = "Einladung akzeptiert";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledged" = "Bestätigt";
|
||||
|
||||
@@ -388,6 +394,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Fügen Sie die Adresse Ihrem Profil hinzu, damit Ihre Kontakte sie mit anderen Personen teilen können. Es wird eine Profilaktualisierung an Ihre Kontakte gesendet.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Freunde aufnehmen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Profil hinzufügen";
|
||||
|
||||
@@ -397,12 +406,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Fügen Sie Server durch Scannen der QR Codes hinzu.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Team-Mitglieder aufnehmen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Einem anderen Gerät hinzufügen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Begrüßungsmeldung hinzufügen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Nehmen Sie Team-Mitglieder in Ihre Unterhaltungen auf.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Medien- und Dateiserver hinzugefügt";
|
||||
|
||||
@@ -464,7 +479,7 @@
|
||||
"All data is erased when it is entered." = "Alle Daten werden gelöscht, sobald dieser eingegeben wird.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Alle Daten werden nur auf Ihrem Gerät gespeichert.";
|
||||
"All data is kept private on your device." = "Alle Daten werden nur auf Ihrem Gerät gespeichert.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Alle Gruppenmitglieder bleiben verbunden.";
|
||||
@@ -793,6 +808,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bulgarisch, Finnisch, Thailändisch und Ukrainisch - Dank der Nutzer und [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Geschäftliche Adresse";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Geschäftliche Chats";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Per Chat-Profil (Voreinstellung) oder [per Verbindung](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
|
||||
|
||||
@@ -863,6 +884,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Change" = "Ändern";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Chat-Profile wechseln";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Change database passphrase?" = "Datenbank-Passwort ändern?";
|
||||
|
||||
@@ -891,9 +915,6 @@
|
||||
set passcode view */
|
||||
"Change self-destruct passcode" = "Selbstzerstörungs-Zugangscode ändern";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Chat-Profile wechseln";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "Wechselte die Empfängeradresse von Ihnen";
|
||||
|
||||
@@ -909,6 +930,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "Wechsel der Empfängeradresse wurde gestartet…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "Chat besteht bereits";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "Chat besteht bereits!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Chat-Farben";
|
||||
|
||||
@@ -954,6 +984,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Chat-Design";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "Der Chat wird für alle Mitglieder gelöscht. Dies kann nicht rückgängig gemacht werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "Der Chat wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Chats";
|
||||
|
||||
@@ -1030,7 +1066,7 @@
|
||||
"Conditions are accepted for the operator(s): **%@**." = "Die Nutzungsbedingungen der/des Betreiber(s) werden akzeptiert: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for following operator(s): **%@**." = "Die Nutzungsbedingungen der/des folgenden Betreiber(s) wurden schon akzeptiert: **%@**.";
|
||||
"Conditions are already accepted for these operator(s): **%@**." = "Die Nutzungsbedingungen der/des folgenden Betreiber(s) wurden schon akzeptiert: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Nutzungsbedingungen";
|
||||
@@ -1173,7 +1209,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Mit dem Desktop verbinden";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "Verbinde…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1475,12 +1511,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Kontakt löschen und benachrichtigen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Chat löschen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Chat-Profil löschen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Chat-Profil löschen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Chat löschen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Verbindung löschen";
|
||||
|
||||
@@ -1655,6 +1697,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Direkte Nachrichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "In diesem Chat sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "In dieser Gruppe sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.";
|
||||
|
||||
@@ -2424,27 +2469,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Gruppen-Links";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Gruppenmitglieder können eine Reaktion auf Nachrichten geben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen. (24 Stunden)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Gruppenmitglieder können Direktnachrichten versenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Gruppenmitglieder können verschwindende Nachrichten senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Gruppenmitglieder können SimpleX-Links senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Grppennachricht:";
|
||||
|
||||
@@ -2715,6 +2739,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Mitglieder einladen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Zum Chat einladen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "In Gruppe einladen";
|
||||
|
||||
@@ -2829,6 +2856,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Verlassen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Chat verlassen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Chat verlassen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Gruppe verlassen";
|
||||
|
||||
@@ -2925,15 +2958,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Mitglied inaktiv";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "Die Rolle des Mitglieds wird auf \"%@\" geändert. Alle Chat-Mitglieder werden darüber informiert.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "Die Mitgliederrolle wird auf \"%@\" geändert. Alle Mitglieder der Gruppe werden benachrichtigt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "Die Mitgliederrolle wird auf \"%@\" geändert. Das Mitglied wird eine neue Einladung erhalten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "Das Mitglied wird aus dem Chat entfernt. Dies kann nicht rückgängig gemacht werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Das Mitglied wird aus der Gruppe entfernt. Dies kann nicht rückgängig gemacht werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Gruppenmitglieder können eine Reaktion auf Nachrichten geben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen. (24 Stunden)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Gruppenmitglieder können Direktnachrichten versenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Gruppenmitglieder können verschwindende Nachrichten senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Gruppenmitglieder können SimpleX-Links senden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menüs";
|
||||
|
||||
@@ -3329,6 +3389,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Onion-Hosts werden nicht verwendet.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Nur Chat-Eigentümer können die Präferenzen ändern.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Nur die Endgeräte speichern die Benutzerprofile, Kontakte, Gruppen und Nachrichten, welche über eine **2-Schichten Ende-zu-Ende-Verschlüsselung** gesendet werden.";
|
||||
|
||||
@@ -3407,6 +3470,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Betreiber-Server";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "Oder importieren Sie eine Archiv-Datei";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "Oder fügen Sie den Archiv-Link ein";
|
||||
|
||||
@@ -3575,6 +3641,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Datenschutz & Sicherheit";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Schutz der Privatsphäre Ihrer Kunden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Datenschutz neu definiert";
|
||||
|
||||
@@ -3671,9 +3740,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Push-Benachrichtigungen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Push-Benachrichtigungen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push-Server";
|
||||
|
||||
@@ -3870,6 +3936,9 @@
|
||||
/* chat item action */
|
||||
"Reply" = "Antwort";
|
||||
|
||||
/* chat list item title */
|
||||
"requested to connect" = "Zur Verbindung aufgefordert";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Required" = "Erforderlich";
|
||||
|
||||
@@ -3948,12 +4017,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Safer groups" = "Sicherere Gruppen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
"Save" = "Speichern";
|
||||
@@ -3961,7 +4024,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Speichern (und Kontakte benachrichtigen)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Speichern und Kontakt benachrichtigen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3982,7 +4045,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Passwort im Schlüsselbund speichern";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Präferenzen speichern?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -4400,6 +4463,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address or 1-time link?" = "SimpleX-Adresse oder Einmal-Link?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "SimpleX-Chat und Flux haben vereinbart, die von Flux betriebenen Server in die App aufzunehmen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat security was audited by Trail of Bits." = "Die Sicherheit von SimpleX Chat wurde von Trail of Bits überprüft.";
|
||||
|
||||
@@ -4580,6 +4646,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Schaltfläche antippen ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Tippen Sie im Menü auf SimpleX-Adresse erstellen, um sie später zu erstellen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Zum Aktivieren des Profils tippen.";
|
||||
|
||||
@@ -4694,6 +4763,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The profile is only shared with your contacts." = "Das Profil wird nur mit Ihren Kontakten geteilt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "Der zweite voreingestellte Netzwerk-Betreiber in der App!";
|
||||
|
||||
@@ -4704,10 +4779,10 @@
|
||||
"The sender will NOT be notified" = "Der Absender wird NICHT benachrichtigt";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new connections of your current chat profile **%@**." = "Mögliche Server für neue Verbindungen von Ihrem aktuellen Chat-Profil **%@**.";
|
||||
"The servers for new connections of your current chat profile **%@**." = "Nachrichten-Server für neue Verbindungen über Ihr aktuelles Chat-Profil **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new files of your current chat profile **%@**." = "Die Server Deines aktuellen Chat-Profils für neue Dateien **%@**.";
|
||||
"The servers for new files of your current chat profile **%@**." = "Medien- und Datei-Server für neue Daten über Ihr aktuelles Chat-Profil **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The text you pasted is not a SimpleX link." = "Der von Ihnen eingefügte Text ist kein SimpleX-Link.";
|
||||
@@ -5282,6 +5357,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Sie sind bereits mit %@ verbunden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Sie sind bereits mit %@ verbunden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Sie sind bereits mit %@ verbunden.";
|
||||
|
||||
@@ -5480,6 +5558,9 @@
|
||||
/* 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.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Sie werden von diesem Chat keine Nachrichten mehr erhalten. Der Nachrichtenverlauf wird beibehalten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Sie werden von dieser Gruppe keine Nachrichten mehr erhalten. Der Nachrichtenverlauf wird beibehalten.";
|
||||
|
||||
|
||||
@@ -343,6 +343,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Abort changing address?" = "¿Cancelar el cambio de servidor?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About operators" = "Acerca de los operadores";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About SimpleX Chat" = "Sobre SimpleX Chat";
|
||||
|
||||
@@ -376,6 +379,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Accepted conditions" = "Condiciones aceptadas";
|
||||
|
||||
/* chat list item title */
|
||||
"accepted invitation" = "invitación aceptada";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledged" = "Confirmaciones";
|
||||
|
||||
@@ -388,6 +394,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Añade la dirección a tu perfil para que tus contactos puedan compartirla con otros. La actualización del perfil se enviará a tus contactos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Añadir amigos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Añadir perfil";
|
||||
|
||||
@@ -397,12 +406,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Añadir servidores mediante el escaneo de códigos QR.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Añadir miembros del equipo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Añadir a otro dispositivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Añadir mensaje de bienvenida";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Añade a los miembros de tu equipo a las conversaciones.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Servidores de archivos y multimedia añadidos";
|
||||
|
||||
@@ -464,7 +479,7 @@
|
||||
"All data is erased when it is entered." = "Al introducirlo todos los datos son eliminados.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Todos los datos son privados y están en tu dispositivo.";
|
||||
"All data is kept private on your device." = "Todos los datos son privados y están en tu dispositivo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Todos los miembros del grupo permanecerán conectados.";
|
||||
@@ -793,6 +808,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Búlgaro, Finlandés, Tailandés y Ucraniano - gracias a los usuarios y [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Dirección empresarial";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Chats empresariales";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Mediante perfil (predeterminado) o [por conexión](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
|
||||
|
||||
@@ -863,6 +884,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Change" = "Cambiar";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Cambiar perfil de usuario";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Change database passphrase?" = "¿Cambiar contraseña de la base de datos?";
|
||||
|
||||
@@ -891,9 +915,6 @@
|
||||
set passcode view */
|
||||
"Change self-destruct passcode" = "Cambiar código autodestrucción";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Cambiar perfil de usuario";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "ha cambiado tu servidor de envío";
|
||||
|
||||
@@ -909,6 +930,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "cambiando de servidor…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "El chat ya existe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "¡El chat ya existe!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Colores del chat";
|
||||
|
||||
@@ -954,6 +984,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Tema de chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "El chat será eliminado para todos los miembros. ¡No podrá deshacerse!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "El chat será eliminado para tí. ¡No podrá deshacerse!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Chats";
|
||||
|
||||
@@ -1030,7 +1066,7 @@
|
||||
"Conditions are accepted for the operator(s): **%@**." = "Las condiciones se han aceptado para el(los) operador(s): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for following operator(s): **%@**." = "Las condiciones ya se han aceptado para el/los siguiente(s) operador(s): **%@**.";
|
||||
"Conditions are already accepted for these operator(s): **%@**." = "Las condiciones ya se han aceptado para el/los siguiente(s) operador(s): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Condiciones de uso";
|
||||
@@ -1173,7 +1209,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Conectando con ordenador";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "conectando…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1475,12 +1511,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Eliminar y notificar contacto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Eliminar chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Eliminar perfil";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "¿Eliminar perfil?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "¿Eliminar chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Eliminar conexión";
|
||||
|
||||
@@ -1500,7 +1542,7 @@
|
||||
"Delete file" = "Eliminar archivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete files and media?" = "Eliminar archivos y multimedia?";
|
||||
"Delete files and media?" = "¿Eliminar archivos y multimedia?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete files for all chat profiles" = "Eliminar archivos de todos los perfiles";
|
||||
@@ -1655,6 +1697,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Mensajes directos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "Mensajes directos no permitidos entre miembros de este chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "Los mensajes directos entre miembros del grupo no están permitidos.";
|
||||
|
||||
@@ -1798,7 +1843,7 @@
|
||||
"Enable camera access" = "Permitir acceso a la cámara";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable Flux" = "Habilitar Flux";
|
||||
"Enable Flux" = "Habilita Flux";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable for all" = "Activar para todos";
|
||||
@@ -2296,7 +2341,7 @@
|
||||
"Fix not supported by group member" = "Corrección no compatible con miembro del grupo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"for better metadata privacy." = "para mayor privacidad de los metadatos.";
|
||||
"for better metadata privacy." = "para mejorar la privacidad de los metadatos.";
|
||||
|
||||
/* servers error */
|
||||
"For chat profile %@:" = "Para el perfil de chat %@:";
|
||||
@@ -2424,27 +2469,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Enlaces de grupo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Los miembros pueden añadir reacciones a los mensajes.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Los miembros del grupo pueden eliminar mensajes de forma irreversible. (24 horas)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Los miembros del grupo pueden enviar mensajes directos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Los miembros del grupo pueden enviar mensajes temporales.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Los miembros del grupo pueden enviar archivos y multimedia.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Los miembros del grupo pueden enviar enlaces SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Los miembros del grupo pueden enviar mensajes de voz.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Mensaje de grupo:";
|
||||
|
||||
@@ -2715,6 +2739,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Invitar miembros";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Invitar al chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Invitar al grupo";
|
||||
|
||||
@@ -2829,6 +2856,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Salir";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Salir del chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "¿Salir del chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Salir del grupo";
|
||||
|
||||
@@ -2925,15 +2958,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Miembro inactivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "El rol del miembro cambiará a \"%@\" y todos serán notificados.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "El rol del miembro cambiará a \"%@\" y se notificará al grupo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "El rol del miembro cambiará a \"%@\" y recibirá una invitación nueva.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "El miembro será eliminado del chat. ¡No podrá deshacerse!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "El miembro será expulsado del grupo. ¡No podrá deshacerse!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Los miembros pueden añadir reacciones a los mensajes.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Los miembros del grupo pueden eliminar mensajes de forma irreversible. (24 horas)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Los miembros del grupo pueden enviar mensajes directos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Los miembros del grupo pueden enviar mensajes temporales.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Los miembros del grupo pueden enviar archivos y multimedia.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Los miembros del grupo pueden enviar enlaces SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Los miembros del grupo pueden enviar mensajes de voz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menus";
|
||||
|
||||
@@ -3329,6 +3389,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "No se usarán hosts .onion.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Sólo los propietarios del chat pueden cambiar las preferencias.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Sólo los dispositivos cliente almacenan perfiles de usuario, contactos, grupos y mensajes enviados con **cifrado de extremo a extremo de 2 capas**.";
|
||||
|
||||
@@ -3407,6 +3470,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Servidor del operador";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "O importa desde un archivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "O pegar enlace del archivo";
|
||||
|
||||
@@ -3561,7 +3627,7 @@
|
||||
"Preserve the last message draft, with attachments." = "Conserva el último borrador del mensaje con los datos adjuntos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preset server address" = "Dirección del servidor predefinida";
|
||||
"Preset server address" = "Dirección predefinida del servidor";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preset servers" = "Servidores predefinidos";
|
||||
@@ -3575,6 +3641,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Seguridad y Privacidad";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Privacidad para tus clientes.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Privacidad redefinida";
|
||||
|
||||
@@ -3669,10 +3738,7 @@
|
||||
"Proxy requires password" = "El proxy requiere contraseña";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Notificaciones automáticas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Notificaciones push";
|
||||
"Push notifications" = "Notificaciones push";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Servidor push";
|
||||
@@ -3696,7 +3762,7 @@
|
||||
"Read" = "Leer";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Read more" = "Conoce más";
|
||||
"Read more" = "Saber más";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Read more in [User Guide](https://simplex.chat/docs/guide/chat-profiles.html#incognito-mode)." = "Conoce más en la [Guía del Usuario](https://simplex.chat/docs/guide/chat-profiles.html#incognito-mode).";
|
||||
@@ -3870,6 +3936,9 @@
|
||||
/* chat item action */
|
||||
"Reply" = "Responder";
|
||||
|
||||
/* chat list item title */
|
||||
"requested to connect" = "solicitado para conectar";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Required" = "Obligatorio";
|
||||
|
||||
@@ -3948,12 +4017,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Safer groups" = "Grupos más seguros";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Las mismas condiciones se aplicarán al operador **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Las mismas condiciones se aplicarán a el/los operador(es) **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
"Save" = "Guardar";
|
||||
@@ -3961,7 +4024,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Guardar (y notificar contactos)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Guardar y notificar contacto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3982,7 +4045,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Guardar la contraseña en Keychain";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "¿Guardar preferencias?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -4347,7 +4410,7 @@
|
||||
"Share profile" = "Comparte perfil";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share SimpleX address on social media." = "Compartir dirección SimpleX en redes sociales.";
|
||||
"Share SimpleX address on social media." = "Comparte tu dirección SimpleX en redes sociales.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share this 1-time invite link" = "Comparte este enlace de un solo uso";
|
||||
@@ -4395,10 +4458,13 @@
|
||||
"SimpleX Address" = "Dirección SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address and 1-time links are safe to share via any messenger." = "Compartir enlaces de un uso y direcciones SimpleX es seguro a través de cualquier medio.";
|
||||
"SimpleX address and 1-time links are safe to share via any messenger." = "Compartir los enlaces de un uso y las direcciones SimpleX es seguro a través de cualquier medio.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address or 1-time link?" = "Dirección SimpleX o enlace de un uso?";
|
||||
"SimpleX address or 1-time link?" = "¿Dirección SimpleX o enlace de un uso?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "Simplex Chat y Flux han acordado incluir servidores operados por Flux en la aplicación";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat security was audited by Trail of Bits." = "La seguridad de SimpleX Chat ha sido auditada por Trail of Bits.";
|
||||
@@ -4580,6 +4646,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Pulsa el botón ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Pulsa Crear dirección SimpleX en el menú para crearla más tarde.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Pulsa sobre un perfil para activarlo.";
|
||||
|
||||
@@ -4695,7 +4764,13 @@
|
||||
"The profile is only shared with your contacts." = "El perfil sólo se comparte con tus contactos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "El segundo operador predefinido!";
|
||||
"The same conditions will apply to operator **%@**." = "Las mismas condiciones se aplicarán al operador **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Las mismas condiciones se aplicarán a el/los operador(es) **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "¡Segundo operador predefinido!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second tick we missed! ✅" = "¡El doble check que nos faltaba! ✅";
|
||||
@@ -4704,7 +4779,7 @@
|
||||
"The sender will NOT be notified" = "El remitente NO será notificado";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new connections of your current chat profile **%@**." = "Lista de servidores para las conexiones nuevas de tu perfil actual **%@**.";
|
||||
"The servers for new connections of your current chat profile **%@**." = "Lista de servidores para las conexiones nuevas del perfil **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new files of your current chat profile **%@**." = "Los servidores para archivos nuevos en tu perfil actual **%@**.";
|
||||
@@ -5280,7 +5355,10 @@
|
||||
"You already have a chat profile with the same display name. Please choose another name." = "Ya tienes un perfil con este nombre mostrado. Por favor, elige otro nombre.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Ya estás conectado a %@.";
|
||||
"You are already connected to %@." = "Ya estás conectado con %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Ya estás conectado con %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Ya estás conectando con %@.";
|
||||
@@ -5480,6 +5558,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "Seguirás recibiendo llamadas y notificaciones de los perfiles silenciados cuando estén activos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Dejarás de recibir mensajes de este chat. El historial del chat se conserva.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Dejarás de recibir mensajes de este grupo. El historial del chat se conservará.";
|
||||
|
||||
|
||||
@@ -711,7 +711,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting server… (error: %@)" = "Yhteyden muodostaminen palvelimeen... (virhe: %@)";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "yhdistää…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1520,24 +1520,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Ryhmälinkit";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Ryhmän jäsenet voivat lisätä viestireaktioita.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Ryhmän jäsenet voivat lähettää suoraviestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Ryhmän jäsenet voivat lähettää katoavia viestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Ryhmän jäsenet voivat lähettää ääniviestejä.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Ryhmäviesti:";
|
||||
|
||||
@@ -1910,6 +1892,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Jäsen poistetaan ryhmästä - tätä ei voi perua!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Ryhmän jäsenet voivat lisätä viestireaktioita.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Ryhmän jäsenet voivat lähettää suoraviestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Ryhmän jäsenet voivat lähettää katoavia viestejä.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Ryhmän jäsenet voivat lähettää ääniviestejä.";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "Viestin toimitusvirhe";
|
||||
|
||||
@@ -2508,7 +2508,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Tallenna (ja ilmoita kontakteille)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Tallenna ja ilmoita kontaktille";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2526,7 +2526,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Tallenna tunnuslause Avainnippuun";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Tallenna asetukset?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
"All data is erased when it is entered." = "Toutes les données sont effacées lorsqu'il est saisi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Toutes les données restent confinées dans votre appareil.";
|
||||
"All data is kept private on your device." = "Toutes les données restent confinées dans votre appareil.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Tous les membres du groupe resteront connectés.";
|
||||
@@ -1101,7 +1101,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Connexion au bureau";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "connexion…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2301,27 +2301,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Liens de groupe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Les membres du groupe peuvent ajouter des réactions aux messages.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Les membres du groupe peuvent envoyer des messages directs.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Les membres du groupes peuvent envoyer des messages éphémères.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Les membres du groupe peuvent envoyer des liens SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Message du groupe :";
|
||||
|
||||
@@ -2805,6 +2784,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Ce membre sera retiré du groupe - impossible de revenir en arrière !";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Les membres du groupe peuvent ajouter des réactions aux messages.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Les membres du groupe peuvent envoyer des messages directs.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Les membres du groupes peuvent envoyer des messages éphémères.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Les membres du groupe peuvent envoyer des liens SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menus";
|
||||
|
||||
@@ -3763,7 +3763,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Enregistrer (et en informer les contacts)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Enregistrer et en informer le contact";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3784,7 +3784,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Enregistrer la phrase secrète dans la Keychain";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Enregistrer les préférences ?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -344,7 +344,10 @@
|
||||
"Abort changing address?" = "Címváltoztatás megszakítása??";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About SimpleX Chat" = "A SimpleX Chatről";
|
||||
"About operators" = "Az üzemeltetőkről";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About SimpleX Chat" = "SimpleX Chat névjegye";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"above, then choose:" = "gombra fent, majd válassza ki:";
|
||||
@@ -376,6 +379,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Accepted conditions" = "Elfogadott feltételek";
|
||||
|
||||
/* chat list item title */
|
||||
"accepted invitation" = "elfogadott meghívó";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledged" = "Nyugtázva";
|
||||
|
||||
@@ -388,6 +394,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Cím hozzáadása a profilhoz, hogy az ismerősei megoszthassák másokkal. A profilfrissítés elküldésre kerül az ismerősei számára.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Barátok hozzáadása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Profil hozzáadása";
|
||||
|
||||
@@ -397,12 +406,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Kiszolgáló hozzáadása QR-kód beolvasásával.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Csapattagok hozzáadása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Hozzáadás egy másik eszközhöz";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Üdvözlőüzenet hozzáadása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Adja hozzá csapattagjait a beszélgetésekhez.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Hozzáadott média- és fájlkiszolgálók";
|
||||
|
||||
@@ -464,7 +479,7 @@
|
||||
"All data is erased when it is entered." = "A jelkód megadása után az összes adat törlésre kerül.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Az összes adat biztonságban van az eszközén.";
|
||||
"All data is kept private on your device." = "Az összes adat biztonságban van az eszközén.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Az összes csoporttag kapcsolatban marad.";
|
||||
@@ -770,7 +785,7 @@
|
||||
"Blur for better privacy." = "Elhomályosítás a jobb adatvédelemért.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Média elhomályosítása";
|
||||
"Blur media" = "Médiatartalom elhomályosítása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"bold" = "félkövér";
|
||||
@@ -793,6 +808,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bolgár, finn, thai és ukrán – köszönet a felhasználóknak és a [Weblate-nek](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Üzleti cím";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Üzleti csevegések";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "A csevegési profillal (alapértelmezett), vagy a [kapcsolattal] (https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BÉTA).";
|
||||
|
||||
@@ -863,6 +884,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Change" = "Változtatás";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Csevegési profilok megváltoztatása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Change database passphrase?" = "Adatbázis-jelmondat megváltoztatása?";
|
||||
|
||||
@@ -891,9 +915,6 @@
|
||||
set passcode view */
|
||||
"Change self-destruct passcode" = "Önmegsemmisító jelkód megváltoztatása";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Felhasználói profilok megváltoztatása";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "cím megváltoztatva";
|
||||
|
||||
@@ -909,6 +930,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "cím megváltoztatása…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Csevegés";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "A csevegés már létezik";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "A csevegés már létezik!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Csevegés színei";
|
||||
|
||||
@@ -954,6 +984,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Csevegés témája";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "A csevegés minden tag számára törlésre kerül - ezt a műveletet nem lehet visszavonni!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "A csevegés törlésre kerül az Ön számára - ezt a műveletet nem lehet visszavonni!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Csevegések";
|
||||
|
||||
@@ -1030,7 +1066,7 @@
|
||||
"Conditions are accepted for the operator(s): **%@**." = "A következő üzemeltető(k) számára elfogadott feltételek: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for following operator(s): **%@**." = "A feltételek már el lettek fogadva a következő üzemeltető(k) számára: **%@**.";
|
||||
"Conditions are already accepted for these operator(s): **%@**." = "A feltételek már el lettek fogadva a következő üzemeltető(k) számára: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Használati feltételek";
|
||||
@@ -1173,7 +1209,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Kapcsolódás a számítógéphez";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "kapcsolódás…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1475,12 +1511,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Törlés, és az ismerős értesítése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Csevegés törlése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Csevegési profil törlése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Csevegési profil törlése?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Csevegés törlése?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Kapcsolat törlése";
|
||||
|
||||
@@ -1655,6 +1697,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Közvetlen üzenetek";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "A tagok közötti közvetlen üzenetek le vannak tiltva ebben a csevegésben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "A közvetlen üzenetek küldése a tagok között le van tiltva ebben a csoportban.";
|
||||
|
||||
@@ -2305,7 +2350,7 @@
|
||||
"For console" = "Konzolhoz";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." = "Ha például az ismerőse a SimpleX Chat kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása a Flux egyik kiszolgálóját használja a kézbesítéshez.";
|
||||
"For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." = "Például, ha az Ön ismerőse egy SimpleX Chat-kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása egy Flux-kiszolgálón keresztül fogja azokat kézbesíteni.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For private routing" = "A privát útválasztáshoz";
|
||||
@@ -2424,27 +2469,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Csoporthivatkozások";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Csoporttagok üzenetreakciókat adhatnak hozzá.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "A csoport tagjai véglegesen törölhetik az elküldött üzeneteiket. (24 óra)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "A csoport tagjai küldhetnek egymásnak közvetlen üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "A csoport tagjai küldhetnek eltűnő üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "A csoport tagjai küldhetnek fájlokat és médiatartalmakat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "A csoport tagjai küldhetnek SimpleX-hivatkozásokat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "A csoport tagjai küldhetnek hangüzeneteket.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Csoport üzenet:";
|
||||
|
||||
@@ -2715,6 +2739,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Tagok meghívása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Meghívás a csevegésbe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Meghívás a csoportba";
|
||||
|
||||
@@ -2829,6 +2856,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Elhagyás";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Csevegés elhagyása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Csevegés elhagyása?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Csoport elhagyása";
|
||||
|
||||
@@ -2925,15 +2958,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Inaktív tag";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "A tag szerepeköre meg fog változni a következőre: \"%@\". A csevegés tagjai értesítést fognak kapni.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "A tag szerepköre meg fog változni erre: „%@”. A csoportban az összes tag értesítve lesz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "A tag szerepköre meg fog változni erre: „%@”. A tag új meghívást fog kapni.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "A tag el lesz távolítva a csevegésből - ezt a műveletet nem lehet visszavonni!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "A tag eltávolítása a csoportból - ez a művelet nem vonható vissza!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Csoporttagok üzenetreakciókat adhatnak hozzá.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "A csoport tagjai véglegesen törölhetik az elküldött üzeneteiket. (24 óra)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "A csoport tagjai küldhetnek egymásnak közvetlen üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "A csoport tagjai küldhetnek eltűnő üzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "A csoport tagjai küldhetnek fájlokat és médiatartalmakat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "A csoport tagjai küldhetnek SimpleX-hivatkozásokat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "A csoport tagjai küldhetnek hangüzeneteket.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menük";
|
||||
|
||||
@@ -3329,6 +3389,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Onion-kiszolgálók nem lesznek használva.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Csak a csevegés tulajdonosai módosíthatják a beállításokat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Csak az eszközök alkalmazásai tárolják a felhasználó-profilokat, névjegyeket, csoportokat és a **2 rétegű végpontok közötti titkosítással** küldött üzeneteket.";
|
||||
|
||||
@@ -3407,6 +3470,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Kiszolgáló üzemeltető";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "Vagy archívumfájl importálása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "Vagy az archívum hivatkozásának beillesztése";
|
||||
|
||||
@@ -3575,6 +3641,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Adatvédelem és biztonság";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Az Ön ügyfeleinek adatvédelme.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Adatvédelem újraértelmezve";
|
||||
|
||||
@@ -3645,7 +3714,7 @@
|
||||
"Protect app screen" = "Alkalmazás képernyőjének védelme";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Protect IP address" = "IP-cím védelem";
|
||||
"Protect IP address" = "IP-cím védelme";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Protect your chat profiles with a password!" = "Védje meg a csevegési profiljait egy jelszóval!";
|
||||
@@ -3671,9 +3740,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Push-értesítések";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Push értesítések";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push-kiszolgáló";
|
||||
|
||||
@@ -3870,6 +3936,9 @@
|
||||
/* chat item action */
|
||||
"Reply" = "Válasz";
|
||||
|
||||
/* chat list item title */
|
||||
"requested to connect" = "kérelmezve a kapcsolódáshoz";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Required" = "Szükséges";
|
||||
|
||||
@@ -3948,12 +4017,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Safer groups" = "Biztonságosabb csoportok";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
"Save" = "Mentés";
|
||||
@@ -3961,7 +4024,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Mentés és az ismerősök értesítése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Mentés és az ismerős értesítése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3982,7 +4045,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Jelmondat mentése a kulcstartóba";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Beállítások mentése?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -4007,10 +4070,10 @@
|
||||
"Saved" = "Mentett";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Saved from" = "Mentve innen:";
|
||||
"Saved from" = "Elmentve innen:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"saved from %@" = "mentve innen: %@";
|
||||
"saved from %@" = "elmentve innen: %@";
|
||||
|
||||
/* message info title */
|
||||
"Saved message" = "Mentett üzenet";
|
||||
@@ -4400,6 +4463,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address or 1-time link?" = "SimpleX-cím vagy egyszer használható meghívó-hivatkozás?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "A SimpleX Chat és a Flux megállapodást kötött arról, hogy a Flux által üzemeltetett kiszolgálókat beépítik az alkalmazásba.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat security was audited by Trail of Bits." = "A SimpleX Chat biztonsága a Trail of Bits által lett auditálva.";
|
||||
|
||||
@@ -4580,6 +4646,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Koppintson a ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Koppintson a SimpleX-cím létrehozása menüpontra a későbbi létrehozáshoz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "A profil aktiválásához koppintson az ikonra.";
|
||||
|
||||
@@ -4694,6 +4763,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The profile is only shared with your contacts." = "A profilja csak az ismerőseivel kerül megosztásra.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltetőre is: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "A második előre beállított üzemeltető az alkalmazásban!";
|
||||
|
||||
@@ -5282,6 +5357,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Ön már kapcsolódva van ehhez: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Ön már kapcsolódva van vele: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Már folyamatban van a kapcsolódás ehhez: %@.";
|
||||
|
||||
@@ -5331,7 +5409,7 @@
|
||||
"You can configure operators in Network & servers settings." = "Az üzemeltetőket a „Hálózat és kiszolgálók” beállításaban konfigurálhatja.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can configure servers via settings." = "A kiszolgálókat a beállításokon keresztül konfigurálhatja.";
|
||||
"You can configure servers via settings." = "A kiszolgálókat a „Hálózat és kiszolgálók” menüben konfigurálhatja.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Létrehozás később";
|
||||
@@ -5361,7 +5439,7 @@
|
||||
"You can set connection name, to remember who the link was shared with." = "Beállíthatja az ismerős nevét, hogy emlékezzen arra, hogy kivel osztotta meg a hivatkozást.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can set lock screen notification preview via settings." = "A beállításokon keresztül beállíthatja a lezárási képernyő értesítési előnézetét.";
|
||||
"You can set lock screen notification preview via settings." = "A lezárási képernyő értesítési előnézetét az „Értesítések” menüben állíthatja be.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can share a link or a QR code - anybody will be able to join the group. You won't lose members of the group if you later delete it." = "Megoszthat egy hivatkozást vagy QR-kódot - így bárki csatlakozhat a csoporthoz. Ha a csoport később törlésre kerül, akkor nem fogja elveszíteni annak tagjait.";
|
||||
@@ -5480,6 +5558,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "Továbbra is kap hívásokat és értesítéseket a némított profiloktól, ha azok aktívak.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Ön nem fog több üzenetet kapni ebből a csevegésből, de a csevegés előzményei megmaradnak.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Ettől a csoporttól nem fog értesítéseket kapni. A csevegési előzmények megmaradnak.";
|
||||
|
||||
|
||||
@@ -388,6 +388,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Aggiungi l'indirizzo al tuo profilo, in modo che i tuoi contatti possano condividerlo con altre persone. L'aggiornamento del profilo verrà inviato ai tuoi contatti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Aggiungi amici";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Aggiungi profilo";
|
||||
|
||||
@@ -397,12 +400,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Aggiungi server scansionando codici QR.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Aggiungi membri del team";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Aggiungi ad un altro dispositivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Aggiungi messaggio di benvenuto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Aggiungi i membri del tuo team alle conversazioni.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Server di multimediali e file aggiunti";
|
||||
|
||||
@@ -464,7 +473,7 @@
|
||||
"All data is erased when it is entered." = "Tutti i dati vengono cancellati quando inserito.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Tutti i dati sono privati, nel tuo dispositivo.";
|
||||
"All data is kept private on your device." = "Tutti i dati sono privati, nel tuo dispositivo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Tutti i membri del gruppo resteranno connessi.";
|
||||
@@ -680,10 +689,10 @@
|
||||
"Auto-accept" = "Accetta automaticamente";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Auto-accept contact requests" = "Auto-accetta richieste di contatto";
|
||||
"Auto-accept contact requests" = "Auto-accetta le richieste di contatto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Auto-accept images" = "Auto-accetta immagini";
|
||||
"Auto-accept images" = "Auto-accetta le immagini";
|
||||
|
||||
/* alert title */
|
||||
"Auto-accept settings" = "Accetta automaticamente le impostazioni";
|
||||
@@ -770,7 +779,7 @@
|
||||
"Blur for better privacy." = "Sfoca per una privacy maggiore.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Sfocatura file multimediali";
|
||||
"Blur media" = "Sfocatura dei file multimediali";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"bold" = "grassetto";
|
||||
@@ -793,6 +802,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bulgaro, finlandese, tailandese e ucraino - grazie agli utenti e a [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Indirizzo di lavoro";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Chat di lavoro";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Per profilo di chat (predefinito) o [per connessione](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
|
||||
|
||||
@@ -863,6 +878,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Change" = "Cambia";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Modifica profili utente";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Change database passphrase?" = "Cambiare password del database?";
|
||||
|
||||
@@ -891,9 +909,6 @@
|
||||
set passcode view */
|
||||
"Change self-destruct passcode" = "Cambia codice di autodistruzione";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Modifica profili utente";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "indirizzo cambiato per te";
|
||||
|
||||
@@ -909,6 +924,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "cambio indirizzo…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "La chat esiste già";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "La chat esiste già!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Colori della chat";
|
||||
|
||||
@@ -954,6 +978,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Tema della chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "La chat verrà eliminata per tutti i membri, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "La chat verrà eliminata solo per te, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Chat";
|
||||
|
||||
@@ -1030,7 +1060,7 @@
|
||||
"Conditions are accepted for the operator(s): **%@**." = "Le condizioni sono state accettate per gli operatori: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for following operator(s): **%@**." = "Le condizioni sono già state accettate per i seguenti operatori: **%@**.";
|
||||
"Conditions are already accepted for these operator(s): **%@**." = "Le condizioni sono già state accettate per i seguenti operatori: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Condizioni d'uso";
|
||||
@@ -1173,7 +1203,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Connessione al desktop";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "in connessione…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1475,12 +1505,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Elimina e avvisa il contatto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Elimina chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Elimina il profilo di chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Eliminare il profilo di chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Eliminare la chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Elimina connessione";
|
||||
|
||||
@@ -1655,6 +1691,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Messaggi diretti";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "I messaggi diretti tra i membri sono vietati in questa chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "I messaggi diretti tra i membri sono vietati in questo gruppo.";
|
||||
|
||||
@@ -2424,27 +2463,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Link del gruppo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "I membri del gruppo possono aggiungere reazioni ai messaggi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "I membri del gruppo possono inviare messaggi diretti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "I membri del gruppo possono inviare messaggi a tempo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "I membri del gruppo possono inviare link di Simplex.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Messaggio del gruppo:";
|
||||
|
||||
@@ -2715,6 +2733,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Invita membri";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Invita in chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Invita al gruppo";
|
||||
|
||||
@@ -2829,6 +2850,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Esci";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Esci dalla chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Uscire dalla chat?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Esci dal gruppo";
|
||||
|
||||
@@ -2925,15 +2952,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Membro inattivo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "Il ruolo del membro verrà cambiato in \"%@\". Verranno notificati tutti i membri della chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "Il ruolo del membro verrà cambiato in \"%@\". Tutti i membri del gruppo verranno avvisati.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "Il ruolo del membro verrà cambiato in \"%@\". Il membro riceverà un invito nuovo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "Il membro verrà rimosso dalla chat, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Il membro verrà rimosso dal gruppo, non è reversibile!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "I membri del gruppo possono aggiungere reazioni ai messaggi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "I membri del gruppo possono inviare messaggi diretti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "I membri del gruppo possono inviare messaggi a tempo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "I membri del gruppo possono inviare link di Simplex.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menu";
|
||||
|
||||
@@ -2950,7 +3004,7 @@
|
||||
"Message delivery warning" = "Avviso di consegna del messaggio";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Message draft" = "Bozza dei messaggi";
|
||||
"Message draft" = "Bozza del messaggio";
|
||||
|
||||
/* item status text */
|
||||
"Message forwarded" = "Messaggio inoltrato";
|
||||
@@ -3329,6 +3383,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Gli host Onion non verranno usati.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Solo i proprietari della chat possono modificarne le preferenze.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Solo i dispositivi client archiviano profili utente, i contatti, i gruppi e i messaggi inviati con la **crittografia end-to-end a 2 livelli**.";
|
||||
|
||||
@@ -3407,6 +3464,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Server dell'operatore";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "O importa file archivio";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "O incolla il link dell'archivio";
|
||||
|
||||
@@ -3575,6 +3635,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Privacy e sicurezza";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Privacy per i tuoi clienti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Privacy ridefinita";
|
||||
|
||||
@@ -3671,9 +3734,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Notifiche push";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Notifiche push";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Server push";
|
||||
|
||||
@@ -3922,10 +3982,10 @@
|
||||
"Reveal" = "Rivela";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Review conditions" = "Esamina le condizioni";
|
||||
"Review conditions" = "Leggi le condizioni";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Review later" = "Esamina più tardi";
|
||||
"Review later" = "Leggi più tardi";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Revoke" = "Revoca";
|
||||
@@ -3948,12 +4008,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Safer groups" = "Gruppi più sicuri";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Le stesse condizioni si applicheranno all'operatore **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Le stesse condizioni si applicheranno agli operatori **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
"Save" = "Salva";
|
||||
@@ -3961,7 +4015,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Salva (e avvisa i contatti)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Salva e avvisa il contatto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3982,7 +4036,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Salva password nel portachiavi";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Salvare le preferenze?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -4127,7 +4181,7 @@
|
||||
"Send errors" = "Errori di invio";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Send link previews" = "Invia anteprime dei link";
|
||||
"Send link previews" = "Invia le anteprime dei link";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Send live message" = "Invia messaggio in diretta";
|
||||
@@ -4347,7 +4401,7 @@
|
||||
"Share profile" = "Condividi il profilo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share SimpleX address on social media." = "Condividi indirizzo SimpleX sui social media.";
|
||||
"Share SimpleX address on social media." = "Condividi l'indirizzo SimpleX sui social media.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share this 1-time invite link" = "Condividi questo link di invito una tantum";
|
||||
@@ -4400,6 +4454,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address or 1-time link?" = "Indirizzo SimpleX o link una tantum?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "SimpleX Chat e Flux hanno concluso un accordo per includere server gestiti da Flux nell'app";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat security was audited by Trail of Bits." = "La sicurezza di SimpleX Chat è stata verificata da Trail of Bits.";
|
||||
|
||||
@@ -4580,6 +4637,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Tocca il pulsante ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Tocca Crea indirizzo SimpleX nel menu per crearlo più tardi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Tocca per attivare il profilo.";
|
||||
|
||||
@@ -4694,6 +4754,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The profile is only shared with your contacts." = "Il profilo è condiviso solo con i tuoi contatti.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator **%@**." = "Le stesse condizioni si applicheranno all'operatore **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Le stesse condizioni si applicheranno agli operatori **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "Il secondo operatore preimpostato nell'app!";
|
||||
|
||||
@@ -5282,6 +5348,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Sei già connesso/a a %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Sei già connesso/a con %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Ti stai già connettendo a %@.";
|
||||
|
||||
@@ -5480,6 +5549,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "Continuerai a ricevere chiamate e notifiche da profili silenziati quando sono attivi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Non riceverai più messaggi da questa chat. La cronologia della chat verrà conservata.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Non riceverai più messaggi da questo gruppo. La cronologia della chat verrà conservata.";
|
||||
|
||||
|
||||
@@ -828,7 +828,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "デスクトップに接続中";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "接続待ち…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1661,24 +1661,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "グループのリンク";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。(24時間)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "グループのメンバーが消えるメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "グループメンバーはファイルやメディアを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "グループのメンバーが音声メッセージを送信できます。";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "グループメッセージ:";
|
||||
|
||||
@@ -2051,6 +2033,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "メンバーをグループから除名する (※元に戻せません※)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。(24時間)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "グループのメンバーが消えるメッセージを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "グループメンバーはファイルやメディアを送信できます。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "グループのメンバーが音声メッセージを送信できます。";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "メッセージ送信エラー";
|
||||
|
||||
@@ -2655,7 +2655,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "保存(連絡先に通知)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "保存して、連絡先にに知らせる";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2673,7 +2673,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "パスフレーズをキーチェーンに保存";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "この設定でよろしいですか?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -343,6 +343,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Abort changing address?" = "Adres wijziging afbreken?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About operators" = "Over operatoren";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About SimpleX Chat" = "Over SimpleX Chat";
|
||||
|
||||
@@ -376,6 +379,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Accepted conditions" = "Geaccepteerde voorwaarden";
|
||||
|
||||
/* chat list item title */
|
||||
"accepted invitation" = "geaccepteerde uitnodiging";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledged" = "Erkend";
|
||||
|
||||
@@ -388,6 +394,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Voeg een adres toe aan uw profiel, zodat uw contacten het met andere mensen kunnen delen. Profiel update wordt naar uw contacten verzonden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Vrienden toevoegen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Profiel toevoegen";
|
||||
|
||||
@@ -397,12 +406,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Servers toevoegen door QR-codes te scannen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Teamleden toevoegen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Toevoegen aan een ander apparaat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Welkom bericht toevoegen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Voeg uw teamleden toe aan de gesprekken.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Media- en bestandsservers toegevoegd";
|
||||
|
||||
@@ -464,7 +479,7 @@
|
||||
"All data is erased when it is entered." = "Alle gegevens worden bij het invoeren gewist.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Alle gegevens zijn privé op uw apparaat.";
|
||||
"All data is kept private on your device." = "Alle gegevens zijn privé op uw apparaat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Alle groepsleden blijven verbonden.";
|
||||
@@ -512,7 +527,7 @@
|
||||
"Allow downgrade" = "Downgraden toestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)";
|
||||
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Sta het definitief verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow message reactions only if your contact allows them." = "Sta bericht reacties alleen toe als uw contact dit toestaat.";
|
||||
@@ -530,7 +545,7 @@
|
||||
"Allow sharing" = "Delen toestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow to irreversibly delete sent messages. (24 hours)" = "Sta toe om verzonden berichten onomkeerbaar te verwijderen. (24 uur)";
|
||||
"Allow to irreversibly delete sent messages. (24 hours)" = "Sta toe om verzonden berichten definitief te verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow to send files and media." = "Sta toe om bestanden en media te verzenden.";
|
||||
@@ -554,7 +569,7 @@
|
||||
"Allow your contacts to call you." = "Sta toe dat uw contacten u bellen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow your contacts to irreversibly delete sent messages. (24 hours)" = "Laat uw contacten verzonden berichten onomkeerbaar verwijderen. (24 uur)";
|
||||
"Allow your contacts to irreversibly delete sent messages. (24 hours)" = "Laat uw contacten verzonden berichten definitief verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow your contacts to send disappearing messages." = "Sta toe dat uw contacten verdwijnende berichten verzenden.";
|
||||
@@ -659,7 +674,7 @@
|
||||
"Audio/video calls" = "Audio/video oproepen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Audio/video calls are prohibited." = "Audio/video gesprekken zijn verboden.";
|
||||
"Audio/video calls are prohibited." = "Audio/video gesprekken zijn niet toegestaan.";
|
||||
|
||||
/* PIN entry */
|
||||
"Authentication cancelled" = "Verificatie geannuleerd";
|
||||
@@ -793,6 +808,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bulgaars, Fins, Thais en Oekraïens - dankzij de gebruikers en [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Zakelijk adres";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Zakelijke chats";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Via chatprofiel (standaard) of [via verbinding](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
|
||||
|
||||
@@ -815,7 +836,7 @@
|
||||
"Calls" = "Oproepen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Calls prohibited!" = "Bellen verboden!";
|
||||
"Calls prohibited!" = "Bellen niet toegestaan!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Camera not available" = "Camera niet beschikbaar";
|
||||
@@ -863,6 +884,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Change" = "Veranderen";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Gebruikersprofielen wijzigen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Change database passphrase?" = "Wachtwoord database wijzigen?";
|
||||
|
||||
@@ -891,9 +915,6 @@
|
||||
set passcode view */
|
||||
"Change self-destruct passcode" = "Zelfvernietigings code wijzigen";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Gebruikersprofielen wijzigen";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "adres voor u gewijzigd";
|
||||
|
||||
@@ -909,6 +930,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "adres wijzigen…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "Chat bestaat al";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "Chat bestaat al!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Chat kleuren";
|
||||
|
||||
@@ -954,6 +984,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Chat thema";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "De chat wordt voor alle leden verwijderd - dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "De chat wordt voor je verwijderd - dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Chats";
|
||||
|
||||
@@ -1030,7 +1066,7 @@
|
||||
"Conditions are accepted for the operator(s): **%@**." = "Voorwaarden worden geaccepteerd voor de operator(s): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for following operator(s): **%@**." = "Voorwaarden zijn reeds geaccepteerd voor de volgende operator(s): **%@**.";
|
||||
"Conditions are already accepted for these operator(s): **%@**." = "Voorwaarden zijn reeds geaccepteerd voor de volgende operator(s): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Gebruiksvoorwaarden";
|
||||
@@ -1173,7 +1209,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Verbinding maken met desktop";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "Verbinden…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1475,12 +1511,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Verwijderen en contact op de hoogte stellen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Chat verwijderen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Chatprofiel verwijderen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Chatprofiel verwijderen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Chat verwijderen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Verbinding verwijderen";
|
||||
|
||||
@@ -1656,7 +1698,10 @@
|
||||
"Direct messages" = "Directe berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "Directe berichten tussen leden zijn verboden in deze groep.";
|
||||
"Direct messages between members are prohibited in this chat." = "Directe berichten tussen leden zijn in deze chat niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "Directe berichten tussen leden zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disable (keep overrides)" = "Uitschakelen (overschrijvingen behouden)";
|
||||
@@ -1680,10 +1725,10 @@
|
||||
"Disappearing messages" = "Verdwijnende berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disappearing messages are prohibited in this chat." = "Verdwijnende berichten zijn verboden in dit gesprek.";
|
||||
"Disappearing messages are prohibited in this chat." = "Verdwijnende berichten zijn niet toegestaan in dit gesprek.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disappearing messages are prohibited." = "Verdwijnende berichten zijn verboden in deze groep.";
|
||||
"Disappearing messages are prohibited." = "Verdwijnende berichten zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disappears at" = "Verdwijnt op";
|
||||
@@ -2254,13 +2299,13 @@
|
||||
"Files and media" = "Bestanden en media";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Files and media are prohibited." = "Bestanden en media zijn verboden in deze groep.";
|
||||
"Files and media are prohibited." = "Bestanden en media zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Files and media not allowed" = "Bestanden en media niet toegestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Files and media prohibited!" = "Bestanden en media verboden!";
|
||||
"Files and media prohibited!" = "Bestanden en media niet toegestaan!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Filter unread and favorite chats." = "Filter ongelezen en favoriete chats.";
|
||||
@@ -2424,27 +2469,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Groep links";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Groepsleden kunnen bericht reacties toevoegen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Groepsleden kunnen verzonden berichten onherroepelijk verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Groepsleden kunnen directe berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Groepsleden kunnen verdwijnende berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Groepsleden kunnen bestanden en media verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Groepsleden kunnen SimpleX-links verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Groepsleden kunnen spraak berichten verzenden.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Groep bericht:";
|
||||
|
||||
@@ -2533,7 +2557,7 @@
|
||||
"If you can't meet in person, show QR code in a video call, or share the link." = "Als je elkaar niet persoonlijk kunt ontmoeten, laat dan de QR-code zien in een videogesprek of deel de link.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you enter this passcode when opening the app, all app data will be irreversibly removed!" = "Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens onomkeerbaar verwijderd!";
|
||||
"If you enter this passcode when opening the app, all app data will be irreversibly removed!" = "Als u deze toegangscode invoert bij het openen van de app, worden alle app-gegevens definitief verwijderd!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you enter your self-destruct passcode while opening the app:" = "Als u uw zelfvernietigings wachtwoord invoert tijdens het openen van de app:";
|
||||
@@ -2715,6 +2739,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Nodig leden uit";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Uitnodigen voor een chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Uitnodigen voor groep";
|
||||
|
||||
@@ -2743,10 +2770,10 @@
|
||||
"Irreversible message deletion" = "Onomkeerbare berichtverwijdering";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Irreversible message deletion is prohibited in this chat." = "Het onomkeerbaar verwijderen van berichten is verboden in dit gesprek.";
|
||||
"Irreversible message deletion is prohibited in this chat." = "Het definitief verwijderen van berichten is niet toegestaan in dit gesprek.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Irreversible message deletion is prohibited." = "Het onomkeerbaar verwijderen van berichten is verboden in deze groep.";
|
||||
"Irreversible message deletion is prohibited." = "Het definitief verwijderen van berichten is verbHet definitief verwijderen van berichten is niet toegestaan..";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Het maakt het mogelijk om veel anonieme verbindingen te hebben zonder enige gedeelde gegevens tussen hen in een enkel chatprofiel.";
|
||||
@@ -2829,6 +2856,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Verlaten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Chat verlaten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Chat verlaten?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Groep verlaten";
|
||||
|
||||
@@ -2925,15 +2958,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Lid inactief";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "De rol van het lid wordt gewijzigd naar \"%@\". Alle chatleden worden op de hoogte gebracht.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "De rol van lid wordt gewijzigd in \"%@\". Alle groepsleden worden op de hoogte gebracht.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "De rol van lid wordt gewijzigd in \"%@\". Het lid ontvangt een nieuwe uitnodiging.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "Lid wordt verwijderd uit de chat - dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Lid wordt uit de groep verwijderd, dit kan niet ongedaan worden gemaakt!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Groepsleden kunnen bericht reacties toevoegen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Groepsleden kunnen verzonden berichten onherroepelijk verwijderen. (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Groepsleden kunnen directe berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Groepsleden kunnen verdwijnende berichten sturen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Groepsleden kunnen bestanden en media verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Groepsleden kunnen SimpleX-links verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Groepsleden kunnen spraak berichten verzenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menu's";
|
||||
|
||||
@@ -2965,10 +3025,10 @@
|
||||
"Message reactions" = "Reacties op berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Message reactions are prohibited in this chat." = "Reacties op berichten zijn verboden in deze chat.";
|
||||
"Message reactions are prohibited in this chat." = "Reacties op berichten zijn niet toegestaan in deze chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Message reactions are prohibited." = "Reacties op berichten zijn verboden in deze groep.";
|
||||
"Message reactions are prohibited." = "Reacties op berichten zijn niet toegestaan.";
|
||||
|
||||
/* notification */
|
||||
"message received" = "bericht ontvangen";
|
||||
@@ -3329,6 +3389,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Onion hosts worden niet gebruikt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Alleen chateigenaren kunnen voorkeuren wijzigen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Alleen client apparaten slaan gebruikers profielen, contacten, groepen en berichten op die zijn verzonden met **2-laags end-to-end-codering**.";
|
||||
|
||||
@@ -3348,7 +3411,7 @@
|
||||
"Only you can add message reactions." = "Alleen jij kunt bericht reacties toevoegen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" = "Alleen jij kunt berichten onomkeerbaar verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)";
|
||||
"Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" = "Alleen jij kunt berichten definitief verwijderen (je contact kan ze markeren voor verwijdering). (24 uur)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only you can make calls." = "Alleen jij kunt bellen.";
|
||||
@@ -3407,6 +3470,9 @@
|
||||
/* alert title */
|
||||
"Operator server" = "Operatorserver";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "Of importeer archiefbestand";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "Of plak de archief link";
|
||||
|
||||
@@ -3575,6 +3641,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Privacy en beveiliging";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Privacy voor uw klanten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Privacy opnieuw gedefinieerd";
|
||||
|
||||
@@ -3618,7 +3687,7 @@
|
||||
"Prohibit audio/video calls." = "Audio/video gesprekken verbieden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Prohibit irreversible message deletion." = "Verbied het onomkeerbaar verwijderen van berichten.";
|
||||
"Prohibit irreversible message deletion." = "Verbied het definitief verwijderen van berichten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Prohibit message reactions." = "Bericht reacties verbieden.";
|
||||
@@ -3671,9 +3740,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Push meldingen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Pushmeldingen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push server";
|
||||
|
||||
@@ -3870,6 +3936,9 @@
|
||||
/* chat item action */
|
||||
"Reply" = "Antwoord";
|
||||
|
||||
/* chat list item title */
|
||||
"requested to connect" = "gevraagd om verbinding te maken";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Required" = "Vereist";
|
||||
|
||||
@@ -3948,12 +4017,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Safer groups" = "Veiligere groepen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Dezelfde voorwaarden gelden voor operator **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Dezelfde voorwaarden gelden voor operator(s): **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
"Save" = "Opslaan";
|
||||
@@ -3961,7 +4024,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Bewaar (en informeer contacten)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Opslaan en Contact melden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3982,7 +4045,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Sla het wachtwoord op in de Keychain";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Voorkeuren opslaan?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -4400,6 +4463,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address or 1-time link?" = "SimpleX adres of eenmalige link?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "Simplex-chat en flux hebben een overeenkomst gemaakt om door flux geëxploiteerde servers in de app op te nemen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat security was audited by Trail of Bits." = "De beveiliging van SimpleX Chat is gecontroleerd door Trail of Bits.";
|
||||
|
||||
@@ -4416,7 +4482,7 @@
|
||||
"SimpleX links" = "SimpleX links";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX links are prohibited." = "SimpleX-links zijn in deze groep verboden.";
|
||||
"SimpleX links are prohibited." = "SimpleX-links zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX links not allowed" = "SimpleX-links zijn niet toegestaan";
|
||||
@@ -4580,6 +4646,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Tik op de knop ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Tik op SimpleX-adres maken in het menu om het later te maken.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Tik hier om profiel te activeren.";
|
||||
|
||||
@@ -4694,6 +4763,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The profile is only shared with your contacts." = "Het profiel wordt alleen gedeeld met uw contacten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator **%@**." = "Dezelfde voorwaarden gelden voor operator **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Dezelfde voorwaarden gelden voor operator(s): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "De tweede vooraf ingestelde operator in de app!";
|
||||
|
||||
@@ -4734,7 +4809,7 @@
|
||||
"This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes." = "Deze actie kan niet ongedaan worden gemaakt, de berichten die eerder zijn verzonden en ontvangen dan geselecteerd, worden verwijderd. Het kan enkele minuten duren.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.";
|
||||
"This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan definitief verloren.";
|
||||
|
||||
/* E2EE info chat item */
|
||||
"This chat is protected by end-to-end encryption." = "Deze chat is beveiligd met end-to-end codering.";
|
||||
@@ -5145,16 +5220,16 @@
|
||||
"Voice messages" = "Spraak berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages are prohibited in this chat." = "Spraak berichten zijn verboden in deze chat.";
|
||||
"Voice messages are prohibited in this chat." = "Spraak berichten zijn niet toegestaan in dit gesprek.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages are prohibited." = "Spraak berichten zijn verboden in deze groep.";
|
||||
"Voice messages are prohibited." = "Spraak berichten zijn niet toegestaan.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages not allowed" = "Spraakberichten niet toegestaan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Voice messages prohibited!" = "Spraak berichten verboden!";
|
||||
"Voice messages prohibited!" = "Spraak berichten niet toegestaan!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"waiting for answer…" = "wachten op antwoord…";
|
||||
@@ -5282,6 +5357,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "U bent al verbonden met %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "U bent al verbonden met %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "U maakt al verbinding met %@.";
|
||||
|
||||
@@ -5480,6 +5558,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "U ontvangt nog steeds oproepen en meldingen van gedempte profielen wanneer deze actief zijn.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "U ontvangt geen berichten meer van deze chat. De chatgeschiedenis blijft bewaard.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Je ontvangt geen berichten meer van deze groep. Je gesprek geschiedenis blijft behouden.";
|
||||
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
"All data is erased when it is entered." = "Wszystkie dane są usuwane po jego wprowadzeniu.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Wszystkie dane są prywatne na Twoim urządzeniu.";
|
||||
"All data is kept private on your device." = "Wszystkie dane są prywatne na Twoim urządzeniu.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Wszyscy członkowie grupy pozostaną połączeni.";
|
||||
@@ -1086,7 +1086,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Łączenie z komputerem";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "łączenie…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2277,27 +2277,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Linki grupowe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Członkowie grupy mogą dodawać reakcje wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Członkowie grupy mogą wysyłać bezpośrednie wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Członkowie grupy mogą wysyłać znikające wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Członkowie grupy mogą wysyłać pliki i media.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Członkowie grupy mogą wysyłać linki SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Wiadomość grupowa:";
|
||||
|
||||
@@ -2778,6 +2757,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Członek zostanie usunięty z grupy - nie można tego cofnąć!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Członkowie grupy mogą dodawać reakcje wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Członkowie grupy mogą wysyłać bezpośrednie wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Członkowie grupy mogą wysyłać znikające wiadomości.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Członkowie grupy mogą wysyłać pliki i media.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Członkowie grupy mogą wysyłać linki SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menu";
|
||||
|
||||
@@ -3736,7 +3736,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Zapisz (i powiadom kontakty)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Zapisz i powiadom kontakt";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3757,7 +3757,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Zapisz hasło w pęku kluczy";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Zapisać preferencje?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"**Recommended**: device token and end-to-end encrypted notifications are sent to SimpleX Chat push server, but it does not see the message content, size or who it is from." = "**Рекомендовано**: токен устройства и уведомления отправляются на сервер SimpleX Chat, но сервер не получает сами сообщения, их размер или от кого они.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"**Scan / Paste link**: to connect via a link you received." = "**Сканировать / Вставить ссылку**: чтобы соединиться через полученную ссылку.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: для работы мгновенных уведомлений пароль должен быть сохранен в Keychain.";
|
||||
|
||||
@@ -142,6 +145,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"%@ is verified" = "%@ подтверждён";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ server" = "%@ сервер";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ servers" = "%@ серверы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ uploaded" = "%@ загружено";
|
||||
|
||||
@@ -295,6 +304,12 @@
|
||||
/* time interval */
|
||||
"1 week" = "1 неделю";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1-time link" = "Одноразовая ссылка";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1-time link can be used *with one contact only* - share in person or via any messenger." = "Одноразовая ссылка может быть использована *только с одним контактом* - поделитесь при встрече или через любой мессенджер.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"5 minutes" = "5 минут";
|
||||
|
||||
@@ -328,6 +343,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Abort changing address?" = "Прекратить изменение адреса?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About operators" = "Об операторах";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About SimpleX Chat" = "Информация о SimpleX Chat";
|
||||
|
||||
@@ -342,6 +360,9 @@
|
||||
swipe action */
|
||||
"Accept" = "Принять";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accept conditions" = "Принять условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accept connection request?" = "Принять запрос?";
|
||||
|
||||
@@ -355,6 +376,12 @@
|
||||
/* call status */
|
||||
"accepted call" = "принятый звонок";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accepted conditions" = "Принятые условия";
|
||||
|
||||
/* chat list item title */
|
||||
"accepted invitation" = "принятое приглашение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledged" = "Подтверждено";
|
||||
|
||||
@@ -367,6 +394,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Добавьте адрес в свой профиль, чтобы Ваши контакты могли поделиться им. Профиль будет отправлен Вашим контактам.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add friends" = "Добавить друзей";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile" = "Добавить профиль";
|
||||
|
||||
@@ -376,12 +406,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Add servers by scanning QR codes." = "Добавить серверы через QR код.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add team members" = "Добавить сотрудников";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to another device" = "Добавить на другое устройство";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add welcome message" = "Добавить приветственное сообщение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add your team members to the conversations." = "Добавьте сотрудников в разговор.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added media & file servers" = "Дополнительные серверы файлов и медиа";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Added message servers" = "Дополнительные серверы сообщений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Additional accent" = "Дополнительный акцент";
|
||||
|
||||
@@ -397,6 +439,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Address change will be aborted. Old receiving address will be used." = "Изменение адреса будет прекращено. Будет использоваться старый адрес.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Address or 1-time link?" = "Адрес или одноразовая ссылка?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Address settings" = "Настройки адреса";
|
||||
|
||||
/* member role */
|
||||
"admin" = "админ";
|
||||
|
||||
@@ -431,7 +479,7 @@
|
||||
"All data is erased when it is entered." = "Все данные удаляются при его вводе.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Все данные хранятся только на вашем устройстве.";
|
||||
"All data is kept private on your device." = "Все данные хранятся только на вашем устройстве.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Все члены группы, которые соединились через эту ссылку, останутся в группе.";
|
||||
@@ -760,6 +808,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Болгарский, финский, тайский и украинский - благодаря пользователям и [Weblate] (https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business address" = "Бизнес адрес";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Business chats" = "Бизнес разговоры";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "По профилю чата или [по соединению](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (БЕТА).";
|
||||
|
||||
@@ -830,6 +884,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Change" = "Поменять";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Поменять профили";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Change database passphrase?" = "Поменять пароль базы данных?";
|
||||
|
||||
@@ -873,6 +930,15 @@
|
||||
/* chat item text */
|
||||
"changing address…" = "смена адреса…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat" = "Разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists" = "Разговор уже существует";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat already exists!" = "Разговор уже существует!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat colors" = "Цвета чата";
|
||||
|
||||
@@ -918,9 +984,21 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat theme" = "Тема чата";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for all members - this cannot be undone!" = "Разговор будет удален для всех участников - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat will be deleted for you - this cannot be undone!" = "Разговор будет удален для Вас - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chats" = "Чаты";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Check messages every 20 min." = "Проверять сообщения каждые 20 минут.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Check messages when allowed." = "Проверять сообщения по возможности.";
|
||||
|
||||
/* alert title */
|
||||
"Check server address and try again." = "Проверьте адрес сервера и попробуйте снова.";
|
||||
|
||||
@@ -981,6 +1059,33 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Completed" = "Готово";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions accepted on: %@." = "Условия приняты: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are accepted for the operator(s): **%@**." = "Условия приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for these operator(s): **%@**." = "Условия уже приняты для следующих оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Условия использования";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted for enabled operators after 30 days." = "Условия будут приняты для включенных операторов через 30 дней.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted for operator(s): **%@**." = "Условия будут приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted for the operator(s): **%@**." = "Условия будут приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be accepted on: %@." = "Условия будут приняты: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions will be automatically accepted for enabled operators on: %@." = "Условия будут автоматически приняты для включенных операторов: %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Configure ICE servers" = "Настройка ICE серверов";
|
||||
|
||||
@@ -1104,7 +1209,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Подключение к компьютеру";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "соединяется…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1128,6 +1233,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connection request sent!" = "Запрос на соединение отправлен!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection security" = "Безопасность соединения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection terminated" = "Подключение прервано";
|
||||
|
||||
@@ -1209,6 +1317,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Create" = "Создать";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Create 1-time link" = "Создать одноразовую ссылку";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Create a group using a random profile." = "Создайте группу, используя случайный профиль.";
|
||||
|
||||
@@ -1260,6 +1371,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"creator" = "создатель";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Current conditions text couldn't be loaded, you can review conditions via this link:" = "Текст условий использования не может быть показан, вы можете посмотреть их через ссылку:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Current Passcode" = "Текущий Код";
|
||||
|
||||
@@ -1397,12 +1511,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete and notify contact" = "Удалить и уведомить контакт";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat" = "Удалить разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile" = "Удалить профиль чата";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat profile?" = "Удалить профиль?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete chat?" = "Удалить разговор?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete connection" = "Удалить соединение";
|
||||
|
||||
@@ -1508,6 +1628,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Deletion errors" = "Ошибки удаления";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delivered even when Apple drops them." = "Доставляются даже тогда, когда Apple их теряет.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delivery" = "Доставка";
|
||||
|
||||
@@ -1574,6 +1697,9 @@
|
||||
/* chat feature */
|
||||
"Direct messages" = "Прямые сообщения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited in this chat." = "Прямые сообщения между членами запрещены в этом разговоре.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Direct messages between members are prohibited." = "Прямые сообщения между членами группы запрещены.";
|
||||
|
||||
@@ -1695,6 +1821,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"e2e encrypted" = "e2e зашифровано";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"E2E encrypted notifications." = "E2E зашифрованные нотификации.";
|
||||
|
||||
/* chat item action */
|
||||
"Edit" = "Редактировать";
|
||||
|
||||
@@ -1713,6 +1842,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Enable camera access" = "Включить доступ к камере";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable Flux" = "Включить Flux";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable for all" = "Включить для всех";
|
||||
|
||||
@@ -1872,12 +2004,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error aborting address change" = "Ошибка при прекращении изменения адреса";
|
||||
|
||||
/* alert title */
|
||||
"Error accepting conditions" = "Ошибка приема условий";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error accepting contact request" = "Ошибка при принятии запроса на соединение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error adding member(s)" = "Ошибка при добавлении членов группы";
|
||||
|
||||
/* alert title */
|
||||
"Error adding server" = "Ошибка добавления сервера";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error changing address" = "Ошибка при изменении адреса";
|
||||
|
||||
@@ -1962,6 +2100,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error joining group" = "Ошибка при вступлении в группу";
|
||||
|
||||
/* alert title */
|
||||
"Error loading servers" = "Ошибка загрузки серверов";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error migrating settings" = "Ошибка миграции настроек";
|
||||
|
||||
@@ -1995,6 +2136,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error saving passphrase to keychain" = "Ошибка сохранения пароля в Keychain";
|
||||
|
||||
/* alert title */
|
||||
"Error saving servers" = "Ошибка сохранения серверов";
|
||||
|
||||
/* when migrating */
|
||||
"Error saving settings" = "Ошибка сохранения настроек";
|
||||
|
||||
@@ -2037,6 +2181,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Error updating message" = "Ошибка при обновлении сообщения";
|
||||
|
||||
/* alert title */
|
||||
"Error updating server" = "Ошибка сохранения сервера";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error updating settings" = "Ошибка при сохранении настроек сети";
|
||||
|
||||
@@ -2064,6 +2211,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Errors" = "Ошибки";
|
||||
|
||||
/* servers error */
|
||||
"Errors in servers configuration." = "Ошибки в настройках серверов.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Even when disabled in the conversation." = "Даже когда они выключены в разговоре.";
|
||||
|
||||
@@ -2190,9 +2340,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Fix not supported by group member" = "Починка не поддерживается членом группы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"for better metadata privacy." = "для лучшей конфиденциальности метаданных.";
|
||||
|
||||
/* servers error */
|
||||
"For chat profile %@:" = "Для профиля чата %@:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For console" = "Для консоли";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." = "Например, если Ваш контакт получает сообщения через сервер SimpleX Chat, Ваше приложение доставит их через сервер Flux.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For private routing" = "Для доставки сообщений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For social media" = "Для социальных сетей";
|
||||
|
||||
/* chat item action */
|
||||
"Forward" = "Переслать";
|
||||
|
||||
@@ -2304,27 +2469,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Ссылки групп";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Члены группы могут добавлять реакции на сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Члены группы могут необратимо удалять отправленные сообщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Члены группы могут посылать прямые сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Члены группы могут посылать исчезающие сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Члены группы могут слать файлы и медиа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Члены группы могут отправлять ссылки SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Члены группы могут отправлять голосовые сообщения.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Групповое сообщение:";
|
||||
|
||||
@@ -2385,6 +2529,12 @@
|
||||
/* time unit */
|
||||
"hours" = "часов";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"How it affects privacy" = "Как это влияет на конфиденциальность";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"How it helps privacy" = "Как это улучшает конфиденциальность";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"How SimpleX works" = "Как SimpleX работает";
|
||||
|
||||
@@ -2589,6 +2739,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Invite members" = "Пригласить членов группы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to chat" = "Пригласить в разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite to group" = "Пригласить в группу";
|
||||
|
||||
@@ -2703,6 +2856,12 @@
|
||||
/* swipe action */
|
||||
"Leave" = "Выйти";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat" = "Покинуть разговор";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave chat?" = "Покинуть разговор?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Leave group" = "Выйти из группы";
|
||||
|
||||
@@ -2799,15 +2958,42 @@
|
||||
/* item status text */
|
||||
"Member inactive" = "Член неактивен";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All chat members will be notified." = "Роль участника будет изменена на \"%@\". Все участники разговора получат уведомление.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". All group members will be notified." = "Роль члена группы будет изменена на \"%@\". Все члены группы получат сообщение.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member role will be changed to \"%@\". The member will receive a new invitation." = "Роль члена группы будет изменена на \"%@\". Будет отправлено новое приглашение.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from chat - this cannot be undone!" = "Член будет удален из разговора - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Член группы будет удален - это действие нельзя отменить!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Члены группы могут добавлять реакции на сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Члены группы могут необратимо удалять отправленные сообщения. (24 часа)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Члены группы могут посылать прямые сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Члены группы могут посылать исчезающие сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Члены группы могут слать файлы и медиа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Члены группы могут отправлять ссылки SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Члены группы могут отправлять голосовые сообщения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Меню";
|
||||
|
||||
@@ -2961,6 +3147,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"More reliable network connection." = "Более надежное соединение с сетью.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"More reliable notifications" = "Более надежные уведомления";
|
||||
|
||||
/* item status description */
|
||||
"Most likely this connection is deleted." = "Скорее всего, соединение удалено.";
|
||||
|
||||
@@ -2985,12 +3174,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Network connection" = "Интернет-соединение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network decentralization" = "Децентрализация сети";
|
||||
|
||||
/* snd error text */
|
||||
"Network issues - message expired after many attempts to send it." = "Ошибка сети - сообщение не было отправлено после многократных попыток.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network management" = "Статус сети";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network operator" = "Оператор сети";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Network settings" = "Настройки сети";
|
||||
|
||||
@@ -3018,6 +3213,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New display name" = "Новое имя";
|
||||
|
||||
/* notification */
|
||||
"New events" = "Новые события";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Новое в %@";
|
||||
|
||||
@@ -3039,6 +3237,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New passphrase…" = "Новый пароль…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New server" = "Новый сервер";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New SOCKS credentials will be used every time you start the app." = "Новые учетные данные SOCKS будут использоваться при каждом запуске приложения.";
|
||||
|
||||
@@ -3084,6 +3285,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"No info, try to reload" = "Нет информации, попробуйте перезагрузить";
|
||||
|
||||
/* servers error */
|
||||
"No media & file servers." = "Нет серверов файлов и медиа.";
|
||||
|
||||
/* servers error */
|
||||
"No message servers." = "Нет серверов сообщений.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No network connection" = "Нет интернет-соединения";
|
||||
|
||||
@@ -3102,6 +3309,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"No received or sent files" = "Нет полученных или отправленных файлов";
|
||||
|
||||
/* servers error */
|
||||
"No servers for private message routing." = "Нет серверов для доставки сообщений.";
|
||||
|
||||
/* servers error */
|
||||
"No servers to receive files." = "Нет серверов для приема файлов.";
|
||||
|
||||
/* servers error */
|
||||
"No servers to receive messages." = "Нет серверов для приема сообщений.";
|
||||
|
||||
/* servers error */
|
||||
"No servers to send files." = "Нет серверов для отправки файлов.";
|
||||
|
||||
/* copied message info in history */
|
||||
"no text" = "нет текста";
|
||||
|
||||
@@ -3123,6 +3342,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Notifications are disabled!" = "Уведомления выключены";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Notifications privacy" = "Конфиденциальность уведомлений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Now admins can:\n- delete members' messages.\n- disable members (\"observer\" role)" = "Теперь админы могут:\n- удалять сообщения членов.\n- приостанавливать членов (роль \"наблюдатель\")";
|
||||
|
||||
@@ -3167,6 +3389,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Onion hosts will not be used." = "Onion хосты не используются.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only chat owners can change preferences." = "Только владельцы разговора могут поменять предпочтения.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages." = "Только пользовательские устройства хранят контакты, группы и сообщения.";
|
||||
|
||||
@@ -3215,12 +3440,18 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Open" = "Открыть";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open changes" = "Открыть изменения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open chat" = "Открыть чат";
|
||||
|
||||
/* authentication reason */
|
||||
"Open chat console" = "Открыть консоль";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open conditions" = "Открыть условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open group" = "Открыть группу";
|
||||
|
||||
@@ -3233,6 +3464,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Opening app…" = "Приложение отрывается…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Operator" = "Оператор";
|
||||
|
||||
/* alert title */
|
||||
"Operator server" = "Сервер оператора";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or import archive file" = "Или импортировать файл архива";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or paste archive link" = "Или вставьте ссылку архива";
|
||||
|
||||
@@ -3245,6 +3485,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Or show this code" = "Или покажите этот код";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Or to share privately" = "Или поделиться конфиденциально";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"other" = "другое";
|
||||
|
||||
@@ -3386,6 +3629,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Preset server address" = "Адрес сервера по умолчанию";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preset servers" = "Серверы по умолчанию";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preview" = "Просмотр";
|
||||
|
||||
@@ -3395,6 +3641,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy & security" = "Конфиденциальность";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy for your customers." = "Конфиденциальность для ваших покупателей.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Privacy redefined" = "Более конфиденциальный";
|
||||
|
||||
@@ -3471,7 +3720,7 @@
|
||||
"Protect your chat profiles with a password!" = "Защитите Ваши профили чата паролем!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.\nВключите в настройках *Сеть и серверы*.";
|
||||
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.\nВключите в настройках *Сети и серверов*.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Protocol timeout" = "Таймаут протокола";
|
||||
@@ -3687,6 +3936,9 @@
|
||||
/* chat item action */
|
||||
"Reply" = "Ответить";
|
||||
|
||||
/* chat list item title */
|
||||
"requested to connect" = "запрошено соединение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Required" = "Обязательно";
|
||||
|
||||
@@ -3738,6 +3990,12 @@
|
||||
/* chat item action */
|
||||
"Reveal" = "Показать";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Review conditions" = "Посмотреть условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Review later" = "Посмотреть позже";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Revoke" = "Отозвать";
|
||||
|
||||
@@ -3766,7 +4024,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Сохранить (и уведомить контакты)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Сохранить и уведомить контакт";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3787,7 +4045,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Сохранить пароль в Keychain";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Сохранить предпочтения?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -4024,6 +4282,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Server" = "Сервер";
|
||||
|
||||
/* alert message */
|
||||
"Server added to operator %@." = "Сервер добавлен к оператору %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Server address" = "Адрес сервера";
|
||||
|
||||
@@ -4033,6 +4294,15 @@
|
||||
/* srv error text. */
|
||||
"Server address is incompatible with network settings." = "Адрес сервера несовместим с настройками сети.";
|
||||
|
||||
/* alert title */
|
||||
"Server operator changed." = "Оператор серверов изменен.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Server operators" = "Операторы серверов";
|
||||
|
||||
/* alert title */
|
||||
"Server protocol changed." = "Протокол сервера изменен.";
|
||||
|
||||
/* queue info */
|
||||
"server queue info: %@\n\nlast received msg: %@" = "информация сервера об очереди: %1$@\n\nпоследнее полученное сообщение: %2$@";
|
||||
|
||||
@@ -4118,9 +4388,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share 1-time link" = "Поделиться одноразовой ссылкой";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share 1-time link with a friend" = "Поделитесь одноразовой ссылкой с другом";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share address" = "Поделиться адресом";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share address publicly" = "Поделитесь адресом";
|
||||
|
||||
/* alert title */
|
||||
"Share address with contacts?" = "Поделиться адресом с контактами?";
|
||||
|
||||
@@ -4133,6 +4409,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share profile" = "Поделиться профилем";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share SimpleX address on social media." = "Поделитесь SimpleX адресом в социальных сетях.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share this 1-time invite link" = "Поделиться одноразовой ссылкой-приглашением";
|
||||
|
||||
@@ -4178,6 +4457,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Address" = "Адрес SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address and 1-time links are safe to share via any messenger." = "Адрес SimpleX и одноразовые ссылки безопасно отправлять через любой мессенджер.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX address or 1-time link?" = "Адрес SimpleX или одноразовая ссылка?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "SimpleX Chat и Flux заключили соглашение добавить серверы под управлением Flux в приложение.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SimpleX Chat security was audited by Trail of Bits." = "Безопасность SimpleX Chat была проверена Trail of Bits.";
|
||||
|
||||
@@ -4253,6 +4541,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Some non-fatal errors occurred during import:" = "Во время импорта произошли некоторые ошибки:";
|
||||
|
||||
/* alert message */
|
||||
"Some servers failed the test:\n%@" = "Серверы не прошли тест:\n%@";
|
||||
|
||||
/* notification title */
|
||||
"Somebody" = "Контакт";
|
||||
|
||||
@@ -4355,6 +4646,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Tap button " = "Нажмите кнопку ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap Create SimpleX address in the menu to create it later." = "Нажмите Создать адрес SimpleX в меню, чтобы создать его позже.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Tap to activate profile." = "Нажмите, чтобы сделать профиль активным.";
|
||||
|
||||
@@ -4415,6 +4709,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "Приложение может посылать Вам уведомления о сообщениях и запросах на соединение - уведомления можно включить в Настройках.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The app protects your privacy by using different operators in each conversation." = "Приложение улучшает конфиденциальность используя разных операторов в каждом разговоре.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The app will ask to confirm downloads from unknown file servers (except .onion)." = "Приложение будет запрашивать подтверждение загрузки с неизвестных серверов (за исключением .onion адресов).";
|
||||
|
||||
@@ -4424,6 +4721,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The code you scanned is not a SimpleX link QR code." = "Этот QR код не является SimpleX-ccылкой.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The connection reached the limit of undelivered messages, your contact may be offline." = "Соединение достигло предела недоставленных сообщений. Возможно, Ваш контакт не в сети.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The connection you accepted will be cancelled!" = "Подтвержденное соединение будет отменено!";
|
||||
|
||||
@@ -4463,6 +4763,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The profile is only shared with your contacts." = "Профиль отправляется только Вашим контактам.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator **%@**." = "Те же самые условия будут приняты для оператора **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Те же самые условия будут приняты для оператора(ов): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "Второй оператор серверов в приложении!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second tick we missed! ✅" = "Вторая галочка - знать, что доставлено! ✅";
|
||||
|
||||
@@ -4472,6 +4781,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new connections of your current chat profile **%@**." = "Серверы для новых соединений Вашего текущего профиля чата **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The servers for new files of your current chat profile **%@**." = "Серверы для новых файлов Вашего текущего профиля **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The text you pasted is not a SimpleX link." = "Вставленный текст не является SimpleX-ссылкой.";
|
||||
|
||||
@@ -4481,6 +4793,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Themes" = "Темы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"These conditions will also apply for: **%@**." = "Эти условия также будут применены к: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"These settings are for your current profile **%@**." = "Установки для Вашего активного профиля **%@**.";
|
||||
|
||||
@@ -4544,6 +4859,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To make a new connection" = "Чтобы соединиться";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To protect against your link being replaced, you can compare contact security codes." = "Чтобы защитить Вашу ссылку от замены, Вы можете сравнить код безопасности.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To protect timezone, image/voice files use UTC." = "Чтобы защитить Ваш часовой пояс, файлы картинок и голосовых сообщений используют UTC.";
|
||||
|
||||
@@ -4556,6 +4874,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To protect your privacy, SimpleX uses separate IDs for each of your contacts." = "Чтобы защитить Вашу конфиденциальность, SimpleX использует разные идентификаторы для каждого Вашeго контакта.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To receive" = "Для получения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To record speech please grant permission to use Microphone." = "Для записи речи, пожалуйста, дайте разрешение на использование микрофона.";
|
||||
|
||||
@@ -4568,9 +4889,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." = "Чтобы показать Ваш скрытый профиль, введите его пароль в поле поиска на странице **Ваши профили чата**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To send" = "Для оправки";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To support instant push notifications the chat database has to be migrated." = "Для поддержки мгновенный доставки уведомлений данные чата должны быть перемещены.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To use the servers of **%@**, accept conditions of use." = "Чтобы использовать серверы оператора **%@**, примите условия использования.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Чтобы подтвердить end-to-end шифрование с Вашим контактом сравните (или сканируйте) код безопасности на Ваших устройствах.";
|
||||
|
||||
@@ -4628,6 +4955,9 @@
|
||||
/* rcv group event chat item */
|
||||
"unblocked %@" = "%@ разблокирован";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Undelivered messages" = "Недоставленные сообщения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Unexpected migration state" = "Неожиданная ошибка при перемещении данных чата";
|
||||
|
||||
@@ -4745,12 +5075,21 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Use .onion hosts" = "Использовать .onion хосты";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use %@" = "Использовать %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use chat" = "Использовать чат";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use current profile" = "Использовать активный профиль";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use for files" = "Использовать для файлов";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use for messages" = "Использовать для сообщений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use for new connections" = "Использовать для новых соединений";
|
||||
|
||||
@@ -4775,6 +5114,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Use server" = "Использовать сервер";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use servers" = "Использовать серверы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use SimpleX Chat servers?" = "Использовать серверы предосталенные SimpleX Chat?";
|
||||
|
||||
@@ -4859,9 +5201,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Videos and files up to 1gb" = "Видео и файлы до 1гб";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"View conditions" = "Посмотреть условия";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"View security code" = "Показать код безопасности";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"View updated conditions" = "Посмотреть измененные условия";
|
||||
|
||||
/* chat feature */
|
||||
"Visible history" = "Доступ к истории";
|
||||
|
||||
@@ -4943,6 +5291,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"when IP hidden" = "когда IP защищен";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"When more than one operator is enabled, none of them has metadata to learn who communicates with whom." = "Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Когда Вы соединены с контактом инкогнито, тот же самый инкогнито профиль будет использоваться для групп с этим контактом.";
|
||||
|
||||
@@ -5006,6 +5357,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected to %@." = "Вы уже соединены с контактом %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connected with %@." = "Вы уже соединены с %@.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You are already connecting to %@." = "Вы уже соединяетесь с %@.";
|
||||
|
||||
@@ -5051,6 +5405,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "Вы можете изменить это в настройках Интерфейса.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can configure operators in Network & servers settings." = "Вы можете настроить операторов в настройках Сети и серверов.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can configure servers via settings." = "Вы можете настроить серверы позже.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Вы можете создать его позже";
|
||||
|
||||
@@ -5075,6 +5435,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can send messages to %@ from Archived contacts." = "Вы можете отправлять сообщения %@ из Архивированных контактов.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can set connection name, to remember who the link was shared with." = "Вы можете установить имя соединения, чтобы запомнить кому Вы отправили ссылку.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can set lock screen notification preview via settings." = "Вы можете установить просмотр уведомлений на экране блокировки в настройках.";
|
||||
|
||||
@@ -5195,6 +5558,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You will still receive calls and notifications from muted profiles when they are active." = "Вы все равно получите звонки и уведомления в профилях без звука, когда они активные.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this chat. Chat history will be preserved." = "Вы прекратите получать сообщения в этом разговоре. История будет сохранена.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You will stop receiving messages from this group. Chat history will be preserved." = "Вы перестанете получать сообщения от этой группы. История чата будет сохранена.";
|
||||
|
||||
@@ -5276,6 +5642,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Your server address" = "Адрес Вашего сервера";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Your servers" = "Ваши серверы";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Your settings" = "Настройки";
|
||||
|
||||
|
||||
@@ -681,7 +681,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting server… (error: %@)" = "กำลังเชื่อมต่อกับเซิร์ฟเวอร์... (ข้อผิดพลาด: %@)";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "กำลังเชื่อมต่อ…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -1469,24 +1469,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "ลิงค์กลุ่ม";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "สมาชิกกลุ่มสามารถส่งข้อความเสียง";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "ข้อความกลุ่ม:";
|
||||
|
||||
@@ -1853,6 +1835,24 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "สมาชิกจะถูกลบออกจากกลุ่ม - ไม่สามารถยกเลิกได้!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "สมาชิกกลุ่มสามารถส่งข้อความเสียง";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "ข้อผิดพลาดในการส่งข้อความ";
|
||||
|
||||
@@ -2439,7 +2439,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "บันทึก (และแจ้งผู้ติดต่อ)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "บันทึกและแจ้งผู้ติดต่อ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2457,7 +2457,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "บันทึกข้อความรหัสผ่านใน Keychain";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "บันทึกการตั้งค่า?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
"All data is erased when it is entered." = "Kullanıldığında bütün veriler silinir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Tüm veriler cihazınıza özeldir.";
|
||||
"All data is kept private on your device." = "Tüm veriler cihazınıza özeldir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Tüm grup üyeleri bağlı kalacaktır.";
|
||||
@@ -1101,7 +1101,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Bilgisayara bağlanıyor";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "bağlanılıyor…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2301,27 +2301,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Grup bağlantıları";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Grup üyeleri mesaj tepkileri ekleyebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Grup üyeleri doğrudan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Grup üyeleri kaybolan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Grup üyeleri dosyalar ve medya gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Grup üyeleri SimpleX bağlantıları gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Grup mesajı:";
|
||||
|
||||
@@ -2805,6 +2784,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Üye gruptan çıkarılacaktır - bu geri alınamaz!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Grup üyeleri mesaj tepkileri ekleyebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Grup üyeleri doğrudan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Grup üyeleri kaybolan mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Grup üyeleri dosyalar ve medya gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Grup üyeleri SimpleX bağlantıları gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menüler";
|
||||
|
||||
@@ -3763,7 +3763,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Kaydet (ve kişilere bildir)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Kaydet ve kişilere bildir";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3784,7 +3784,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Parolayı Anahtar Zincirinde kaydet";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Tercihler kaydedilsin mi?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -464,7 +464,7 @@
|
||||
"All data is erased when it is entered." = "Всі дані стираються при введенні.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "Всі дані є приватними для вашого пристрою.";
|
||||
"All data is kept private on your device." = "Всі дані є приватними для вашого пристрою.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "Всі учасники групи залишаться на зв'язку.";
|
||||
@@ -863,6 +863,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Change" = "Зміна";
|
||||
|
||||
/* authentication reason */
|
||||
"Change chat profiles" = "Зміна профілів користувачів";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Change database passphrase?" = "Змінити пароль до бази даних?";
|
||||
|
||||
@@ -891,9 +894,6 @@
|
||||
set passcode view */
|
||||
"Change self-destruct passcode" = "Змінити пароль самознищення";
|
||||
|
||||
/* authentication reason */
|
||||
"Change user profiles" = "Зміна профілів користувачів";
|
||||
|
||||
/* chat item text */
|
||||
"changed address for you" = "змінили для вас адресу";
|
||||
|
||||
@@ -1030,7 +1030,7 @@
|
||||
"Conditions are accepted for the operator(s): **%@**." = "Для оператора(ів) приймаються умови: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions are already accepted for following operator(s): **%@**." = "Умови вже прийняті для наступних операторів: **%@**.";
|
||||
"Conditions are already accepted for these operator(s): **%@**." = "Умови вже прийняті для наступних операторів: **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conditions of use" = "Умови використання";
|
||||
@@ -1173,7 +1173,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Підключення до ПК";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "з'єднання…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2424,27 +2424,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "Групові посилання";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Учасники групи можуть додавати реакції на повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Учасники групи можуть безповоротно видаляти надіслані повідомлення. (24 години)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Учасники групи можуть надсилати прямі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Учасники групи можуть надсилати зникаючі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Учасники групи можуть надсилати файли та медіа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Учасники групи можуть надсилати посилання SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Учасники групи можуть надсилати голосові повідомлення.";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "Групове повідомлення:";
|
||||
|
||||
@@ -2934,6 +2913,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "Учасник буде видалений з групи - це неможливо скасувати!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "Учасники групи можуть додавати реакції на повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "Учасники групи можуть безповоротно видаляти надіслані повідомлення. (24 години)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "Учасники групи можуть надсилати прямі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "Учасники групи можуть надсилати зникаючі повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "Учасники групи можуть надсилати файли та медіа.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "Учасники групи можуть надсилати посилання SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "Учасники групи можуть надсилати голосові повідомлення.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Меню";
|
||||
|
||||
@@ -3669,10 +3669,7 @@
|
||||
"Proxy requires password" = "Проксі вимагає пароль";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push notifications" = "Push-повідомлення";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push Notifications" = "Push-сповіщення";
|
||||
"Push notifications" = "Push-сповіщення";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Push server" = "Push-сервер";
|
||||
@@ -3948,12 +3945,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Safer groups" = "Безпечніші групи";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator **%@**." = "Такі ж умови діятимуть і для оператора **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Same conditions will apply to operator(s): **%@**." = "Такі ж умови будуть застосовуватися до оператора(ів): **%@**.";
|
||||
|
||||
/* alert button
|
||||
chat item action */
|
||||
"Save" = "Зберегти";
|
||||
@@ -3961,7 +3952,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "Зберегти (і повідомити контактам)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "Зберегти та повідомити контакт";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3982,7 +3973,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "Збережіть парольну фразу в Keychain";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "Зберегти настройки?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -4694,6 +4685,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"The profile is only shared with your contacts." = "Профіль доступний лише вашим контактам.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator **%@**." = "Такі ж умови діятимуть і для оператора **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The same conditions will apply to operator(s): **%@**." = "Такі ж умови будуть застосовуватися до оператора(ів): **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The second preset operator in the app!" = "Другий попередньо встановлений оператор у застосунку!";
|
||||
|
||||
|
||||
@@ -413,7 +413,7 @@
|
||||
"All data is erased when it is entered." = "所有数据在输入后将被删除。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All data is private to your device." = "所有数据都是您设备的私有数据.";
|
||||
"All data is kept private on your device." = "所有数据都是您设备的私有数据.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"All group members will remain connected." = "所有群组成员将保持连接。";
|
||||
@@ -1059,7 +1059,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "正连接到桌面";
|
||||
|
||||
/* chat list item title */
|
||||
/* No comment provided by engineer. */
|
||||
"connecting…" = "连接中……";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -2214,27 +2214,6 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Group links" = "群组链接";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "群组成员可以添加信息回应。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "群组成员可以不可撤回地删除已发送的消息";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "群组成员可以私信。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "群组成员可以发送限时消息。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "群组成员可以发送文件和媒体。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "群成员可发送 SimpleX 链接。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "群组成员可以发送语音消息。";
|
||||
|
||||
/* notification */
|
||||
"Group message:" = "群组消息:";
|
||||
|
||||
@@ -2712,6 +2691,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Member will be removed from group - this cannot be undone!" = "成员将被移出群组——此操作无法撤消!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can add message reactions." = "群组成员可以添加信息回应。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can irreversibly delete sent messages. (24 hours)" = "群组成员可以不可撤回地删除已发送的消息";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send direct messages." = "群组成员可以私信。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send disappearing messages." = "群组成员可以发送限时消息。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send files and media." = "群组成员可以发送文件和媒体。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send SimpleX links." = "群成员可发送 SimpleX 链接。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Members can send voice messages." = "群组成员可以发送语音消息。";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "菜单";
|
||||
|
||||
@@ -3634,7 +3634,7 @@
|
||||
/* alert button */
|
||||
"Save (and notify contacts)" = "保存(并通知联系人)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert button */
|
||||
"Save and notify contact" = "保存并通知联系人";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
@@ -3655,7 +3655,7 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Save passphrase in Keychain" = "在钥匙串中保存密码";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
/* alert title */
|
||||
"Save preferences?" = "保存偏好设置?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
|
||||
@@ -115,7 +115,6 @@
|
||||
android:launchMode="singleInstance"
|
||||
android:supportsPictureInPicture="true"
|
||||
android:autoRemoveFromRecents="true"
|
||||
android:screenOrientation="portrait"
|
||||
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"/>
|
||||
|
||||
<provider
|
||||
|
||||
@@ -360,6 +360,8 @@ class SimplexApp: Application(), LifecycleEventObserver {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun androidCreateActiveCallState(): Closeable = ActiveCallState()
|
||||
|
||||
override val androidApiLevel: Int get() = Build.VERSION.SDK_INT
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -29,6 +29,7 @@ actual fun LazyColumnWithScrollBar(
|
||||
flingBehavior: FlingBehavior,
|
||||
userScrollEnabled: Boolean,
|
||||
additionalBarOffset: State<Dp>?,
|
||||
chatBottomBar: State<Boolean>,
|
||||
fillMaxSize: Boolean,
|
||||
content: LazyListScope.() -> Unit
|
||||
) {
|
||||
@@ -91,6 +92,7 @@ actual fun LazyColumnWithScrollBarNoAppBar(
|
||||
flingBehavior: FlingBehavior,
|
||||
userScrollEnabled: Boolean,
|
||||
additionalBarOffset: State<Dp>?,
|
||||
chatBottomBar: State<Boolean>,
|
||||
content: LazyListScope.() -> Unit
|
||||
) {
|
||||
val state = state ?: rememberLazyListState()
|
||||
|
||||
+6
-2
@@ -71,8 +71,12 @@ class PostSCallAudioDeviceManager: CallAudioDeviceManagerInterface {
|
||||
}
|
||||
|
||||
override fun stop() {
|
||||
am.unregisterAudioDeviceCallback(audioCallback)
|
||||
am.removeOnCommunicationDeviceChangedListener(listener)
|
||||
try {
|
||||
am.unregisterAudioDeviceCallback(audioCallback)
|
||||
am.removeOnCommunicationDeviceChangedListener(listener)
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, e.stackTraceToString())
|
||||
}
|
||||
}
|
||||
|
||||
override fun selectLastExternalDeviceOrDefault(speaker: Boolean, keepAnyExternal: Boolean) {
|
||||
|
||||
+62
-51
@@ -6,12 +6,12 @@ import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.*
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.media.*
|
||||
import android.os.Build
|
||||
import android.os.PowerManager
|
||||
import android.os.PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK
|
||||
import android.os.PowerManager.WakeLock
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.webkit.*
|
||||
@@ -23,7 +23,6 @@ import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.snapshots.SnapshotStateList
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
@@ -47,7 +46,6 @@ import chat.simplex.common.model.ChatController.appPrefs
|
||||
import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.ui.theme.*
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.common.views.onboarding.OnboardingStage
|
||||
import chat.simplex.res.MR
|
||||
import com.google.accompanist.permissions.*
|
||||
import dev.icerock.moko.resources.StringResource
|
||||
@@ -58,6 +56,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.filterNotNull
|
||||
import kotlinx.datetime.Clock
|
||||
import kotlinx.serialization.encodeToString
|
||||
import java.io.Closeable
|
||||
|
||||
// Should be destroy()'ed and set as null when call is ended. Otherwise, it will be a leak
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
@@ -72,49 +71,62 @@ fun activeCallDestroyWebView() = withApi {
|
||||
Log.d(TAG, "CallView: webview was destroyed")
|
||||
}
|
||||
|
||||
@SuppressLint("SourceLockedOrientationActivity")
|
||||
@Composable
|
||||
actual fun ActiveCallView() {
|
||||
val call = remember { chatModel.activeCall }.value
|
||||
val scope = rememberCoroutineScope()
|
||||
val proximityLock = remember {
|
||||
class ActiveCallState: Closeable {
|
||||
val proximityLock: WakeLock? = screenOffWakeLock()
|
||||
var wasConnected = false
|
||||
val callAudioDeviceManager = CallAudioDeviceManagerInterface.new()
|
||||
private var closed = false
|
||||
|
||||
init {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
callAudioDeviceManager.start()
|
||||
}
|
||||
}
|
||||
|
||||
override fun close() {
|
||||
if (closed) return
|
||||
closed = true
|
||||
CallSoundsPlayer.stop()
|
||||
if (wasConnected) {
|
||||
CallSoundsPlayer.vibrate()
|
||||
}
|
||||
callAudioDeviceManager.stop()
|
||||
dropAudioManagerOverrides()
|
||||
if (proximityLock?.isHeld == true) {
|
||||
proximityLock.release()
|
||||
}
|
||||
}
|
||||
|
||||
private fun screenOffWakeLock(): WakeLock? {
|
||||
val pm = (androidAppContext.getSystemService(Context.POWER_SERVICE) as PowerManager)
|
||||
if (pm.isWakeLockLevelSupported(PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
|
||||
return if (pm.isWakeLockLevelSupported(PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
|
||||
pm.newWakeLock(PROXIMITY_SCREEN_OFF_WAKE_LOCK, androidAppContext.packageName + ":proximityLock")
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
val wasConnected = rememberSaveable { mutableStateOf(false) }
|
||||
}
|
||||
|
||||
|
||||
@SuppressLint("SourceLockedOrientationActivity")
|
||||
@Composable
|
||||
actual fun ActiveCallView() {
|
||||
val call = remember { chatModel.activeCall }.value
|
||||
val callState = call?.androidCallState as ActiveCallState?
|
||||
val scope = rememberCoroutineScope()
|
||||
LaunchedEffect(call) {
|
||||
if (call?.callState == CallState.Connected && !wasConnected.value) {
|
||||
if (call?.callState == CallState.Connected && callState != null && !callState.wasConnected) {
|
||||
CallSoundsPlayer.vibrate(2)
|
||||
wasConnected.value = true
|
||||
callState.wasConnected = true
|
||||
}
|
||||
}
|
||||
val callAudioDeviceManager = remember { CallAudioDeviceManagerInterface.new() }
|
||||
DisposableEffect(Unit) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
callAudioDeviceManager.start()
|
||||
}
|
||||
onDispose {
|
||||
CallSoundsPlayer.stop()
|
||||
if (wasConnected.value) {
|
||||
CallSoundsPlayer.vibrate()
|
||||
}
|
||||
callAudioDeviceManager.stop()
|
||||
dropAudioManagerOverrides()
|
||||
if (proximityLock?.isHeld == true) {
|
||||
proximityLock.release()
|
||||
}
|
||||
}
|
||||
}
|
||||
LaunchedEffect(chatModel.activeCallViewIsCollapsed.value) {
|
||||
LaunchedEffect(callState, chatModel.activeCallViewIsCollapsed.value) {
|
||||
callState ?: return@LaunchedEffect
|
||||
if (chatModel.activeCallViewIsCollapsed.value) {
|
||||
if (proximityLock?.isHeld == true) proximityLock.release()
|
||||
if (callState.proximityLock?.isHeld == true) callState.proximityLock.release()
|
||||
} else {
|
||||
delay(1000)
|
||||
if (proximityLock?.isHeld == false) proximityLock.acquire()
|
||||
if (callState.proximityLock?.isHeld == false) callState.proximityLock.acquire()
|
||||
}
|
||||
}
|
||||
Box(Modifier.fillMaxSize()) {
|
||||
@@ -122,6 +134,7 @@ actual fun ActiveCallView() {
|
||||
Log.d(TAG, "received from WebRTCView: $apiMsg")
|
||||
val call = chatModel.activeCall.value
|
||||
if (call != null) {
|
||||
val callState = call.androidCallState as ActiveCallState
|
||||
Log.d(TAG, "has active call $call")
|
||||
val callRh = call.remoteHostId
|
||||
when (val r = apiMsg.resp) {
|
||||
@@ -131,9 +144,9 @@ actual fun ActiveCallView() {
|
||||
updateActiveCall(call) { it.copy(callState = CallState.InvitationSent, localCapabilities = r.capabilities) }
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
|
||||
// Starting is delayed to make Android <= 11 working good with Bluetooth
|
||||
callAudioDeviceManager.start()
|
||||
callState.callAudioDeviceManager.start()
|
||||
} else {
|
||||
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
|
||||
callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
|
||||
}
|
||||
CallSoundsPlayer.startConnectingCallSound(scope)
|
||||
activeCallWaitDeliveryReceipt(scope)
|
||||
@@ -143,9 +156,9 @@ actual fun ActiveCallView() {
|
||||
updateActiveCall(call) { it.copy(callState = CallState.OfferSent, localCapabilities = r.capabilities) }
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
|
||||
// Starting is delayed to make Android <= 11 working good with Bluetooth
|
||||
callAudioDeviceManager.start()
|
||||
callState.callAudioDeviceManager.start()
|
||||
} else {
|
||||
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
|
||||
callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
|
||||
}
|
||||
}
|
||||
is WCallResponse.Answer -> withBGApi {
|
||||
@@ -228,14 +241,14 @@ actual fun ActiveCallView() {
|
||||
!chatModel.activeCallViewIsCollapsed.value -> true
|
||||
else -> false
|
||||
}
|
||||
if (call != null && showOverlay) {
|
||||
ActiveCallOverlay(call, chatModel, callAudioDeviceManager)
|
||||
if (call != null && showOverlay && callState != null) {
|
||||
ActiveCallOverlay(call, chatModel, callState.callAudioDeviceManager)
|
||||
}
|
||||
}
|
||||
KeyChangeEffect(call?.localMediaSources?.hasVideo) {
|
||||
if (call != null && call.hasVideo && callAudioDeviceManager.currentDevice.value?.type == AudioDeviceInfo.TYPE_BUILTIN_EARPIECE) {
|
||||
KeyChangeEffect(callState, call?.localMediaSources?.hasVideo) {
|
||||
if (call != null && call.hasVideo && callState != null && callState.callAudioDeviceManager.currentDevice.value?.type == AudioDeviceInfo.TYPE_BUILTIN_EARPIECE) {
|
||||
// enabling speaker on user action (peer action ignored) and not disabling it again
|
||||
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
|
||||
callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
|
||||
}
|
||||
}
|
||||
val context = LocalContext.current
|
||||
@@ -243,16 +256,12 @@ actual fun ActiveCallView() {
|
||||
val activity = context as? Activity ?: return@DisposableEffect onDispose {}
|
||||
val prevVolumeControlStream = activity.volumeControlStream
|
||||
activity.volumeControlStream = AudioManager.STREAM_VOICE_CALL
|
||||
// Lock orientation to portrait in order to have good experience with calls
|
||||
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||
chatModel.activeCallViewIsVisible.value = true
|
||||
// After the first call, End command gets added to the list which prevents making another calls
|
||||
chatModel.callCommand.removeAll { it is WCallCommand.End }
|
||||
keepScreenOn(true)
|
||||
onDispose {
|
||||
activity.volumeControlStream = prevVolumeControlStream
|
||||
// Unlock orientation
|
||||
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
||||
chatModel.activeCallViewIsVisible.value = false
|
||||
chatModel.callCommand.clear()
|
||||
keepScreenOn(false)
|
||||
@@ -264,8 +273,8 @@ actual fun ActiveCallView() {
|
||||
private fun ActiveCallOverlay(call: Call, chatModel: ChatModel, callAudioDeviceManager: CallAudioDeviceManagerInterface) {
|
||||
ActiveCallOverlayLayout(
|
||||
call = call,
|
||||
devices = remember { callAudioDeviceManager.devices }.value,
|
||||
currentDevice = remember { callAudioDeviceManager.currentDevice },
|
||||
devices = remember(callAudioDeviceManager) { callAudioDeviceManager.devices }.value,
|
||||
currentDevice = remember(callAudioDeviceManager) { callAudioDeviceManager.currentDevice },
|
||||
dismiss = { withBGApi { chatModel.callManager.endCall(call) } },
|
||||
toggleAudio = { chatModel.callCommand.add(WCallCommand.Media(CallMediaSource.Mic, enable = !call.localMediaSources.mic)) },
|
||||
selectDevice = { callAudioDeviceManager.selectDevice(it.id) },
|
||||
@@ -832,7 +841,8 @@ fun PreviewActiveCallOverlayVideo() {
|
||||
connectionInfo = ConnectionInfo(
|
||||
RTCIceCandidate(RTCIceCandidateType.Host, "tcp"),
|
||||
RTCIceCandidate(RTCIceCandidateType.Host, "tcp")
|
||||
)
|
||||
),
|
||||
androidCallState = {}
|
||||
),
|
||||
devices = emptyList(),
|
||||
currentDevice = remember { mutableStateOf(null) },
|
||||
@@ -841,7 +851,7 @@ fun PreviewActiveCallOverlayVideo() {
|
||||
selectDevice = {},
|
||||
toggleVideo = {},
|
||||
toggleSound = {},
|
||||
flipCamera = {}
|
||||
flipCamera = {},
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -862,7 +872,8 @@ fun PreviewActiveCallOverlayAudio() {
|
||||
connectionInfo = ConnectionInfo(
|
||||
RTCIceCandidate(RTCIceCandidateType.Host, "udp"),
|
||||
RTCIceCandidate(RTCIceCandidateType.Host, "udp")
|
||||
)
|
||||
),
|
||||
androidCallState = {}
|
||||
),
|
||||
devices = emptyList(),
|
||||
currentDevice = remember { mutableStateOf(null) },
|
||||
|
||||
+24
-18
@@ -33,6 +33,7 @@ import com.google.accompanist.permissions.rememberPermissionState
|
||||
import com.google.common.util.concurrent.ListenableFuture
|
||||
import dev.icerock.moko.resources.compose.painterResource
|
||||
import dev.icerock.moko.resources.compose.stringResource
|
||||
import kotlinx.coroutines.delay
|
||||
import java.util.concurrent.*
|
||||
|
||||
// Adapted from learntodroid - https://gist.github.com/learntodroid/8f839be0b29d0378f843af70607bd7f5
|
||||
@@ -41,13 +42,13 @@ import java.util.concurrent.*
|
||||
actual fun QRCodeScanner(
|
||||
showQRCodeScanner: MutableState<Boolean>,
|
||||
padding: PaddingValues,
|
||||
onBarcode: (String) -> Unit
|
||||
onBarcode: suspend (String) -> Boolean
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
val lifecycleOwner = LocalLifecycleOwner.current
|
||||
var preview by remember { mutableStateOf<Preview?>(null) }
|
||||
var lastAnalyzedTimeStamp = 0L
|
||||
var contactLink = ""
|
||||
val preview = remember { mutableStateOf<Preview?>(null) }
|
||||
val contactLink = remember { mutableStateOf("") }
|
||||
val checkingLink = remember { mutableStateOf(false) }
|
||||
|
||||
val cameraProviderFuture by produceState<ListenableFuture<ProcessCameraProvider>?>(initialValue = null) {
|
||||
value = ProcessCameraProvider.getInstance(context)
|
||||
@@ -86,28 +87,33 @@ actual fun QRCodeScanner(
|
||||
.build()
|
||||
val cameraExecutor: ExecutorService = Executors.newSingleThreadExecutor()
|
||||
cameraProviderFuture?.addListener({
|
||||
preview = Preview.Builder().build().also {
|
||||
preview.value = Preview.Builder().build().also {
|
||||
it.setSurfaceProvider(previewView.surfaceProvider)
|
||||
}
|
||||
val detector: QrCodeDetector<GrayU8> = FactoryFiducial.qrcode(null, GrayU8::class.java)
|
||||
fun getQR(imageProxy: ImageProxy) {
|
||||
val currentTimeStamp = System.currentTimeMillis()
|
||||
if (currentTimeStamp - lastAnalyzedTimeStamp >= TimeUnit.SECONDS.toMillis(1)) {
|
||||
detector.process(imageProxyToGrayU8(imageProxy))
|
||||
val found = detector.detections
|
||||
val qr = found.firstOrNull()
|
||||
if (qr != null) {
|
||||
if (qr.message != contactLink) {
|
||||
// Make sure link is new and not a repeat
|
||||
contactLink = qr.message
|
||||
onBarcode(contactLink)
|
||||
suspend fun getQR(imageProxy: ImageProxy) {
|
||||
if (checkingLink.value) return
|
||||
checkingLink.value = true
|
||||
|
||||
detector.process(imageProxyToGrayU8(imageProxy))
|
||||
val found = detector.detections
|
||||
val qr = found.firstOrNull()
|
||||
if (qr != null) {
|
||||
if (qr.message != contactLink.value) {
|
||||
// Make sure link is new and not a repeat if that link was handled successfully
|
||||
if (onBarcode(qr.message)) {
|
||||
contactLink.value = qr.message
|
||||
}
|
||||
// just some delay to not spam endlessly with alert in case the user scan something wrong, and it fails fast
|
||||
// (for example, scan user's address while verifying contact code - it prevents alert spam)
|
||||
delay(1000)
|
||||
}
|
||||
}
|
||||
checkingLink.value = false
|
||||
imageProxy.close()
|
||||
}
|
||||
|
||||
val imageAnalyzer = ImageAnalysis.Analyzer { proxy -> getQR(proxy) }
|
||||
val imageAnalyzer = ImageAnalysis.Analyzer { proxy -> withApi { getQR(proxy) } }
|
||||
val imageAnalysis: ImageAnalysis = ImageAnalysis.Builder()
|
||||
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
|
||||
.setImageQueueDepth(1)
|
||||
@@ -115,7 +121,7 @@ actual fun QRCodeScanner(
|
||||
.also { it.setAnalyzer(cameraExecutor, imageAnalyzer) }
|
||||
try {
|
||||
cameraProviderFuture?.get()?.unbindAll()
|
||||
cameraProviderFuture?.get()?.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis)
|
||||
cameraProviderFuture?.get()?.bindToLifecycle(lifecycleOwner, cameraSelector, preview.value, imageAnalysis)
|
||||
} catch (e: Exception) {
|
||||
Log.d(TAG, "CameraPreview: ${e.localizedMessage}")
|
||||
}
|
||||
|
||||
+6
-1
@@ -106,7 +106,12 @@ fun AppearanceScope.AppearanceLayout(
|
||||
}
|
||||
// }
|
||||
|
||||
SettingsPreferenceItem(icon = null, stringResource(MR.strings.one_hand_ui), ChatModel.controller.appPrefs.oneHandUI)
|
||||
SettingsPreferenceItem(icon = null, stringResource(MR.strings.one_hand_ui), ChatModel.controller.appPrefs.oneHandUI) { enabled ->
|
||||
if (enabled) appPrefs.chatBottomBar.set(true)
|
||||
}
|
||||
if (remember { appPrefs.oneHandUI.state }.value) {
|
||||
SettingsPreferenceItem(icon = null, stringResource(MR.strings.chat_bottom_bar), ChatModel.controller.appPrefs.chatBottomBar)
|
||||
}
|
||||
}
|
||||
|
||||
SectionDividerSpaced()
|
||||
|
||||
+6
-4
@@ -1546,8 +1546,9 @@ data class GroupProfile (
|
||||
|
||||
@Serializable
|
||||
data class BusinessChatInfo (
|
||||
val memberId: String,
|
||||
val chatType: BusinessChatType
|
||||
val chatType: BusinessChatType,
|
||||
val businessId: String,
|
||||
val customerId: String,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@@ -1894,8 +1895,9 @@ class PendingContactConnection(
|
||||
generalGetString(MR.strings.display_name_connection_established)
|
||||
} else {
|
||||
generalGetString(
|
||||
if (initiated && !viaContactUri) MR.strings.display_name_invited_to_connect
|
||||
else MR.strings.display_name_connecting
|
||||
if (viaContactUri) MR.strings.display_name_requested_to_connect
|
||||
else if (initiated) MR.strings.display_name_invited_to_connect
|
||||
else MR.strings.display_name_accepted_invitation
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+36
-57
@@ -23,6 +23,7 @@ import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.ui.theme.*
|
||||
import chat.simplex.common.views.call.*
|
||||
import chat.simplex.common.views.chat.item.showQuotedItemDoesNotExistAlert
|
||||
import chat.simplex.common.views.chatlist.openGroupChat
|
||||
import chat.simplex.common.views.migration.MigrationFileLinkData
|
||||
import chat.simplex.common.views.onboarding.OnboardingStage
|
||||
import chat.simplex.common.views.usersettings.*
|
||||
@@ -257,6 +258,7 @@ class AppPreferences {
|
||||
val iosCallKitCallsInRecents = mkBoolPreference(SHARED_PREFS_IOS_CALL_KIT_CALLS_IN_RECENTS, false)
|
||||
|
||||
val oneHandUI = mkBoolPreference(SHARED_PREFS_ONE_HAND_UI, true)
|
||||
val chatBottomBar = mkBoolPreference(SHARED_PREFS_CHAT_BOTTOM_BAR, true)
|
||||
|
||||
val hintPreferences: List<Pair<SharedPreference<Boolean>, Boolean>> = listOf(
|
||||
laNoticeShown to false,
|
||||
@@ -431,6 +433,7 @@ class AppPreferences {
|
||||
private const val SHARED_PREFS_SHOULD_IMPORT_APP_SETTINGS = "ShouldImportAppSettings"
|
||||
private const val SHARED_PREFS_CONFIRM_DB_UPGRADES = "ConfirmDBUpgrades"
|
||||
private const val SHARED_PREFS_ONE_HAND_UI = "OneHandUI"
|
||||
private const val SHARED_PREFS_CHAT_BOTTOM_BAR = "ChatBottomBar"
|
||||
private const val SHARED_PREFS_SELF_DESTRUCT = "LocalAuthenticationSelfDestruct"
|
||||
private const val SHARED_PREFS_SELF_DESTRUCT_DISPLAY_NAME = "LocalAuthenticationSelfDestructDisplayName"
|
||||
private const val SHARED_PREFS_PQ_EXPERIMENTAL_ENABLED = "PQExperimentalEnabled" // no longer used
|
||||
@@ -438,7 +441,6 @@ class AppPreferences {
|
||||
private const val SHARED_PREFS_CURRENT_THEME_IDs = "CurrentThemeIds"
|
||||
private const val SHARED_PREFS_SYSTEM_DARK_THEME = "SystemDarkTheme"
|
||||
private const val SHARED_PREFS_THEMES_OLD = "Themes"
|
||||
private const val SHARED_PREFS_THEME_OVERRIDES = "ThemeOverrides"
|
||||
private const val SHARED_PREFS_PROFILE_IMAGE_CORNER_RADIUS = "ProfileImageCornerRadius"
|
||||
private const val SHARED_PREFS_CHAT_ITEM_ROUNDNESS = "ChatItemRoundness"
|
||||
private const val SHARED_PREFS_CHAT_ITEM_TAIL = "ChatItemTail"
|
||||
@@ -2434,9 +2436,7 @@ object ChatController {
|
||||
) {
|
||||
receiveFile(rhId, r.user, file.fileId, auto = true)
|
||||
}
|
||||
if (cItem.showNotification && (allowedToShowNotification() || chatModel.chatId.value != cInfo.id || chatModel.remoteHostId() != rhId)) {
|
||||
ntfManager.notifyMessageReceived(r.user, cInfo, cItem)
|
||||
}
|
||||
ntfManager.notifyMessageReceived(rhId, r.user, cInfo, cItem)
|
||||
}
|
||||
}
|
||||
is CR.ChatItemsStatusesUpdated ->
|
||||
@@ -2450,7 +2450,7 @@ object ChatController {
|
||||
}
|
||||
}
|
||||
is CR.ChatItemUpdated ->
|
||||
chatItemSimpleUpdate(rhId, r.user, r.chatItem)
|
||||
chatItemUpdateNotify(rhId, r.user, r.chatItem)
|
||||
is CR.ChatItemReaction -> {
|
||||
if (active(r.user)) {
|
||||
withChats {
|
||||
@@ -2531,6 +2531,11 @@ object ChatController {
|
||||
|
||||
withChats {
|
||||
updateGroup(rhId, r.groupInfo)
|
||||
}
|
||||
if (chatModel.chatId.value == r.fromContact.id) {
|
||||
openGroupChat(rhId, r.groupInfo.groupId)
|
||||
}
|
||||
withChats {
|
||||
removeChat(rhId, r.fromContact.id)
|
||||
}
|
||||
}
|
||||
@@ -2943,9 +2948,17 @@ object ChatController {
|
||||
}
|
||||
|
||||
private suspend fun chatItemSimpleUpdate(rh: Long?, user: UserLike, aChatItem: AChatItem) {
|
||||
if (activeUser(rh, user)) {
|
||||
val cInfo = aChatItem.chatInfo
|
||||
val cItem = aChatItem.chatItem
|
||||
withChats { upsertChatItem(rh, cInfo, cItem) }
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun chatItemUpdateNotify(rh: Long?, user: UserLike, aChatItem: AChatItem) {
|
||||
val cInfo = aChatItem.chatInfo
|
||||
val cItem = aChatItem.chatItem
|
||||
val notify = { ntfManager.notifyMessageReceived(user, cInfo, cItem) }
|
||||
val notify = { ntfManager.notifyMessageReceived(rh, user, cInfo, cItem) }
|
||||
if (!activeUser(rh, user)) {
|
||||
notify()
|
||||
} else if (withChats { upsertChatItem(rh, cInfo, cItem) }) {
|
||||
@@ -3656,14 +3669,13 @@ enum class ServerProtocol {
|
||||
@Serializable
|
||||
enum class OperatorTag {
|
||||
@SerialName("simplex") SimpleX,
|
||||
@SerialName("flux") Flux,
|
||||
@SerialName("xyz") XYZ,
|
||||
@SerialName("demo") Demo
|
||||
@SerialName("flux") Flux
|
||||
}
|
||||
|
||||
data class ServerOperatorInfo(
|
||||
val description: List<String>,
|
||||
val website: String,
|
||||
val selfhost: Pair<String, String>? = null,
|
||||
val logo: ImageResource,
|
||||
val largeLogo: ImageResource,
|
||||
val logoDarkMode: ImageResource,
|
||||
@@ -3683,31 +3695,17 @@ val operatorsInfo: Map<OperatorTag, ServerOperatorInfo> = mapOf(
|
||||
),
|
||||
OperatorTag.Flux to ServerOperatorInfo(
|
||||
description = listOf(
|
||||
"Flux is the largest decentralized cloud infrastructure, leveraging a global network of user-operated computational nodes.",
|
||||
"Flux offers a powerful, scalable, and affordable platform designed to support individuals, businesses, and cutting-edge technologies like AI. With high uptime and worldwide distribution, Flux ensures reliable, accessible cloud computing for all."
|
||||
"Flux is the largest decentralized cloud, based on a global network of user-operated nodes.",
|
||||
"Flux offers a powerful, scalable, and affordable cutting edge technology platform for all.",
|
||||
"Flux operates servers in SimpleX network to improve its privacy and decentralization."
|
||||
),
|
||||
website = "https://runonflux.com",
|
||||
selfhost = "Self-host SimpleX servers on Flux" to "https://home.runonflux.io/apps/marketplace?q=simplex",
|
||||
logo = MR.images.flux_logo_symbol,
|
||||
largeLogo = MR.images.flux_logo,
|
||||
logoDarkMode = MR.images.flux_logo_symbol,
|
||||
largeLogoDarkMode = MR.images.flux_logo_light
|
||||
),
|
||||
OperatorTag.XYZ to ServerOperatorInfo(
|
||||
description = listOf("XYZ servers"),
|
||||
website = "XYZ website",
|
||||
logo = MR.images.shield,
|
||||
largeLogo = MR.images.logo,
|
||||
logoDarkMode = MR.images.shield,
|
||||
largeLogoDarkMode = MR.images.logo_light
|
||||
),
|
||||
OperatorTag.Demo to ServerOperatorInfo(
|
||||
description = listOf("Demo operator"),
|
||||
website = "Demo website",
|
||||
logo = MR.images.decentralized,
|
||||
largeLogo = MR.images.logo,
|
||||
logoDarkMode = MR.images.decentralized_light,
|
||||
largeLogoDarkMode = MR.images.logo_light
|
||||
)
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@@ -3787,7 +3785,7 @@ data class ServerOperator(
|
||||
companion object {
|
||||
val dummyOperatorInfo = ServerOperatorInfo(
|
||||
description = listOf("Default"),
|
||||
website = "Default",
|
||||
website = "https://simplex.chat",
|
||||
logo = MR.images.decentralized,
|
||||
largeLogo = MR.images.logo,
|
||||
logoDarkMode = MR.images.decentralized_light,
|
||||
@@ -3805,30 +3803,6 @@ data class ServerOperator(
|
||||
smpRoles = ServerRoles(storage = true, proxy = true),
|
||||
xftpRoles = ServerRoles(storage = true, proxy = true)
|
||||
)
|
||||
|
||||
val sampleData2 = ServerOperator(
|
||||
operatorId = 2,
|
||||
operatorTag = OperatorTag.XYZ,
|
||||
tradeName = "XYZ",
|
||||
legalName = null,
|
||||
serverDomains = listOf("xyz.com"),
|
||||
conditionsAcceptance = ConditionsAcceptance.Required(deadline = null),
|
||||
enabled = false,
|
||||
smpRoles = ServerRoles(storage = false, proxy = true),
|
||||
xftpRoles = ServerRoles(storage = false, proxy = true)
|
||||
)
|
||||
|
||||
val sampleData3 = ServerOperator(
|
||||
operatorId = 3,
|
||||
operatorTag = OperatorTag.Demo,
|
||||
tradeName = "Demo",
|
||||
legalName = null,
|
||||
serverDomains = listOf("demo.com"),
|
||||
conditionsAcceptance = ConditionsAcceptance.Required(deadline = null),
|
||||
enabled = false,
|
||||
smpRoles = ServerRoles(storage = true, proxy = false),
|
||||
xftpRoles = ServerRoles(storage = true, proxy = false)
|
||||
)
|
||||
}
|
||||
|
||||
val id: Long
|
||||
@@ -6491,7 +6465,7 @@ sealed class SQLiteError {
|
||||
@Serializable
|
||||
sealed class AgentErrorType {
|
||||
val string: String get() = when (this) {
|
||||
is CMD -> "CMD ${cmdErr.string}"
|
||||
is CMD -> "CMD ${cmdErr.string} $errContext"
|
||||
is CONN -> "CONN ${connErr.string}"
|
||||
is SMP -> "SMP ${smpErr.string}"
|
||||
// is NTF -> "NTF ${ntfErr.string}"
|
||||
@@ -6504,7 +6478,7 @@ sealed class AgentErrorType {
|
||||
is CRITICAL -> "CRITICAL $offerRestart $criticalErr"
|
||||
is INACTIVE -> "INACTIVE"
|
||||
}
|
||||
@Serializable @SerialName("CMD") class CMD(val cmdErr: CommandErrorType): AgentErrorType()
|
||||
@Serializable @SerialName("CMD") class CMD(val cmdErr: CommandErrorType, val errContext: String): AgentErrorType()
|
||||
@Serializable @SerialName("CONN") class CONN(val connErr: ConnectionErrorType): AgentErrorType()
|
||||
@Serializable @SerialName("SMP") class SMP(val serverAddress: String, val smpErr: SMPErrorType): AgentErrorType()
|
||||
// @Serializable @SerialName("NTF") class NTF(val ntfErr: SMPErrorType): AgentErrorType()
|
||||
@@ -6882,7 +6856,8 @@ data class AppSettings(
|
||||
var uiDarkColorScheme: String? = null,
|
||||
var uiCurrentThemeIds: Map<String, String>? = null,
|
||||
var uiThemes: List<ThemeOverrides>? = null,
|
||||
var oneHandUI: Boolean? = null
|
||||
var oneHandUI: Boolean? = null,
|
||||
var chatBottomBar: Boolean? = null
|
||||
) {
|
||||
fun prepareForExport(): AppSettings {
|
||||
val empty = AppSettings()
|
||||
@@ -6917,6 +6892,7 @@ data class AppSettings(
|
||||
if (uiCurrentThemeIds != def.uiCurrentThemeIds) { empty.uiCurrentThemeIds = uiCurrentThemeIds }
|
||||
if (uiThemes != def.uiThemes) { empty.uiThemes = uiThemes }
|
||||
if (oneHandUI != def.oneHandUI) { empty.oneHandUI = oneHandUI }
|
||||
if (chatBottomBar != def.chatBottomBar) { empty.chatBottomBar = chatBottomBar }
|
||||
return empty
|
||||
}
|
||||
|
||||
@@ -6962,6 +6938,7 @@ data class AppSettings(
|
||||
uiCurrentThemeIds?.let { def.currentThemeIds.set(it) }
|
||||
uiThemes?.let { def.themeOverrides.set(it.skipDuplicates()) }
|
||||
oneHandUI?.let { def.oneHandUI.set(it) }
|
||||
chatBottomBar?.let { if (appPlatform.isAndroid) def.chatBottomBar.set(it) else def.chatBottomBar.set(true) }
|
||||
}
|
||||
|
||||
companion object {
|
||||
@@ -6996,7 +6973,8 @@ data class AppSettings(
|
||||
uiDarkColorScheme = DefaultTheme.SIMPLEX.themeName,
|
||||
uiCurrentThemeIds = null,
|
||||
uiThemes = null,
|
||||
oneHandUI = true
|
||||
oneHandUI = true,
|
||||
chatBottomBar = true,
|
||||
)
|
||||
|
||||
val current: AppSettings
|
||||
@@ -7032,7 +7010,8 @@ data class AppSettings(
|
||||
uiDarkColorScheme = def.systemDarkTheme.get() ?: DefaultTheme.SIMPLEX.themeName,
|
||||
uiCurrentThemeIds = def.currentThemeIds.get(),
|
||||
uiThemes = def.themeOverrides.get(),
|
||||
oneHandUI = def.oneHandUI.get()
|
||||
oneHandUI = def.oneHandUI.get(),
|
||||
chatBottomBar = def.chatBottomBar.get()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+11
-3
@@ -36,9 +36,17 @@ abstract class NtfManager {
|
||||
)
|
||||
)
|
||||
|
||||
fun notifyMessageReceived(user: UserLike, cInfo: ChatInfo, cItem: ChatItem) {
|
||||
if (!cInfo.ntfsEnabled) return
|
||||
displayNotification(user = user, chatId = cInfo.id, displayName = cInfo.displayName, msgText = hideSecrets(cItem))
|
||||
fun notifyMessageReceived(rhId: Long?, user: UserLike, cInfo: ChatInfo, cItem: ChatItem) {
|
||||
if (
|
||||
cItem.showNotification &&
|
||||
cInfo.ntfsEnabled &&
|
||||
(
|
||||
allowedToShowNotification() ||
|
||||
chatModel.chatId.value != cInfo.id ||
|
||||
chatModel.remoteHostId() != rhId)
|
||||
) {
|
||||
displayNotification(user = user, chatId = cInfo.id, displayName = cInfo.displayName, msgText = hideSecrets(cItem))
|
||||
}
|
||||
}
|
||||
|
||||
fun acceptContactRequestAction(userId: Long?, incognito: Boolean, chatId: ChatId) {
|
||||
|
||||
+2
@@ -10,6 +10,7 @@ import chat.simplex.common.model.ChatId
|
||||
import chat.simplex.common.model.NotificationsMode
|
||||
import chat.simplex.common.ui.theme.CurrentColors
|
||||
import kotlinx.coroutines.Job
|
||||
import java.io.Closeable
|
||||
|
||||
interface PlatformInterface {
|
||||
suspend fun androidServiceStart() {}
|
||||
@@ -26,6 +27,7 @@ interface PlatformInterface {
|
||||
fun androidPictureInPictureAllowed(): Boolean = true
|
||||
fun androidCallEnded() {}
|
||||
fun androidRestartNetworkObserver() {}
|
||||
fun androidCreateActiveCallState(): Closeable = Closeable { }
|
||||
fun androidIsXiaomiDevice(): Boolean = false
|
||||
val androidApiLevel: Int? get() = null
|
||||
@Composable fun androidLockPortraitOrientation() {}
|
||||
|
||||
+2
@@ -23,6 +23,7 @@ expect fun LazyColumnWithScrollBar(
|
||||
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
|
||||
userScrollEnabled: Boolean = true,
|
||||
additionalBarOffset: State<Dp>? = null,
|
||||
chatBottomBar: State<Boolean> = remember { mutableStateOf(true) },
|
||||
// by default, this function will include .fillMaxSize() without you doing anything. If you don't need it, pass `false` here
|
||||
// maxSize (at least maxHeight) is needed for blur on appBars to work correctly
|
||||
fillMaxSize: Boolean = true,
|
||||
@@ -41,6 +42,7 @@ expect fun LazyColumnWithScrollBarNoAppBar(
|
||||
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
|
||||
userScrollEnabled: Boolean = true,
|
||||
additionalBarOffset: State<Dp>? = null,
|
||||
chatBottomBar: State<Boolean> = remember { mutableStateOf(true) },
|
||||
content: LazyListScope.() -> Unit
|
||||
)
|
||||
|
||||
|
||||
@@ -609,6 +609,7 @@ fun themedBackgroundBrush(): Brush = Brush.linearGradient(
|
||||
)
|
||||
|
||||
val DEFAULT_PADDING = 20.dp
|
||||
val DEFAULT_ONBOARDING_HORIZONTAL_PADDING = 25.dp
|
||||
val DEFAULT_SPACE_AFTER_ICON = 4.dp
|
||||
val DEFAULT_PADDING_HALF = DEFAULT_PADDING / 2
|
||||
val DEFAULT_BOTTOM_PADDING = 48.dp
|
||||
|
||||
+1
-1
@@ -156,7 +156,7 @@ fun TerminalLog(floating: Boolean, composeViewHeight: State<Dp>) {
|
||||
LazyColumnWithScrollBar (
|
||||
reverseLayout = true,
|
||||
contentPadding = PaddingValues(
|
||||
top = topPaddingToContent(),
|
||||
top = topPaddingToContent(false),
|
||||
bottom = composeViewHeight.value
|
||||
),
|
||||
state = listState,
|
||||
|
||||
+2
-2
@@ -117,7 +117,7 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
|
||||
ColumnWithScrollBar {
|
||||
val displayName = rememberSaveable { mutableStateOf("") }
|
||||
val focusRequester = remember { FocusRequester() }
|
||||
Column(if (appPlatform.isAndroid) Modifier.fillMaxSize().padding(start = DEFAULT_PADDING * 2, end = DEFAULT_PADDING * 2, bottom = DEFAULT_PADDING) else Modifier.widthIn(max = 600.dp).fillMaxHeight().padding(horizontal = DEFAULT_PADDING).align(Alignment.CenterHorizontally)) {
|
||||
Column(if (appPlatform.isAndroid) Modifier.fillMaxSize().padding(start = DEFAULT_ONBOARDING_HORIZONTAL_PADDING * 2, end = DEFAULT_ONBOARDING_HORIZONTAL_PADDING * 2, bottom = DEFAULT_PADDING) else Modifier.widthIn(max = 600.dp).fillMaxHeight().padding(horizontal = DEFAULT_PADDING).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
Box(Modifier.align(Alignment.CenterHorizontally)) {
|
||||
AppBarTitle(stringResource(MR.strings.create_your_profile), bottomPadding = DEFAULT_PADDING, withPadding = false)
|
||||
}
|
||||
@@ -130,7 +130,7 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
|
||||
Spacer(Modifier.fillMaxHeight().weight(1f))
|
||||
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
OnboardingActionButton(
|
||||
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
labelId = MR.strings.create_profile_button,
|
||||
onboarding = null,
|
||||
enabled = canCreateProfile(displayName.value),
|
||||
|
||||
+3
@@ -43,6 +43,7 @@ class CallManager(val chatModel: ChatModel) {
|
||||
|
||||
private fun justAcceptIncomingCall(invitation: RcvCallInvitation, userProfile: Profile) {
|
||||
with (chatModel) {
|
||||
activeCall.value?.androidCallState?.close()
|
||||
activeCall.value = Call(
|
||||
remoteHostId = invitation.remoteHostId,
|
||||
userProfile = userProfile,
|
||||
@@ -51,6 +52,7 @@ class CallManager(val chatModel: ChatModel) {
|
||||
callState = CallState.InvitationAccepted,
|
||||
initialCallType = invitation.callType.media,
|
||||
sharedKey = invitation.sharedKey,
|
||||
androidCallState = platform.androidCreateActiveCallState()
|
||||
)
|
||||
showCallView.value = true
|
||||
val useRelay = controller.appPrefs.webrtcPolicyRelay.get()
|
||||
@@ -78,6 +80,7 @@ class CallManager(val chatModel: ChatModel) {
|
||||
// Don't destroy WebView if you plan to accept next call right after this one
|
||||
if (!switchingCall.value) {
|
||||
showCallView.value = false
|
||||
activeCall.value?.androidCallState?.close()
|
||||
activeCall.value = null
|
||||
activeCallViewIsCollapsed.value = false
|
||||
platform.androidCallEnded()
|
||||
|
||||
+4
-1
@@ -7,6 +7,7 @@ import chat.simplex.res.MR
|
||||
import kotlinx.datetime.Instant
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import java.io.Closeable
|
||||
import java.net.URI
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
@@ -27,7 +28,9 @@ data class Call(
|
||||
|
||||
// When a user has audio call, and then he wants to enable camera but didn't grant permissions for using camera yet,
|
||||
// we show permissions view without enabling camera before permissions are granted. After they are granted, enabling camera
|
||||
val wantsToEnableCamera: Boolean = false
|
||||
val wantsToEnableCamera: Boolean = false,
|
||||
|
||||
val androidCallState: Closeable
|
||||
) {
|
||||
val encrypted: Boolean get() = localEncrypted && sharedKey != null
|
||||
private val localEncrypted: Boolean get() = localCapabilities?.encryption ?: false
|
||||
|
||||
+48
-20
@@ -131,26 +131,14 @@ fun ChatInfoView(
|
||||
},
|
||||
syncContactConnection = {
|
||||
withBGApi {
|
||||
val cStats = chatModel.controller.apiSyncContactRatchet(chatRh, contact.contactId, force = false)
|
||||
connStats.value = cStats
|
||||
if (cStats != null) {
|
||||
withChats {
|
||||
updateContactConnectionStats(chatRh, contact, cStats)
|
||||
}
|
||||
}
|
||||
syncContactConnection(chatRh, contact, connStats, force = false)
|
||||
close.invoke()
|
||||
}
|
||||
},
|
||||
syncContactConnectionForce = {
|
||||
showSyncConnectionForceAlert(syncConnectionForce = {
|
||||
withBGApi {
|
||||
val cStats = chatModel.controller.apiSyncContactRatchet(chatRh, contact.contactId, force = true)
|
||||
connStats.value = cStats
|
||||
if (cStats != null) {
|
||||
withChats {
|
||||
updateContactConnectionStats(chatRh, contact, cStats)
|
||||
}
|
||||
}
|
||||
syncContactConnection(chatRh, contact, connStats, force = true)
|
||||
close.invoke()
|
||||
}
|
||||
})
|
||||
@@ -189,6 +177,16 @@ fun ChatInfoView(
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun syncContactConnection(rhId: Long?, contact: Contact, connectionStats: MutableState<ConnectionStats?>, force: Boolean) {
|
||||
val cStats = chatModel.controller.apiSyncContactRatchet(rhId, contact.contactId, force = force)
|
||||
connectionStats.value = cStats
|
||||
if (cStats != null) {
|
||||
withChats {
|
||||
updateContactConnectionStats(rhId, contact, cStats)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sealed class SendReceipts {
|
||||
object Yes: SendReceipts()
|
||||
object No: SendReceipts()
|
||||
@@ -505,7 +503,7 @@ fun ChatInfoLayout(
|
||||
currentUser: User,
|
||||
sendReceipts: State<SendReceipts>,
|
||||
setSendReceipts: (SendReceipts) -> Unit,
|
||||
connStats: State<ConnectionStats?>,
|
||||
connStats: MutableState<ConnectionStats?>,
|
||||
contactNetworkStatus: NetworkStatus,
|
||||
customUserProfile: Profile?,
|
||||
localAlias: String,
|
||||
@@ -553,8 +551,8 @@ fun ChatInfoLayout(
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
SearchButton(modifier = Modifier.fillMaxWidth(0.25f), chat, contact, close, onSearchClicked)
|
||||
AudioCallButton(modifier = Modifier.fillMaxWidth(0.33f), chat, contact)
|
||||
VideoButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact)
|
||||
AudioCallButton(modifier = Modifier.fillMaxWidth(0.33f), chat, contact, connStats)
|
||||
VideoButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact, connStats)
|
||||
MuteButton(modifier = Modifier.fillMaxWidth(1f), chat, contact)
|
||||
}
|
||||
}
|
||||
@@ -825,12 +823,14 @@ fun MuteButton(
|
||||
fun AudioCallButton(
|
||||
modifier: Modifier,
|
||||
chat: Chat,
|
||||
contact: Contact
|
||||
contact: Contact,
|
||||
connectionStats: MutableState<ConnectionStats?>
|
||||
) {
|
||||
CallButton(
|
||||
modifier = modifier,
|
||||
chat,
|
||||
contact,
|
||||
connectionStats,
|
||||
icon = painterResource(MR.images.ic_call),
|
||||
title = generalGetString(MR.strings.info_view_call_button),
|
||||
mediaType = CallMediaType.Audio
|
||||
@@ -841,12 +841,14 @@ fun AudioCallButton(
|
||||
fun VideoButton(
|
||||
modifier: Modifier,
|
||||
chat: Chat,
|
||||
contact: Contact
|
||||
contact: Contact,
|
||||
connectionStats: MutableState<ConnectionStats?>
|
||||
) {
|
||||
CallButton(
|
||||
modifier = modifier,
|
||||
chat,
|
||||
contact,
|
||||
connectionStats,
|
||||
icon = painterResource(MR.images.ic_videocam),
|
||||
title = generalGetString(MR.strings.info_view_video_button),
|
||||
mediaType = CallMediaType.Video
|
||||
@@ -858,6 +860,7 @@ fun CallButton(
|
||||
modifier: Modifier,
|
||||
chat: Chat,
|
||||
contact: Contact,
|
||||
connectionStats: MutableState<ConnectionStats?>,
|
||||
icon: Painter,
|
||||
title: String,
|
||||
mediaType: CallMediaType
|
||||
@@ -879,7 +882,23 @@ fun CallButton(
|
||||
disabledLook = !canCall,
|
||||
onClick =
|
||||
when {
|
||||
canCall -> { { startChatCall(chat.remoteHostId, chat.chatInfo, mediaType) } }
|
||||
canCall -> { {
|
||||
val connStats = connectionStats.value
|
||||
if (connStats != null) {
|
||||
if (connStats.ratchetSyncState == RatchetSyncState.Ok) {
|
||||
startChatCall(chat.remoteHostId, chat.chatInfo, mediaType)
|
||||
} else if (connStats.ratchetSyncAllowed) {
|
||||
showFixConnectionAlert(syncConnection = {
|
||||
withBGApi { syncContactConnection(chat.remoteHostId, contact, connectionStats, force = false) }
|
||||
})
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
generalGetString(MR.strings.cant_call_contact_alert_title),
|
||||
generalGetString(MR.strings.encryption_renegotiation_in_progress)
|
||||
)
|
||||
}
|
||||
}
|
||||
} }
|
||||
contact.nextSendGrpInv -> { { showCantCallContactSendMessageAlert() } }
|
||||
!contact.active -> { { showCantCallContactDeletedAlert() } }
|
||||
!contact.ready -> { { showCantCallContactConnectingAlert() } }
|
||||
@@ -1265,6 +1284,15 @@ fun showSyncConnectionForceAlert(syncConnectionForce: () -> Unit) {
|
||||
)
|
||||
}
|
||||
|
||||
fun showFixConnectionAlert(syncConnection: () -> Unit) {
|
||||
AlertManager.shared.showAlertDialog(
|
||||
title = generalGetString(MR.strings.sync_connection_question),
|
||||
text = generalGetString(MR.strings.sync_connection_desc),
|
||||
confirmText = generalGetString(MR.strings.sync_connection_confirm),
|
||||
onConfirm = syncConnection,
|
||||
)
|
||||
}
|
||||
|
||||
fun queueInfoText(info: Pair<RcvMsgInfo?, ServerQueueInfo>): String {
|
||||
val (rcvMsgInfo, qInfo) = info
|
||||
val msgInfo: String = if (rcvMsgInfo != null) json.encodeToString(rcvMsgInfo) else generalGetString(MR.strings.message_queue_info_none)
|
||||
|
||||
+60
-29
@@ -29,6 +29,7 @@ import androidx.compose.ui.unit.*
|
||||
import chat.simplex.common.model.*
|
||||
import chat.simplex.common.model.CIDirection.GroupRcv
|
||||
import chat.simplex.common.model.ChatController.appPrefs
|
||||
import chat.simplex.common.model.ChatModel.activeCall
|
||||
import chat.simplex.common.model.ChatModel.controller
|
||||
import chat.simplex.common.model.ChatModel.withChats
|
||||
import chat.simplex.common.ui.theme.*
|
||||
@@ -573,7 +574,8 @@ fun startChatCall(remoteHostId: Long?, chatInfo: ChatInfo, media: CallMediaType)
|
||||
if (chatInfo is ChatInfo.Direct) {
|
||||
val contactInfo = chatModel.controller.apiContactInfo(remoteHostId, chatInfo.contact.contactId)
|
||||
val profile = contactInfo?.second ?: chatModel.currentUser.value?.profile?.toProfile() ?: return@withBGApi
|
||||
chatModel.activeCall.value = Call(remoteHostId = remoteHostId, contact = chatInfo.contact, callUUID = null, callState = CallState.WaitCapabilities, initialCallType = media, userProfile = profile)
|
||||
activeCall.value?.androidCallState?.close()
|
||||
chatModel.activeCall.value = Call(remoteHostId = remoteHostId, contact = chatInfo.contact, callUUID = null, callState = CallState.WaitCapabilities, initialCallType = media, userProfile = profile, androidCallState = platform.androidCreateActiveCallState())
|
||||
chatModel.showCallView.value = true
|
||||
chatModel.callCommand.add(WCallCommand.Capabilities(media))
|
||||
}
|
||||
@@ -658,6 +660,8 @@ fun ChatLayout(
|
||||
Box(Modifier.fillMaxSize().chatViewBackgroundModifier(MaterialTheme.colors, MaterialTheme.wallpaper, LocalAppBarHandler.current?.backgroundGraphicsLayerSize, LocalAppBarHandler.current?.backgroundGraphicsLayer)) {
|
||||
val remoteHostId = remember { remoteHostId }.value
|
||||
val chatInfo = remember { chatInfo }.value
|
||||
val oneHandUI = remember { appPrefs.oneHandUI.state }
|
||||
val chatBottomBar = remember { appPrefs.chatBottomBar.state }
|
||||
AdaptingBottomPaddingLayout(Modifier, CHAT_COMPOSE_LAYOUT_ID, composeViewHeight) {
|
||||
if (chatInfo != null) {
|
||||
Box(Modifier.fillMaxSize()) {
|
||||
@@ -670,25 +674,23 @@ fun ChatLayout(
|
||||
)
|
||||
}
|
||||
}
|
||||
val oneHandUI = remember { appPrefs.oneHandUI.state }
|
||||
Box(
|
||||
Modifier
|
||||
.layoutId(CHAT_COMPOSE_LAYOUT_ID)
|
||||
.align(Alignment.BottomCenter)
|
||||
.imePadding()
|
||||
.navigationBarsPadding()
|
||||
.then(if (oneHandUI.value) Modifier.padding(bottom = AppBarHeight * fontSizeSqrtMultiplier) else Modifier)
|
||||
.then(if (oneHandUI.value && chatBottomBar.value) Modifier.padding(bottom = AppBarHeight * fontSizeSqrtMultiplier) else Modifier)
|
||||
) {
|
||||
composeView()
|
||||
}
|
||||
}
|
||||
val oneHandUI = remember { appPrefs.oneHandUI.state }
|
||||
if (oneHandUI.value) {
|
||||
if (oneHandUI.value && chatBottomBar.value) {
|
||||
StatusBarBackground()
|
||||
} else {
|
||||
NavigationBarBackground(true, oneHandUI.value, noAlpha = true)
|
||||
}
|
||||
Box(if (oneHandUI.value) Modifier.align(Alignment.BottomStart).imePadding() else Modifier) {
|
||||
Box(if (oneHandUI.value && chatBottomBar.value) Modifier.align(Alignment.BottomStart).imePadding() else Modifier) {
|
||||
if (selectedChatItems.value == null) {
|
||||
if (chatInfo != null) {
|
||||
ChatInfoToolbar(chatInfo, back, info, startCall, endCall, addMembers, openGroupLink, changeNtfsState, onSearchValueChanged, showSearch)
|
||||
@@ -856,12 +858,13 @@ fun BoxScope.ChatInfoToolbar(
|
||||
}
|
||||
}
|
||||
val oneHandUI = remember { appPrefs.oneHandUI.state }
|
||||
val chatBottomBar = remember { appPrefs.chatBottomBar.state }
|
||||
DefaultAppBar(
|
||||
navigationButton = { if (appPlatform.isAndroid || showSearch.value) { NavigationButtonBack(onBackClicked) } },
|
||||
title = { ChatInfoToolbarTitle(chatInfo) },
|
||||
onTitleClick = if (chatInfo is ChatInfo.Local) null else info,
|
||||
showSearch = showSearch.value,
|
||||
onTop = !oneHandUI.value,
|
||||
onTop = !oneHandUI.value || !chatBottomBar.value,
|
||||
onSearchValueChanged = onSearchValueChanged,
|
||||
buttons = { barButtons.forEach { it() } }
|
||||
)
|
||||
@@ -873,11 +876,11 @@ fun BoxScope.ChatInfoToolbar(
|
||||
showMenu,
|
||||
modifier = Modifier.onSizeChanged { with(density) {
|
||||
width.value = it.width.toDp().coerceAtLeast(250.dp)
|
||||
if (oneHandUI.value && (appPlatform.isDesktop || (platform.androidApiLevel ?: 0) >= 30)) height.value = it.height.toDp()
|
||||
if (oneHandUI.value && chatBottomBar.value && (appPlatform.isDesktop || (platform.androidApiLevel ?: 0) >= 30)) height.value = it.height.toDp()
|
||||
} },
|
||||
offset = DpOffset(-width.value, if (oneHandUI.value) -height.value else AppBarHeight)
|
||||
offset = DpOffset(-width.value, if (oneHandUI.value && chatBottomBar.value) -height.value else AppBarHeight)
|
||||
) {
|
||||
if (oneHandUI.value) {
|
||||
if (oneHandUI.value && chatBottomBar.value) {
|
||||
menuItems.asReversed().forEach { it() }
|
||||
} else {
|
||||
menuItems.forEach { it() }
|
||||
@@ -964,7 +967,7 @@ fun BoxScope.ChatItemsList(
|
||||
val reversedChatItems = remember { derivedStateOf { chatModel.chatItems.asReversed() } }
|
||||
val revealedItems = rememberSaveable(stateSaver = serializableSaver()) { mutableStateOf(setOf<Long>()) }
|
||||
val mergedItems = remember { derivedStateOf { MergedItems.create(reversedChatItems.value, unreadCount, revealedItems.value, chatModel.chatState) } }
|
||||
val topPaddingToContentPx = rememberUpdatedState(with(LocalDensity.current) { topPaddingToContent().roundToPx() })
|
||||
val topPaddingToContentPx = rememberUpdatedState(with(LocalDensity.current) { topPaddingToContent(true).roundToPx() })
|
||||
/** determines height based on window info and static height of two AppBars. It's needed because in the first graphic frame height of
|
||||
* [composeViewHeight] is unknown, but we need to set scroll position for unread messages already so it will be correct before the first frame appears
|
||||
* */
|
||||
@@ -981,6 +984,7 @@ fun BoxScope.ChatItemsList(
|
||||
})
|
||||
val maxHeight = remember { derivedStateOf { listState.value.layoutInfo.viewportEndOffset - topPaddingToContentPx.value } }
|
||||
val loadingMoreItems = remember { mutableStateOf(false) }
|
||||
val animatedScrollingInProgress = remember { mutableStateOf(false) }
|
||||
val ignoreLoadingRequests = remember(remoteHostId) { mutableSetOf<Long>() }
|
||||
if (!loadingMoreItems.value) {
|
||||
PreloadItems(chatInfo.id, if (searchValueIsEmpty.value) ignoreLoadingRequests else mutableSetOf(), mergedItems, listState, ChatPagination.UNTIL_PRELOAD_COUNT) { chatId, pagination ->
|
||||
@@ -1001,7 +1005,7 @@ fun BoxScope.ChatItemsList(
|
||||
val chatInfoUpdated = rememberUpdatedState(chatInfo)
|
||||
val highlightedItems = remember { mutableStateOf(setOf<Long>()) }
|
||||
val scope = rememberCoroutineScope()
|
||||
val scrollToItem: (Long) -> Unit = remember { scrollToItem(loadingMoreItems, highlightedItems, chatInfoUpdated, maxHeight, scope, reversedChatItems, mergedItems, listState, loadMessages) }
|
||||
val scrollToItem: (Long) -> Unit = remember { scrollToItem(searchValue, loadingMoreItems, animatedScrollingInProgress, highlightedItems, chatInfoUpdated, maxHeight, scope, reversedChatItems, mergedItems, listState, loadMessages) }
|
||||
val scrollToQuotedItemFromItem: (Long) -> Unit = remember { findQuotedItemFromItem(remoteHostIdUpdated, chatInfoUpdated, scope, scrollToItem) }
|
||||
|
||||
LoadLastItems(loadingMoreItems, remoteHostId, chatInfo)
|
||||
@@ -1264,10 +1268,11 @@ fun BoxScope.ChatItemsList(
|
||||
state = listState.value,
|
||||
reverseLayout = true,
|
||||
contentPadding = PaddingValues(
|
||||
top = topPaddingToContent(),
|
||||
top = topPaddingToContent(true),
|
||||
bottom = composeViewHeight.value
|
||||
),
|
||||
additionalBarOffset = composeViewHeight
|
||||
additionalBarOffset = composeViewHeight,
|
||||
chatBottomBar = remember { appPrefs.chatBottomBar.state }
|
||||
) {
|
||||
val mergedItemsValue = mergedItems.value
|
||||
itemsIndexed(mergedItemsValue.items, key = { _, merged -> keyForItem(merged.newest().item) }) { index, merged ->
|
||||
@@ -1310,8 +1315,8 @@ fun BoxScope.ChatItemsList(
|
||||
}
|
||||
}
|
||||
}
|
||||
FloatingButtons(loadingMoreItems, mergedItems, unreadCount, maxHeight, composeViewHeight, remoteHostId, chatInfo, searchValue, markChatRead, listState)
|
||||
FloatingDate(Modifier.padding(top = 10.dp + topPaddingToContent()).align(Alignment.TopCenter), mergedItems, listState)
|
||||
FloatingButtons(loadingMoreItems, animatedScrollingInProgress, mergedItems, unreadCount, maxHeight, composeViewHeight, searchValue, markChatRead, listState)
|
||||
FloatingDate(Modifier.padding(top = 10.dp + topPaddingToContent(true)).align(Alignment.TopCenter), mergedItems, listState)
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
snapshotFlow { listState.value.isScrollInProgress }
|
||||
@@ -1319,6 +1324,15 @@ fun BoxScope.ChatItemsList(
|
||||
chatViewScrollState.value = it
|
||||
}
|
||||
}
|
||||
LaunchedEffect(Unit) {
|
||||
snapshotFlow { listState.value.isScrollInProgress }
|
||||
.filter { !it }
|
||||
.collect {
|
||||
if (animatedScrollingInProgress.value) {
|
||||
animatedScrollingInProgress.value = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
@@ -1396,18 +1410,17 @@ private fun NotifyChatListOnFinishingComposition(
|
||||
@Composable
|
||||
fun BoxScope.FloatingButtons(
|
||||
loadingMoreItems: MutableState<Boolean>,
|
||||
animatedScrollingInProgress: MutableState<Boolean>,
|
||||
mergedItems: State<MergedItems>,
|
||||
unreadCount: State<Int>,
|
||||
maxHeight: State<Int>,
|
||||
composeViewHeight: State<Dp>,
|
||||
remoteHostId: Long?,
|
||||
chatInfo: ChatInfo,
|
||||
searchValue: State<String>,
|
||||
markChatRead: () -> Unit,
|
||||
listState: State<LazyListState>
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
val topPaddingToContentPx = rememberUpdatedState(with(LocalDensity.current) { topPaddingToContent().roundToPx() })
|
||||
val topPaddingToContentPx = rememberUpdatedState(with(LocalDensity.current) { topPaddingToContent(true).roundToPx() })
|
||||
val bottomUnreadCount = remember {
|
||||
derivedStateOf {
|
||||
if (unreadCount.value == 0) return@derivedStateOf 0
|
||||
@@ -1437,8 +1450,14 @@ fun BoxScope.FloatingButtons(
|
||||
bottomUnreadCount,
|
||||
showBottomButtonWithCounter,
|
||||
showBottomButtonWithArrow,
|
||||
animatedScrollingInProgress,
|
||||
composeViewHeight,
|
||||
onClick = { scope.launch { tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(0) } } }
|
||||
onClick = {
|
||||
scope.launch {
|
||||
animatedScrollingInProgress.value = true
|
||||
tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(0) }
|
||||
}
|
||||
}
|
||||
)
|
||||
// Don't show top FAB if is in search
|
||||
if (searchValue.value.isNotEmpty()) return
|
||||
@@ -1447,13 +1466,17 @@ fun BoxScope.FloatingButtons(
|
||||
val showDropDown = remember { mutableStateOf(false) }
|
||||
|
||||
TopEndFloatingButton(
|
||||
Modifier.padding(end = DEFAULT_PADDING, top = 24.dp + topPaddingToContent()).align(Alignment.TopEnd),
|
||||
Modifier.padding(end = DEFAULT_PADDING, top = 24.dp + topPaddingToContent(true)).align(Alignment.TopEnd),
|
||||
topUnreadCount,
|
||||
animatedScrollingInProgress,
|
||||
onClick = {
|
||||
val index = mergedItems.value.items.indexOfLast { it.hasUnread() }
|
||||
if (index != -1) {
|
||||
// scroll to the top unread item
|
||||
scope.launch { tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(index + 1, -maxHeight.value) } }
|
||||
scope.launch {
|
||||
animatedScrollingInProgress.value = true
|
||||
tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(index + 1, -maxHeight.value) }
|
||||
}
|
||||
}
|
||||
},
|
||||
onLongClick = { showDropDown.value = true }
|
||||
@@ -1465,7 +1488,7 @@ fun BoxScope.FloatingButtons(
|
||||
DefaultDropdownMenu(
|
||||
showDropDown,
|
||||
modifier = Modifier.onSizeChanged { with(density) { width.value = it.width.toDp().coerceAtLeast(250.dp) } },
|
||||
offset = DpOffset(-DEFAULT_PADDING - width.value, 24.dp + fabSize + topPaddingToContent())
|
||||
offset = DpOffset(-DEFAULT_PADDING - width.value, 24.dp + fabSize + topPaddingToContent(true))
|
||||
) {
|
||||
ItemAction(
|
||||
generalGetString(MR.strings.mark_read),
|
||||
@@ -1593,10 +1616,11 @@ fun MemberImage(member: GroupMember) {
|
||||
private fun TopEndFloatingButton(
|
||||
modifier: Modifier = Modifier,
|
||||
unreadCount: State<Int>,
|
||||
animatedScrollingInProgress: State<Boolean>,
|
||||
onClick: () -> Unit,
|
||||
onLongClick: () -> Unit
|
||||
) {
|
||||
if (unreadCount.value > 0) {
|
||||
if (remember { derivedStateOf { unreadCount.value > 0 && !animatedScrollingInProgress.value } }.value) {
|
||||
val interactionSource = interactionSourceWithDetection(onClick, onLongClick)
|
||||
FloatingActionButton(
|
||||
{}, // no action here
|
||||
@@ -1615,9 +1639,10 @@ private fun TopEndFloatingButton(
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun topPaddingToContent(): Dp {
|
||||
fun topPaddingToContent(chatView: Boolean): Dp {
|
||||
val oneHandUI = remember { appPrefs.oneHandUI.state }
|
||||
return if (oneHandUI.value) {
|
||||
val chatBottomBar = remember { appPrefs.chatBottomBar.state }
|
||||
return if (oneHandUI.value && (!chatView || chatBottomBar.value)) {
|
||||
WindowInsets.statusBars.asPaddingValues().calculateTopPadding()
|
||||
} else {
|
||||
AppBarHeight * fontSizeSqrtMultiplier + WindowInsets.statusBars.asPaddingValues().calculateTopPadding()
|
||||
@@ -1634,7 +1659,7 @@ private fun FloatingDate(
|
||||
val nearBottomIndex = remember(chatModel.chatId) { mutableStateOf(if (isNearBottom.value) -1 else 0) }
|
||||
val showDate = remember(chatModel.chatId) { mutableStateOf(false) }
|
||||
val density = LocalDensity.current.density
|
||||
val topPaddingToContentPx = rememberUpdatedState(with(LocalDensity.current) { topPaddingToContent().roundToPx() })
|
||||
val topPaddingToContentPx = rememberUpdatedState(with(LocalDensity.current) { topPaddingToContent(true).roundToPx() })
|
||||
val fontSizeSqrtMultiplier = fontSizeSqrtMultiplier
|
||||
val lastVisibleItemDate = remember {
|
||||
derivedStateOf {
|
||||
@@ -1834,7 +1859,9 @@ private fun lastFullyVisibleIemInListState(topPaddingToContentPx: State<Int>, de
|
||||
}
|
||||
|
||||
private fun scrollToItem(
|
||||
searchValue: State<String>,
|
||||
loadingMoreItems: MutableState<Boolean>,
|
||||
animatedScrollingInProgress: MutableState<Boolean>,
|
||||
highlightedItems: MutableState<Set<Long>>,
|
||||
chatInfo: State<ChatInfo>,
|
||||
maxHeight: State<Int>,
|
||||
@@ -1847,6 +1874,8 @@ private fun scrollToItem(
|
||||
withApi {
|
||||
try {
|
||||
var index = mergedItems.value.indexInParentItems[itemId] ?: -1
|
||||
// Don't try to load messages while in search
|
||||
if (index == -1 && searchValue.value.isNotBlank()) return@withApi
|
||||
// setting it to 'loading' even if the item is loaded because in rare cases when the resulting item is near the top, scrolling to
|
||||
// it will trigger loading more items and will scroll to incorrect position (because of trimming)
|
||||
loadingMoreItems.value = true
|
||||
@@ -1870,6 +1899,7 @@ private fun scrollToItem(
|
||||
highlightedItems.value = setOf(itemId)
|
||||
} else {
|
||||
withContext(scope.coroutineContext) {
|
||||
animatedScrollingInProgress.value = true
|
||||
listState.value.animateScrollToItem(min(reversedChatItems.value.lastIndex, index + 1), -maxHeight.value)
|
||||
highlightedItems.value = setOf(itemId)
|
||||
}
|
||||
@@ -1931,10 +1961,11 @@ private fun BoxScope.BottomEndFloatingButton(
|
||||
unreadCount: State<Int>,
|
||||
showButtonWithCounter: State<Boolean>,
|
||||
showButtonWithArrow: State<Boolean>,
|
||||
animatedScrollingInProgress: State<Boolean>,
|
||||
composeViewHeight: State<Dp>,
|
||||
onClick: () -> Unit
|
||||
) = when {
|
||||
showButtonWithCounter.value -> {
|
||||
showButtonWithCounter.value && !animatedScrollingInProgress.value -> {
|
||||
FloatingActionButton(
|
||||
onClick = onClick,
|
||||
elevation = FloatingActionButtonDefaults.elevation(0.dp, 0.dp, 0.dp, 0.dp),
|
||||
@@ -1948,7 +1979,7 @@ private fun BoxScope.BottomEndFloatingButton(
|
||||
)
|
||||
}
|
||||
}
|
||||
showButtonWithArrow.value -> {
|
||||
showButtonWithArrow.value && !animatedScrollingInProgress.value -> {
|
||||
FloatingActionButton(
|
||||
onClick = onClick,
|
||||
elevation = FloatingActionButtonDefaults.elevation(0.dp, 0.dp, 0.dp, 0.dp),
|
||||
|
||||
+9
-9
@@ -13,19 +13,19 @@ import chat.simplex.res.MR
|
||||
import dev.icerock.moko.resources.compose.stringResource
|
||||
|
||||
@Composable
|
||||
fun ScanCodeView(verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit, close: () -> Unit) {
|
||||
fun ScanCodeView(verifyCode: suspend (String?) -> Boolean, close: () -> Unit) {
|
||||
ColumnWithScrollBar {
|
||||
AppBarTitle(stringResource(MR.strings.scan_code))
|
||||
QRCodeScanner { text ->
|
||||
verifyCode(text) {
|
||||
if (it) {
|
||||
close()
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.incorrect_code)
|
||||
)
|
||||
}
|
||||
val success = verifyCode(text)
|
||||
if (success) {
|
||||
close()
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.incorrect_code)
|
||||
)
|
||||
}
|
||||
success
|
||||
}
|
||||
Text(stringResource(MR.strings.scan_code_from_contacts_app), Modifier.padding(horizontal = DEFAULT_PADDING))
|
||||
SectionBottomSpacer()
|
||||
|
||||
+12
-11
@@ -35,14 +35,14 @@ fun VerifyCodeView(
|
||||
displayName,
|
||||
connectionCode,
|
||||
connectionVerified,
|
||||
verifyCode = { newCode, cb ->
|
||||
withBGApi {
|
||||
val res = verify(newCode)
|
||||
if (res != null) {
|
||||
val (verified) = res
|
||||
cb(verified)
|
||||
if (verified) close()
|
||||
}
|
||||
verifyCode = { newCode ->
|
||||
val res = verify(newCode)
|
||||
if (res != null) {
|
||||
val (verified) = res
|
||||
if (verified) close()
|
||||
verified
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
)
|
||||
@@ -54,7 +54,7 @@ private fun VerifyCodeLayout(
|
||||
displayName: String,
|
||||
connectionCode: String,
|
||||
connectionVerified: Boolean,
|
||||
verifyCode: (String?, cb: (Boolean) -> Unit) -> Unit,
|
||||
verifyCode: suspend (String?) -> Boolean,
|
||||
) {
|
||||
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING)) {
|
||||
AppBarTitle(stringResource(MR.strings.security_code), withPadding = false)
|
||||
@@ -100,7 +100,7 @@ private fun VerifyCodeLayout(
|
||||
) {
|
||||
if (connectionVerified) {
|
||||
SimpleButton(generalGetString(MR.strings.clear_verification), painterResource(MR.images.ic_shield)) {
|
||||
verifyCode(null) {}
|
||||
withApi { verifyCode(null) }
|
||||
}
|
||||
} else {
|
||||
if (appPlatform.isAndroid) {
|
||||
@@ -111,7 +111,8 @@ private fun VerifyCodeLayout(
|
||||
}
|
||||
}
|
||||
SimpleButton(generalGetString(MR.strings.mark_code_verified), painterResource(MR.images.ic_verified_user)) {
|
||||
verifyCode(connectionCode) { verified ->
|
||||
withApi {
|
||||
val verified = verifyCode(connectionCode)
|
||||
if (!verified) {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.incorrect_code)
|
||||
|
||||
+1
-1
@@ -306,7 +306,7 @@ fun ModalData.GroupChatInfoLayout(
|
||||
contentPadding = if (oneHandUI.value) {
|
||||
PaddingValues(top = WindowInsets.statusBars.asPaddingValues().calculateTopPadding() + DEFAULT_PADDING + 5.dp, bottom = WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding())
|
||||
} else {
|
||||
PaddingValues(top = topPaddingToContent())
|
||||
PaddingValues(top = topPaddingToContent(false))
|
||||
},
|
||||
state = listState
|
||||
) {
|
||||
|
||||
+49
-25
@@ -8,8 +8,6 @@ import SectionSpacer
|
||||
import SectionTextFooter
|
||||
import SectionView
|
||||
import androidx.compose.desktop.ui.tooling.preview.Preview
|
||||
import java.net.URI
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.text.InlineTextContent
|
||||
import androidx.compose.foundation.text.appendInlineContent
|
||||
@@ -58,6 +56,19 @@ fun GroupMemberInfoView(
|
||||
val developerTools = chatModel.controller.appPrefs.developerTools.get()
|
||||
var progressIndicator by remember { mutableStateOf(false) }
|
||||
|
||||
fun syncMemberConnection() {
|
||||
withBGApi {
|
||||
val r = chatModel.controller.apiSyncGroupMemberRatchet(rhId, groupInfo.apiId, member.groupMemberId, force = false)
|
||||
if (r != null) {
|
||||
connStats.value = r.second
|
||||
withChats {
|
||||
updateGroupMemberConnectionStats(rhId, groupInfo, r.first, r.second)
|
||||
}
|
||||
close.invoke()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (chat != null) {
|
||||
val newRole = remember { mutableStateOf(member.memberRole) }
|
||||
GroupMemberInfoLayout(
|
||||
@@ -78,19 +89,30 @@ fun GroupMemberInfoView(
|
||||
}
|
||||
},
|
||||
createMemberContact = {
|
||||
withBGApi {
|
||||
progressIndicator = true
|
||||
val memberContact = chatModel.controller.apiCreateMemberContact(rhId, groupInfo.apiId, member.groupMemberId)
|
||||
if (memberContact != null) {
|
||||
val memberChat = Chat(remoteHostId = rhId, ChatInfo.Direct(memberContact), chatItems = arrayListOf())
|
||||
withChats {
|
||||
addChat(memberChat)
|
||||
openLoadedChat(memberChat)
|
||||
if (connectionStats != null) {
|
||||
if (connectionStats.ratchetSyncState == RatchetSyncState.Ok) {
|
||||
withBGApi {
|
||||
progressIndicator = true
|
||||
val memberContact = chatModel.controller.apiCreateMemberContact(rhId, groupInfo.apiId, member.groupMemberId)
|
||||
if (memberContact != null) {
|
||||
val memberChat = Chat(remoteHostId = rhId, ChatInfo.Direct(memberContact), chatItems = arrayListOf())
|
||||
withChats {
|
||||
addChat(memberChat)
|
||||
openLoadedChat(memberChat)
|
||||
}
|
||||
closeAll()
|
||||
chatModel.setContactNetworkStatus(memberContact, NetworkStatus.Connected())
|
||||
}
|
||||
progressIndicator = false
|
||||
}
|
||||
closeAll()
|
||||
chatModel.setContactNetworkStatus(memberContact, NetworkStatus.Connected())
|
||||
} else if (connectionStats.ratchetSyncAllowed) {
|
||||
showFixConnectionAlert(syncConnection = { syncMemberConnection() })
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
generalGetString(MR.strings.cant_send_message_to_member_alert_title),
|
||||
generalGetString(MR.strings.encryption_renegotiation_in_progress)
|
||||
)
|
||||
}
|
||||
progressIndicator = false
|
||||
}
|
||||
},
|
||||
connectViaAddress = { connReqUri ->
|
||||
@@ -149,16 +171,7 @@ fun GroupMemberInfoView(
|
||||
})
|
||||
},
|
||||
syncMemberConnection = {
|
||||
withBGApi {
|
||||
val r = chatModel.controller.apiSyncGroupMemberRatchet(rhId, groupInfo.apiId, member.groupMemberId, force = false)
|
||||
if (r != null) {
|
||||
connStats.value = r.second
|
||||
withChats {
|
||||
updateGroupMemberConnectionStats(rhId, groupInfo, r.first, r.second)
|
||||
}
|
||||
close.invoke()
|
||||
}
|
||||
}
|
||||
syncMemberConnection()
|
||||
},
|
||||
syncMemberConnectionForce = {
|
||||
showSyncConnectionForceAlert(syncConnectionForce = {
|
||||
@@ -335,9 +348,20 @@ fun GroupMemberInfoLayout(
|
||||
val knownChat = if (contactId != null) knownDirectChat(contactId) else null
|
||||
if (knownChat != null) {
|
||||
val (chat, contact) = knownChat
|
||||
val knownContactConnectionStats: MutableState<ConnectionStats?> = remember { mutableStateOf(null) }
|
||||
|
||||
LaunchedEffect(contact.contactId) {
|
||||
withBGApi {
|
||||
val contactInfo = chatModel.controller.apiContactInfo(chat.remoteHostId, chat.chatInfo.apiId)
|
||||
if (contactInfo != null) {
|
||||
knownContactConnectionStats.value = contactInfo.first
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OpenChatButton(modifier = Modifier.fillMaxWidth(0.33f), onClick = { openDirectChat(contact.contactId) })
|
||||
AudioCallButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact)
|
||||
VideoButton(modifier = Modifier.fillMaxWidth(1f), chat, contact)
|
||||
AudioCallButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact, knownContactConnectionStats)
|
||||
VideoButton(modifier = Modifier.fillMaxWidth(1f), chat, contact, knownContactConnectionStats)
|
||||
} else if (groupInfo.fullGroupPreferences.directMessages.on(groupInfo.membership)) {
|
||||
if (contactId != null) {
|
||||
OpenChatButton(modifier = Modifier.fillMaxWidth(0.33f), onClick = { openDirectChat(contactId) }) // legacy - only relevant for direct contacts created when joining group
|
||||
|
||||
+1
-1
@@ -761,7 +761,7 @@ private fun BoxScope.ChatList(searchText: MutableState<TextFieldValue>, listStat
|
||||
val searchShowingSimplexLink = remember { mutableStateOf(false) }
|
||||
val searchChatFilteredBySimplexLink = remember { mutableStateOf<String?>(null) }
|
||||
val chats = filteredChats(showUnreadAndFavorites, searchShowingSimplexLink, searchChatFilteredBySimplexLink, searchText.value.text, allChats.value.toList())
|
||||
val topPaddingToContent = topPaddingToContent()
|
||||
val topPaddingToContent = topPaddingToContent(false)
|
||||
val blankSpaceSize = if (oneHandUI.value) WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding() + AppBarHeight * fontSizeSqrtMultiplier else topPaddingToContent
|
||||
LazyColumnWithScrollBar(
|
||||
if (!oneHandUI.value) Modifier.imePadding() else Modifier,
|
||||
|
||||
+1
-1
@@ -347,7 +347,7 @@ fun ChatPreviewView(
|
||||
chatItemContentPreview(chat, ci)
|
||||
}
|
||||
if (mc !is MsgContent.MCVoice || !showContentPreview || mc.text.isNotEmpty() || chatModelDraftChatId == chat.id) {
|
||||
Box(Modifier.offset(x = if (mc is MsgContent.MCFile) -15.sp.toDp() else 0.dp)) {
|
||||
Box(Modifier.offset(x = if (mc is MsgContent.MCFile && ci.meta.itemDeleted == null) -15.sp.toDp() else 0.dp)) {
|
||||
chatPreviewText()
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -194,7 +194,7 @@ private fun ShareList(
|
||||
filteredChats(false, mutableStateOf(false), mutableStateOf(null), search, sorted)
|
||||
}
|
||||
}
|
||||
val topPaddingToContent = topPaddingToContent()
|
||||
val topPaddingToContent = topPaddingToContent(false)
|
||||
LazyColumnWithScrollBar(
|
||||
modifier = Modifier.then(if (oneHandUI.value) Modifier.consumeWindowInsets(WindowInsets.navigationBars.only(WindowInsetsSides.Vertical)) else Modifier).imePadding(),
|
||||
contentPadding = PaddingValues(
|
||||
|
||||
+1
-7
@@ -192,13 +192,7 @@ fun DatabaseLayout(
|
||||
}
|
||||
RunChatSetting(stopped, toggleEnabled && !progressIndicator, startChat, stopChatAlert)
|
||||
}
|
||||
SectionTextFooter(
|
||||
if (stopped) {
|
||||
stringResource(MR.strings.you_must_use_the_most_recent_version_of_database)
|
||||
} else {
|
||||
stringResource(MR.strings.stop_chat_to_enable_database_actions)
|
||||
}
|
||||
)
|
||||
if (stopped) SectionTextFooter(stringResource(MR.strings.you_must_use_the_most_recent_version_of_database))
|
||||
SectionDividerSpaced(maxTopPadding = true)
|
||||
}
|
||||
|
||||
|
||||
+5
-3
@@ -203,7 +203,7 @@ private fun MutableState<MigrationToState?>.PasteOrScanLinkView(close: () -> Uni
|
||||
if (appPlatform.isAndroid) {
|
||||
SectionView(stringResource(MR.strings.scan_QR_code).replace('\n', ' ').uppercase()) {
|
||||
QRCodeScanner(showQRCodeScanner = remember { mutableStateOf(true) }) { text ->
|
||||
withBGApi { checkUserLink(text) }
|
||||
checkUserLink(text)
|
||||
}
|
||||
}
|
||||
SectionSpacer()
|
||||
@@ -518,8 +518,8 @@ private fun ProgressView() {
|
||||
DefaultProgressView(null)
|
||||
}
|
||||
|
||||
private suspend fun MutableState<MigrationToState?>.checkUserLink(link: String) {
|
||||
if (strHasSimplexFileLink(link.trim())) {
|
||||
private suspend fun MutableState<MigrationToState?>.checkUserLink(link: String): Boolean {
|
||||
return if (strHasSimplexFileLink(link.trim())) {
|
||||
val data = MigrationFileLinkData.readFromLink(link)
|
||||
val hasProxyConfigured = data?.networkConfig?.hasProxyConfigured() ?: false
|
||||
val networkConfig = data?.networkConfig?.transformToPlatformSupported()
|
||||
@@ -537,11 +537,13 @@ private suspend fun MutableState<MigrationToState?>.checkUserLink(link: String)
|
||||
networkProxy = null
|
||||
)
|
||||
}
|
||||
true
|
||||
} else {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.invalid_file_link),
|
||||
text = generalGetString(MR.strings.the_text_you_pasted_is_not_a_link)
|
||||
)
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+16
-3
@@ -12,6 +12,7 @@ import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.views.chatlist.*
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.res.MR
|
||||
import kotlinx.coroutines.*
|
||||
import java.net.URI
|
||||
|
||||
enum class ConnectionLinkType {
|
||||
@@ -26,8 +27,18 @@ suspend fun planAndConnect(
|
||||
cleanup: (() -> Unit)? = null,
|
||||
filterKnownContact: ((Contact) -> Unit)? = null,
|
||||
filterKnownGroup: ((GroupInfo) -> Unit)? = null,
|
||||
) {
|
||||
val connectionPlan = chatModel.controller.apiConnectPlan(rhId, uri.toString())
|
||||
): CompletableDeferred<Boolean> {
|
||||
val completable = CompletableDeferred<Boolean>()
|
||||
val close: (() -> Unit)? = {
|
||||
close?.invoke()
|
||||
// if close was called, it means the connection was created
|
||||
completable.complete(true)
|
||||
}
|
||||
val cleanup: (() -> Unit)? = {
|
||||
cleanup?.invoke()
|
||||
completable.complete(!completable.isActive)
|
||||
}
|
||||
val connectionPlan = chatModel.controller.apiConnectPlan(rhId, uri)
|
||||
if (connectionPlan != null) {
|
||||
val link = strHasSingleSimplexLink(uri.trim())
|
||||
val linkText = if (link?.format is Format.SimplexLink)
|
||||
@@ -333,6 +344,7 @@ suspend fun planAndConnect(
|
||||
)
|
||||
}
|
||||
}
|
||||
return completable
|
||||
}
|
||||
|
||||
suspend fun connectViaUri(
|
||||
@@ -343,7 +355,7 @@ suspend fun connectViaUri(
|
||||
connectionPlan: ConnectionPlan?,
|
||||
close: (() -> Unit)?,
|
||||
cleanup: (() -> Unit)?,
|
||||
) {
|
||||
): Boolean {
|
||||
val pcc = chatModel.controller.apiConnect(rhId, incognito, uri)
|
||||
val connLinkType = if (connectionPlan != null) planToConnectionLinkType(connectionPlan) else ConnectionLinkType.INVITATION
|
||||
if (pcc != null) {
|
||||
@@ -363,6 +375,7 @@ suspend fun connectViaUri(
|
||||
)
|
||||
}
|
||||
cleanup?.invoke()
|
||||
return pcc != null
|
||||
}
|
||||
|
||||
fun planToConnectionLinkType(connectionPlan: ConnectionPlan): ConnectionLinkType {
|
||||
|
||||
+2
-2
@@ -334,7 +334,7 @@ private fun ModalData.NewChatSheetLayout(
|
||||
|
||||
@Composable
|
||||
fun NonOneHandLazyColumn() {
|
||||
val blankSpaceSize = topPaddingToContent()
|
||||
val blankSpaceSize = topPaddingToContent(false)
|
||||
LazyColumnWithScrollBar(
|
||||
Modifier.imePadding(),
|
||||
state = listState,
|
||||
@@ -646,7 +646,7 @@ private fun ModalData.DeletedContactsView(rh: RemoteHostInfo?, closeDeletedChats
|
||||
)
|
||||
|
||||
Box {
|
||||
val topPaddingToContent = topPaddingToContent()
|
||||
val topPaddingToContent = topPaddingToContent(false)
|
||||
LazyColumnWithScrollBar(
|
||||
if (!oneHandUI.value) Modifier.imePadding() else Modifier,
|
||||
contentPadding = PaddingValues(
|
||||
|
||||
+17
-17
@@ -38,8 +38,7 @@ import chat.simplex.common.views.chat.topPaddingToContent
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.common.views.usersettings.*
|
||||
import chat.simplex.res.MR
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.*
|
||||
import java.net.URI
|
||||
|
||||
enum class NewChatOption {
|
||||
@@ -400,7 +399,7 @@ fun ActiveProfilePicker(
|
||||
.fillMaxSize()
|
||||
.alpha(if (progressByTimeout) 0.6f else 1f)
|
||||
) {
|
||||
LazyColumnWithScrollBar(Modifier.padding(top = topPaddingToContent()), userScrollEnabled = !switchingProfile.value) {
|
||||
LazyColumnWithScrollBar(Modifier.padding(top = topPaddingToContent(false)), userScrollEnabled = !switchingProfile.value) {
|
||||
item {
|
||||
val oneHandUI = remember { appPrefs.oneHandUI.state }
|
||||
if (oneHandUI.value) {
|
||||
@@ -559,15 +558,14 @@ private fun ConnectView(rhId: Long?, showQRCodeScanner: MutableState<Boolean>, p
|
||||
|
||||
SectionView(stringResource(MR.strings.or_scan_qr_code).uppercase(), headerBottomPadding = 5.dp) {
|
||||
QRCodeScanner(showQRCodeScanner) { text ->
|
||||
withBGApi {
|
||||
val res = verify(rhId, text, close)
|
||||
if (!res) {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.invalid_qr_code),
|
||||
text = generalGetString(MR.strings.code_you_scanned_is_not_simplex_link_qr_code)
|
||||
)
|
||||
}
|
||||
val linkVerified = verifyOnly(text)
|
||||
if (!linkVerified) {
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(MR.strings.invalid_qr_code),
|
||||
text = generalGetString(MR.strings.code_you_scanned_is_not_simplex_link_qr_code)
|
||||
)
|
||||
}
|
||||
verifyAndConnect(rhId, text, close)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -656,23 +654,25 @@ private fun filteredProfiles(users: List<User>, searchTextOrPassword: String): L
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun verify(rhId: Long?, text: String?, close: () -> Unit): Boolean {
|
||||
private fun verifyOnly(text: String?): Boolean = text != null && strIsSimplexLink(text)
|
||||
|
||||
private suspend fun verifyAndConnect(rhId: Long?, text: String?, close: () -> Unit): Boolean {
|
||||
if (text != null && strIsSimplexLink(text)) {
|
||||
connect(rhId, text, close)
|
||||
return true
|
||||
return withContext(Dispatchers.Default) {
|
||||
connect(rhId, text, close)
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
private suspend fun connect(rhId: Long?, link: String, close: () -> Unit, cleanup: (() -> Unit)? = null) {
|
||||
private suspend fun connect(rhId: Long?, link: String, close: () -> Unit, cleanup: (() -> Unit)? = null): Boolean =
|
||||
planAndConnect(
|
||||
rhId,
|
||||
link,
|
||||
close = close,
|
||||
cleanup = cleanup,
|
||||
incognito = null
|
||||
)
|
||||
}
|
||||
).await()
|
||||
|
||||
private fun createInvitation(
|
||||
rhId: Long?,
|
||||
|
||||
+1
-1
@@ -10,5 +10,5 @@ import chat.simplex.common.ui.theme.DEFAULT_PADDING_HALF
|
||||
expect fun QRCodeScanner(
|
||||
showQRCodeScanner: MutableState<Boolean> = remember { mutableStateOf(true) },
|
||||
padding: PaddingValues = PaddingValues(horizontal = DEFAULT_PADDING * 2f, vertical = DEFAULT_PADDING_HALF),
|
||||
onBarcode: (String) -> Unit
|
||||
onBarcode: suspend (String) -> Boolean
|
||||
)
|
||||
|
||||
+57
-13
@@ -1,7 +1,11 @@
|
||||
package chat.simplex.common.views.onboarding
|
||||
|
||||
import SectionBottomSpacer
|
||||
import SectionDividerSpaced
|
||||
import SectionItemView
|
||||
import SectionTextFooter
|
||||
import SectionView
|
||||
import TextIconSpaced
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.*
|
||||
@@ -12,8 +16,8 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import chat.simplex.common.model.*
|
||||
import chat.simplex.common.model.ChatController.appPrefs
|
||||
import chat.simplex.common.model.ServerOperator
|
||||
import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.ui.theme.*
|
||||
import chat.simplex.common.views.helpers.*
|
||||
@@ -49,7 +53,7 @@ fun ModalData.ChooseServerOperators(
|
||||
Column(Modifier.fillMaxWidth().padding(horizontal = DEFAULT_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
OnboardingInformationButton(
|
||||
stringResource(MR.strings.how_it_helps_privacy),
|
||||
onClick = { modalManager.showModal { ChooseServerOperatorsInfoView() } }
|
||||
onClick = { modalManager.showModal { ChooseServerOperatorsInfoView(modalManager) } }
|
||||
)
|
||||
}
|
||||
|
||||
@@ -57,7 +61,8 @@ fun ModalData.ChooseServerOperators(
|
||||
Column((
|
||||
if (appPlatform.isDesktop) Modifier.width(600.dp).align(Alignment.CenterHorizontally) else Modifier)
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = DEFAULT_PADDING)
|
||||
.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
serverOperators.value.forEachIndexed { index, srvOperator ->
|
||||
OperatorCheckView(srvOperator, selectedOperatorIds)
|
||||
@@ -67,6 +72,7 @@ fun ModalData.ChooseServerOperators(
|
||||
}
|
||||
Spacer(Modifier.height(DEFAULT_PADDING_HALF))
|
||||
|
||||
SectionTextFooter(annotatedStringResource(MR.strings.onboarding_network_operators_simplex_flux_agreement), textAlign = TextAlign.Center)
|
||||
SectionTextFooter(annotatedStringResource(MR.strings.onboarding_network_operators_configure_via_settings), textAlign = TextAlign.Center)
|
||||
}
|
||||
Spacer(Modifier.weight(1f))
|
||||
@@ -169,7 +175,7 @@ private fun ReviewConditionsButton(
|
||||
modalManager: ModalManager
|
||||
) {
|
||||
OnboardingActionButton(
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
labelId = MR.strings.operator_review_conditions,
|
||||
onboarding = null,
|
||||
enabled = enabled,
|
||||
@@ -184,7 +190,7 @@ private fun ReviewConditionsButton(
|
||||
@Composable
|
||||
private fun SetOperatorsButton(enabled: Boolean, onboarding: Boolean, serverOperators: State<List<ServerOperator>>, selectedOperatorIds: State<Set<Long>>, close: () -> Unit) {
|
||||
OnboardingActionButton(
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
labelId = MR.strings.onboarding_network_operators_update,
|
||||
onboarding = null,
|
||||
enabled = enabled,
|
||||
@@ -206,7 +212,7 @@ private fun SetOperatorsButton(enabled: Boolean, onboarding: Boolean, serverOper
|
||||
@Composable
|
||||
private fun ContinueButton(enabled: Boolean, onboarding: Boolean, close: () -> Unit) {
|
||||
OnboardingActionButton(
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
labelId = MR.strings.onboarding_network_operators_continue,
|
||||
onboarding = null,
|
||||
enabled = enabled,
|
||||
@@ -234,7 +240,7 @@ private fun ReviewConditionsView(
|
||||
// remembering both since we don't want to reload the view after the user accepts conditions
|
||||
val operatorsWithConditionsAccepted = remember { chatModel.conditions.value.serverOperators.filter { it.conditionsAcceptance.conditionsAccepted } }
|
||||
val acceptForOperators = remember { selectedOperators.value.filter { !it.conditionsAcceptance.conditionsAccepted } }
|
||||
ColumnWithScrollBar(modifier = Modifier.fillMaxSize().padding(horizontal = DEFAULT_PADDING)) {
|
||||
ColumnWithScrollBar(modifier = Modifier.fillMaxSize().padding(horizontal = if (onboarding) DEFAULT_ONBOARDING_HORIZONTAL_PADDING else DEFAULT_PADDING)) {
|
||||
AppBarTitle(stringResource(MR.strings.operator_conditions_of_use), withPadding = false, enableAlphaChanges = false, bottomPadding = DEFAULT_PADDING)
|
||||
if (operatorsWithConditionsAccepted.isNotEmpty()) {
|
||||
ReadableText(MR.strings.operator_conditions_accepted_for_some, args = operatorsWithConditionsAccepted.joinToString(", ") { it.legalName_ })
|
||||
@@ -267,7 +273,7 @@ private fun AcceptConditionsButton(
|
||||
}
|
||||
}
|
||||
OnboardingActionButton(
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier,
|
||||
modifier = if (appPlatform.isAndroid) Modifier.fillMaxWidth() else Modifier,
|
||||
labelId = MR.strings.accept_conditions,
|
||||
onboarding = null,
|
||||
onclick = {
|
||||
@@ -338,11 +344,49 @@ private fun enabledOperators(operators: List<ServerOperator>, selectedOperatorId
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun ChooseServerOperatorsInfoView() {
|
||||
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING)) {
|
||||
AppBarTitle(stringResource(MR.strings.onboarding_network_operators), withPadding = false)
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_different_operators))
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_for_routing))
|
||||
private fun ChooseServerOperatorsInfoView(
|
||||
modalManager: ModalManager
|
||||
) {
|
||||
ColumnWithScrollBar {
|
||||
AppBarTitle(stringResource(MR.strings.onboarding_network_operators))
|
||||
|
||||
Column(
|
||||
Modifier.padding(horizontal = DEFAULT_PADDING)
|
||||
) {
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_different_operators))
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_cant_see_who_talks_to_whom))
|
||||
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_for_routing))
|
||||
}
|
||||
|
||||
SectionDividerSpaced()
|
||||
|
||||
SectionView(title = stringResource(MR.strings.onboarding_network_about_operators).uppercase()) {
|
||||
chatModel.conditions.value.serverOperators.forEach { op ->
|
||||
ServerOperatorRow(op, modalManager)
|
||||
}
|
||||
}
|
||||
SectionBottomSpacer()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable()
|
||||
private fun ServerOperatorRow(
|
||||
operator: ServerOperator,
|
||||
modalManager: ModalManager
|
||||
) {
|
||||
SectionItemView(
|
||||
{
|
||||
modalManager.showModalCloseable { close ->
|
||||
OperatorInfoView(operator)
|
||||
}
|
||||
}
|
||||
) {
|
||||
Image(
|
||||
painterResource(operator.logo),
|
||||
operator.tradeName,
|
||||
modifier = Modifier.size(24.dp)
|
||||
)
|
||||
TextIconSpaced()
|
||||
Text(operator.tradeName)
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -35,14 +35,14 @@ fun SetNotificationsMode(m: ChatModel) {
|
||||
AppBarTitle(stringResource(MR.strings.onboarding_notifications_mode_title), bottomPadding = DEFAULT_PADDING)
|
||||
}
|
||||
val currentMode = rememberSaveable { mutableStateOf(NotificationsMode.default) }
|
||||
Column(Modifier.padding(horizontal = DEFAULT_PADDING).fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
Column(Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
OnboardingInformationButton(
|
||||
stringResource(MR.strings.onboarding_notifications_mode_subtitle),
|
||||
onClick = { ModalManager.fullscreen.showModalCloseable { NotificationBatteryUsageInfo() } }
|
||||
)
|
||||
}
|
||||
Spacer(Modifier.weight(1f))
|
||||
Column(Modifier.padding(horizontal = DEFAULT_PADDING)) {
|
||||
Column(Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING)) {
|
||||
SelectableCard(currentMode, NotificationsMode.SERVICE, stringResource(MR.strings.onboarding_notifications_mode_service), annotatedStringResource(MR.strings.onboarding_notifications_mode_service_desc_short)) {
|
||||
currentMode.value = NotificationsMode.SERVICE
|
||||
}
|
||||
@@ -56,7 +56,7 @@ fun SetNotificationsMode(m: ChatModel) {
|
||||
Spacer(Modifier.weight(1f))
|
||||
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
OnboardingActionButton(
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier,
|
||||
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier,
|
||||
labelId = MR.strings.use_chat,
|
||||
onboarding = OnboardingStage.OnboardingComplete,
|
||||
onclick = {
|
||||
|
||||
+1
-1
@@ -190,7 +190,7 @@ private fun SetupDatabasePassphraseLayout(
|
||||
@Composable
|
||||
private fun SetPassphraseButton(disabled: Boolean, onClick: () -> Unit) {
|
||||
OnboardingActionButton(
|
||||
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
|
||||
labelId = MR.strings.set_database_passphrase,
|
||||
onboarding = null,
|
||||
onclick = onClick,
|
||||
|
||||
+40
-7
@@ -5,6 +5,7 @@ import androidx.compose.desktop.ui.tooling.preview.Preview
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
@@ -13,6 +14,8 @@ import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.layout.layout
|
||||
import androidx.compose.ui.text.TextLayoutResult
|
||||
import dev.icerock.moko.resources.compose.painterResource
|
||||
import dev.icerock.moko.resources.compose.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
@@ -27,6 +30,8 @@ import chat.simplex.common.views.migration.MigrateToDeviceView
|
||||
import chat.simplex.common.views.migration.MigrationToState
|
||||
import chat.simplex.res.MR
|
||||
import dev.icerock.moko.resources.StringResource
|
||||
import kotlin.math.ceil
|
||||
import kotlin.math.floor
|
||||
|
||||
@Composable
|
||||
fun SimpleXInfo(chatModel: ChatModel, onboarding: Boolean = true) {
|
||||
@@ -52,7 +57,7 @@ fun SimpleXInfoLayout(
|
||||
user: User?,
|
||||
onboardingStage: SharedPreference<OnboardingStage>?
|
||||
) {
|
||||
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
Box(Modifier.widthIn(max = if (appPlatform.isAndroid) 250.dp else 500.dp).padding(top = DEFAULT_PADDING + 8.dp), contentAlignment = Alignment.Center) {
|
||||
SimpleXLogo()
|
||||
}
|
||||
@@ -73,7 +78,7 @@ fun SimpleXInfoLayout(
|
||||
Column(Modifier.fillMaxHeight().weight(1f)) { }
|
||||
|
||||
if (onboardingStage != null) {
|
||||
Column(Modifier.padding(horizontal = DEFAULT_PADDING).widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally,) {
|
||||
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally,) {
|
||||
OnboardingActionButton(user, onboardingStage)
|
||||
TextButtonBelowOnboardingButton(stringResource(MR.strings.migrate_from_another_device)) {
|
||||
chatModel.migrationState.value = MigrationToState.PasteOrScanLink
|
||||
@@ -139,7 +144,7 @@ fun OnboardingActionButton(
|
||||
shape = CircleShape,
|
||||
enabled = enabled,
|
||||
// elevation = ButtonDefaults.elevation(defaultElevation = 0.dp, focusedElevation = 0.dp, pressedElevation = 0.dp, hoveredElevation = 0.dp),
|
||||
contentPadding = PaddingValues(horizontal = if (icon == null) DEFAULT_PADDING * 2 else DEFAULT_PADDING * 1.5f, vertical = DEFAULT_PADDING),
|
||||
contentPadding = PaddingValues(horizontal = if (icon == null) DEFAULT_PADDING * 2 else DEFAULT_PADDING * 1.5f, vertical = 17.dp),
|
||||
colors = ButtonDefaults.buttonColors(MaterialTheme.colors.primary, disabledBackgroundColor = MaterialTheme.colors.secondary)
|
||||
) {
|
||||
if (icon != null) {
|
||||
@@ -153,8 +158,8 @@ fun OnboardingActionButton(
|
||||
fun TextButtonBelowOnboardingButton(text: String, onClick: (() -> Unit)?) {
|
||||
val state = getKeyboardState()
|
||||
val enabled = onClick != null
|
||||
val topPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING_HALF)
|
||||
val bottomPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING_HALF)
|
||||
val topPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else 7.5.dp)
|
||||
val bottomPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else 7.5.dp)
|
||||
if ((appPlatform.isAndroid && state.value == KeyboardState.Closed) || topPadding > 0.dp) {
|
||||
TextButton({ onClick?.invoke() }, Modifier.padding(top = topPadding, bottom = bottomPadding).clip(CircleShape), enabled = enabled) {
|
||||
Text(
|
||||
@@ -181,13 +186,41 @@ fun OnboardingInformationButton(
|
||||
.clip(CircleShape)
|
||||
.clickable { onClick() }
|
||||
) {
|
||||
Row(Modifier.padding(8.dp), horizontalArrangement = Arrangement.spacedBy(4.dp) ) {
|
||||
Row(Modifier.padding(8.dp), horizontalArrangement = Arrangement.spacedBy(4.dp)) {
|
||||
Icon(
|
||||
painterResource(MR.images.ic_info),
|
||||
null,
|
||||
tint = MaterialTheme.colors.primary
|
||||
)
|
||||
Text(text, style = MaterialTheme.typography.button, color = MaterialTheme.colors.primary)
|
||||
// https://issuetracker.google.com/issues/206039942#comment32
|
||||
var textLayoutResult: TextLayoutResult? by remember { mutableStateOf(null) }
|
||||
Text(
|
||||
text,
|
||||
Modifier
|
||||
.layout { measurable, constraints ->
|
||||
val placeable = measurable.measure(constraints)
|
||||
val newTextLayoutResult = textLayoutResult
|
||||
|
||||
if (newTextLayoutResult == null || newTextLayoutResult.lineCount == 0) {
|
||||
// Default behavior if there is no text or the text layout is not measured yet
|
||||
layout(placeable.width, placeable.height) {
|
||||
placeable.placeRelative(0, 0)
|
||||
}
|
||||
} else {
|
||||
val minX = (0 until newTextLayoutResult.lineCount).minOf(newTextLayoutResult::getLineLeft)
|
||||
val maxX = (0 until newTextLayoutResult.lineCount).maxOf(newTextLayoutResult::getLineRight)
|
||||
|
||||
layout(ceil(maxX - minX).toInt(), placeable.height) {
|
||||
placeable.place(-floor(minX).toInt(), 0)
|
||||
}
|
||||
}
|
||||
},
|
||||
onTextLayout = {
|
||||
textLayoutResult = it
|
||||
},
|
||||
style = MaterialTheme.typography.button,
|
||||
color = MaterialTheme.colors.primary
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+38
-37
@@ -40,6 +40,8 @@ import chat.simplex.res.MR
|
||||
import dev.icerock.moko.resources.ImageResource
|
||||
import dev.icerock.moko.resources.compose.painterResource
|
||||
import dev.icerock.moko.resources.compose.stringResource
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@Composable
|
||||
fun ConnectDesktopView(close: () -> Unit) {
|
||||
@@ -233,7 +235,7 @@ private fun FoundDesktop(
|
||||
SectionSpacer()
|
||||
|
||||
if (compatible) {
|
||||
SectionItemView({ confirmKnownDesktop(sessionAddress, rc) }) {
|
||||
SectionItemView({ withBGApi { confirmKnownDesktop(sessionAddress, rc) } }) {
|
||||
Icon(painterResource(MR.images.ic_check), generalGetString(MR.strings.connect_button), tint = MaterialTheme.colors.secondary)
|
||||
TextIconSpaced(false)
|
||||
Text(generalGetString(MR.strings.connect_button))
|
||||
@@ -356,7 +358,7 @@ private fun ScanDesktopAddressView(sessionAddress: MutableState<String>) {
|
||||
SectionView(stringResource(MR.strings.scan_qr_code_from_desktop).uppercase()) {
|
||||
QRCodeScanner { text ->
|
||||
sessionAddress.value = text
|
||||
processDesktopQRCode(sessionAddress, text)
|
||||
connectDesktopAddress(sessionAddress, text)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -398,7 +400,7 @@ private fun DesktopAddressView(sessionAddress: MutableState<String>) {
|
||||
stringResource(MR.strings.connect_to_desktop),
|
||||
disabled = sessionAddress.value.isEmpty(),
|
||||
click = {
|
||||
connectDesktopAddress(sessionAddress, sessionAddress.value)
|
||||
withBGApi { connectDesktopAddress(sessionAddress, sessionAddress.value) }
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -461,10 +463,6 @@ private suspend fun updateRemoteCtrls(remoteCtrls: SnapshotStateList<RemoteCtrlI
|
||||
}
|
||||
}
|
||||
|
||||
private fun processDesktopQRCode(sessionAddress: MutableState<String>, resp: String) {
|
||||
connectDesktopAddress(sessionAddress, resp)
|
||||
}
|
||||
|
||||
private fun findKnownDesktop(showConnectScreen: MutableState<Boolean>) {
|
||||
withBGApi {
|
||||
if (controller.findKnownRemoteCtrl()) {
|
||||
@@ -478,45 +476,48 @@ private fun findKnownDesktop(showConnectScreen: MutableState<Boolean>) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun confirmKnownDesktop(sessionAddress: MutableState<String>, rc: RemoteCtrlInfo) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.confirmRemoteCtrl(rc.remoteCtrlId)
|
||||
private suspend fun confirmKnownDesktop(sessionAddress: MutableState<String>, rc: RemoteCtrlInfo): Boolean {
|
||||
return withContext(Dispatchers.Default) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.confirmRemoteCtrl(rc.remoteCtrlId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun connectDesktopAddress(sessionAddress: MutableState<String>, addr: String) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.connectRemoteCtrl(addr)
|
||||
private suspend fun connectDesktopAddress(sessionAddress: MutableState<String>, addr: String): Boolean {
|
||||
return withContext(Dispatchers.Default) {
|
||||
connectDesktop(sessionAddress) {
|
||||
controller.connectRemoteCtrl(addr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun connectDesktop(sessionAddress: MutableState<String>, connect: suspend () -> Pair<SomeRemoteCtrl?, CR.ChatCmdError?>) {
|
||||
withBGApi {
|
||||
val res = connect()
|
||||
if (res.first != null) {
|
||||
val (rc_, ctrlAppInfo, v) = res.first!!
|
||||
sessionAddress.value = ""
|
||||
chatModel.remoteCtrlSession.value = RemoteCtrlSession(
|
||||
ctrlAppInfo = ctrlAppInfo,
|
||||
appVersion = v,
|
||||
sessionState = UIRemoteCtrlSessionState.Connecting(remoteCtrl_ = rc_)
|
||||
)
|
||||
} else {
|
||||
val e = res.second ?: return@withBGApi
|
||||
when {
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadInvitation -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorChat && e.chatError.errorType is ChatErrorType.CommandError -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadVersion -> showBadVersionAlert(v = e.chatError.remoteCtrlError.appVersion)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.VERSION -> showBadVersionAlert(v = null)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.CTRL_AUTH -> showDesktopDisconnectedErrorAlert()
|
||||
else -> {
|
||||
val errMsg = "${e.responseType}: ${e.details}"
|
||||
Log.e(TAG, "bad response: $errMsg")
|
||||
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error), errMsg)
|
||||
}
|
||||
private suspend fun connectDesktop(sessionAddress: MutableState<String>, connect: suspend () -> Pair<SomeRemoteCtrl?, CR.ChatCmdError?>): Boolean {
|
||||
val res = connect()
|
||||
if (res.first != null) {
|
||||
val (rc_, ctrlAppInfo, v) = res.first!!
|
||||
sessionAddress.value = ""
|
||||
chatModel.remoteCtrlSession.value = RemoteCtrlSession(
|
||||
ctrlAppInfo = ctrlAppInfo,
|
||||
appVersion = v,
|
||||
sessionState = UIRemoteCtrlSessionState.Connecting(remoteCtrl_ = rc_)
|
||||
)
|
||||
} else {
|
||||
val e = res.second ?: return false
|
||||
when {
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadInvitation -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorChat && e.chatError.errorType is ChatErrorType.CommandError -> showBadInvitationErrorAlert()
|
||||
e.chatError is ChatError.ChatErrorRemoteCtrl && e.chatError.remoteCtrlError is RemoteCtrlError.BadVersion -> showBadVersionAlert(v = e.chatError.remoteCtrlError.appVersion)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.VERSION -> showBadVersionAlert(v = null)
|
||||
e.chatError is ChatError.ChatErrorAgent && e.chatError.agentError is AgentErrorType.RCP && e.chatError.agentError.rcpErr is RCErrorType.CTRL_AUTH -> showDesktopDisconnectedErrorAlert()
|
||||
else -> {
|
||||
val errMsg = "${e.responseType}: ${e.details}"
|
||||
Log.e(TAG, "bad response: $errMsg")
|
||||
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error), errMsg)
|
||||
}
|
||||
}
|
||||
}
|
||||
return res.first != null
|
||||
}
|
||||
|
||||
private fun verifyDesktopSessionCode(remoteCtrls: SnapshotStateList<RemoteCtrlInfo>, sessCode: String) {
|
||||
|
||||
+12
-8
@@ -410,7 +410,7 @@ fun OperatorViewLayout(
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun OperatorInfoView(serverOperator: ServerOperator) {
|
||||
fun OperatorInfoView(serverOperator: ServerOperator) {
|
||||
ColumnWithScrollBar {
|
||||
AppBarTitle(stringResource(MR.strings.operator_info_title))
|
||||
|
||||
@@ -427,23 +427,27 @@ private fun OperatorInfoView(serverOperator: ServerOperator) {
|
||||
|
||||
SectionDividerSpaced(maxBottomPadding = false)
|
||||
|
||||
val uriHandler = LocalUriHandler.current
|
||||
SectionView {
|
||||
SectionItemView {
|
||||
Column(verticalArrangement = Arrangement.spacedBy(10.dp)) {
|
||||
serverOperator.info.description.forEach { d ->
|
||||
Text(d)
|
||||
}
|
||||
val website = serverOperator.info.website
|
||||
Text(website, color = MaterialTheme.colors.primary, modifier = Modifier.clickable { uriHandler.openUriCatching(website) })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SectionDividerSpaced()
|
||||
|
||||
SectionView(generalGetString(MR.strings.operator_website).uppercase()) {
|
||||
SectionItemView {
|
||||
val website = serverOperator.info.website
|
||||
val uriHandler = LocalUriHandler.current
|
||||
Text(website, color = MaterialTheme.colors.primary, modifier = Modifier.clickable { uriHandler.openUriCatching(website) })
|
||||
val selfhost = serverOperator.info.selfhost
|
||||
if (selfhost != null) {
|
||||
SectionDividerSpaced(maxBottomPadding = false)
|
||||
SectionView {
|
||||
SectionItemView {
|
||||
val (text, link) = selfhost
|
||||
Text(text, color = MaterialTheme.colors.primary, modifier = Modifier.clickable { uriHandler.openUriCatching(link) })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -26,6 +26,7 @@ fun ScanProtocolServerLayout(rhId: Long?, onNext: (UserServer) -> Unit) {
|
||||
text = generalGetString(MR.strings.smp_servers_check_address)
|
||||
)
|
||||
}
|
||||
res != null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -71,6 +71,8 @@
|
||||
<string name="connection_local_display_name">connection %1$d</string>
|
||||
<string name="display_name_connection_established">connection established</string>
|
||||
<string name="display_name_invited_to_connect">invited to connect</string>
|
||||
<string name="display_name_requested_to_connect">requested to connect</string>
|
||||
<string name="display_name_accepted_invitation">accepted invitation</string>
|
||||
<string name="display_name_connecting">connecting…</string>
|
||||
<string name="description_you_shared_one_time_link">you shared one-time link</string>
|
||||
<string name="description_you_shared_one_time_link_incognito">you shared one-time link incognito</string>
|
||||
@@ -522,6 +524,10 @@
|
||||
<string name="sync_connection_force_question">Renegotiate encryption?</string>
|
||||
<string name="sync_connection_force_desc">The encryption is working and the new encryption agreement is not required. It may result in connection errors!</string>
|
||||
<string name="sync_connection_force_confirm">Renegotiate</string>
|
||||
<string name="sync_connection_question">Fix connection?</string>
|
||||
<string name="sync_connection_desc">Connection requires encryption renegotiation.</string>
|
||||
<string name="sync_connection_confirm">Fix</string>
|
||||
<string name="encryption_renegotiation_in_progress">Encryption renegotiation in progress.</string>
|
||||
<string name="view_security_code">View security code</string>
|
||||
<string name="verify_security_code">Verify security code</string>
|
||||
|
||||
@@ -1075,8 +1081,11 @@
|
||||
<!-- ChooseServerOperators.kt -->
|
||||
<string name="onboarding_choose_server_operators">Server operators</string>
|
||||
<string name="onboarding_network_operators">Network operators</string>
|
||||
<string name="onboarding_network_operators_app_will_use_different_operators">When more than one network operator is enabled, the app will use the servers of different operators for each conversation.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_for_routing">For example, if you receive messages via SimpleX Chat server, the app will use one of Flux servers for private routing.</string>
|
||||
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_different_operators">The app protects your privacy by using different operators in each conversation.</string>
|
||||
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">When more than one operator is enabled, none of them has metadata to learn who communicates with whom.</string>
|
||||
<string name="onboarding_network_operators_app_will_use_for_routing">For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</string>
|
||||
<string name="onboarding_network_about_operators">About operators</string>
|
||||
<string name="onboarding_select_network_operators_to_use">Select network operators to use.</string>
|
||||
<string name="how_it_helps_privacy">How it helps privacy</string>
|
||||
<string name="onboarding_network_operators_configure_via_settings">You can configure servers via settings.</string>
|
||||
@@ -1305,7 +1314,6 @@
|
||||
<string name="chat_database_deleted">Chat database deleted</string>
|
||||
<string name="restart_the_app_to_create_a_new_chat_profile">Restart the app to create a new chat profile.</string>
|
||||
<string name="you_must_use_the_most_recent_version_of_database">You must use the most recent version of your chat database on one device ONLY, otherwise you may stop receiving the messages from some contacts.</string>
|
||||
<string name="stop_chat_to_enable_database_actions">Stop chat to enable database actions.</string>
|
||||
<string name="files_and_media_section">Files & media</string>
|
||||
<string name="delete_files_and_media_for_all_users">Delete files for all chat profiles</string>
|
||||
<string name="delete_files_and_media_all">Delete all files</string>
|
||||
@@ -1396,7 +1404,8 @@
|
||||
<string name="database_downgrade">Database downgrade</string>
|
||||
<string name="incompatible_database_version">Incompatible database version</string>
|
||||
<string name="confirm_database_upgrades">Confirm database upgrades</string>
|
||||
<string name="one_hand_ui">Reachable chat toolbar</string>
|
||||
<string name="one_hand_ui">Reachable app toolbars</string>
|
||||
<string name="chat_bottom_bar">Reachable chat toolbar</string>
|
||||
<string name="one_hand_ui_card_title">Toggle chat list:</string>
|
||||
<string name="one_hand_ui_change_instruction">You can change it in Appearance settings.</string>
|
||||
<string name="terminal_always_visible">Show console in new window</string>
|
||||
@@ -1744,10 +1753,9 @@
|
||||
<string name="use_servers_of_operator_x">Use %s</string>
|
||||
<string name="operator_conditions_failed_to_load">Current conditions text couldn\'t be loaded, you can review conditions via this link:</string>
|
||||
<string name="operator_conditions_accepted_for_some"><![CDATA[Conditions are already accepted for following operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[Same conditions will apply to operator <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Same conditions will apply to operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[The same conditions will apply to operator <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[The same conditions will apply to operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_will_be_applied"><![CDATA[These conditions will also apply for: <b>%s</b>.]]></string>
|
||||
<string name="operator_same_conditions_will_be_applied"><![CDATA[Same conditions will apply to operator: <b>%s</b>.]]></string>
|
||||
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Conditions will be accepted for operator(s): <b>%s</b>.]]></string>
|
||||
<string name="operators_conditions_will_also_apply"><![CDATA[These conditions will also apply for: <b>%s</b>.]]></string>
|
||||
<string name="view_conditions">View conditions</string>
|
||||
@@ -2398,7 +2406,7 @@
|
||||
<string name="servers_info_messages_sent">Messages sent</string>
|
||||
<string name="servers_info_messages_received">Messages received</string>
|
||||
<string name="servers_info_details">Details</string>
|
||||
<string name="servers_info_private_data_disclaimer">Starting from %s.\nAll data is private to your device.</string>
|
||||
<string name="servers_info_private_data_disclaimer">Starting from %s.\nAll data is kept private on your device..</string>
|
||||
<string name="servers_info_subscriptions_section_header">Message reception</string>
|
||||
<string name="servers_info_subscriptions_connections_subscribed">Active connections</string>
|
||||
<string name="servers_info_subscriptions_connections_pending">Pending</string>
|
||||
|
||||
@@ -1133,7 +1133,6 @@
|
||||
<string name="save_preferences_question">Запази настройките\?</string>
|
||||
<string name="icon_descr_speaker_on">Високоговорителят е включен</string>
|
||||
<string name="icon_descr_speaker_off">Високоговорителят е изключен</string>
|
||||
<string name="stop_chat_to_enable_database_actions">Спрете чата, за да активирате действията с базата данни.</string>
|
||||
<string name="role_in_group">Роля</string>
|
||||
<string name="network_options_save">Запази</string>
|
||||
<string name="reset_color">Нулирай цветовете</string>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user