mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
Compare commits
243 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| afa6083cb3 | |||
| e20a4e54c3 | |||
| 1f8c69ec23 | |||
| 35c37263b8 | |||
| 9b70599cc5 | |||
| a4a11f99d2 | |||
| 7c8955fcdb | |||
| f922064f5c | |||
| 110839627f | |||
| 160c253966 | |||
| c90b71120f | |||
| 3ec029e489 | |||
| f4c799aced | |||
| d970470702 | |||
| 3d7434c52f | |||
| 9ee74bd36e | |||
| 0a4ff2e35f | |||
| a3550df893 | |||
| 3778698a6e | |||
| cf7a16e857 | |||
| bef1597fa1 | |||
| f06118835d | |||
| fa9e50a904 | |||
| 932a65630c | |||
| b649b64999 | |||
| e94ead3a4f | |||
| 42d7c20a47 | |||
| c78df15cd6 | |||
| 701bef2a50 | |||
| 560d9b1b03 | |||
| b82349164f | |||
| 30df42d20d | |||
| 01345cd423 | |||
| 38a2f3b458 | |||
| f739c7f226 | |||
| 28fb67fe92 | |||
| d2b643de01 | |||
| bae9685950 | |||
| ccd34f5ab1 | |||
| dd8081a9d4 | |||
| d65909cb53 | |||
| e99b543c2f | |||
| 312d315d73 | |||
| cdf5520084 | |||
| 170e8ddeaf | |||
| 68f7956512 | |||
| e424b3eb66 | |||
| fb7a414e3c | |||
| 5966d6d648 | |||
| c6ebc9a4d9 | |||
| 05ec8b0676 | |||
| 6980f643ff | |||
| b60dd3e3e8 | |||
| 17a5770442 | |||
| 439bbc15a5 | |||
| 3688141972 | |||
| d79f8f8345 | |||
| 923ad7470c | |||
| 833abb252e | |||
| c60207f211 | |||
| d5665a421f | |||
| b2aa0ffc3c | |||
| e50a5cfaa1 | |||
| 73ec44a9be | |||
| 59fe6ab8ce | |||
| ec64be7c89 | |||
| 41984e56c0 | |||
| c435510b2e | |||
| de65d0e0a2 | |||
| 9cde37c6f5 | |||
| 9514acf6aa | |||
| 40d54f3f16 | |||
| 3249c5e463 | |||
| e440fba582 | |||
| 43cedbce26 | |||
| ebad009553 | |||
| 35cf113d98 | |||
| e82d2cbea2 | |||
| a0e056994e | |||
| e4d8ea17fc | |||
| e69db17804 | |||
| 9282cca396 | |||
| ad2eaeb004 | |||
| 3f44c9af24 | |||
| 4296515473 | |||
| 88830a2e09 | |||
| c8a269e391 | |||
| a45897007c | |||
| 42ea1df342 | |||
| 47214e33ea | |||
| ff239d81e5 | |||
| 0a6e47dd61 | |||
| ee75219ed3 | |||
| 2e337a753f | |||
| 9918d91def | |||
| 82dd5751c1 | |||
| de637fab50 | |||
| cb49f6f01d | |||
| 6d0a83aa58 | |||
| 05f57e98ad | |||
| 6a66525927 | |||
| 9530a6055a | |||
| f5ed8debcc | |||
| 355d2449c5 | |||
| f7382cdd6f | |||
| dc8d10d068 | |||
| 951245d33f | |||
| 521b901cc9 | |||
| 6311ba451b | |||
| 754c76d6fd | |||
| aea7ff1c89 | |||
| 77ac972e09 | |||
| 256f85024f | |||
| 870f9e42dd | |||
| 0a4a3a24e1 | |||
| 8a66390a78 | |||
| 3d48eded3d | |||
| 6546426ec0 | |||
| 4a7ceb00fb | |||
| 53560378bb | |||
| cdb3b6aafd | |||
| 9f3d3e8ba4 | |||
| 047aad592e | |||
| 087acd9180 | |||
| 0b822e4a5c | |||
| f8a469488e | |||
| 3b5e806418 | |||
| 79e208193a | |||
| ef5c13b1c1 | |||
| 38533213d2 | |||
| 5f1aa6fa9d | |||
| b0002fe07d | |||
| ef21fd1d26 | |||
| 4a311b9578 | |||
| b8da5e225b | |||
| f27de052cf | |||
| 5cc537f14c | |||
| dc8ca4cf89 | |||
| b62dd801f1 | |||
| 0c096e2c89 | |||
| cc127e56fe | |||
| 1781495ee3 | |||
| 831231d8e6 | |||
| 45102442f4 | |||
| f323c8e112 | |||
| 3bdc6b5e28 | |||
| d8373262bc | |||
| 3597d34716 | |||
| bd4259e89e | |||
| 55ead740cc | |||
| 5ef0eda2d7 | |||
| 49a9b0e7d6 | |||
| 45ada450a2 | |||
| 307a1b3c5e | |||
| ed6b3bbead | |||
| 901610eec5 | |||
| 7d4127c51d | |||
| 13215d91d7 | |||
| e1a8099474 | |||
| daa8d9bb21 | |||
| 5fcbade1bc | |||
| 3937ffa9a6 | |||
| 80ddb50e1c | |||
| f6e66f1c53 | |||
| 0c23ff9ae3 | |||
| 1570bc2b99 | |||
| 1e2104cabf | |||
| f3014f258d | |||
| f0991cc0ba | |||
| 74b78a8d7b | |||
| 82cd70a75c | |||
| fe4eb7b5af | |||
| c459e71d02 | |||
| 2516d5a393 | |||
| 477d98d75a | |||
| 4253cd7fb9 | |||
| ca78958667 | |||
| 1f5b80d560 | |||
| 2de111e76c | |||
| 8343285d93 | |||
| 5dbe2b2745 | |||
| fb9485190d | |||
| 6881600e06 | |||
| 9ed723bafa | |||
| 9ded1c9821 | |||
| bb374c68b1 | |||
| c3e82a6a4e | |||
| 7c12e82042 | |||
| e7e66ff873 | |||
| c4d7e5307c | |||
| d6b9a45a39 | |||
| 7fd3b4d6ba | |||
| 4004aafbc5 | |||
| 95008eeeaf | |||
| c7a8992043 | |||
| ea2b5f2ccf | |||
| ed9f277421 | |||
| 5c14c3b349 | |||
| d8fb31f167 | |||
| 02db38ffd3 | |||
| 7692195bfa | |||
| c435cbdc7b | |||
| effc281271 | |||
| 41eb2e5689 | |||
| 67d74a0a27 | |||
| f66405e79b | |||
| 74d186af16 | |||
| 187fef0c5a | |||
| 4782cab507 | |||
| bcbee67709 | |||
| 2501cbe55d | |||
| 2bd049db87 | |||
| 6b8b9ab4fd | |||
| 30db24265e | |||
| 316d605899 | |||
| b4257f7767 | |||
| a3f2d5c919 | |||
| cf46469cd5 | |||
| 0312fde818 | |||
| 9defa44f0c | |||
| 915b53054c | |||
| f81557b4fd | |||
| e273bd1239 | |||
| a63caf4640 | |||
| e7f0234134 | |||
| 340552321e | |||
| 98a3fc214d | |||
| 6a578cfe3c | |||
| dacc075fe8 | |||
| 55418e2bc0 | |||
| f2b5c0f3a8 | |||
| 5ebdf5dba9 | |||
| 8e045764df | |||
| 503d3d77e6 | |||
| 81bd7d97c5 | |||
| 8f57925067 | |||
| 9bf99db82e | |||
| 5615cdbf1a | |||
| d802ae0058 | |||
| 8f2278198c | |||
| 10937a5a4e | |||
| 6aff6e9804 | |||
| 95477cae7e |
@@ -50,6 +50,10 @@ class ItemsModel: ObservableObject {
|
||||
var reversedChatItems: [ChatItem] = [] {
|
||||
willSet { publisher.send() }
|
||||
}
|
||||
var itemAdded = false {
|
||||
willSet { publisher.send() }
|
||||
}
|
||||
|
||||
init() {
|
||||
publisher
|
||||
.throttle(for: 0.25, scheduler: DispatchQueue.main, latest: true)
|
||||
@@ -228,10 +232,17 @@ final class ChatModel: ObservableObject {
|
||||
chats.firstIndex(where: { $0.id == id })
|
||||
}
|
||||
|
||||
func addChat(_ chat: Chat, at position: Int = 0) {
|
||||
withAnimation {
|
||||
chats.insert(chat, at: position)
|
||||
func addChat(_ chat: Chat) {
|
||||
if chatId == nil {
|
||||
withAnimation { addChat_(chat, at: 0) }
|
||||
} else {
|
||||
addChat_(chat, at: 0)
|
||||
}
|
||||
popChatCollector.throttlePopChat(chat.chatInfo.id, currentPosition: 0)
|
||||
}
|
||||
|
||||
func addChat_(_ chat: Chat, at position: Int = 0) {
|
||||
chats.insert(chat, at: position)
|
||||
}
|
||||
|
||||
func updateChatInfo(_ cInfo: ChatInfo) {
|
||||
@@ -305,10 +316,11 @@ final class ChatModel: ObservableObject {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
addChat(Chat(c), at: i)
|
||||
addChat_(Chat(c), at: i)
|
||||
}
|
||||
}
|
||||
NtfManager.shared.setNtfBadgeCount(totalUnreadCountForAllUsers())
|
||||
popChatCollector.clear()
|
||||
}
|
||||
|
||||
// func addGroup(_ group: SimpleXChat.Group) {
|
||||
@@ -335,7 +347,7 @@ final class ChatModel: ObservableObject {
|
||||
if case .rcvNew = cItem.meta.itemStatus {
|
||||
unreadCollector.changeUnreadCounter(cInfo.id, by: 1)
|
||||
}
|
||||
popChatCollector.addChat(cInfo.id)
|
||||
popChatCollector.throttlePopChat(cInfo.id, currentPosition: i)
|
||||
} else {
|
||||
addChat(Chat(chatInfo: cInfo, chatItems: [cItem]))
|
||||
}
|
||||
@@ -381,6 +393,7 @@ final class ChatModel: ObservableObject {
|
||||
ci.meta.itemStatus = status
|
||||
}
|
||||
im.reversedChatItems.insert(ci, at: hasLiveDummy ? 1 : 0)
|
||||
im.itemAdded = true
|
||||
}
|
||||
return true
|
||||
}
|
||||
@@ -475,6 +488,7 @@ final class ChatModel: ObservableObject {
|
||||
let cItem = ChatItem.liveDummy(chatInfo.chatType)
|
||||
withAnimation {
|
||||
im.reversedChatItems.insert(cItem, at: 0)
|
||||
im.itemAdded = true
|
||||
}
|
||||
return cItem
|
||||
}
|
||||
@@ -610,29 +624,61 @@ final class ChatModel: ObservableObject {
|
||||
class PopChatCollector {
|
||||
private let subject = PassthroughSubject<Void, Never>()
|
||||
private var bag = Set<AnyCancellable>()
|
||||
private var chatsToPop: [ChatId: Date] = [:]
|
||||
private let popTsComparator = KeyPathComparator<Chat>(\.popTs, order: .reverse)
|
||||
|
||||
init() {
|
||||
subject
|
||||
.throttle(for: 2, scheduler: DispatchQueue.main, latest: true)
|
||||
.sink {
|
||||
let m = ChatModel.shared
|
||||
if m.chatId == nil {
|
||||
withAnimation {
|
||||
m.chats = m.chats.sorted(using: KeyPathComparator(\.popTs, order: .reverse))
|
||||
}
|
||||
} else {
|
||||
m.chats = m.chats.sorted(using: KeyPathComparator(\.popTs, order: .reverse))
|
||||
}
|
||||
}
|
||||
.sink { self.popCollectedChats() }
|
||||
.store(in: &bag)
|
||||
}
|
||||
|
||||
func addChat(_ chatId: ChatId) {
|
||||
if let index = ChatModel.shared.getChatIndex(chatId) {
|
||||
ChatModel.shared.chats[index].popTs = CFAbsoluteTimeGetCurrent()
|
||||
func throttlePopChat(_ chatId: ChatId, currentPosition: Int) {
|
||||
let m = ChatModel.shared
|
||||
if currentPosition > 0 && m.chatId == chatId {
|
||||
m.chatToTop = chatId
|
||||
}
|
||||
if currentPosition > 0 || !chatsToPop.isEmpty {
|
||||
chatsToPop[chatId] = Date.now
|
||||
subject.send()
|
||||
}
|
||||
}
|
||||
|
||||
func clear() {
|
||||
chatsToPop = [:]
|
||||
}
|
||||
|
||||
func popCollectedChats() {
|
||||
let m = ChatModel.shared
|
||||
var ixs: IndexSet = []
|
||||
var chs: [Chat] = []
|
||||
// collect chats that received updates
|
||||
for (chatId, popTs) in self.chatsToPop {
|
||||
// Currently opened chat is excluded, removing it from the list would navigate out of it
|
||||
// It will be popped to top later when user exits from the list.
|
||||
if m.chatId != chatId, let i = m.getChatIndex(chatId) {
|
||||
ixs.insert(i)
|
||||
let ch = m.chats[i]
|
||||
ch.popTs = popTs
|
||||
chs.append(ch)
|
||||
}
|
||||
}
|
||||
|
||||
let removeInsert = {
|
||||
m.chats.remove(atOffsets: ixs)
|
||||
// sort chats by pop timestamp in descending order
|
||||
m.chats.insert(contentsOf: chs.sorted(using: self.popTsComparator), at: 0)
|
||||
}
|
||||
|
||||
if m.chatId == nil {
|
||||
withAnimation { removeInsert() }
|
||||
} else {
|
||||
removeInsert()
|
||||
}
|
||||
|
||||
self.chatsToPop = [:]
|
||||
}
|
||||
}
|
||||
|
||||
private func markChatItemRead_(_ i: Int) {
|
||||
@@ -729,6 +775,7 @@ final class ChatModel: ObservableObject {
|
||||
|
||||
func popChat(_ id: String) {
|
||||
if let i = getChatIndex(id) {
|
||||
// no animation here, for it not to look like it just moved when leaving the chat
|
||||
popChat_(i)
|
||||
}
|
||||
}
|
||||
@@ -801,7 +848,13 @@ final class ChatModel: ObservableObject {
|
||||
}
|
||||
i += 1
|
||||
}
|
||||
return UnreadChatItemCounts(isNearBottom: totalBelow < 16, unreadBelow: unreadBelow)
|
||||
return UnreadChatItemCounts(
|
||||
// TODO these thresholds account for the fact that items are still "visible" while
|
||||
// covered by compose area, they should be replaced with the actual height in pixels below the screen.
|
||||
isNearBottom: totalBelow < 15,
|
||||
isReallyNearBottom: totalBelow < 2,
|
||||
unreadBelow: unreadBelow
|
||||
)
|
||||
}
|
||||
|
||||
func topItemInView(itemsInView: Set<String>) -> ChatItem? {
|
||||
@@ -840,6 +893,7 @@ struct NTFContactRequest {
|
||||
|
||||
struct UnreadChatItemCounts: Equatable {
|
||||
var isNearBottom: Bool
|
||||
var isReallyNearBottom: Bool
|
||||
var unreadBelow: Int
|
||||
}
|
||||
|
||||
@@ -848,7 +902,7 @@ final class Chat: ObservableObject, Identifiable, ChatLike {
|
||||
@Published var chatItems: [ChatItem]
|
||||
@Published var chatStats: ChatStats
|
||||
var created = Date.now
|
||||
var popTs: CFAbsoluteTime?
|
||||
fileprivate var popTs: Date?
|
||||
|
||||
init(_ cData: ChatData) {
|
||||
self.chatInfo = cData.chatInfo
|
||||
|
||||
@@ -1594,6 +1594,7 @@ func getUserChatData() throws {
|
||||
m.chatItemTTL = try getChatItemTTL()
|
||||
let chats = try apiGetChats()
|
||||
m.chats = chats.map { Chat.init($0) }
|
||||
m.popChatCollector.clear()
|
||||
}
|
||||
|
||||
private func getUserChatDataAsync() async throws {
|
||||
@@ -1606,11 +1607,13 @@ private func getUserChatDataAsync() async throws {
|
||||
m.userAddress = userAddress
|
||||
m.chatItemTTL = chatItemTTL
|
||||
m.chats = chats.map { Chat.init($0) }
|
||||
m.popChatCollector.clear()
|
||||
}
|
||||
} else {
|
||||
await MainActor.run {
|
||||
m.userAddress = nil
|
||||
m.chats = []
|
||||
m.popChatCollector.clear()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ struct SimpleXApp: App {
|
||||
}
|
||||
.onChange(of: scenePhase) { phase in
|
||||
logger.debug("scenePhase was \(String(describing: scenePhase)), now \(String(describing: phase))")
|
||||
AppSheetState.shared.scenePhaseActive = phase == .active
|
||||
switch (phase) {
|
||||
case .background:
|
||||
// --- authentication
|
||||
|
||||
@@ -47,65 +47,70 @@ struct ChatView: View {
|
||||
@State private var showDeleteSelectedMessages: Bool = false
|
||||
@State private var allowToDeleteSelectedMessagesForAll: Bool = false
|
||||
|
||||
@AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.defaultMaterial
|
||||
|
||||
var body: some View {
|
||||
if #available(iOS 16.0, *) {
|
||||
let v = viewBody
|
||||
.scrollDismissesKeyboard(.immediately)
|
||||
.keyboardPadding()
|
||||
if (searchMode) {
|
||||
v.toolbarBackground(.thinMaterial, for: .navigationBar)
|
||||
} else {
|
||||
v.toolbarBackground(.visible, for: .navigationBar)
|
||||
}
|
||||
viewBody
|
||||
.scrollDismissesKeyboard(.immediately)
|
||||
.keyboardPadding()
|
||||
.toolbarBackground(.hidden, for: .navigationBar)
|
||||
} else {
|
||||
viewBody
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ViewBuilder
|
||||
private var viewBody: some View {
|
||||
let cInfo = chat.chatInfo
|
||||
return VStack(spacing: 0) {
|
||||
if searchMode {
|
||||
searchToolbar()
|
||||
ZStack {
|
||||
let wallpaperImage = theme.wallpaper.type.image
|
||||
let wallpaperType = theme.wallpaper.type
|
||||
let backgroundColor = theme.wallpaper.background ?? wallpaperType.defaultBackgroundColor(theme.base, theme.colors.background)
|
||||
let tintColor = theme.wallpaper.tint ?? wallpaperType.defaultTintColor(theme.base)
|
||||
Color.clear.ignoresSafeArea(.all)
|
||||
.if(wallpaperImage != nil) { view in
|
||||
view.modifier(
|
||||
ChatViewBackground(image: wallpaperImage!, imageType: wallpaperType, background: backgroundColor, tint: tintColor)
|
||||
)
|
||||
}
|
||||
VStack(spacing: 0) {
|
||||
ZStack(alignment: .bottomTrailing) {
|
||||
chatItemsList()
|
||||
floatingButtons(counts: floatingButtonModel.unreadChatItemCounts)
|
||||
}
|
||||
connectingText()
|
||||
if selectedChatItems == nil {
|
||||
ComposeView(
|
||||
chat: chat,
|
||||
composeState: $composeState,
|
||||
keyboardVisible: $keyboardVisible
|
||||
)
|
||||
.disabled(!cInfo.sendMsgEnabled)
|
||||
} else {
|
||||
SelectedItemsBottomToolbar(
|
||||
chatItems: ItemsModel.shared.reversedChatItems,
|
||||
selectedChatItems: $selectedChatItems,
|
||||
chatInfo: chat.chatInfo,
|
||||
deleteItems: { forAll in
|
||||
allowToDeleteSelectedMessagesForAll = forAll
|
||||
showDeleteSelectedMessages = true
|
||||
},
|
||||
moderateItems: {
|
||||
if case let .group(groupInfo) = chat.chatInfo {
|
||||
showModerateSelectedMessagesAlert(groupInfo)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
.safeAreaInset(edge: .top) {
|
||||
VStack(spacing: .zero) {
|
||||
if searchMode { searchToolbar() }
|
||||
Divider()
|
||||
}
|
||||
ZStack(alignment: .bottomTrailing) {
|
||||
let wallpaperImage = theme.wallpaper.type.image
|
||||
let wallpaperType = theme.wallpaper.type
|
||||
let backgroundColor = theme.wallpaper.background ?? wallpaperType.defaultBackgroundColor(theme.base, theme.colors.background)
|
||||
let tintColor = theme.wallpaper.tint ?? wallpaperType.defaultTintColor(theme.base)
|
||||
chatItemsList()
|
||||
.if(wallpaperImage != nil) { view in
|
||||
view.modifier(
|
||||
ChatViewBackground(image: wallpaperImage!, imageType: wallpaperType, background: backgroundColor, tint: tintColor)
|
||||
)
|
||||
}
|
||||
floatingButtons(counts: floatingButtonModel.unreadChatItemCounts)
|
||||
}
|
||||
connectingText()
|
||||
if selectedChatItems == nil {
|
||||
ComposeView(
|
||||
chat: chat,
|
||||
composeState: $composeState,
|
||||
keyboardVisible: $keyboardVisible
|
||||
)
|
||||
.disabled(!cInfo.sendMsgEnabled)
|
||||
} else {
|
||||
SelectedItemsBottomToolbar(
|
||||
chatItems: ItemsModel.shared.reversedChatItems,
|
||||
selectedChatItems: $selectedChatItems,
|
||||
chatInfo: chat.chatInfo,
|
||||
deleteItems: { forAll in
|
||||
allowToDeleteSelectedMessagesForAll = forAll
|
||||
showDeleteSelectedMessages = true
|
||||
},
|
||||
moderateItems: {
|
||||
if case let .group(groupInfo) = chat.chatInfo {
|
||||
showModerateSelectedMessagesAlert(groupInfo)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
.background(ToolbarMaterial.material(toolbarMaterial))
|
||||
}
|
||||
.navigationTitle(cInfo.chatViewName)
|
||||
.background(theme.colors.background)
|
||||
@@ -157,7 +162,6 @@ struct ChatView: View {
|
||||
VideoPlayerView.players.removeAll()
|
||||
stopAudioPlayer()
|
||||
if chatModel.chatId == cInfo.id && !presentationMode.wrappedValue.isPresented {
|
||||
chatModel.chatId = nil
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.35) {
|
||||
if chatModel.chatId == nil {
|
||||
chatModel.chatItemStatuses = [:]
|
||||
@@ -184,7 +188,7 @@ struct ChatView: View {
|
||||
} label: {
|
||||
ChatInfoToolbar(chat: chat)
|
||||
}
|
||||
.appSheet(isPresented: $showChatInfoSheet) {
|
||||
.appSheet(isPresented: $showChatInfoSheet, onDismiss: { theme = buildTheme() }) {
|
||||
ChatInfoView(
|
||||
chat: chat,
|
||||
contact: contact,
|
||||
@@ -352,7 +356,6 @@ struct ChatView: View {
|
||||
}
|
||||
.padding(.horizontal)
|
||||
.padding(.vertical, 8)
|
||||
.background(.thinMaterial)
|
||||
}
|
||||
|
||||
private func voiceWithoutFrame(_ ci: ChatItem) -> Bool {
|
||||
@@ -386,31 +389,49 @@ struct ChatView: View {
|
||||
: voiceNoFrame
|
||||
? (g.size.width - 32)
|
||||
: (g.size.width - 32) * 0.84
|
||||
return chatItemView(ci, maxWidth)
|
||||
.onAppear {
|
||||
floatingButtonModel.appeared(viewId: ci.viewId)
|
||||
}
|
||||
.onDisappear {
|
||||
floatingButtonModel.disappeared(viewId: ci.viewId)
|
||||
}
|
||||
.id(ci.id) // Required to trigger `onAppear` on iOS15
|
||||
return ChatItemWithMenu(
|
||||
chat: $chat,
|
||||
chatItem: ci,
|
||||
maxWidth: maxWidth,
|
||||
composeState: $composeState,
|
||||
selectedMember: $selectedMember,
|
||||
revealedChatItem: $revealedChatItem,
|
||||
selectedChatItems: $selectedChatItems
|
||||
)
|
||||
.onAppear {
|
||||
floatingButtonModel.appeared(viewId: ci.viewId)
|
||||
}
|
||||
.onDisappear {
|
||||
floatingButtonModel.disappeared(viewId: ci.viewId)
|
||||
}
|
||||
.id(ci.id) // Required to trigger `onAppear` on iOS15
|
||||
} loadPage: {
|
||||
loadChatItems(cInfo)
|
||||
}
|
||||
.onTapGesture { hideKeyboard() }
|
||||
.onChange(of: searchText) { _ in
|
||||
loadChat(chat: chat, search: searchText)
|
||||
.padding(.vertical, -InvertedTableView.inset)
|
||||
.onTapGesture { hideKeyboard() }
|
||||
.onChange(of: searchText) { _ in
|
||||
loadChat(chat: chat, search: searchText)
|
||||
}
|
||||
.onChange(of: chatModel.chatId) { chatId in
|
||||
if let chatId, let c = chatModel.getChat(chatId) {
|
||||
chat = c
|
||||
showChatInfoSheet = false
|
||||
loadChat(chat: c)
|
||||
scrollModel.scrollToBottom()
|
||||
}
|
||||
.onChange(of: chatModel.chatId) { chatId in
|
||||
if let chatId, let c = chatModel.getChat(chatId) {
|
||||
chat = c
|
||||
showChatInfoSheet = false
|
||||
loadChat(chat: c)
|
||||
}
|
||||
.onChange(of: im.reversedChatItems) { _ in
|
||||
floatingButtonModel.chatItemsChanged()
|
||||
}
|
||||
.onChange(of: im.itemAdded) { added in
|
||||
if added {
|
||||
im.itemAdded = false
|
||||
if floatingButtonModel.unreadChatItemCounts.isReallyNearBottom {
|
||||
scrollModel.scrollToBottom()
|
||||
}
|
||||
}
|
||||
.onChange(of: im.reversedChatItems) { _ in
|
||||
floatingButtonModel.chatItemsChanged()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -443,19 +464,19 @@ struct ChatView: View {
|
||||
init() {
|
||||
unreadChatItemCounts = UnreadChatItemCounts(
|
||||
isNearBottom: true,
|
||||
isReallyNearBottom: true,
|
||||
unreadBelow: 0
|
||||
)
|
||||
events
|
||||
.receive(on: DispatchQueue.global(qos: .background))
|
||||
.scan(Set<String>()) { itemsInView, event in
|
||||
return switch event {
|
||||
case let .appeared(viewId):
|
||||
itemsInView.union([viewId])
|
||||
case let .disappeared(viewId):
|
||||
itemsInView.subtracting([viewId])
|
||||
case .chatItemsChanged:
|
||||
itemsInView
|
||||
var updated = itemsInView
|
||||
switch event {
|
||||
case let .appeared(viewId): updated.insert(viewId)
|
||||
case let .disappeared(viewId): updated.remove(viewId)
|
||||
case .chatItemsChanged: ()
|
||||
}
|
||||
return updated
|
||||
}
|
||||
.map { ChatModel.shared.unreadChatItemCounts(itemsInView: $0) }
|
||||
.removeDuplicates()
|
||||
@@ -663,22 +684,10 @@ struct ChatView: View {
|
||||
VoiceItemState.chatView = [:]
|
||||
}
|
||||
|
||||
@ViewBuilder private func chatItemView(_ ci: ChatItem, _ maxWidth: CGFloat) -> some View {
|
||||
ChatItemWithMenu(
|
||||
chat: chat,
|
||||
chatItem: ci,
|
||||
maxWidth: maxWidth,
|
||||
composeState: $composeState,
|
||||
selectedMember: $selectedMember,
|
||||
revealedChatItem: $revealedChatItem,
|
||||
selectedChatItems: $selectedChatItems
|
||||
)
|
||||
}
|
||||
|
||||
private struct ChatItemWithMenu: View {
|
||||
@EnvironmentObject var m: ChatModel
|
||||
@EnvironmentObject var theme: AppTheme
|
||||
@ObservedObject var chat: Chat
|
||||
@Binding @ObservedObject var chat: Chat
|
||||
let chatItem: ChatItem
|
||||
let maxWidth: CGFloat
|
||||
@Binding var composeState: ComposeState
|
||||
|
||||
@@ -281,6 +281,7 @@ struct ComposeView: View {
|
||||
@State private var stopPlayback: Bool = false
|
||||
|
||||
@AppStorage(DEFAULT_PRIVACY_SAVE_LAST_DRAFT) private var saveLastDraft = true
|
||||
@AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.defaultMaterial
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 0) {
|
||||
@@ -381,7 +382,7 @@ struct ComposeView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
.background(.thinMaterial)
|
||||
.background(ToolbarMaterial.material(toolbarMaterial))
|
||||
.onChange(of: composeState.message) { msg in
|
||||
if composeState.linkPreviewAllowed {
|
||||
if msg.count > 0 {
|
||||
|
||||
@@ -11,7 +11,6 @@ import Combine
|
||||
|
||||
/// A List, which displays it's items in reverse order - from bottom to top
|
||||
struct ReverseList<Item: Identifiable & Hashable & Sendable, Content: View>: UIViewControllerRepresentable {
|
||||
|
||||
let items: Array<Item>
|
||||
|
||||
@Binding var scrollState: ReverseListScrollModel<Item>.State
|
||||
@@ -53,6 +52,7 @@ struct ReverseList<Item: Identifiable & Hashable & Sendable, Content: View>: UIV
|
||||
super.init(style: .plain)
|
||||
|
||||
// 1. Style
|
||||
tableView = InvertedTableView()
|
||||
tableView.separatorStyle = .none
|
||||
tableView.transform = .verticalFlip
|
||||
tableView.backgroundColor = .clear
|
||||
@@ -132,6 +132,11 @@ struct ReverseList<Item: Identifiable & Hashable & Sendable, Content: View>: UIV
|
||||
NotificationCenter.default.post(name: .chatViewWillBeginScrolling, object: nil)
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
tableView.clipsToBounds = false
|
||||
parent?.viewIfLoaded?.clipsToBounds = false
|
||||
}
|
||||
|
||||
/// Scrolls up
|
||||
func scrollToNextPage() {
|
||||
tableView.setContentOffset(
|
||||
@@ -272,3 +277,28 @@ func withConditionalAnimation<Result>(
|
||||
try body()
|
||||
}
|
||||
}
|
||||
|
||||
class InvertedTableView: UITableView {
|
||||
static let inset = CGFloat(100)
|
||||
|
||||
static let insets = UIEdgeInsets(
|
||||
top: inset,
|
||||
left: .zero,
|
||||
bottom: inset,
|
||||
right: .zero
|
||||
)
|
||||
|
||||
override var contentInsetAdjustmentBehavior: UIScrollView.ContentInsetAdjustmentBehavior {
|
||||
get { .never }
|
||||
set { }
|
||||
}
|
||||
|
||||
override var contentInset: UIEdgeInsets {
|
||||
get { Self.insets }
|
||||
set { }
|
||||
}
|
||||
|
||||
override var adjustedContentInset: UIEdgeInsets {
|
||||
Self.insets
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,19 +104,22 @@ struct SelectedItemsBottomToolbar: View {
|
||||
allButtonsDisabled = count == 0 || count > 20
|
||||
canModerate = possibleToModerate(chatInfo)
|
||||
if let selected = selectedItems {
|
||||
(deleteEnabled, deleteForEveryoneEnabled, moderateEnabled, _, selectedChatItems) = chatItems.reduce((true, true, true, true, [])) { (r, ci) in
|
||||
let me: Bool
|
||||
let onlyOwnGroupItems: Bool
|
||||
(deleteEnabled, deleteForEveryoneEnabled, me, onlyOwnGroupItems, selectedChatItems) = chatItems.reduce((true, true, true, true, [])) { (r, ci) in
|
||||
if selected.contains(ci.id) {
|
||||
var (de, dee, me, onlyOwnGroupItems, sel) = r
|
||||
de = de && ci.canBeDeletedForSelf
|
||||
dee = dee && ci.meta.deletable && !ci.localNote
|
||||
onlyOwnGroupItems = onlyOwnGroupItems && ci.chatDir == .groupSnd
|
||||
me = me && !onlyOwnGroupItems && ci.content.msgContent != nil && ci.memberToModerate(chatInfo) != nil
|
||||
me = me && ci.content.msgContent != nil && ci.memberToModerate(chatInfo) != nil
|
||||
sel.insert(ci.id) // we are collecting new selected items here to account for any changes in chat items list
|
||||
return (de, dee, me, onlyOwnGroupItems, sel)
|
||||
} else {
|
||||
return r
|
||||
}
|
||||
}
|
||||
moderateEnabled = me && !onlyOwnGroupItems
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ struct ChatListView: View {
|
||||
@AppStorage(DEFAULT_SHOW_UNREAD_AND_FAVORITES) private var showUnreadAndFavorites = false
|
||||
@AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = true
|
||||
@AppStorage(DEFAULT_ONE_HAND_UI_CARD_SHOWN) private var oneHandUICardShown = false
|
||||
@AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.bar.rawValue
|
||||
@AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.defaultMaterial
|
||||
|
||||
var body: some View {
|
||||
if #available(iOS 16.0, *) {
|
||||
@@ -40,7 +40,9 @@ struct ChatListView: View {
|
||||
NavStackCompat(
|
||||
isActive: Binding(
|
||||
get: { chatModel.chatId != nil },
|
||||
set: { _ in }
|
||||
set: { active in
|
||||
if !active { chatModel.chatId = nil }
|
||||
}
|
||||
),
|
||||
destination: chatView
|
||||
) { chatListView }
|
||||
@@ -225,8 +227,8 @@ struct ChatListView: View {
|
||||
.offset(x: -8)
|
||||
}
|
||||
.listStyle(.plain)
|
||||
.onChange(of: chatModel.chatId) { chId in
|
||||
if chId == nil, let chatId = chatModel.chatToTop {
|
||||
.onChange(of: chatModel.chatId) { currentChatId in
|
||||
if let chatId = chatModel.chatToTop, currentChatId != chatId {
|
||||
chatModel.chatToTop = nil
|
||||
chatModel.popChat(chatId)
|
||||
}
|
||||
|
||||
@@ -8,15 +8,21 @@
|
||||
|
||||
import SwiftUI
|
||||
|
||||
class AppSheetState: ObservableObject {
|
||||
static let shared = AppSheetState()
|
||||
@Published var scenePhaseActive: Bool = false
|
||||
}
|
||||
|
||||
private struct PrivacySensitive: ViewModifier {
|
||||
@AppStorage(DEFAULT_PRIVACY_PROTECT_SCREEN) private var protectScreen = false
|
||||
@Environment(\.scenePhase) var scenePhase
|
||||
// Screen protection doesn't work for appSheet on iOS 16 if @Environment(\.scenePhase) is used instead of global state
|
||||
@ObservedObject var appSheetState: AppSheetState = AppSheetState.shared
|
||||
|
||||
func body(content: Content) -> some View {
|
||||
if !protectScreen {
|
||||
content
|
||||
} else {
|
||||
content.privacySensitive(scenePhase != .active).redacted(reason: .privacy)
|
||||
content.privacySensitive(!appSheetState.scenePhaseActive).redacted(reason: .privacy)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ struct ChatViewBackground: ViewModifier {
|
||||
case WallpaperType.empty: ()
|
||||
}
|
||||
}
|
||||
)
|
||||
).ignoresSafeArea(.all)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,9 @@ struct NavStackCompat <C: View, D: View>: View {
|
||||
if #available(iOS 16, *) {
|
||||
NavigationStack(path: Binding(
|
||||
get: { isActive.wrappedValue ? [true] : [] },
|
||||
set: { _ in }
|
||||
set: { path in
|
||||
if path.isEmpty { isActive.wrappedValue = false }
|
||||
}
|
||||
)) {
|
||||
ZStack {
|
||||
NavigationLink(value: true) { EmptyView() }
|
||||
|
||||
@@ -66,6 +66,7 @@ struct LocalAuthView: View {
|
||||
m.chatId = nil
|
||||
ItemsModel.shared.reversedChatItems = []
|
||||
m.chats = []
|
||||
m.popChatCollector.clear()
|
||||
m.users = []
|
||||
_ = kcAppPassword.set(password)
|
||||
_ = kcSelfDestructPassword.remove()
|
||||
|
||||
@@ -61,18 +61,39 @@ struct NewChatSheet: View {
|
||||
@State private var searchShowingSimplexLink = false
|
||||
@State private var searchChatFilteredBySimplexLink: String? = nil
|
||||
@Binding var alert: SomeAlert?
|
||||
|
||||
|
||||
// Sheet height management
|
||||
@State private var isAddContactActive = false
|
||||
@State private var isScanPasteLinkActive = false
|
||||
@State private var isLargeSheet = false
|
||||
@State private var allowSmallSheet = true
|
||||
|
||||
@AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = true
|
||||
|
||||
var body: some View {
|
||||
NavigationView {
|
||||
viewBody()
|
||||
.navigationTitle("New Chat")
|
||||
let showArchive = !filterContactTypes(chats: chatModel.chats, contactTypes: [.chatDeleted]).isEmpty
|
||||
let v = NavigationView {
|
||||
viewBody(showArchive)
|
||||
.navigationTitle("New message")
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
.navigationBarHidden(searchMode)
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
}
|
||||
if #available(iOS 16.0, *), oneHandUI {
|
||||
let sheetHeight: CGFloat = showArchive ? 575 : 500
|
||||
v.presentationDetents(
|
||||
allowSmallSheet ? [.height(sheetHeight), .large] : [.large],
|
||||
selection: Binding(
|
||||
get: { isLargeSheet || !allowSmallSheet ? .large : .height(sheetHeight) },
|
||||
set: { isLargeSheet = $0 == .large }
|
||||
)
|
||||
)
|
||||
} else {
|
||||
v
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder private func viewBody() -> some View {
|
||||
|
||||
@ViewBuilder private func viewBody(_ showArchive: Bool) -> some View {
|
||||
List {
|
||||
HStack {
|
||||
ContactsListSearchBar(
|
||||
@@ -90,21 +111,25 @@ struct NewChatSheet: View {
|
||||
|
||||
if (searchText.isEmpty) {
|
||||
Section {
|
||||
NavigationLink {
|
||||
NavigationLink(isActive: $isAddContactActive) {
|
||||
NewChatView(selection: .invite, parentAlert: $alert)
|
||||
.navigationTitle("New chat")
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
} label: {
|
||||
Label("Add contact", systemImage: "link.badge.plus")
|
||||
navigateOnTap(Label("Add contact", systemImage: "link.badge.plus")) {
|
||||
isAddContactActive = true
|
||||
}
|
||||
}
|
||||
NavigationLink {
|
||||
NavigationLink(isActive: $isScanPasteLinkActive) {
|
||||
NewChatView(selection: .connect, showQRCodeScanner: true, parentAlert: $alert)
|
||||
.navigationTitle("New chat")
|
||||
.modifier(ThemedBackground(grouped: true))
|
||||
.navigationBarTitleDisplayMode(.large)
|
||||
} label: {
|
||||
Label("Scan / Paste link", systemImage: "qrcode")
|
||||
navigateOnTap(Label("Scan / Paste link", systemImage: "qrcode")) {
|
||||
isScanPasteLinkActive = true
|
||||
}
|
||||
}
|
||||
NavigationLink {
|
||||
AddGroupView()
|
||||
@@ -116,7 +141,7 @@ struct NewChatSheet: View {
|
||||
}
|
||||
}
|
||||
|
||||
if (!filterContactTypes(chats: chatModel.chats, contactTypes: [.chatDeleted]).isEmpty) {
|
||||
if (showArchive) {
|
||||
Section {
|
||||
NavigationLink {
|
||||
DeletedChats()
|
||||
@@ -140,6 +165,22 @@ struct NewChatSheet: View {
|
||||
}
|
||||
}
|
||||
|
||||
/// Extends label's tap area to match `.insetGrouped` list row insets
|
||||
private func navigateOnTap<L: View>(_ label: L, setActive: @escaping () -> Void) -> some View {
|
||||
label
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.padding(.leading, 16).padding(.vertical, 8).padding(.trailing, 32)
|
||||
.contentShape(Rectangle())
|
||||
.onTapGesture {
|
||||
isLargeSheet = true
|
||||
DispatchQueue.main.async {
|
||||
allowSmallSheet = false
|
||||
setActive()
|
||||
}
|
||||
}
|
||||
.padding(.leading, -16).padding(.vertical, -8).padding(.trailing, -32)
|
||||
}
|
||||
|
||||
func newChatActionButton<Content : View>(_ icon: String, color: Color/* = .secondary*/, content: @escaping () -> Content) -> some View {
|
||||
ZStack(alignment: .leading) {
|
||||
Image(systemName: icon)
|
||||
|
||||
@@ -32,10 +32,9 @@ struct AppearanceSettings: View {
|
||||
if currentThemeDefault.get() == DefaultTheme.SYSTEM_THEME_NAME { nil as DefaultThemeMode? } else { CurrentColors.base.mode }
|
||||
}()
|
||||
@State private var darkModeTheme: String = UserDefaults.standard.string(forKey: DEFAULT_SYSTEM_DARK_THEME) ?? DefaultTheme.DARK.themeName
|
||||
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
|
||||
@AppStorage(DEFAULT_PROFILE_IMAGE_CORNER_RADIUS) private var profileImageCornerRadius = defaultProfileImageCorner
|
||||
@AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = true
|
||||
@AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.bar.rawValue
|
||||
@AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.defaultMaterial
|
||||
|
||||
@State var themeUserDestination: (Int64, ThemeModeOverrides?)? = {
|
||||
if let currentUser = ChatModel.shared.currentUser, let uiThemes = currentUser.uiThemes, uiThemes.preferredMode(!CurrentColors.colors.isLight) != nil {
|
||||
@@ -67,14 +66,12 @@ struct AppearanceSettings: View {
|
||||
|
||||
Section("Chat list") {
|
||||
Toggle("Reachable chat toolbar", isOn: $oneHandUI)
|
||||
if developerTools {
|
||||
Picker("Toolbar opacity", selection: $toolbarMaterial) {
|
||||
ForEach(ToolbarMaterial.allCases, id: \.rawValue) { tm in
|
||||
Text(tm.text).tag(tm.rawValue)
|
||||
}
|
||||
Picker("Toolbar opacity", selection: $toolbarMaterial) {
|
||||
ForEach(ToolbarMaterial.allCases, id: \.rawValue) { tm in
|
||||
Text(tm.text).tag(tm.rawValue)
|
||||
}
|
||||
.frame(height: 36)
|
||||
}
|
||||
.frame(height: 36)
|
||||
}
|
||||
|
||||
Section {
|
||||
@@ -318,6 +315,8 @@ enum ToolbarMaterial: String, CaseIterable {
|
||||
ToolbarMaterial(rawValue: s)?.material ?? Material.bar
|
||||
}
|
||||
|
||||
static let defaultMaterial: String = ToolbarMaterial.regular.rawValue
|
||||
|
||||
var material: Material {
|
||||
switch self {
|
||||
case .bar: .bar
|
||||
|
||||
@@ -99,7 +99,7 @@ let appDefaults: [String: Any] = [
|
||||
DEFAULT_ENCRYPTION_STARTED: false,
|
||||
DEFAULT_PROFILE_IMAGE_CORNER_RADIUS: defaultProfileImageCorner,
|
||||
DEFAULT_ONE_HAND_UI_CARD_SHOWN: false,
|
||||
DEFAULT_TOOLBAR_MATERIAL: ToolbarMaterial.bar.rawValue,
|
||||
DEFAULT_TOOLBAR_MATERIAL: ToolbarMaterial.defaultMaterial,
|
||||
DEFAULT_CONNECT_VIA_LINK_TAB: ConnectViaLinkTab.scan.rawValue,
|
||||
DEFAULT_LIVE_MESSAGE_ALERT_SHOWN: false,
|
||||
DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE: true,
|
||||
|
||||
@@ -4264,10 +4264,6 @@ This is your link for group %@!</source>
|
||||
<target>Състояние на мрежата</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Нов kод за достъп</target>
|
||||
|
||||
@@ -4108,10 +4108,6 @@ This is your link for group %@!</source>
|
||||
<target>Stav sítě</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Nové heslo</target>
|
||||
|
||||
@@ -524,17 +524,17 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Abort" xml:space="preserve">
|
||||
<source>Abort</source>
|
||||
<target>Abbrechen</target>
|
||||
<target>Beenden</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Abort changing address" xml:space="preserve">
|
||||
<source>Abort changing address</source>
|
||||
<target>Wechsel der Empfängeradresse abbrechen</target>
|
||||
<target>Wechsel der Empfängeradresse beenden</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Abort changing address?" xml:space="preserve">
|
||||
<source>Abort changing address?</source>
|
||||
<target>Wechsel der Empfängeradresse abbrechen?</target>
|
||||
<target>Wechsel der Empfängeradresse beenden?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About SimpleX" xml:space="preserve">
|
||||
@@ -657,7 +657,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Address change will be aborted. Old receiving address will be used." xml:space="preserve">
|
||||
<source>Address change will be aborted. Old receiving address will be used.</source>
|
||||
<target>Der Wechsel der Empfängeradresse wird abgebrochen. Die bisherige Adresse wird weiter verwendet.</target>
|
||||
<target>Der Wechsel der Empfängeradresse wird beendet. Die bisherige Adresse wird weiter verwendet.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Admins can block a member for all." xml:space="preserve">
|
||||
@@ -752,6 +752,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow calls?" xml:space="preserve">
|
||||
<source>Allow calls?</source>
|
||||
<target>Anrufe erlauben?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Allow disappearing messages only if your contact allows it to you." xml:space="preserve">
|
||||
@@ -946,10 +947,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Archive contacts to chat later." xml:space="preserve">
|
||||
<source>Archive contacts to chat later.</source>
|
||||
<target>Kontakte für spätere Chats archivieren.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Archived contacts" xml:space="preserve">
|
||||
<source>Archived contacts</source>
|
||||
<target>Archivierte Kontakte</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Archiving database" xml:space="preserve">
|
||||
@@ -1054,6 +1057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Better networking" xml:space="preserve">
|
||||
<source>Better networking</source>
|
||||
<target>Bessere Vernetzung</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Black" xml:space="preserve">
|
||||
@@ -1098,6 +1102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur for better privacy." xml:space="preserve">
|
||||
<source>Blur for better privacy.</source>
|
||||
<target>Für bessere Privatsphäre verpixeln.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
@@ -1152,6 +1157,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Calls prohibited!" xml:space="preserve">
|
||||
<source>Calls prohibited!</source>
|
||||
<target>Anrufe nicht zugelassen!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Camera not available" xml:space="preserve">
|
||||
@@ -1161,10 +1167,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Can't call contact" xml:space="preserve">
|
||||
<source>Can't call contact</source>
|
||||
<target>Kontakt kann nicht angerufen werden</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Can't call member" xml:space="preserve">
|
||||
<source>Can't call member</source>
|
||||
<target>Mitglied kann nicht angerufen werden</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Can't invite contact!" xml:space="preserve">
|
||||
@@ -1179,6 +1187,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Can't message member" xml:space="preserve">
|
||||
<source>Can't message member</source>
|
||||
<target>Mitglied kann nicht benachrichtigt werden</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Cancel" xml:space="preserve">
|
||||
@@ -1319,6 +1328,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat list" xml:space="preserve">
|
||||
<source>Chat list</source>
|
||||
<target>Chat-Liste</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat migrated!" xml:space="preserve">
|
||||
@@ -1408,6 +1418,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Color chats with the new themes." xml:space="preserve">
|
||||
<source>Color chats with the new themes.</source>
|
||||
<target>Farbige Chats mit neuen Designs.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Color mode" xml:space="preserve">
|
||||
@@ -1452,6 +1463,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Confirm contact deletion?" xml:space="preserve">
|
||||
<source>Confirm contact deletion?</source>
|
||||
<target>Löschen des Kontakts bestätigen?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Confirm database upgrades" xml:space="preserve">
|
||||
@@ -1511,6 +1523,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to your friends faster." xml:space="preserve">
|
||||
<source>Connect to your friends faster.</source>
|
||||
<target>Schneller mit Ihren Freunden verbinden.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to yourself?" xml:space="preserve">
|
||||
@@ -1589,6 +1602,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connecting to contact, please wait or check later!" xml:space="preserve">
|
||||
<source>Connecting to contact, please wait or check later!</source>
|
||||
<target>Verbinde mit Kontakt, bitte warten oder später erneut überprüfen!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connecting to desktop" xml:space="preserve">
|
||||
@@ -1603,6 +1617,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connection and servers status." xml:space="preserve">
|
||||
<source>Connection and servers status.</source>
|
||||
<target>Verbindungs- und Server-Status.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connection error" xml:space="preserve">
|
||||
@@ -1657,6 +1672,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact deleted!" xml:space="preserve">
|
||||
<source>Contact deleted!</source>
|
||||
<target>Kontakt gelöscht!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact hidden:" xml:space="preserve">
|
||||
@@ -1671,6 +1687,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact is deleted." xml:space="preserve">
|
||||
<source>Contact is deleted.</source>
|
||||
<target>Kontakt wurde gelöscht.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact name" xml:space="preserve">
|
||||
@@ -1685,6 +1702,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contact will be deleted - this cannot be undone!" xml:space="preserve">
|
||||
<source>Contact will be deleted - this cannot be undone!</source>
|
||||
<target>Kontakt wird gelöscht. Dies kann nicht rückgängig gemacht werden!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Contacts" xml:space="preserve">
|
||||
@@ -1704,6 +1722,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Conversation deleted!" xml:space="preserve">
|
||||
<source>Conversation deleted!</source>
|
||||
<target>Unterhaltung gelöscht!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Copy" xml:space="preserve">
|
||||
@@ -2047,6 +2066,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete contact?" xml:space="preserve">
|
||||
<source>Delete contact?</source>
|
||||
<target>Kontakt löschen?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete database" xml:space="preserve">
|
||||
@@ -2156,6 +2176,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete up to 20 messages at once." xml:space="preserve">
|
||||
<source>Delete up to 20 messages at once.</source>
|
||||
<target>Löschen Sie bis zu 20 Nachrichten auf einmal.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete user profile?" xml:space="preserve">
|
||||
@@ -2165,6 +2186,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete without notification" xml:space="preserve">
|
||||
<source>Delete without notification</source>
|
||||
<target>Ohne Benachrichtigung löschen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted" xml:space="preserve">
|
||||
@@ -2254,6 +2276,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Developer options" xml:space="preserve">
|
||||
<source>Developer options</source>
|
||||
<target>Optionen für Entwickler</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Developer tools" xml:space="preserve">
|
||||
@@ -2678,7 +2701,7 @@ Das ist Ihr eigener Einmal-Link!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error aborting address change" xml:space="preserve">
|
||||
<source>Error aborting address change</source>
|
||||
<target>Fehler beim Abbrechen des Adresswechsels</target>
|
||||
<target>Fehler beim Beenden des Adresswechsels</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error accepting contact request" xml:space="preserve">
|
||||
@@ -3816,6 +3839,7 @@ Fehler: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="It protects your IP address and connections." xml:space="preserve">
|
||||
<source>It protects your IP address and connections.</source>
|
||||
<target>Ihre IP-Adresse und Verbindungen werden geschützt.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="It seems like you are already connected via this link. If it is not the case, there was an error (%@)." xml:space="preserve">
|
||||
@@ -3882,6 +3906,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Keep conversation" xml:space="preserve">
|
||||
<source>Keep conversation</source>
|
||||
<target>Unterhaltung behalten</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Keep the app open to use it from desktop" xml:space="preserve">
|
||||
@@ -4359,10 +4384,6 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
||||
<target>Netzwerkstatus</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Neuer Zugangscode</target>
|
||||
@@ -4375,6 +4396,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New chat experience 🎉" xml:space="preserve">
|
||||
<source>New chat experience 🎉</source>
|
||||
<target>Neue Chat-Erfahrung 🎉</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New contact request" xml:space="preserve">
|
||||
@@ -4409,6 +4431,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New media options" xml:space="preserve">
|
||||
<source>New media options</source>
|
||||
<target>Neue Medien-Optionen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New member role" xml:space="preserve">
|
||||
@@ -4581,6 +4604,7 @@ Dies erfordert die Aktivierung eines VPNs.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only delete conversation" xml:space="preserve">
|
||||
<source>Only delete conversation</source>
|
||||
<target>Nur die Unterhaltung löschen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Only group owners can change group preferences." xml:space="preserve">
|
||||
@@ -4820,10 +4844,12 @@ Dies erfordert die Aktivierung eines VPNs.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Play from the chat list." xml:space="preserve">
|
||||
<source>Play from the chat list.</source>
|
||||
<target>Direkt aus der Chat-Liste abspielen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Please ask your contact to enable calls." xml:space="preserve">
|
||||
<source>Please ask your contact to enable calls.</source>
|
||||
<target>Bitten Sie Ihren Kontakt darum, Anrufe zu aktivieren.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Please ask your contact to enable sending voice messages." xml:space="preserve">
|
||||
@@ -5129,6 +5155,7 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reachable chat toolbar" xml:space="preserve">
|
||||
<source>Reachable chat toolbar</source>
|
||||
<target>Erreichbare Chat-Symbolleiste</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="React…" xml:space="preserve">
|
||||
@@ -5404,6 +5431,7 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all hints" xml:space="preserve">
|
||||
<source>Reset all hints</source>
|
||||
<target>Alle Hinweise zurücksetzen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all statistics" xml:space="preserve">
|
||||
@@ -5773,6 +5801,7 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Send message to enable calls." xml:space="preserve">
|
||||
<source>Send message to enable calls.</source>
|
||||
<target>Nachricht senden, um Anrufe zu aktivieren.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||
@@ -6062,6 +6091,7 @@ Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share from other apps." xml:space="preserve">
|
||||
<source>Share from other apps.</source>
|
||||
<target>Aus anderen Apps heraus teilen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share link" xml:space="preserve">
|
||||
@@ -6750,6 +6780,7 @@ Sie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funkt
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle chat list:" xml:space="preserve">
|
||||
<source>Toggle chat list:</source>
|
||||
<target>Chat-Liste umschalten:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle incognito when connecting." xml:space="preserve">
|
||||
@@ -6759,6 +6790,7 @@ Sie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funkt
|
||||
</trans-unit>
|
||||
<trans-unit id="Toolbar opacity" xml:space="preserve">
|
||||
<source>Toolbar opacity</source>
|
||||
<target>Deckkraft der Symbolleiste</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Total" xml:space="preserve">
|
||||
@@ -7055,6 +7087,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
||||
</trans-unit>
|
||||
<trans-unit id="Use the app with one hand." xml:space="preserve">
|
||||
<source>Use the app with one hand.</source>
|
||||
<target>Die App mit einer Hand nutzen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="User profile" xml:space="preserve">
|
||||
@@ -7416,6 +7449,7 @@ Verbindungsanfrage wiederholen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can change it in Appearance settings." xml:space="preserve">
|
||||
<source>You can change it in Appearance settings.</source>
|
||||
<target>Kann von Ihnen in den Erscheinungsbild-Einstellungen geändert werden.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
@@ -7455,6 +7489,7 @@ Verbindungsanfrage wiederholen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can send messages to %@ from Archived contacts." xml:space="preserve">
|
||||
<source>You can send messages to %@ from Archived contacts.</source>
|
||||
<target>Sie können aus den archivierten Kontakten heraus Nachrichten an %@ versenden.</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">
|
||||
@@ -7484,6 +7519,7 @@ Verbindungsanfrage wiederholen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can still view conversation with %@ in the list of chats." xml:space="preserve">
|
||||
<source>You can still view conversation with %@ in the list of chats.</source>
|
||||
<target>Sie können in der Chatliste weiterhin die Unterhaltung mit %@ einsehen.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can turn on SimpleX Lock via Settings." xml:space="preserve">
|
||||
@@ -7565,6 +7601,7 @@ Verbindungsanfrage wiederholen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You need to allow your contact to call to be able to call them." xml:space="preserve">
|
||||
<source>You need to allow your contact to call to be able to call them.</source>
|
||||
<target>Sie müssen Ihrem Kontakt Anrufe zu Ihnen erlauben, bevor Sie ihn selbst anrufen können.</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">
|
||||
@@ -7876,6 +7913,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="call" xml:space="preserve">
|
||||
<source>call</source>
|
||||
<target>Anrufen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="call error" xml:space="preserve">
|
||||
@@ -8250,6 +8288,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="invite" xml:space="preserve">
|
||||
<source>invite</source>
|
||||
<target>Einladen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="invited" xml:space="preserve">
|
||||
@@ -8309,6 +8348,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="message" xml:space="preserve">
|
||||
<source>message</source>
|
||||
<target>Nachricht</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="message received" xml:space="preserve">
|
||||
@@ -8343,6 +8383,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="mute" xml:space="preserve">
|
||||
<source>mute</source>
|
||||
<target>Stummschalten</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="never" xml:space="preserve">
|
||||
@@ -8479,6 +8520,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="search" xml:space="preserve">
|
||||
<source>search</source>
|
||||
<target>Suchen</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="sec" xml:space="preserve">
|
||||
@@ -8567,6 +8609,7 @@ Zuletzt empfangene Nachricht: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="unmute" xml:space="preserve">
|
||||
<source>unmute</source>
|
||||
<target>Stummschaltung aufheben</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="unprotected" xml:space="preserve">
|
||||
@@ -8616,6 +8659,7 @@ Zuletzt empfangene Nachricht: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="video" xml:space="preserve">
|
||||
<source>video</source>
|
||||
<target>Video</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="video call (not e2e encrypted)" xml:space="preserve">
|
||||
@@ -8998,7 +9042,7 @@ Zuletzt empfangene Nachricht: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can allow sharing in Privacy & Security / SimpleX Lock settings." xml:space="preserve">
|
||||
<source>You can allow sharing in Privacy & Security / SimpleX Lock settings.</source>
|
||||
<target>Du kannst das Teilen in den Einstellungen zu Datenschutz & Sicherheit bzw. SimpleX-Sperre erlauben.</target>
|
||||
<target>Du kannst das Teilen in den Einstellungen zu Datenschutz & Sicherheit - SimpleX-Sperre erlauben.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
||||
@@ -4384,11 +4384,6 @@ This is your link for group %@!</target>
|
||||
<target>Network status</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<target>New Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>New Passcode</target>
|
||||
|
||||
@@ -582,12 +582,12 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Acknowledged" xml:space="preserve">
|
||||
<source>Acknowledged</source>
|
||||
<target>Recibido</target>
|
||||
<target>Confirmaciones</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Acknowledgement errors" xml:space="preserve">
|
||||
<source>Acknowledgement errors</source>
|
||||
<target>Errores de reconocimiento</target>
|
||||
<target>Errores de confirmación</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Active connections" xml:space="preserve">
|
||||
@@ -697,7 +697,7 @@
|
||||
</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>Todos los datos son privados para tu dispositivo.</target>
|
||||
<target>Todos los datos son privados y están en tu dispositivo.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="All group members will remain connected." xml:space="preserve">
|
||||
@@ -947,6 +947,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Archive contacts to chat later." xml:space="preserve">
|
||||
<source>Archive contacts to chat later.</source>
|
||||
<target>Archivar contactos para charlar más tarde.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Archived contacts" xml:space="preserve">
|
||||
@@ -1056,6 +1057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Better networking" xml:space="preserve">
|
||||
<source>Better networking</source>
|
||||
<target>Uso de red mejorado</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Black" xml:space="preserve">
|
||||
@@ -1100,6 +1102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur for better privacy." xml:space="preserve">
|
||||
<source>Blur for better privacy.</source>
|
||||
<target>Difuminar para más privacidad.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
@@ -1290,7 +1293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat database" xml:space="preserve">
|
||||
<source>Chat database</source>
|
||||
<target>Base de datos del chat</target>
|
||||
<target>Base de datos de SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat database deleted" xml:space="preserve">
|
||||
@@ -1310,21 +1313,22 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat is running" xml:space="preserve">
|
||||
<source>Chat is running</source>
|
||||
<target>Chat está en ejecución</target>
|
||||
<target>SimpleX está en ejecución</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat is stopped" xml:space="preserve">
|
||||
<source>Chat is stopped</source>
|
||||
<target>Chat está parado</target>
|
||||
<target>SimpleX está parado</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." xml:space="preserve">
|
||||
<source>Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat.</source>
|
||||
<target>Chat parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar Chat.</target>
|
||||
<target>SimpleX está parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar SimpleX.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat list" xml:space="preserve">
|
||||
<source>Chat list</source>
|
||||
<target>Lista de chats</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat migrated!" xml:space="preserve">
|
||||
@@ -1414,6 +1418,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Color chats with the new themes." xml:space="preserve">
|
||||
<source>Color chats with the new themes.</source>
|
||||
<target>Colorea los chats con los nuevos temas.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Color mode" xml:space="preserve">
|
||||
@@ -1433,7 +1438,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Completed" xml:space="preserve">
|
||||
<source>Completed</source>
|
||||
<target>Completado</target>
|
||||
<target>Completadas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Configure ICE servers" xml:space="preserve">
|
||||
@@ -1488,7 +1493,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Confirm that you remember database passphrase to migrate it." xml:space="preserve">
|
||||
<source>Confirm that you remember database passphrase to migrate it.</source>
|
||||
<target>Confirma que recuerdas la frase de contraseña de la base de datos para migrarla.</target>
|
||||
<target>Para migrar confirma que recuerdas la frase de contraseña de la base de datos.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Confirm upload" xml:space="preserve">
|
||||
@@ -1518,6 +1523,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to your friends faster." xml:space="preserve">
|
||||
<source>Connect to your friends faster.</source>
|
||||
<target>Conecta más rápido con tus amigos.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to yourself?" xml:space="preserve">
|
||||
@@ -1561,7 +1567,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connected" xml:space="preserve">
|
||||
<source>Connected</source>
|
||||
<target>Conectado</target>
|
||||
<target>Conectadas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connected desktop" xml:space="preserve">
|
||||
@@ -1806,7 +1812,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Created" xml:space="preserve">
|
||||
<source>Created</source>
|
||||
<target>Creado</target>
|
||||
<target>Creadas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Created at" xml:space="preserve">
|
||||
@@ -2000,7 +2006,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete %lld messages?" xml:space="preserve">
|
||||
<source>Delete %lld messages?</source>
|
||||
<target>¿Elimina %lld mensajes?</target>
|
||||
<target>¿Eliminar %lld mensajes?</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delete address" xml:space="preserve">
|
||||
@@ -2185,7 +2191,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted" xml:space="preserve">
|
||||
<source>Deleted</source>
|
||||
<target>Eliminado</target>
|
||||
<target>Eliminadas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deleted at" xml:space="preserve">
|
||||
@@ -2200,7 +2206,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Deletion errors" xml:space="preserve">
|
||||
<source>Deletion errors</source>
|
||||
<target>Errores de borrado</target>
|
||||
<target>Errores de eliminación</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Delivery" xml:space="preserve">
|
||||
@@ -2945,7 +2951,7 @@ This is your own one-time link!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error stopping chat" xml:space="preserve">
|
||||
<source>Error stopping chat</source>
|
||||
<target>Error al parar Chat</target>
|
||||
<target>Error al parar SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Error switching profile!" xml:space="preserve">
|
||||
@@ -3290,7 +3296,7 @@ Error: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Fully decentralized – visible only to members." xml:space="preserve">
|
||||
<source>Fully decentralized – visible only to members.</source>
|
||||
<target>Completamente descentralizado: sólo visible a los miembros.</target>
|
||||
<target>Completamente descentralizado y sólo visible para los miembros.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Fully re-implemented - work in background!" xml:space="preserve">
|
||||
@@ -3625,7 +3631,7 @@ Error: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="In order to continue, chat should be stopped." xml:space="preserve">
|
||||
<source>In order to continue, chat should be stopped.</source>
|
||||
<target>Para continuar, Chat debe estar parado.</target>
|
||||
<target>Para continuar, SimpleX debe estar parado.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="In reply to" xml:space="preserve">
|
||||
@@ -4145,7 +4151,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
|
||||
<source>Message may be delivered later if member becomes active.</source>
|
||||
<target>El mensaje puede ser entregado más tarde si el miembro vuelve a estar activo.</target>
|
||||
<target>El mensaje podría ser entregado más tarde si el miembro vuelve a estar activo.</target>
|
||||
<note>item status description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Message queue info" xml:space="preserve">
|
||||
@@ -4378,11 +4384,6 @@ This is your link for group %@!</source>
|
||||
<target>Estado de la red</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<target>Nuevo Chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Código Nuevo</target>
|
||||
@@ -4395,6 +4396,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New chat experience 🎉" xml:space="preserve">
|
||||
<source>New chat experience 🎉</source>
|
||||
<target>Nueva experiencia de chat 🎉</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New contact request" xml:space="preserve">
|
||||
@@ -4429,6 +4431,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New media options" xml:space="preserve">
|
||||
<source>New media options</source>
|
||||
<target>Nuevas opciones multimedia</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New member role" xml:space="preserve">
|
||||
@@ -4478,7 +4481,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
|
||||
<source>No direct connection yet, message is forwarded by admin.</source>
|
||||
<target>Aún no hay conexión directa, el mensaje es reenviado por el administrador.</target>
|
||||
<target>Aún no hay conexión directa con este miembro, el mensaje es reenviado por el administrador.</target>
|
||||
<note>item status description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="No filtered chats" xml:space="preserve">
|
||||
@@ -4841,6 +4844,7 @@ Requiere activación de la VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Play from the chat list." xml:space="preserve">
|
||||
<source>Play from the chat list.</source>
|
||||
<target>Reproduce desde la lista de chats.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Please ask your contact to enable calls." xml:space="preserve">
|
||||
@@ -5236,7 +5240,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Received total" xml:space="preserve">
|
||||
<source>Received total</source>
|
||||
<target>Total recibido</target>
|
||||
<target>Total recibidos</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Receiving address will be changed to a different server. Address change will complete after sender comes online." xml:space="preserve">
|
||||
@@ -5427,11 +5431,12 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all hints" xml:space="preserve">
|
||||
<source>Reset all hints</source>
|
||||
<target>Reiniciar todas las pistas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all statistics" xml:space="preserve">
|
||||
<source>Reset all statistics</source>
|
||||
<target>Restablecer estadísticas</target>
|
||||
<target>Restablecer todas las estadísticas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all statistics?" xml:space="preserve">
|
||||
@@ -5521,7 +5526,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Run chat" xml:space="preserve">
|
||||
<source>Run chat</source>
|
||||
<target>Ejecutar chat</target>
|
||||
<target>Ejecutar SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="SMP server" xml:space="preserve">
|
||||
@@ -5706,7 +5711,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Secured" xml:space="preserve">
|
||||
<source>Secured</source>
|
||||
<target>Seguro</target>
|
||||
<target>Aseguradas</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Security assessment" xml:space="preserve">
|
||||
@@ -5931,12 +5936,12 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Sent total" xml:space="preserve">
|
||||
<source>Sent total</source>
|
||||
<target>Total enviado</target>
|
||||
<target>Total enviados</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Sent via proxy" xml:space="preserve">
|
||||
<source>Sent via proxy</source>
|
||||
<target>Enviado mediante proxy</target>
|
||||
<target>Enviado vía proxy</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Server address" xml:space="preserve">
|
||||
@@ -6086,6 +6091,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share from other apps." xml:space="preserve">
|
||||
<source>Share from other apps.</source>
|
||||
<target>Comparte desde otras aplicaciones.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share link" xml:space="preserve">
|
||||
@@ -6135,7 +6141,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show percentage" xml:space="preserve">
|
||||
<source>Show percentage</source>
|
||||
<target>Mostrar porcentaje</target>
|
||||
<target>Mostrar porcentajes</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Show preview" xml:space="preserve">
|
||||
@@ -6320,17 +6326,17 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Stop chat" xml:space="preserve">
|
||||
<source>Stop chat</source>
|
||||
<target>Parar chat</target>
|
||||
<target>Parar SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Stop chat to enable database actions" xml:space="preserve">
|
||||
<source>Stop chat to enable database actions</source>
|
||||
<target>Para habilitar las acciones sobre la base de datos, debes parar Chat</target>
|
||||
<target>Para habilitar las acciones sobre la base de datos, debes parar SimpleX</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped." xml:space="preserve">
|
||||
<source>Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped.</source>
|
||||
<target>Para poder exportar, importar o eliminar la base de datos primero debes parar Chat. Mientras tanto no podrás recibir ni enviar mensajes.</target>
|
||||
<target>Para poder exportar, importar o eliminar la base de datos primero debes parar SimpleX. Mientras tanto no podrás recibir ni enviar mensajes.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Stop chat?" xml:space="preserve">
|
||||
@@ -6637,7 +6643,7 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="They can be overridden in contact and group settings." xml:space="preserve">
|
||||
<source>They can be overridden in contact and group settings.</source>
|
||||
<target>Se pueden anular en la configuración de contactos.</target>
|
||||
<target>Se puede modificar desde la configuración particular de cada grupo y contacto.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="This action cannot be undone - all received and sent files and media will be deleted. Low resolution pictures will remain." xml:space="preserve">
|
||||
@@ -6774,6 +6780,7 @@ Se te pedirá que completes la autenticación antes de activar esta función.</t
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle chat list:" xml:space="preserve">
|
||||
<source>Toggle chat list:</source>
|
||||
<target>Alternar lista de chats:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle incognito when connecting." xml:space="preserve">
|
||||
@@ -6783,6 +6790,7 @@ Se te pedirá que completes la autenticación antes de activar esta función.</t
|
||||
</trans-unit>
|
||||
<trans-unit id="Toolbar opacity" xml:space="preserve">
|
||||
<source>Toolbar opacity</source>
|
||||
<target>Opacidad barra</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Total" xml:space="preserve">
|
||||
@@ -7441,6 +7449,7 @@ Repeat join request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can change it in Appearance settings." xml:space="preserve">
|
||||
<source>You can change it in Appearance settings.</source>
|
||||
<target>Puede cambiarlo desde el menú Apariencia.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
@@ -7752,7 +7761,7 @@ Repeat connection request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your profile **%@** will be shared." xml:space="preserve">
|
||||
<source>Your profile **%@** will be shared.</source>
|
||||
<target>Tu perfil **%@** será compartido.</target>
|
||||
<target>El perfil **%@** será compartido.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Your profile is stored on your device and shared only with your contacts. SimpleX servers cannot see your profile." xml:space="preserve">
|
||||
|
||||
@@ -4098,10 +4098,6 @@ This is your link for group %@!</source>
|
||||
<target>Verkon tila</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Uusi pääsykoodi</target>
|
||||
|
||||
@@ -4356,10 +4356,6 @@ Voici votre lien pour le groupe %@ !</target>
|
||||
<target>État du réseau</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Nouveau code d'accès</target>
|
||||
|
||||
@@ -947,6 +947,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Archive contacts to chat later." xml:space="preserve">
|
||||
<source>Archive contacts to chat later.</source>
|
||||
<target>Ismerősök archiválása a későbbi csevegéshez.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Archived contacts" xml:space="preserve">
|
||||
@@ -1056,6 +1057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Better networking" xml:space="preserve">
|
||||
<source>Better networking</source>
|
||||
<target>Jobb hálózatkezelés</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Black" xml:space="preserve">
|
||||
@@ -1100,6 +1102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur for better privacy." xml:space="preserve">
|
||||
<source>Blur for better privacy.</source>
|
||||
<target>Elhomályosítás a jobb adatvédelemért.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
@@ -1325,6 +1328,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat list" xml:space="preserve">
|
||||
<source>Chat list</source>
|
||||
<target>Csevegőlista</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat migrated!" xml:space="preserve">
|
||||
@@ -1414,6 +1418,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Color chats with the new themes." xml:space="preserve">
|
||||
<source>Color chats with the new themes.</source>
|
||||
<target>Csevegések színezése új témákkal.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Color mode" xml:space="preserve">
|
||||
@@ -1518,6 +1523,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to your friends faster." xml:space="preserve">
|
||||
<source>Connect to your friends faster.</source>
|
||||
<target>Kapcsolódjon gyorsabban az ismerőseihez.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to yourself?" xml:space="preserve">
|
||||
@@ -4378,11 +4384,6 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
|
||||
<target>Hálózat állapota</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<target>Új csevegés</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Új jelkód</target>
|
||||
@@ -4395,6 +4396,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New chat experience 🎉" xml:space="preserve">
|
||||
<source>New chat experience 🎉</source>
|
||||
<target>Új csevegési élmény 🎉</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New contact request" xml:space="preserve">
|
||||
@@ -4429,6 +4431,7 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New media options" xml:space="preserve">
|
||||
<source>New media options</source>
|
||||
<target>Új médiabeállítások</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New member role" xml:space="preserve">
|
||||
@@ -4841,6 +4844,7 @@ VPN engedélyezése szükséges.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Play from the chat list." xml:space="preserve">
|
||||
<source>Play from the chat list.</source>
|
||||
<target>Lejátszás a csevegési listából.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Please ask your contact to enable calls." xml:space="preserve">
|
||||
@@ -5101,7 +5105,7 @@ Hiba: %@</target>
|
||||
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||
Enable in *Network & servers* settings.</source>
|
||||
<target>Védje IP-címét az ismerősei által kiválasztott üzenetküldő átjátszókkal szemben.
|
||||
Engedélyezze a beállításokban a *Hálózat és kiszolgálók* menüpontban.</target>
|
||||
Engedélyezze a Beállítások / Hálózat és kiszolgálók menüben.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||
@@ -5427,6 +5431,7 @@ Engedélyezze a beállításokban a *Hálózat és kiszolgálók* menüpontban.<
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all hints" xml:space="preserve">
|
||||
<source>Reset all hints</source>
|
||||
<target>Tippek visszaállítása</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all statistics" xml:space="preserve">
|
||||
@@ -6086,6 +6091,7 @@ Engedélyezze a beállításokban a *Hálózat és kiszolgálók* menüpontban.<
|
||||
</trans-unit>
|
||||
<trans-unit id="Share from other apps." xml:space="preserve">
|
||||
<source>Share from other apps.</source>
|
||||
<target>Megosztás más alkalmazásokból.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share link" xml:space="preserve">
|
||||
@@ -6557,7 +6563,7 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="The created archive is available via app Settings / Database / Old database archive." xml:space="preserve">
|
||||
<source>The created archive is available via app Settings / Database / Old database archive.</source>
|
||||
<target>A létrehozott archívum a Beállítások / Adatbázis / Régi adatbázis-archívum menüpontban érhető el.</target>
|
||||
<target>A létrehozott archívum a Beállítások / Adatbázis / Régi adatbázis-archívum menüben érhető el.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="The encryption is working and the new encryption agreement is not required. It may result in connection errors!" xml:space="preserve">
|
||||
@@ -6774,6 +6780,7 @@ A funkció bekapcsolása előtt a rendszer felszólítja a képernyőzár beáll
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle chat list:" xml:space="preserve">
|
||||
<source>Toggle chat list:</source>
|
||||
<target>Csevegőlista átváltása:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle incognito when connecting." xml:space="preserve">
|
||||
@@ -6783,6 +6790,7 @@ A funkció bekapcsolása előtt a rendszer felszólítja a képernyőzár beáll
|
||||
</trans-unit>
|
||||
<trans-unit id="Toolbar opacity" xml:space="preserve">
|
||||
<source>Toolbar opacity</source>
|
||||
<target>Eszköztár átlátszatlansága</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Total" xml:space="preserve">
|
||||
@@ -7441,6 +7449,7 @@ Csatlakozási kérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can change it in Appearance settings." xml:space="preserve">
|
||||
<source>You can change it in Appearance settings.</source>
|
||||
<target>Ezt a „Megjelenés” menüben módosíthatja.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
@@ -7455,7 +7464,7 @@ Csatlakozási kérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can enable them later via app Privacy & Security settings." xml:space="preserve">
|
||||
<source>You can enable them later via app Privacy & Security settings.</source>
|
||||
<target>Később engedélyezheti őket az alkalmazás Adatvédelem és biztonság menüpontban.</target>
|
||||
<target>Később engedélyezheti őket az alkalmazás „Adatvédelem és biztonság” menüben.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can give another try." xml:space="preserve">
|
||||
@@ -7505,7 +7514,7 @@ Csatlakozási kérés megismétlése?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can start chat via app Settings / Database or by restarting the app" xml:space="preserve">
|
||||
<source>You can start chat via app Settings / Database or by restarting the app</source>
|
||||
<target>A csevegést az alkalmazás Beállítások / Adatbázis menü segítségével vagy az alkalmazás újraindításával indíthatja el</target>
|
||||
<target>A csevegést az alkalmazás Beállítások / Adatbázis menüben vagy az alkalmazás újraindításával indíthatja el</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can still view conversation with %@ in the list of chats." xml:space="preserve">
|
||||
@@ -9033,7 +9042,7 @@ utoljára fogadott üzenet: %2$@</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can allow sharing in Privacy & Security / SimpleX Lock settings." xml:space="preserve">
|
||||
<source>You can allow sharing in Privacy & Security / SimpleX Lock settings.</source>
|
||||
<target>A megosztást az Adatvédelem és biztonság / SimpleX zár menüpontban engedélyezheti.</target>
|
||||
<target>A megosztást az Adatvédelem és biztonság / SimpleX zár menüben engedélyezheti.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
||||
@@ -947,6 +947,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Archive contacts to chat later." xml:space="preserve">
|
||||
<source>Archive contacts to chat later.</source>
|
||||
<target>Archivia contatti per chattare più tardi.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Archived contacts" xml:space="preserve">
|
||||
@@ -1056,6 +1057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Better networking" xml:space="preserve">
|
||||
<source>Better networking</source>
|
||||
<target>Rete migliorata</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Black" xml:space="preserve">
|
||||
@@ -1100,6 +1102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur for better privacy." xml:space="preserve">
|
||||
<source>Blur for better privacy.</source>
|
||||
<target>Sfoca per una privacy maggiore.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
@@ -1325,6 +1328,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat list" xml:space="preserve">
|
||||
<source>Chat list</source>
|
||||
<target>Elenco delle chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat migrated!" xml:space="preserve">
|
||||
@@ -1414,6 +1418,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Color chats with the new themes." xml:space="preserve">
|
||||
<source>Color chats with the new themes.</source>
|
||||
<target>Colora le chat con i nuovi temi.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Color mode" xml:space="preserve">
|
||||
@@ -1518,6 +1523,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to your friends faster." xml:space="preserve">
|
||||
<source>Connect to your friends faster.</source>
|
||||
<target>Connettiti più velocemente ai tuoi amici.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to yourself?" xml:space="preserve">
|
||||
@@ -4378,11 +4384,6 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
<target>Stato della rete</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<target>Nuova chat</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Nuovo codice di accesso</target>
|
||||
@@ -4395,6 +4396,7 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New chat experience 🎉" xml:space="preserve">
|
||||
<source>New chat experience 🎉</source>
|
||||
<target>Una nuova esperienza di chat 🎉</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New contact request" xml:space="preserve">
|
||||
@@ -4429,6 +4431,7 @@ Questo è il tuo link per il gruppo %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New media options" xml:space="preserve">
|
||||
<source>New media options</source>
|
||||
<target>Nuove opzioni multimediali</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New member role" xml:space="preserve">
|
||||
@@ -4841,6 +4844,7 @@ Richiede l'attivazione della VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Play from the chat list." xml:space="preserve">
|
||||
<source>Play from the chat list.</source>
|
||||
<target>Riproduci dall'elenco delle chat.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Please ask your contact to enable calls." xml:space="preserve">
|
||||
@@ -5427,6 +5431,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all hints" xml:space="preserve">
|
||||
<source>Reset all hints</source>
|
||||
<target>Ripristina tutti i suggerimenti</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all statistics" xml:space="preserve">
|
||||
@@ -6086,6 +6091,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share from other apps." xml:space="preserve">
|
||||
<source>Share from other apps.</source>
|
||||
<target>Condividi da altre app.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share link" xml:space="preserve">
|
||||
@@ -6774,6 +6780,7 @@ Ti verrà chiesto di completare l'autenticazione prima di attivare questa funzio
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle chat list:" xml:space="preserve">
|
||||
<source>Toggle chat list:</source>
|
||||
<target>Cambia elenco chat:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle incognito when connecting." xml:space="preserve">
|
||||
@@ -6783,6 +6790,7 @@ Ti verrà chiesto di completare l'autenticazione prima di attivare questa funzio
|
||||
</trans-unit>
|
||||
<trans-unit id="Toolbar opacity" xml:space="preserve">
|
||||
<source>Toolbar opacity</source>
|
||||
<target>Opacità barra degli strumenti</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Total" xml:space="preserve">
|
||||
@@ -7441,6 +7449,7 @@ Ripetere la richiesta di ingresso?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can change it in Appearance settings." xml:space="preserve">
|
||||
<source>You can change it in Appearance settings.</source>
|
||||
<target>Puoi cambiarlo nelle impostazioni dell'aspetto.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
|
||||
@@ -4122,10 +4122,6 @@ This is your link for group %@!</source>
|
||||
<target>ネットワーク状況</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>新しいパスコード</target>
|
||||
|
||||
@@ -947,6 +947,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Archive contacts to chat later." xml:space="preserve">
|
||||
<source>Archive contacts to chat later.</source>
|
||||
<target>Archiveer contacten om later te chatten.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Archived contacts" xml:space="preserve">
|
||||
@@ -1056,6 +1057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Better networking" xml:space="preserve">
|
||||
<source>Better networking</source>
|
||||
<target>Beter netwerk</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Black" xml:space="preserve">
|
||||
@@ -1100,6 +1102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur for better privacy." xml:space="preserve">
|
||||
<source>Blur for better privacy.</source>
|
||||
<target>Vervagen voor betere privacy.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
@@ -1325,6 +1328,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat list" xml:space="preserve">
|
||||
<source>Chat list</source>
|
||||
<target>Chatlijst</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat migrated!" xml:space="preserve">
|
||||
@@ -1414,6 +1418,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Color chats with the new themes." xml:space="preserve">
|
||||
<source>Color chats with the new themes.</source>
|
||||
<target>Kleurchats met de nieuwe thema's.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Color mode" xml:space="preserve">
|
||||
@@ -1518,6 +1523,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to your friends faster." xml:space="preserve">
|
||||
<source>Connect to your friends faster.</source>
|
||||
<target>Maak sneller verbinding met je vrienden.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to yourself?" xml:space="preserve">
|
||||
@@ -4378,11 +4384,6 @@ Dit is jouw link voor groep %@!</target>
|
||||
<target>Netwerk status</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<target>Nieuw Gesprek</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Nieuwe toegangscode</target>
|
||||
@@ -4395,6 +4396,7 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New chat experience 🎉" xml:space="preserve">
|
||||
<source>New chat experience 🎉</source>
|
||||
<target>Nieuwe chatervaring 🎉</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New contact request" xml:space="preserve">
|
||||
@@ -4429,6 +4431,7 @@ Dit is jouw link voor groep %@!</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="New media options" xml:space="preserve">
|
||||
<source>New media options</source>
|
||||
<target>Nieuwe media-opties</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New member role" xml:space="preserve">
|
||||
@@ -4841,6 +4844,7 @@ Vereist het inschakelen van VPN.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Play from the chat list." xml:space="preserve">
|
||||
<source>Play from the chat list.</source>
|
||||
<target>Afspelen via de gesprekken lijst.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Please ask your contact to enable calls." xml:space="preserve">
|
||||
@@ -5151,7 +5155,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reachable chat toolbar" xml:space="preserve">
|
||||
<source>Reachable chat toolbar</source>
|
||||
<target>Bereikbare chat werkbalk</target>
|
||||
<target>Toegankelijke chatwerkbalk</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="React…" xml:space="preserve">
|
||||
@@ -5427,6 +5431,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all hints" xml:space="preserve">
|
||||
<source>Reset all hints</source>
|
||||
<target>Alle hints resetten</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all statistics" xml:space="preserve">
|
||||
@@ -6086,6 +6091,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share from other apps." xml:space="preserve">
|
||||
<source>Share from other apps.</source>
|
||||
<target>Delen vanuit andere apps.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share link" xml:space="preserve">
|
||||
@@ -6774,6 +6780,7 @@ U wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingesc
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle chat list:" xml:space="preserve">
|
||||
<source>Toggle chat list:</source>
|
||||
<target>Chatlijst wisselen:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle incognito when connecting." xml:space="preserve">
|
||||
@@ -6783,6 +6790,7 @@ U wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingesc
|
||||
</trans-unit>
|
||||
<trans-unit id="Toolbar opacity" xml:space="preserve">
|
||||
<source>Toolbar opacity</source>
|
||||
<target>De transparantie van de werkbalk</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Total" xml:space="preserve">
|
||||
@@ -7441,6 +7449,7 @@ Deelnameverzoek herhalen?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can change it in Appearance settings." xml:space="preserve">
|
||||
<source>You can change it in Appearance settings.</source>
|
||||
<target>U kunt dit wijzigen in de instellingen onder uiterlijk.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
|
||||
@@ -4343,10 +4343,6 @@ To jest twój link do grupy %@!</target>
|
||||
<target>Status sieci</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Nowy Pin</target>
|
||||
|
||||
@@ -947,6 +947,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Archive contacts to chat later." xml:space="preserve">
|
||||
<source>Archive contacts to chat later.</source>
|
||||
<target>Архивируйте контакты чтобы продолжить переписку.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Archived contacts" xml:space="preserve">
|
||||
@@ -1056,6 +1057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Better networking" xml:space="preserve">
|
||||
<source>Better networking</source>
|
||||
<target>Улучшенные сетевые функции</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Black" xml:space="preserve">
|
||||
@@ -1100,6 +1102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur for better privacy." xml:space="preserve">
|
||||
<source>Blur for better privacy.</source>
|
||||
<target>Размыть для конфиденциальности.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Blur media" xml:space="preserve">
|
||||
@@ -1325,6 +1328,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat list" xml:space="preserve">
|
||||
<source>Chat list</source>
|
||||
<target>Список чатов</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Chat migrated!" xml:space="preserve">
|
||||
@@ -1414,6 +1418,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Color chats with the new themes." xml:space="preserve">
|
||||
<source>Color chats with the new themes.</source>
|
||||
<target>Добавьте цвета к чатам в настройках тем.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Color mode" xml:space="preserve">
|
||||
@@ -1518,6 +1523,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to your friends faster." xml:space="preserve">
|
||||
<source>Connect to your friends faster.</source>
|
||||
<target>Соединяйтесь с друзьями быстрее.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Connect to yourself?" xml:space="preserve">
|
||||
@@ -4378,11 +4384,6 @@ This is your link for group %@!</source>
|
||||
<target>Состояние сети</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<target>Новый чат</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Новый Код</target>
|
||||
@@ -4395,6 +4396,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New chat experience 🎉" xml:space="preserve">
|
||||
<source>New chat experience 🎉</source>
|
||||
<target>Новый интерфейс 🎉</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New contact request" xml:space="preserve">
|
||||
@@ -4429,6 +4431,7 @@ This is your link for group %@!</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="New media options" xml:space="preserve">
|
||||
<source>New media options</source>
|
||||
<target>Новые медиа-опции</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New member role" xml:space="preserve">
|
||||
@@ -4841,6 +4844,7 @@ Requires compatible VPN.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Play from the chat list." xml:space="preserve">
|
||||
<source>Play from the chat list.</source>
|
||||
<target>Открыть из списка чатов.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Please ask your contact to enable calls." xml:space="preserve">
|
||||
@@ -5427,6 +5431,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all hints" xml:space="preserve">
|
||||
<source>Reset all hints</source>
|
||||
<target>Сбросить все подсказки</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Reset all statistics" xml:space="preserve">
|
||||
@@ -6086,6 +6091,7 @@ Enable in *Network & servers* settings.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share from other apps." xml:space="preserve">
|
||||
<source>Share from other apps.</source>
|
||||
<target>Поделитесь из других приложений.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Share link" xml:space="preserve">
|
||||
@@ -6774,6 +6780,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle chat list:" xml:space="preserve">
|
||||
<source>Toggle chat list:</source>
|
||||
<target>Переключите список чатов:</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Toggle incognito when connecting." xml:space="preserve">
|
||||
@@ -6783,6 +6790,7 @@ You will be prompted to complete authentication before this feature is enabled.<
|
||||
</trans-unit>
|
||||
<trans-unit id="Toolbar opacity" xml:space="preserve">
|
||||
<source>Toolbar opacity</source>
|
||||
<target>Прозрачность тулбара</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Total" xml:space="preserve">
|
||||
@@ -7441,6 +7449,7 @@ Repeat join request?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can change it in Appearance settings." xml:space="preserve">
|
||||
<source>You can change it in Appearance settings.</source>
|
||||
<target>Вы можете изменить это в настройках Интерфейса.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="You can create it later" xml:space="preserve">
|
||||
|
||||
@@ -4080,10 +4080,6 @@ This is your link for group %@!</source>
|
||||
<target>สถานะเครือข่าย</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>รหัสผ่านใหม่</target>
|
||||
|
||||
@@ -4280,10 +4280,6 @@ Bu senin grup için bağlantın %@!</target>
|
||||
<target>Ağ durumu</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Yeni şifre</target>
|
||||
|
||||
@@ -4280,10 +4280,6 @@ This is your link for group %@!</source>
|
||||
<target>Стан мережі</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>Новий пароль</target>
|
||||
|
||||
@@ -4225,10 +4225,6 @@ This is your link for group %@!</source>
|
||||
<target>网络状态</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Chat" xml:space="preserve">
|
||||
<source>New Chat</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="New Passcode" xml:space="preserve">
|
||||
<source>New Passcode</source>
|
||||
<target>新密码</target>
|
||||
|
||||
@@ -107,5 +107,5 @@
|
||||
"Wrong database passphrase" = "Falsches Datenbank-Passwort";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can allow sharing in Privacy & Security / SimpleX Lock settings." = "Du kannst das Teilen in den Einstellungen zu Datenschutz & Sicherheit bzw. SimpleX-Sperre erlauben.";
|
||||
"You can allow sharing in Privacy & Security / SimpleX Lock settings." = "Du kannst das Teilen in den Einstellungen zu Datenschutz & Sicherheit - SimpleX-Sperre erlauben.";
|
||||
|
||||
|
||||
@@ -107,5 +107,5 @@
|
||||
"Wrong database passphrase" = "Hibás adatbázis jelmondat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can allow sharing in Privacy & Security / SimpleX Lock settings." = "A megosztást az Adatvédelem és biztonság / SimpleX zár menüpontban engedélyezheti.";
|
||||
"You can allow sharing in Privacy & Security / SimpleX Lock settings." = "A megosztást az Adatvédelem és biztonság / SimpleX zár menüben engedélyezheti.";
|
||||
|
||||
|
||||
@@ -156,6 +156,11 @@
|
||||
64466DC829FC2B3B00E3D48D /* CreateSimpleXAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64466DC729FC2B3B00E3D48D /* CreateSimpleXAddress.swift */; };
|
||||
64466DCC29FFE3E800E3D48D /* MailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64466DCB29FFE3E800E3D48D /* MailView.swift */; };
|
||||
6448BBB628FA9D56000D2AB9 /* GroupLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6448BBB528FA9D56000D2AB9 /* GroupLinkView.swift */; };
|
||||
6449333A2AF8E51000AC506E /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933352AF8E51000AC506E /* libgmpxx.a */; };
|
||||
6449333B2AF8E51000AC506E /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933362AF8E51000AC506E /* libgmp.a */; };
|
||||
6449333C2AF8E51000AC506E /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933372AF8E51000AC506E /* libffi.a */; };
|
||||
6449333D2AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933382AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a */; };
|
||||
6449333E2AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 644933392AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a */; };
|
||||
644EFFDE292BCD9D00525D5B /* ComposeVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFDD292BCD9D00525D5B /* ComposeVoiceView.swift */; };
|
||||
644EFFE0292CFD7F00525D5B /* CIVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFDF292CFD7F00525D5B /* CIVoiceView.swift */; };
|
||||
644EFFE2292D089800525D5B /* FramedCIVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFE1292D089800525D5B /* FramedCIVoiceView.swift */; };
|
||||
@@ -219,11 +224,11 @@
|
||||
E5DCF9712C590272007928CC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5DCF96F2C590272007928CC /* Localizable.strings */; };
|
||||
E5DCF9842C5902CE007928CC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5DCF9822C5902CE007928CC /* Localizable.strings */; };
|
||||
E5DCF9982C5906FF007928CC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5DCF9962C5906FF007928CC /* InfoPlist.strings */; };
|
||||
E5E2183F2C655B410013B4C6 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E2183A2C655B410013B4C6 /* libgmp.a */; };
|
||||
E5E218402C655B410013B4C6 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E2183B2C655B410013B4C6 /* libgmpxx.a */; };
|
||||
E5E218412C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E2183C2C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8.a */; };
|
||||
E5E218422C655B410013B4C6 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E2183D2C655B410013B4C6 /* libffi.a */; };
|
||||
E5E218432C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E2183E2C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8-ghc9.6.3.a */; };
|
||||
E5E218492C6813750013B4C6 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E218442C6813750013B4C6 /* libgmpxx.a */; };
|
||||
E5E2184A2C6813750013B4C6 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E218452C6813750013B4C6 /* libffi.a */; };
|
||||
E5E2184B2C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E218462C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf-ghc9.6.3.a */; };
|
||||
E5E2184C2C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E218472C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf.a */; };
|
||||
E5E2184D2C6813750013B4C6 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E218482C6813750013B4C6 /* libgmp.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -494,6 +499,11 @@
|
||||
64466DC729FC2B3B00E3D48D /* CreateSimpleXAddress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSimpleXAddress.swift; sourceTree = "<group>"; };
|
||||
64466DCB29FFE3E800E3D48D /* MailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MailView.swift; sourceTree = "<group>"; };
|
||||
6448BBB528FA9D56000D2AB9 /* GroupLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupLinkView.swift; sourceTree = "<group>"; };
|
||||
644933352AF8E51000AC506E /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
644933362AF8E51000AC506E /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
644933372AF8E51000AC506E /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
644933382AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
644933392AF8E51000AC506E /* libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.4.0.3-EnhmkSQK6HvJ11g1uZERg8.a"; sourceTree = "<group>"; };
|
||||
644EFFDD292BCD9D00525D5B /* ComposeVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeVoiceView.swift; sourceTree = "<group>"; };
|
||||
644EFFDF292CFD7F00525D5B /* CIVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIVoiceView.swift; sourceTree = "<group>"; };
|
||||
644EFFE1292D089800525D5B /* FramedCIVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FramedCIVoiceView.swift; sourceTree = "<group>"; };
|
||||
@@ -604,11 +614,11 @@
|
||||
E5DCF9A62C590731007928CC /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
E5DCF9A72C590732007928CC /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
E5DCF9A82C590732007928CC /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
E5E2183A2C655B410013B4C6 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
E5E2183B2C655B410013B4C6 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
E5E2183C2C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8.a"; sourceTree = "<group>"; };
|
||||
E5E2183D2C655B410013B4C6 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
E5E2183E2C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
E5E218442C6813750013B4C6 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
E5E218452C6813750013B4C6 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
E5E218462C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||
E5E218472C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf.a"; sourceTree = "<group>"; };
|
||||
E5E218482C6813750013B4C6 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -647,13 +657,13 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
E5E218412C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8.a in Frameworks */,
|
||||
E5E218432C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8-ghc9.6.3.a in Frameworks */,
|
||||
E5E218402C655B410013B4C6 /* libgmpxx.a in Frameworks */,
|
||||
E5E218492C6813750013B4C6 /* libgmpxx.a in Frameworks */,
|
||||
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
|
||||
E5E218422C655B410013B4C6 /* libffi.a in Frameworks */,
|
||||
E5E2183F2C655B410013B4C6 /* libgmp.a in Frameworks */,
|
||||
E5E2184D2C6813750013B4C6 /* libgmp.a in Frameworks */,
|
||||
E5E2184C2C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf.a in Frameworks */,
|
||||
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
|
||||
E5E2184B2C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf-ghc9.6.3.a in Frameworks */,
|
||||
E5E2184A2C6813750013B4C6 /* libffi.a in Frameworks */,
|
||||
CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -731,11 +741,11 @@
|
||||
5C764E5C279C70B7000C6508 /* Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E5E2183D2C655B410013B4C6 /* libffi.a */,
|
||||
E5E2183A2C655B410013B4C6 /* libgmp.a */,
|
||||
E5E2183B2C655B410013B4C6 /* libgmpxx.a */,
|
||||
E5E2183E2C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8-ghc9.6.3.a */,
|
||||
E5E2183C2C655B410013B4C6 /* libHSsimplex-chat-6.0.0.5-LgHyBNgR6mx4TwahlxfNH8.a */,
|
||||
E5E218452C6813750013B4C6 /* libffi.a */,
|
||||
E5E218482C6813750013B4C6 /* libgmp.a */,
|
||||
E5E218442C6813750013B4C6 /* libgmpxx.a */,
|
||||
E5E218462C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf-ghc9.6.3.a */,
|
||||
E5E218472C6813750013B4C6 /* libHSsimplex-chat-6.0.0.7-JAEd2ymO3CfCyjlINhbKkf.a */,
|
||||
);
|
||||
path = Libraries;
|
||||
sourceTree = "<group>";
|
||||
@@ -1883,7 +1893,7 @@
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -1932,7 +1942,7 @@
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -1973,7 +1983,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
@@ -1993,7 +2003,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
@@ -2018,7 +2028,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = s;
|
||||
@@ -2055,7 +2065,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_CODE_COVERAGE = NO;
|
||||
@@ -2092,7 +2102,7 @@
|
||||
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@@ -2143,7 +2153,7 @@
|
||||
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@@ -2194,7 +2204,7 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
@@ -2228,7 +2238,7 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 231;
|
||||
CURRENT_PROJECT_VERSION = 232;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
|
||||
@@ -314,13 +314,13 @@
|
||||
"A separate TCP connection will be used **for each contact and group member**.\n**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." = "**Für jeden Kontakt und jedes Gruppenmitglied** wird eine separate TCP-Verbindung genutzt.\n**Bitte beachten Sie**: Wenn Sie viele Verbindungen haben, kann der Batterieverbrauch und die Datennutzung wesentlich höher sein und einige Verbindungen können scheitern.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Abort" = "Abbrechen";
|
||||
"Abort" = "Beenden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Abort changing address" = "Wechsel der Empfängeradresse abbrechen";
|
||||
"Abort changing address" = "Wechsel der Empfängeradresse beenden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Abort changing address?" = "Wechsel der Empfängeradresse abbrechen?";
|
||||
"Abort changing address?" = "Wechsel der Empfängeradresse beenden?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"About SimpleX" = "Über SimpleX";
|
||||
@@ -401,7 +401,7 @@
|
||||
"Address" = "Adresse";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Address change will be aborted. Old receiving address will be used." = "Der Wechsel der Empfängeradresse wird abgebrochen. Die bisherige Adresse wird weiter verwendet.";
|
||||
"Address change will be aborted. Old receiving address will be used." = "Der Wechsel der Empfängeradresse wird beendet. Die bisherige Adresse wird weiter verwendet.";
|
||||
|
||||
/* member role */
|
||||
"admin" = "Admin";
|
||||
@@ -472,6 +472,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Allow calls only if your contact allows them." = "Erlauben Sie Anrufe nur dann, wenn es Ihr Kontakt ebenfalls erlaubt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow calls?" = "Anrufe erlauben?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Allow disappearing messages only if your contact allows it to you." = "Erlauben Sie verschwindende Nachrichten nur dann, wenn es Ihr Kontakt ebenfalls erlaubt.";
|
||||
|
||||
@@ -592,6 +595,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Archive and upload" = "Archivieren und Hochladen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archive contacts to chat later." = "Kontakte für spätere Chats archivieren.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archived contacts" = "Archivierte Kontakte";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archiving database" = "Datenbank wird archiviert";
|
||||
|
||||
@@ -667,6 +676,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Better messages" = "Verbesserungen bei Nachrichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Better networking" = "Bessere Vernetzung";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Black" = "Schwarz";
|
||||
|
||||
@@ -700,6 +712,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Blocked by admin" = "wurde vom Administrator blockiert";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur for better privacy." = "Für bessere Privatsphäre verpixeln.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Medium unscharf machen";
|
||||
|
||||
@@ -727,6 +742,9 @@
|
||||
/* 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).";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"call" = "Anrufen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Call already ended!" = "Anruf ist bereits beendet!";
|
||||
|
||||
@@ -742,15 +760,27 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Calls" = "Anrufe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Calls prohibited!" = "Anrufe nicht zugelassen!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Camera not available" = "Kamera nicht verfügbar";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Can't call contact" = "Kontakt kann nicht angerufen werden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Can't call member" = "Mitglied kann nicht angerufen werden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Can't invite contact!" = "Kontakt kann nicht eingeladen werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Can't invite contacts!" = "Kontakte können nicht eingeladen werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Can't message member" = "Mitglied kann nicht benachrichtigt werden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Cancel" = "Abbrechen";
|
||||
|
||||
@@ -851,6 +881,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Der Chat ist angehalten. Wenn Sie diese Datenbank bereits auf einem anderen Gerät genutzt haben, sollten Sie diese vor dem Starten des Chats wieder zurückspielen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat list" = "Chat-Liste";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat migrated!" = "Chat wurde migriert!";
|
||||
|
||||
@@ -902,6 +935,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Clear verification" = "Überprüfung zurücknehmen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color chats with the new themes." = "Farbige Chats mit neuen Designs.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color mode" = "Farbvariante";
|
||||
|
||||
@@ -929,6 +965,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Confirm" = "Bestätigen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Confirm contact deletion?" = "Löschen des Kontakts bestätigen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Confirm database upgrades" = "Datenbank-Aktualisierungen bestätigen";
|
||||
|
||||
@@ -968,6 +1007,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"connect to SimpleX Chat developers." = "Mit den SimpleX Chat-Entwicklern verbinden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to your friends faster." = "Schneller mit Ihren Freunden verbinden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to yourself?" = "Mit Ihnen selbst verbinden?";
|
||||
|
||||
@@ -1034,6 +1076,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting server… (error: %@)" = "Mit dem Server verbinden… (Fehler: %@)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to contact, please wait or check later!" = "Verbinde mit Kontakt, bitte warten oder später erneut überprüfen!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting to desktop" = "Mit dem Desktop verbinden";
|
||||
|
||||
@@ -1043,6 +1088,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Connection" = "Verbindung";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection and servers status." = "Verbindungs- und Server-Status.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection error" = "Verbindungsfehler";
|
||||
|
||||
@@ -1082,6 +1130,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Contact already exists" = "Der Kontakt ist bereits vorhanden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contact deleted!" = "Kontakt gelöscht!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"contact has e2e encryption" = "Kontakt nutzt E2E-Verschlüsselung";
|
||||
|
||||
@@ -1094,12 +1145,18 @@
|
||||
/* notification */
|
||||
"Contact is connected" = "Mit Ihrem Kontakt verbunden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contact is deleted." = "Kontakt wurde gelöscht.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contact name" = "Kontaktname";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contact preferences" = "Kontakt-Präferenzen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contact will be deleted - this cannot be undone!" = "Kontakt wird gelöscht. Dies kann nicht rückgängig gemacht werden!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contacts" = "Kontakte";
|
||||
|
||||
@@ -1109,6 +1166,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Continue" = "Weiter";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Conversation deleted!" = "Unterhaltung gelöscht!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Copy" = "Kopieren";
|
||||
|
||||
@@ -1332,6 +1392,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Delete contact" = "Kontakt löschen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete contact?" = "Kontakt löschen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete database" = "Datenbank löschen";
|
||||
|
||||
@@ -1395,9 +1458,15 @@
|
||||
/* server test step */
|
||||
"Delete queue" = "Lösche Warteschlange";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete up to 20 messages at once." = "Löschen Sie bis zu 20 Nachrichten auf einmal.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete user profile?" = "Benutzerprofil löschen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete without notification" = "Ohne Benachrichtigung löschen";
|
||||
|
||||
/* deleted chat item */
|
||||
"deleted" = "Gelöscht";
|
||||
|
||||
@@ -1458,6 +1527,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Develop" = "Entwicklung";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Developer options" = "Optionen für Entwickler";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Developer tools" = "Entwicklertools";
|
||||
|
||||
@@ -1771,7 +1843,7 @@
|
||||
"Error" = "Fehler";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error aborting address change" = "Fehler beim Abbrechen des Adresswechsels";
|
||||
"Error aborting address change" = "Fehler beim Beenden des Adresswechsels";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error accepting contact request" = "Fehler beim Annehmen der Kontaktanfrage";
|
||||
@@ -2464,6 +2536,9 @@
|
||||
/* group name */
|
||||
"invitation to group %@" = "Einladung zur Gruppe %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"invite" = "Einladen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Invite friends" = "Freunde einladen";
|
||||
|
||||
@@ -2509,6 +2584,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"It can happen when:\n1. The messages expired in the sending client after 2 days or on the server after 30 days.\n2. Message decryption failed, because you or your contact used old database backup.\n3. The connection was compromised." = "Dies kann unter folgenden Umständen passieren:\n1. Die Nachrichten verfallen auf dem sendenden Client-System nach 2 Tagen oder auf dem Server nach 30 Tagen.\n2. Die Nachrichten-Entschlüsselung ist fehlgeschlagen, da von Ihnen oder Ihrem Kontakt ein altes Datenbank-Backup genutzt wurde.\n3. Die Verbindung wurde kompromittiert.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"It protects your IP address and connections." = "Ihre IP-Adresse und Verbindungen werden geschützt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"It seems like you are already connected via this link. If it is not the case, there was an error (%@)." = "Es sieht so aus, als ob Sie bereits über diesen Link verbunden sind. Wenn das nicht der Fall ist, gab es einen Fehler (%@).";
|
||||
|
||||
@@ -2551,6 +2629,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Keep" = "Behalten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Keep conversation" = "Unterhaltung behalten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Keep the app open to use it from desktop" = "Die App muss geöffnet bleiben, um sie vom Desktop aus nutzen zu können";
|
||||
|
||||
@@ -2695,6 +2776,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Menus" = "Menüs";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"message" = "Nachricht";
|
||||
|
||||
/* item status text */
|
||||
"Message delivery error" = "Fehler bei der Nachrichtenzustellung";
|
||||
|
||||
@@ -2842,6 +2926,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Multiple chat profiles" = "Mehrere Chat-Profile";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"mute" = "Stummschalten";
|
||||
|
||||
/* swipe action */
|
||||
"Mute" = "Stummschalten";
|
||||
|
||||
@@ -2875,6 +2962,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New chat" = "Neuer Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New chat experience 🎉" = "Neue Chat-Erfahrung 🎉";
|
||||
|
||||
/* notification */
|
||||
"New contact request" = "Neue Kontaktanfrage";
|
||||
|
||||
@@ -2893,6 +2983,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Neu in %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New media options" = "Neue Medien-Optionen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New member role" = "Neue Mitgliedsrolle";
|
||||
|
||||
@@ -3021,6 +3114,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Only client devices store user profiles, contacts, groups, and messages sent with **2-layer end-to-end encryption**." = "Nur die Endgeräte speichern die Benutzerprofile, Kontakte, Gruppen und Nachrichten, welche über eine **2-Schichten Ende-zu-Ende-Verschlüsselung** gesendet werden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only delete conversation" = "Nur die Unterhaltung löschen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only group owners can change group preferences." = "Gruppen-Präferenzen können nur von Gruppen-Eigentümern geändert werden.";
|
||||
|
||||
@@ -3177,6 +3273,12 @@
|
||||
/* No comment provided by engineer. */
|
||||
"PING interval" = "PING-Intervall";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play from the chat list." = "Direkt aus der Chat-Liste abspielen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Please ask your contact to enable calls." = "Bitten Sie Ihren Kontakt darum, Anrufe zu aktivieren.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Please ask your contact to enable sending voice messages." = "Bitten Sie Ihren Kontakt darum, das Senden von Sprachnachrichten zu aktivieren.";
|
||||
|
||||
@@ -3357,6 +3459,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Rate the app" = "Bewerten Sie die App";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reachable chat toolbar" = "Erreichbare Chat-Symbolleiste";
|
||||
|
||||
/* chat item menu */
|
||||
"React…" = "Reagiere…";
|
||||
|
||||
@@ -3544,6 +3649,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Reset" = "Zurücksetzen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all hints" = "Alle Hinweise zurücksetzen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics" = "Alle Statistiken zurücksetzen";
|
||||
|
||||
@@ -3697,6 +3805,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Scan server QR code" = "Scannen Sie den QR-Code des Servers";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"search" = "Suchen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Search" = "Suche";
|
||||
|
||||
@@ -3781,6 +3892,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Send live message" = "Live Nachricht senden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Send message to enable calls." = "Nachricht senden, um Anrufe zu aktivieren.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Send messages directly when IP address is protected and your or destination server does not support private routing." = "Nachrichten werden direkt versendet, wenn die IP-Adresse geschützt ist, und Ihr oder der Zielserver kein privates Routing unterstützt.";
|
||||
|
||||
@@ -3961,6 +4075,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share address with contacts?" = "Die Adresse mit Kontakten teilen?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share from other apps." = "Aus anderen Apps heraus teilen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share link" = "Link teilen";
|
||||
|
||||
@@ -4384,9 +4501,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Um die Ende-zu-Ende-Verschlüsselung mit Ihrem Kontakt zu überprüfen, müssen Sie den Sicherheitscode in Ihren Apps vergleichen oder scannen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle chat list:" = "Chat-Liste umschalten:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle incognito when connecting." = "Inkognito beim Verbinden einschalten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toolbar opacity" = "Deckkraft der Symbolleiste";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Total" = "Summe aller Abonnements";
|
||||
|
||||
@@ -4489,6 +4612,9 @@
|
||||
/* authentication reason */
|
||||
"Unlock app" = "App entsperren";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"unmute" = "Stummschaltung aufheben";
|
||||
|
||||
/* swipe action */
|
||||
"Unmute" = "Stummschaltung aufheben";
|
||||
|
||||
@@ -4582,6 +4708,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Use the app while in the call." = "Die App kann während eines Anrufs genutzt werden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Use the app with one hand." = "Die App mit einer Hand nutzen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"User profile" = "Benutzerprofil";
|
||||
|
||||
@@ -4636,6 +4765,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Via secure quantum resistant protocol." = "Über ein sicheres quantenbeständiges Protokoll.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"video" = "Video";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Video call" = "Videoanruf";
|
||||
|
||||
@@ -4846,6 +4978,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can accept calls from lock screen, without device and app authentication." = "Sie können Anrufe ohne Geräte- und App-Authentifizierung vom Sperrbildschirm aus annehmen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "Kann von Ihnen in den Erscheinungsbild-Einstellungen geändert werden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Sie können dies später erstellen";
|
||||
|
||||
@@ -4867,6 +5002,9 @@
|
||||
/* notification body */
|
||||
"You can now chat with %@" = "Sie können nun Nachrichten an %@ versenden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can send messages to %@ from Archived contacts." = "Sie können aus den archivierten Kontakten heraus Nachrichten an %@ versenden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can set lock screen notification preview via settings." = "Über die Geräte-Einstellungen können Sie die Benachrichtigungsvorschau im Sperrbildschirm erlauben.";
|
||||
|
||||
@@ -4882,6 +5020,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can start chat via app Settings / Database or by restarting the app" = "Sie können den Chat über die App-Einstellungen / Datenbank oder durch Neustart der App starten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can still view conversation with %@ in the list of chats." = "Sie können in der Chatliste weiterhin die Unterhaltung mit %@ einsehen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can turn on SimpleX Lock via Settings." = "Sie können die SimpleX-Sperre über die Einstellungen aktivieren.";
|
||||
|
||||
@@ -4942,6 +5083,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"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." = "Sie dürfen die neueste Version Ihrer Chat-Datenbank NUR auf einem Gerät verwenden, andernfalls erhalten Sie möglicherweise keine Nachrichten mehr von einigen Ihrer Kontakte.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You need to allow your contact to call to be able to call them." = "Sie müssen Ihrem Kontakt Anrufe zu Ihnen erlauben, bevor Sie ihn selbst anrufen können.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You need to allow your contact to send voice messages to be able to send them." = "Sie müssen Ihrem Kontakt das Senden von Sprachnachrichten erlauben, um diese senden zu können.";
|
||||
|
||||
|
||||
@@ -356,10 +356,10 @@
|
||||
"accepted call" = "llamada aceptada";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledged" = "Recibido";
|
||||
"Acknowledged" = "Confirmaciones";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Acknowledgement errors" = "Errores de reconocimiento";
|
||||
"Acknowledgement errors" = "Errores de confirmación";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Active connections" = "Conexiones activas";
|
||||
@@ -437,7 +437,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 para tu dispositivo.";
|
||||
"All data is private to 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.";
|
||||
@@ -595,6 +595,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Archive and upload" = "Archivar y subir";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archive contacts to chat later." = "Archivar contactos para charlar más tarde.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archived contacts" = "Contactos archivados";
|
||||
|
||||
@@ -673,6 +676,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Better messages" = "Mensajes mejorados";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Better networking" = "Uso de red mejorado";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Black" = "Negro";
|
||||
|
||||
@@ -706,6 +712,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Blocked by admin" = "Bloqueado por administrador";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur for better privacy." = "Difuminar para más privacidad.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Difuminar multimedia";
|
||||
|
||||
@@ -852,7 +861,7 @@
|
||||
"Chat console" = "Consola de Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat database" = "Base de datos del chat";
|
||||
"Chat database" = "Base de datos de SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat database deleted" = "Base de datos eliminada";
|
||||
@@ -864,13 +873,16 @@
|
||||
"Chat database imported" = "Base de datos importada";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is running" = "Chat está en ejecución";
|
||||
"Chat is running" = "SimpleX está en ejecución";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is stopped" = "Chat está parado";
|
||||
"Chat is stopped" = "SimpleX está parado";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Chat parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar Chat.";
|
||||
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "SimpleX está parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar SimpleX.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat list" = "Lista de chats";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat migrated!" = "¡Chat migrado!";
|
||||
@@ -923,6 +935,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Clear verification" = "Eliminar verificación";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color chats with the new themes." = "Colorea los chats con los nuevos temas.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color mode" = "Modo de color";
|
||||
|
||||
@@ -939,7 +954,7 @@
|
||||
"complete" = "completado";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Completed" = "Completado";
|
||||
"Completed" = "Completadas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Configure ICE servers" = "Configure servidores ICE";
|
||||
@@ -972,7 +987,7 @@
|
||||
"Confirm password" = "Confirmar contraseña";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Confirm that you remember database passphrase to migrate it." = "Confirma que recuerdas la frase de contraseña de la base de datos para migrarla.";
|
||||
"Confirm that you remember database passphrase to migrate it." = "Para migrar confirma que recuerdas la frase de contraseña de la base de datos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Confirm upload" = "Confirmar subida";
|
||||
@@ -992,6 +1007,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"connect to SimpleX Chat developers." = "contacta con los desarrolladores de SimpleX Chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to your friends faster." = "Conecta más rápido con tus amigos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to yourself?" = "¿Conectarte a tí mismo?";
|
||||
|
||||
@@ -1017,7 +1035,7 @@
|
||||
"connected" = "conectado";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connected" = "Conectado";
|
||||
"Connected" = "Conectadas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connected desktop" = "Ordenador conectado";
|
||||
@@ -1203,7 +1221,7 @@
|
||||
"Create your profile" = "Crea tu perfil";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Created" = "Creado";
|
||||
"Created" = "Creadas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Created at" = "Creado";
|
||||
@@ -1339,7 +1357,7 @@
|
||||
"Delete %lld messages of members?" = "¿Eliminar %lld mensajes de miembros?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete %lld messages?" = "¿Elimina %lld mensajes?";
|
||||
"Delete %lld messages?" = "¿Eliminar %lld mensajes?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete address" = "Eliminar dirección";
|
||||
@@ -1453,7 +1471,7 @@
|
||||
"deleted" = "eliminado";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Deleted" = "Eliminado";
|
||||
"Deleted" = "Eliminadas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Deleted at" = "Eliminado";
|
||||
@@ -1468,7 +1486,7 @@
|
||||
"deleted group" = "grupo eliminado";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Deletion errors" = "Errores de borrado";
|
||||
"Deletion errors" = "Errores de eliminación";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delivery" = "Entrega";
|
||||
@@ -1975,7 +1993,7 @@
|
||||
"Error starting chat" = "Error al iniciar Chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error stopping chat" = "Error al parar Chat";
|
||||
"Error stopping chat" = "Error al parar SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error switching profile!" = "¡Error al cambiar perfil!";
|
||||
@@ -2189,7 +2207,7 @@
|
||||
"Full name:" = "Nombre completo:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Fully decentralized – visible only to members." = "Completamente descentralizado: sólo visible a los miembros.";
|
||||
"Fully decentralized – visible only to members." = "Completamente descentralizado y sólo visible para los miembros.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Fully re-implemented - work in background!" = "Completamente reimplementado: ¡funciona en segundo plano!";
|
||||
@@ -2399,7 +2417,7 @@
|
||||
"Improved server configuration" = "Configuración del servidor mejorada";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"In order to continue, chat should be stopped." = "Para continuar, Chat debe estar parado.";
|
||||
"In order to continue, chat should be stopped." = "Para continuar, SimpleX debe estar parado.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"In reply to" = "En respuesta a";
|
||||
@@ -2777,7 +2795,7 @@
|
||||
"Message forwarded" = "Mensaje reenviado";
|
||||
|
||||
/* item status description */
|
||||
"Message may be delivered later if member becomes active." = "El mensaje puede ser entregado más tarde si el miembro vuelve a estar activo.";
|
||||
"Message may be delivered later if member becomes active." = "El mensaje podría ser entregado más tarde si el miembro vuelve a estar activo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Message queue info" = "Información cola de mensajes";
|
||||
@@ -2945,7 +2963,7 @@
|
||||
"New chat" = "Nuevo chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New Chat" = "Nuevo Chat";
|
||||
"New chat experience 🎉" = "Nueva experiencia de chat 🎉";
|
||||
|
||||
/* notification */
|
||||
"New contact request" = "Nueva solicitud de contacto";
|
||||
@@ -2965,6 +2983,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Nuevo en %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New media options" = "Nuevas opciones multimedia";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New member role" = "Nuevo rol de miembro";
|
||||
|
||||
@@ -3002,7 +3023,7 @@
|
||||
"No device token!" = "¡Sin dispositivo token!";
|
||||
|
||||
/* item status description */
|
||||
"No direct connection yet, message is forwarded by admin." = "Aún no hay conexión directa, el mensaje es reenviado por el administrador.";
|
||||
"No direct connection yet, message is forwarded by admin." = "Aún no hay conexión directa con este miembro, el mensaje es reenviado por el administrador.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"no e2e encryption" = "sin cifrar";
|
||||
@@ -3252,6 +3273,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"PING interval" = "Intervalo PING";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play from the chat list." = "Reproduce desde la lista de chats.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Please ask your contact to enable calls." = "Por favor, pide a tu contacto que active las llamadas.";
|
||||
|
||||
@@ -3493,7 +3517,7 @@
|
||||
"Received reply" = "Respuesta recibida";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Received total" = "Total recibido";
|
||||
"Received total" = "Total recibidos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "La dirección de recepción pasará a otro servidor. El cambio se completará cuando el remitente esté en línea.";
|
||||
@@ -3626,7 +3650,10 @@
|
||||
"Reset" = "Restablecer";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics" = "Restablecer estadísticas";
|
||||
"Reset all hints" = "Reiniciar todas las pistas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics" = "Restablecer todas las estadísticas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics?" = "¿Restablecer todas las estadísticas?";
|
||||
@@ -3680,7 +3707,7 @@
|
||||
"Role" = "Rol";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Run chat" = "Ejecutar chat";
|
||||
"Run chat" = "Ejecutar SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Safely receive files" = "Recibe archivos de forma segura";
|
||||
@@ -3806,7 +3833,7 @@
|
||||
"Secure queue" = "Cola segura";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Secured" = "Seguro";
|
||||
"Secured" = "Aseguradas";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Security assessment" = "Evaluación de la seguridad";
|
||||
@@ -3947,10 +3974,10 @@
|
||||
"Sent reply" = "Respuesta enviada";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sent total" = "Total enviado";
|
||||
"Sent total" = "Total enviados";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sent via proxy" = "Enviado mediante proxy";
|
||||
"Sent via proxy" = "Enviado vía proxy";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Server address" = "Dirección del servidor";
|
||||
@@ -4048,6 +4075,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share address with contacts?" = "¿Compartir la dirección con los contactos?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share from other apps." = "Comparte desde otras aplicaciones.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share link" = "Compartir enlace";
|
||||
|
||||
@@ -4076,7 +4106,7 @@
|
||||
"Show message status" = "Estado del mensaje";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show percentage" = "Mostrar porcentaje";
|
||||
"Show percentage" = "Mostrar porcentajes";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show preview" = "Mostrar vista previa";
|
||||
@@ -4193,13 +4223,13 @@
|
||||
"Stop" = "Parar";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Stop chat" = "Parar chat";
|
||||
"Stop chat" = "Parar SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Stop chat to enable database actions" = "Para habilitar las acciones sobre la base de datos, debes parar Chat";
|
||||
"Stop chat to enable database actions" = "Para habilitar las acciones sobre la base de datos, debes parar SimpleX";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped." = "Para poder exportar, importar o eliminar la base de datos primero debes parar Chat. Mientras tanto no podrás recibir ni enviar mensajes.";
|
||||
"Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped." = "Para poder exportar, importar o eliminar la base de datos primero debes parar SimpleX. Mientras tanto no podrás recibir ni enviar mensajes.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Stop chat?" = "¿Parar Chat?";
|
||||
@@ -4388,7 +4418,7 @@
|
||||
"These settings are for your current profile **%@**." = "Esta configuración afecta a tu perfil actual **%@**.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"They can be overridden in contact and group settings." = "Se pueden anular en la configuración de contactos.";
|
||||
"They can be overridden in contact and group settings." = "Se puede modificar desde la configuración particular de cada grupo y contacto.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This action cannot be undone - all received and sent files and media will be deleted. Low resolution pictures will remain." = "Esta acción es irreversible. Se eliminarán todos los archivos y multimedia recibidos y enviados. Las imágenes de baja resolución permanecerán.";
|
||||
@@ -4471,9 +4501,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Para verificar el cifrado de extremo a extremo con tu contacto, compara (o escanea) el código en ambos dispositivos.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle chat list:" = "Alternar lista de chats:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle incognito when connecting." = "Activa incógnito al conectar.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toolbar opacity" = "Opacidad barra";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Total" = "Total";
|
||||
|
||||
@@ -4942,6 +4978,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can accept calls from lock screen, without device and app authentication." = "Puede aceptar llamadas desde la pantalla de bloqueo, sin autenticación de dispositivos y aplicaciones.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "Puede cambiarlo desde el menú Apariencia.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Puedes crearla más tarde";
|
||||
|
||||
@@ -5147,7 +5186,7 @@
|
||||
"Your profile" = "Tu perfil";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Your profile **%@** will be shared." = "Tu perfil **%@** será compartido.";
|
||||
"Your profile **%@** will be shared." = "El perfil **%@** será compartido.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Your profile is stored on your device and shared only with your contacts.\nSimpleX servers cannot see your profile." = "Tu perfil es almacenado en tu dispositivo y solamente se comparte con tus contactos.\nLos servidores SimpleX no pueden ver tu perfil.";
|
||||
|
||||
@@ -595,6 +595,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Archive and upload" = "Archiválás és feltöltés";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archive contacts to chat later." = "Ismerősök archiválása a későbbi csevegéshez.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archived contacts" = "Archivált ismerősök";
|
||||
|
||||
@@ -673,6 +676,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Better messages" = "Jobb üzenetek";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Better networking" = "Jobb hálózatkezelés";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Black" = "Fekete";
|
||||
|
||||
@@ -706,6 +712,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Blocked by admin" = "Letiltva az admin által";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"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";
|
||||
|
||||
@@ -872,6 +881,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "A csevegés leállt. Ha már használta ezt az adatbázist egy másik eszközön, úgy visszaállítás szükséges a csevegés megkezdése előtt.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat list" = "Csevegőlista";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat migrated!" = "A csevegés átköltöztetve!";
|
||||
|
||||
@@ -923,6 +935,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Clear verification" = "Hitelesítés törlése";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color chats with the new themes." = "Csevegések színezése új témákkal.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color mode" = "Színmód";
|
||||
|
||||
@@ -992,6 +1007,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"connect to SimpleX Chat developers." = "Kapcsolódás a SimpleX Chat fejlesztőkhöz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to your friends faster." = "Kapcsolódjon gyorsabban az ismerőseihez.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to yourself?" = "Kapcsolódás saját magához?";
|
||||
|
||||
@@ -2945,7 +2963,7 @@
|
||||
"New chat" = "Új beszélgetés";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New Chat" = "Új csevegés";
|
||||
"New chat experience 🎉" = "Új csevegési élmény 🎉";
|
||||
|
||||
/* notification */
|
||||
"New contact request" = "Új kapcsolattartási kérelem";
|
||||
@@ -2965,6 +2983,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Újdonságok a(z) %@ verzióban";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New media options" = "Új médiabeállítások";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New member role" = "Új tag szerepköre";
|
||||
|
||||
@@ -3252,6 +3273,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"PING interval" = "PING időköze";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play from the chat list." = "Lejátszás a csevegési listából.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Please ask your contact to enable calls." = "Kérje meg az ismerősét, hogy engedélyezze a hívásokat.";
|
||||
|
||||
@@ -3406,7 +3430,7 @@
|
||||
"Protect your chat profiles with a password!" = "Csevegési profiljok védelme jelszóval!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Védje IP-címét az ismerősei által kiválasztott üzenetküldő átjátszókkal szemben.\nEngedélyezze a beállításokban a *Hálózat és kiszolgálók* menüpontban.";
|
||||
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Védje IP-címét az ismerősei által kiválasztott üzenetküldő átjátszókkal szemben.\nEngedélyezze a Beállítások / Hálózat és kiszolgálók menüben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Protocol timeout" = "Protokoll időtúllépés";
|
||||
@@ -3625,6 +3649,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Reset" = "Alaphelyzetbe állítás";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all hints" = "Tippek visszaállítása";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics" = "Minden statisztika visszaállítása";
|
||||
|
||||
@@ -4048,6 +4075,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share address with contacts?" = "Megosztja a címet az ismerőseivel?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share from other apps." = "Megosztás más alkalmazásokból.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share link" = "Hivatkozás megosztása";
|
||||
|
||||
@@ -4337,7 +4367,7 @@
|
||||
"The contact you shared this link with will NOT be able to connect!" = "Ismerőse, akivel megosztotta ezt a hivatkozást, NEM fog tudni kapcsolódni!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The created archive is available via app Settings / Database / Old database archive." = "A létrehozott archívum a Beállítások / Adatbázis / Régi adatbázis-archívum menüpontban érhető el.";
|
||||
"The created archive is available via app Settings / Database / Old database archive." = "A létrehozott archívum a Beállítások / Adatbázis / Régi adatbázis-archívum menüben érhető el.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"The encryption is working and the new encryption agreement is not required. It may result in connection errors!" = "A titkosítás működik, és új titkosítási egyezményre nincs szükség. Ez kapcsolati hibákat eredményezhet!";
|
||||
@@ -4471,9 +4501,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "A végpontok közötti titkosítás ellenőrzéséhez hasonlítsa össze (vagy olvassa be a QR-kódot) az ismerőse eszközén lévő kóddal.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle chat list:" = "Csevegőlista átváltása:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle incognito when connecting." = "Inkognitó mód kapcsolódáskor.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toolbar opacity" = "Eszköztár átlátszatlansága";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Total" = "Összesen";
|
||||
|
||||
@@ -4942,6 +4978,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can accept calls from lock screen, without device and app authentication." = "Hívásokat fogadhat a lezárási képernyőről, eszköz- és alkalmazáshitelesítés nélkül.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "Ezt a „Megjelenés” menüben módosíthatja.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Létrehozás később";
|
||||
|
||||
@@ -4949,7 +4988,7 @@
|
||||
"You can enable later via Settings" = "Később engedélyezheti a Beállításokban";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can enable them later via app Privacy & Security settings." = "Később engedélyezheti őket az alkalmazás Adatvédelem és biztonság menüpontban.";
|
||||
"You can enable them later via app Privacy & Security settings." = "Később engedélyezheti őket az alkalmazás „Adatvédelem és biztonság” menüben.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can give another try." = "Megpróbálhatja még egyszer.";
|
||||
@@ -4979,7 +5018,7 @@
|
||||
"You can share your address as a link or QR code - anybody can connect to you." = "Megoszthatja a címét egy hivatkozásként vagy QR-kódként – így bárki kapcsolódhat önhöz.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can start chat via app Settings / Database or by restarting the app" = "A csevegést az alkalmazás Beállítások / Adatbázis menü segítségével vagy az alkalmazás újraindításával indíthatja el";
|
||||
"You can start chat via app Settings / Database or by restarting the app" = "A csevegést az alkalmazás Beállítások / Adatbázis menüben vagy az alkalmazás újraindításával indíthatja el";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can still view conversation with %@ in the list of chats." = "A(z) %@ nevű ismerősével folytatott beszélgetéseit továbbra is megtekintheti a csevegések listájában.";
|
||||
|
||||
@@ -595,6 +595,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Archive and upload" = "Archivia e carica";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archive contacts to chat later." = "Archivia contatti per chattare più tardi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archived contacts" = "Contatti archiviati";
|
||||
|
||||
@@ -673,6 +676,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Better messages" = "Messaggi migliorati";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Better networking" = "Rete migliorata";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Black" = "Nero";
|
||||
|
||||
@@ -706,6 +712,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Blocked by admin" = "Bloccato dall'amministratore";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur for better privacy." = "Sfoca per una privacy maggiore.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Sfocatura file multimediali";
|
||||
|
||||
@@ -872,6 +881,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "La chat è ferma. Se hai già usato questo database su un altro dispositivo, dovresti trasferirlo prima di avviare la chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat list" = "Elenco delle chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat migrated!" = "Chat migrata!";
|
||||
|
||||
@@ -923,6 +935,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Clear verification" = "Annulla la verifica";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color chats with the new themes." = "Colora le chat con i nuovi temi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color mode" = "Modalità di colore";
|
||||
|
||||
@@ -992,6 +1007,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"connect to SimpleX Chat developers." = "connettiti agli sviluppatori di SimpleX Chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to your friends faster." = "Connettiti più velocemente ai tuoi amici.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to yourself?" = "Connettersi a te stesso?";
|
||||
|
||||
@@ -2945,7 +2963,7 @@
|
||||
"New chat" = "Nuova chat";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New Chat" = "Nuova chat";
|
||||
"New chat experience 🎉" = "Una nuova esperienza di chat 🎉";
|
||||
|
||||
/* notification */
|
||||
"New contact request" = "Nuova richiesta di contatto";
|
||||
@@ -2965,6 +2983,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Novità nella %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New media options" = "Nuove opzioni multimediali";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New member role" = "Nuovo ruolo del membro";
|
||||
|
||||
@@ -3252,6 +3273,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"PING interval" = "Intervallo PING";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play from the chat list." = "Riproduci dall'elenco delle chat.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Please ask your contact to enable calls." = "Chiedi al contatto di attivare le chiamate.";
|
||||
|
||||
@@ -3625,6 +3649,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Reset" = "Ripristina";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all hints" = "Ripristina tutti i suggerimenti";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics" = "Azzera tutte le statistiche";
|
||||
|
||||
@@ -4048,6 +4075,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share address with contacts?" = "Condividere l'indirizzo con i contatti?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share from other apps." = "Condividi da altre app.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share link" = "Condividi link";
|
||||
|
||||
@@ -4471,9 +4501,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Per verificare la crittografia end-to-end con il tuo contatto, confrontate (o scansionate) il codice sui vostri dispositivi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle chat list:" = "Cambia elenco chat:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle incognito when connecting." = "Attiva/disattiva l'incognito quando ti colleghi.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toolbar opacity" = "Opacità barra degli strumenti";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Total" = "Totale";
|
||||
|
||||
@@ -4942,6 +4978,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can accept calls from lock screen, without device and app authentication." = "Puoi accettare chiamate dalla schermata di blocco, senza l'autenticazione del dispositivo e dell'app.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "Puoi cambiarlo nelle impostazioni dell'aspetto.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Puoi crearlo più tardi";
|
||||
|
||||
|
||||
@@ -595,6 +595,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Archive and upload" = "Archiveren en uploaden";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archive contacts to chat later." = "Archiveer contacten om later te chatten.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archived contacts" = "Gearchiveerde contacten";
|
||||
|
||||
@@ -673,6 +676,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Better messages" = "Betere berichten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Better networking" = "Beter netwerk";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Black" = "Zwart";
|
||||
|
||||
@@ -706,6 +712,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Blocked by admin" = "Geblokkeerd door beheerder";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur for better privacy." = "Vervagen voor betere privacy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Vervaag media";
|
||||
|
||||
@@ -872,6 +881,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Chat is gestopt. Als je deze database al op een ander apparaat hebt gebruikt, moet je deze terugzetten voordat je met chatten begint.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat list" = "Chatlijst";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat migrated!" = "Chat gemigreerd!";
|
||||
|
||||
@@ -923,6 +935,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Clear verification" = "Verwijderd verificatie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color chats with the new themes." = "Kleurchats met de nieuwe thema's.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color mode" = "Kleur mode";
|
||||
|
||||
@@ -992,6 +1007,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"connect to SimpleX Chat developers." = "maak verbinding met SimpleX Chat-ontwikkelaars.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to your friends faster." = "Maak sneller verbinding met je vrienden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to yourself?" = "Verbinding maken met jezelf?";
|
||||
|
||||
@@ -2945,7 +2963,7 @@
|
||||
"New chat" = "Nieuw gesprek";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New Chat" = "Nieuw Gesprek";
|
||||
"New chat experience 🎉" = "Nieuwe chatervaring 🎉";
|
||||
|
||||
/* notification */
|
||||
"New contact request" = "Nieuw contactverzoek";
|
||||
@@ -2965,6 +2983,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Nieuw in %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New media options" = "Nieuwe media-opties";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New member role" = "Nieuwe leden rol";
|
||||
|
||||
@@ -3252,6 +3273,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"PING interval" = "PING interval";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play from the chat list." = "Afspelen via de gesprekken lijst.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Please ask your contact to enable calls." = "Vraag uw contactpersoon om oproepen in te schakelen.";
|
||||
|
||||
@@ -3436,7 +3460,7 @@
|
||||
"Rate the app" = "Beoordeel de app";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reachable chat toolbar" = "Bereikbare chat werkbalk";
|
||||
"Reachable chat toolbar" = "Toegankelijke chatwerkbalk";
|
||||
|
||||
/* chat item menu */
|
||||
"React…" = "Reageer…";
|
||||
@@ -3625,6 +3649,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Reset" = "Resetten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all hints" = "Alle hints resetten";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics" = "Reset alle statistieken";
|
||||
|
||||
@@ -4048,6 +4075,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share address with contacts?" = "Adres delen met contacten?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share from other apps." = "Delen vanuit andere apps.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share link" = "Deel link";
|
||||
|
||||
@@ -4471,9 +4501,15 @@
|
||||
/* No comment provided by engineer. */
|
||||
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Vergelijk (of scan) de code op uw apparaten om end-to-end-codering met uw contact te verifiëren.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle chat list:" = "Chatlijst wisselen:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle incognito when connecting." = "Schakel incognito in tijdens het verbinden.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toolbar opacity" = "De transparantie van de werkbalk";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Total" = "Totaal";
|
||||
|
||||
@@ -4942,6 +4978,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can accept calls from lock screen, without device and app authentication." = "U kunt oproepen van het vergrendelingsscherm accepteren, zonder apparaat- en app-verificatie.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "U kunt dit wijzigen in de instellingen onder uiterlijk.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "U kan het later maken";
|
||||
|
||||
|
||||
@@ -595,6 +595,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Archive and upload" = "Архивировать и загрузить";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archive contacts to chat later." = "Архивируйте контакты чтобы продолжить переписку.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Archived contacts" = "Архивированные контакты";
|
||||
|
||||
@@ -673,6 +676,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Better messages" = "Улучшенные сообщения";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Better networking" = "Улучшенные сетевые функции";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Black" = "Черная";
|
||||
|
||||
@@ -706,6 +712,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Blocked by admin" = "Заблокирован администратором";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur for better privacy." = "Размыть для конфиденциальности.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blur media" = "Размытие изображений";
|
||||
|
||||
@@ -872,6 +881,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Чат остановлен. Если вы уже использовали эту базу данных на другом устройстве, перенесите ее обратно до запуска чата.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat list" = "Список чатов";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chat migrated!" = "Чат мигрирован!";
|
||||
|
||||
@@ -923,6 +935,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Clear verification" = "Сбросить подтверждение";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color chats with the new themes." = "Добавьте цвета к чатам в настройках.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Color mode" = "Режим цветов";
|
||||
|
||||
@@ -992,6 +1007,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"connect to SimpleX Chat developers." = "соединитесь с разработчиками.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to your friends faster." = "Соединяйтесь с друзьями быстрее.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connect to yourself?" = "Соединиться с самим собой?";
|
||||
|
||||
@@ -1441,7 +1459,7 @@
|
||||
"Delete queue" = "Удаление очереди";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete up to 20 messages at once." = "Удаляйте до 20 сообщений одновременно.";
|
||||
"Delete up to 20 messages at once." = "Удаляйте до 20 сообщений за раз.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete user profile?" = "Удалить профиль пользователя?";
|
||||
@@ -2945,7 +2963,7 @@
|
||||
"New chat" = "Новый чат";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New Chat" = "Новый чат";
|
||||
"New chat experience 🎉" = "Новый интерфейс 🎉";
|
||||
|
||||
/* notification */
|
||||
"New contact request" = "Новый запрос на соединение";
|
||||
@@ -2965,6 +2983,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"New in %@" = "Новое в %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New media options" = "Новые медиа-опции";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New member role" = "Роль члена группы";
|
||||
|
||||
@@ -3252,6 +3273,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"PING interval" = "Интервал PING";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play from the chat list." = "Открыть из списка чатов.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Please ask your contact to enable calls." = "Попросите Вашего контакта разрешить звонки.";
|
||||
|
||||
@@ -3334,7 +3358,7 @@
|
||||
"Private message routing" = "Конфиденциальная доставка сообщений";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Private message routing 🚀" = "Конфиденциальная доставка сообщений 🚀";
|
||||
"Private message routing 🚀" = "Конфиденциальная доставка 🚀";
|
||||
|
||||
/* name of notes to self */
|
||||
"Private notes" = "Личные заметки";
|
||||
@@ -3625,6 +3649,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Reset" = "Сбросить";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all hints" = "Сбросить все подсказки";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset all statistics" = "Сбросить всю статистику";
|
||||
|
||||
@@ -4048,6 +4075,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"Share address with contacts?" = "Поделиться адресом с контактами?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share from other apps." = "Поделитесь из других приложений.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share link" = "Поделиться ссылкой";
|
||||
|
||||
@@ -4471,9 +4501,15 @@
|
||||
/* 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 шифрование с Вашим контактом сравните (или сканируйте) код безопасности на Ваших устройствах.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle chat list:" = "Переключите список чатов:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toggle incognito when connecting." = "Установите режим Инкогнито при соединении.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Toolbar opacity" = "Прозрачность тулбара";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Total" = "Всего";
|
||||
|
||||
@@ -4942,6 +4978,9 @@
|
||||
/* No comment provided by engineer. */
|
||||
"You can accept calls from lock screen, without device and app authentication." = "Вы можете принимать звонки на экране блокировки, без аутентификации.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can change it in Appearance settings." = "Вы можете изменить это в настройках Интерфейса.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can create it later" = "Вы можете создать его позже";
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ import chat.simplex.common.model.ChatModel.withChats
|
||||
import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.ui.theme.*
|
||||
import chat.simplex.common.views.call.*
|
||||
import chat.simplex.common.views.chatlist.statusBarColorAfterCall
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.common.views.onboarding.OnboardingStage
|
||||
import com.jakewharton.processphoenix.ProcessPhoenix
|
||||
@@ -276,11 +277,21 @@ class SimplexApp: Application(), LifecycleEventObserver {
|
||||
@Suppress("DEPRECATION")
|
||||
val windowInsetController = ViewCompat.getWindowInsetsController(window.decorView)
|
||||
|
||||
val statusBar = (if (hasTop && appPrefs.onboardingStage.get() == OnboardingStage.OnboardingComplete) {
|
||||
var statusBar = (if (hasTop && appPrefs.onboardingStage.get() == OnboardingStage.OnboardingComplete) {
|
||||
backgroundColor.mixWith(CurrentColors.value.colors.onBackground, 0.97f)
|
||||
} else {
|
||||
backgroundColor
|
||||
if (CurrentColors.value.base == DefaultTheme.SIMPLEX) {
|
||||
backgroundColor.lighter(0.4f)
|
||||
} else {
|
||||
backgroundColor
|
||||
}
|
||||
}).toArgb()
|
||||
|
||||
// SimplexGreen while in call
|
||||
if (window.statusBarColor == SimplexGreen.toArgb()) {
|
||||
statusBarColorAfterCall.intValue = statusBar
|
||||
statusBar = SimplexGreen.toArgb()
|
||||
}
|
||||
val navBar = (if (hasBottom && appPrefs.onboardingStage.get() == OnboardingStage.OnboardingComplete) {
|
||||
backgroundColor.mixWith(CurrentColors.value.colors.onBackground, 0.97f)
|
||||
} else {
|
||||
|
||||
+5
-1
@@ -64,6 +64,9 @@ actual fun ActiveCallInteractiveArea(call: Call) {
|
||||
}
|
||||
}
|
||||
|
||||
// Temporary solution for storing a color that needs to be applied after call ends
|
||||
var statusBarColorAfterCall = mutableIntStateOf(CurrentColors.value.colors.background.toArgb())
|
||||
|
||||
@Composable
|
||||
private fun GreenLine(call: Call) {
|
||||
Row(
|
||||
@@ -81,9 +84,10 @@ private fun GreenLine(call: Call) {
|
||||
}
|
||||
val window = (LocalContext.current as Activity).window
|
||||
DisposableEffect(Unit) {
|
||||
statusBarColorAfterCall.intValue = window.statusBarColor
|
||||
window.statusBarColor = SimplexGreen.toArgb()
|
||||
onDispose {
|
||||
window.statusBarColor = Color.Black.toArgb()
|
||||
window.statusBarColor = statusBarColorAfterCall.intValue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ if(NOT APPLE)
|
||||
else()
|
||||
# Without direct linking it can't find hs_init in linking step
|
||||
add_library( rts SHARED IMPORTED )
|
||||
FILE(GLOB RTSLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/libHSrts*_thr-*.${OS_LIB_EXT})
|
||||
FILE(GLOB RTSLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/deps/libHSrts*_thr-*.${OS_LIB_EXT})
|
||||
set_target_properties( rts PROPERTIES IMPORTED_LOCATION ${RTSLIB})
|
||||
|
||||
target_link_libraries(app-lib rts simplex)
|
||||
|
||||
@@ -74,7 +74,7 @@ fun MainScreen() {
|
||||
!chatModel.controller.appPrefs.laNoticeShown.get()
|
||||
&& showAdvertiseLAAlert
|
||||
&& chatModel.controller.appPrefs.onboardingStage.get() == OnboardingStage.OnboardingComplete
|
||||
&& chatModel.chats.size > 2
|
||||
&& chatModel.chats.size > 3
|
||||
&& chatModel.activeCallInvitation.value == null
|
||||
) {
|
||||
AppLock.showLANotice(ChatModel.controller.appPrefs.laNoticeShown) }
|
||||
|
||||
+50
-19
@@ -206,7 +206,10 @@ object ChatModel {
|
||||
class ChatsContext {
|
||||
val chats = _chats
|
||||
|
||||
fun addChat(chat: Chat) = chats.add(index = 0, chat)
|
||||
suspend fun addChat(chat: Chat) {
|
||||
chats.add(index = 0, chat)
|
||||
popChatCollector.throttlePopChat(chat.remoteHostId, chat.id, currentPosition = 0)
|
||||
}
|
||||
|
||||
fun updateChatInfo(rhId: Long?, cInfo: ChatInfo) {
|
||||
val i = getChatIndex(rhId, cInfo.id)
|
||||
@@ -231,19 +234,19 @@ object ChatModel {
|
||||
}
|
||||
}
|
||||
|
||||
fun updateContactConnection(rhId: Long?, contactConnection: PendingContactConnection) = updateChat(rhId, ChatInfo.ContactConnection(contactConnection))
|
||||
suspend fun updateContactConnection(rhId: Long?, contactConnection: PendingContactConnection) = updateChat(rhId, ChatInfo.ContactConnection(contactConnection))
|
||||
|
||||
fun updateContact(rhId: Long?, contact: Contact) = updateChat(rhId, ChatInfo.Direct(contact), addMissing = contact.directOrUsed)
|
||||
suspend fun updateContact(rhId: Long?, contact: Contact) = updateChat(rhId, ChatInfo.Direct(contact), addMissing = contact.directOrUsed)
|
||||
|
||||
fun updateContactConnectionStats(rhId: Long?, contact: Contact, connectionStats: ConnectionStats) {
|
||||
suspend fun updateContactConnectionStats(rhId: Long?, contact: Contact, connectionStats: ConnectionStats) {
|
||||
val updatedConn = contact.activeConn?.copy(connectionStats = connectionStats)
|
||||
val updatedContact = contact.copy(activeConn = updatedConn)
|
||||
updateContact(rhId, updatedContact)
|
||||
}
|
||||
|
||||
fun updateGroup(rhId: Long?, groupInfo: GroupInfo) = updateChat(rhId, ChatInfo.Group(groupInfo))
|
||||
suspend fun updateGroup(rhId: Long?, groupInfo: GroupInfo) = updateChat(rhId, ChatInfo.Group(groupInfo))
|
||||
|
||||
private fun updateChat(rhId: Long?, cInfo: ChatInfo, addMissing: Boolean = true) {
|
||||
private suspend fun updateChat(rhId: Long?, cInfo: ChatInfo, addMissing: Boolean = true) {
|
||||
if (hasChat(rhId, cInfo.id)) {
|
||||
updateChatInfo(rhId, cInfo)
|
||||
} else if (addMissing) {
|
||||
@@ -252,8 +255,8 @@ object ChatModel {
|
||||
}
|
||||
|
||||
fun updateChats(newChats: List<Chat>) {
|
||||
chats.clear()
|
||||
chats.addAll(newChats)
|
||||
chats.replaceAll(newChats)
|
||||
popChatCollector.clear()
|
||||
|
||||
val cId = chatId.value
|
||||
// If chat is null, it was deleted in background after apiGetChats call
|
||||
@@ -262,13 +265,13 @@ object ChatModel {
|
||||
}
|
||||
}
|
||||
|
||||
fun replaceChat(rhId: Long?, id: String, chat: Chat) {
|
||||
suspend fun replaceChat(rhId: Long?, id: String, chat: Chat) {
|
||||
val i = getChatIndex(rhId, id)
|
||||
if (i >= 0) {
|
||||
chats[i] = chat
|
||||
} else {
|
||||
// invalid state, correcting
|
||||
chats.add(index = 0, chat)
|
||||
addChat(chat)
|
||||
}
|
||||
}
|
||||
suspend fun addChatItem(rhId: Long?, cInfo: ChatInfo, cItem: ChatItem) {
|
||||
@@ -303,7 +306,11 @@ object ChatModel {
|
||||
else
|
||||
chat.chatStats
|
||||
)
|
||||
popChatCollector.addChat(chat.remoteHostId, chat.id)
|
||||
if (appPlatform.isDesktop && cItem.chatDir.sent) {
|
||||
addChat(chats.removeAt(i))
|
||||
} else {
|
||||
popChatCollector.throttlePopChat(chat.remoteHostId, chat.id, currentPosition = i)
|
||||
}
|
||||
} else {
|
||||
addChat(Chat(remoteHostId = rhId, chatInfo = cInfo, chatItems = arrayListOf(cItem)))
|
||||
}
|
||||
@@ -421,10 +428,12 @@ object ChatModel {
|
||||
}
|
||||
}
|
||||
|
||||
private val popChatCollector = PopChatCollector()
|
||||
val popChatCollector = PopChatCollector()
|
||||
|
||||
class PopChatCollector {
|
||||
private val subject = MutableSharedFlow<Unit>()
|
||||
private var remoteHostId: Long? = null
|
||||
private val chatsToPop = mutableMapOf<ChatId, Instant>()
|
||||
|
||||
init {
|
||||
withLongRunningApi {
|
||||
@@ -432,19 +441,41 @@ object ChatModel {
|
||||
.throttleLatest(2000)
|
||||
.collect {
|
||||
withChats {
|
||||
chats.replaceAll(chats.value.sortedByDescending { it.popTs })
|
||||
chats.replaceAll(popCollectedChats())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun addChat(remoteHostId: Long?, chatId: ChatId) {
|
||||
val index = getChatIndex(remoteHostId, chatId)
|
||||
if (index >= 0) {
|
||||
chats.value[index].popTs = Clock.System.now()
|
||||
suspend fun throttlePopChat(rhId: Long?, chatId: ChatId, currentPosition: Int) {
|
||||
if (rhId != remoteHostId) {
|
||||
chatsToPop.clear()
|
||||
remoteHostId = rhId
|
||||
}
|
||||
if (currentPosition > 0 || chatsToPop.isNotEmpty()) {
|
||||
chatsToPop[chatId] = Clock.System.now()
|
||||
subject.emit(Unit)
|
||||
}
|
||||
}
|
||||
|
||||
fun clear() = chatsToPop.clear()
|
||||
|
||||
private fun popCollectedChats(): List<Chat> {
|
||||
val chs = mutableListOf<Chat>()
|
||||
// collect chats that received updates
|
||||
for ((chatId, popTs) in chatsToPop.entries) {
|
||||
val ch = getChat(chatId)
|
||||
if (ch != null) {
|
||||
ch.popTs = popTs
|
||||
chs.add(ch)
|
||||
}
|
||||
}
|
||||
// sort chats by pop timestamp in descending order
|
||||
val newChats = ArrayList(chs.sortedByDescending { it.popTs })
|
||||
newChats.addAll(chats.value.filter { !chatsToPop.containsKey(it.chatInfo.id) } )
|
||||
chatsToPop.clear()
|
||||
return newChats
|
||||
}
|
||||
}
|
||||
|
||||
fun markChatItemsRead(remoteHostId: Long?, chatInfo: ChatInfo, range: CC.ItemRange? = null, unreadCountAfter: Int? = null) {
|
||||
@@ -487,7 +518,7 @@ object ChatModel {
|
||||
chats.removeAll { it.id == id && it.remoteHostId == rhId }
|
||||
}
|
||||
|
||||
fun upsertGroupMember(rhId: Long?, groupInfo: GroupInfo, member: GroupMember): Boolean {
|
||||
suspend fun upsertGroupMember(rhId: Long?, groupInfo: GroupInfo, member: GroupMember): Boolean {
|
||||
// user member was updated
|
||||
if (groupInfo.membership.groupMemberId == member.groupMemberId) {
|
||||
updateGroup(rhId, groupInfo)
|
||||
@@ -524,7 +555,7 @@ object ChatModel {
|
||||
}
|
||||
}
|
||||
|
||||
fun updateGroupMemberConnectionStats(rhId: Long?, groupInfo: GroupInfo, member: GroupMember, connectionStats: ConnectionStats) {
|
||||
suspend fun updateGroupMemberConnectionStats(rhId: Long?, groupInfo: GroupInfo, member: GroupMember, connectionStats: ConnectionStats) {
|
||||
val memberConn = member.activeConn
|
||||
if (memberConn != null) {
|
||||
val updatedConn = memberConn.copy(connectionStats = connectionStats)
|
||||
|
||||
+1
@@ -2718,6 +2718,7 @@ object ChatController {
|
||||
chatModel.chatItems.clear()
|
||||
withChats {
|
||||
chats.clear()
|
||||
popChatCollector.clear()
|
||||
}
|
||||
}
|
||||
val statuses = apiGetNetworkStatuses(rhId)
|
||||
|
||||
+2
-1
@@ -115,7 +115,8 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
|
||||
ProvideWindowInsets(windowInsetsAnimationsEnabled = true) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize(),
|
||||
.fillMaxSize()
|
||||
.themedBackground(),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
CloseSheetBar(close = {
|
||||
|
||||
+1
-2
@@ -623,11 +623,10 @@ fun ChatLayout(
|
||||
)
|
||||
) {
|
||||
ProvideWindowInsets(windowInsetsAnimationsEnabled = true) {
|
||||
val elevation = remember { derivedStateOf { if (attachmentBottomSheetState.currentValue == ModalBottomSheetValue.Hidden) 0.dp else ModalBottomSheetDefaults.Elevation } }
|
||||
ModalBottomSheetLayout(
|
||||
scrimColor = Color.Black.copy(alpha = 0.12F),
|
||||
modifier = Modifier.navigationBarsWithImePadding(),
|
||||
sheetElevation = elevation.value,
|
||||
sheetElevation = 0.dp,
|
||||
sheetContent = {
|
||||
ChooseAttachmentView(
|
||||
attachmentOption,
|
||||
|
||||
+2
-1
@@ -118,10 +118,11 @@ private fun recheckItems(chatInfo: ChatInfo,
|
||||
rDeleteEnabled = rDeleteEnabled && ci.canBeDeletedForSelf
|
||||
rDeleteForEveryoneEnabled = rDeleteForEveryoneEnabled && ci.meta.deletable && !ci.localNote
|
||||
rOnlyOwnGroupItems = rOnlyOwnGroupItems && ci.chatDir is CIDirection.GroupSnd
|
||||
rModerateEnabled = rModerateEnabled && !rOnlyOwnGroupItems && ci.content.msgContent != null && ci.memberToModerate(chatInfo) != null
|
||||
rModerateEnabled = rModerateEnabled && ci.content.msgContent != null && ci.memberToModerate(chatInfo) != null
|
||||
rSelectedChatItems.add(ci.id) // we are collecting new selected items here to account for any changes in chat items list
|
||||
}
|
||||
}
|
||||
rModerateEnabled = rModerateEnabled && !rOnlyOwnGroupItems
|
||||
deleteEnabled.value = rDeleteEnabled
|
||||
deleteForEveryoneEnabled.value = rDeleteForEveryoneEnabled
|
||||
moderateEnabled.value = rModerateEnabled
|
||||
|
||||
+1
@@ -505,6 +505,7 @@ fun deleteChatDatabaseFilesAndState() {
|
||||
withLongRunningApi {
|
||||
withChats {
|
||||
chats.clear()
|
||||
popChatCollector.clear()
|
||||
}
|
||||
}
|
||||
chatModel.users.clear()
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ fun NewChatSheet(rh: RemoteHostInfo?, close: () -> Unit) {
|
||||
showClose = true,
|
||||
endButtons = { Spacer(Modifier.minimumInteractiveComponentSize()) },
|
||||
arrangement = Arrangement.Bottom,
|
||||
closeBarTitle = generalGetString(MR.strings.new_chat),
|
||||
closeBarTitle = generalGetString(MR.strings.new_message),
|
||||
barPaddingValues = PaddingValues(horizontal = 0.dp)
|
||||
)
|
||||
}
|
||||
@@ -175,7 +175,7 @@ private fun NewChatSheetLayout(
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
val bottomPadding = DEFAULT_PADDING
|
||||
AppBarTitle(
|
||||
stringResource(MR.strings.new_chat),
|
||||
stringResource(MR.strings.new_message),
|
||||
hostDevice(rh?.remoteHostId),
|
||||
bottomPadding = bottomPadding
|
||||
)
|
||||
|
||||
+2
-1
@@ -78,7 +78,8 @@ private fun CreateSimpleXAddressLayout(
|
||||
) {
|
||||
ColumnWithScrollBar(
|
||||
Modifier
|
||||
.fillMaxSize(),
|
||||
.fillMaxSize()
|
||||
.themedBackground(),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
) {
|
||||
CloseSheetBar(showClose = false, close = {})
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@ import chat.simplex.common.model.ChatModel
|
||||
import chat.simplex.common.platform.BackHandler
|
||||
import chat.simplex.common.platform.chatModel
|
||||
import chat.simplex.common.ui.theme.DEFAULT_PADDING
|
||||
import chat.simplex.common.ui.theme.themedBackground
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.common.views.remote.AddingMobileDevice
|
||||
import chat.simplex.common.views.remote.DeviceNameField
|
||||
@@ -58,7 +59,7 @@ private fun LinkAMobileLayout(
|
||||
staleQrCode: MutableState<Boolean>,
|
||||
updateDeviceName: (String) -> Unit,
|
||||
) {
|
||||
Column {
|
||||
Column(Modifier.themedBackground()) {
|
||||
CloseSheetBar(close = {
|
||||
appPrefs.onboardingStage.set(OnboardingStage.Step1_SimpleXInfo)
|
||||
})
|
||||
|
||||
+1
@@ -28,6 +28,7 @@ fun SetNotificationsMode(m: ChatModel) {
|
||||
ColumnWithScrollBar(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.themedBackground()
|
||||
) {
|
||||
CloseSheetBar(showClose = false, close = {})
|
||||
AppBarTitle(stringResource(MR.strings.onboarding_notifications_mode_title))
|
||||
|
||||
+1
-1
@@ -105,7 +105,7 @@ private fun SetupDatabasePassphraseLayout(
|
||||
nextStep: () -> Unit,
|
||||
) {
|
||||
ColumnWithScrollBar(
|
||||
Modifier.fillMaxSize().padding(bottom = DEFAULT_PADDING * 2),
|
||||
Modifier.fillMaxSize().themedBackground().padding(bottom = DEFAULT_PADDING * 2),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
) {
|
||||
CloseSheetBar(showClose = false, close = {})
|
||||
|
||||
+4
-4
@@ -57,7 +57,7 @@ fun SimpleXInfoLayout(
|
||||
ColumnWithScrollBar(
|
||||
Modifier
|
||||
.fillMaxSize()
|
||||
.padding(horizontal = 16.dp),
|
||||
.padding(horizontal = DEFAULT_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) {
|
||||
@@ -75,7 +75,7 @@ fun SimpleXInfoLayout(
|
||||
|
||||
Spacer(Modifier.weight(1f))
|
||||
|
||||
Column(Modifier.fillMaxWidth()) {
|
||||
Column {
|
||||
InfoRow(painterResource(MR.images.privacy), MR.strings.privacy_redefined, MR.strings.first_platform_without_user_ids, width = 60.dp)
|
||||
InfoRow(painterResource(MR.images.shield), MR.strings.immune_to_spam_and_abuse, MR.strings.people_can_connect_only_via_links_you_share, width = 46.dp)
|
||||
InfoRow(painterResource(if (isInDarkTheme()) MR.images.decentralized_light else MR.images.decentralized), MR.strings.decentralized, MR.strings.opensource_protocol_and_code_anybody_can_run_servers)
|
||||
@@ -115,10 +115,10 @@ fun SimpleXLogo() {
|
||||
@Composable
|
||||
private fun InfoRow(icon: Painter, titleId: StringResource, textId: StringResource, width: Dp = 58.dp) {
|
||||
Row(Modifier.padding(bottom = 27.dp), verticalAlignment = Alignment.Top) {
|
||||
Spacer(Modifier.width((18.dp + 58.dp - width) / 2))
|
||||
Spacer(Modifier.width((4.dp + 58.dp - width) / 2))
|
||||
Image(icon, contentDescription = null, modifier = Modifier
|
||||
.width(width))
|
||||
Spacer(Modifier.width((18.dp + 58.dp - width) / 2 + DEFAULT_PADDING_HALF))
|
||||
Spacer(Modifier.width((4.dp + 58.dp - width) / 2 + DEFAULT_PADDING_HALF + 7.dp))
|
||||
Column(Modifier.padding(top = 4.dp), verticalArrangement = Arrangement.spacedBy(DEFAULT_PADDING_HALF)) {
|
||||
Text(stringResource(titleId), fontWeight = FontWeight.Bold, style = MaterialTheme.typography.h3, lineHeight = 24.sp)
|
||||
Text(stringResource(textId), lineHeight = 24.sp, style = MaterialTheme.typography.body1, color = MaterialTheme.colors.secondary)
|
||||
|
||||
+2
-3
@@ -180,11 +180,10 @@ fun SettingsLayout(
|
||||
.height(AppBarHeight * fontSizeSqrtMultiplier)
|
||||
.background(MaterialTheme.colors.background)
|
||||
.background(if (isInDarkTheme()) ToolbarDark else ToolbarLight)
|
||||
.padding(start = 4.dp, top = 8.dp),
|
||||
.padding(start = 4.dp),
|
||||
contentAlignment = Alignment.CenterStart
|
||||
) {
|
||||
val sp24 = with(LocalDensity.current) { 24.sp.toDp() }
|
||||
NavigationButtonBack(closeSettings, height = sp24)
|
||||
NavigationButtonBack(closeSettings, height = 24.sp.toDp())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">لا يمكن التراجع عن هذا الإجراء - سيتم فقد ملف التعريف وجهات الاتصال والرسائل والملفات الخاصة بك بشكل نهائي.</string>
|
||||
<string name="alert_message_no_group">هذه المجموعة لم تعد موجودة.</string>
|
||||
<string name="this_QR_code_is_not_a_link">رمز QR هذا ليس رابطًا!</string>
|
||||
<string name="next_generation_of_private_messaging">الجيل القادم من الرسائل الخاصة</string>
|
||||
<string name="next_generation_of_private_messaging">الجيل القادم من
|
||||
\nالرسائل الخاصة</string>
|
||||
<string name="delete_files_and_media_desc">لا يمكن التراجع عن هذا الإجراء - سيتم حذف جميع الملفات والوسائط المستلمة والمرسلة. ستبقى الصور منخفضة الدقة.</string>
|
||||
<string name="enable_automatic_deletion_message">لا يمكن التراجع عن هذا الإجراء - سيتم حذف الرسائل المرسلة والمستلمة قبل التحديد. قد تأخذ عدة دقائق.</string>
|
||||
<string name="messages_section_description">ينطبق هذا الإعداد على الرسائل الموجودة في ملف تعريف الدردشة الحالي الخاص بك</string>
|
||||
@@ -97,11 +98,11 @@
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">يمكنك أنت وجهة اتصالك إرسال رسائل تختفي.</string>
|
||||
<string name="icon_descr_call_progress">مكالمتك تحت الإجراء</string>
|
||||
<string name="cannot_receive_file">لا يمكّن استلام الملف</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b> جيد للبطارية </b>. خدمة الخلفية تتحقق من الرسائل كل 10 دقائق. قد تفوتك مكالمات أو رسائل عاجلة.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>جيد للبطارية</b>. يتحقق التطبيق من الرسائل كل 10 دقائق. قد تفوتك مكالمات أو رسائل عاجلة.]]></string>
|
||||
<string name="bold_text">عريض</string>
|
||||
<string name="audio_call_no_encryption">مكالمات الصوت (ليست مُعمّاة بين الطرفين)</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b> الأفضل للبطارية </b>. ستستلم إشعارات فقط عندما يكون التطبيق قيد التشغيل (لا توجد خدمة في الخلفية).]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b> تستهلك المزيد من البطارية </b>! تعمل خدمة الخلفية دائمًا - تظهر الإشعارات بمجرد توفر الرسائل.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>يستهلك المزيد من البطارية</b>! يعمل التطبيق دائمًا في الخلفية - يتم عرض الإشعارات على الفور.]]></string>
|
||||
<string name="call_already_ended">انتهت المكالمة بالفعل!</string>
|
||||
<string name="alert_title_msg_bad_hash">تجزئة رسالة سيئة</string>
|
||||
<string name="integrity_msg_bad_id">معرّف رسالة سيئ</string>
|
||||
@@ -513,7 +514,7 @@
|
||||
<string name="v4_3_improved_privacy_and_security_desc">إخفاء شاشة التطبيق في التطبيقات الحديثة.</string>
|
||||
<string name="v4_3_improved_privacy_and_security">تحسن الخصوصية والأمان</string>
|
||||
<string name="if_you_cannot_meet_in_person_scan_QR_in_video_call_or_ask_for_invitation_link"><![CDATA[إذا لم تتمكن من الالتقاء شخصيًا، فيمكنك <b>مسح رمز QR في مكالمة الفيديو</b>، أو يمكن لجهة الاتصال مشاركة رابط الدعوة.]]></string>
|
||||
<string name="immune_to_spam_and_abuse">محصن ضد البريد العشوائي وسوء المعاملة</string>
|
||||
<string name="immune_to_spam_and_abuse">محصن ضد الإزعاج (spam)</string>
|
||||
<string name="description_via_one_time_link_incognito">التخفي عبر رابط لمرة واحدة</string>
|
||||
<string name="icon_descr_image_snd_complete">أرسلت صورة</string>
|
||||
<string name="image_descr">صورة</string>
|
||||
@@ -821,10 +822,10 @@
|
||||
<string name="auth_open_chat_console">افتح وحدة تحكم الدردشة</string>
|
||||
<string name="la_lock_mode_passcode">إدخال كلمة المرور</string>
|
||||
<string name="open_simplex_chat_to_accept_call">افتح SimpleX Chat للرد على المكالمة</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">بروتوكول وكود مفتوح المصدر - يمكن لأي شخص تشغيل الخوادم.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">يمكن لأي شخص استضافة الخوادم.</string>
|
||||
<string name="password_to_show">كلمة المرور للإظهار</string>
|
||||
<string name="call_connection_peer_to_peer">ندّ لِندّ</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">يمكن للناس التواصل معك فقط عبر الرابط الذي تقوم بمشاركته</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">أنت تقرر من يمكنه الاتصال.</string>
|
||||
<string name="icon_descr_call_pending_sent">مكالمة قيد الانتظار</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[تقوم أجهزة العميل فقط بتخزين ملفات تعريف المستخدمين وجهات الاتصال والمجموعات والرسائل المُرسلة باستخدام <b>تعمية ثنائية الطبقات من بين الطريفين</b>.]]></string>
|
||||
<string name="reset_color">صفّر الألوان</string>
|
||||
@@ -1107,7 +1108,7 @@
|
||||
<string name="to_connect_via_link_title">للتواصل عبر الرابط</string>
|
||||
<string name="scan_qr_to_connect_to_contact">للاتصال، يمكن لجهة الاتصال مسح رمز QR أو استخدام الرابط في التطبيق.</string>
|
||||
<string name="smp_servers_test_servers">خوادم الاختبار</string>
|
||||
<string name="first_platform_without_user_ids">المنصة الأولى بدون أي معرفات للمستخدم - صمّمناه ليكون خاصًا.</string>
|
||||
<string name="first_platform_without_user_ids">لا معرّفات مُستخدم</string>
|
||||
<string name="settings_section_title_support">دعم SIMPLEX CHAT</string>
|
||||
<string name="switch_verb">تبديل</string>
|
||||
<string name="color_title">العنوان الرئيسي</string>
|
||||
@@ -2041,7 +2042,7 @@
|
||||
<string name="chat_database_exported_save">يمكنك حفظ الأرشيف المُصدر.</string>
|
||||
<string name="v6_0_connection_servers_status_descr">حالة الاتصال والخوادم.</string>
|
||||
<string name="v6_0_connect_faster_descr">تواصل مع أصدقائك بشكل أسرع</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">شريط أدوات الدردشة يمكن الوصول إليه 👋</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">شريط أدوات الدردشة يمكن الوصول إليه</string>
|
||||
<string name="v6_0_your_contacts_descr">أرشفة جهات الاتصال للدردشة لاحقًا.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar_descr">استخدم التطبيق بيد واحدة.</string>
|
||||
<string name="chat_database_exported_title">صُدرت قاعدة بيانات الدردشة</string>
|
||||
@@ -2051,4 +2052,17 @@
|
||||
<string name="v6_0_private_routing_descr">يحمي عنوان IP الخاص بك واتصالاتك.</string>
|
||||
<string name="network_option_tcp_connection">اتصال TCP</string>
|
||||
<string name="network_options_save_and_reconnect">حفظ وإعادة الاتصال</string>
|
||||
<string name="create_address_button">أنشِئ</string>
|
||||
<string name="v6_0_new_chat_experience">تجربة دردشة جديدة 🎉</string>
|
||||
<string name="v6_0_privacy_blur">تمويه من أجل خصوصية أفضل.</string>
|
||||
<string name="v6_0_increase_font_size">كبّر حجم الخط</string>
|
||||
<string name="new_message">رسالة جديدة</string>
|
||||
<string name="invite_friends_short">ادعُ</string>
|
||||
<string name="v6_0_new_media_options">خيارات الوسائط الجديدة</string>
|
||||
<string name="v6_0_chat_list_media">شغّل من قائمة الدردشة.</string>
|
||||
<string name="one_hand_ui_card_title">تبديل قائمة الدردشة:</string>
|
||||
<string name="one_hand_ui_change_instruction">يمكنك تغييره في إعدادات المظهر.</string>
|
||||
<string name="v6_0_upgrade_app_descr">نزّل الإصدارات الجديدة من GitHub.</string>
|
||||
<string name="v6_0_upgrade_app">ترقية التطبيق تلقائيًا</string>
|
||||
<string name="reset_all_hints">صفّر كافة التلميحات</string>
|
||||
</resources>
|
||||
@@ -655,6 +655,7 @@
|
||||
|
||||
<!-- NewChatView.kt -->
|
||||
<string name="new_chat">New chat</string>
|
||||
<string name="new_message">New message</string>
|
||||
<string name="add_contact_tab">Add contact</string>
|
||||
<string name="scan_paste_link">Scan / Paste link</string>
|
||||
<string name="paste_link">Paste link</string>
|
||||
@@ -732,7 +733,6 @@
|
||||
<string name="smp_servers_delete_server">Delete server</string>
|
||||
<string name="smp_servers_per_user">The servers for new connections of your current chat profile</string>
|
||||
<string name="smp_save_servers_question">Save servers?</string>
|
||||
<string name="update_network_settings_question">Update network settings?</string>
|
||||
<string name="media_and_file_servers">Media & file servers</string>
|
||||
<string name="xftp_servers">XFTP servers</string>
|
||||
<string name="xftp_servers_configured">Configured XFTP servers</string>
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
<string name="save_servers_button">Speichern</string>
|
||||
<string name="network_and_servers">Netzwerk & Server</string>
|
||||
<string name="network_settings">Erweiterte Netzwerkeinstellungen</string>
|
||||
<string name="network_settings_title">Netzwerkeinstellungen</string>
|
||||
<string name="network_settings_title">Erweiterte Einstellungen</string>
|
||||
<string name="network_enable_socks">SOCKS-Proxy verwenden?</string>
|
||||
<string name="network_enable_socks_info">Zugriff auf die Server über SOCKS-Proxy auf Port %d? Der Proxy muss gestartet werden, bevor diese Option aktiviert wird.</string>
|
||||
<string name="network_disable_socks">Direkte Internetverbindung verwenden?</string>
|
||||
@@ -462,13 +462,14 @@
|
||||
<string name="callstate_connected">Verbunden</string>
|
||||
<string name="callstate_ended">Beendet</string>
|
||||
<!-- SimpleXInfo -->
|
||||
<string name="next_generation_of_private_messaging">Die nächste Generation von privatem Messaging</string>
|
||||
<string name="next_generation_of_private_messaging">Die nächste Generation
|
||||
\ndes privaten Messagings</string>
|
||||
<string name="privacy_redefined">Datenschutz neu definiert</string>
|
||||
<string name="first_platform_without_user_ids">Die erste Plattform ohne Benutzerkennungen – privat per Design</string>
|
||||
<string name="immune_to_spam_and_abuse">Immun gegen Spam und Missbrauch</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Verbindungen mit Kontakten sind nur über Links möglich, die Sie oder Ihre Kontakte untereinander teilen.</string>
|
||||
<string name="first_platform_without_user_ids">Keine Benutzerkennungen.</string>
|
||||
<string name="immune_to_spam_and_abuse">Immun gegen Spam</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Sie entscheiden, wer sich mit Ihnen verbinden kann.</string>
|
||||
<string name="decentralized">Dezentral</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Open-Source-Protokoll und -Code – Jede Person kann ihre eigenen Server aufsetzen und nutzen.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Jeder kann seine eigenen Server aufsetzen.</string>
|
||||
<string name="create_your_profile">Erstellen Sie Ihr Profil</string>
|
||||
<string name="make_private_connection">Stellen Sie eine private Verbindung her</string>
|
||||
<string name="how_it_works">Wie es funktioniert</string>
|
||||
@@ -891,7 +892,7 @@
|
||||
<string name="live">LIVE</string>
|
||||
<string name="view_security_code">Schauen Sie sich den Sicherheitscode an</string>
|
||||
<string name="onboarding_notifications_mode_service">Sofort</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Gute Option für die Batterieausdauer</b>. Der Hintergrundservice überprüft alle 10 Minuten nach Nachrichten. Sie können eventuell Anrufe oder dringende Nachrichten verpassen.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Gute Option für die Batterieausdauer</b>. Die App prüft alle 10 Minuten auf neue Nachrichten. Sie können eventuell Anrufe oder dringende Nachrichten verpassen.]]></string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Beste Option für die Akkulaufzeit</b>. Sie empfangen Benachrichtigungen nur, solange die App läuft (kein aktiver Hintergrundservice).]]></string>
|
||||
<string name="send_verb">Senden</string>
|
||||
<string name="is_verified">%s wurde erfolgreich überprüft</string>
|
||||
@@ -928,7 +929,7 @@
|
||||
<string name="failed_to_parse_chat_title">Fehler beim Laden des Chats</string>
|
||||
<string name="failed_to_parse_chats_title">Fehler beim Laden der Chats</string>
|
||||
<string name="contact_developers">Bitte aktualisieren Sie die App und nehmen Sie Kontakt mit den Entwicklern auf.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Benötigt mehr Leistung Ihrer Batterie</b>! Der Hintergrundservice läuft permanent ab. Benachrichtigungen werden Ihnen angezeigt, sobald Sie neue Nachrichten erhalten haben.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Benötigt mehr Leistung Ihrer Batterie</b>! Die App läuft permanent im Hintergrund ab. Benachrichtigungen werden Ihnen sofort angezeigt.]]></string>
|
||||
<string name="create_group_link">Gruppenlink erstellen</string>
|
||||
<string name="allow_your_contacts_to_send_disappearing_messages">Erlauben Sie Ihren Kontakten das Senden von verschwindenden Nachrichten.</string>
|
||||
<string name="prohibit_sending_disappearing_messages">Das Senden von verschwindenden Nachrichten nicht erlauben.</string>
|
||||
@@ -1322,23 +1323,23 @@
|
||||
<string name="edit_history">Nachrichtenverlauf bearbeiten</string>
|
||||
<string name="message_reactions_prohibited_in_this_chat">In diesem Chat sind Reaktionen auf Nachrichten nicht erlaubt.</string>
|
||||
<string name="item_info_no_text">Kein Text</string>
|
||||
<string name="non_fatal_errors_occured_during_import">Während des Imports sind einige nicht schwerwiegende Fehler aufgetreten – weitere Details finden Sie in der Chat-Konsole.</string>
|
||||
<string name="non_fatal_errors_occured_during_import">Während des Imports sind nicht schwerwiegende Fehler aufgetreten:</string>
|
||||
<string name="shutdown_alert_question">Herunterfahren\?</string>
|
||||
<string name="shutdown_alert_desc">Bis zum Neustart der App erhalten Sie keine Benachrichtigungen mehr</string>
|
||||
<string name="settings_section_title_app">APP</string>
|
||||
<string name="settings_restart_app">Neustart</string>
|
||||
<string name="settings_shutdown">Herunterfahren</string>
|
||||
<string name="error_aborting_address_change">Fehler beim Abbrechen des Adresswechsels</string>
|
||||
<string name="abort_switch_receiving_address_confirm">Abbrechen</string>
|
||||
<string name="error_aborting_address_change">Fehler beim Beenden des Adresswechsels</string>
|
||||
<string name="abort_switch_receiving_address_confirm">Beenden</string>
|
||||
<string name="files_and_media">Dateien und Medien</string>
|
||||
<string name="allow_to_send_files">Das Senden von Dateien und Medien erlauben.</string>
|
||||
<string name="prohibit_sending_files">Das Senden von Dateien und Medien nicht erlauben.</string>
|
||||
<string name="abort_switch_receiving_address">Wechsel der Empfängeradresse abbrechen</string>
|
||||
<string name="abort_switch_receiving_address_question">Wechsel der Empfängeradresse abbrechen?</string>
|
||||
<string name="abort_switch_receiving_address">Wechsel der Empfängeradresse beenden</string>
|
||||
<string name="abort_switch_receiving_address_question">Wechsel der Empfängeradresse beenden?</string>
|
||||
<string name="files_and_media_prohibited">Dateien und Medien sind nicht erlaubt!</string>
|
||||
<string name="only_owners_can_enable_files_and_media">Nur Gruppenbesitzer können Dateien und Medien aktivieren.</string>
|
||||
<string name="group_members_can_send_files">Gruppenmitglieder können Dateien und Medien senden.</string>
|
||||
<string name="abort_switch_receiving_address_desc">Der Wechsel der Empfängeradresse wird abgebrochen. Die bisherige Adresse wird weiter verwendet.</string>
|
||||
<string name="abort_switch_receiving_address_desc">Der Wechsel der Empfängeradresse wird beendet. Die bisherige Adresse wird weiter verwendet.</string>
|
||||
<string name="files_are_prohibited_in_group">In dieser Gruppe sind Dateien und Medien nicht erlaubt.</string>
|
||||
<string name="unfavorite_chat">Favorit entfernen</string>
|
||||
<string name="favorite_chat">Favorit</string>
|
||||
@@ -1860,7 +1861,7 @@
|
||||
<string name="network_smp_proxy_mode_always">Immer</string>
|
||||
<string name="network_smp_proxy_mode_private_routing">Privates Routing</string>
|
||||
<string name="network_smp_proxy_mode_never">Nie</string>
|
||||
<string name="network_smp_proxy_mode_unknown">Unbekannte Relais</string>
|
||||
<string name="network_smp_proxy_mode_unknown">Unbekannte Server</string>
|
||||
<string name="network_smp_proxy_mode_unprotected">Ungeschützt</string>
|
||||
<string name="network_smp_proxy_mode_unknown_description">Sie nutzen privates Routing mit unbekannten Servern.</string>
|
||||
<string name="network_smp_proxy_mode_never_description">Sie nutzen KEIN privates Routing.</string>
|
||||
@@ -2084,12 +2085,12 @@
|
||||
<string name="only_delete_conversation">Nur die Unterhaltung löschen</string>
|
||||
<string name="info_view_search_button">Suchen</string>
|
||||
<string name="info_view_video_button">Video</string>
|
||||
<string name="you_can_still_view_conversation_with_contact">Sie können die Unterhaltung mit %1$s weiterhin in der Chatliste einsehen.</string>
|
||||
<string name="you_can_still_view_conversation_with_contact">Sie können in der Chatliste weiterhin die Unterhaltung mit %1$s einsehen.</string>
|
||||
<string name="paste_link">Link einfügen</string>
|
||||
<string name="deleted_chats">Gelöschte Chats</string>
|
||||
<string name="deleted_chats">Archivierte Kontakte</string>
|
||||
<string name="no_filtered_contacts">Keine gefilterten Kontakte</string>
|
||||
<string name="contact_list_header_title">Ihre Kontakte</string>
|
||||
<string name="one_hand_ui">Einhand-Bedienoberfläche</string>
|
||||
<string name="one_hand_ui">Erreichbare Chat-Symbolleiste</string>
|
||||
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Bitten Sie Ihren Kontakt darum, Anrufe zu aktivieren.</string>
|
||||
<string name="you_need_to_allow_calls">Sie müssen Ihrem Kontakt Anrufe zu Ihnen erlauben, bevor Sie ihn selbst anrufen können.</string>
|
||||
<string name="allow_calls_question">Anrufe erlauben?</string>
|
||||
@@ -2107,7 +2108,7 @@
|
||||
<string name="action_button_add_members">Einladen</string>
|
||||
<string name="keep_conversation">Unterhaltung behalten</string>
|
||||
<string name="cant_call_member_send_message_alert_text">Nachricht senden, um Anrufe zu aktivieren.</string>
|
||||
<string name="you_can_still_send_messages_to_contact">Sie können weiterhin Nachrichten an %1$s von den gelöschten Chats aus senden.</string>
|
||||
<string name="you_can_still_send_messages_to_contact">Sie können aus den archivierten Kontakten heraus Nachrichten an %1$s versenden.</string>
|
||||
<string name="toolbar_settings">Einstellungen</string>
|
||||
<string name="moderate_messages_will_be_deleted_warning">Die Nachrichten werden für alle Mitglieder gelöscht.</string>
|
||||
<string name="moderate_messages_will_be_marked_warning">Die Nachrichten werden für alle Mitglieder als moderiert markiert.</string>
|
||||
@@ -2117,4 +2118,35 @@
|
||||
<string name="selected_chat_items_selected_n">%d ausgewählt</string>
|
||||
<string name="selected_chat_items_nothing_selected">Es wurde Nichts ausgewählt</string>
|
||||
<string name="select_verb">Auswählen</string>
|
||||
<string name="invite_friends_short">Einladen</string>
|
||||
<string name="network_option_tcp_connection">TCP-Verbindung</string>
|
||||
<string name="v6_0_increase_font_size">Schriftgröße erhöhen.</string>
|
||||
<string name="v6_0_new_chat_experience">Neue Chat-Erfahrung 🎉</string>
|
||||
<string name="v6_0_upgrade_app">Die App automatisch aktualisieren</string>
|
||||
<string name="v6_0_connection_servers_status_descr">Verbindungs- und Server-Status.</string>
|
||||
<string name="v6_0_privacy_blur">Für bessere Privatsphäre verpixeln.</string>
|
||||
<string name="v6_0_connection_servers_status">Kontrollieren Sie Ihr Netzwerk</string>
|
||||
<string name="v6_0_new_media_options">Neue Medien-Optionen</string>
|
||||
<string name="network_options_save_and_reconnect">Speichern und neu verbinden</string>
|
||||
<string name="create_address_button">Erstellen</string>
|
||||
<string name="v6_0_upgrade_app_descr">Laden Sie neue Versionen von GitHub herunter.</string>
|
||||
<string name="v6_0_chat_list_media">Direkt aus der Chat-Liste abspielen.</string>
|
||||
<string name="one_hand_ui_card_title">Chat-Liste umschalten:</string>
|
||||
<string name="one_hand_ui_change_instruction">Kann von Ihnen in den Erscheinungsbild-Einstellungen geändert werden.</string>
|
||||
<string name="v6_0_your_contacts_descr">Kontakte für spätere Chats archivieren.</string>
|
||||
<string name="v6_0_private_routing_descr">Ihre IP-Adresse und Verbindungen werden geschützt.</string>
|
||||
<string name="v6_0_delete_many_messages_descr">Löschen Sie bis zu 20 Nachrichten auf einmal.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Erreichbare Chat-Symbolleiste</string>
|
||||
<string name="v6_0_reachable_chat_toolbar_descr">Die App mit einer Hand nutzen.</string>
|
||||
<string name="v6_0_connect_faster_descr">Schneller mit Ihren Freunden verbinden.</string>
|
||||
<string name="chat_database_exported_title">Chat-Datenbank wurde exportiert</string>
|
||||
<string name="chat_database_exported_continue">Weiter</string>
|
||||
<string name="media_and_file_servers">Medien- und Datei-Server</string>
|
||||
<string name="message_servers">Nachrichten-Server</string>
|
||||
<string name="network_socks_proxy">SOCKS-Proxy</string>
|
||||
<string name="chat_database_exported_not_all_files">Es wurden nicht alle Dateien exportiert</string>
|
||||
<string name="chat_database_exported_migrate">Sie können die exportierte Datenbank migrieren.</string>
|
||||
<string name="chat_database_exported_save">Sie können das exportierte Archiv speichern.</string>
|
||||
<string name="reset_all_hints">Alle Hinweise zurücksetzen</string>
|
||||
<string name="new_message">Neue Nachricht</string>
|
||||
</resources>
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="accept_contact_button">Aceptar</string>
|
||||
<string name="network_settings">Configuración avanzada de red</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Óptimo para la batería</b>. Recibirás notificaciones sólo cuando la aplicación esté abierta (SIN servicio en segundo plano).]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Bueno para la batería</b>. El servicio en segundo plano comprueba si hay mensajes cada 10 minutos. Podrías no recibir a tiempo llamadas o mensajes urgentes.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Bueno para la batería</b>. La aplicación comprueba si hay mensajes cada 10 minutos. Podrías perderte llamadas o mensajes urgentes.]]></string>
|
||||
<string name="accept_call_on_lock_screen">Aceptar</string>
|
||||
<string name="full_backup">Copia de seguridad de los datos de la aplicación</string>
|
||||
<string name="chat_item_ttl_day">un dia</string>
|
||||
@@ -75,7 +75,7 @@
|
||||
<string name="icon_descr_asked_to_receive">Solicita recibir la imagen</string>
|
||||
<string name="impossible_to_recover_passphrase"><![CDATA[<b>Recuerda</b>: NO podrás recuperar o cambiar la frase de contraseña si la pierdes.]]></string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">Tanto tú como tu contacto podéis enviar mensajes de voz.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>¡Consume más batería!</b> El servicio en segundo plano se ejecuta continuamente y las notificaciones se mostrarán de inmediato.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>¡Consume más energía!</b> La aplicación está siempre en segundo plano y las notificaciones se muestran de inmediato.]]></string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Tanto tú como tu contacto podéis eliminar los mensajes enviados de forma irreversible. (24 horas)</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Tanto tú como tu contacto podéis enviar mensajes temporales.</string>
|
||||
<string name="create_profile_button">Crear</string>
|
||||
@@ -271,16 +271,16 @@
|
||||
<string name="database_initialization_error_title">No se puede iniciar la base de datos</string>
|
||||
<string name="clear_chat_question">¿Vaciar chat\?</string>
|
||||
<string name="network_session_mode_user">por perfil</string>
|
||||
<string name="chat_is_stopped_indication">Chat está parado</string>
|
||||
<string name="chat_is_stopped_indication">SimpleX está parado</string>
|
||||
<string name="rcv_group_event_changed_member_role">rol de %s cambiado a %s</string>
|
||||
<string name="change_role">Cambiar rol</string>
|
||||
<string name="v4_5_transport_isolation_descr">Mediante perfil (predeterminado) o por conexión (BETA)</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing">cambiando de servidor…</string>
|
||||
<string name="chat_preferences">Preferencias de Chat</string>
|
||||
<string name="feature_cancelled_item">cancelado %s</string>
|
||||
<string name="chat_is_stopped">Chat está parado</string>
|
||||
<string name="chat_is_stopped">SimpleX está parado</string>
|
||||
<string name="settings_section_title_calls">LLAMADAS</string>
|
||||
<string name="chat_is_running">Chat está en ejecución</string>
|
||||
<string name="chat_is_running">SimpleX está en ejecución</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_changing">está cambiando de servidor…</string>
|
||||
<string name="chat_with_developers">habla con los desarrolladores</string>
|
||||
<string name="icon_descr_cancel_file_preview">Cancelar vista previa del archivo</string>
|
||||
@@ -302,7 +302,7 @@
|
||||
<string name="call_on_lock_screen">Llamadas en la ventana de bloqueo</string>
|
||||
<string name="alert_title_cant_invite_contacts">¡No se pueden invitar contactos!</string>
|
||||
<string name="chat_console">Consola de Chat</string>
|
||||
<string name="chat_database_section">BASE DE DATOS DE CHAT</string>
|
||||
<string name="chat_database_section">BASE DE DATOS DE SIMPLEX</string>
|
||||
<string name="chat_database_deleted">Base de datos eliminada</string>
|
||||
<string name="chat_database_imported">Base de datos importada</string>
|
||||
<string name="smp_servers_check_address">Comprueba la dirección del servidor e inténtalo de nuevo.</string>
|
||||
@@ -337,7 +337,7 @@
|
||||
<string name="failed_to_active_user_title">¡Error al cambiar perfil!</string>
|
||||
<string name="smp_servers_enter_manually">Introduce el servidor manualmente</string>
|
||||
<string name="how_to_use_your_servers">Cómo usar los servidores</string>
|
||||
<string name="error_stopping_chat">Error al parar Chat</string>
|
||||
<string name="error_stopping_chat">Error al parar SimpleX</string>
|
||||
<string name="enter_correct_passphrase">Introduce la contraseña correcta.</string>
|
||||
<string name="enter_passphrase">Introduce la contraseña…</string>
|
||||
<string name="icon_descr_group_inactive">Grupo inactivo</string>
|
||||
@@ -387,7 +387,7 @@
|
||||
<string name="error_saving_ICE_servers">Error al guardar servidores ICE</string>
|
||||
<string name="enter_one_ICE_server_per_line">Servidores ICE (uno por línea)</string>
|
||||
<string name="full_name__field">Nombre completo:</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Las personas pueden conectarse contigo sólo mediante los enlaces que compartes.</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Tu decides quién se conecta.</string>
|
||||
<string name="how_simplex_works">Cómo funciona SimpleX</string>
|
||||
<string name="icon_descr_hang_up">Colgar</string>
|
||||
<string name="files_and_media_section">Archivos y multimedia</string>
|
||||
@@ -509,7 +509,7 @@
|
||||
<string name="ensure_ICE_server_address_are_correct_format_and_unique">Asegúrate de que las direcciones del servidor WebRTC ICE tienen el formato correcto, están separadas por líneas y no duplicadas.</string>
|
||||
<string name="network_use_onion_hosts_required_desc">Se requieren hosts .onion para la conexión
|
||||
\nRecuerda: no podrás conectarte a servidores que no tengan dirección .onion.</string>
|
||||
<string name="immune_to_spam_and_abuse">Inmune a spam y abuso</string>
|
||||
<string name="immune_to_spam_and_abuse">Inmune al spam</string>
|
||||
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Muchos se preguntarán: <i>si SimpleX no tiene identificadores de usuario, ¿cómo puede entregar los mensajes\?</i>]]></string>
|
||||
<string name="incoming_video_call">Videollamada entrante</string>
|
||||
<string name="snd_group_event_user_left">has salido</string>
|
||||
@@ -631,7 +631,7 @@
|
||||
<string name="reject_contact_button">Rechazar</string>
|
||||
<string name="network_use_onion_hosts_required">Obligatorio</string>
|
||||
<string name="save_and_notify_contacts">Guardar y notificar contactos</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Protocolo y código abiertos: cualquiera puede usar los servidores.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Cualquiera puede alojar servidores.</string>
|
||||
<string name="role_in_group">Rol</string>
|
||||
<string name="network_option_ping_interval">Intervalo PING</string>
|
||||
<string name="network_option_ping_count">Contador PING</string>
|
||||
@@ -672,7 +672,7 @@
|
||||
<string name="prohibit_sending_disappearing_messages">No se permiten mensajes temporales.</string>
|
||||
<string name="only_you_can_send_voice">Sólo tú puedes enviar mensajes de voz.</string>
|
||||
<string name="only_your_contact_can_send_voice">Sólo tu contacto puede enviar mensajes de voz.</string>
|
||||
<string name="run_chat_section">EJECUTAR CHAT</string>
|
||||
<string name="run_chat_section">EJECUTAR SIMPLEX</string>
|
||||
<string name="restart_the_app_to_use_imported_chat_database">Reinicia la aplicación para poder usar la base de datos importada.</string>
|
||||
<string name="enter_correct_current_passphrase">Introduce la contraseña actual correcta.</string>
|
||||
<string name="feature_received_prohibited">recepción no permitida</string>
|
||||
@@ -741,11 +741,12 @@
|
||||
<string name="share_invitation_link">Compartir enlace de un uso</string>
|
||||
<string name="update_network_session_mode_question">¿Actualizar el modo de aislamiento de transporte\?</string>
|
||||
<string name="icon_descr_speaker_on">Altavoz activado</string>
|
||||
<string name="stop_chat_to_enable_database_actions">Para habilitar las acciones sobre la base de datos, debes parar Chat</string>
|
||||
<string name="stop_chat_to_enable_database_actions">Para habilitar las acciones sobre la base de datos, debes parar SimpleX</string>
|
||||
<string name="connection_you_accepted_will_be_cancelled">¡La conexión que has aceptado se cancelará!</string>
|
||||
<string name="database_initialization_error_desc">La base de datos no funciona correctamente. Pulsa para conocer más</string>
|
||||
<string name="moderate_message_will_be_marked_warning">El mensaje será marcado como moderado para todos los miembros.</string>
|
||||
<string name="next_generation_of_private_messaging">La nueva generación de mensajería privada</string>
|
||||
<string name="next_generation_of_private_messaging">La nueva generación
|
||||
\nde mensajería privada</string>
|
||||
<string name="delete_files_and_media_desc">Esta acción es irreversible. Se eliminarán todos los archivos y multimedia recibidos y enviados. Las imágenes de baja resolución permanecerán.</string>
|
||||
<string name="enable_automatic_deletion_message">Esta acción es irreversible. Los mensajes enviados y recibidos anteriores a la selección serán eliminados. Podría tardar varios minutos.</string>
|
||||
<string name="messages_section_description">Esta configuración se aplica a los mensajes del perfil actual</string>
|
||||
@@ -754,7 +755,7 @@
|
||||
<string name="icon_descr_settings">Configuración</string>
|
||||
<string name="icon_descr_speaker_off">Altavoz desactivado</string>
|
||||
<string name="add_contact_or_create_group">Inciar chat nuevo</string>
|
||||
<string name="stop_chat_to_export_import_or_delete_chat_database">Para exportar, importar o eliminar la base de datos debes parar Chat. Mientra tanto no podrás recibir o enviar mensajes.</string>
|
||||
<string name="stop_chat_to_export_import_or_delete_chat_database">Para exportar, importar o eliminar la base de datos debes parar SimpleX. Mientra tanto no podrás recibir o enviar mensajes.</string>
|
||||
<string name="thank_you_for_installing_simplex">Gracias por instalar SimpleX Chat!</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Para proteger tu privacidad, en lugar de los identificadores de usuario que usan el resto de plataformas, SimpleX dispone de identificadores para las colas de mensajes, independientes para cada uno de tus contactos.</string>
|
||||
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">Para proteger tu información, activa el Bloqueo SimpleX.
|
||||
@@ -771,7 +772,7 @@
|
||||
<string name="notification_preview_mode_message_desc">Se muestran el nombre del contacto y el mensaje</string>
|
||||
<string name="notification_preview_mode_contact_desc">Se muestra sólo el nombre del contacto</string>
|
||||
<string name="auth_simplex_lock_turned_on">Bloqueo SimpleX activado</string>
|
||||
<string name="auth_stop_chat">Parar Chat</string>
|
||||
<string name="auth_stop_chat">Parar SimpleX</string>
|
||||
<string name="moderate_message_will_be_deleted_warning">El mensaje se eliminará para todos los miembros.</string>
|
||||
<string name="share_file">Compartir archivo…</string>
|
||||
<string name="images_limit_title">¡Demasiadas imágenes!</string>
|
||||
@@ -780,7 +781,7 @@
|
||||
<string name="network_use_onion_hosts">Usar hosts .onion</string>
|
||||
<string name="core_simplexmq_version">simplexmq: v%s (%2s)</string>
|
||||
<string name="the_messaging_and_app_platform_protecting_your_privacy_and_security">La plataforma de mensajería y aplicaciones que protege tu privacidad y seguridad.</string>
|
||||
<string name="first_platform_without_user_ids">La primera plataforma sin identificadores de usuario: diseñada para la privacidad.</string>
|
||||
<string name="first_platform_without_user_ids">Sin identificadores de usuario.</string>
|
||||
<string name="alert_message_no_group">Este grupo ya no existe.</string>
|
||||
<string name="accept_feature_set_1_day">Establecer 1 día</string>
|
||||
<string name="v4_4_french_interface_descr">¡Nuestro agradecimiento a todos los colaboradores! Puedes contribuir a través de Weblate.</string>
|
||||
@@ -800,7 +801,7 @@
|
||||
<string name="callstate_starting">inicializando…</string>
|
||||
<string name="alert_title_skipped_messages">Mensajes omitidos</string>
|
||||
<string name="settings_section_title_settings">CONFIGURACIÓN</string>
|
||||
<string name="stop_chat_question">¿Parar Chat?</string>
|
||||
<string name="stop_chat_question">¿Parar SimpleX?</string>
|
||||
<string name="chat_item_ttl_seconds">%s segundo(s)</string>
|
||||
<string name="group_invitation_tap_to_join">Pulsa para unirte</string>
|
||||
<string name="rcv_group_event_updated_group_profile">ha actualizado el perfil del grupo</string>
|
||||
@@ -829,7 +830,7 @@
|
||||
<string name="chat_help_tap_button">Pulsa el botón</string>
|
||||
<string name="to_start_a_new_chat_help_header">Para iniciar un chat nuevo</string>
|
||||
<string name="switch_receiving_address">Cambiar servidor de recepción</string>
|
||||
<string name="group_is_decentralized">Completamente descentralizado: sólo visible a los miembros.</string>
|
||||
<string name="group_is_decentralized">Completamente descentralizado y sólo visible para los miembros.</string>
|
||||
<string name="to_connect_via_link_title">Para conectarte mediante enlace</string>
|
||||
<string name="smp_servers_test_failed">¡Error en prueba del servidor!</string>
|
||||
<string name="smp_servers_test_some_failed">Algunos servidores no superaron la prueba:</string>
|
||||
@@ -1301,7 +1302,7 @@
|
||||
<string name="enable_receipts_all">Activar</string>
|
||||
<string name="receipts_contacts_title_disable">¿Desactivar confirmaciones\?</string>
|
||||
<string name="receipts_contacts_title_enable">¿Activar confirmaciones\?</string>
|
||||
<string name="receipts_section_description_1">Se pueden anular en la configuración de grupos y contactos.</string>
|
||||
<string name="receipts_section_description_1">Se puede modificar desde la configuración particular de cada grupo o contacto.</string>
|
||||
<string name="receipts_contacts_enable_for_all">Activar para todos</string>
|
||||
<string name="receipts_contacts_enable_keep_overrides">Activar (conservar anulaciones)</string>
|
||||
<string name="receipts_contacts_disable_for_all">Desactivar para todos</string>
|
||||
@@ -1348,7 +1349,7 @@
|
||||
<string name="turn_off_system_restriction_button">Abrir configuración</string>
|
||||
<string name="connect__a_new_random_profile_will_be_shared">Se compartirá un perfil nuevo aleatorio.</string>
|
||||
<string name="paste_the_link_you_received_to_connect_with_your_contact">Pega el enlace recibido para conectar con tu contacto…</string>
|
||||
<string name="connect__your_profile_will_be_shared">Tu perfil %1$s será compartido.</string>
|
||||
<string name="connect__your_profile_will_be_shared">El perfil %1$s será compartido.</string>
|
||||
<string name="disable_notifications_button">Desactivar notificaciones</string>
|
||||
<string name="system_restricted_background_in_call_title">Sin llamadas en segundo plano.</string>
|
||||
<string name="system_restricted_background_desc">SimpleX no puede funcionar en segundo plano. Sólo recibirás notificaciones con la aplicación abierta.</string>
|
||||
@@ -1426,7 +1427,7 @@
|
||||
<string name="alert_text_encryption_renegotiation_failed">Renegociación de cifrado fallida.</string>
|
||||
<string name="desktop_devices">Ordenadores</string>
|
||||
<string name="correct_name_to">¿Corregir el nombre a %s?</string>
|
||||
<string name="delete_messages__question">Elimina %d mensajes?</string>
|
||||
<string name="delete_messages__question">¿Eliminar %d mensajes?</string>
|
||||
<string name="link_a_mobile">Enlazar móvil</string>
|
||||
<string name="connect_with_contact_name_question">¿Conectar con %1$s?</string>
|
||||
<string name="block_member_confirmation">Bloquear</string>
|
||||
@@ -1572,7 +1573,7 @@
|
||||
<string name="error_blocking_member_for_all">Error al bloqear el miembro para todos</string>
|
||||
<string name="v5_5_private_notes_descr">Con cifrado de archivos y multimedia.</string>
|
||||
<string name="remote_host_error_timeout"><![CDATA[Tiempo de espera para conectar con el móvil <b>%s</b> agotado]]></string>
|
||||
<string name="chat_is_stopped_you_should_transfer_database">Chat parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar Chat.</string>
|
||||
<string name="chat_is_stopped_you_should_transfer_database">SimpleX está parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar SimpleX.</string>
|
||||
<string name="failed_to_create_user_invalid_desc">Este nombre mostrado no es válido. Por favor, selecciona otro nombre.</string>
|
||||
<string name="remote_host_was_disconnected_title">Conexión parada</string>
|
||||
<string name="remote_ctrl_was_disconnected_title">Conexión parada</string>
|
||||
@@ -1685,7 +1686,7 @@
|
||||
<string name="migrate_from_device_finalize_migration">Finalizar migración</string>
|
||||
<string name="migrate_from_device_archive_will_be_deleted"><![CDATA[<b>Atención</b>: el archivo será eliminado.]]></string>
|
||||
<string name="migrate_from_device_check_connection_and_try_again">Comprueba tu conexión a internet y vuelve a intentarlo</string>
|
||||
<string name="migrate_from_device_confirm_you_remember_passphrase">Confirma que recuerdas la frase de contraseña de la base de datos para migrarla.</string>
|
||||
<string name="migrate_from_device_confirm_you_remember_passphrase">Para migrar confirma que recuerdas la frase de contraseña de la base de datos.</string>
|
||||
<string name="migrate_from_device_error_verifying_passphrase">Error al verificar la frase de contraseña:</string>
|
||||
<string name="migrate_from_device_using_on_two_device_breaks_encryption"><![CDATA[<b>Recuerda</b>: usar la misma base de datos en dos dispositivos hará que falle el descifrado de mensajes como protección de seguridad.]]></string>
|
||||
<string name="migrate_from_device_choose_migrate_from_another_device"><![CDATA[En el nuevo dispositivo selecciona <i>Migrar desde otro dispositivo</i> y escanea el código QR.]]></string>
|
||||
@@ -1696,7 +1697,7 @@
|
||||
<string name="migrate_from_device_error_exporting_archive">Error al exportar base de datos del chat</string>
|
||||
<string name="migrate_from_device_error_saving_settings">Error al guardar ajustes</string>
|
||||
<string name="migrate_from_device_exported_file_doesnt_exist">El archivo exportado no existe</string>
|
||||
<string name="migrate_from_device_chat_should_be_stopped">Para continuar, Chat debe estar parado.</string>
|
||||
<string name="migrate_from_device_chat_should_be_stopped">Para continuar, SimpleX debe estar parado.</string>
|
||||
<string name="e2ee_info_no_pq"><![CDATA[Los mensajes, archivos y llamadas están protegidos mediante <b>cifrado de extremo a extremo</b> con secreto perfecto hacía adelante, repudio y recuperación tras ataque.]]></string>
|
||||
<string name="e2ee_info_pq"><![CDATA[Los mensajes, archivos y llamadas están protegidos mediante <b>cifrado de extremo a extremo resistente a tecnología cuántica</b> con secreto perfecto hacía adelante, repudio y recuperación tras ataque.]]></string>
|
||||
<string name="migrate_to_device_title">Migrar aquí</string>
|
||||
@@ -1803,7 +1804,7 @@
|
||||
<string name="protect_ip_address">Proteger dirección IP</string>
|
||||
<string name="without_tor_or_vpn_ip_address_will_be_visible_to_file_servers">Sin Tor o VPN, tu dirección IP será visible para los servidores de archivos.</string>
|
||||
<string name="settings_section_title_files">ARCHIVOS</string>
|
||||
<string name="app_will_ask_to_confirm_unknown_file_servers">La aplicación pedirá confirmar las descargas de servidores de archivos desconocidos (excepto .onion o cuando se active SOCKS proxy).</string>
|
||||
<string name="app_will_ask_to_confirm_unknown_file_servers">La aplicación pedirá confirmar las descargas desde servidores de archivos desconocidos (excepto .onion o cuando se active SOCKS proxy).</string>
|
||||
<string name="settings_section_title_chat_colors">Colores del chat</string>
|
||||
<string name="settings_section_title_chat_theme">Tema del chat</string>
|
||||
<string name="chat_theme_apply_to_mode">Aplicar a</string>
|
||||
@@ -1871,7 +1872,7 @@
|
||||
<string name="cannot_share_message_alert_text">Las preferencias seleccionadas no permiten este mensaje.</string>
|
||||
<string name="servers_info">Info servidores</string>
|
||||
<string name="servers_info_files_tab">Archivos</string>
|
||||
<string name="servers_info_target">Mostrando info de</string>
|
||||
<string name="servers_info_target">Mostrando</string>
|
||||
<string name="subscribed">Suscrito</string>
|
||||
<string name="subscription_errors">Errores de suscripción</string>
|
||||
<string name="subscription_results_ignored">Suscripciones ignoradas</string>
|
||||
@@ -1895,18 +1896,18 @@
|
||||
<string name="xftp_server">Servidor XFTP</string>
|
||||
<string name="servers_info_proxied_servers_section_footer">No estás conectado a estos servidores. Para enviarles mensajes se usa el enrutamiento privado.</string>
|
||||
<string name="all_users">Todos los perfiles</string>
|
||||
<string name="servers_info_sessions_connected">Conectado</string>
|
||||
<string name="servers_info_sessions_connected">Conectadas</string>
|
||||
<string name="servers_info_detailed_statistics">Estadísticas detalladas</string>
|
||||
<string name="servers_info_details">Detalles</string>
|
||||
<string name="uploaded_files">Archivos subidos</string>
|
||||
<string name="upload_errors">Errores de subida</string>
|
||||
<string name="attempts_label">intentos</string>
|
||||
<string name="completed">Completado</string>
|
||||
<string name="completed">Completadas</string>
|
||||
<string name="connections">Conexiones</string>
|
||||
<string name="created">Creado</string>
|
||||
<string name="created">Creadas</string>
|
||||
<string name="decryption_errors">errores de descifrado</string>
|
||||
<string name="deleted">Eliminado</string>
|
||||
<string name="deletion_errors">Errores de borrado</string>
|
||||
<string name="deleted">Eliminadas</string>
|
||||
<string name="deletion_errors">Errores de eliminación</string>
|
||||
<string name="member_info_member_disabled">desactivado</string>
|
||||
<string name="message_forwarded_title">Mensaje reenviado</string>
|
||||
<string name="member_inactive_desc">El mensaje puede ser entregado más tarde si el miembro vuelve a estar activo.</string>
|
||||
@@ -1950,14 +1951,14 @@
|
||||
<string name="servers_info_previously_connected_servers_section_header">Servidores conectados previamente</string>
|
||||
<string name="servers_info_proxied_servers_section_header">Servidores con proxy</string>
|
||||
<string name="servers_info_detailed_statistics_received_messages_header">Mensajes recibidos</string>
|
||||
<string name="servers_info_detailed_statistics_received_total">Total recibido</string>
|
||||
<string name="servers_info_detailed_statistics_received_total">Total recibidos</string>
|
||||
<string name="servers_info_detailed_statistics_receive_errors">Errores de recepción</string>
|
||||
<string name="servers_info_reconnect_all_servers_button">Reconectar todos los servidores</string>
|
||||
<string name="servers_info_reconnect_server_title">¿Reconectar servidor?</string>
|
||||
<string name="servers_info_reconnect_servers_title">¿Reconectar servidores?</string>
|
||||
<string name="servers_info_reconnect_server_message">Reconectar el servidor para forzar la entrega de mensajes. Usa tráfico adicional.</string>
|
||||
<string name="servers_info_reconnect_servers_message">Reconectar todos los servidores para forzar la entrega de mensajes. Usa tráfico adicional.</string>
|
||||
<string name="servers_info_reset_stats">Restablecer estadísticas</string>
|
||||
<string name="servers_info_reset_stats">Restablecer todas las estadísticas</string>
|
||||
<string name="servers_info_reset_stats_alert_title">¿Restablecer todas las estadísticas?</string>
|
||||
<string name="servers_info_detailed_statistics_sent_messages_header">Mensajes enviados</string>
|
||||
<string name="servers_info_detailed_statistics_sent_messages_total">Total enviado</string>
|
||||
@@ -1970,7 +1971,7 @@
|
||||
<string name="other_errors">otros errores</string>
|
||||
<string name="proxied">Con proxy</string>
|
||||
<string name="reconnect">Reconectar</string>
|
||||
<string name="secured">Seguro</string>
|
||||
<string name="secured">Aseguradas</string>
|
||||
<string name="send_errors">Errores de envío</string>
|
||||
<string name="sent_directly">Enviado directamente</string>
|
||||
<string name="sent_via_proxy">Enviado mediante proxy</string>
|
||||
@@ -1999,7 +2000,7 @@
|
||||
<string name="paste_link">Pegar enlace</string>
|
||||
<string name="privacy_media_blur_radius_medium">Medio</string>
|
||||
<string name="privacy_media_blur_radius_soft">Suave</string>
|
||||
<string name="one_hand_ui">Barra accesible</string>
|
||||
<string name="one_hand_ui">Barra de herramientas accesible</string>
|
||||
<string name="info_view_call_button">llamada</string>
|
||||
<string name="info_view_connect_button">conectar</string>
|
||||
<string name="delete_members_messages__question">¿Eliminar %d mensajes de miembros?</string>
|
||||
@@ -2034,7 +2035,7 @@
|
||||
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Por favor, pide a tu contacto que active las llamadas.</string>
|
||||
<string name="cant_call_member_send_message_alert_text">Enviar mensaje para activar llamadas.</string>
|
||||
<string name="v6_0_delete_many_messages_descr">Elimina hasta 20 mensajes a la vez.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Barra de herramientas accesible 👋</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Barra de herramientas accesible</string>
|
||||
<string name="v6_0_your_contacts_descr">Archivar contactos para charlar más tarde.</string>
|
||||
<string name="chat_database_exported_save">Puedes guardar el archivo exportado.</string>
|
||||
<string name="privacy_media_blur_radius_strong">Fuerte</string>
|
||||
@@ -2055,4 +2056,16 @@
|
||||
<string name="proxy_destination_error_failed_to_connect">El servidor de reenvío %1$s no ha podido conectarse al servidor de destino %2$s. Por favor, intentalo más tarde.</string>
|
||||
<string name="smp_proxy_error_broker_version">La versión del servidor de reenvío es incompatible con la configuración de red: %1$s.</string>
|
||||
<string name="no_filtered_contacts">Ningún contacto filtrado</string>
|
||||
<string name="v6_0_privacy_blur">Difuminar para más privacidad</string>
|
||||
<string name="create_address_button">Crear</string>
|
||||
<string name="one_hand_ui_card_title">Alternar lista de chats:</string>
|
||||
<string name="v6_0_increase_font_size">Aumenta el tamaño de la fuente.</string>
|
||||
<string name="v6_0_chat_list_media">Reproduce desde la lista de chats.</string>
|
||||
<string name="v6_0_upgrade_app">Actualizar la aplicación automáticamente</string>
|
||||
<string name="invite_friends_short">Invitar</string>
|
||||
<string name="v6_0_new_chat_experience">Nueva experiencia de chat 🎉</string>
|
||||
<string name="v6_0_new_media_options">Nuevas opciones multimedia</string>
|
||||
<string name="one_hand_ui_change_instruction">Puede cambiarlo desde el menú Apariencia.</string>
|
||||
<string name="v6_0_upgrade_app_descr">Descarga nuevas versiones desde GitHub.</string>
|
||||
<string name="new_message">Nuevo mensaje</string>
|
||||
</resources>
|
||||
@@ -100,7 +100,7 @@
|
||||
<string name="allow_message_reactions">Az üzenetreakciók küldése engedélyezve van.</string>
|
||||
<string name="icon_descr_cancel_file_preview">Fájl előnézet visszavonása</string>
|
||||
<string name="all_group_members_will_remain_connected">Minden csoporttag kapcsolatban marad.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Több akkumulátort használ</b>! A háttérszolgáltatás mindig fut - az értesítések megjelennek, amint az üzenetek elérhetővé válnak.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Több akkumulátort használ</b>! Az alkalmazás mindig fut a háttérben - az értesítések azonnal megjelennek.]]></string>
|
||||
<string name="block_member_confirmation">Letiltás</string>
|
||||
<string name="group_member_role_admin">admin</string>
|
||||
<string name="icon_descr_cancel_image_preview">Fénykép előnézet visszavonása</string>
|
||||
@@ -133,7 +133,7 @@
|
||||
<string name="turning_off_service_and_periodic">Az akkumulátor optimalizálása aktív, mely kikapcsolja a háttérszolgáltatást és az új üzenetek rendszeres kérését. A beállításokon keresztül újra engedélyezhetők.</string>
|
||||
<string name="block_member_question">Biztosan letiltja?</string>
|
||||
<string name="callstatus_ended">%1$s hívása befejeződött</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Jó akkumulátoridő</b>. A háttérszolgáltatás 10 percenként ellenőrzi az új üzeneteket. Előfordulhat, hogy hívásokról, vagy a sürgős üzenetekről marad le.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Jó akkumulátoridő</b>. Az alkalmazás 10 percenként ellenőrzi az új üzeneteket. Előfordulhat, hogy hívásokról, vagy a sürgős üzenetekről marad le.]]></string>
|
||||
<string name="group_member_role_author">szerző</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">Az elküldött üzenetek végleges törlése engedélyezve van az ismerősei számára. (24 óra)</string>
|
||||
<string name="cancel_verb">Mégse</string>
|
||||
@@ -684,7 +684,7 @@
|
||||
<string name="desktop_devices">Számítógépek</string>
|
||||
<string name="how_to_use_markdown">A markdown használata</string>
|
||||
<string name="create_chat_profile">Csevegő profil létrehozása</string>
|
||||
<string name="immune_to_spam_and_abuse">Spam és visszaélések elleni védelem</string>
|
||||
<string name="immune_to_spam_and_abuse">Levélszemét elleni védelem</string>
|
||||
<string name="disconnect_remote_hosts">Mobilok leválasztása</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">Különböző nevek, avatarok és átviteli izoláció.</string>
|
||||
<string name="if_you_choose_to_reject_the_sender_will_not_be_notified">Elutasítás esetén a feladó NEM kap értesítést.</string>
|
||||
@@ -897,7 +897,7 @@
|
||||
<string name="stop_file__confirm">Megállítás</string>
|
||||
<string name="smp_servers_preset_server">Előre beállított kiszolgáló</string>
|
||||
<string name="add_contact_or_create_group">Új csevegés kezdése</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Nyílt forráskódú protokoll és forráskód – bárki üzemeltethet kiszolgálókat.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Bárki üzemeltethet kiszolgálókat.</string>
|
||||
<string name="rcv_group_event_open_chat">Megnyitás</string>
|
||||
<string name="network_option_protocol_timeout">Protokoll időtúllépés</string>
|
||||
<string name="secret_text">titkos</string>
|
||||
@@ -912,7 +912,7 @@
|
||||
<string name="your_privacy">Adatvédelem</string>
|
||||
<string name="your_simplex_contact_address">Az ön SimpleX címe</string>
|
||||
<string name="alert_text_fragment_please_report_to_developers">Jelentse a fejlesztőknek.</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Az emberek csak az ön által megosztott hivatkozáson keresztül kapcsolódhatnak.</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Ön dönti el, hogy kivel beszélget</string>
|
||||
<string name="prohibit_sending_disappearing">Az eltűnő üzenetek küldése le van tiltva.</string>
|
||||
<string name="only_you_can_send_voice">Csak ön tud hangüzeneteket küldeni.</string>
|
||||
<string name="update_network_settings_confirmation">Frissítés</string>
|
||||
@@ -1224,7 +1224,7 @@
|
||||
<string name="snd_group_event_member_deleted">eltávolította őt: %1$s</string>
|
||||
<string name="save_passphrase_and_open_chat">Jelmondat mentése és csevegés megnyitása</string>
|
||||
<string name="save_preferences_question">Beállítások mentése?</string>
|
||||
<string name="first_platform_without_user_ids">Az első csevegési rendszer bármiféle felhasználó azonosító nélkül - privátra lett tervezre.</string>
|
||||
<string name="first_platform_without_user_ids">Nincsenek felhasználói azonosítók.</string>
|
||||
<string name="prohibit_direct_messages">A közvetlen üzenetek küldése a tagok között le van tiltva.</string>
|
||||
<string name="network_enable_socks">SOCKS proxy használata?</string>
|
||||
<string name="icon_descr_speaker_off">Hangszóró kikapcsolva</string>
|
||||
@@ -1294,7 +1294,8 @@
|
||||
<string name="database_downgrade_warning">Figyelmeztetés: néhány adat elveszhet!</string>
|
||||
<string name="tap_to_start_new_chat">Koppintson az új csevegés indításához</string>
|
||||
<string name="waiting_for_desktop">Várakozás a számítógépre…</string>
|
||||
<string name="next_generation_of_private_messaging">A privát üzenetküldés következő generációja</string>
|
||||
<string name="next_generation_of_private_messaging">A privát üzenetküldés
|
||||
\nkövetkező generációja</string>
|
||||
<string name="update_network_settings_question">Hálózati beállítások megváltoztatása?</string>
|
||||
<string name="waiting_for_mobile_to_connect">Várakozás a mobiltelefon társítására:</string>
|
||||
<string name="v4_4_verify_connection_security">Kapcsolat biztonságának ellenőrzése</string>
|
||||
@@ -1381,7 +1382,7 @@
|
||||
<string name="v5_1_better_messages_descr">- hangüzenetek 5 percig.
|
||||
\n- egyedi eltűnési időhatár.
|
||||
\n- előzmény szerkesztése.</string>
|
||||
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Válassza a <i>Használat számítógépről</i> menüpontot a mobil alkalmazásban és olvassa be a QR-kódot.]]></string>
|
||||
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Válassza a <i>Használat számítógépről</i> menüt a mobil alkalmazásban és olvassa be a QR-kódot.]]></string>
|
||||
<string name="sender_at_ts">%s ekkor: %s</string>
|
||||
<string name="you_will_be_connected_when_your_contacts_device_is_online">Akkor lesz kapcsolódva, amikor az ismerősének az eszköze online lesz, várjon, vagy ellenőrizze később!</string>
|
||||
<string name="v5_4_block_group_members_descr">Kéretlen üzenetek elrejtése.</string>
|
||||
@@ -1401,8 +1402,8 @@
|
||||
<string name="network_disable_socks">Közvetlen internet kapcsolat használata?</string>
|
||||
<string name="you_will_still_receive_calls_and_ntfs">Továbbra is kap hívásokat és értesítéseket a némított profiloktól, ha azok aktívak.</string>
|
||||
<string name="group_main_profile_sent">A fő csevegési profilja elküldésre kerül a csoporttagok számára</string>
|
||||
<string name="you_can_enable_delivery_receipts_later_alert">Később engedélyezheti őket az alkalmazás „Adatvédelem és biztonság” menüjében.</string>
|
||||
<string name="to_reveal_profile_enter_password">Rejtett profilja felfedéséhez írja be a teljes jelszavát a keresőmezőbe a Csevegési profilok menüben.</string>
|
||||
<string name="you_can_enable_delivery_receipts_later_alert">Később engedélyezheti őket az „Adatvédelem és biztonság” menüben.</string>
|
||||
<string name="to_reveal_profile_enter_password">Rejtett profilja felfedéséhez írja be a teljes jelszavát a keresőmezőbe a „Csevegési profilok” menüben.</string>
|
||||
<string name="upgrade_and_open_chat">Fejlesztés és a csevegés megnyitása</string>
|
||||
<string name="you_need_to_allow_to_send_voice">Hangüzeneteket küldéséhez engedélyeznie kell azok küldését az ismerősei számára.</string>
|
||||
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Beállíthatja, hogy mely kiszolgáló(ko)n keresztül <b>fogadja</b> az üzeneteket, ismerősöket – a kiszolgálók, amelyeket az üzenetküldéshez használ.]]></string>
|
||||
@@ -1420,7 +1421,7 @@
|
||||
<string name="updating_settings_will_reconnect_client_to_all_servers">A beállítások frissítése a kiszolgálókhoz való újra kapcsolódással jár.</string>
|
||||
<string name="contact_wants_to_connect_with_you">kapcsolatba akar lépni veled!</string>
|
||||
<string name="snd_group_event_changed_role_for_yourself">saját szerepköre erre változott: %s</string>
|
||||
<string name="you_can_start_chat_via_setting_or_by_restarting_the_app">A csevegési szolgáltatás elindítható a Beállítások / Adatbázis menüpontban vagy az alkalmazás újraindításával.</string>
|
||||
<string name="you_can_start_chat_via_setting_or_by_restarting_the_app">A csevegési szolgáltatás elindítható a Beállítások / Adatbázis menüben vagy az alkalmazás újraindításával.</string>
|
||||
<string name="verify_code_on_mobile">Kód ellenőrzése a mobilon</string>
|
||||
<string name="youve_accepted_group_invitation_connecting_to_inviting_group_member">Csatlakozott ehhez a csoporthoz. Kapcsolódás a meghívó csoporttaghoz.</string>
|
||||
<string name="you_can_connect_to_simplex_chat_founder"><![CDATA[Kapcsolatba léphet <font color="#0088ff">a SimpleX Chat fejlesztőivel, ahol bármiről kérdezhet és értesülhet az újdonságokról</font>.]]></string>
|
||||
@@ -1830,7 +1831,7 @@
|
||||
<string name="theme_destination_app_theme">Alkalmazás téma</string>
|
||||
<string name="v5_8_persian_ui">Perzsa kezelőfelület</string>
|
||||
<string name="v5_8_private_routing_descr">Védje IP-címét az ismerősei által kiválasztott üzenetküldő átjátszókkal szemben.
|
||||
\nEngedélyezze a beállításokban a *Hálózat és kiszolgálók* menüpontban.</string>
|
||||
\nEngedélyezze a „Beállítások -> Hálózat és kiszolgálók” menüben.</string>
|
||||
<string name="v5_8_safe_files_descr">Ismeretlen kiszolgálókról származó fájlok jóváhagyása.</string>
|
||||
<string name="v5_8_message_delivery">Javított üzenetkézbesítés</string>
|
||||
<string name="chat_theme_reset_to_app_theme">Alkalmazás témájának visszaállítása</string>
|
||||
@@ -2010,7 +2011,7 @@
|
||||
<string name="keep_conversation">Beszélgetés megtartása</string>
|
||||
<string name="confirm_delete_contact_question">Biztosan törli az ismerőst?</string>
|
||||
<string name="info_view_connect_button">kapcsolódás</string>
|
||||
<string name="one_hand_ui">Elérhető csevegő eszköztár</string>
|
||||
<string name="one_hand_ui">Könnyen elérhető eszköztár</string>
|
||||
<string name="delete_without_notification">Törlés értesítés nélkül</string>
|
||||
<string name="toolbar_settings">Beállítások</string>
|
||||
<string name="info_view_search_button">keresés</string>
|
||||
@@ -2037,7 +2038,7 @@
|
||||
<string name="media_and_file_servers">Média- és fájlkiszolgálók</string>
|
||||
<string name="v6_0_delete_many_messages_descr">Legfeljebb 20 üzenet törlése egyszerre.</string>
|
||||
<string name="v6_0_private_routing_descr">Védi az IP-címét és a kapcsolatokat.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Könnyen elérhető eszköztár 👋</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Könnyen elérhető eszköztár</string>
|
||||
<string name="message_servers">Üzenetkiszolgálók</string>
|
||||
<string name="network_socks_proxy">SOCKS proxy</string>
|
||||
<string name="chat_database_exported_not_all_files">Néhány fájl nem került exportálásra:</string>
|
||||
@@ -2047,7 +2048,17 @@
|
||||
<string name="v6_0_your_contacts_descr">Ismerősök archiválása a későbbi csevegéshez.</string>
|
||||
<string name="network_option_tcp_connection">TCP kapcsolat</string>
|
||||
<string name="chat_database_exported_save">Az exportált archívumot elmentheti.</string>
|
||||
<string name="reset_all_hints">Tippek alaphelyzetbe állítása</string>
|
||||
<string name="reset_all_hints">Tippek visszaállítása</string>
|
||||
<string name="one_hand_ui_card_title">Csevegőlista átváltása:</string>
|
||||
<string name="one_hand_ui_change_instruction">Ezt a Megjelenés menüben módosíthatja.</string>
|
||||
<string name="one_hand_ui_change_instruction">Ezt a „Megjelenés” menüben módosíthatja.</string>
|
||||
<string name="v6_0_new_media_options">Új médiabeállítások</string>
|
||||
<string name="v6_0_chat_list_media">Lejátszás a csevegési listából</string>
|
||||
<string name="v6_0_privacy_blur">Elhomályosítás a jobb adatvédelemért</string>
|
||||
<string name="v6_0_upgrade_app">Automatikus frissítés</string>
|
||||
<string name="create_address_button">Létrehozás</string>
|
||||
<string name="v6_0_upgrade_app_descr">Új verziók letöltése a GitHub-ról</string>
|
||||
<string name="v6_0_increase_font_size">Betűméret növelése.</string>
|
||||
<string name="invite_friends_short">Meghívás</string>
|
||||
<string name="v6_0_new_chat_experience">Új csevegési élmény 🎉</string>
|
||||
<string name="new_message">Új üzenet</string>
|
||||
</resources>
|
||||
@@ -271,7 +271,7 @@
|
||||
<string name="chat_database_deleted">Database della chat eliminato</string>
|
||||
<string name="settings_section_title_icon">ICONA APP</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Ideale per la batteria</b>. Riceverai notifiche solo quando l\'app è in esecuzione (NO servizio in secondo piano).]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Consuma più batteria</b>! Servizio in secondo piano sempre attivo: le notifiche sono mostrate non appena i messaggi sono disponibili.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Consuma più batteria</b>! L\'app funziona sempre in secondo piano: le notifiche vengono mostrate istantaneamente.]]></string>
|
||||
<string name="callstatus_calling">chiamata…</string>
|
||||
<string name="icon_descr_cancel_link_preview">annulla anteprima link</string>
|
||||
<string name="cannot_access_keychain">Impossibile accedere al Keystore per salvare la password del database</string>
|
||||
@@ -351,7 +351,7 @@
|
||||
<string name="how_to_use_markdown">Come usare il markdown</string>
|
||||
<string name="icon_descr_audio_call">chiamata audio</string>
|
||||
<string name="audio_call_no_encryption">chiamata audio (non crittografata e2e)</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Buono per la batteria</b>. Il servizio in secondo piano cerca messaggi ogni 10 minuti. Potresti perdere chiamate o messaggi urgenti.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Buono per la batteria</b>. L\'app cerca messaggi ogni 10 minuti. Potresti perdere chiamate o messaggi urgenti.]]></string>
|
||||
<string name="call_already_ended">Chiamata già terminata!</string>
|
||||
<string name="create_your_profile">Crea il tuo profilo</string>
|
||||
<string name="decentralized">Decentralizzato</string>
|
||||
@@ -649,7 +649,7 @@
|
||||
<string name="your_profile_is_stored_on_your_device">Il tuo profilo, i contatti e i messaggi recapitati sono memorizzati sul tuo dispositivo.</string>
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">Il tuo profilo è memorizzato sul tuo dispositivo e condiviso solo con i tuoi contatti. I server di SimpleX non possono vedere il tuo profilo.</string>
|
||||
<string name="ignore">Ignora</string>
|
||||
<string name="immune_to_spam_and_abuse">Immune a spam e abusi</string>
|
||||
<string name="immune_to_spam_and_abuse">Immune allo spam</string>
|
||||
<string name="incoming_audio_call">Chiamata in arrivo</string>
|
||||
<string name="incoming_video_call">Videochiamata in arrivo</string>
|
||||
<string name="onboarding_notifications_mode_service">Istantaneo</string>
|
||||
@@ -657,17 +657,18 @@
|
||||
<string name="make_private_connection">Crea una connessione privata</string>
|
||||
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Molte persone hanno chiesto: <i>se SimpleX non ha identificatori utente, come può recapitare i messaggi\?</i>]]></string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Solo i dispositivi client memorizzano i profili utente, i contatti, i gruppi e i messaggi inviati con <b>crittografia end-to-end a 2 livelli</b>.]]></string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Protocollo e codice open source: chiunque può gestire i server.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Chiunque può installare i server.</string>
|
||||
<string name="paste_the_link_you_received">Incolla il link che hai ricevuto</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Le persone possono connettersi a te solo tramite i link che condividi.</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Sei tu a decidere chi può connettersi.</string>
|
||||
<string name="onboarding_notifications_mode_periodic">Periodico</string>
|
||||
<string name="privacy_redefined">Privacy ridefinita</string>
|
||||
<string name="onboarding_notifications_mode_title">Notifiche private</string>
|
||||
<string name="read_more_in_github_with_link"><![CDATA[Maggiori informazioni nel nostro <font color="#0088ff">repository GitHub</font>.]]></string>
|
||||
<string name="read_more_in_github">Maggiori informazioni nel nostro repository GitHub.</string>
|
||||
<string name="reject">Rifiuta</string>
|
||||
<string name="first_platform_without_user_ids">La prima piattaforma senza alcun identificatore utente – privata by design.</string>
|
||||
<string name="next_generation_of_private_messaging">La nuova generazione di messaggistica privata</string>
|
||||
<string name="first_platform_without_user_ids">Nessun identificatore utente.</string>
|
||||
<string name="next_generation_of_private_messaging">La nuova generazione
|
||||
\ndi messaggistica privata</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Per proteggere la privacy, invece degli ID utente usati da tutte le altre piattaforme, SimpleX dispone di identificatori per le code dei messaggi, separati per ciascuno dei tuoi contatti.</string>
|
||||
<string name="use_chat">Usa la chat</string>
|
||||
<string name="icon_descr_video_call">videochiamata</string>
|
||||
@@ -2047,7 +2048,7 @@
|
||||
<string name="v6_0_connect_faster_descr">Connettiti più velocemente ai tuoi amici</string>
|
||||
<string name="v6_0_connection_servers_status">Prendi il controllo della tua rete</string>
|
||||
<string name="v6_0_delete_many_messages_descr">Elimina fino a 20 messaggi contemporaneamente.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Barra degli strumenti di chat accessibile 👋</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Barra degli strumenti di chat accessibile</string>
|
||||
<string name="v6_0_your_contacts_descr">Archivia contatti per chattare più tardi.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar_descr">Usa l\'app con una mano sola.</string>
|
||||
<string name="v6_0_connection_servers_status_descr">Stato di connessione e server.</string>
|
||||
@@ -2056,4 +2057,14 @@
|
||||
<string name="reset_all_hints">Ripristina tutti i suggerimenti</string>
|
||||
<string name="one_hand_ui_card_title">Cambia elenco chat:</string>
|
||||
<string name="one_hand_ui_change_instruction">Puoi cambiarlo nelle impostazioni dell\'aspetto.</string>
|
||||
<string name="v6_0_chat_list_media">Riproduci dall\'elenco delle chat.</string>
|
||||
<string name="v6_0_increase_font_size">Aumenta la dimensione dei caratteri.</string>
|
||||
<string name="v6_0_upgrade_app">Aggiorna l\'app automaticamente</string>
|
||||
<string name="invite_friends_short">Invita</string>
|
||||
<string name="v6_0_privacy_blur">Sfoca per una privacy maggiore.</string>
|
||||
<string name="v6_0_new_chat_experience">Una nuova esperienza di chat 🎉</string>
|
||||
<string name="v6_0_new_media_options">Nuove opzioni multimediali</string>
|
||||
<string name="create_address_button">Crea</string>
|
||||
<string name="v6_0_upgrade_app_descr">Scarica nuove versioni da GitHub.</string>
|
||||
<string name="new_message">Nuovo messaggio</string>
|
||||
</resources>
|
||||
@@ -64,7 +64,7 @@
|
||||
<string name="allow_your_contacts_to_send_voice_messages">Sta toe dat uw contacten spraak berichten verzenden.</string>
|
||||
<string name="all_your_contacts_will_remain_connected">Al uw contacten blijven verbonden.</string>
|
||||
<string name="allow_voice_messages_question">Spraak berichten toestaan\?</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Goed voor de batterij</b>. Achtergrondservice controleert berichten elke 10 minuten. Mogelijk mist u oproepen of dringende berichten.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Goed voor de batterij</b>. App controleert berichten elke 10 minuten. U kunt oproepen of urgente berichten missen.]]></string>
|
||||
<string name="integrity_msg_bad_hash">Onjuiste bericht hash</string>
|
||||
<string name="integrity_msg_bad_id">Onjuiste bericht-ID</string>
|
||||
<string name="call_already_ended">Oproep al beëindigd!</string>
|
||||
@@ -101,7 +101,7 @@
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Zowel jij als je contact kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">Zowel jij als je contact kunnen spraak berichten verzenden.</string>
|
||||
<string name="impossible_to_recover_passphrase"><![CDATA[<b>Let op</b>: u kunt het wachtwoord NIET herstellen of wijzigen als u het kwijt raakt.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Gebruikt meer batterij</b>! Achtergrondservice wordt altijd uitgevoerd - meldingen worden weergegeven zodra berichten beschikbaar zijn.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Gebruikt meer batterij</b>! App draait altijd op de achtergrond – meldingen worden direct weergegeven.]]></string>
|
||||
<string name="icon_descr_cancel_link_preview">link voorbeeld annuleren</string>
|
||||
<string name="callstatus_ended">oproep beëindigd %1$s</string>
|
||||
<string name="database_initialization_error_title">Kan de database niet initialiseren</string>
|
||||
@@ -513,7 +513,7 @@
|
||||
<string name="ensure_ICE_server_address_are_correct_format_and_unique">Zorg ervoor dat WebRTC ICE server adressen de juiste indeling hebben, regel gescheiden zijn en niet gedupliceerd zijn.</string>
|
||||
<string name="network_disable_socks_info">Als u bevestigt, kunnen de berichten servers en uw provider uw IP-adres zien en met welke servers u verbinding maakt.</string>
|
||||
<string name="network_use_onion_hosts_no">Nee</string>
|
||||
<string name="immune_to_spam_and_abuse">Immuun voor spam en misbruik</string>
|
||||
<string name="immune_to_spam_and_abuse">Immuun voor spam</string>
|
||||
<string name="make_private_connection">Maak een privéverbinding</string>
|
||||
<string name="message_deletion_prohibited">Het onomkeerbaar verwijderen van berichten is verboden in dit gesprek.</string>
|
||||
<string name="new_in_version">Nieuw in %s</string>
|
||||
@@ -583,8 +583,8 @@
|
||||
<string name="network_use_onion_hosts_required_desc">Onion hosts zijn vereist voor verbinding.</string>
|
||||
<string name="network_use_onion_hosts_prefer_desc">Onion hosts worden gebruikt indien beschikbaar.</string>
|
||||
<string name="network_use_onion_hosts_no_desc">Onion hosts worden niet gebruikt.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Open-source protocol en code. Iedereen kan de servers draaien.</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Mensen kunnen alleen verbinding met u maken via de links die u deelt.</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Iedereen kan servers hosten.</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Jij bepaalt wie er verbinding mag maken.</string>
|
||||
<string name="only_your_contact_can_delete">Alleen uw contact kan berichten onherroepelijk verwijderen (u kunt ze markeren voor verwijdering). (24 uur)</string>
|
||||
<string name="only_you_can_send_voice">Alleen jij kunt spraak berichten verzenden.</string>
|
||||
<string name="only_your_contact_can_send_voice">Alleen uw contact kan spraak berichten verzenden.</string>
|
||||
@@ -719,7 +719,8 @@
|
||||
<string name="you_can_use_markdown_to_format_messages__prompt">U kunt markdown gebruiken voor opmaak in berichten:</string>
|
||||
<string name="callstatus_rejected">geweigerde oproep</string>
|
||||
<string name="secret_text">geheim</string>
|
||||
<string name="next_generation_of_private_messaging">De volgende generatie privéberichten</string>
|
||||
<string name="next_generation_of_private_messaging">De volgende generatie
|
||||
\nprivéberichten</string>
|
||||
<string name="callstate_waiting_for_answer">wachten op antwoord…</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Om de privacy te beschermen, heeft SimpleX in plaats van gebruikers-ID\'s die door alle andere platforms worden gebruikt, ID\'s voor berichten wachtrijen, afzonderlijk voor elk van uw contacten.</string>
|
||||
<string name="use_chat">Gebruik chat</string>
|
||||
@@ -855,7 +856,7 @@
|
||||
<string name="update_network_session_mode_question">Transportisolatiemodus updaten\?</string>
|
||||
<string name="callstate_received_confirmation">bevestiging ontvangen…</string>
|
||||
<string name="callstate_waiting_for_confirmation">Wachten op bevestiging…</string>
|
||||
<string name="first_platform_without_user_ids">Het eerste platform zonder gebruikers-ID\'s, privé door ontwerp.</string>
|
||||
<string name="first_platform_without_user_ids">Geen gebruikers-ID\'s.</string>
|
||||
<string name="prohibit_direct_messages">Verbied het sturen van directe berichten naar leden.</string>
|
||||
<string name="prohibit_sending_voice">Verbieden het verzenden van spraak berichten.</string>
|
||||
<string name="v4_2_security_assessment_desc">De beveiliging van SimpleX Chat is gecontroleerd door Trail of Bits.</string>
|
||||
@@ -1117,7 +1118,7 @@
|
||||
<string name="color_title">Titel</string>
|
||||
<string name="you_can_accept_or_reject_connection">Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren.</string>
|
||||
<string name="you_wont_lose_your_contacts_if_delete_address">U raakt uw contacten niet kwijt als u later uw adres verwijdert.</string>
|
||||
<string name="simplex_address">SimpleX adres</string>
|
||||
<string name="simplex_address">SimpleX cím</string>
|
||||
<string name="create_address_and_let_people_connect">Maak een adres aan zodat mensen contact met je kunnen opnemen.</string>
|
||||
<string name="create_simplex_address">Maak een SimpleX adres aan</string>
|
||||
<string name="share_with_contacts">Delen met contacten</string>
|
||||
@@ -2018,7 +2019,7 @@
|
||||
<string name="info_view_open_button">open</string>
|
||||
<string name="paste_link">Plak de link</string>
|
||||
<string name="action_button_add_members">Uitnodiging</string>
|
||||
<string name="one_hand_ui">Bereikbare chat werkbalk</string>
|
||||
<string name="one_hand_ui">Toegankelijke chatwerkbalk</string>
|
||||
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Vraag uw contactpersoon om oproepen in te schakelen.</string>
|
||||
<string name="no_filtered_contacts">Geen gefilterde contacten</string>
|
||||
<string name="select_verb">Selecteer</string>
|
||||
@@ -2043,7 +2044,7 @@
|
||||
<string name="network_options_save_and_reconnect">Opslaan en opnieuw verbinden</string>
|
||||
<string name="network_option_tcp_connection">TCP verbinding</string>
|
||||
<string name="v6_0_private_routing_descr">Het beschermt uw IP-adres en verbindingen.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Bereikbare chat werkbalk 👋</string>
|
||||
<string name="v6_0_reachable_chat_toolbar">Toegankelijke chatwerkbalk</string>
|
||||
<string name="v6_0_reachable_chat_toolbar_descr">Gebruik de app met één hand.</string>
|
||||
<string name="v6_0_connection_servers_status">Beheer uw netwerk</string>
|
||||
<string name="v6_0_connect_faster_descr">Maak sneller verbinding met je vrienden</string>
|
||||
@@ -2054,4 +2055,14 @@
|
||||
<string name="reset_all_hints">Alle hints resetten</string>
|
||||
<string name="one_hand_ui_card_title">Chatlijst wisselen:</string>
|
||||
<string name="one_hand_ui_change_instruction">U kunt dit wijzigen in de instellingen onder uiterlijk</string>
|
||||
<string name="create_address_button">Creëren</string>
|
||||
<string name="v6_0_privacy_blur">Vervagen voor betere privacy.</string>
|
||||
<string name="v6_0_chat_list_media">Afspelen via de gesprekken lijst.</string>
|
||||
<string name="v6_0_upgrade_app_descr">Download nieuwe versies van GitHub.</string>
|
||||
<string name="v6_0_increase_font_size">Vergroot het lettertype.</string>
|
||||
<string name="v6_0_upgrade_app">App automatisch upgraden</string>
|
||||
<string name="v6_0_new_chat_experience">Nieuwe chatervaring 🎉</string>
|
||||
<string name="v6_0_new_media_options">Nieuwe media-opties</string>
|
||||
<string name="invite_friends_short">Uitnodigen</string>
|
||||
<string name="new_message">Nieuw bericht</string>
|
||||
</resources>
|
||||
@@ -526,12 +526,12 @@
|
||||
<string name="migrate_from_device_check_connection_and_try_again">Verifică conexiunea la internet și încearcă din nou</string>
|
||||
<string name="settings_section_title_chat_colors">Culori conversație</string>
|
||||
<string name="settings_section_title_chat_theme">Temă conversație</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><b>Bun pentru baterie</b>.
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><b>Bun pentru baterie</b>.
|
||||
\nServiciul în fundal verifică mesaje la fiecare 10 minute. Ai putea rata apeluri sau mesaje urgente.</string>
|
||||
<string name="theme_black">Negru</string>
|
||||
<string name="block_for_all_question">Blochezi membrul pentru toți?</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Și tu și contactul tău puteți șterge ireversibil mesajele trimise. (24 de ore)</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>Folosește mai multă baterie</b>!
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>Folosește mai multă baterie</b>!
|
||||
\nServiciul în fundal rulează mereu – notificările sunt afișate imediat ce mesajele sunt disponibile.</string>
|
||||
<string name="cannot_share_message_alert_title">Nu se poate trimite mesajul</string>
|
||||
<string name="clear_contacts_selection_button">Ștergeți</string>
|
||||
|
||||
@@ -898,8 +898,8 @@
|
||||
<string name="onboarding_notifications_mode_off">Когда приложение запущено</string>
|
||||
<string name="onboarding_notifications_mode_periodic">Периодически</string>
|
||||
<string name="onboarding_notifications_mode_service">Мгновенно</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Больше расход батареи</b>! Фоновый сервис постоянно запущен - уведомления будут показаны как только есть сообщения.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Меньше расход батареи</b>. Фоновый сервис проверяет сообщения каждые 10 минут. Вы можете пропустить звонки и срочные сообщения.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Больше расход батареи</b>! Приложение постоянно запущено в фоне - уведомления будут показаны сразу же.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Меньше расход батареи</b>. Приложение проверяет сообщения каждые 10 минут. Вы можете пропустить звонки и срочные сообщения.]]></string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Можно изменить позже в настройках.</string>
|
||||
<string name="live">LIVE</string>
|
||||
<string name="send_live_message">Отправить живое сообщение</string>
|
||||
@@ -1687,6 +1687,7 @@
|
||||
<string name="agent_internal_error_title">Внутренняя ошибка</string>
|
||||
<string name="clear_note_folder_question">Очистить личные заметки?</string>
|
||||
<string name="new_chat">Новый чат</string>
|
||||
<string name="new_chat">Новое сообщение</string>
|
||||
<string name="or_scan_qr_code">Или отсканируйте QR код</string>
|
||||
<string name="you_can_view_invitation_link_again">Вы можете увидеть ссылку-приглашение снова открыв соединение.</string>
|
||||
<string name="show_slow_api_calls">Показывать медленные вызовы API</string>
|
||||
@@ -1852,7 +1853,7 @@
|
||||
<string name="color_mode_system">Системная</string>
|
||||
<string name="dark_mode_colors">Цвета тёмного режима</string>
|
||||
<string name="v5_8_safe_files">Получайте файлы безопасно</string>
|
||||
<string name="v5_8_private_routing">Конфиденциальная доставка сообщений 🚀</string>
|
||||
<string name="v5_8_private_routing">Конфиденциальная доставка 🚀</string>
|
||||
<string name="v5_8_message_delivery">Улучшенная доставка сообщений</string>
|
||||
<string name="v5_8_message_delivery_descr">Уменьшенный расход батареи.</string>
|
||||
<string name="srv_error_version">Версия сервера несовместима с настройками сети.</string>
|
||||
@@ -1944,7 +1945,7 @@
|
||||
<string name="confirm_delete_contact_question">Потвердить удаление контакта?</string>
|
||||
<string name="privacy_media_blur_radius">Размытие изображений</string>
|
||||
<string name="all_users">Все профили</string>
|
||||
<string name="app_check_for_updates_notice_title">Проверка на наличиее обновлений</string>
|
||||
<string name="app_check_for_updates_notice_title">Проверка на наличие обновлений</string>
|
||||
<string name="allow_calls_question">Разрешить звонки?</string>
|
||||
<string name="calls_prohibited_alert_title">Звонки запрещены!</string>
|
||||
<string name="cant_call_member_alert_title">Не удается позвонить члену группы</string>
|
||||
@@ -1952,7 +1953,7 @@
|
||||
<string name="info_view_call_button">звонок</string>
|
||||
<string name="cant_call_contact_alert_title">Не удается позвонить контакту</string>
|
||||
<string name="cant_send_message_to_member_alert_title">Не удается написать члену группы</string>
|
||||
<string name="app_check_for_updates">Проверка на наличиее обновлений</string>
|
||||
<string name="app_check_for_updates">Проверять обновления</string>
|
||||
<string name="info_view_connect_button">соединиться</string>
|
||||
<string name="proxy_destination_error_broker_host">Адрес сервера назначения %1$s несовместим с настройками пересылающего сервера %2$s.</string>
|
||||
<string name="smp_proxy_error_connecting">Ошибка подключения к пересылающему серверу %1$s. Попробуйте позже.</string>
|
||||
@@ -2122,7 +2123,7 @@
|
||||
<string name="sent_via_proxy">Отправлено через прокси</string>
|
||||
<string name="servers_info_transport_sessions_section_header">Транспортные сессии</string>
|
||||
<string name="v6_0_connection_servers_status_descr">Состояние соединения и серверов.</string>
|
||||
<string name="v6_0_delete_many_messages_descr">Удаляйте до 20 сообщений одновременно.</string>
|
||||
<string name="v6_0_delete_many_messages_descr">Удаляйте до 20 сообщений за раз.</string>
|
||||
<string name="app_check_for_updates_download_started">Загрузка обновления, не закрывайте приложение.</string>
|
||||
<string name="file_error_no_file">Файл не найден - скорее всего, файл был удален или отменен.</string>
|
||||
<string name="smp_proxy_error_broker_host">Адрес пересылающего сервера несовместим с настройками сети: %1$s.</string>
|
||||
@@ -2136,4 +2137,17 @@
|
||||
<string name="app_check_for_updates_notice_desc">Чтобы получать уведомления об обновлениях, включите периодическую проверку стабильных или бета-версий.</string>
|
||||
<string name="v6_0_reachable_chat_toolbar_descr">Используйте приложение одной рукой.</string>
|
||||
<string name="servers_info_detailed_statistics_sent_messages_header">Отправленные сообщения</string>
|
||||
<string name="v6_0_privacy_blur">Размыть для конфиденциальности.</string>
|
||||
<string name="create_address_button">Создать</string>
|
||||
<string name="v6_0_new_media_options">Новые медиа-опции</string>
|
||||
<string name="invite_friends_short">Пригласить</string>
|
||||
<string name="new_message">Новое сообщение</string>
|
||||
<string name="one_hand_ui_card_title">Переключите список чатов:</string>
|
||||
<string name="v6_0_upgrade_app">Обновление приложения</string>
|
||||
<string name="v6_0_upgrade_app_descr">Загружать новые версии из GitHub.</string>
|
||||
<string name="v6_0_increase_font_size">Увеличить размер шрифтов.</string>
|
||||
<string name="v6_0_new_chat_experience">Новый интерфейс 🎉</string>
|
||||
<string name="v6_0_chat_list_media">Открыть из списка чатов.</string>
|
||||
<string name="reset_all_hints">Сбросить все подсказки.</string>
|
||||
<string name="one_hand_ui_change_instruction">Вы можете изменить это в настройках Интерфейса.</string>
|
||||
</resources>
|
||||
@@ -171,12 +171,12 @@
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Cả bạn và liên hệ của bạn đều có thể gửi tin nhắn tự xóa.</string>
|
||||
<string name="both_you_and_your_contact_can_add_message_reactions">Cả bạn và liên hệ của bạn đều có thể thả cảm xúc tin nhắn.</string>
|
||||
<string name="socks_proxy_setting_limitations"><![CDATA[<b>Xin lưu ý</b>: relay tin nhắn và tệp được kết nối thông qua SOCKS proxy. Các cuộc gọi và bản xem trước liên kết sử dụng kết nối trực tiếp.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Tốt cho pin</b>. Dịch vụ nền kiểm tra tin nhắn 10 phút một lần. Bạn có thể bỏ lỡ các cuộc gọi hoặc tin nhắn khẩn cấp.]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Tốt cho pin</b>. Ứng dụng kiểm tra tin nhắn 10 phút một lần. Bạn có thể bỏ lỡ các cuộc gọi hoặc tin nhắn khẩn cấp.]]></string>
|
||||
<string name="network_smp_proxy_mode_always">Luôn luôn</string>
|
||||
<string name="callstatus_calling">đang gọi…</string>
|
||||
<string name="v4_5_transport_isolation_descr">Theo hồ sơ trò chuyện (mặc định) hoặc theo kết nối (BETA).</string>
|
||||
<string name="callstatus_in_progress">cuộc gọi đang chờ</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Sử dụng nhiều pin hơn</b>! Dịch vụ chạy nền luôn luôn chạy - thông báo sẽ được hiển thị ngay khi nhận được tin nhắn.]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Sử dụng nhiều pin hơn</b>! Ứng dụng luôn luôn chạy - thông báo sẽ được hiển thị ngay lập tức.]]></string>
|
||||
<string name="migrate_from_device_archive_will_be_deleted"><![CDATA[<b>Cảnh báo</b>: kho lưu trữ sẽ bị xóa.]]></string>
|
||||
<string name="icon_descr_call_progress">Cuộc gọi đang chờ</string>
|
||||
<string name="network_smp_proxy_fallback_allow_downgrade">Cho phép hạ cấp</string>
|
||||
@@ -556,5 +556,15 @@
|
||||
<string name="cant_call_member_alert_title">Không thể gọi thành viên nhóm</string>
|
||||
<string name="confirm_delete_contact_question">Xác nhận xóa liên hệ?</string>
|
||||
<string name="contact_deleted">Liên hệ đã bị xóa!</string>
|
||||
<string name="deleted_chats">Đã xóa các cuộc trò chuyện</string>
|
||||
<string name="deleted_chats">Các liên hệ đã lưu trữ</string>
|
||||
<string name="create_address_button">Tạo</string>
|
||||
<string name="v6_0_privacy_blur">Mờ hình ảnh để riêng tư hơn.</string>
|
||||
<string name="v6_0_connection_servers_status">Kiểm soát mạng của bạn</string>
|
||||
<string name="v6_0_connection_servers_status_descr">Kết nối và trạng thái máy chủ.</string>
|
||||
<string name="network_settings_title">Cài đặt nâng cao</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">Bất kỳ ai cũng có thể tạo máy chủ.</string>
|
||||
<string name="chat_database_exported_continue">Tiếp tục</string>
|
||||
<string name="v6_0_connect_faster_descr">Kết nối nhanh hơn với bạn bè.</string>
|
||||
<string name="chat_database_exported_title">Cơ sở dữ liệu SimpleX Chat đã được xuất</string>
|
||||
<string name="v6_0_your_contacts_descr">Lưu trữ các liên hệ để trò chuyện sau.</string>
|
||||
</resources>
|
||||
@@ -119,13 +119,13 @@
|
||||
\n<b>请注意</b>:如果您有很多连接,您的电池和流量消耗可能会大大增加,并且某些连接可能会失败。</string>
|
||||
<string name="back">返回</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b> 最长续航 </b>。您只会在应用程序运行时收到通知(无后台服务)。]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b> 较长续航 </b>。后台服务每 10 分钟检查一次消息。您可能会错过来电或者紧急信息。]]></string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b> 较长续航 </b>。应用每 10 分钟检查一次消息。您可能会错过来电或者紧急信息。]]></string>
|
||||
<string name="bold_text">加粗</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">您和您的联系人都可以不可逆地删除已发送的消息。(24小时)</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">您和您的联系人都可以发送限时消息。</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">您和您的联系人都可以发送语音消息。</string>
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><![CDATA[<b> 可以在设置里禁用它 </b> - 应用程序运行时仍会显示通知。]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b> 使用更多电量 </b>!后台服务始终运行——一旦收到消息,就会显示通知。]]></string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b> 使用更多电量 </b>!应用始终在后台运行——一即刻显示通知。]]></string>
|
||||
<string name="impossible_to_recover_passphrase"><![CDATA[<b>请注意</b>:如果您丢失密码,您将无法恢复或者更改密码。]]></string>
|
||||
<string name="call_already_ended">通话已结束!</string>
|
||||
<string name="alert_title_cant_invite_contacts">无法邀请联系人!</string>
|
||||
@@ -708,7 +708,7 @@
|
||||
<string name="simplex_link_mode_browser_warning">在浏览器中打开链接可能会降低连接的隐私和安全性。SimpleX 上不受信任的链接将显示为红色。</string>
|
||||
<string name="restore_database_alert_desc">恢复数据库备份后请输入之前的密码。 此操作无法撤消。</string>
|
||||
<string name="contact_developers">请更新应用程序并联系开发者。</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">开源协议和代码——任何人都可以运行服务器。</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">任何人都可以托管服务器。</string>
|
||||
<string name="paste_button">粘贴</string>
|
||||
<string name="network_option_ping_count">PING 次数</string>
|
||||
<string name="prohibit_sending_voice">禁止发送语音消息。</string>
|
||||
@@ -728,7 +728,7 @@
|
||||
<string name="ntf_channel_messages">SimpleX 消息</string>
|
||||
<string name="is_not_verified">%s 未验证</string>
|
||||
<string name="v4_5_italian_interface_descr">感谢用户——通过 Weblate 做出贡献!</string>
|
||||
<string name="first_platform_without_user_ids">第一个没有任何用户标识符的平台——专为隐私保护设计。</string>
|
||||
<string name="first_platform_without_user_ids">没有用户标识符。</string>
|
||||
<string name="group_is_decentralized">完全去中心化 - 仅对成员可见。</string>
|
||||
<string name="image_decoding_exception_desc">图像无法解码。 请尝试不同的图像或联系开发者。</string>
|
||||
<string name="theme">主题</string>
|
||||
@@ -767,7 +767,7 @@
|
||||
<string name="chat_with_the_founder">发送问题和想法</string>
|
||||
<string name="the_messaging_and_app_platform_protecting_your_privacy_and_security">保护您的隐私和安全的消息传递和应用程序平台。</string>
|
||||
<string name="strikethrough_text">删去</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">人们只能通过您共享的链接与您建立联系。</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">你决定谁可以连接。</string>
|
||||
<string name="next_generation_of_private_messaging">下一代私密通讯软件</string>
|
||||
<string name="paste_the_link_you_received">粘贴您收到的链接</string>
|
||||
<string name="alert_title_skipped_messages">已跳过消息</string>
|
||||
@@ -2056,4 +2056,14 @@
|
||||
<string name="chat_database_exported_migrate">你可以迁移导出的数据库。</string>
|
||||
<string name="chat_database_exported_save">你可以保存导出的存档。</string>
|
||||
<string name="reset_all_hints">重置所有提示</string>
|
||||
<string name="v6_0_privacy_blur">模糊以增强隐私。</string>
|
||||
<string name="v6_0_new_media_options">新的媒体选项</string>
|
||||
<string name="v6_0_chat_list_media">从聊天列表播放。</string>
|
||||
<string name="v6_0_upgrade_app">自动升级应用</string>
|
||||
<string name="create_address_button">创建</string>
|
||||
<string name="v6_0_upgrade_app_descr">从 GitHub 下载新版。</string>
|
||||
<string name="v6_0_increase_font_size">增大字体尺寸。</string>
|
||||
<string name="invite_friends_short">邀请</string>
|
||||
<string name="v6_0_new_chat_experience">新的聊天体验 🎉</string>
|
||||
<string name="new_message">新消息</string>
|
||||
</resources>
|
||||
@@ -26,11 +26,11 @@ android.enableJetifier=true
|
||||
kotlin.mpp.androidSourceSetLayoutVersion=2
|
||||
kotlin.jvm.target=11
|
||||
|
||||
android.version_name=6.0-beta.4
|
||||
android.version_code=229
|
||||
android.version_name=6.0
|
||||
android.version_code=230
|
||||
|
||||
desktop.version_name=6.0-beta.4
|
||||
desktop.version_code=60
|
||||
desktop.version_name=6.0
|
||||
desktop.version_code=61
|
||||
|
||||
kotlin.version=1.9.23
|
||||
gradle.plugin.version=8.2.0
|
||||
|
||||
@@ -65,7 +65,7 @@ data ServiceState = ServiceState
|
||||
|
||||
newServiceState :: IO ServiceState
|
||||
newServiceState = do
|
||||
searchRequests <- atomically TM.empty
|
||||
searchRequests <- TM.emptyIO
|
||||
pure ServiceState {searchRequests}
|
||||
|
||||
welcomeGetOpts :: IO DirectoryOpts
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ constraints: zip +disable-bzip2 +disable-zstd
|
||||
source-repository-package
|
||||
type: git
|
||||
location: https://github.com/simplex-chat/simplexmq.git
|
||||
tag: 7d8457263bb77c6d9cb1cd102c3c70177e75327f
|
||||
tag: 0dd52dc69f197a86f2f03e47b339bf3a94a596a3
|
||||
|
||||
source-repository-package
|
||||
type: git
|
||||
|
||||
Generated
+469
-228
@@ -16,6 +16,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"blank": {
|
||||
"locked": {
|
||||
"lastModified": 1625557891,
|
||||
"narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=",
|
||||
"owner": "divnix",
|
||||
"repo": "blank",
|
||||
"rev": "5a5d2684073d9f563072ed07c871d577a6c614a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "blank",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cabal-32": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -83,6 +98,64 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1663445644,
|
||||
"narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dmerge": {
|
||||
"inputs": {
|
||||
"nixlib": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
],
|
||||
"yants": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"yants"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1659548052,
|
||||
"narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=",
|
||||
"owner": "divnix",
|
||||
"repo": "data-merge",
|
||||
"rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "data-merge",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -100,34 +173,74 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1698579227,
|
||||
"narHash": "sha256-KVWjFZky+gRuWennKsbo6cWyo7c/z/VgCte5pR9pEKg=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f76e870d64779109e41370848074ac4eaa1606ec",
|
||||
"lastModified": 1650374568,
|
||||
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"lastModified": 1676283394,
|
||||
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -153,51 +266,33 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ghc98X": {
|
||||
"flake": false,
|
||||
"gomod2nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696643148,
|
||||
"narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=",
|
||||
"ref": "ghc-9.8",
|
||||
"rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6",
|
||||
"revCount": 61642,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
"lastModified": 1655245309,
|
||||
"narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=",
|
||||
"owner": "tweag",
|
||||
"repo": "gomod2nix",
|
||||
"rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"ref": "ghc-9.8",
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
}
|
||||
},
|
||||
"ghc99": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1697054644,
|
||||
"narHash": "sha256-kKarOuXUaAH3QWv7ASx+gGFMHaHKe0pK5Zu37ky2AL4=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "f383a242c76f90bcca8a4d7ee001dcb49c172a9a",
|
||||
"revCount": 62040,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
},
|
||||
"original": {
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
||||
"owner": "tweag",
|
||||
"repo": "gomod2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1702513363,
|
||||
"narHash": "sha256-kloro9uEe8aYhPMoMjVNq2rfrXNgMOZhOPwVH5DH2K0=",
|
||||
"lastModified": 1702340598,
|
||||
"narHash": "sha256-CC0HI+6iKPtH+8r/ZfcpW5v/OYvL7zMwpr0xfkXV1zU=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"rev": "a9d931d0398da67846fa257922a924829233cb91",
|
||||
"rev": "24617c569995e38bf3b83b48eec6628a50fdb4fb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -214,40 +309,33 @@
|
||||
"cabal-36": "cabal-36",
|
||||
"cardano-shell": "cardano-shell",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk",
|
||||
"ghc98X": "ghc98X",
|
||||
"ghc99": "ghc99",
|
||||
"hackage": [
|
||||
"hackage"
|
||||
],
|
||||
"hls-1.10": "hls-1.10",
|
||||
"hls-2.0": "hls-2.0",
|
||||
"hls-2.2": "hls-2.2",
|
||||
"hls-2.3": "hls-2.3",
|
||||
"hls-2.4": "hls-2.4",
|
||||
"hpc-coveralls": "hpc-coveralls",
|
||||
"hydra": "hydra",
|
||||
"iserv-proxy": "iserv-proxy",
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"nixpkgs-unstable"
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-2003": "nixpkgs-2003",
|
||||
"nixpkgs-2105": "nixpkgs-2105",
|
||||
"nixpkgs-2111": "nixpkgs-2111",
|
||||
"nixpkgs-2205": "nixpkgs-2205",
|
||||
"nixpkgs-2211": "nixpkgs-2211",
|
||||
"nixpkgs-2305": "nixpkgs-2305",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"old-ghc-nix": "old-ghc-nix",
|
||||
"stackage": "stackage"
|
||||
"stackage": "stackage",
|
||||
"tullia": "tullia"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701163700,
|
||||
"narHash": "sha256-sOrewUS3LnzV09nGr7+3R6Q6zsgU4smJc61QsHq+4DE=",
|
||||
"lastModified": 1677975916,
|
||||
"narHash": "sha256-dbe8lEEPyfzjdRwpePClv7J9p9lQg7BwbBqAMCw4RLw=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "haskell.nix",
|
||||
"rev": "2808bfe3e62e9eb4ee8974cd623a00e1611f302b",
|
||||
"rev": "ab5efd87ce3fd8ade38a01d97693d29a4f1ae7e4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -257,91 +345,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-1.10": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1680000865,
|
||||
"narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "1.10.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.0": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1687698105,
|
||||
"narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "783905f211ac63edf982dd1889c671653327e441",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.0.0.1",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1693064058,
|
||||
"narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.2.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1695910642,
|
||||
"narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.3.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696939266,
|
||||
"narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "362fdd1293efb4b82410b676ab1273479f6d17ee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.4.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hpc-coveralls": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -381,14 +384,37 @@
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"incl": {
|
||||
"inputs": {
|
||||
"nixlib": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1669263024,
|
||||
"narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=",
|
||||
"owner": "divnix",
|
||||
"repo": "incl",
|
||||
"rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "incl",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"iserv-proxy": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1691634696,
|
||||
"narHash": "sha256-MZH2NznKC/gbgBu8NgIibtSUZeJ00HTLJ0PlWKCBHb0=",
|
||||
"lastModified": 1670983692,
|
||||
"narHash": "sha256-avLo34JnI9HNyOuauK5R69usJm+GfW3MlyGlYxZhTgY=",
|
||||
"ref": "hkm/remote-iserv",
|
||||
"rev": "43a979272d9addc29fbffc2e8542c5d96e993d73",
|
||||
"revCount": 14,
|
||||
"rev": "50d0abb3317ac439a4e7495b185a64af9b7b9300",
|
||||
"revCount": 10,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"
|
||||
},
|
||||
@@ -414,22 +440,32 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mac2ios": {
|
||||
"n2c": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1699767871,
|
||||
"narHash": "sha256-kxeCUfwC/Vgh2FvVMlBUq0eVx1JvfHyN+5MPKUik9mE=",
|
||||
"owner": "zw3rk",
|
||||
"repo": "mobile-core-tools",
|
||||
"rev": "4dcb77d5ea896d749381806dfab5358851b08951",
|
||||
"lastModified": 1665039323,
|
||||
"narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zw3rk",
|
||||
"repo": "mobile-core-tools",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -454,6 +490,95 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-nomad": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"nix2container",
|
||||
"flake-utils"
|
||||
],
|
||||
"gomod2nix": "gomod2nix",
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-lib": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1658277770,
|
||||
"narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=",
|
||||
"owner": "tristanpemble",
|
||||
"repo": "nix-nomad",
|
||||
"rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tristanpemble",
|
||||
"repo": "nix-nomad",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix2container": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1658567952,
|
||||
"narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "60bb43d405991c1378baf15a40b5811a53e32ffa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixago": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixago-exts": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1661824785,
|
||||
"narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1657693803,
|
||||
@@ -520,11 +645,11 @@
|
||||
},
|
||||
"nixpkgs-2205": {
|
||||
"locked": {
|
||||
"lastModified": 1685573264,
|
||||
"narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=",
|
||||
"lastModified": 1672580127,
|
||||
"narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "380be19fbd2d9079f677978361792cb25e8a3635",
|
||||
"rev": "0874168639713f547c05947c76124f78441ea46c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -536,11 +661,11 @@
|
||||
},
|
||||
"nixpkgs-2211": {
|
||||
"locked": {
|
||||
"lastModified": 1688392541,
|
||||
"narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",
|
||||
"lastModified": 1675730325,
|
||||
"narHash": "sha256-uNvD7fzO5hNlltNQUAFBPlcEjNG5Gkbhl/ROiX+GZU4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",
|
||||
"rev": "b7ce17b1ebf600a72178f6302c77b6382d09323f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -550,40 +675,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2305": {
|
||||
"locked": {
|
||||
"lastModified": 1695416179,
|
||||
"narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-23.05-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"dir": "lib",
|
||||
"lastModified": 1696019113,
|
||||
"narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"dir": "lib",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
@@ -602,11 +693,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1695318763,
|
||||
"narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=",
|
||||
"lastModified": 1675758091,
|
||||
"narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e12483116b3b51a185a33a272bf351e357ba9a99",
|
||||
"rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -618,20 +709,82 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1698434055,
|
||||
"narHash": "sha256-Phxi5mUKSoL7A0IYUiYtkI9e8NcGaaV5PJEaJApU1Ko=",
|
||||
"lastModified": 1653581809,
|
||||
"narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1a3c95e3b23b3cdb26750621c08cc2f1560cb883",
|
||||
"rev": "83658b28fe638a170a19b8933aa008b30640fbd1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.05",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1654807842,
|
||||
"narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fc909087cc3386955f21b4665731dbdaceefb1d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1665087388,
|
||||
"narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1676726892,
|
||||
"narHash": "sha256-M7OYVR6dKmzmlebIjybFf3l18S2uur8lMyWWnHQooLY=",
|
||||
"owner": "angerman",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "729469087592bdea58b360de59dadf6d58714c42",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "angerman",
|
||||
"ref": "release-22.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nosys": {
|
||||
"locked": {
|
||||
"lastModified": 1667881534,
|
||||
"narHash": "sha256-FhwJ15uPLRsvaxtt/bNuqE/ykMpNAPF0upozFKhTtXM=",
|
||||
"owner": "divnix",
|
||||
"repo": "nosys",
|
||||
"rev": "2d0d5207f6a230e9d0f660903f8db9807b54814f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "nosys",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"old-ghc-nix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -654,21 +807,17 @@
|
||||
"flake-utils": "flake-utils",
|
||||
"hackage": "hackage",
|
||||
"haskellNix": "haskellNix",
|
||||
"mac2ios": "mac2ios",
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"nixpkgs-2305"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
}
|
||||
},
|
||||
"stackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1699834215,
|
||||
"narHash": "sha256-g/JKy0BCvJaxPuYDl3QVc4OY8cFEomgG+hW/eEV470M=",
|
||||
"lastModified": 1677888571,
|
||||
"narHash": "sha256-YkhRNOaN6QVagZo1cfykYV8KqkI8/q6r2F5+jypOma4=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "stackage.nix",
|
||||
"rev": "47aacd04abcce6bad57f43cbbbd133538380248e",
|
||||
"rev": "cb50e6fabdfb2d7e655059039012ad0623f06a27",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -677,18 +826,110 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"std": {
|
||||
"inputs": {
|
||||
"arion": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"blank": "blank",
|
||||
"devshell": "devshell",
|
||||
"dmerge": "dmerge",
|
||||
"flake-utils": "flake-utils_4",
|
||||
"incl": "incl",
|
||||
"makes": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"microvm": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"blank"
|
||||
],
|
||||
"n2c": "n2c",
|
||||
"nixago": "nixago",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nosys": "nosys",
|
||||
"yants": "yants"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"lastModified": 1674526466,
|
||||
"narHash": "sha256-tMTaS0bqLx6VJ+K+ZT6xqsXNpzvSXJTmogkraBGzymg=",
|
||||
"owner": "divnix",
|
||||
"repo": "std",
|
||||
"rev": "516387e3d8d059b50e742a2ff1909ed3c8f82826",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"owner": "divnix",
|
||||
"repo": "std",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tullia": {
|
||||
"inputs": {
|
||||
"nix-nomad": "nix-nomad",
|
||||
"nix2container": "nix2container",
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"std": "std"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1675695930,
|
||||
"narHash": "sha256-B7rEZ/DBUMlK1AcJ9ajnAPPxqXY6zW2SBX+51bZV0Ac=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "tullia",
|
||||
"rev": "621365f2c725608f381b3ad5b57afef389fd4c31",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"repo": "tullia",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"locked": {
|
||||
"lastModified": 1653893745,
|
||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"yants": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"haskellNix",
|
||||
"tullia",
|
||||
"std",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1667096281,
|
||||
"narHash": "sha256-wRRec6ze0gJHmGn6m57/zhz/Kdvp9HS4Nl5fkQ+uIuA=",
|
||||
"owner": "divnix",
|
||||
"repo": "yants",
|
||||
"rev": "d18f356ec25cb94dc9c275870c3a7927a10f8c3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "divnix",
|
||||
"repo": "yants",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
description = "nix flake for simplex-chat";
|
||||
inputs.nixpkgs.url = "github:angerman/nixpkgs/release-22.11";
|
||||
inputs.haskellNix.url = "github:input-output-hk/haskell.nix/armv7a";
|
||||
inputs.nixpkgs.follows = "haskellNix/nixpkgs-2305";
|
||||
inputs.mac2ios.url = "github:zw3rk/mobile-core-tools";
|
||||
inputs.haskellNix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.hackage = {
|
||||
url = "github:input-output-hk/hackage.nix";
|
||||
flake = false;
|
||||
};
|
||||
inputs.haskellNix.inputs.hackage.follows = "hackage";
|
||||
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||
outputs = { self, haskellNix, nixpkgs, flake-utils, mac2ios, ... }:
|
||||
outputs = { self, haskellNix, nixpkgs, flake-utils, ... }:
|
||||
let systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; in
|
||||
flake-utils.lib.eachSystem systems (system:
|
||||
# this android26 overlay makes the pkgsCross.{aarch64-android,armv7a-android-prebuilt} to set stdVer to 26 (Android 8).
|
||||
@@ -30,7 +30,7 @@
|
||||
# `appendOverlays` with a singleton is identical to `extend`.
|
||||
let pkgs = haskellNix.legacyPackages.${system}.appendOverlays [android26]; in
|
||||
let drv' = { extra-modules, pkgs', ... }: pkgs'.haskell-nix.project {
|
||||
compiler-nix-name = "ghc963";
|
||||
compiler-nix-name = "ghc8107";
|
||||
index-state = "2023-12-12T00:00:00Z";
|
||||
# We need this, to specify we want the cabal project.
|
||||
# If the stack.yaml was dropped, this would not be necessary.
|
||||
@@ -40,12 +40,9 @@
|
||||
src = ./.;
|
||||
};
|
||||
sha256map = import ./scripts/nix/sha256map.nix;
|
||||
modules = [
|
||||
({ pkgs, lib, ...}: lib.mkIf (!pkgs.stdenv.hostPlatform.isWindows) {
|
||||
# This patch adds `dl` as an extra-library to direct-sqlciper, which is needed
|
||||
# on pretty much all unix platforms, but then blows up on windows m(
|
||||
modules = [{
|
||||
packages.direct-sqlcipher.patches = [ ./scripts/nix/direct-sqlcipher-2.3.27.patch ];
|
||||
})
|
||||
}
|
||||
({ pkgs,lib, ... }: lib.mkIf (pkgs.stdenv.hostPlatform.isAndroid) {
|
||||
packages.simplex-chat.components.library.ghcOptions = [ "-pie" ];
|
||||
})] ++ extra-modules;
|
||||
@@ -67,9 +64,6 @@
|
||||
}); in
|
||||
let iosPostInstall = bundleName: ''
|
||||
${pkgs.tree}/bin/tree $out
|
||||
mkdir tmp
|
||||
find ./dist -name "libHS*-ghc*.a" -exec cp {} tmp \;
|
||||
(cd tmp; ${pkgs.tree}/bin/tree .; ar x libHS*.a; for o in *.o; do if /usr/bin/otool -xv $o|grep ldadd ; then echo $o; fi; done; cd ..; rm -fR tmp)
|
||||
mkdir -p $out/_pkg
|
||||
# copy over includes, we might want those, but maybe not.
|
||||
# cp -r $out/lib/*/*/include $out/_pkg/
|
||||
@@ -80,18 +74,6 @@
|
||||
find ${pkgs.gmp6.override { withStatic = true; }}/lib -name "*.a" -exec cp {} $out/_pkg \;
|
||||
# There is no static libc
|
||||
${pkgs.tree}/bin/tree $out/_pkg
|
||||
for pkg in $out/_pkg/*.a; do
|
||||
chmod +w $pkg
|
||||
${mac2ios.packages.${system}.mac2ios}/bin/mac2ios $pkg
|
||||
chmod -w $pkg
|
||||
done
|
||||
|
||||
mkdir tmp
|
||||
find $out/_pkg -name "libHS*-ghc*.a" -exec cp {} tmp \;
|
||||
(cd tmp; ${pkgs.tree}/bin/tree .; ar x libHS*.a; for o in *.o; do if /usr/bin/otool -xv $o|grep ldadd ; then echo $o; fi; done; cd ..; rm -fR tmp)
|
||||
|
||||
sha256sum $out/_pkg/*.a
|
||||
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/${bundleName}.zip *)
|
||||
rm -fR $out/_pkg
|
||||
mkdir -p $out/nix-support
|
||||
@@ -137,149 +119,13 @@
|
||||
hardeningDisable = [ "fortify" ];
|
||||
}
|
||||
);in {
|
||||
# STATIC x86_64-linux
|
||||
"${pkgs.pkgsCross.musl64.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.musl64).simplex-chat.components.exes.simplex-chat;
|
||||
# STATIC i686-linux
|
||||
"${pkgs.pkgsCross.musl32.hostPlatform.system}-static:exe:simplex-chat" = (drv' {
|
||||
pkgs' = pkgs.pkgsCross.musl32;
|
||||
extra-modules = [{
|
||||
# 32 bit patches
|
||||
packages.basement.patches = [
|
||||
./scripts/nix/basement-pr-573.patch
|
||||
];
|
||||
packages.memory.patches = [
|
||||
./scripts/nix/memory-pr-99.patch
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.exes.simplex-chat;
|
||||
# WINDOWS x86_64-mingwW64
|
||||
"${pkgs.pkgsCross.mingwW64.hostPlatform.system}:exe:simplex-chat" = (drv' {
|
||||
pkgs' = pkgs.pkgsCross.mingwW64;
|
||||
extra-modules = [{
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
packages.bitvec.flags.simd = false;
|
||||
packages.direct-sqlcipher.patches = [
|
||||
./scripts/nix/direct-sqlcipher-2.3.27-win.patch
|
||||
];
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
(pkgs.pkgsCross.mingwW64.openssl) #.override) # { static = true; enableKTLS = false; })
|
||||
];
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
(pkgs.pkgsCross.mingwW64.openssl) #.override) # { static = true; enableKTLS = false; })
|
||||
];
|
||||
packages.unix-time.postPatch = ''
|
||||
sed -i 's/mingwex//g' unix-time.cabal
|
||||
'';
|
||||
}];
|
||||
}).simplex-chat.components.exes.simplex-chat.override {
|
||||
postInstall = ''
|
||||
set -x
|
||||
${pkgs.tree}/bin/tree $out
|
||||
mkdir -p $out/_pkg
|
||||
cp $out/bin/* $out/_pkg
|
||||
${pkgs.tree}/bin/tree $out/_pkg
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/${pkgs.pkgsCross.mingwW64.hostPlatform.system}-simplex-chat.zip *)
|
||||
rm -fR $out/_pkg
|
||||
mkdir -p $out/nix-support
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
};
|
||||
"${pkgs.pkgsCross.mingwW64.hostPlatform.system}:lib:simplex-chat" = (drv' rec {
|
||||
pkgs' = pkgs.pkgsCross.mingwW64;
|
||||
extra-modules = [{
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
# simd will try to read __cpu_model, which we don't expose
|
||||
# from the rts (yet!).
|
||||
packages.bitvec.flags.simd = false;
|
||||
packages.direct-sqlcipher.patches = [
|
||||
./scripts/nix/direct-sqlcipher-2.3.27-win.patch
|
||||
];
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
pkgs.pkgsCross.mingwW64.openssl
|
||||
];
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
pkgs.pkgsCross.mingwW64.openssl
|
||||
];
|
||||
packages.unix-time.postPatch = ''
|
||||
sed -i 's/mingwex//g' unix-time.cabal
|
||||
'';
|
||||
}];
|
||||
}).simplex-chat.components.library
|
||||
.override (p: {
|
||||
# enableShared = false;
|
||||
setupBuildFlags = p.component.setupBuildFlags ++ map (x: "--ghc-option=${x}") [
|
||||
"-shared"
|
||||
"-threaded"
|
||||
"-o" "libsimplex.dll"
|
||||
# "-optl-lHSrts_thr"
|
||||
"-optl-lffi"
|
||||
# "-optl-static-libgcc"
|
||||
# We can't do -optl-static-libstdc++ with gcc. g++ might
|
||||
# but then we are chaning the compiler altogether.
|
||||
"${./libsimplex.dll.def}"
|
||||
];
|
||||
postInstall = ''
|
||||
set -x
|
||||
function deps() {
|
||||
${pkgs.binutils}/bin/strings "$1" | grep '.\.dll'|grep -v -E 'Winsock|ADVAPI32|dbghelp|KERNEL32|msvcrt|ntdll|ole32|RPCRT4|SHELL32|USER32|WINMM|WS2_32|kernel32|GDI32'|grep -v "$1"
|
||||
}
|
||||
${pkgs.tree}/bin/tree $out
|
||||
mkdir -p $out/_pkg
|
||||
cp libsimplex.dll $out/_pkg
|
||||
cp libsimplex.dll.a $out/_pkg
|
||||
mkdir $out/libs
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.openssl} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.libffi} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.gmp} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.stdenv.cc.cc} -name "*.dll" -exec cp {} $out/libs \;
|
||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.windows.mcfgthreads} -name "*.dll" -exec cp {} $out/libs \;
|
||||
|
||||
pushd $out/_pkg
|
||||
function copyDeps() {
|
||||
for dep in $(deps "$1"); do
|
||||
if [ ! -f "$dep" ]; then
|
||||
if [ ! -f ../libs/"$dep" ]; then
|
||||
echo "WARN: $1 -> $dep not found!"
|
||||
else
|
||||
cp ../libs/"$dep" .
|
||||
copyDeps "$dep"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
copyDeps libsimplex.dll
|
||||
popd
|
||||
${pkgs.tree}/bin/tree $out/_pkg
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-${pkgs.pkgsCross.mingwW64.hostPlatform.system}-libsimplex.zip *)
|
||||
rm -fR $out/_pkg
|
||||
mkdir -p $out/nix-support
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
});
|
||||
"${pkgs.pkgsCross.musl32.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.musl32).simplex-chat.components.exes.simplex-chat;
|
||||
# "${pkgs.pkgsCross.muslpi.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.muslpi).simplex-chat.components.exes.simplex-chat;
|
||||
|
||||
# STATIC aarch64-linux
|
||||
"${pkgs.pkgsCross.aarch64-multiplatform-musl.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.aarch64-multiplatform-musl).simplex-chat.components.exes.simplex-chat;
|
||||
"armv7a-android:lib:support" = (drv android32Pkgs).android-support.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# we won't want -dyamic (see aarch64-android:lib:simplex-chat)
|
||||
enableShared = false;
|
||||
# we also do not want to have any dependencies listed (especially no rts!)
|
||||
enableStatic = false;
|
||||
|
||||
# This used to work with 8.10.7...
|
||||
# setupBuildFlags = p.component.setupBuildFlags ++ map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||
# ... but now with 9.6+
|
||||
# we have to do the -shared thing by hand.
|
||||
postBuild = ''
|
||||
armv7a-unknown-linux-androideabi-ghc -shared -o libsupport.so \
|
||||
-optl-Wl,-u,setLineBuffering \
|
||||
-optl-Wl,-u,pipe_std_to_socket \
|
||||
dist/build/*.a
|
||||
'';
|
||||
|
||||
"armv7a-android:lib:support" = (drv android32Pkgs).android-support.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||
postInstall = ''
|
||||
|
||||
mkdir -p $out/_pkg
|
||||
@@ -292,29 +138,14 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
});
|
||||
# The android-support package is at
|
||||
# https://github.com/simplex-chat/android-support
|
||||
"aarch64-android:lib:support" = (drv androidPkgs).android-support.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# no -dynamic
|
||||
enableShared = false;
|
||||
# but also no -staticlib
|
||||
enableStatic = false;
|
||||
|
||||
# we have to do the -shared thing by hand.
|
||||
postBuild = ''
|
||||
aarch64-unknown-linux-android-ghc -shared -o libsupport.so \
|
||||
-optl-Wl,-u,setLineBuffering \
|
||||
-optl-Wl,-u,pipe_std_to_socket \
|
||||
dist/build/*.a
|
||||
'';
|
||||
|
||||
};
|
||||
"aarch64-android:lib:support" = (drv androidPkgs).android-support.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||
postInstall = ''
|
||||
|
||||
mkdir -p $out/_pkg
|
||||
cp libsupport.so $out/_pkg
|
||||
ls -lah $out/_pkg/*
|
||||
${pkgs.patchelf}/bin/patchelf --remove-needed libunwind.so.1 $out/_pkg/libsupport.so
|
||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-aarch64-android-libsupport.zip *)
|
||||
rm -fR $out/_pkg
|
||||
@@ -323,11 +154,10 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
});
|
||||
};
|
||||
"armv7a-android:lib:simplex-chat" = (drv' {
|
||||
pkgs' = android32Pkgs;
|
||||
extra-modules = [{
|
||||
packages.text.flags.simdutf = false;
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
||||
@@ -338,56 +168,13 @@
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
||||
];
|
||||
# 32 bit patches
|
||||
packages.basement.patches = [
|
||||
./scripts/nix/basement-pr-573.patch
|
||||
];
|
||||
packages.memory.patches = [
|
||||
./scripts/nix/memory-pr-99.patch
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# we want -shared, but not -dyanmic, hence `enableShared = false`.
|
||||
enableShared = false;
|
||||
# we _do_ want rts, and other libs. Hence `enableStatic = true`.
|
||||
enableStatic = true;
|
||||
}).simplex-chat.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
# for android we build a shared library, passing these arguments is a bit tricky, as
|
||||
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
||||
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
||||
setupBuildFlags = p.component.setupBuildFlags
|
||||
# flags to tell GHC we want to produce a -shared object, and we want to also link
|
||||
# - the ffi library (ffi)
|
||||
++ map (x: "--ghc-option=${x}") [
|
||||
"-shared" "-o" "libsimplex.so"
|
||||
"-threaded"
|
||||
# "-debug"
|
||||
"-optl-lffi"
|
||||
]
|
||||
# This is fairly idiotic. LLD will strip out foreign exported
|
||||
# symbols (a GHC bug? Codegen bug?). So we need to pass `-u <sym>`
|
||||
# to ensure they stay in the produced library. Having them
|
||||
# _undefined_ and _lazy_ (lld will tell with -y <sym> that the
|
||||
# symbol is lazy), makes them _defined_. m(
|
||||
++ map (sym: "--ghc-option=-optl-Wl,-u,${sym}") [
|
||||
"chat_close_store"
|
||||
"chat_decrypt_file"
|
||||
"chat_decrypt_media"
|
||||
"chat_encrypt_file"
|
||||
"chat_encrypt_media"
|
||||
"chat_migrate_init"
|
||||
"chat_parse_markdown"
|
||||
"chat_parse_server"
|
||||
"chat_password_hash"
|
||||
"chat_read_file"
|
||||
"chat_recv_msg"
|
||||
"chat_recv_msg_wait"
|
||||
"chat_send_cmd"
|
||||
"chat_send_remote_cmd"
|
||||
"chat_valid_name"
|
||||
"chat_json_length"
|
||||
"chat_write_file"
|
||||
];
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsimplex.so" "-optl-lHSrts_thr" "-optl-lffi"];
|
||||
postInstall = ''
|
||||
set -x
|
||||
${pkgs.tree}/bin/tree $out
|
||||
@@ -431,11 +218,10 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
});
|
||||
};
|
||||
"aarch64-android:lib:simplex-chat" = (drv' {
|
||||
pkgs' = androidPkgs;
|
||||
extra-modules = [{
|
||||
packages.text.flags.simdutf = false;
|
||||
packages.direct-sqlcipher.flags.openssl = true;
|
||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||
(androidPkgs.openssl.override { static = true; })
|
||||
@@ -447,50 +233,12 @@
|
||||
(androidPkgs.openssl.override { static = true; })
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.library.override (p: {
|
||||
smallAddressSpace = true;
|
||||
# we do not want a dynamically linked object, even though we _do_
|
||||
# want to produce a _shared_ object. But `shared` implied -dyanmic
|
||||
# with cabal, so we disable and pass `-shared` explicitly.
|
||||
enableShared = false;
|
||||
# we do want static (e.g. pass all dependencies in, so we get -staticlib)
|
||||
enableStatic = true;
|
||||
}).simplex-chat.components.library.override {
|
||||
smallAddressSpace = true; enableShared = false;
|
||||
# for android we build a shared library, passing these arguments is a bit tricky, as
|
||||
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
||||
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
||||
setupBuildFlags = p.component.setupBuildFlags
|
||||
# flags to tell GHC we want to produce a -shared object, and we want to also link
|
||||
# - the ffi library (ffi)
|
||||
++ map (x: "--ghc-option=${x}") [
|
||||
"-shared" "-o" "libsimplex.so"
|
||||
"-threaded"
|
||||
# "-debug"
|
||||
"-optl-lffi"
|
||||
]
|
||||
# This is fairly idiotic. LLD will strip out foreign exported
|
||||
# symbols (a GHC bug? Codegen bug?). So we need to pass `-u <sym>`
|
||||
# to ensure they stay in the produced library. Having them
|
||||
# _undefined_ and _lazy_ (lld will tell with -y <sym> that the
|
||||
# symbol is lazy), makes them _defined_. m(
|
||||
++ map (sym: "--ghc-option=-optl-Wl,-u,${sym}") [
|
||||
"chat_close_store"
|
||||
"chat_decrypt_file"
|
||||
"chat_decrypt_media"
|
||||
"chat_encrypt_file"
|
||||
"chat_encrypt_media"
|
||||
"chat_migrate_init"
|
||||
"chat_parse_markdown"
|
||||
"chat_parse_server"
|
||||
"chat_password_hash"
|
||||
"chat_read_file"
|
||||
"chat_recv_msg"
|
||||
"chat_recv_msg_wait"
|
||||
"chat_send_cmd"
|
||||
"chat_send_remote_cmd"
|
||||
"chat_valid_name"
|
||||
"chat_json_length"
|
||||
"chat_write_file"
|
||||
];
|
||||
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsimplex.so" "-optl-lHSrts_thr" "-optl-lffi"];
|
||||
postInstall = ''
|
||||
set -x
|
||||
${pkgs.tree}/bin/tree $out
|
||||
@@ -534,7 +282,7 @@
|
||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||
> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
# builds for iOS and iOS simulator
|
||||
@@ -548,8 +296,7 @@
|
||||
packages.direct-sqlcipher.flags.commoncrypto = true;
|
||||
packages.entropy.flags.DoNotGetEntropy = true;
|
||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||
# TODO: have a cross override for iOS, that sets this.
|
||||
((pkgs.openssl.override { static = true; }).overrideDerivation (old: { CFLAGS = "-mcpu=apple-a7 -march=armv8-a+norcpc" ;}))
|
||||
(pkgs.openssl.override { static = true; })
|
||||
];
|
||||
}];
|
||||
}).simplex-chat.components.library.override (
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
name: simplex-chat
|
||||
version: 6.0.0.5
|
||||
version: 6.0.0.7
|
||||
#synopsis:
|
||||
#description:
|
||||
homepage: https://github.com/simplex-chat/simplex-chat#readme
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
security create-keychain -p "" simplex.keychain
|
||||
security set-keychain-settings -u simplex.keychain
|
||||
security add-certificates -k simplex.keychain "Developer ID Application: SimpleX Chat Ltd (5NN7GUYB6T).cer"
|
||||
security add-certificates -k simplex.keychain "Developer ID Certification Authority.cer"
|
||||
# Private key with access from any app
|
||||
security import "SimpleX Chat.p12" -P "" -k simplex.keychain -A
|
||||
# Public key
|
||||
security import "SimpleX Chat.pem" -k simplex.keychain
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
trap "rm apps/multiplatform/local.properties 2> /dev/null || true; rm local.properties 2> /dev/null || true; rm /tmp/simplex.keychain" EXIT
|
||||
trap "rm apps/multiplatform/local.properties || true; rm local.properties || true; rm /tmp/simplex.keychain || true" EXIT
|
||||
echo "desktop.mac.signing.identity=Developer ID Application: SimpleX Chat Ltd (5NN7GUYB6T)" >> apps/multiplatform/local.properties
|
||||
echo "desktop.mac.signing.keychain=/tmp/simplex.keychain" >> apps/multiplatform/local.properties
|
||||
echo "desktop.mac.notarization.apple_id=$APPLE_SIMPLEX_NOTARIZATION_APPLE_ID" >> apps/multiplatform/local.properties
|
||||
@@ -10,10 +10,6 @@ echo "desktop.mac.notarization.password=$APPLE_SIMPLEX_NOTARIZATION_PASSWORD" >>
|
||||
echo "desktop.mac.notarization.team_id=5NN7GUYB6T" >> apps/multiplatform/local.properties
|
||||
echo "$APPLE_SIMPLEX_SIGNING_KEYCHAIN" | base64 --decode -o /tmp/simplex.keychain
|
||||
|
||||
security unlock-keychain -p "" /tmp/simplex.keychain
|
||||
# Adding keychain to the list of keychains.
|
||||
# Otherwise, it can find cert but exits while signing with "error: The specified item could not be found in the keychain."
|
||||
security list-keychains -s `security list-keychains | xargs` /tmp/simplex.keychain
|
||||
scripts/desktop/build-lib-mac.sh
|
||||
cd apps/multiplatform
|
||||
./gradlew packageDmg
|
||||
@@ -8,7 +8,7 @@ function readlink() {
|
||||
|
||||
OS=linux
|
||||
ARCH=${1:-`uname -a | rev | cut -d' ' -f2 | rev`}
|
||||
GHC_VERSION=9.6.3
|
||||
GHC_VERSION=8.10.7
|
||||
|
||||
if [ "$ARCH" == "aarch64" ]; then
|
||||
COMPOSE_ARCH=arm64
|
||||
@@ -25,7 +25,7 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc
|
||||
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
||||
|
||||
rm -rf $BUILD_DIR
|
||||
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -flink-rts -threaded'
|
||||
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN' --ghc-options="-optl-L$(ghc --print-libdir)/rts -optl-Wl,--as-needed,-lHSrts_thr-ghc$GHC_VERSION"
|
||||
cd $BUILD_DIR/build
|
||||
#patchelf --add-needed libHSrts_thr-ghc${GHC_VERSION}.so libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
||||
#patchelf --add-rpath '$ORIGIN' libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
||||
|
||||
@@ -5,14 +5,13 @@ set -e
|
||||
OS=mac
|
||||
ARCH="${1:-`uname -a | rev | cut -d' ' -f1 | rev`}"
|
||||
COMPOSE_ARCH=$ARCH
|
||||
GHC_VERSION=9.6.3
|
||||
GHC_VERSION=8.10.7
|
||||
|
||||
if [ "$ARCH" == "arm64" ]; then
|
||||
ARCH=aarch64
|
||||
else
|
||||
COMPOSE_ARCH=x64
|
||||
fi
|
||||
|
||||
LIB_EXT=dylib
|
||||
LIB=libHSsimplex-chat-*-inplace-ghc*.$LIB_EXT
|
||||
GHC_LIBS_DIR=$(ghc --print-libdir)
|
||||
@@ -24,26 +23,13 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc
|
||||
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
||||
|
||||
rm -rf $BUILD_DIR
|
||||
cabal build lib:simplex-chat lib:simplex-chat --ghc-options="-optl-Wl,-rpath,@loader_path -optl-Wl,-L$GHC_LIBS_DIR/$ARCH-osx-ghc-$GHC_VERSION -optl-lHSrts_thr-ghc$GHC_VERSION -optl-lffi"
|
||||
cabal build lib:simplex-chat lib:simplex-chat --ghc-options="-optl-Wl,-rpath,@loader_path -optl-Wl,-L$GHC_LIBS_DIR/rts -optl-lHSrts_thr-ghc8.10.7 -optl-lffi"
|
||||
|
||||
cd $BUILD_DIR/build
|
||||
mkdir deps 2> /dev/null || true
|
||||
|
||||
# It's not included by default for some reason. Compiled lib tries to find system one but it's not always available
|
||||
#cp $GHC_LIBS_DIR/libffi.dylib ./deps
|
||||
(
|
||||
BUILD=$PWD
|
||||
cp /tmp/libffi-3.4.4/*-apple-darwin*/.libs/libffi.dylib $BUILD/deps || \
|
||||
( \
|
||||
cd /tmp && \
|
||||
curl --tlsv1.2 "https://gitlab.haskell.org/ghc/libffi-tarballs/-/raw/libffi-3.4.4/libffi-3.4.4.tar.gz?inline=false" -o libffi.tar.gz && \
|
||||
tar -xzvf libffi.tar.gz && \
|
||||
cd "libffi-3.4.4" && \
|
||||
./configure && \
|
||||
make && \
|
||||
cp *-apple-darwin*/.libs/libffi.dylib $BUILD/deps \
|
||||
)
|
||||
)
|
||||
cp $GHC_LIBS_DIR/rts/libffi.dylib ./deps
|
||||
|
||||
DYLIBS=`otool -L $LIB | grep @rpath | tail -n +2 | cut -d' ' -f 1 | cut -d'/' -f2`
|
||||
RPATHS=`otool -l $LIB | grep "path "| cut -d' ' -f11`
|
||||
@@ -84,8 +70,6 @@ function copy_deps() {
|
||||
}
|
||||
|
||||
copy_deps $LIB
|
||||
# Special case
|
||||
cp $(ghc --print-libdir)/$ARCH-osx-ghc-$GHC_VERSION/libHSghc-boot-th-$GHC_VERSION-ghc$GHC_VERSION.dylib deps
|
||||
rm deps/`basename $LIB`
|
||||
|
||||
cd -
|
||||
|
||||
@@ -1,242 +0,0 @@
|
||||
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||
From: Sylvain Henry <sylvain@haskus.fr>
|
||||
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||
Subject: [PATCH] Fix build on 32-bit architectures
|
||||
|
||||
---
|
||||
Basement/Bits.hs | 4 ++++
|
||||
Basement/From.hs | 24 -----------------------
|
||||
Basement/Numerical/Additive.hs | 4 ++++
|
||||
Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||
Basement/PrimType.hs | 6 +++++-
|
||||
Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/Basement/Bits.hs b/Basement/Bits.hs
|
||||
index 7eeea0f5..24520ed7 100644
|
||||
--- a/Basement/Bits.hs
|
||||
+++ b/Basement/Bits.hs
|
||||
@@ -54,8 +54,12 @@ import GHC.Int
|
||||
import Basement.Compat.Primitive
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
-- | operation over finite bits
|
||||
class FiniteBitsOps bits where
|
||||
diff --git a/Basement/From.hs b/Basement/From.hs
|
||||
index 7bbe141c..80014b3e 100644
|
||||
--- a/Basement/From.hs
|
||||
+++ b/Basement/From.hs
|
||||
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||
|
||||
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||
-#endif
|
||||
instance From (Zn64 n) Word64 where
|
||||
from = unZn64
|
||||
instance From (Zn64 n) Word128 where
|
||||
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||
from = from . unZn64
|
||||
|
||||
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||
-#if __GLASGOW_HASKELL__ >= 904
|
||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||
-#else
|
||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||
-#endif
|
||||
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||
from = naturalToWord64 . unZn
|
||||
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||
diff --git a/Basement/Numerical/Additive.hs b/Basement/Numerical/Additive.hs
|
||||
index d0dfb973..8ab65aa0 100644
|
||||
--- a/Basement/Numerical/Additive.hs
|
||||
+++ b/Basement/Numerical/Additive.hs
|
||||
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||
import qualified Basement.Types.Word256 as Word256
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
-- | Represent class of things that can be added together,
|
||||
-- contains a neutral element and is commutative.
|
||||
diff --git a/Basement/Numerical/Conversion.hs b/Basement/Numerical/Conversion.hs
|
||||
index db502c07..fddc8232 100644
|
||||
--- a/Basement/Numerical/Conversion.hs
|
||||
+++ b/Basement/Numerical/Conversion.hs
|
||||
@@ -26,8 +26,12 @@ import GHC.Word
|
||||
import Basement.Compat.Primitive
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
intToInt64 :: Int -> Int64
|
||||
#if WORD_SIZE_IN_BITS == 64
|
||||
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||
#endif
|
||||
|
||||
#if WORD_SIZE_IN_BITS == 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+word64ToWord# :: Word64# -> Word#
|
||||
+word64ToWord# i = word64ToWord# i
|
||||
+#else
|
||||
word64ToWord# :: Word# -> Word#
|
||||
word64ToWord# i = i
|
||||
+#endif
|
||||
{-# INLINE word64ToWord# #-}
|
||||
#endif
|
||||
|
||||
+#if WORD_SIZE_IN_BITS < 64
|
||||
+word64ToWord32# :: Word64# -> Word32#
|
||||
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||
+{-# INLINE word64ToWord32# #-}
|
||||
+#endif
|
||||
+
|
||||
-- | 2 Word32s
|
||||
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||
{-# UNPACK #-} !Word32
|
||||
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||
#endif
|
||||
#else
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+word64ToWord32s :: Word64 -> Word32x2
|
||||
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||
+#else
|
||||
word64ToWord32s :: Word64 -> Word32x2
|
||||
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
wordToChar :: Word -> Char
|
||||
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||
diff --git a/Basement/PrimType.hs b/Basement/PrimType.hs
|
||||
index f8ca2926..a888ec91 100644
|
||||
--- a/Basement/PrimType.hs
|
||||
+++ b/Basement/PrimType.hs
|
||||
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||
import qualified Prelude (quot)
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
-import GHC.IntWord64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
+import GHC.IntWord64
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||
diff --git a/Basement/Types/OffsetSize.hs b/Basement/Types/OffsetSize.hs
|
||||
index cd944927..1ea80dad 100644
|
||||
--- a/Basement/Types/OffsetSize.hs
|
||||
+++ b/Basement/Types/OffsetSize.hs
|
||||
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||
import qualified Prelude
|
||||
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+import GHC.Exts
|
||||
+#else
|
||||
import GHC.IntWord64
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
-- | File size in bytes
|
||||
newtype FileSize = FileSize Word64
|
||||
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||
|
||||
csizeOfSize :: CountOf Word8 -> CSize
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||
+#else
|
||||
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||
-
|
||||
#else
|
||||
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||
-
|
||||
#endif
|
||||
#endif
|
||||
|
||||
csizeOfOffset :: Offset8 -> CSize
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||
+#else
|
||||
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||
+#else
|
||||
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||
|
||||
sizeOfCSize :: CSize -> CountOf Word8
|
||||
#if WORD_SIZE_IN_BITS < 64
|
||||
+#if __GLASGOW_HASKELL__ >= 904
|
||||
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||
+#else
|
||||
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||
+#endif
|
||||
#else
|
||||
#if __GLASGOW_HASKELL__ >= 904
|
||||
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
||||
@@ -1,12 +0,0 @@
|
||||
diff --git a/direct-sqlcipher.cabal b/direct-sqlcipher.cabal
|
||||
index 728ba3e..c63745e 100644
|
||||
--- a/direct-sqlcipher.cabal
|
||||
+++ b/direct-sqlcipher.cabal
|
||||
@@ -84,6 +84,8 @@ library
|
||||
cc-options: -DSQLITE_TEMP_STORE=2
|
||||
-DSQLITE_HAS_CODEC
|
||||
|
||||
+ extra-libraries: ws2_32
|
||||
+
|
||||
if !os(windows) && !os(android)
|
||||
extra-libraries: pthread
|
||||
@@ -1,36 +0,0 @@
|
||||
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||
From: sternenseemann <sternenseemann@systemli.org>
|
||||
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||
|
||||
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||
the ready made solution.
|
||||
|
||||
Closes #98, as it should be the better solution.
|
||||
---
|
||||
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||
index b9eef8a..a134c88 100644
|
||||
--- a/Data/Memory/Internal/CompatPrim64.hs
|
||||
+++ b/Data/Memory/Internal/CompatPrim64.hs
|
||||
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||
w64# w _ _ = w
|
||||
|
||||
#elif WORD_SIZE_IN_BITS == 32
|
||||
+#if __GLASGOW_HASKELL__ < 904
|
||||
import GHC.IntWord64
|
||||
import GHC.Prim (Word#)
|
||||
|
||||
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||
let !ai = word64ToInt64# a
|
||||
!bi = word64ToInt64# b
|
||||
in int64ToWord64# (timesInt64# ai bi)
|
||||
+#else
|
||||
+import GHC.Prim
|
||||
+#endif
|
||||
|
||||
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||
w64# _ hw lw =
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"https://github.com/simplex-chat/simplexmq.git"."7d8457263bb77c6d9cb1cd102c3c70177e75327f" = "1n95mp2qmx9nj25zzqibkgx7s23shw7c26mf42bw661aprx4v24m";
|
||||
"https://github.com/simplex-chat/simplexmq.git"."0dd52dc69f197a86f2f03e47b339bf3a94a596a3" = "1dzfpk9bq8y885i2z419k79f2nyagrqkqh8rw3gzmf1hy5w3fbjs";
|
||||
"https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38";
|
||||
"https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d";
|
||||
"https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl";
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ cabal-version: 1.12
|
||||
-- see: https://github.com/sol/hpack
|
||||
|
||||
name: simplex-chat
|
||||
version: 6.0.0.5
|
||||
version: 6.0.0.7
|
||||
category: Web, System, Services, Cryptography
|
||||
homepage: https://github.com/simplex-chat/simplex-chat#readme
|
||||
author: simplex.chat
|
||||
|
||||
+19
-15
@@ -94,7 +94,7 @@ import Simplex.FileTransfer.Protocol (FileParty (..), FilePartyI)
|
||||
import qualified Simplex.FileTransfer.Transport as XFTP
|
||||
import Simplex.FileTransfer.Types (FileErrorType (..), RcvFileId, SndFileId)
|
||||
import Simplex.Messaging.Agent as Agent
|
||||
import Simplex.Messaging.Agent.Client (SubInfo (..), agentClientStore, getAgentQueuesInfo, getAgentWorkersDetails, getAgentWorkersSummary, getNetworkConfig', ipAddressProtected, withLockMap)
|
||||
import Simplex.Messaging.Agent.Client (SubInfo (..), agentClientStore, getAgentQueuesInfo, getAgentWorkersDetails, getAgentWorkersSummary, getFastNetworkConfig, ipAddressProtected, withLockMap)
|
||||
import Simplex.Messaging.Agent.Env.SQLite (AgentConfig (..), InitialAgentServers (..), ServerCfg (..), createAgentStore, defaultAgentConfig, enabledServerCfg, presetServerCfg)
|
||||
import Simplex.Messaging.Agent.Lock (withLock)
|
||||
import Simplex.Messaging.Agent.Protocol
|
||||
@@ -249,25 +249,25 @@ newChatController
|
||||
eventSeq <- newTVarIO 0
|
||||
inputQ <- newTBQueueIO tbqSize
|
||||
outputQ <- newTBQueueIO tbqSize
|
||||
connNetworkStatuses <- atomically TM.empty
|
||||
connNetworkStatuses <- TM.emptyIO
|
||||
subscriptionMode <- newTVarIO SMSubscribe
|
||||
chatLock <- newEmptyTMVarIO
|
||||
entityLocks <- atomically TM.empty
|
||||
entityLocks <- TM.emptyIO
|
||||
sndFiles <- newTVarIO M.empty
|
||||
rcvFiles <- newTVarIO M.empty
|
||||
currentCalls <- atomically TM.empty
|
||||
currentCalls <- TM.emptyIO
|
||||
localDeviceName <- newTVarIO $ fromMaybe deviceNameForRemote deviceName
|
||||
multicastSubscribers <- newTMVarIO 0
|
||||
remoteSessionSeq <- newTVarIO 0
|
||||
remoteHostSessions <- atomically TM.empty
|
||||
remoteHostSessions <- TM.emptyIO
|
||||
remoteHostsFolder <- newTVarIO Nothing
|
||||
remoteCtrlSession <- newTVarIO Nothing
|
||||
filesFolder <- newTVarIO optFilesFolder
|
||||
chatStoreChanged <- newTVarIO False
|
||||
expireCIThreads <- newTVarIO M.empty
|
||||
expireCIFlags <- newTVarIO M.empty
|
||||
expireCIThreads <- TM.emptyIO
|
||||
expireCIFlags <- TM.emptyIO
|
||||
cleanupManagerAsync <- newTVarIO Nothing
|
||||
timedItemThreads <- atomically TM.empty
|
||||
timedItemThreads <- TM.emptyIO
|
||||
chatActivated <- newTVarIO True
|
||||
showLiveItems <- newTVarIO False
|
||||
encryptLocalFiles <- newTVarIO False
|
||||
@@ -3329,7 +3329,7 @@ receiveViaCompleteFD user fileId RcvFileDescr {fileDescrText, fileDescrComplete}
|
||||
throwChatError $ CEFileNotApproved fileId unknownSrvs
|
||||
|
||||
getNetworkConfig :: CM' NetworkConfig
|
||||
getNetworkConfig = withAgent' $ liftIO . getNetworkConfig'
|
||||
getNetworkConfig = withAgent' $ liftIO . getFastNetworkConfig
|
||||
|
||||
resetRcvCIFileStatus :: User -> FileTransferId -> CIFileStatus 'MDRcv -> CM (Maybe AChatItem)
|
||||
resetRcvCIFileStatus user fileId ciFileStatus = do
|
||||
@@ -4267,7 +4267,8 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
withStore' $ \db -> resetContactConnInitiated db user conn'
|
||||
forM_ viaUserContactLink $ \userContactLinkId -> do
|
||||
ucl <- withStore $ \db -> getUserContactLinkById db userId userContactLinkId
|
||||
let (_, groupId_, gLinkMemRole) = ucl
|
||||
let (UserContactLink {autoAccept}, groupId_, gLinkMemRole) = ucl
|
||||
when (connChatVersion < batchSend2Version) $ sendAutoReply ct' autoAccept
|
||||
forM_ groupId_ $ \groupId -> do
|
||||
groupInfo <- withStore $ \db -> getGroupInfo db vr user groupId
|
||||
subMode <- chatReadVar subscriptionMode
|
||||
@@ -4330,11 +4331,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
forM_ viaUserContactLink $ \userContactLinkId -> do
|
||||
ucl <- withStore $ \db -> getUserContactLinkById db userId userContactLinkId
|
||||
let (UserContactLink {autoAccept}, _, _) = ucl
|
||||
forM_ autoAccept $ \(AutoAccept {autoReply = mc_}) ->
|
||||
forM_ mc_ $ \mc -> do
|
||||
(msg, _) <- sendDirectContactMessage user ct (XMsgNew $ MCSimple (extMsgContent mc Nothing))
|
||||
ci <- saveSndChatItem user (CDDirectSnd ct) msg (CISndMsgContent mc)
|
||||
toView $ CRNewChatItem user (AChatItem SCTDirect SMDSnd (DirectChat ct) ci)
|
||||
when (connChatVersion >= batchSend2Version) $ sendAutoReply ct autoAccept
|
||||
QCONT ->
|
||||
void $ continueSending connEntity conn
|
||||
MWARN msgId err -> do
|
||||
@@ -4353,6 +4350,13 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
when (corrId /= "") $ withCompletedCommand conn agentMsg $ \_cmdData -> pure ()
|
||||
-- TODO add debugging output
|
||||
_ -> pure ()
|
||||
where
|
||||
sendAutoReply ct = \case
|
||||
Just AutoAccept {autoReply = Just mc} -> do
|
||||
(msg, _) <- sendDirectContactMessage user ct (XMsgNew $ MCSimple (extMsgContent mc Nothing))
|
||||
ci <- saveSndChatItem user (CDDirectSnd ct) msg (CISndMsgContent mc)
|
||||
toView $ CRNewChatItem user (AChatItem SCTDirect SMDSnd (DirectChat ct) ci)
|
||||
_ -> pure ()
|
||||
|
||||
processGroupMessage :: AEvent e -> ConnectionEntity -> Connection -> GroupInfo -> GroupMember -> CM ()
|
||||
processGroupMessage agentMsg connEntity conn@Connection {connId, connectionCode} gInfo@GroupInfo {groupId, groupProfile, membership, chatSettings} m = case agentMsg of
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{-# LANGUAGE NumericUnderscores #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE PatternSynonyms #-}
|
||||
{-# LANGUAGE PostfixOperators #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
@@ -13,13 +12,12 @@ import Control.Concurrent (threadDelay)
|
||||
import Control.Concurrent.Async (concurrently_)
|
||||
import Control.Monad (forM_, void, when)
|
||||
import qualified Data.ByteString.Char8 as B
|
||||
import Data.List (isInfixOf)
|
||||
import Data.List (intercalate, isInfixOf)
|
||||
import qualified Data.Text as T
|
||||
import Simplex.Chat.Controller (ChatConfig (..))
|
||||
import Simplex.Chat.Options
|
||||
import Simplex.Chat.Protocol (supportedChatVRange)
|
||||
import Simplex.Chat.Store (agentStoreFile, chatStoreFile)
|
||||
import Data.List (intercalate)
|
||||
import Simplex.Chat.Types (VersionRangeChat)
|
||||
import Simplex.Chat.Types.Shared (GroupMemberRole (..))
|
||||
import Simplex.Messaging.Agent.Env.SQLite
|
||||
|
||||
Reference in New Issue
Block a user