diff --git a/apps/ios/Shared/Views/Chat/ChatView.swift b/apps/ios/Shared/Views/Chat/ChatView.swift index 3301f96792..ada2e8c459 100644 --- a/apps/ios/Shared/Views/Chat/ChatView.swift +++ b/apps/ios/Shared/Views/Chat/ChatView.swift @@ -335,6 +335,13 @@ struct ChatView: View { if let openAround = chatModel.openAroundItemId, let index = mergedItems.boxedValue.indexInParentItems[openAround] { scrollView.scrollToItem(index) + } else if let viewedIdx = mergedItems.boxedValue.items.firstIndex(where: { !$0.hasUnread() }) { + // scroll to first unread after last viewed item (items reversed: 0 = newest) + if viewedIdx > 0 { + scrollView.scrollToItem(viewedIdx - 1) + } else { + scrollView.scrollToBottom() + } } else if let unreadIndex = mergedItems.boxedValue.items.lastIndex(where: { $0.hasUnread() }) { scrollView.scrollToItem(unreadIndex) } else { @@ -518,32 +525,51 @@ struct ChatView: View { case let .direct(contact): HStack { let callsPrefEnabled = contact.mergedPreferences.calls.enabled.forUser + let canStartCall = callsPrefEnabled && contact.ready && contact.active && chatModel.activeCall == nil if let call = chatModel.activeCall, call.contact.id == cInfo.id { endCallButton(call) - } else { - contentFilterMenu(withLabel: false) - } - Menu { - if callsPrefEnabled && chatModel.activeCall == nil { + } else if canStartCall { + // Call button always in toolbar; tap opens Audio/Video submenu + Menu { Button { CallController.shared.startCall(contact, .audio) } label: { Label("Audio call", systemImage: "phone") } - .disabled(!contact.ready || !contact.active) Button { CallController.shared.startCall(contact, .video) } label: { Label("Video call", systemImage: "video") } - .disabled(!contact.ready || !contact.active) - } - if let call = chatModel.activeCall, call.contact.id == cInfo.id { - contentFilterMenu(withLabel: true) + } label: { + Image(systemName: "phone") } + } else if chatModel.activeCall == nil { + // Calls unavailable: show filter button in place of call button + contentFilterMenu(withLabel: false) + } + Menu { searchButton() ToggleNtfsButton(chat: chat) .disabled(!contact.ready || !contact.active) + // Filter options in menu when call button is shown (or during any active call) + if !availableContent.isEmpty && (canStartCall || chatModel.activeCall != nil) { + Divider() + ForEach(availableContent, id: \.self) { type in + Button { + setContentFilter(type) + } label: { + Label(type.label, systemImage: contentFilter == type ? type.iconFilled : type.icon) + } + } + if contentFilter != nil { + Button { + closeSearch() + } label: { + Label("All messages", systemImage: "bubble.left.and.text.bubble.right") + } + } + } } label: { Image(systemName: "ellipsis") } @@ -576,7 +602,26 @@ struct ChatView: View { } case .local: HStack { - contentFilterMenu(withLabel: false) + if !availableContent.isEmpty { + Menu { + ForEach(availableContent, id: \.self) { type in + Button { + setContentFilter(type) + } label: { + Label(type.label, systemImage: contentFilter == type ? type.iconFilled : type.icon) + } + } + if contentFilter != nil { + Button { + closeSearch() + } label: { + Label("All messages", systemImage: "bubble.left.and.text.bubble.right") + } + } + } label: { + Image(systemName: "ellipsis") + } + } searchButton() } default: @@ -869,6 +914,7 @@ struct ChatView: View { selectedChatItems: $selectedChatItems, forwardedChatItems: $forwardedChatItems, searchText: $searchText, + contentFilter: $contentFilter, closeKeyboardAndRun: closeKeyboardAndRun ) } @@ -1639,12 +1685,14 @@ struct ChatView: View { @Binding var forwardedChatItems: [ChatItem] @Binding var searchText: String + @Binding var contentFilter: ContentFilter? var closeKeyboardAndRun: (@escaping () -> Void) -> Void @State private var allowMenu: Bool = true @State private var markedRead = false @State private var markReadTask: Task? = nil @State private var actionSheet: SomeActionSheet? = nil + @State private var swipeOffset: CGFloat = 0 var revealed: Bool { revealedItems.contains(chatItem.id) } @@ -1803,7 +1851,7 @@ struct ChatView: View { private var searchIsNotBlank: Bool { get { - searchText.count > 0 && !searchText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty + (searchText.count > 0 && !searchText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty) || contentFilter != nil } } @@ -2053,33 +2101,69 @@ struct ChatView: View { func chatItemWithMenu(_ ci: ChatItem, _ range: ClosedRange?, _ maxWidth: CGFloat, _ itemSeparation: ItemSeparation) -> some View { let alignment: Alignment = ci.chatDir.sent ? .trailing : .leading - return VStack(alignment: alignment.horizontal, spacing: 3) { - HStack { - if ci.chatDir.sent { - goToItemButton(true) + let live = composeState.liveMessage != nil + let canReply = ci.meta.itemDeleted == nil && !ci.isLiveDummy && !live && !ci.localNote && selectedChatItems == nil + return ZStack(alignment: .trailing) { + Image(systemName: "arrowshape.turn.up.left") + .font(.system(size: 18)) + .foregroundColor(.secondary) + .opacity(min(1, -swipeOffset / 30)) + .offset(x: swipeOffset + 40) + VStack(alignment: alignment.horizontal, spacing: 3) { + HStack { + if ci.chatDir.sent { + goToItemButton(true) + } + ChatItemView( + chat: chat, + im: im, + chatItem: ci, + scrollToItem: scrollToItem, + scrollToItemId: $scrollToItemId, + maxWidth: maxWidth, + allowMenu: $allowMenu + ) + .environment(\.revealed, revealed) + .environment(\.showTimestamp, itemSeparation.timestamp) + .modifier(ChatItemClipped(ci, tailVisible: itemSeparation.largeGap && (ci.meta.itemDeleted == nil || revealed))) + .contextMenu { menu(ci, range, live: live) } + .accessibilityLabel("") + if !ci.chatDir.sent { + goToItemButton(false) + } } - ChatItemView( - chat: chat, - im: im, - chatItem: ci, - scrollToItem: scrollToItem, - scrollToItemId: $scrollToItemId, - maxWidth: maxWidth, - allowMenu: $allowMenu - ) - .environment(\.revealed, revealed) - .environment(\.showTimestamp, itemSeparation.timestamp) - .modifier(ChatItemClipped(ci, tailVisible: itemSeparation.largeGap && (ci.meta.itemDeleted == nil || revealed))) - .contextMenu { menu(ci, range, live: composeState.liveMessage != nil) } - .accessibilityLabel("") - if !ci.chatDir.sent { - goToItemButton(false) + if ci.content.msgContent != nil && (ci.meta.itemDeleted == nil || revealed) && ci.reactions.count > 0 { + chatItemReactions(ci) + .padding(.bottom, 4) } } - if ci.content.msgContent != nil && (ci.meta.itemDeleted == nil || revealed) && ci.reactions.count > 0 { - chatItemReactions(ci) - .padding(.bottom, 4) - } + .offset(x: swipeOffset) + .contentShape(Rectangle()) + .simultaneousGesture( + DragGesture(minimumDistance: 10) + .onChanged { value in + guard canReply else { return } + let x = value.translation.width + if x < 0 { + swipeOffset = max(x * 0.63, -56) + } + } + .onEnded { _ in + if swipeOffset < -42 { + withAnimation { + if composeState.editing { + composeState = ComposeState(contextItem: .quotedItem(chatItem: ci)) + } else { + composeState = composeState.copy(contextItem: .quotedItem(chatItem: ci)) + } + } + UIImpactFeedbackGenerator(style: .medium).impactOccurred() + } + withAnimation(.spring(response: 0.25)) { + swipeOffset = 0 + } + } + ) } .confirmationDialog("Delete message?", isPresented: $showDeleteMessage, titleVisibility: .visible) { Button("Delete for me", role: .destructive) { diff --git a/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff b/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff index 3c21db94b6..d1bb5fe716 100644 --- a/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff +++ b/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff @@ -2021,6 +2021,10 @@ This is your own one-time link! Грешка при свързване (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4195,6 +4199,10 @@ Error: %2$@ Ако въведете kодa за достъп за самоунищожение, докато отваряте приложението: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Ако трябва да използвате чата сега, докоснете **Отложи** отдолу (ще ви бъде предложено да мигрирате базата данни, когато рестартирате приложението). @@ -9587,6 +9595,10 @@ pref value expired No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded препратено diff --git a/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff b/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff index db9c2e1910..b212f42592 100644 --- a/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff +++ b/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff @@ -1924,6 +1924,10 @@ Toto je váš vlastní jednorázový odkaz! Chyba spojení (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -3650,7 +3654,7 @@ snd error text Fingerprint in server address does not match certificate. - Je možné, že otisk certifikátu v adrese serveru je nesprávný + Otisk certifikátu v adrese serveru neodpovídá. server test error @@ -4038,6 +4042,10 @@ Error: %2$@ Pokud při otevření aplikace zadáte sebedestrukční heslo: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Pokud potřebujete chat používat nyní, klepněte na **Udělat později** níže (migrace databáze vám bude nabídnuta po restartování aplikace). @@ -5205,7 +5213,7 @@ This is your link for group %@! No user identifiers. - Bez uživatelských identifikátorů + Bez uživatelských identifikátorů. No comment provided by engineer. @@ -6815,12 +6823,12 @@ chat item action Server requires authorization to create queues, check password. - Server vyžaduje autorizaci pro vytváření front, zkontrolujte heslo + Server vyžaduje autorizaci pro vytváření front, zkontrolujte heslo. server test error Server requires authorization to upload, check password. - Server vyžaduje autorizaci pro nahrávání, zkontrolujte heslo + Server vyžaduje autorizaci pro nahrávání, zkontrolujte heslo. server test error @@ -9276,6 +9284,10 @@ pref value expired No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff index cec79a1739..7ab0535158 100644 --- a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff +++ b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff @@ -794,6 +794,7 @@ swipe action All messages + Alle Nachrichten No comment provided by engineer. @@ -1148,6 +1149,7 @@ swipe action Audio call + Audioanruf No comment provided by engineer. @@ -2021,6 +2023,10 @@ Das ist Ihr eigener Einmal-Link! Verbindungsfehler (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -2589,10 +2595,12 @@ swipe action Delete member messages + Mitgliedsnachrichten löschen No comment provided by engineer. Delete member messages? + Mitgliedsnachrichten löschen? alert title @@ -3870,6 +3878,7 @@ snd error text Filter + Filter No comment provided by engineer. @@ -4336,6 +4345,10 @@ Fehler: %2$@ Wenn Sie Ihren Selbstzerstörungs-Zugangscode während des Öffnens der App eingeben: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Tippen Sie unten auf **Später wiederholen**, wenn Sie den Chat jetzt benötigen (es wird Ihnen angeboten, die Datenbank bei einem Neustart der App zu migrieren). @@ -4358,6 +4371,7 @@ Fehler: %2$@ Images + Bilder No comment provided by engineer. @@ -4621,6 +4635,7 @@ Weitere Verbesserungen sind bald verfügbar! Invite member + Mitglied einladen No comment provided by engineer. @@ -4848,6 +4863,7 @@ Das ist Ihr Link für die Gruppe %@! Links + Links No comment provided by engineer. @@ -4977,6 +4993,7 @@ Das ist Ihr Link für die Gruppe %@! Member messages will be deleted - this cannot be undone! + Mitgliedsnachrichten werden gelöscht. Dies kann nicht rückgängig gemacht werden! alert message @@ -6636,6 +6653,7 @@ swipe action Remove and delete messages + Mitglied entfernen und Nachrichten löschen alert action @@ -7081,14 +7099,17 @@ chat item action Search files + Dateien suchen No comment provided by engineer. Search images + Bilder suchen No comment provided by engineer. Search links + Links suchen No comment provided by engineer. @@ -7098,10 +7119,12 @@ chat item action Search videos + Videos suchen No comment provided by engineer. Search voice messages + Sprachnachrichten suchen No comment provided by engineer. @@ -8981,6 +9004,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s Videos + Videos No comment provided by engineer. @@ -10124,6 +10148,10 @@ pref value Abgelaufen No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded weitergeleitet @@ -10988,7 +11016,7 @@ Zuletzt empfangene Nachricht: %2$@ Ok - OK + Ok No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff index 581cd791a5..fbc3b2dfa8 100644 --- a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff +++ b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff @@ -2023,6 +2023,11 @@ This is your own one-time link! Connection error (AUTH) No comment provided by engineer. + + Connection failed + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4341,6 +4346,11 @@ Error: %2$@ If you enter your self-destruct passcode while opening the app: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). @@ -10140,6 +10150,11 @@ pref value expired No comment provided by engineer. + + failed + failed + No comment provided by engineer. + forwarded forwarded diff --git a/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff b/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff index edacbd8e56..61734f2480 100644 --- a/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff +++ b/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff @@ -498,7 +498,7 @@ time interval <p>Hi!</p> <p><a href="%@">Connect to me via SimpleX Chat</a></p> <p>¡Hola!</p> -<p><a href="%@"> Conecta conmigo a través de SimpleX Chat</a></p> +<p><a href="%@">Conecta conmigo a través de SimpleX Chat</a></p> email text @@ -794,6 +794,7 @@ swipe action All messages + Todos los mensajes No comment provided by engineer. @@ -1148,6 +1149,7 @@ swipe action Audio call + Llamada No comment provided by engineer. @@ -2021,6 +2023,10 @@ This is your own one-time link! Error de conexión (Autenticación) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -2589,10 +2595,12 @@ swipe action Delete member messages + Eliminar mensajes del miembro No comment provided by engineer. Delete member messages? + ¿Eliminar mensajes del miembro? alert title @@ -3870,6 +3878,7 @@ snd error text Filter + Filtro No comment provided by engineer. @@ -4336,6 +4345,10 @@ Error: %2$@ Si al abrir la aplicación introduces el código de autodestrucción: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Si necesitas usar el chat ahora pulsa **Hacerlo más tarde** más abajo (se ofrecerá migrar la base de datos cuando se reinicie la aplicación). @@ -4358,6 +4371,7 @@ Error: %2$@ Images + Imágenes No comment provided by engineer. @@ -4621,6 +4635,7 @@ More improvements are coming soon! Invite member + Invitar miembro No comment provided by engineer. @@ -4848,6 +4863,7 @@ This is your link for group %@! Links + Enlaces No comment provided by engineer. @@ -4977,6 +4993,7 @@ This is your link for group %@! Member messages will be deleted - this cannot be undone! + Los mensajes del miembro serán eliminados. ¡No puede deshacerse! alert message @@ -5951,7 +5968,7 @@ Requiere activación de la VPN. Or show this code - O muestra el código QR + O muestra este código No comment provided by engineer. @@ -6636,6 +6653,7 @@ swipe action Remove and delete messages + Eliminar miembro y sus mensajes alert action @@ -7081,14 +7099,17 @@ chat item action Search files + Buscar archivos No comment provided by engineer. Search images + Buscar imágenes No comment provided by engineer. Search links + Buscar enlaces No comment provided by engineer. @@ -7098,10 +7119,12 @@ chat item action Search videos + Buscar vídeos No comment provided by engineer. Search voice messages + Buscar mensajes de voz No comment provided by engineer. @@ -8981,6 +9004,7 @@ Para conectarte pide a tu contacto que cree otro enlace y comprueba la conexión Videos + Vídeos No comment provided by engineer. @@ -10124,6 +10148,10 @@ pref value expirados No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded reenviado @@ -10598,7 +10626,7 @@ last received msg: %2$@ unprotected - con IP desprotegida + desprotegida No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff b/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff index 00b4bca1d4..5a7813dfe5 100644 --- a/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff +++ b/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff @@ -1814,6 +1814,10 @@ This is your own one-time link! Yhteysvirhe (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -3925,6 +3929,10 @@ Error: %2$@ Jos syötät itsetuhoutuvan pääsykoodin sovellusta avattaessa: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Jos haluat käyttää keskustelua nyt, napauta **Tee se myöhemmin** alla (sinulle tarjotaan tietokannan siirtämistä, kun käynnistät sovelluksen uudelleen). @@ -9158,6 +9166,10 @@ pref value expired No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff index 82912c5d44..7e386fe50c 100644 --- a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff +++ b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff @@ -2009,6 +2009,10 @@ Il s'agit de votre propre lien unique ! Erreur de connexion (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4297,6 +4301,10 @@ Erreur : %2$@ Si vous entrez votre code d'autodestruction à l'ouverture de l'application : No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Si vous avez besoin d'utiliser le chat maintenant appuyez sur **le faire plus tard** (vous pourrez migrer la base de données quand vous relancerez l'app). @@ -9930,6 +9938,10 @@ pref value expiré No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded transféré diff --git a/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff b/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff index 99219c1f40..0ed5dc19ea 100644 --- a/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff +++ b/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff @@ -394,8 +394,8 @@ - connect to [directory service](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) (BETA)! - delivery receipts (up to 20 members). - faster and more stable. - - kapcsolódás a [könyvtár szolgáltatáshoz](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) (BETA)! -- kézbesítési jelentések (legfeljebb 20 tag). + - kapcsolódás a [könyvtárszolgáltatáshoz](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) (BETA)! +- kézbesítési jelentések (legfeljebb 20 tagig). - gyorsabb és stabilabb. No comment provided by engineer. @@ -794,6 +794,7 @@ swipe action All messages + Összes üzenet No comment provided by engineer. @@ -1148,6 +1149,7 @@ swipe action Audio call + Hanghívás No comment provided by engineer. @@ -2021,6 +2023,10 @@ Ez a saját egyszer használható meghívója! Kapcsolódási hiba (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -2589,10 +2595,12 @@ swipe action Delete member messages + Tag üzeneteinek törlése No comment provided by engineer. Delete member messages? + Törli a tag üzeneteit? alert title @@ -3870,6 +3878,7 @@ snd error text Filter + Szűrő No comment provided by engineer. @@ -4336,6 +4345,10 @@ Hiba: %2$@ Ha az alkalmazás megnyitásakor megadja az önmegsemmisítő jelkódot: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Ha most kell használnia a csevegést, koppintson lentebb a **Befejezés később** beállításra (az alkalmazás újraindításakor fel lesz ajánlva az adatbázis átköltöztetése). @@ -4358,6 +4371,7 @@ Hiba: %2$@ Images + Képek No comment provided by engineer. @@ -4621,6 +4635,7 @@ További fejlesztések hamarosan! Invite member + Tag meghívása No comment provided by engineer. @@ -4848,6 +4863,7 @@ Ez a saját hivatkozása a(z) %@ nevű csoporthoz! Links + Hivatkozások No comment provided by engineer. @@ -4977,6 +4993,7 @@ Ez a saját hivatkozása a(z) %@ nevű csoporthoz! Member messages will be deleted - this cannot be undone! + A tag üzenetei törölve lesznek – ez a művelet nem vonható vissza! alert message @@ -5246,7 +5263,7 @@ Ez a saját hivatkozása a(z) %@ nevű csoporthoz! Migration complete - Átköltöztetés befejezve + Átköltöztetés kész No comment provided by engineer. @@ -5261,7 +5278,7 @@ Ez a saját hivatkozása a(z) %@ nevű csoporthoz! Migration is completed - Az átköltöztetés befejeződött + Az átköltöztetés elkészült No comment provided by engineer. @@ -6162,7 +6179,7 @@ Hiba: %@ Please wait for token activation to complete. - Várjon, amíg a token aktiválása befejeződik. + Várjon, amíg a token aktiválása elkészül. token info @@ -6636,6 +6653,7 @@ swipe action Remove and delete messages + Eltávolítás és az üzeneteinek törlése alert action @@ -7081,14 +7099,17 @@ chat item action Search files + Fájlok keresése No comment provided by engineer. Search images + Képek keresése No comment provided by engineer. Search links + Hivatkozások keresése No comment provided by engineer. @@ -7098,10 +7119,12 @@ chat item action Search videos + Videók keresése No comment provided by engineer. Search voice messages + Hangüzenetek keresése No comment provided by engineer. @@ -8981,6 +9004,7 @@ A kapcsolódáshoz kérje meg a partnerét, hogy hozzon létre egy másik kapcso Videos + Videók No comment provided by engineer. @@ -9870,7 +9894,7 @@ marked deleted chat item preview text complete - befejezett + kész No comment provided by engineer. @@ -10124,6 +10148,10 @@ pref value lejárt No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded továbbított diff --git a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff index e2c826f334..97061054e8 100644 --- a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff +++ b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff @@ -794,6 +794,7 @@ swipe action All messages + Tutti i messaggi No comment provided by engineer. @@ -1148,6 +1149,7 @@ swipe action Audio call + Chiamata audio No comment provided by engineer. @@ -2021,6 +2023,10 @@ Questo è il tuo link una tantum! Errore di connessione (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -2589,10 +2595,12 @@ swipe action Delete member messages + Elimina i messaggi del membro No comment provided by engineer. Delete member messages? + Eliminare i messaggi del membro? alert title @@ -3870,6 +3878,7 @@ snd error text Filter + Filtro No comment provided by engineer. @@ -4336,6 +4345,10 @@ Errore: %2$@ Se inserisci il tuo codice di autodistruzione mentre apri l'app: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Se devi usare la chat adesso, tocca **Fallo più tardi** qui sotto (ti verrà offerto di migrare il database quando riavvii l'app). @@ -4358,6 +4371,7 @@ Errore: %2$@ Images + Immagini No comment provided by engineer. @@ -4621,6 +4635,7 @@ Altri miglioramenti sono in arrivo! Invite member + Invita membro No comment provided by engineer. @@ -4848,6 +4863,7 @@ Questo è il tuo link per il gruppo %@! Links + Link No comment provided by engineer. @@ -4977,6 +4993,7 @@ Questo è il tuo link per il gruppo %@! Member messages will be deleted - this cannot be undone! + I messaggi del membro verranno eliminati. Non è reversibile! alert message @@ -6636,6 +6653,7 @@ swipe action Remove and delete messages + Rimuovi ed elimina i messaggi alert action @@ -7081,14 +7099,17 @@ chat item action Search files + Cerca file No comment provided by engineer. Search images + Cerca immagini No comment provided by engineer. Search links + Cerca link No comment provided by engineer. @@ -7098,10 +7119,12 @@ chat item action Search videos + Cerca video No comment provided by engineer. Search voice messages + Cerca messaggi vocali No comment provided by engineer. @@ -8981,6 +9004,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Videos + Video No comment provided by engineer. @@ -10124,6 +10148,10 @@ pref value scaduto No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded inoltrato diff --git a/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff b/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff index efd47aa52d..ddec6c47f6 100644 --- a/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff +++ b/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff @@ -1908,6 +1908,10 @@ This is your own one-time link! 接続エラー (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4026,6 +4030,10 @@ Error: %2$@ アプリを開いているときに自己破壊パスコードを入力した場合: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). 今すぐチャットを使用する必要がある場合は、下の **後で実行する**をタップしてください (アプリを再起動すると、データベースを移行するよう求められます)。 @@ -9257,6 +9265,10 @@ pref value expired No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff index 955607acfd..e12cb0a483 100644 --- a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff +++ b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff @@ -2009,6 +2009,10 @@ Dit is uw eigen eenmalige link! Verbindingsfout (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4306,6 +4310,10 @@ Fout: %2$@ Als u uw zelfvernietigings wachtwoord invoert tijdens het openen van de app: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Als u de chat nu wilt gebruiken, tikt u hieronder op **Doe het later** (u wordt aangeboden om de database te migreren wanneer u de app opnieuw start). @@ -10029,6 +10037,10 @@ pref value verlopen No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded doorgestuurd diff --git a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff index f74e1e31b5..ee17f807ba 100644 --- a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff +++ b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff @@ -498,7 +498,7 @@ time interval <p>Hi!</p> <p><a href="%@">Connect to me via SimpleX Chat</a></p> <p>Cześć!</p> -<p><a href="%@">Połącz się ze mną poprzez SimpleX Chat.</a></p> +<p><a href="%@">Połącz się ze mną poprzez SimpleX Chat</a></p> email text @@ -794,6 +794,7 @@ swipe action All messages + Wszystkie wiadomości No comment provided by engineer. @@ -1148,6 +1149,7 @@ swipe action Audio call + Połączenie audio No comment provided by engineer. @@ -1272,10 +1274,12 @@ swipe action Bio + Bio No comment provided by engineer. Bio too large + Bio jest za długie alert title @@ -1380,6 +1384,7 @@ swipe action Business connection + Kontakty biznesowe No comment provided by engineer. @@ -1396,6 +1401,9 @@ swipe action By using SimpleX Chat you agree to: - send only legal content in public groups. - respect other users – no spam. + Korzystając z SimpleX Chat, zgadzasz się: +- wysyłać tylko legalne treści w grupach publicznych. +- szanować innych użytkowników – nie spamować. No comment provided by engineer. @@ -1430,6 +1438,7 @@ swipe action Can't change profile + Nie można zmienić profilu alert title @@ -1491,6 +1500,7 @@ new chat action Change automatic message deletion? + Zmienić automatyczne usuwanie wiadomości? alert title @@ -1646,14 +1656,17 @@ set passcode view Chat with admins + Czatuj z administratorami chat toolbar Chat with member + Czatuj z członkiem No comment provided by engineer. Chat with members before they join. + Porozmawiaj z członkami, zanim dołączą. No comment provided by engineer. @@ -1663,6 +1676,7 @@ set passcode view Chats with members + Czaty z członkami No comment provided by engineer. @@ -1732,10 +1746,12 @@ set passcode view Clear group? + Wyczyścić grupę? No comment provided by engineer. Clear or delete group? + Wyczyścić lub usunąć grupę? No comment provided by engineer. @@ -1760,6 +1776,7 @@ set passcode view Community guidelines violation + Naruszenie zasad społeczności report reason @@ -1799,14 +1816,17 @@ set passcode view Conditions will be accepted for the operator(s): **%@**. + Warunki zostaną zaakceptowane dla operatora(-ów): **%@**. No comment provided by engineer. Conditions will be accepted on: %@. + Warunki zostaną zaakceptowane w dniu: %@. No comment provided by engineer. Conditions will be automatically accepted for enabled operators on: %@. + Warunki zostaną automatycznie zaakceptowane dla aktywnych operatorów w dniu: %@. No comment provided by engineer. @@ -1816,6 +1836,7 @@ set passcode view Configure server operators + Skonfiguruj operatorów serwerów No comment provided by engineer. @@ -1870,6 +1891,7 @@ set passcode view Confirmed + Potwierdzony token status text @@ -1884,6 +1906,7 @@ set passcode view Connect faster! 🚀 + Połącz się szybciej! 🚀 No comment provided by engineer. @@ -1987,6 +2010,7 @@ To jest twój jednorazowy link! Connection blocked + Połączenie zablokowane No comment provided by engineer. @@ -1999,13 +2023,20 @@ To jest twój jednorazowy link! Błąd połączenia (UWIERZYTELNIANIE) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ + Połączenie zostało zablokowane przez operatora serwera: +%@ No comment provided by engineer. Connection not ready. + Połączenie nie jest gotowe. No comment provided by engineer. @@ -2020,10 +2051,12 @@ To jest twój jednorazowy link! Connection requires encryption renegotiation. + Połączenie wymaga renegocjacji szyfrowania. No comment provided by engineer. Connection security + Bezpieczeństwo połączenia No comment provided by engineer. @@ -2088,6 +2121,7 @@ To jest twój jednorazowy link! Contact requests from groups + Prośby o kontakt od grup No comment provided by engineer. @@ -2107,6 +2141,7 @@ To jest twój jednorazowy link! Content violates conditions of use + Treść narusza warunki użytkowania blocking reason @@ -2151,6 +2186,7 @@ To jest twój jednorazowy link! Create 1-time link + Utwórz jednorazowy link No comment provided by engineer. @@ -2185,6 +2221,7 @@ To jest twój jednorazowy link! Create list + Utwórz listę No comment provided by engineer. @@ -2204,6 +2241,7 @@ To jest twój jednorazowy link! Create your address + Utwórz swój adres No comment provided by engineer. @@ -2243,6 +2281,7 @@ To jest twój jednorazowy link! Current conditions text couldn't be loaded, you can review conditions via this link: + Nie można załadować tekstu dotyczącego aktualnych warunków. Możesz zapoznać się z warunkami, klikając ten link: No comment provided by engineer. @@ -2267,6 +2306,7 @@ To jest twój jednorazowy link! Customizable message shape. + Konfigurowalny kształt wiadomości. No comment provided by engineer. @@ -2440,10 +2480,12 @@ swipe action Delete chat + Usuń czat No comment provided by engineer. Delete chat messages from your device. + Usuń wiadomości czatu ze swojego urządzenia. No comment provided by engineer. @@ -2458,10 +2500,12 @@ swipe action Delete chat with member? + Usunąć czat z członkiem? alert title Delete chat? + Usunąć czat? No comment provided by engineer. @@ -2541,6 +2585,7 @@ swipe action Delete list? + Usunąć listę? alert title @@ -2550,10 +2595,12 @@ swipe action Delete member messages + Usuń wiadomości członków No comment provided by engineer. Delete member messages? + Usunąć wiadomości członków? alert title @@ -2584,6 +2631,7 @@ alert button Delete or moderate up to 200 messages. + Usuń lub moderuj do 200 wiadomości. No comment provided by engineer. @@ -2603,6 +2651,7 @@ alert button Delete report + Usuń raport No comment provided by engineer. @@ -2642,6 +2691,7 @@ alert button Delivered even when Apple drops them. + Dostarczane nawet wtedy, gdy Apple je wycofa. No comment provided by engineer. @@ -2661,6 +2711,7 @@ alert button Deprecated options + Opcje wycofane No comment provided by engineer. @@ -2670,6 +2721,7 @@ alert button Description too large + Opis jest zbyt długi alert title @@ -2754,6 +2806,7 @@ alert button Direct messages between members are prohibited in this chat. + W tym czacie zabronione jest wysyłanie bezpośrednich wiadomości między członkami. No comment provided by engineer. @@ -2773,10 +2826,12 @@ alert button Disable automatic message deletion? + Wyłączyć automatyczne usuwanie wiadomości? alert title Disable delete messages + Wyłącz usuwanie wiadomości alert button @@ -2871,6 +2926,7 @@ alert button Documents: + Dokumenty: No comment provided by engineer. @@ -2885,6 +2941,7 @@ alert button Don't miss important messages. + Nie przegap ważnych wiadomości. No comment provided by engineer. @@ -2894,6 +2951,7 @@ alert button Done + Gotowe No comment provided by engineer. @@ -2959,6 +3017,7 @@ chat item action E2E encrypted notifications. + Powiadomienia szyfrowane E2E. No comment provided by engineer. @@ -2973,6 +3032,7 @@ chat item action Empty message! + Pusta wiadomość! No comment provided by engineer. @@ -2987,6 +3047,7 @@ chat item action Enable Flux in Network & servers settings for better metadata privacy. + Włącz opcję Flux w ustawieniach sieci i serwerów, aby zapewnić lepszą prywatność metadanych. No comment provided by engineer. @@ -3011,6 +3072,7 @@ chat item action Enable disappearing messages by default. + Włącz domyślnie znikające wiadomości. No comment provided by engineer. @@ -3135,6 +3197,7 @@ chat item action Encryption renegotiation in progress. + Trwa renegocjacja szyfrowania. No comment provided by engineer. @@ -3204,6 +3267,7 @@ chat item action Error accepting conditions + Błąd podczas akceptacji warunków alert title @@ -3213,6 +3277,7 @@ chat item action Error accepting member + Błąd podczas akceptacji członka alert title @@ -3222,10 +3287,12 @@ chat item action Error adding server + Błąd podczas dodawania serwera alert title Error adding short link + Błąd dodawania krótkiego linku No comment provided by engineer. @@ -3235,6 +3302,7 @@ chat item action Error changing chat profile + Błąd zmiany profilu czatu alert title @@ -3259,6 +3327,7 @@ chat item action Error checking token status + Błąd sprawdzania statusu tokenu No comment provided by engineer. @@ -3268,6 +3337,7 @@ chat item action Error connecting to the server used to receive messages from this connection: %@ + Błąd połączenia z serwerem używanym do odbierania wiadomości z tego połączenia: %@ subscription status explanation @@ -3287,6 +3357,7 @@ chat item action Error creating list + Błąd tworzenia listy alert title @@ -3306,6 +3377,7 @@ chat item action Error creating report + Błąd tworzenia raportu No comment provided by engineer. @@ -3315,6 +3387,7 @@ chat item action Error deleting chat + Błąd usuwania czatu alert title @@ -3394,6 +3467,7 @@ chat item action Error loading servers + Błąd ładowania serwerów alert title @@ -3408,6 +3482,7 @@ chat item action Error opening group + Błąd otwierania grupy No comment provided by engineer. @@ -3427,10 +3502,12 @@ chat item action Error registering for notifications + Błąd rejestracji powiadomień alert title Error rejecting contact request + Błąd odrzucenia prośby o kontakt alert title @@ -3440,6 +3517,7 @@ chat item action Error reordering lists + Błąd ponownego porządkowania list alert title @@ -3454,6 +3532,7 @@ chat item action Error saving chat list + Błąd zapisywania listy czatów alert title @@ -3473,6 +3552,7 @@ chat item action Error saving servers + Błąd zapisywania serwerów alert title @@ -3507,6 +3587,7 @@ chat item action Error setting auto-accept + Błąd ustawiania automatycznego akceptowania No comment provided by engineer. @@ -3541,6 +3622,7 @@ chat item action Error testing server connection + Błąd testowania połączenia z serwerem No comment provided by engineer. @@ -3555,6 +3637,7 @@ chat item action Error updating server + Błąd aktualizacji serwera alert title @@ -3591,6 +3674,7 @@ snd error text Error: %@. + Błąd: %@. server test error @@ -3610,6 +3694,7 @@ snd error text Errors in servers configuration. + Błędy w konfiguracji serwerów. servers error @@ -3629,6 +3714,7 @@ snd error text Expired + Wygasło token status text @@ -3673,6 +3759,7 @@ snd error text Faster deletion of groups. + Szybsze usuwanie grup. No comment provided by engineer. @@ -3682,6 +3769,7 @@ snd error text Faster sending messages. + Szybsze wysyłanie wiadomości. No comment provided by engineer. @@ -3691,6 +3779,7 @@ snd error text Favorites + Ulubione No comment provided by engineer. @@ -3708,6 +3797,8 @@ snd error text File is blocked by server operator: %@. + Plik jest zablokowany przez operatora serwera: +%@. file error text @@ -3767,6 +3858,7 @@ snd error text Files and media are prohibited in this chat. + W tym czacie nie wolno przesyłać plików ani multimediów. No comment provided by engineer. @@ -3786,6 +3878,7 @@ snd error text Filter + Filtr No comment provided by engineer. @@ -3815,19 +3908,22 @@ snd error text Fingerprint in destination server address does not match certificate: %@. + Odcisk palca w adresie serwera docelowego nie zgadza się z certyfikatem: %@. No comment provided by engineer. Fingerprint in forwarding server address does not match certificate: %@. + Odcisk palca w adresie serwera przekazującego nie zgadza się z certyfikatem: %@. No comment provided by engineer. Fingerprint in server address does not match certificate. - Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy + Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy. server test error Fingerprint in server address does not match certificate: %@. + Odcisk palca w adresie serwera nie zgadza się z certyfikatem: %@. No comment provided by engineer. @@ -3862,10 +3958,12 @@ snd error text For all moderators + Dla wszystkich moderatorów No comment provided by engineer. For chat profile %@: + Dla profilu czatu %@: servers error @@ -3875,18 +3973,22 @@ snd error text For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server. + Na przykład, jeśli Twój kontakt odbiera wiadomości za pośrednictwem serwera SimpleX Chat, Twoja aplikacja będzie je dostarczać za pośrednictwem serwera Flux. No comment provided by engineer. For me + Dla mnie No comment provided by engineer. For private routing + Dla prywatnego routingu No comment provided by engineer. For social media + Dla mediów społecznościowych No comment provided by engineer. @@ -3916,6 +4018,7 @@ snd error text Forward up to 20 messages at once. + Przekaż jednocześnie do 20 wiadomości. No comment provided by engineer. @@ -4004,6 +4107,7 @@ Błąd: %2$@ Get notified when mentioned. + Otrzymuj powiadomienia, gdy ktoś wspomni o Tobie. No comment provided by engineer. @@ -4098,6 +4202,7 @@ Błąd: %2$@ Group profile was changed. If you save it, the updated profile will be sent to group members. + Profil grupy został zmieniony. Jeśli go zapiszesz, zaktualizowany profil zostanie wysłany do członków grupy. alert message @@ -4117,6 +4222,7 @@ Błąd: %2$@ Groups + Grupy No comment provided by engineer. @@ -4126,6 +4232,7 @@ Błąd: %2$@ Help admins moderating their groups. + Pomóż administratorom moderować ich grupy. No comment provided by engineer. @@ -4180,14 +4287,17 @@ Błąd: %2$@ How it affects privacy + Jak to wpływa na prywatność No comment provided by engineer. How it helps privacy + Jak to pomaga chronić prywatność No comment provided by engineer. How it works + Jak to działa alert button @@ -4235,6 +4345,10 @@ Błąd: %2$@ Jeśli wpiszesz swój pin samodestrukcji podczas otwierania aplikacji: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Jeśli potrzebujesz użyć czatu teraz, dotknij **Zrób to później** poniżej (zostanie Ci zaproponowana migracja bazy danych po ponownym uruchomieniu aplikacji). @@ -4257,6 +4371,7 @@ Błąd: %2$@ Images + Zdjęcia No comment provided by engineer. @@ -4302,6 +4417,8 @@ Błąd: %2$@ Improved delivery, reduced traffic usage. More improvements are coming soon! + Ulepszona dostawa, mniejsze zużycie ruchu. +Wkrótce pojawią się kolejne ulepszenia! No comment provided by engineer. @@ -4336,10 +4453,12 @@ More improvements are coming soon! Inappropriate content + Nieodpowiednia treść report reason Inappropriate profile + Nieodpowiedni profil report reason @@ -4436,22 +4555,27 @@ More improvements are coming soon! Invalid + Nieprawidłowy token status text Invalid (bad token) + Nieprawidłowy (zły token) token status text Invalid (expired) + Nieważny (wygasły) token status text Invalid (unregistered) + Nieprawidłowy (niezarejestrowany) token status text Invalid (wrong topic) + Nieprawidłowy (niewłaściwy temat) token status text @@ -4511,6 +4635,7 @@ More improvements are coming soon! Invite member + Zaproś członka No comment provided by engineer. @@ -4520,6 +4645,7 @@ More improvements are coming soon! Invite to chat + Zaproś do czatu No comment provided by engineer. @@ -4642,6 +4768,7 @@ To jest twój link do grupy %@! Keep your chats clean + Utrzymuj czystość swoich czatów No comment provided by engineer. @@ -4681,10 +4808,12 @@ To jest twój link do grupy %@! Leave chat + Opuść czat No comment provided by engineer. Leave chat? + Opuścić czat? No comment provided by engineer. @@ -4699,6 +4828,7 @@ To jest twój link do grupy %@! Less traffic on mobile networks. + Mniejszy ruch w sieciach komórkowych. No comment provided by engineer. @@ -4733,18 +4863,22 @@ To jest twój link do grupy %@! Links + Linki No comment provided by engineer. List + Lista swipe action List name and emoji should be different for all lists. + Nazwa listy i emoji powinny być różne dla wszystkich list. No comment provided by engineer. List name... + Nazwa listy... No comment provided by engineer. @@ -4759,6 +4893,7 @@ To jest twój link do grupy %@! Loading profile… + Ładowanie profilu… in progress text @@ -4838,10 +4973,12 @@ To jest twój link do grupy %@! Member %@ + Członek %@ past/unknown group member Member admission + Przyjmowanie członków No comment provided by engineer. @@ -4851,18 +4988,22 @@ To jest twój link do grupy %@! Member is deleted - can't accept request + Członek został usunięty – nie można zaakceptować prośby No comment provided by engineer. Member messages will be deleted - this cannot be undone! + Wiadomości członków zostaną usunięte – nie można tego cofnąć! alert message Member reports + Raporty członków chat feature Member role will be changed to "%@". All chat members will be notified. + Rola członka zostanie zmieniona na "%@". Wszyscy członkowie czatu zostaną o tym poinformowani. No comment provided by engineer. @@ -4877,6 +5018,7 @@ To jest twój link do grupy %@! Member will be removed from chat - this cannot be undone! + Członek zostanie usunięty z czatu – nie można tego cofnąć! alert message @@ -4886,6 +5028,7 @@ To jest twój link do grupy %@! Member will join the group, accept member? + Członek dołączy do grupy, zaakceptować członka? alert message @@ -4900,6 +5043,7 @@ To jest twój link do grupy %@! Members can report messsages to moderators. + Członkowie mogą zgłaszać wiadomości moderatorom. No comment provided by engineer. @@ -4929,6 +5073,7 @@ To jest twój link do grupy %@! Mention members 👋 + Wspomnij członków 👋 No comment provided by engineer. @@ -4963,6 +5108,7 @@ To jest twój link do grupy %@! Message instantly once you tap Connect. + Wysyłaj wiadomości natychmiast po dotknięciu przycisku „Połącz”. No comment provided by engineer. @@ -5042,6 +5188,7 @@ To jest twój link do grupy %@! Messages are protected by **end-to-end encryption**. + Wiadomości są chronione przez **szyfrowanie typu end-to-end**. No comment provided by engineer. @@ -5051,6 +5198,7 @@ To jest twój link do grupy %@! Messages in this chat will never be deleted. + Wiadomości na tym czacie nigdy nie zostaną usunięte. alert message @@ -5155,6 +5303,7 @@ To jest twój link do grupy %@! More + Więcej swipe action @@ -5169,6 +5318,7 @@ To jest twój link do grupy %@! More reliable notifications + Bardziej niezawodne powiadomienia No comment provided by engineer. @@ -5188,6 +5338,7 @@ To jest twój link do grupy %@! Mute all + Wycisz wszystko notification label action @@ -5212,6 +5363,7 @@ To jest twój link do grupy %@! Network decentralization + Decentralizacja sieci No comment provided by engineer. @@ -5226,6 +5378,7 @@ To jest twój link do grupy %@! Network operator + Operator sieci No comment provided by engineer. @@ -5240,6 +5393,7 @@ To jest twój link do grupy %@! New + Nowy token status text @@ -5289,10 +5443,12 @@ To jest twój link do grupy %@! New events + Nowe wydarzenia notification New group role: Moderator + Nowa rola w grupie: Moderator No comment provided by engineer. @@ -5312,6 +5468,7 @@ To jest twój link do grupy %@! New member wants to join the group. + Nowy członek chce dołączyć do grupy. rcv group event chat item @@ -5326,6 +5483,7 @@ To jest twój link do grupy %@! New server + Nowy serwer No comment provided by engineer. @@ -5340,18 +5498,22 @@ To jest twój link do grupy %@! No chats + Żadnych czatów No comment provided by engineer. No chats found + Nie znaleziono żadnych czatów No comment provided by engineer. No chats in list %@ + Brak czatów na liście %@ No comment provided by engineer. No chats with members + Żadnych rozmów z członkami No comment provided by engineer. @@ -5401,14 +5563,17 @@ To jest twój link do grupy %@! No media & file servers. + Brak mediów i serwerów plików multimedialnych. servers error No message + Brak wiadomości No comment provided by engineer. No message servers. + Brak serwerów wiadomości. servers error @@ -5433,6 +5598,7 @@ To jest twój link do grupy %@! No private routing session + Brak prywatnej sesji routingu alert title @@ -5447,26 +5613,32 @@ To jest twój link do grupy %@! No servers for private message routing. + Brak serwerów prywatnej sesji routingu. servers error No servers to receive files. + Brak serwerów do otrzymania plików. servers error No servers to receive messages. + Brak serwerów aby otrzymać wiadomości. servers error No servers to send files. + Brak serwerów do wysyłania plików. servers error No token! + Brak tokenu! alert title No unread chats + Brak nieprzeczytanych czatów No comment provided by engineer. @@ -5481,6 +5653,7 @@ To jest twój link do grupy %@! Notes + Notatki No comment provided by engineer. @@ -5505,14 +5678,17 @@ To jest twój link do grupy %@! Notifications error + Błąd powiadomień alert title Notifications privacy + Prywatność powiadomień No comment provided by engineer. Notifications status + Stan powiadomień alert title @@ -5572,6 +5748,7 @@ Wymaga włączenia VPN. Only chat owners can change preferences. + Tylko właściciele czatu mogą zmieniać preferencje. No comment provided by engineer. @@ -5601,10 +5778,12 @@ Wymaga włączenia VPN. Only sender and moderators see it + Widzą to tylko nadawca i moderatorzy No comment provided by engineer. Only you and moderators see it + Widzisz to tylko Ty i moderatorzy No comment provided by engineer. @@ -5629,6 +5808,7 @@ Wymaga włączenia VPN. Only you can send files and media. + Tylko Ty możesz wysyłać pliki i multimedia. No comment provided by engineer. @@ -5658,6 +5838,7 @@ Wymaga włączenia VPN. Only your contact can send files and media. + Tylko Twój kontakt może wysyłać pliki i multimedia. No comment provided by engineer. @@ -5677,6 +5858,7 @@ Wymaga włączenia VPN. Open changes + Otwórz zmiany No comment provided by engineer. @@ -5691,14 +5873,17 @@ Wymaga włączenia VPN. Open clean link + Otwórz czysty link alert action Open conditions + Otwórz warunki No comment provided by engineer. Open full link + Otwórz pełny link alert action @@ -5708,6 +5893,7 @@ Wymaga włączenia VPN. Open link? + Otworzyć link? alert title @@ -5717,26 +5903,32 @@ Wymaga włączenia VPN. Open new chat + Otwórz nowy czat new chat action Open new group + Otwórz nową grupę new chat action Open to accept + Otwórz by zaakceptować No comment provided by engineer. Open to connect + Otwórz aby się połączyć No comment provided by engineer. Open to join + Otwórz aby dołączyć No comment provided by engineer. Open to use bot + Otwórz aby skorzystać z bota No comment provided by engineer. @@ -5746,14 +5938,17 @@ Wymaga włączenia VPN. Operator + Operator No comment provided by engineer. Operator server + Serwer Operatora alert title Or import archive file + Lub zaimportuj plik archiwalny No comment provided by engineer. @@ -5778,10 +5973,12 @@ Wymaga włączenia VPN. Or to share privately + Lub udostępnij prywatnie No comment provided by engineer. Organize chats into lists + Organizuj czaty jako listy No comment provided by engineer. @@ -5972,18 +6169,22 @@ Błąd: %@ Please try to disable and re-enable notfications. + Spróbuj wyłączyć, a następnie ponownie włączyć powiadomienia. token info Please wait for group moderators to review your request to join the group. + Poczekaj, aż moderatorzy grupy rozpatrzą Twoją prośbę o dołączenie do grupy. snd group event chat item Please wait for token activation to complete. + Proszę poczekać na zakończenie aktywacji tokenu. token info Please wait for token to be registered. + Proszę poczekać na zarejestrowanie tokenu. token info @@ -6008,6 +6209,7 @@ Błąd: %@ Preset servers + Domyślne serwery No comment provided by engineer. @@ -6027,10 +6229,12 @@ Błąd: %@ Privacy for your customers. + Prywatność dla Twoich klientów. No comment provided by engineer. Privacy policy and conditions of use. + Polityka prywatności i warunki korzystania. No comment provided by engineer. @@ -6040,6 +6244,7 @@ Błąd: %@ Private chats, groups and your contacts are not accessible to server operators. + Prywatne czaty, grupy i Twoje kontakty nie są dostępne dla operatorów serwerów. No comment provided by engineer. @@ -6049,6 +6254,7 @@ Błąd: %@ Private media file names. + Nazwy prywatnych plików multimedialnych. No comment provided by engineer. @@ -6078,6 +6284,7 @@ Błąd: %@ Private routing timeout + Limit czasu routingu prywatnego alert title @@ -6132,6 +6339,7 @@ Błąd: %@ Prohibit reporting messages to moderators. + Zabroń raportowania wiadomości moderatorom. No comment provided by engineer. @@ -6183,6 +6391,7 @@ Włącz w ustawianiach *Sieć i serwery* . Protocol background timeout + Limit czasu protokołu w tle No comment provided by engineer. @@ -6392,14 +6601,17 @@ Włącz w ustawianiach *Sieć i serwery* . Register + Zarejestruj No comment provided by engineer. Register notification token? + Zarejestrować token powiadomień? token info Registered + Zarejestrowany token status text @@ -6421,6 +6633,7 @@ swipe action Reject member? + Odrzucić członka? alert title @@ -6440,6 +6653,7 @@ swipe action Remove and delete messages + Usuń i skasuj wiadomości alert action @@ -6454,6 +6668,7 @@ swipe action Remove link tracking + Usuń śledzenie linków No comment provided by engineer. @@ -6473,6 +6688,7 @@ swipe action Removes messages and blocks members. + Usuwa wiadomości i blokuje członków. No comment provided by engineer. @@ -6512,46 +6728,57 @@ swipe action Report + Zgłoś chat item action Report content: only group moderators will see it. + Zgłoś treść: zobaczą ją tylko moderatorzy grupy. report reason Report member profile: only group moderators will see it. + Zgłoś profil członka: będą go widzieć tylko moderatorzy grupy. report reason Report other: only group moderators will see it. + Zgłoś inne: zobaczą to tylko moderatorzy grupy. report reason Report reason? + Jaki jest powód zgłoszenia? No comment provided by engineer. Report sent to moderators + Zgłoszenia wysłane do moderatorów alert title Report spam: only group moderators will see it. + Zgłoś spam: tylko moderatorzy grupy będą to widzieć. report reason Report violation: only group moderators will see it. + Zgłoś naruszenie: zobaczą je tylko moderatorzy grupy. report reason Report: %@ + Zgłoszenie: %@ report in notification Reporting messages to moderators is prohibited. + Zgłaszanie wiadomości moderatorom jest zabronione. No comment provided by engineer. Reports + Zgłoszenia No comment provided by engineer. @@ -6641,18 +6868,22 @@ swipe action Review conditions + Przejrzyj warunki No comment provided by engineer. Review group members + Przejrzyj członków grupy No comment provided by engineer. Review members + Przejrzyj członków admission stage Review members before admitting ("knocking"). + Przejrzyj członków przed dopuszczeniem ("zapukaj"). admission stage description @@ -6713,10 +6944,12 @@ chat item action Save (and notify members) + Zapisz (i powiadom członków) alert button Save admission settings? + Zapisać ustawienia wstępu? alert title @@ -6746,10 +6979,12 @@ chat item action Save group profile? + Zapisać profil grupy? alert title Save list + Zapisz listę No comment provided by engineer. @@ -6864,14 +7099,17 @@ chat item action Search files + Szukaj plików No comment provided by engineer. Search images + Szukaj zdjęć No comment provided by engineer. Search links + Szukaj linków No comment provided by engineer. @@ -6881,10 +7119,12 @@ chat item action Search videos + Szukaj wideo No comment provided by engineer. Search voice messages + Szukaj wiadomości głosowych No comment provided by engineer. @@ -6964,6 +7204,7 @@ chat item action Send contact request? + Wysłać prośbę o kontakt? No comment provided by engineer. @@ -7018,6 +7259,7 @@ chat item action Send private reports + Wyślij prywatne zgłoszenia No comment provided by engineer. @@ -7032,10 +7274,12 @@ chat item action Send request + Wyślij prośbę No comment provided by engineer. Send request without message + Wyślij prośbę bez wiadomości No comment provided by engineer. @@ -7050,6 +7294,7 @@ chat item action Send your private feedback to groups. + Wyślij swoją prywatną opinię do grup. No comment provided by engineer. @@ -7154,6 +7399,7 @@ chat item action Server added to operator %@. + Serwer został dodany do operatora %@. alert message @@ -7173,24 +7419,27 @@ chat item action Server operator changed. + Operator serwera został zmieniony. alert title Server operators + Operatorzy serwera No comment provided by engineer. Server protocol changed. + Protokół serwera zmieniony. alert title Server requires authorization to create queues, check password. - Serwer wymaga autoryzacji do tworzenia kolejek, sprawdź hasło + Serwer wymaga autoryzacji do tworzenia kolejek, sprawdź hasło. server test error Server requires authorization to upload, check password. - Serwer wymaga autoryzacji do przesłania, sprawdź hasło + Serwer wymaga autoryzacji do przesłania, sprawdź hasło. server test error @@ -7240,6 +7489,7 @@ chat item action Set chat name… + Ustaw nazwę czatu… No comment provided by engineer. @@ -7264,10 +7514,12 @@ chat item action Set member admission + Ustaw przyjmowanie członków No comment provided by engineer. Set message expiration in chats. + Ustaw datę wygaśnięcia wiadomości na czatach. No comment provided by engineer. @@ -7287,6 +7539,7 @@ chat item action Set profile bio and welcome message. + Ustaw biografię profilu i wiadomość powitalną. No comment provided by engineer. @@ -7327,10 +7580,12 @@ chat item action Share 1-time link with a friend + Udostępnij jednorazowy link znajomemu No comment provided by engineer. Share SimpleX address on social media. + Udostępnij adres SimpleX w mediach społecznościowych. No comment provided by engineer. @@ -7340,6 +7595,7 @@ chat item action Share address publicly + Udostępnij adres publicznie No comment provided by engineer. @@ -7359,10 +7615,12 @@ chat item action Share old address + Udostępnij stary adres alert button Share old link + Udostępnij stary link alert button @@ -7387,18 +7645,22 @@ chat item action Share your address + Udostępnij swój adres No comment provided by engineer. Short SimpleX address + Krótki adres SimpleX No comment provided by engineer. Short description + Krótki opis No comment provided by engineer. Short link + Krótki link No comment provided by engineer. @@ -7458,6 +7720,7 @@ chat item action SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app. + SimpleX Chat i Flux zawarły umowę na włączenie do aplikacji serwerów obsługiwanych przez Flux. No comment provided by engineer. @@ -7492,10 +7755,12 @@ chat item action SimpleX address and 1-time links are safe to share via any messenger. + Adres SimpleX i jednorazowe linki są bezpieczne do udostępniania przez dowolny komunikator. No comment provided by engineer. SimpleX address or 1-time link? + Adres SimpleX czy link jednorazowy? No comment provided by engineer. @@ -7505,6 +7770,7 @@ chat item action SimpleX channel link + Link do kanału na SimpleX simplex link type @@ -7544,10 +7810,12 @@ chat item action SimpleX protocols reviewed by Trail of Bits. + Protokoły SimpleX sprawdzone przez Trail of Bits. No comment provided by engineer. SimpleX relay link + łącze przekaźnikowe SimpleX simplex link type @@ -7603,6 +7871,8 @@ chat item action Some servers failed the test: %@ + Niektóre serwery nie przeszły testu: +%@ alert message @@ -7612,6 +7882,7 @@ chat item action Spam + Spam blocking reason report reason @@ -7702,6 +7973,7 @@ report reason Storage + Magazyn No comment provided by engineer. @@ -7736,10 +8008,12 @@ report reason Switch audio and video during the call. + Przełączanie audio i wideo podczas połączenia. No comment provided by engineer. Switch chat profile for 1-time invitations. + Przełącz profil czatu dla zaproszeń jednorazowych. No comment provided by engineer. @@ -7759,6 +8033,7 @@ report reason TCP connection bg timeout + Przekroczono limit czasu połączenia TCP No comment provided by engineer. @@ -7768,6 +8043,7 @@ report reason TCP port for messaging + Port TCP dla wiadomości No comment provided by engineer. @@ -7797,22 +8073,27 @@ report reason Tap Connect to chat + Dotknij Połącz aby rozpocząć czat No comment provided by engineer. Tap Connect to send request + Dotknij Połącz, aby wysłać prośbę No comment provided by engineer. Tap Connect to use bot + Dotknij Połącz aby użyć bota No comment provided by engineer. Tap Create SimpleX address in the menu to create it later. + Dotknij Stwórz adres SimpleX w menu aby utworzyć go później. No comment provided by engineer. Tap Join group + Dotknij Dołącz do grupy No comment provided by engineer. @@ -7862,6 +8143,7 @@ report reason Test notifications + Powiadomienia testowe No comment provided by engineer. @@ -7903,6 +8185,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom The address will be short, and your profile will be shared via the address. + Adres będzie krótki, a Twój profil zostanie udostępniony za pośrednictwem adresu. alert message @@ -7912,6 +8195,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom The app protects your privacy by using different operators in each conversation. + Aplikacja chroni Twoją prywatność, korzystając z różnych operatorów w każdej rozmowie. No comment provided by engineer. @@ -7931,6 +8215,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom The connection reached the limit of undelivered messages, your contact may be offline. + Połączenie osiągnęło limit niedostarczonych wiadomości, Twój kontakt może być offline. No comment provided by engineer. @@ -7965,6 +8250,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom The link will be short, and group profile will be shared via the link. + Link będzie krótki, a profil grupowy zostanie udostępniony poprzez link. alert message @@ -7994,10 +8280,12 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom The same conditions will apply to operator **%@**. + Te same warunki będą miały zastosowanie do operatora **%@**. No comment provided by engineer. The second preset operator in the app! + Drugi predefiniowany operator w aplikacji! No comment provided by engineer. @@ -8017,6 +8305,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom The servers for new files of your current chat profile **%@**. + Serwery dla nowych plików Twojego bieżącego profilu czatu **%@**. No comment provided by engineer. @@ -8036,6 +8325,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom These conditions will also apply for: **%@**. + Warunki te będą miały również zastosowanie w przypadku: **%@**. No comment provided by engineer. @@ -8060,6 +8350,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom This action cannot be undone - the messages sent and received in this chat earlier than selected will be deleted. + Tej akcji nie można cofnąć - wiadomości wysłane i otrzymane na tym czacie wcześniej niż wybrane zostaną usunięte. alert message @@ -8099,6 +8390,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom This link requires a newer app version. Please upgrade the app or ask your contact to send a compatible link. + Ten link wymaga nowszej wersji aplikacji. Zaktualizuj aplikację lub poproś osobę kontaktową o przesłanie kompatybilnego łącza. No comment provided by engineer. @@ -8108,6 +8400,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom This message was deleted or not received yet. + Ta wiadomość została usunięta lub jeszcze nie otrzymana. No comment provided by engineer. @@ -8117,10 +8410,12 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom This setting is for your current profile **%@**. + To ustawienie jest dla Twojego obecnego profilu **%@**. No comment provided by engineer. Time to disappear is set only for new contacts. + Czas zniknięcia jest ustawiony tylko dla nowych kontaktów. No comment provided by engineer. @@ -8150,6 +8445,7 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom To protect against your link being replaced, you can compare contact security codes. + Aby zabezpieczyć się przed wymianą łącza, możesz porównać kody bezpieczeństwa kontaktu. No comment provided by engineer. @@ -8176,6 +8472,7 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania. To receive + Żeby odebrać No comment provided by engineer. @@ -8200,10 +8497,12 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania. To send + Żeby wysłać No comment provided by engineer. To send commands you must be connected. + Aby wysyłać polecenia, musisz być podłączony. alert message @@ -8213,10 +8512,12 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania. To use another profile after connection attempt, delete the chat and use the link again. + Aby po próbie połączenia skorzystać z innego profilu, usuń czat i użyj linku ponownie. alert message To use the servers of **%@**, accept conditions of use. + Aby korzystać z serwerów **%@**, należy zaakceptować warunki użytkowania. No comment provided by engineer. @@ -8236,6 +8537,7 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania. Token status: %@. + Stan tokena: %@. token status @@ -8260,6 +8562,7 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania. Trying to connect to the server used to receive messages from this connection. + Próba połączenia z serwerem, który służył do odbierania wiadomości z tego połączenia. subscription status explanation @@ -8309,6 +8612,7 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania. Undelivered messages + Niedostarczone wiadomości No comment provided by engineer. @@ -8405,6 +8709,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Unsupported connection link + Nieobsługiwane łącze połączenia No comment provided by engineer. @@ -8434,6 +8739,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Updated conditions + Zaktualizowane warunki No comment provided by engineer. @@ -8443,14 +8749,17 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Upgrade + Zaktualizuj alert button Upgrade address + Uaktualnij adres No comment provided by engineer. Upgrade address? + Uaktualnić adres? alert message @@ -8460,14 +8769,17 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Upgrade group link? + Uaktualnić link do grupy? alert message Upgrade link + Uaktualnij link No comment provided by engineer. Upgrade your address + Zaktualizuj swój adres No comment provided by engineer. @@ -8502,6 +8814,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Use %@ + Użyj %@ No comment provided by engineer. @@ -8521,10 +8834,12 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Use TCP port %@ when no port is specified. + Jeśli nie podano portu, należy użyć portu TCP %@. No comment provided by engineer. Use TCP port 443 for preset servers only. + Używaj portu TCP 443 tylko dla domyślnych serwerów. No comment provided by engineer. @@ -8539,10 +8854,12 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Use for files + Użyj dla plików No comment provided by engineer. Use for messages + Użyj dla wiadomości No comment provided by engineer. @@ -8562,6 +8879,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Use incognito profile + Użyj profilu incognito No comment provided by engineer. @@ -8591,6 +8909,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Use servers + Użyj serwerów No comment provided by engineer. @@ -8605,6 +8924,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Use web port + Użyj portu internetowego No comment provided by engineer. @@ -8684,6 +9004,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Videos + Wideo No comment provided by engineer. @@ -8693,6 +9014,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc View conditions + Zobacz warunki No comment provided by engineer. @@ -8702,6 +9024,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc View updated conditions + Zobacz zaktualizowane warunki No comment provided by engineer. @@ -8801,6 +9124,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc Welcome your contacts 👋 + Powitaj swoje kontakty 👋 No comment provided by engineer. @@ -8820,6 +9144,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc When more than one operator is enabled, none of them has metadata to learn who communicates with whom. + Gdy włączony jest więcej niż jeden operator, żaden z nich nie ma metadanych pozwalających dowiedzieć się, kto się z kim komunikuje. No comment provided by engineer. @@ -8919,6 +9244,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc You are already connected with %@. + Zostałeś już połączony z %@. No comment provided by engineer. @@ -8955,6 +9281,7 @@ Powtórzyć prośbę dołączenia? You are connected to the server used to receive messages from this connection. + Jesteś połączony z serwerem służącym do odbierania wiadomości z tego połączenia. subscription status explanation @@ -8964,6 +9291,7 @@ Powtórzyć prośbę dołączenia? You are not connected to the server used to receive messages from this connection (no subscription). + Nie masz połączenia z serwerem służącym do odbierania wiadomości w ramach tego połączenia (brak subskrypcji). subscription status explanation @@ -8983,6 +9311,7 @@ Powtórzyć prośbę dołączenia? You can configure servers via settings. + Serwery można skonfigurować w ustawieniach. No comment provided by engineer. @@ -9027,6 +9356,7 @@ Powtórzyć prośbę dołączenia? You can set connection name, to remember who the link was shared with. + Możesz ustawić nazwę połączenia, aby zapamiętać, z kim link został udostępniony. No comment provided by engineer. @@ -9071,6 +9401,7 @@ Powtórzyć prośbę dołączenia? You can view your reports in Chat with admins. + Możesz przeglądać swoje raporty w czacie z administratorami. alert message @@ -9152,10 +9483,12 @@ Powtórzyć prośbę połączenia? You should receive notifications. + Powinieneś otrzymywać powiadomienia. token info You will be able to send messages **only after your request is accepted**. + Będziesz mógł wysyłać wiadomości **dopiero po zaakceptowaniu Twojej prośby**. No comment provided by engineer. @@ -9190,6 +9523,7 @@ Powtórzyć prośbę połączenia? You will stop receiving messages from this chat. Chat history will be preserved. + Przestaniesz otrzymywać wiadomości z tego czatu. Historia czatu zostanie zachowana. No comment provided by engineer. @@ -9224,6 +9558,7 @@ Powtórzyć prośbę połączenia? Your business contact + Twój kontakt biznesowy No comment provided by engineer. @@ -9253,6 +9588,7 @@ Powtórzyć prośbę połączenia? Your chat was moved to %@ but an unexpected error occurred while redirecting you to the profile. + Twoja rozmowa została przeniesiona do %@, ale podczas przekierowywania do profilu wystąpił nieoczekiwany błąd. alert message @@ -9262,6 +9598,7 @@ Powtórzyć prośbę połączenia? Your contact + Twój kontakt No comment provided by engineer. @@ -9296,6 +9633,7 @@ Powtórzyć prośbę połączenia? Your group + Twoja grupa No comment provided by engineer. @@ -9385,6 +9723,7 @@ Powtórzyć prośbę połączenia? accepted %@ + zaakceptowano %@ rcv group event chat item @@ -9394,10 +9733,12 @@ Powtórzyć prośbę połączenia? accepted invitation + zaproszenie zaakceptowane chat list item title accepted you + przyjął cię rcv group event chat item @@ -9422,6 +9763,7 @@ Powtórzyć prośbę połączenia? all + wszystkie member criteria value @@ -9441,6 +9783,7 @@ Powtórzyć prośbę połączenia? archived report + zarchiwizowany raport No comment provided by engineer. @@ -9511,6 +9854,7 @@ marked deleted chat item preview text can't send messages + nie można wysłać wiadomości No comment provided by engineer. @@ -9615,10 +9959,12 @@ marked deleted chat item preview text contact deleted + kontakt usunięty No comment provided by engineer. contact disabled + kontakt wyłączony No comment provided by engineer. @@ -9633,10 +9979,12 @@ marked deleted chat item preview text contact not ready + kontakt nie gotowy No comment provided by engineer. contact should accept… + kontakt powinien zaakceptować… No comment provided by engineer. @@ -9800,6 +10148,10 @@ pref value wygasły No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded przekazane dalej @@ -9807,6 +10159,7 @@ pref value group + grupa shown on group welcome message @@ -9816,6 +10169,7 @@ pref value group is deleted + grupa została usunięta No comment provided by engineer. @@ -9940,6 +10294,7 @@ pref value member has old version + członek posiada starą wersję No comment provided by engineer. @@ -9974,6 +10329,7 @@ pref value moderator + moderator member role @@ -10003,6 +10359,7 @@ pref value no subscription + brak subskrypcji No comment provided by engineer. @@ -10012,6 +10369,7 @@ pref value not synchronized + nie zsynchronizowano No comment provided by engineer. @@ -10069,14 +10427,17 @@ time to disappear pending + oczekuje No comment provided by engineer. pending approval + oczekuje na zatwierdzenie No comment provided by engineer. pending review + oczekuje na ocenę No comment provided by engineer. @@ -10096,6 +10457,7 @@ time to disappear rejected + odrzucono No comment provided by engineer. @@ -10120,6 +10482,7 @@ time to disappear removed from group + usunięty z grupy No comment provided by engineer. @@ -10134,30 +10497,37 @@ time to disappear request is sent + prośba została wysłana No comment provided by engineer. request to join rejected + prośba o dołączenie została odrzucona No comment provided by engineer. requested connection + prośba o połączenie rcv group event chat item requested connection from group %@ + prośba o połączenie od grupy %@ rcv direct event chat item requested to connect + poproszono o połączenie chat list item title review + ocena No comment provided by engineer. reviewed by admins + sprawdzone przez administratorów No comment provided by engineer. @@ -10346,6 +10716,7 @@ ostatnia otrzymana wiadomość: %2$@ you accepted this member + zaakceptowałeś tego członka snd group event chat item @@ -10481,22 +10852,27 @@ ostatnia otrzymana wiadomość: %2$@ %d new events + %d nowych wydarzeń notification body From %d chat(s) + Z %d czatu(ów) notification body From: %@ + Od: %@ notification body New events + Nowe wydarzenia notification New messages + Nowe wiadomości notification diff --git a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff index 64905cf68c..d9a5c48dda 100644 --- a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff +++ b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff @@ -2021,6 +2021,10 @@ This is your own one-time link! Ошибка соединения (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4336,6 +4340,10 @@ Error: %2$@ Если Вы введёте код самоуничтожения при открытии приложения: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Если сейчас Вам нужно использовать чат, нажмите **Отложить** внизу (Вы сможете мигрировать данные чата при следующем запуске приложения). @@ -10123,6 +10131,10 @@ pref value истекло No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded переслано diff --git a/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff b/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff index 4ff953c62e..13d3240daf 100644 --- a/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff +++ b/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff @@ -1805,6 +1805,10 @@ This is your own one-time link! การเชื่อมต่อผิดพลาด (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -3910,6 +3914,10 @@ Error: %2$@ หากคุณใส่รหัสผ่านทำลายตัวเองขณะเปิดแอป: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). หากคุณจำเป็นต้องใช้แชทตอนนี้ ให้แตะ **ทำในภายหลัง** ด้านล่าง (ระบบจะเสนอให้คุณย้ายฐานข้อมูลเมื่อคุณรีสตาร์ทแอป) @@ -9125,6 +9133,10 @@ pref value expired No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded No comment provided by engineer. diff --git a/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff b/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff index 346d9a2bdc..c97da9e0b5 100644 --- a/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff +++ b/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff @@ -2021,6 +2021,10 @@ Bu senin kendi tek kullanımlık bağlantın! Bağlantı hatası (DOĞRULAMA) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4331,6 +4335,10 @@ Hata: %2$@ Uygulamayı açarken kendi kendini imha eden şifrenizi girerseniz: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Sohbeti şimdi kullanmanız gerekiyorsa aşağıdaki **Daha sonra yap** seçeneğine dokunun (uygulamayı yeniden başlattığınızda veritabanını taşımanız önerilecektir). @@ -10116,6 +10124,10 @@ pref value süresi dolmuş No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded iletildi diff --git a/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff b/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff index 6c103e17e1..9cc95a6085 100644 --- a/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff +++ b/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff @@ -2017,6 +2017,10 @@ This is your own one-time link! Помилка підключення (AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -4323,6 +4327,10 @@ Error: %2$@ Якщо ви введете пароль самознищення під час відкриття програми: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). Якщо вам потрібно скористатися чатом зараз, натисніть **Зробити це пізніше** нижче (вам буде запропоновано перенести базу даних при перезапуску програми). @@ -10096,6 +10104,10 @@ pref value закінчився No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded переслано diff --git a/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff b/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff index ff7b4fa141..fbb118774a 100644 --- a/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff +++ b/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff @@ -794,6 +794,7 @@ swipe action All messages + 所有消息 No comment provided by engineer. @@ -1148,6 +1149,7 @@ swipe action Audio call + 语音通话 No comment provided by engineer. @@ -2021,6 +2023,10 @@ This is your own one-time link! 连接错误(AUTH) No comment provided by engineer. + + Connection failed + No comment provided by engineer. + Connection is blocked by server operator: %@ @@ -2588,6 +2594,7 @@ swipe action Delete member messages + 删除成员消息 No comment provided by engineer. @@ -3868,6 +3875,7 @@ snd error text Filter + 过滤器 No comment provided by engineer. @@ -4334,6 +4342,10 @@ Error: %2$@ 如果您在打开应用程序时输入自毁密码: No comment provided by engineer. + + If you joined or created channels, they will stop working permanently. + down migration warning + If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app). 如果您现在需要使用聊天,请点击下面的**稍后再做**(当您重新启动应用程序时,系统会提示您迁移数据库)。 @@ -4356,6 +4368,7 @@ Error: %2$@ Images + 图片 No comment provided by engineer. @@ -4619,6 +4632,7 @@ More improvements are coming soon! Invite member + 邀请成员 No comment provided by engineer. @@ -4846,6 +4860,7 @@ This is your link for group %@! Links + 链接 No comment provided by engineer. @@ -6633,6 +6648,7 @@ swipe action Remove and delete messages + 移除并删除消息 alert action @@ -7077,14 +7093,17 @@ chat item action Search files + 搜索文件 No comment provided by engineer. Search images + 搜索图片 No comment provided by engineer. Search links + 搜索链接 No comment provided by engineer. @@ -7094,10 +7113,12 @@ chat item action Search videos + 搜索视频 No comment provided by engineer. Search voice messages + 搜索语音消息 No comment provided by engineer. @@ -8973,6 +8994,7 @@ To connect, please ask your contact to create another connection link and check Videos + 视频 No comment provided by engineer. @@ -10112,6 +10134,10 @@ pref value 过期 No comment provided by engineer. + + failed + No comment provided by engineer. + forwarded 已转发 diff --git a/apps/ios/SimpleX NSE/pl.lproj/Localizable.strings b/apps/ios/SimpleX NSE/pl.lproj/Localizable.strings index 3a577620a0..3da1eb8e9b 100644 --- a/apps/ios/SimpleX NSE/pl.lproj/Localizable.strings +++ b/apps/ios/SimpleX NSE/pl.lproj/Localizable.strings @@ -1,3 +1,15 @@ /* notification body */ -"New messages in %d chats" = "Nowe wiadomości w %d czatach"; +"%d new events" = "%d nowych wydarzeń"; + +/* notification body */ +"From %d chat(s)" = "Z %d czatu(ów)"; + +/* notification body */ +"From: %@" = "Od: %@"; + +/* notification */ +"New events" = "Nowe wydarzenia"; + +/* notification */ +"New messages" = "Nowe wiadomości"; diff --git a/apps/ios/SimpleX SE/de.lproj/Localizable.strings b/apps/ios/SimpleX SE/de.lproj/Localizable.strings index ed96f44a15..403fb3820a 100644 --- a/apps/ios/SimpleX SE/de.lproj/Localizable.strings +++ b/apps/ios/SimpleX SE/de.lproj/Localizable.strings @@ -65,7 +65,7 @@ "No active profile" = "Kein aktives Profil"; /* No comment provided by engineer. */ -"Ok" = "OK"; +"Ok" = "Ok"; /* No comment provided by engineer. */ "Open the app to downgrade the database." = "Öffnen Sie die App, um die Datenbank herunterzustufen."; diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 0f3230e737..a67105bec4 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -182,8 +182,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -553,8 +553,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -716,8 +716,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -803,8 +803,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.9-IckAKQLBKZZ3c4EBa1qhzo.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.5.0.10-BhxwGbk3jTNAJLd7P8xtH7.a */, ); path = Libraries; sourceTree = ""; diff --git a/apps/ios/cs.lproj/Localizable.strings b/apps/ios/cs.lproj/Localizable.strings index 33ad97d821..9e1fe7139c 100644 --- a/apps/ios/cs.lproj/Localizable.strings +++ b/apps/ios/cs.lproj/Localizable.strings @@ -1754,7 +1754,7 @@ snd error text */ "Find chats faster" = "Najděte chaty rychleji"; /* server test error */ -"Fingerprint in server address does not match certificate." = "Je možné, že otisk certifikátu v adrese serveru je nesprávný"; +"Fingerprint in server address does not match certificate." = "Otisk certifikátu v adrese serveru neodpovídá."; /* No comment provided by engineer. */ "Fix" = "Opravit"; @@ -2390,7 +2390,7 @@ snd error text */ "no text" = "žádný text"; /* No comment provided by engineer. */ -"No user identifiers." = "Bez uživatelských identifikátorů"; +"No user identifiers." = "Bez uživatelských identifikátorů."; /* No comment provided by engineer. */ "Notifications" = "Oznámení"; @@ -2980,10 +2980,10 @@ chat item action */ "Sent messages will be deleted after set time." = "Odeslané zprávy se po uplynutí nastavené doby odstraní."; /* server test error */ -"Server requires authorization to create queues, check password." = "Server vyžaduje autorizaci pro vytváření front, zkontrolujte heslo"; +"Server requires authorization to create queues, check password." = "Server vyžaduje autorizaci pro vytváření front, zkontrolujte heslo."; /* server test error */ -"Server requires authorization to upload, check password." = "Server vyžaduje autorizaci pro nahrávání, zkontrolujte heslo"; +"Server requires authorization to upload, check password." = "Server vyžaduje autorizaci pro nahrávání, zkontrolujte heslo."; /* No comment provided by engineer. */ "Server test failed!" = "Test serveru se nezdařil!"; diff --git a/apps/ios/de.lproj/Localizable.strings b/apps/ios/de.lproj/Localizable.strings index f305aca473..e3979abc37 100644 --- a/apps/ios/de.lproj/Localizable.strings +++ b/apps/ios/de.lproj/Localizable.strings @@ -512,6 +512,9 @@ swipe action */ /* feature role */ "all members" = "Alle Mitglieder"; +/* No comment provided by engineer. */ +"All messages" = "Alle Nachrichten"; + /* No comment provided by engineer. */ "All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." = "Alle Nachrichten und Dateien werden **Ende-zu-Ende verschlüsselt** versendet - in Direkt-Nachrichten mit Post-Quantum-Security."; @@ -734,6 +737,9 @@ swipe action */ /* No comment provided by engineer. */ "Audio and video calls" = "Audio- und Videoanrufe"; +/* No comment provided by engineer. */ +"Audio call" = "Audioanruf"; + /* No comment provided by engineer. */ "audio call (not e2e encrypted)" = "Audioanruf (nicht E2E verschlüsselt)"; @@ -1730,6 +1736,12 @@ swipe action */ /* No comment provided by engineer. */ "Delete member message?" = "Nachricht des Mitglieds löschen?"; +/* No comment provided by engineer. */ +"Delete member messages" = "Mitgliedsnachrichten löschen"; + +/* alert title */ +"Delete member messages?" = "Mitgliedsnachrichten löschen?"; + /* No comment provided by engineer. */ "Delete message?" = "Die Nachricht löschen?"; @@ -2565,6 +2577,9 @@ snd error text */ /* No comment provided by engineer. */ "Files and media prohibited!" = "Dateien und Medien sind nicht erlaubt!"; +/* No comment provided by engineer. */ +"Filter" = "Filter"; + /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Nach ungelesenen und favorisierten Chats filtern."; @@ -2868,6 +2883,9 @@ snd error text */ /* No comment provided by engineer. */ "Image will be received when your contact is online, please wait or check later!" = "Das Bild wird heruntergeladen, sobald Ihr Kontakt online ist. Bitte warten oder schauen Sie später nochmal nach!"; +/* No comment provided by engineer. */ +"Images" = "Bilder"; + /* No comment provided by engineer. */ "Immediately" = "Sofort"; @@ -3051,6 +3069,9 @@ snd error text */ /* No comment provided by engineer. */ "Invite friends" = "Freunde einladen"; +/* No comment provided by engineer. */ +"Invite member" = "Mitglied einladen"; + /* No comment provided by engineer. */ "Invite members" = "Mitglieder einladen"; @@ -3204,6 +3225,9 @@ snd error text */ /* No comment provided by engineer. */ "Linked desktops" = "Verknüpfte Desktops"; +/* No comment provided by engineer. */ +"Links" = "Links"; + /* swipe action */ "List" = "Liste"; @@ -3297,6 +3321,9 @@ snd error text */ /* No comment provided by engineer. */ "Member is deleted - can't accept request" = "Mitglied ist gelöscht - Anfrage kann nicht angenommen werden"; +/* alert message */ +"Member messages will be deleted - this cannot be undone!" = "Mitgliedsnachrichten werden gelöscht. Dies kann nicht rückgängig gemacht werden!"; + /* chat feature */ "Member reports" = "Mitglieder-Meldungen"; @@ -4384,6 +4411,9 @@ swipe action */ /* alert action */ "Remove" = "Entfernen"; +/* alert action */ +"Remove and delete messages" = "Mitglied entfernen und Nachrichten löschen"; + /* No comment provided by engineer. */ "Remove archive?" = "Archiv entfernen?"; @@ -4691,9 +4721,24 @@ chat item action */ /* No comment provided by engineer. */ "Search bar accepts invitation links." = "In der Suchleiste werden nun auch Einladungslinks angenommen."; +/* No comment provided by engineer. */ +"Search files" = "Dateien suchen"; + +/* No comment provided by engineer. */ +"Search images" = "Bilder suchen"; + +/* No comment provided by engineer. */ +"Search links" = "Links suchen"; + /* No comment provided by engineer. */ "Search or paste SimpleX link" = "Suchen oder SimpleX-Link einfügen"; +/* No comment provided by engineer. */ +"Search videos" = "Videos suchen"; + +/* No comment provided by engineer. */ +"Search voice messages" = "Sprachnachrichten suchen"; + /* network option */ "sec" = "sek"; @@ -5899,6 +5944,9 @@ report reason */ /* No comment provided by engineer. */ "Video will be received when your contact is online, please wait or check later!" = "Das Video wird heruntergeladen, sobald Ihr Kontakt online ist. Bitte warten oder überprüfen Sie es später!"; +/* No comment provided by engineer. */ +"Videos" = "Videos"; + /* No comment provided by engineer. */ "Videos and files up to 1gb" = "Videos und Dateien bis zu 1GB"; diff --git a/apps/ios/es.lproj/Localizable.strings b/apps/ios/es.lproj/Localizable.strings index 9ac7628abb..a05bc9f4b6 100644 --- a/apps/ios/es.lproj/Localizable.strings +++ b/apps/ios/es.lproj/Localizable.strings @@ -257,7 +257,7 @@ "`a + b`" = "\\`a + b`"; /* email text */ -"

Hi!

\n

Connect to me via SimpleX Chat

" = "

¡Hola!

\n

Conecta conmigo a través de SimpleX Chat

"; +"

Hi!

\n

Connect to me via SimpleX Chat

" = "

¡Hola!

\n

Conecta conmigo a través de SimpleX Chat

"; /* No comment provided by engineer. */ "~strike~" = "\\~strike~"; @@ -512,6 +512,9 @@ swipe action */ /* feature role */ "all members" = "todos los miembros"; +/* No comment provided by engineer. */ +"All messages" = "Todos los mensajes"; + /* No comment provided by engineer. */ "All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." = "Todos los mensajes y archivos son enviados **cifrados de extremo a extremo** y con seguridad de cifrado postcuántico en mensajes directos."; @@ -734,6 +737,9 @@ swipe action */ /* No comment provided by engineer. */ "Audio and video calls" = "Llamadas y videollamadas"; +/* No comment provided by engineer. */ +"Audio call" = "Llamada"; + /* No comment provided by engineer. */ "audio call (not e2e encrypted)" = "llamada (sin cifrar)"; @@ -1730,6 +1736,12 @@ swipe action */ /* No comment provided by engineer. */ "Delete member message?" = "¿Eliminar el mensaje de miembro?"; +/* No comment provided by engineer. */ +"Delete member messages" = "Eliminar mensajes del miembro"; + +/* alert title */ +"Delete member messages?" = "¿Eliminar mensajes del miembro?"; + /* No comment provided by engineer. */ "Delete message?" = "¿Eliminar mensaje?"; @@ -2565,6 +2577,9 @@ snd error text */ /* No comment provided by engineer. */ "Files and media prohibited!" = "¡Archivos y multimedia no permitidos!"; +/* No comment provided by engineer. */ +"Filter" = "Filtro"; + /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Filtra chats no leídos y favoritos."; @@ -2868,6 +2883,9 @@ snd error text */ /* No comment provided by engineer. */ "Image will be received when your contact is online, please wait or check later!" = "La imagen se recibirá cuando el contacto esté en línea, ¡por favor espera o revisa más tarde!"; +/* No comment provided by engineer. */ +"Images" = "Imágenes"; + /* No comment provided by engineer. */ "Immediately" = "Inmediatamente"; @@ -3051,6 +3069,9 @@ snd error text */ /* No comment provided by engineer. */ "Invite friends" = "Invitar amigos"; +/* No comment provided by engineer. */ +"Invite member" = "Invitar miembro"; + /* No comment provided by engineer. */ "Invite members" = "Invitar miembros"; @@ -3204,6 +3225,9 @@ snd error text */ /* No comment provided by engineer. */ "Linked desktops" = "Ordenadores enlazados"; +/* No comment provided by engineer. */ +"Links" = "Enlaces"; + /* swipe action */ "List" = "Lista"; @@ -3297,6 +3321,9 @@ snd error text */ /* No comment provided by engineer. */ "Member is deleted - can't accept request" = "Miembro eliminado, no puede aceptar solicitudes"; +/* alert message */ +"Member messages will be deleted - this cannot be undone!" = "Los mensajes del miembro serán eliminados. ¡No puede deshacerse!"; + /* chat feature */ "Member reports" = "Informes de miembros"; @@ -3939,7 +3966,7 @@ new chat action */ "Or securely share this file link" = "O comparte de forma segura este enlace al archivo"; /* No comment provided by engineer. */ -"Or show this code" = "O muestra el código QR"; +"Or show this code" = "O muestra este código"; /* No comment provided by engineer. */ "Or to share privately" = "O para compartir en privado"; @@ -4384,6 +4411,9 @@ swipe action */ /* alert action */ "Remove" = "Eliminar"; +/* alert action */ +"Remove and delete messages" = "Eliminar miembro y sus mensajes"; + /* No comment provided by engineer. */ "Remove archive?" = "¿Eliminar archivo?"; @@ -4691,9 +4721,24 @@ chat item action */ /* No comment provided by engineer. */ "Search bar accepts invitation links." = "La barra de búsqueda acepta enlaces de invitación."; +/* No comment provided by engineer. */ +"Search files" = "Buscar archivos"; + +/* No comment provided by engineer. */ +"Search images" = "Buscar imágenes"; + +/* No comment provided by engineer. */ +"Search links" = "Buscar enlaces"; + /* No comment provided by engineer. */ "Search or paste SimpleX link" = "Buscar o pegar enlace SimpleX"; +/* No comment provided by engineer. */ +"Search videos" = "Buscar vídeos"; + +/* No comment provided by engineer. */ +"Search voice messages" = "Buscar mensajes de voz"; + /* network option */ "sec" = "seg"; @@ -5687,7 +5732,7 @@ report reason */ "Unmute" = "Activar audio"; /* No comment provided by engineer. */ -"unprotected" = "con IP desprotegida"; +"unprotected" = "desprotegida"; /* swipe action */ "Unread" = "No leído"; @@ -5899,6 +5944,9 @@ report reason */ /* No comment provided by engineer. */ "Video will be received when your contact is online, please wait or check later!" = "El vídeo se recibirá cuando el contacto esté en línea, por favor espera o revisa más tarde."; +/* No comment provided by engineer. */ +"Videos" = "Vídeos"; + /* No comment provided by engineer. */ "Videos and files up to 1gb" = "Vídeos y archivos de hasta 1Gb"; diff --git a/apps/ios/hu.lproj/Localizable.strings b/apps/ios/hu.lproj/Localizable.strings index fc2f796bfd..56277f4fd3 100644 --- a/apps/ios/hu.lproj/Localizable.strings +++ b/apps/ios/hu.lproj/Localizable.strings @@ -5,7 +5,7 @@ "_italic_" = "\\_dőlt_"; /* No comment provided by engineer. */ -"- connect to [directory service](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) (BETA)!\n- delivery receipts (up to 20 members).\n- faster and more stable." = "- kapcsolódás a [könyvtár szolgáltatáshoz](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) (BETA)!\n- kézbesítési jelentések (legfeljebb 20 tag).\n- gyorsabb és stabilabb."; +"- connect to [directory service](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) (BETA)!\n- delivery receipts (up to 20 members).\n- faster and more stable." = "- kapcsolódás a [könyvtárszolgáltatáshoz](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) (BETA)!\n- kézbesítési jelentések (legfeljebb 20 tagig).\n- gyorsabb és stabilabb."; /* No comment provided by engineer. */ "- more stable message delivery.\n- a bit better groups.\n- and more!" = "- stabilabb üzenetkézbesítés.\n- picit továbbfejlesztett csoportok.\n- és még sok más!"; @@ -512,6 +512,9 @@ swipe action */ /* feature role */ "all members" = "összes tag"; +/* No comment provided by engineer. */ +"All messages" = "Összes üzenet"; + /* No comment provided by engineer. */ "All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." = "Az összes üzenet és fájl **végpontok közötti titkosítással**, a közvetlen üzenetek továbbá kvantumbiztos titkosítással is rendelkeznek."; @@ -734,6 +737,9 @@ swipe action */ /* No comment provided by engineer. */ "Audio and video calls" = "Hang- és videóhívások"; +/* No comment provided by engineer. */ +"Audio call" = "Hanghívás"; + /* No comment provided by engineer. */ "audio call (not e2e encrypted)" = "hanghívás (végpontok között NEM titkosított)"; @@ -1177,7 +1183,7 @@ set passcode view */ "Compare security codes with your contacts." = "Biztonsági kódok összehasonlítása a partnerekével."; /* No comment provided by engineer. */ -"complete" = "befejezett"; +"complete" = "kész"; /* No comment provided by engineer. */ "Completed" = "Elkészült"; @@ -1730,6 +1736,12 @@ swipe action */ /* No comment provided by engineer. */ "Delete member message?" = "Törli a tag üzenetét?"; +/* No comment provided by engineer. */ +"Delete member messages" = "Tag üzeneteinek törlése"; + +/* alert title */ +"Delete member messages?" = "Törli a tag üzeneteit?"; + /* No comment provided by engineer. */ "Delete message?" = "Törli az üzenetet?"; @@ -2565,6 +2577,9 @@ snd error text */ /* No comment provided by engineer. */ "Files and media prohibited!" = "A fájlok és a médiatartalmak küldése le van tiltva!"; +/* No comment provided by engineer. */ +"Filter" = "Szűrő"; + /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Olvasatlan és kedvenc csevegésekre való szűrés."; @@ -2868,6 +2883,9 @@ snd error text */ /* No comment provided by engineer. */ "Image will be received when your contact is online, please wait or check later!" = "A kép akkor érkezik meg, amikor a küldője elérhető lesz, várjon, vagy ellenőrizze később!"; +/* No comment provided by engineer. */ +"Images" = "Képek"; + /* No comment provided by engineer. */ "Immediately" = "Azonnal"; @@ -3051,6 +3069,9 @@ snd error text */ /* No comment provided by engineer. */ "Invite friends" = "Barátok meghívása"; +/* No comment provided by engineer. */ +"Invite member" = "Tag meghívása"; + /* No comment provided by engineer. */ "Invite members" = "Tagok meghívása"; @@ -3204,6 +3225,9 @@ snd error text */ /* No comment provided by engineer. */ "Linked desktops" = "Társított számítógépek"; +/* No comment provided by engineer. */ +"Links" = "Hivatkozások"; + /* swipe action */ "List" = "Lista"; @@ -3297,6 +3321,9 @@ snd error text */ /* No comment provided by engineer. */ "Member is deleted - can't accept request" = "A tag törölve lett – nem lehet elfogadni a kérést"; +/* alert message */ +"Member messages will be deleted - this cannot be undone!" = "A tag üzenetei törölve lesznek – ez a művelet nem vonható vissza!"; + /* chat feature */ "Member reports" = "Tagok jelentései"; @@ -3463,7 +3490,7 @@ snd error text */ "Migrating database archive…" = "Adatbázis-archívum átköltöztetése…"; /* No comment provided by engineer. */ -"Migration complete" = "Átköltöztetés befejezve"; +"Migration complete" = "Átköltöztetés kész"; /* No comment provided by engineer. */ "Migration error:" = "Átköltöztetési hiba:"; @@ -3472,7 +3499,7 @@ snd error text */ "Migration failed. Tap **Skip** below to continue using the current database. Please report the issue to the app developers via chat or email [chat@simplex.chat](mailto:chat@simplex.chat)." = "Sikertelen átköltöztetés. Koppintson a **Kihagyás** beállításra a jelenlegi adatbázis használatának folytatásához. Jelentse a problémát az alkalmazás fejlesztőinek csevegésben vagy e-mailben [chat@simplex.chat](mailto:chat@simplex.chat)."; /* No comment provided by engineer. */ -"Migration is completed" = "Az átköltöztetés befejeződött"; +"Migration is completed" = "Az átköltöztetés elkészült"; /* No comment provided by engineer. */ "Migrations:" = "Átköltöztetések:"; @@ -4086,7 +4113,7 @@ new chat action */ "Please wait for group moderators to review your request to join the group." = "Várja meg, amíg a csoport moderátorai áttekintik a csoporthoz való csatlakozási kérését."; /* token info */ -"Please wait for token activation to complete." = "Várjon, amíg a token aktiválása befejeződik."; +"Please wait for token activation to complete." = "Várjon, amíg a token aktiválása elkészül."; /* token info */ "Please wait for token to be registered." = "Várjon a token regisztrálására."; @@ -4384,6 +4411,9 @@ swipe action */ /* alert action */ "Remove" = "Eltávolítás"; +/* alert action */ +"Remove and delete messages" = "Eltávolítás és az üzeneteinek törlése"; + /* No comment provided by engineer. */ "Remove archive?" = "Eltávolítja az archívumot?"; @@ -4691,9 +4721,24 @@ chat item action */ /* No comment provided by engineer. */ "Search bar accepts invitation links." = "A keresősáv elfogadja a meghívási hivatkozásokat."; +/* No comment provided by engineer. */ +"Search files" = "Fájlok keresése"; + +/* No comment provided by engineer. */ +"Search images" = "Képek keresése"; + +/* No comment provided by engineer. */ +"Search links" = "Hivatkozások keresése"; + /* No comment provided by engineer. */ "Search or paste SimpleX link" = "Keresés vagy SimpleX-hivatkozás beillesztése"; +/* No comment provided by engineer. */ +"Search videos" = "Videók keresése"; + +/* No comment provided by engineer. */ +"Search voice messages" = "Hangüzenetek keresése"; + /* network option */ "sec" = "mp"; @@ -5899,6 +5944,9 @@ report reason */ /* No comment provided by engineer. */ "Video will be received when your contact is online, please wait or check later!" = "A videó akkor érkezik meg, amikor a küldője elérhető lesz, várjon, vagy ellenőrizze később!"; +/* No comment provided by engineer. */ +"Videos" = "Videók"; + /* No comment provided by engineer. */ "Videos and files up to 1gb" = "Videók és fájlok legfeljebb 1GB méretig"; diff --git a/apps/ios/it.lproj/Localizable.strings b/apps/ios/it.lproj/Localizable.strings index 9e2a27e618..3955f267ce 100644 --- a/apps/ios/it.lproj/Localizable.strings +++ b/apps/ios/it.lproj/Localizable.strings @@ -512,6 +512,9 @@ swipe action */ /* feature role */ "all members" = "tutti i membri"; +/* No comment provided by engineer. */ +"All messages" = "Tutti i messaggi"; + /* No comment provided by engineer. */ "All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." = "Tutti i messaggi e i file vengono inviati **crittografati end-to-end**, con sicurezza resistenti alla quantistica nei messaggi diretti."; @@ -734,6 +737,9 @@ swipe action */ /* No comment provided by engineer. */ "Audio and video calls" = "Chiamate audio e video"; +/* No comment provided by engineer. */ +"Audio call" = "Chiamata audio"; + /* No comment provided by engineer. */ "audio call (not e2e encrypted)" = "chiamata audio (non crittografata e2e)"; @@ -1730,6 +1736,12 @@ swipe action */ /* No comment provided by engineer. */ "Delete member message?" = "Eliminare il messaggio del membro?"; +/* No comment provided by engineer. */ +"Delete member messages" = "Elimina i messaggi del membro"; + +/* alert title */ +"Delete member messages?" = "Eliminare i messaggi del membro?"; + /* No comment provided by engineer. */ "Delete message?" = "Eliminare il messaggio?"; @@ -2565,6 +2577,9 @@ snd error text */ /* No comment provided by engineer. */ "Files and media prohibited!" = "File e contenuti multimediali vietati!"; +/* No comment provided by engineer. */ +"Filter" = "Filtro"; + /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Filtra le chat non lette e preferite."; @@ -2868,6 +2883,9 @@ snd error text */ /* No comment provided by engineer. */ "Image will be received when your contact is online, please wait or check later!" = "L'immagine verrà ricevuta quando il tuo contatto sarà in linea, aspetta o controlla più tardi!"; +/* No comment provided by engineer. */ +"Images" = "Immagini"; + /* No comment provided by engineer. */ "Immediately" = "Immediatamente"; @@ -3051,6 +3069,9 @@ snd error text */ /* No comment provided by engineer. */ "Invite friends" = "Invita amici"; +/* No comment provided by engineer. */ +"Invite member" = "Invita membro"; + /* No comment provided by engineer. */ "Invite members" = "Invita membri"; @@ -3204,6 +3225,9 @@ snd error text */ /* No comment provided by engineer. */ "Linked desktops" = "Desktop collegati"; +/* No comment provided by engineer. */ +"Links" = "Link"; + /* swipe action */ "List" = "Elenco"; @@ -3297,6 +3321,9 @@ snd error text */ /* No comment provided by engineer. */ "Member is deleted - can't accept request" = "Il membro è eliminato - impossibile accettare la richiesta"; +/* alert message */ +"Member messages will be deleted - this cannot be undone!" = "I messaggi del membro verranno eliminati. Non è reversibile!"; + /* chat feature */ "Member reports" = "Segnalazioni dei membri"; @@ -4384,6 +4411,9 @@ swipe action */ /* alert action */ "Remove" = "Rimuovi"; +/* alert action */ +"Remove and delete messages" = "Rimuovi ed elimina i messaggi"; + /* No comment provided by engineer. */ "Remove archive?" = "Rimuovere l'archivio?"; @@ -4691,9 +4721,24 @@ chat item action */ /* No comment provided by engineer. */ "Search bar accepts invitation links." = "La barra di ricerca accetta i link di invito."; +/* No comment provided by engineer. */ +"Search files" = "Cerca file"; + +/* No comment provided by engineer. */ +"Search images" = "Cerca immagini"; + +/* No comment provided by engineer. */ +"Search links" = "Cerca link"; + /* No comment provided by engineer. */ "Search or paste SimpleX link" = "Cerca o incolla un link SimpleX"; +/* No comment provided by engineer. */ +"Search videos" = "Cerca video"; + +/* No comment provided by engineer. */ +"Search voice messages" = "Cerca messaggi vocali"; + /* network option */ "sec" = "sec"; @@ -5899,6 +5944,9 @@ report reason */ /* No comment provided by engineer. */ "Video will be received when your contact is online, please wait or check later!" = "Il video verrà ricevuto quando il tuo contatto sarà in linea, attendi o controlla più tardi!"; +/* No comment provided by engineer. */ +"Videos" = "Video"; + /* No comment provided by engineer. */ "Videos and files up to 1gb" = "Video e file fino a 1 GB"; diff --git a/apps/ios/pl.lproj/Localizable.strings b/apps/ios/pl.lproj/Localizable.strings index 9ef572364f..ed1f8850d8 100644 --- a/apps/ios/pl.lproj/Localizable.strings +++ b/apps/ios/pl.lproj/Localizable.strings @@ -257,7 +257,7 @@ "`a + b`" = "\\`a + b`"; /* email text */ -"

Hi!

\n

Connect to me via SimpleX Chat

" = "

Cześć!

\n

Połącz się ze mną poprzez SimpleX Chat.

"; +"

Hi!

\n

Connect to me via SimpleX Chat

" = "

Cześć!

\n

Połącz się ze mną poprzez SimpleX Chat

"; /* No comment provided by engineer. */ "~strike~" = "\\~strajk~"; @@ -371,12 +371,21 @@ swipe action */ /* alert title */ "Accept member" = "Zaakceptuj członka"; +/* rcv group event chat item */ +"accepted %@" = "zaakceptowano %@"; + /* call status */ "accepted call" = "zaakceptowane połączenie"; /* No comment provided by engineer. */ "Accepted conditions" = "Zaakceptowano warunki"; +/* chat list item title */ +"accepted invitation" = "zaproszenie zaakceptowane"; + +/* rcv group event chat item */ +"accepted you" = "przyjął cię"; + /* No comment provided by engineer. */ "Acknowledged" = "Potwierdzono"; @@ -476,6 +485,9 @@ swipe action */ /* chat item text */ "agreeing encryption…" = "uzgadnianie szyfrowania…"; +/* member criteria value */ +"all" = "wszystkie"; + /* No comment provided by engineer. */ "All" = "Wszystko"; @@ -500,6 +512,9 @@ swipe action */ /* feature role */ "all members" = "wszyscy członkowie"; +/* No comment provided by engineer. */ +"All messages" = "Wszystkie wiadomości"; + /* No comment provided by engineer. */ "All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." = "Wszystkie wiadomości i pliki są wysyłane **z szyfrowaniem end-to-end**, z bezpieczeństwem postkwantowym w wiadomościach bezpośrednich."; @@ -704,6 +719,9 @@ swipe action */ /* No comment provided by engineer. */ "Archived contacts" = "Zarchiwizowane kontakty"; +/* No comment provided by engineer. */ +"archived report" = "zarchiwizowany raport"; + /* No comment provided by engineer. */ "Archiving database" = "Archiwizowanie bazy danych"; @@ -719,6 +737,9 @@ swipe action */ /* No comment provided by engineer. */ "Audio and video calls" = "Połączenia audio i wideo"; +/* No comment provided by engineer. */ +"Audio call" = "Połączenie audio"; + /* No comment provided by engineer. */ "audio call (not e2e encrypted)" = "połączenie audio (nie szyfrowane e2e)"; @@ -803,6 +824,12 @@ swipe action */ /* No comment provided by engineer. */ "Better user experience" = "Lepszy interfejs użytkownika"; +/* No comment provided by engineer. */ +"Bio" = "Bio"; + +/* alert title */ +"Bio too large" = "Bio jest za długie"; + /* No comment provided by engineer. */ "Black" = "Czarny"; @@ -876,12 +903,18 @@ marked deleted chat item preview text */ /* No comment provided by engineer. */ "Business chats" = "Czaty biznesowe"; +/* No comment provided by engineer. */ +"Business connection" = "Kontakty biznesowe"; + /* No comment provided by engineer. */ "Businesses" = "Firmy"; /* 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)." = "Według profilu czatu (domyślnie) lub [według połączenia](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)."; +/* No comment provided by engineer. */ +"By using SimpleX Chat you agree to:\n- send only legal content in public groups.\n- respect other users – no spam." = "Korzystając z SimpleX Chat, zgadzasz się:\n- wysyłać tylko legalne treści w grupach publicznych.\n- szanować innych użytkowników – nie spamować."; + /* No comment provided by engineer. */ "call" = "zadzwoń"; @@ -912,6 +945,9 @@ marked deleted chat item preview text */ /* No comment provided by engineer. */ "Can't call member" = "Nie można zadzwonić do członka"; +/* alert title */ +"Can't change profile" = "Nie można zmienić profilu"; + /* No comment provided by engineer. */ "Can't invite contact!" = "Nie można zaprosić kontaktu!"; @@ -921,6 +957,9 @@ marked deleted chat item preview text */ /* No comment provided by engineer. */ "Can't message member" = "Nie można wysłać wiadomości do członka"; +/* No comment provided by engineer. */ +"can't send messages" = "nie można wysłać wiadomości"; + /* alert action alert button new chat action */ @@ -950,6 +989,9 @@ new chat action */ /* No comment provided by engineer. */ "Change" = "Zmień"; +/* alert title */ +"Change automatic message deletion?" = "Zmienić automatyczne usuwanie wiadomości?"; + /* authentication reason */ "Change chat profiles" = "Zmień profil czatu"; @@ -1056,9 +1098,21 @@ set passcode view */ /* No comment provided by engineer. */ "Chat will be deleted for you - this cannot be undone!" = "Czat zostanie usunięty dla Ciebie – tej operacji nie można cofnąć!"; +/* chat toolbar */ +"Chat with admins" = "Czatuj z administratorami"; + +/* No comment provided by engineer. */ +"Chat with member" = "Czatuj z członkiem"; + +/* No comment provided by engineer. */ +"Chat with members before they join." = "Porozmawiaj z członkami, zanim dołączą."; + /* No comment provided by engineer. */ "Chats" = "Czaty"; +/* No comment provided by engineer. */ +"Chats with members" = "Czaty z członkami"; + /* No comment provided by engineer. */ "Check messages every 20 min." = "Sprawdzaj wiadomości co 20 min."; @@ -1098,6 +1152,12 @@ set passcode view */ /* No comment provided by engineer. */ "Clear conversation?" = "Wyczyścić rozmowę?"; +/* No comment provided by engineer. */ +"Clear group?" = "Wyczyścić grupę?"; + +/* No comment provided by engineer. */ +"Clear or delete group?" = "Wyczyścić lub usunąć grupę?"; + /* No comment provided by engineer. */ "Clear private notes?" = "Wyczyścić prywatne notatki?"; @@ -1113,6 +1173,9 @@ set passcode view */ /* No comment provided by engineer. */ "colored" = "kolorowy"; +/* report reason */ +"Community guidelines violation" = "Naruszenie zasad społeczności"; + /* server test step */ "Compare file" = "Porównaj plik"; @@ -1137,9 +1200,21 @@ set passcode view */ /* alert button */ "Conditions of use" = "Warunki użytkowania"; +/* No comment provided by engineer. */ +"Conditions will be accepted for the operator(s): **%@**." = "Warunki zostaną zaakceptowane dla operatora(-ów): **%@**."; + +/* No comment provided by engineer. */ +"Conditions will be accepted on: %@." = "Warunki zostaną zaakceptowane w dniu: %@."; + +/* No comment provided by engineer. */ +"Conditions will be automatically accepted for enabled operators on: %@." = "Warunki zostaną automatycznie zaakceptowane dla aktywnych operatorów w dniu: %@."; + /* No comment provided by engineer. */ "Configure ICE servers" = "Skonfiguruj serwery ICE"; +/* No comment provided by engineer. */ +"Configure server operators" = "Skonfiguruj operatorów serwerów"; + /* No comment provided by engineer. */ "Confirm" = "Potwierdź"; @@ -1170,12 +1245,18 @@ set passcode view */ /* No comment provided by engineer. */ "Confirm upload" = "Potwierdź wgranie"; +/* token status text */ +"Confirmed" = "Potwierdzony"; + /* server test step */ "Connect" = "Połącz"; /* No comment provided by engineer. */ "Connect automatically" = "Łącz automatycznie"; +/* No comment provided by engineer. */ +"Connect faster! 🚀" = "Połącz się szybciej! 🚀"; + /* No comment provided by engineer. */ "Connect to desktop" = "Połącz do komputera"; @@ -1260,6 +1341,9 @@ set passcode view */ /* No comment provided by engineer. */ "Connection and servers status." = "Stan połączenia i serwerów."; +/* No comment provided by engineer. */ +"Connection blocked" = "Połączenie zablokowane"; + /* alert title */ "Connection error" = "Błąd połączenia"; @@ -1269,12 +1353,24 @@ set passcode view */ /* chat list item title (it should not be shown */ "connection established" = "połączenie ustanowione"; +/* No comment provided by engineer. */ +"Connection is blocked by server operator:\n%@" = "Połączenie zostało zablokowane przez operatora serwera:\n%@"; + +/* No comment provided by engineer. */ +"Connection not ready." = "Połączenie nie jest gotowe."; + /* No comment provided by engineer. */ "Connection notifications" = "Powiadomienia o połączeniu"; /* No comment provided by engineer. */ "Connection request sent!" = "Prośba o połączenie wysłana!"; +/* No comment provided by engineer. */ +"Connection requires encryption renegotiation." = "Połączenie wymaga renegocjacji szyfrowania."; + +/* No comment provided by engineer. */ +"Connection security" = "Bezpieczeństwo połączenia"; + /* No comment provided by engineer. */ "Connection terminated" = "Połączenie zakończone"; @@ -1299,9 +1395,15 @@ set passcode view */ /* No comment provided by engineer. */ "Contact already exists" = "Kontakt już istnieje"; +/* No comment provided by engineer. */ +"contact deleted" = "kontakt usunięty"; + /* No comment provided by engineer. */ "Contact deleted!" = "Kontakt usunięty!"; +/* No comment provided by engineer. */ +"contact disabled" = "kontakt wyłączony"; + /* No comment provided by engineer. */ "contact has e2e encryption" = "kontakt posiada szyfrowanie e2e"; @@ -1320,9 +1422,18 @@ set passcode view */ /* No comment provided by engineer. */ "Contact name" = "Nazwa kontaktu"; +/* No comment provided by engineer. */ +"contact not ready" = "kontakt nie gotowy"; + /* No comment provided by engineer. */ "Contact preferences" = "Preferencje kontaktu"; +/* No comment provided by engineer. */ +"Contact requests from groups" = "Prośby o kontakt od grup"; + +/* No comment provided by engineer. */ +"contact should accept…" = "kontakt powinien zaakceptować…"; + /* No comment provided by engineer. */ "Contact will be deleted - this cannot be undone!" = "Kontakt zostanie usunięty – nie można tego cofnąć!"; @@ -1332,6 +1443,9 @@ set passcode view */ /* No comment provided by engineer. */ "Contacts can mark messages for deletion; you will be able to view them." = "Kontakty mogą oznaczać wiadomości do usunięcia; będziesz mógł je zobaczyć."; +/* blocking reason */ +"Content violates conditions of use" = "Treść narusza warunki użytkowania"; + /* No comment provided by engineer. */ "Continue" = "Kontynuuj"; @@ -1356,6 +1470,9 @@ set passcode view */ /* No comment provided by engineer. */ "Create" = "Utwórz"; +/* No comment provided by engineer. */ +"Create 1-time link" = "Utwórz jednorazowy link"; + /* No comment provided by engineer. */ "Create a group using a random profile." = "Utwórz grupę używając losowego profilu."; @@ -1371,6 +1488,9 @@ set passcode view */ /* No comment provided by engineer. */ "Create link" = "Utwórz link"; +/* No comment provided by engineer. */ +"Create list" = "Utwórz listę"; + /* No comment provided by engineer. */ "Create new profile in [desktop app](https://simplex.chat/downloads/). 💻" = "Utwórz nowy profil w [aplikacji desktopowej](https://simplex.chat/downloads/). 💻"; @@ -1383,6 +1503,9 @@ set passcode view */ /* No comment provided by engineer. */ "Create SimpleX address" = "Utwórz adres SimpleX"; +/* No comment provided by engineer. */ +"Create your address" = "Utwórz swój adres"; + /* No comment provided by engineer. */ "Create your profile" = "Utwórz swój profil"; @@ -1404,6 +1527,9 @@ set passcode view */ /* No comment provided by engineer. */ "creator" = "twórca"; +/* No comment provided by engineer. */ +"Current conditions text couldn't be loaded, you can review conditions via this link:" = "Nie można załadować tekstu dotyczącego aktualnych warunków. Możesz zapoznać się z warunkami, klikając ten link:"; + /* No comment provided by engineer. */ "Current Passcode" = "Aktualny Pin"; @@ -1422,6 +1548,9 @@ set passcode view */ /* No comment provided by engineer. */ "Custom time" = "Niestandardowy czas"; +/* No comment provided by engineer. */ +"Customizable message shape." = "Konfigurowalny kształt wiadomości."; + /* No comment provided by engineer. */ "Customize theme" = "Dostosuj motyw"; @@ -1538,12 +1667,24 @@ swipe action */ /* No comment provided by engineer. */ "Delete and notify contact" = "Usuń i powiadom kontakt"; +/* No comment provided by engineer. */ +"Delete chat" = "Usuń czat"; + +/* No comment provided by engineer. */ +"Delete chat messages from your device." = "Usuń wiadomości czatu ze swojego urządzenia."; + /* No comment provided by engineer. */ "Delete chat profile" = "Usuń profil czatu"; /* No comment provided by engineer. */ "Delete chat profile?" = "Usunąć profil czatu?"; +/* alert title */ +"Delete chat with member?" = "Usunąć czat z członkiem?"; + +/* No comment provided by engineer. */ +"Delete chat?" = "Usunąć czat?"; + /* No comment provided by engineer. */ "Delete connection" = "Usuń połączenie"; @@ -1589,9 +1730,18 @@ swipe action */ /* No comment provided by engineer. */ "Delete link?" = "Usunąć link?"; +/* alert title */ +"Delete list?" = "Usunąć listę?"; + /* No comment provided by engineer. */ "Delete member message?" = "Usunąć wiadomość członka?"; +/* No comment provided by engineer. */ +"Delete member messages" = "Usuń wiadomości członków"; + +/* alert title */ +"Delete member messages?" = "Usunąć wiadomości członków?"; + /* No comment provided by engineer. */ "Delete message?" = "Usunąć wiadomość?"; @@ -1608,6 +1758,9 @@ alert button */ /* No comment provided by engineer. */ "Delete old database?" = "Usunąć starą bazę danych?"; +/* No comment provided by engineer. */ +"Delete or moderate up to 200 messages." = "Usuń lub moderuj do 200 wiadomości."; + /* No comment provided by engineer. */ "Delete pending connection?" = "Usunąć oczekujące połączenie?"; @@ -1617,6 +1770,9 @@ alert button */ /* server test step */ "Delete queue" = "Usuń kolejkę"; +/* No comment provided by engineer. */ +"Delete report" = "Usuń raport"; + /* No comment provided by engineer. */ "Delete up to 20 messages at once." = "Usuń do 20 wiadomości na raz."; @@ -1647,6 +1803,9 @@ alert button */ /* No comment provided by engineer. */ "Deletion errors" = "Błędy usuwania"; +/* No comment provided by engineer. */ +"Delivered even when Apple drops them." = "Dostarczane nawet wtedy, gdy Apple je wycofa."; + /* No comment provided by engineer. */ "Delivery" = "Dostarczenie"; @@ -1656,9 +1815,15 @@ alert button */ /* No comment provided by engineer. */ "Delivery receipts!" = "Potwierdzenia dostawy!"; +/* No comment provided by engineer. */ +"Deprecated options" = "Opcje wycofane"; + /* No comment provided by engineer. */ "Description" = "Opis"; +/* alert title */ +"Description too large" = "Opis jest zbyt długi"; + /* No comment provided by engineer. */ "Desktop address" = "Adres komputera"; @@ -1713,12 +1878,21 @@ alert button */ /* chat feature */ "Direct messages" = "Bezpośrednie wiadomości"; +/* No comment provided by engineer. */ +"Direct messages between members are prohibited in this chat." = "W tym czacie zabronione jest wysyłanie bezpośrednich wiadomości między członkami."; + /* No comment provided by engineer. */ "Direct messages between members are prohibited." = "Bezpośrednie wiadomości między członkami są zabronione w tej grupie."; /* No comment provided by engineer. */ "Disable (keep overrides)" = "Wyłącz (zachowaj nadpisania)"; +/* alert title */ +"Disable automatic message deletion?" = "Wyłączyć automatyczne usuwanie wiadomości?"; + +/* alert button */ +"Disable delete messages" = "Wyłącz usuwanie wiadomości"; + /* No comment provided by engineer. */ "Disable for all" = "Wyłącz dla wszystkich"; @@ -1779,15 +1953,24 @@ alert button */ /* No comment provided by engineer. */ "Do NOT use SimpleX for emergency calls." = "NIE używaj SimpleX do połączeń alarmowych."; +/* No comment provided by engineer. */ +"Documents:" = "Dokumenty:"; + /* No comment provided by engineer. */ "Don't create address" = "Nie twórz adresu"; /* No comment provided by engineer. */ "Don't enable" = "Nie włączaj"; +/* No comment provided by engineer. */ +"Don't miss important messages." = "Nie przegap ważnych wiadomości."; + /* alert action */ "Don't show again" = "Nie pokazuj ponownie"; +/* No comment provided by engineer. */ +"Done" = "Gotowe"; + /* No comment provided by engineer. */ "Downgrade and open chat" = "Obniż wersję i otwórz czat"; @@ -1834,12 +2017,18 @@ chat item action */ /* No comment provided by engineer. */ "e2e encrypted" = "zaszyfrowany e2e"; +/* No comment provided by engineer. */ +"E2E encrypted notifications." = "Powiadomienia szyfrowane E2E."; + /* chat item action */ "Edit" = "Edytuj"; /* No comment provided by engineer. */ "Edit group profile" = "Edytuj profil grupy"; +/* No comment provided by engineer. */ +"Empty message!" = "Pusta wiadomość!"; + /* No comment provided by engineer. */ "Enable" = "Włącz"; @@ -1852,6 +2041,12 @@ chat item action */ /* No comment provided by engineer. */ "Enable camera access" = "Włącz dostęp do kamery"; +/* No comment provided by engineer. */ +"Enable disappearing messages by default." = "Włącz domyślnie znikające wiadomości."; + +/* No comment provided by engineer. */ +"Enable Flux in Network & servers settings for better metadata privacy." = "Włącz opcję Flux w ustawieniach sieci i serwerów, aby zapewnić lepszą prywatność metadanych."; + /* No comment provided by engineer. */ "Enable for all" = "Włącz dla wszystkich"; @@ -1963,6 +2158,9 @@ chat item action */ /* chat item text */ "encryption re-negotiation required for %@" = "renegocjacja szyfrowania wymagana dla %@"; +/* No comment provided by engineer. */ +"Encryption renegotiation in progress." = "Trwa renegocjacja szyfrowania."; + /* No comment provided by engineer. */ "ended" = "zakończona"; @@ -2011,15 +2209,30 @@ chat item action */ /* No comment provided by engineer. */ "Error aborting address change" = "Błąd przerwania zmiany adresu"; +/* alert title */ +"Error accepting conditions" = "Błąd podczas akceptacji warunków"; + /* No comment provided by engineer. */ "Error accepting contact request" = "Błąd przyjmowania prośby o kontakt"; +/* alert title */ +"Error accepting member" = "Błąd podczas akceptacji członka"; + /* No comment provided by engineer. */ "Error adding member(s)" = "Błąd dodawania członka(ów)"; +/* alert title */ +"Error adding server" = "Błąd podczas dodawania serwera"; + +/* No comment provided by engineer. */ +"Error adding short link" = "Błąd dodawania krótkiego linku"; + /* No comment provided by engineer. */ "Error changing address" = "Błąd zmiany adresu"; +/* alert title */ +"Error changing chat profile" = "Błąd zmiany profilu czatu"; + /* No comment provided by engineer. */ "Error changing connection profile" = "Błąd zmiany połączenia profilu"; @@ -2032,9 +2245,15 @@ chat item action */ /* No comment provided by engineer. */ "Error changing to incognito!" = "Błąd zmiany na incognito!"; +/* No comment provided by engineer. */ +"Error checking token status" = "Błąd sprawdzania statusu tokenu"; + /* alert message */ "Error connecting to forwarding server %@. Please try later." = "Błąd połączenia z serwerem przekierowania %@. Spróbuj ponownie później."; +/* subscription status explanation */ +"Error connecting to the server used to receive messages from this connection: %@" = "Błąd połączenia z serwerem używanym do odbierania wiadomości z tego połączenia: %@"; + /* No comment provided by engineer. */ "Error creating address" = "Błąd tworzenia adresu"; @@ -2044,6 +2263,9 @@ chat item action */ /* No comment provided by engineer. */ "Error creating group link" = "Błąd tworzenia linku grupy"; +/* alert title */ +"Error creating list" = "Błąd tworzenia listy"; + /* No comment provided by engineer. */ "Error creating member contact" = "Błąd tworzenia kontaktu członka"; @@ -2053,9 +2275,15 @@ chat item action */ /* No comment provided by engineer. */ "Error creating profile!" = "Błąd tworzenia profilu!"; +/* No comment provided by engineer. */ +"Error creating report" = "Błąd tworzenia raportu"; + /* No comment provided by engineer. */ "Error decrypting file" = "Błąd odszyfrowania pliku"; +/* alert title */ +"Error deleting chat" = "Błąd usuwania czatu"; + /* alert title */ "Error deleting chat database" = "Błąd usuwania bazy danych czatu"; @@ -2101,12 +2329,18 @@ chat item action */ /* No comment provided by engineer. */ "Error joining group" = "Błąd dołączenia do grupy"; +/* alert title */ +"Error loading servers" = "Błąd ładowania serwerów"; + /* No comment provided by engineer. */ "Error migrating settings" = "Błąd migracji ustawień"; /* No comment provided by engineer. */ "Error opening chat" = "Błąd otwierania czatu"; +/* No comment provided by engineer. */ +"Error opening group" = "Błąd otwierania grupy"; + /* alert title */ "Error receiving file" = "Błąd odbioru pliku"; @@ -2116,12 +2350,24 @@ chat item action */ /* No comment provided by engineer. */ "Error reconnecting servers" = "Błąd ponownego łączenia serwerów"; +/* alert title */ +"Error registering for notifications" = "Błąd rejestracji powiadomień"; + +/* alert title */ +"Error rejecting contact request" = "Błąd odrzucenia prośby o kontakt"; + /* alert title */ "Error removing member" = "Błąd usuwania członka"; +/* alert title */ +"Error reordering lists" = "Błąd ponownego porządkowania list"; + /* No comment provided by engineer. */ "Error resetting statistics" = "Błąd resetowania statystyk"; +/* alert title */ +"Error saving chat list" = "Błąd zapisywania listy czatów"; + /* No comment provided by engineer. */ "Error saving group profile" = "Błąd zapisu profilu grupy"; @@ -2134,6 +2380,9 @@ chat item action */ /* No comment provided by engineer. */ "Error saving passphrase to keychain" = "Błąd zapisu hasła do pęku kluczy"; +/* alert title */ +"Error saving servers" = "Błąd zapisywania serwerów"; + /* when migrating */ "Error saving settings" = "Błąd zapisywania ustawień"; @@ -2152,6 +2401,9 @@ chat item action */ /* No comment provided by engineer. */ "Error sending message" = "Błąd wysyłania wiadomości"; +/* No comment provided by engineer. */ +"Error setting auto-accept" = "Błąd ustawiania automatycznego akceptowania"; + /* No comment provided by engineer. */ "Error setting delivery receipts!" = "Błąd ustawiania potwierdzeń dostawy!"; @@ -2170,12 +2422,18 @@ chat item action */ /* No comment provided by engineer. */ "Error synchronizing connection" = "Błąd synchronizacji połączenia"; +/* No comment provided by engineer. */ +"Error testing server connection" = "Błąd testowania połączenia z serwerem"; + /* No comment provided by engineer. */ "Error updating group link" = "Błąd aktualizacji linku grupy"; /* No comment provided by engineer. */ "Error updating message" = "Błąd aktualizacji wiadomości"; +/* alert title */ +"Error updating server" = "Błąd aktualizacji serwera"; + /* No comment provided by engineer. */ "Error updating settings" = "Błąd aktualizacji ustawień"; @@ -2196,6 +2454,9 @@ file error text snd error text */ "Error: %@" = "Błąd: %@"; +/* server test error */ +"Error: %@." = "Błąd: %@."; + /* No comment provided by engineer. */ "Error: no database file" = "Błąd: brak pliku bazy danych"; @@ -2205,6 +2466,9 @@ snd error text */ /* No comment provided by engineer. */ "Errors" = "Błędy"; +/* servers error */ +"Errors in servers configuration." = "Błędy w konfiguracji serwerów."; + /* No comment provided by engineer. */ "Even when disabled in the conversation." = "Nawet po wyłączeniu w rozmowie."; @@ -2217,6 +2481,9 @@ snd error text */ /* No comment provided by engineer. */ "expired" = "wygasły"; +/* token status text */ +"Expired" = "Wygasło"; + /* No comment provided by engineer. */ "Export database" = "Eksportuj bazę danych"; @@ -2241,18 +2508,30 @@ snd error text */ /* No comment provided by engineer. */ "Fast and no wait until the sender is online!" = "Szybko i bez czekania aż nadawca będzie online!"; +/* No comment provided by engineer. */ +"Faster deletion of groups." = "Szybsze usuwanie grup."; + /* No comment provided by engineer. */ "Faster joining and more reliable messages." = "Szybsze dołączenie i bardziej niezawodne wiadomości."; +/* No comment provided by engineer. */ +"Faster sending messages." = "Szybsze wysyłanie wiadomości."; + /* swipe action */ "Favorite" = "Ulubione"; +/* No comment provided by engineer. */ +"Favorites" = "Ulubione"; + /* file error alert title */ "File error" = "Błąd pliku"; /* alert message */ "File errors:\n%@" = "Błędy pliku:\n%@"; +/* file error text */ +"File is blocked by server operator:\n%@." = "Plik jest zablokowany przez operatora serwera:\n%@."; + /* file error text */ "File not found - most likely file was deleted or cancelled." = "Nie odnaleziono pliku - najprawdopodobniej plik został usunięty lub anulowany."; @@ -2286,6 +2565,9 @@ snd error text */ /* chat feature */ "Files and media" = "Pliki i media"; +/* No comment provided by engineer. */ +"Files and media are prohibited in this chat." = "W tym czacie nie wolno przesyłać plików ani multimediów."; + /* No comment provided by engineer. */ "Files and media are prohibited." = "Pliki i media są zabronione w tej grupie."; @@ -2295,6 +2577,9 @@ snd error text */ /* No comment provided by engineer. */ "Files and media prohibited!" = "Pliki i media zabronione!"; +/* No comment provided by engineer. */ +"Filter" = "Filtr"; + /* No comment provided by engineer. */ "Filter unread and favorite chats." = "Filtruj nieprzeczytane i ulubione czaty."; @@ -2310,8 +2595,17 @@ snd error text */ /* No comment provided by engineer. */ "Find chats faster" = "Szybciej znajduj czaty"; +/* No comment provided by engineer. */ +"Fingerprint in destination server address does not match certificate: %@." = "Odcisk palca w adresie serwera docelowego nie zgadza się z certyfikatem: %@."; + +/* No comment provided by engineer. */ +"Fingerprint in forwarding server address does not match certificate: %@." = "Odcisk palca w adresie serwera przekazującego nie zgadza się z certyfikatem: %@."; + +/* No comment provided by engineer. */ +"Fingerprint in server address does not match certificate: %@." = "Odcisk palca w adresie serwera nie zgadza się z certyfikatem: %@."; + /* server test error */ -"Fingerprint in server address does not match certificate." = "Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy"; +"Fingerprint in server address does not match certificate." = "Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy."; /* No comment provided by engineer. */ "Fix" = "Napraw"; @@ -2331,9 +2625,27 @@ snd error text */ /* No comment provided by engineer. */ "Fix not supported by group member" = "Naprawa nie jest obsługiwana przez członka grupy"; +/* No comment provided by engineer. */ +"For all moderators" = "Dla wszystkich moderatorów"; + +/* servers error */ +"For chat profile %@:" = "Dla profilu czatu %@:"; + /* No comment provided by engineer. */ "For console" = "Dla konsoli"; +/* No comment provided by engineer. */ +"For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." = "Na przykład, jeśli Twój kontakt odbiera wiadomości za pośrednictwem serwera SimpleX Chat, Twoja aplikacja będzie je dostarczać za pośrednictwem serwera Flux."; + +/* No comment provided by engineer. */ +"For me" = "Dla mnie"; + +/* No comment provided by engineer. */ +"For private routing" = "Dla prywatnego routingu"; + +/* No comment provided by engineer. */ +"For social media" = "Dla mediów społecznościowych"; + /* chat item action */ "Forward" = "Przekaż dalej"; @@ -2349,6 +2661,9 @@ snd error text */ /* alert message */ "Forward messages without files?" = "Przekazać wiadomości bez plików?"; +/* No comment provided by engineer. */ +"Forward up to 20 messages at once." = "Przekaż jednocześnie do 20 wiadomości."; + /* No comment provided by engineer. */ "forwarded" = "przekazane dalej"; @@ -2397,6 +2712,9 @@ snd error text */ /* No comment provided by engineer. */ "Further reduced battery usage" = "Jeszcze mniejsze zużycie baterii"; +/* No comment provided by engineer. */ +"Get notified when mentioned." = "Otrzymuj powiadomienia, gdy ktoś wspomni o Tobie."; + /* No comment provided by engineer. */ "GIFs and stickers" = "GIF-y i naklejki"; @@ -2406,6 +2724,9 @@ snd error text */ /* message preview */ "Good morning!" = "Dzień dobry!"; +/* shown on group welcome message */ +"group" = "grupa"; + /* No comment provided by engineer. */ "Group" = "Grupa"; @@ -2436,6 +2757,9 @@ snd error text */ /* No comment provided by engineer. */ "Group invitation is no longer valid, it was removed by sender." = "Zaproszenie do grupy jest już nieważne, zostało usunięte przez nadawcę."; +/* No comment provided by engineer. */ +"group is deleted" = "grupa została usunięta"; + /* No comment provided by engineer. */ "Group link" = "Link do grupy"; @@ -2460,6 +2784,9 @@ snd error text */ /* snd group event chat item */ "group profile updated" = "zaktualizowano profil grupy"; +/* alert message */ +"Group profile was changed. If you save it, the updated profile will be sent to group members." = "Profil grupy został zmieniony. Jeśli go zapiszesz, zaktualizowany profil zostanie wysłany do członków grupy."; + /* No comment provided by engineer. */ "Group welcome message" = "Wiadomość powitalna grupy"; @@ -2469,9 +2796,15 @@ snd error text */ /* No comment provided by engineer. */ "Group will be deleted for you - this cannot be undone!" = "Grupa zostanie usunięta dla Ciebie - nie można tego cofnąć!"; +/* No comment provided by engineer. */ +"Groups" = "Grupy"; + /* No comment provided by engineer. */ "Help" = "Pomoc"; +/* No comment provided by engineer. */ +"Help admins moderating their groups." = "Pomóż administratorom moderować ich grupy."; + /* No comment provided by engineer. */ "Hidden" = "Ukryte"; @@ -2502,6 +2835,15 @@ snd error text */ /* time unit */ "hours" = "godziny"; +/* No comment provided by engineer. */ +"How it affects privacy" = "Jak to wpływa na prywatność"; + +/* No comment provided by engineer. */ +"How it helps privacy" = "Jak to pomaga chronić prywatność"; + +/* alert button */ +"How it works" = "Jak to działa"; + /* No comment provided by engineer. */ "How SimpleX works" = "Jak działa SimpleX"; @@ -2541,6 +2883,9 @@ snd error text */ /* No comment provided by engineer. */ "Image will be received when your contact is online, please wait or check later!" = "Obraz zostanie odebrany, gdy kontakt będzie online, poczekaj lub sprawdź później!"; +/* No comment provided by engineer. */ +"Images" = "Zdjęcia"; + /* No comment provided by engineer. */ "Immediately" = "Natychmiast"; @@ -2565,6 +2910,9 @@ snd error text */ /* No comment provided by engineer. */ "Importing archive" = "Importowanie archiwum"; +/* No comment provided by engineer. */ +"Improved delivery, reduced traffic usage.\nMore improvements are coming soon!" = "Ulepszona dostawa, mniejsze zużycie ruchu.\nWkrótce pojawią się kolejne ulepszenia!"; + /* No comment provided by engineer. */ "Improved message delivery" = "Ulepszona dostawa wiadomości"; @@ -2586,6 +2934,12 @@ snd error text */ /* No comment provided by engineer. */ "inactive" = "nieaktywny"; +/* report reason */ +"Inappropriate content" = "Nieodpowiednia treść"; + +/* report reason */ +"Inappropriate profile" = "Nieodpowiedni profil"; + /* No comment provided by engineer. */ "Incognito" = "Incognito"; @@ -2652,6 +3006,21 @@ snd error text */ /* No comment provided by engineer. */ "Interface colors" = "Kolory interfejsu"; +/* token status text */ +"Invalid" = "Nieprawidłowy"; + +/* token status text */ +"Invalid (bad token)" = "Nieprawidłowy (zły token)"; + +/* token status text */ +"Invalid (expired)" = "Nieważny (wygasły)"; + +/* token status text */ +"Invalid (unregistered)" = "Nieprawidłowy (niezarejestrowany)"; + +/* token status text */ +"Invalid (wrong topic)" = "Nieprawidłowy (niewłaściwy temat)"; + /* invalid chat data */ "invalid chat" = "nieprawidłowy czat"; @@ -2700,9 +3069,15 @@ snd error text */ /* No comment provided by engineer. */ "Invite friends" = "Zaproś znajomych"; +/* No comment provided by engineer. */ +"Invite member" = "Zaproś członka"; + /* No comment provided by engineer. */ "Invite members" = "Zaproś członków"; +/* No comment provided by engineer. */ +"Invite to chat" = "Zaproś do czatu"; + /* No comment provided by engineer. */ "Invite to group" = "Zaproś do grupy"; @@ -2793,6 +3168,9 @@ snd error text */ /* alert title */ "Keep unused invitation?" = "Zachować nieużyte zaproszenie?"; +/* No comment provided by engineer. */ +"Keep your chats clean" = "Utrzymuj czystość swoich czatów"; + /* No comment provided by engineer. */ "Keep your connections" = "Zachowaj swoje połączenia"; @@ -2811,6 +3189,12 @@ snd error text */ /* swipe action */ "Leave" = "Opuść"; +/* No comment provided by engineer. */ +"Leave chat" = "Opuść czat"; + +/* No comment provided by engineer. */ +"Leave chat?" = "Opuścić czat?"; + /* No comment provided by engineer. */ "Leave group" = "Opuść grupę"; @@ -2820,6 +3204,9 @@ snd error text */ /* rcv group event chat item */ "left" = "opuścił"; +/* No comment provided by engineer. */ +"Less traffic on mobile networks." = "Mniejszy ruch w sieciach komórkowych."; + /* email subject */ "Let's talk in SimpleX Chat" = "Porozmawiajmy w SimpleX Chat"; @@ -2838,6 +3225,18 @@ snd error text */ /* No comment provided by engineer. */ "Linked desktops" = "Połączone komputery"; +/* No comment provided by engineer. */ +"Links" = "Linki"; + +/* swipe action */ +"List" = "Lista"; + +/* No comment provided by engineer. */ +"List name and emoji should be different for all lists." = "Nazwa listy i emoji powinny być różne dla wszystkich list."; + +/* No comment provided by engineer. */ +"List name..." = "Nazwa listy..."; + /* No comment provided by engineer. */ "LIVE" = "NA ŻYWO"; @@ -2847,6 +3246,9 @@ snd error text */ /* No comment provided by engineer. */ "Live messages" = "Wiadomości na żywo"; +/* in progress text */ +"Loading profile…" = "Ładowanie profilu…"; + /* No comment provided by engineer. */ "Local name" = "Nazwa lokalna"; @@ -2898,30 +3300,60 @@ snd error text */ /* No comment provided by engineer. */ "Member" = "Członek"; +/* past/unknown group member */ +"Member %@" = "Członek %@"; + /* profile update event chat item */ "member %@ changed to %@" = "członek %1$@ zmieniony na %2$@"; +/* No comment provided by engineer. */ +"Member admission" = "Przyjmowanie członków"; + /* rcv group event chat item */ "member connected" = "połączony"; +/* No comment provided by engineer. */ +"member has old version" = "członek posiada starą wersję"; + /* item status text */ "Member inactive" = "Członek nieaktywny"; +/* No comment provided by engineer. */ +"Member is deleted - can't accept request" = "Członek został usunięty – nie można zaakceptować prośby"; + +/* alert message */ +"Member messages will be deleted - this cannot be undone!" = "Wiadomości członków zostaną usunięte – nie można tego cofnąć!"; + +/* chat feature */ +"Member reports" = "Raporty członków"; + +/* No comment provided by engineer. */ +"Member role will be changed to \"%@\". All chat members will be notified." = "Rola członka zostanie zmieniona na \"%@\". Wszyscy członkowie czatu zostaną o tym poinformowani."; + /* No comment provided by engineer. */ "Member role will be changed to \"%@\". All group members will be notified." = "Rola członka grupy zostanie zmieniona na \"%@\". Wszyscy członkowie grupy zostaną powiadomieni."; /* No comment provided by engineer. */ "Member role will be changed to \"%@\". The member will receive a new invitation." = "Rola członka zostanie zmieniona na \"%@\". Członek otrzyma nowe zaproszenie."; +/* alert message */ +"Member will be removed from chat - this cannot be undone!" = "Członek zostanie usunięty z czatu – nie można tego cofnąć!"; + /* alert message */ "Member will be removed from group - this cannot be undone!" = "Członek zostanie usunięty z grupy - nie można tego cofnąć!"; +/* alert message */ +"Member will join the group, accept member?" = "Członek dołączy do grupy, zaakceptować członka?"; + /* No comment provided by engineer. */ "Members can add message reactions." = "Członkowie grupy mogą dodawać reakcje wiadomości."; /* No comment provided by engineer. */ "Members can irreversibly delete sent messages. (24 hours)" = "Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)"; +/* No comment provided by engineer. */ +"Members can report messsages to moderators." = "Członkowie mogą zgłaszać wiadomości moderatorom."; + /* No comment provided by engineer. */ "Members can send direct messages." = "Członkowie grupy mogą wysyłać bezpośrednie wiadomości."; @@ -2937,6 +3369,9 @@ snd error text */ /* No comment provided by engineer. */ "Members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe."; +/* No comment provided by engineer. */ +"Mention members 👋" = "Wspomnij członków 👋"; + /* No comment provided by engineer. */ "Menus" = "Menu"; @@ -2958,6 +3393,9 @@ snd error text */ /* item status text */ "Message forwarded" = "Wiadomość przekazana"; +/* No comment provided by engineer. */ +"Message instantly once you tap Connect." = "Wysyłaj wiadomości natychmiast po dotknięciu przycisku „Połącz”."; + /* item status description */ "Message may be delivered later if member becomes active." = "Wiadomość może zostać dostarczona później jeśli członek stanie się aktywny."; @@ -3006,9 +3444,15 @@ snd error text */ /* No comment provided by engineer. */ "Messages & files" = "Wiadomości i pliki"; +/* No comment provided by engineer. */ +"Messages are protected by **end-to-end encryption**." = "Wiadomości są chronione przez **szyfrowanie typu end-to-end**."; + /* No comment provided by engineer. */ "Messages from %@ will be shown!" = "Wiadomości od %@ zostaną pokazane!"; +/* alert message */ +"Messages in this chat will never be deleted." = "Wiadomości na tym czacie nigdy nie zostaną usunięte."; + /* No comment provided by engineer. */ "Messages received" = "Otrzymane wiadomości"; @@ -3081,15 +3525,24 @@ snd error text */ /* marked deleted chat item preview text */ "moderated by %@" = "moderowany przez %@"; +/* member role */ +"moderator" = "moderator"; + /* time unit */ "months" = "miesiące"; +/* swipe action */ +"More" = "Więcej"; + /* No comment provided by engineer. */ "More improvements are coming soon!" = "Więcej ulepszeń już wkrótce!"; /* No comment provided by engineer. */ "More reliable network connection." = "Bardziej niezawodne połączenia sieciowe."; +/* No comment provided by engineer. */ +"More reliable notifications" = "Bardziej niezawodne powiadomienia"; + /* item status description */ "Most likely this connection is deleted." = "Najprawdopodobniej to połączenie jest usunięte."; @@ -3099,6 +3552,9 @@ snd error text */ /* notification label action */ "Mute" = "Wycisz"; +/* notification label action */ +"Mute all" = "Wycisz wszystko"; + /* No comment provided by engineer. */ "Muted when inactive!" = "Wyciszony, gdy jest nieaktywny!"; @@ -3111,12 +3567,18 @@ snd error text */ /* No comment provided by engineer. */ "Network connection" = "Połączenie z siecią"; +/* No comment provided by engineer. */ +"Network decentralization" = "Decentralizacja sieci"; + /* snd error text */ "Network issues - message expired after many attempts to send it." = "Błąd sieciowy - wiadomość wygasła po wielu próbach wysłania jej."; /* No comment provided by engineer. */ "Network management" = "Zarządzenie sieciowe"; +/* No comment provided by engineer. */ +"Network operator" = "Operator sieci"; + /* No comment provided by engineer. */ "Network settings" = "Ustawienia sieci"; @@ -3126,6 +3588,9 @@ snd error text */ /* delete after time */ "never" = "nigdy"; +/* token status text */ +"New" = "Nowy"; + /* No comment provided by engineer. */ "New chat" = "Nowy czat"; @@ -3144,6 +3609,12 @@ snd error text */ /* No comment provided by engineer. */ "New display name" = "Nowa wyświetlana nazwa"; +/* notification */ +"New events" = "Nowe wydarzenia"; + +/* No comment provided by engineer. */ +"New group role: Moderator" = "Nowa rola w grupie: Moderator"; + /* No comment provided by engineer. */ "New in %@" = "Nowość w %@"; @@ -3153,6 +3624,9 @@ snd error text */ /* No comment provided by engineer. */ "New member role" = "Nowa rola członka"; +/* rcv group event chat item */ +"New member wants to join the group." = "Nowy członek chce dołączyć do grupy."; + /* notification */ "new message" = "nowa wiadomość"; @@ -3165,6 +3639,9 @@ snd error text */ /* No comment provided by engineer. */ "New passphrase…" = "Nowe hasło…"; +/* No comment provided by engineer. */ +"New server" = "Nowy serwer"; + /* No comment provided by engineer. */ "New SOCKS credentials will be used every time you start the app." = "Nowe poświadczenia SOCKS będą używane przy każdym uruchomieniu aplikacji."; @@ -3180,6 +3657,18 @@ snd error text */ /* Authentication unavailable */ "No app password" = "Brak hasła aplikacji"; +/* No comment provided by engineer. */ +"No chats" = "Żadnych czatów"; + +/* No comment provided by engineer. */ +"No chats found" = "Nie znaleziono żadnych czatów"; + +/* No comment provided by engineer. */ +"No chats in list %@" = "Brak czatów na liście %@"; + +/* No comment provided by engineer. */ +"No chats with members" = "Żadnych rozmów z członkami"; + /* No comment provided by engineer. */ "No contacts selected" = "Nie wybrano kontaktów"; @@ -3210,6 +3699,15 @@ snd error text */ /* No comment provided by engineer. */ "No info, try to reload" = "Brak informacji, spróbuj przeładować"; +/* servers error */ +"No media & file servers." = "Brak mediów i serwerów plików multimedialnych."; + +/* No comment provided by engineer. */ +"No message" = "Brak wiadomości"; + +/* servers error */ +"No message servers." = "Brak serwerów wiadomości."; + /* No comment provided by engineer. */ "No network connection" = "Brak połączenia z siecią"; @@ -3222,21 +3720,51 @@ snd error text */ /* No comment provided by engineer. */ "No permission to record voice message" = "Brak uprawnień do nagrywania wiadomości głosowej"; +/* alert title */ +"No private routing session" = "Brak prywatnej sesji routingu"; + /* No comment provided by engineer. */ "No push server" = "Lokalnie"; /* No comment provided by engineer. */ "No received or sent files" = "Brak odebranych lub wysłanych plików"; +/* servers error */ +"No servers for private message routing." = "Brak serwerów prywatnej sesji routingu."; + +/* servers error */ +"No servers to receive files." = "Brak serwerów do otrzymania plików."; + +/* servers error */ +"No servers to receive messages." = "Brak serwerów aby otrzymać wiadomości."; + +/* servers error */ +"No servers to send files." = "Brak serwerów do wysyłania plików."; + +/* No comment provided by engineer. */ +"no subscription" = "brak subskrypcji"; + /* copied message info in history */ "no text" = "brak tekstu"; +/* alert title */ +"No token!" = "Brak tokenu!"; + +/* No comment provided by engineer. */ +"No unread chats" = "Brak nieprzeczytanych czatów"; + /* No comment provided by engineer. */ "No user identifiers." = "Brak identyfikatorów użytkownika."; /* No comment provided by engineer. */ "Not compatible!" = "Nie kompatybilny!"; +/* No comment provided by engineer. */ +"not synchronized" = "nie zsynchronizowano"; + +/* No comment provided by engineer. */ +"Notes" = "Notatki"; + /* No comment provided by engineer. */ "Nothing selected" = "Nic nie jest zaznaczone"; @@ -3249,6 +3777,15 @@ snd error text */ /* No comment provided by engineer. */ "Notifications are disabled!" = "Powiadomienia są wyłączone!"; +/* alert title */ +"Notifications error" = "Błąd powiadomień"; + +/* No comment provided by engineer. */ +"Notifications privacy" = "Prywatność powiadomień"; + +/* alert title */ +"Notifications status" = "Stan powiadomień"; + /* No comment provided by engineer. */ "Now admins can:\n- delete members' messages.\n- disable members (\"observer\" role)" = "Teraz administratorzy mogą:\n- usuwać wiadomości członków.\n- wyłączyć członków (rola \"obserwatora\")"; @@ -3296,6 +3833,9 @@ new chat action */ /* No comment provided by engineer. */ "Onion hosts will not be used." = "Hosty onion nie będą używane."; +/* No comment provided by engineer. */ +"Only chat owners can change preferences." = "Tylko właściciele czatu mogą zmieniać preferencje."; + /* No comment provided by engineer. */ "Only client devices store user profiles, contacts, groups, and messages." = "Tylko urządzenia klienckie przechowują profile użytkowników, kontakty, grupy i wiadomości wysyłane za pomocą **2-warstwowego szyfrowania end-to-end**."; @@ -3311,6 +3851,12 @@ new chat action */ /* No comment provided by engineer. */ "Only group owners can enable voice messages." = "Tylko właściciele grup mogą włączyć wiadomości głosowe."; +/* No comment provided by engineer. */ +"Only sender and moderators see it" = "Widzą to tylko nadawca i moderatorzy"; + +/* No comment provided by engineer. */ +"Only you and moderators see it" = "Widzisz to tylko Ty i moderatorzy"; + /* No comment provided by engineer. */ "Only you can add message reactions." = "Tylko Ty możesz dodawać reakcje wiadomości."; @@ -3323,6 +3869,9 @@ new chat action */ /* No comment provided by engineer. */ "Only you can send disappearing messages." = "Tylko Ty możesz wysyłać znikające wiadomości."; +/* No comment provided by engineer. */ +"Only you can send files and media." = "Tylko Ty możesz wysyłać pliki i multimedia."; + /* No comment provided by engineer. */ "Only you can send voice messages." = "Tylko Ty możesz wysyłać wiadomości głosowe."; @@ -3338,30 +3887,75 @@ new chat action */ /* No comment provided by engineer. */ "Only your contact can send disappearing messages." = "Tylko Twój kontakt może wysyłać znikające wiadomości."; +/* No comment provided by engineer. */ +"Only your contact can send files and media." = "Tylko Twój kontakt może wysyłać pliki i multimedia."; + /* No comment provided by engineer. */ "Only your contact can send voice messages." = "Tylko Twój kontakt może wysyłać wiadomości głosowe."; /* alert action */ "Open" = "Otwórz"; +/* No comment provided by engineer. */ +"Open changes" = "Otwórz zmiany"; + /* new chat action */ "Open chat" = "Otwórz czat"; /* authentication reason */ "Open chat console" = "Otwórz konsolę czatu"; +/* alert action */ +"Open clean link" = "Otwórz czysty link"; + +/* No comment provided by engineer. */ +"Open conditions" = "Otwórz warunki"; + +/* alert action */ +"Open full link" = "Otwórz pełny link"; + /* new chat action */ "Open group" = "Grupa otwarta"; +/* alert title */ +"Open link?" = "Otworzyć link?"; + /* authentication reason */ "Open migration to another device" = "Otwórz migrację na innym urządzeniu"; +/* new chat action */ +"Open new chat" = "Otwórz nowy czat"; + +/* new chat action */ +"Open new group" = "Otwórz nową grupę"; + /* No comment provided by engineer. */ "Open Settings" = "Otwórz Ustawienia"; +/* No comment provided by engineer. */ +"Open to accept" = "Otwórz by zaakceptować"; + +/* No comment provided by engineer. */ +"Open to connect" = "Otwórz aby się połączyć"; + +/* No comment provided by engineer. */ +"Open to join" = "Otwórz aby dołączyć"; + +/* No comment provided by engineer. */ +"Open to use bot" = "Otwórz aby skorzystać z bota"; + /* No comment provided by engineer. */ "Opening app…" = "Otwieranie aplikacji…"; +/* No comment provided by engineer. */ +"Operator" = "Operator"; + +/* alert title */ +"Operator server" = "Serwer Operatora"; + +/* No comment provided by engineer. */ +"Or import archive file" = "Lub zaimportuj plik archiwalny"; + /* No comment provided by engineer. */ "Or paste archive link" = "Lub wklej link archiwum"; @@ -3374,6 +3968,12 @@ new chat action */ /* No comment provided by engineer. */ "Or show this code" = "Lub pokaż ten kod"; +/* No comment provided by engineer. */ +"Or to share privately" = "Lub udostępnij prywatnie"; + +/* No comment provided by engineer. */ +"Organize chats into lists" = "Organizuj czaty jako listy"; + /* No comment provided by engineer. */ "other" = "inne"; @@ -3428,9 +4028,18 @@ new chat action */ /* No comment provided by engineer. */ "peer-to-peer" = "peer-to-peer"; +/* No comment provided by engineer. */ +"pending" = "oczekuje"; + /* No comment provided by engineer. */ "Pending" = "Oczekujące"; +/* No comment provided by engineer. */ +"pending approval" = "oczekuje na zatwierdzenie"; + +/* No comment provided by engineer. */ +"pending review" = "oczekuje na ocenę"; + /* No comment provided by engineer. */ "Periodic" = "Okresowo"; @@ -3497,6 +4106,18 @@ new chat action */ /* No comment provided by engineer. */ "Please store passphrase securely, you will NOT be able to change it if you lose it." = "Przechowuj kod dostępu w bezpieczny sposób, w przypadku jego utraty NIE będzie można go zmienić."; +/* token info */ +"Please try to disable and re-enable notfications." = "Spróbuj wyłączyć, a następnie ponownie włączyć powiadomienia."; + +/* snd group event chat item */ +"Please wait for group moderators to review your request to join the group." = "Poczekaj, aż moderatorzy grupy rozpatrzą Twoją prośbę o dołączenie do grupy."; + +/* token info */ +"Please wait for token activation to complete." = "Proszę poczekać na zakończenie aktywacji tokenu."; + +/* token info */ +"Please wait for token to be registered." = "Proszę poczekać na zarejestrowanie tokenu."; + /* No comment provided by engineer. */ "Polish interface" = "Polski interfejs"; @@ -3509,6 +4130,9 @@ new chat action */ /* No comment provided by engineer. */ "Preset server address" = "Wstępnie ustawiony adres serwera"; +/* No comment provided by engineer. */ +"Preset servers" = "Domyślne serwery"; + /* No comment provided by engineer. */ "Preview" = "Podgląd"; @@ -3518,12 +4142,24 @@ new chat action */ /* No comment provided by engineer. */ "Privacy & security" = "Prywatność i bezpieczeństwo"; +/* No comment provided by engineer. */ +"Privacy for your customers." = "Prywatność dla Twoich klientów."; + +/* No comment provided by engineer. */ +"Privacy policy and conditions of use." = "Polityka prywatności i warunki korzystania."; + /* No comment provided by engineer. */ "Privacy redefined" = "Redefinicja prywatności"; +/* No comment provided by engineer. */ +"Private chats, groups and your contacts are not accessible to server operators." = "Prywatne czaty, grupy i Twoje kontakty nie są dostępne dla operatorów serwerów."; + /* No comment provided by engineer. */ "Private filenames" = "Prywatne nazwy plików"; +/* No comment provided by engineer. */ +"Private media file names." = "Nazwy prywatnych plików multimedialnych."; + /* No comment provided by engineer. */ "Private message routing" = "Trasowanie prywatnych wiadomości"; @@ -3539,6 +4175,9 @@ new chat action */ /* alert title */ "Private routing error" = "Błąd prywatnego trasowania"; +/* alert title */ +"Private routing timeout" = "Limit czasu routingu prywatnego"; + /* No comment provided by engineer. */ "Profile and server connections" = "Profil i połączenia z serwerem"; @@ -3569,6 +4208,9 @@ new chat action */ /* No comment provided by engineer. */ "Prohibit messages reactions." = "Zabroń reakcje wiadomości."; +/* No comment provided by engineer. */ +"Prohibit reporting messages to moderators." = "Zabroń raportowania wiadomości moderatorom."; + /* No comment provided by engineer. */ "Prohibit sending direct messages to members." = "Zabroń wysyłania bezpośrednich wiadomości do członków."; @@ -3596,6 +4238,9 @@ new chat action */ /* No comment provided by engineer. */ "Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Chroni Twój adres IP przed przekaźnikami wiadomości wybranych przez Twoje kontakty.\nWłącz w ustawianiach *Sieć i serwery* ."; +/* No comment provided by engineer. */ +"Protocol background timeout" = "Limit czasu protokołu w tle"; + /* No comment provided by engineer. */ "Protocol timeout" = "Limit czasu protokołu"; @@ -3728,6 +4373,15 @@ new chat action */ /* No comment provided by engineer. */ "Reduced battery usage" = "Zmniejszone zużycie baterii"; +/* No comment provided by engineer. */ +"Register" = "Zarejestruj"; + +/* token info */ +"Register notification token?" = "Zarejestrować token powiadomień?"; + +/* token status text */ +"Registered" = "Zarejestrowany"; + /* alert action reject incoming call via notification swipe action */ @@ -3739,6 +4393,12 @@ swipe action */ /* alert title */ "Reject contact request" = "Odrzuć prośbę kontaktu"; +/* alert title */ +"Reject member?" = "Odrzucić członka?"; + +/* No comment provided by engineer. */ +"rejected" = "odrzucono"; + /* call status */ "rejected call" = "odrzucone połączenie"; @@ -3751,12 +4411,18 @@ swipe action */ /* alert action */ "Remove" = "Usuń"; +/* alert action */ +"Remove and delete messages" = "Usuń i skasuj wiadomości"; + /* No comment provided by engineer. */ "Remove archive?" = "Usunąć archiwum?"; /* No comment provided by engineer. */ "Remove image" = "Usuń obraz"; +/* No comment provided by engineer. */ +"Remove link tracking" = "Usuń śledzenie linków"; + /* No comment provided by engineer. */ "Remove member" = "Usuń członka"; @@ -3775,12 +4441,18 @@ swipe action */ /* profile update event chat item */ "removed contact address" = "usunięto adres kontaktu"; +/* No comment provided by engineer. */ +"removed from group" = "usunięty z grupy"; + /* profile update event chat item */ "removed profile picture" = "usunięto zdjęcie profilu"; /* rcv group event chat item */ "removed you" = "usunął cię"; +/* No comment provided by engineer. */ +"Removes messages and blocks members." = "Usuwa wiadomości i blokuje członków."; + /* No comment provided by engineer. */ "Renegotiate" = "Renegocjuj"; @@ -3802,6 +4474,54 @@ swipe action */ /* chat item action */ "Reply" = "Odpowiedz"; +/* chat item action */ +"Report" = "Zgłoś"; + +/* report reason */ +"Report content: only group moderators will see it." = "Zgłoś treść: zobaczą ją tylko moderatorzy grupy."; + +/* report reason */ +"Report member profile: only group moderators will see it." = "Zgłoś profil członka: będą go widzieć tylko moderatorzy grupy."; + +/* report reason */ +"Report other: only group moderators will see it." = "Zgłoś inne: zobaczą to tylko moderatorzy grupy."; + +/* No comment provided by engineer. */ +"Report reason?" = "Jaki jest powód zgłoszenia?"; + +/* alert title */ +"Report sent to moderators" = "Zgłoszenia wysłane do moderatorów"; + +/* report reason */ +"Report spam: only group moderators will see it." = "Zgłoś spam: tylko moderatorzy grupy będą to widzieć."; + +/* report reason */ +"Report violation: only group moderators will see it." = "Zgłoś naruszenie: zobaczą je tylko moderatorzy grupy."; + +/* report in notification */ +"Report: %@" = "Zgłoszenie: %@"; + +/* No comment provided by engineer. */ +"Reporting messages to moderators is prohibited." = "Zgłaszanie wiadomości moderatorom jest zabronione."; + +/* No comment provided by engineer. */ +"Reports" = "Zgłoszenia"; + +/* No comment provided by engineer. */ +"request is sent" = "prośba została wysłana"; + +/* No comment provided by engineer. */ +"request to join rejected" = "prośba o dołączenie została odrzucona"; + +/* rcv group event chat item */ +"requested connection" = "prośba o połączenie"; + +/* rcv direct event chat item */ +"requested connection from group %@" = "prośba o połączenie od grupy %@"; + +/* chat list item title */ +"requested to connect" = "poproszono o połączenie"; + /* No comment provided by engineer. */ "Required" = "Wymagane"; @@ -3853,6 +4573,24 @@ swipe action */ /* chat item action */ "Reveal" = "Ujawnij"; +/* No comment provided by engineer. */ +"review" = "ocena"; + +/* No comment provided by engineer. */ +"Review conditions" = "Przejrzyj warunki"; + +/* No comment provided by engineer. */ +"Review group members" = "Przejrzyj członków grupy"; + +/* admission stage */ +"Review members" = "Przejrzyj członków"; + +/* admission stage description */ +"Review members before admitting (\"knocking\")." = "Przejrzyj członków przed dopuszczeniem (\"zapukaj\")."; + +/* No comment provided by engineer. */ +"reviewed by admins" = "sprawdzone przez administratorów"; + /* No comment provided by engineer. */ "Revoke" = "Odwołaj"; @@ -3881,6 +4619,12 @@ chat item action */ /* alert button */ "Save (and notify contacts)" = "Zapisz (i powiadom kontakty)"; +/* alert button */ +"Save (and notify members)" = "Zapisz (i powiadom członków)"; + +/* alert title */ +"Save admission settings?" = "Zapisać ustawienia wstępu?"; + /* alert button */ "Save and notify contact" = "Zapisz i powiadom kontakt"; @@ -3896,6 +4640,12 @@ chat item action */ /* No comment provided by engineer. */ "Save group profile" = "Zapisz profil grupy"; +/* alert title */ +"Save group profile?" = "Zapisać profil grupy?"; + +/* No comment provided by engineer. */ +"Save list" = "Zapisz listę"; + /* No comment provided by engineer. */ "Save passphrase and open chat" = "Zapisz hasło i otwórz czat"; @@ -3971,9 +4721,24 @@ chat item action */ /* No comment provided by engineer. */ "Search bar accepts invitation links." = "Pasek wyszukiwania akceptuje linki zaproszenia."; +/* No comment provided by engineer. */ +"Search files" = "Szukaj plików"; + +/* No comment provided by engineer. */ +"Search images" = "Szukaj zdjęć"; + +/* No comment provided by engineer. */ +"Search links" = "Szukaj linków"; + /* No comment provided by engineer. */ "Search or paste SimpleX link" = "Wyszukaj lub wklej link SimpleX"; +/* No comment provided by engineer. */ +"Search videos" = "Szukaj wideo"; + +/* No comment provided by engineer. */ +"Search voice messages" = "Szukaj wiadomości głosowych"; + /* network option */ "sec" = "sek"; @@ -4031,6 +4796,9 @@ chat item action */ /* No comment provided by engineer. */ "Send a live message - it will update for the recipient(s) as you type it" = "Wysyłaj wiadomości na żywo - będą one aktualizowane dla odbiorcy(ów) w trakcie ich wpisywania"; +/* No comment provided by engineer. */ +"Send contact request?" = "Wysłać prośbę o kontakt?"; + /* No comment provided by engineer. */ "Send delivery receipts to" = "Wyślij potwierdzenia dostawy do"; @@ -4061,18 +4829,30 @@ chat item action */ /* No comment provided by engineer. */ "Send notifications" = "Wyślij powiadomienia"; +/* No comment provided by engineer. */ +"Send private reports" = "Wyślij prywatne zgłoszenia"; + /* No comment provided by engineer. */ "Send questions and ideas" = "Wyślij pytania i pomysły"; /* No comment provided by engineer. */ "Send receipts" = "Wyślij potwierdzenia"; +/* No comment provided by engineer. */ +"Send request" = "Wyślij prośbę"; + +/* No comment provided by engineer. */ +"Send request without message" = "Wyślij prośbę bez wiadomości"; + /* No comment provided by engineer. */ "Send them from gallery or custom keyboards." = "Wyślij je z galerii lub niestandardowych klawiatur."; /* No comment provided by engineer. */ "Send up to 100 last messages to new members." = "Wysyłaj do 100 ostatnich wiadomości do nowych członków."; +/* No comment provided by engineer. */ +"Send your private feedback to groups." = "Wyślij swoją prywatną opinię do grup."; + /* alert message */ "Sender cancelled file transfer." = "Nadawca anulował transfer pliku."; @@ -4133,6 +4913,9 @@ chat item action */ /* No comment provided by engineer. */ "Server" = "Serwer"; +/* alert message */ +"Server added to operator %@." = "Serwer został dodany do operatora %@."; + /* No comment provided by engineer. */ "Server address" = "Adres serwera"; @@ -4142,14 +4925,23 @@ chat item action */ /* srv error text. */ "Server address is incompatible with network settings." = "Adres serwera jest niekompatybilny z ustawieniami sieciowymi."; +/* alert title */ +"Server operator changed." = "Operator serwera został zmieniony."; + +/* No comment provided by engineer. */ +"Server operators" = "Operatorzy serwera"; + +/* alert title */ +"Server protocol changed." = "Protokół serwera zmieniony."; + /* queue info */ "server queue info: %@\n\nlast received msg: %@" = "Informacje kolejki serwera: %1$@\n\nostatnia otrzymana wiadomość: %2$@"; /* server test error */ -"Server requires authorization to create queues, check password." = "Serwer wymaga autoryzacji do tworzenia kolejek, sprawdź hasło"; +"Server requires authorization to create queues, check password." = "Serwer wymaga autoryzacji do tworzenia kolejek, sprawdź hasło."; /* server test error */ -"Server requires authorization to upload, check password." = "Serwer wymaga autoryzacji do przesłania, sprawdź hasło"; +"Server requires authorization to upload, check password." = "Serwer wymaga autoryzacji do przesłania, sprawdź hasło."; /* No comment provided by engineer. */ "Server test failed!" = "Test serwera nie powiódł się!"; @@ -4178,6 +4970,9 @@ chat item action */ /* No comment provided by engineer. */ "Set 1 day" = "Ustaw 1 dzień"; +/* No comment provided by engineer. */ +"Set chat name…" = "Ustaw nazwę czatu…"; + /* No comment provided by engineer. */ "Set contact name…" = "Ustaw nazwę kontaktu…"; @@ -4190,6 +4985,12 @@ chat item action */ /* No comment provided by engineer. */ "Set it instead of system authentication." = "Ustaw go zamiast uwierzytelniania systemowego."; +/* No comment provided by engineer. */ +"Set member admission" = "Ustaw przyjmowanie członków"; + +/* No comment provided by engineer. */ +"Set message expiration in chats." = "Ustaw datę wygaśnięcia wiadomości na czatach."; + /* profile update event chat item */ "set new contact address" = "ustaw nowy adres kontaktu"; @@ -4205,6 +5006,9 @@ chat item action */ /* No comment provided by engineer. */ "Set passphrase to export" = "Ustaw hasło do eksportu"; +/* No comment provided by engineer. */ +"Set profile bio and welcome message." = "Ustaw biografię profilu i wiadomość powitalną."; + /* No comment provided by engineer. */ "Set the message shown to new members!" = "Ustaw wiadomość wyświetlaną nowym członkom!"; @@ -4227,9 +5031,15 @@ chat item action */ /* No comment provided by engineer. */ "Share 1-time link" = "Udostępnij 1-razowy link"; +/* No comment provided by engineer. */ +"Share 1-time link with a friend" = "Udostępnij jednorazowy link znajomemu"; + /* No comment provided by engineer. */ "Share address" = "Udostępnij adres"; +/* No comment provided by engineer. */ +"Share address publicly" = "Udostępnij adres publicznie"; + /* alert title */ "Share address with contacts?" = "Udostępnić adres kontaktom?"; @@ -4239,9 +5049,18 @@ chat item action */ /* No comment provided by engineer. */ "Share link" = "Udostępnij link"; +/* alert button */ +"Share old address" = "Udostępnij stary adres"; + +/* alert button */ +"Share old link" = "Udostępnij stary link"; + /* No comment provided by engineer. */ "Share profile" = "Udostępnij profil"; +/* No comment provided by engineer. */ +"Share SimpleX address on social media." = "Udostępnij adres SimpleX w mediach społecznościowych."; + /* No comment provided by engineer. */ "Share this 1-time invite link" = "Udostępnij ten jednorazowy link"; @@ -4251,6 +5070,18 @@ chat item action */ /* No comment provided by engineer. */ "Share with contacts" = "Udostępnij kontaktom"; +/* No comment provided by engineer. */ +"Share your address" = "Udostępnij swój adres"; + +/* No comment provided by engineer. */ +"Short description" = "Krótki opis"; + +/* No comment provided by engineer. */ +"Short link" = "Krótki link"; + +/* No comment provided by engineer. */ +"Short SimpleX address" = "Krótki adres SimpleX"; + /* No comment provided by engineer. */ "Show → on messages sent via private routing." = "Pokaż → na wiadomościach wysłanych przez prywatne trasowanie."; @@ -4287,9 +5118,21 @@ chat item action */ /* No comment provided by engineer. */ "SimpleX Address" = "Adres SimpleX"; +/* No comment provided by engineer. */ +"SimpleX address and 1-time links are safe to share via any messenger." = "Adres SimpleX i jednorazowe linki są bezpieczne do udostępniania przez dowolny komunikator."; + +/* No comment provided by engineer. */ +"SimpleX address or 1-time link?" = "Adres SimpleX czy link jednorazowy?"; + /* alert title */ "SimpleX address settings" = "Ustawienia automatycznej akceptacji"; +/* simplex link type */ +"SimpleX channel link" = "Link do kanału na SimpleX"; + +/* No comment provided by engineer. */ +"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "SimpleX Chat i Flux zawarły umowę na włączenie do aplikacji serwerów obsługiwanych przez Flux."; + /* No comment provided by engineer. */ "SimpleX Chat security was audited by Trail of Bits." = "Bezpieczeństwo SimpleX Chat zostało zaudytowane przez Trail of Bits."; @@ -4326,6 +5169,12 @@ chat item action */ /* simplex link type */ "SimpleX one-time invitation" = "Zaproszenie jednorazowe SimpleX"; +/* No comment provided by engineer. */ +"SimpleX protocols reviewed by Trail of Bits." = "Protokoły SimpleX sprawdzone przez Trail of Bits."; + +/* simplex link type */ +"SimpleX relay link" = "łącze przekaźnikowe SimpleX"; + /* No comment provided by engineer. */ "Simplified incognito mode" = "Uproszczony tryb incognito"; @@ -4362,9 +5211,16 @@ chat item action */ /* No comment provided by engineer. */ "Some non-fatal errors occurred during import:" = "Podczas importu wystąpiły niekrytyczne błędy:"; +/* alert message */ +"Some servers failed the test:\n%@" = "Niektóre serwery nie przeszły testu:\n%@"; + /* notification title */ "Somebody" = "Ktoś"; +/* blocking reason +report reason */ +"Spam" = "Spam"; + /* No comment provided by engineer. */ "Square, circle, or anything in between." = "Kwadrat, okrąg lub cokolwiek pomiędzy."; @@ -4422,6 +5278,9 @@ chat item action */ /* No comment provided by engineer. */ "Stopping chat" = "Zatrzymywanie czatu"; +/* No comment provided by engineer. */ +"Storage" = "Magazyn"; + /* No comment provided by engineer. */ "strike" = "strajk"; @@ -4443,6 +5302,12 @@ chat item action */ /* No comment provided by engineer. */ "Support SimpleX Chat" = "Wspieraj SimpleX Chat"; +/* No comment provided by engineer. */ +"Switch audio and video during the call." = "Przełączanie audio i wideo podczas połączenia."; + +/* No comment provided by engineer. */ +"Switch chat profile for 1-time invitations." = "Przełącz profil czatu dla zaproszeń jednorazowych."; + /* No comment provided by engineer. */ "System" = "System"; @@ -4458,6 +5323,21 @@ chat item action */ /* No comment provided by engineer. */ "Tap button " = "Naciśnij przycisk "; +/* No comment provided by engineer. */ +"Tap Connect to chat" = "Dotknij Połącz aby rozpocząć czat"; + +/* No comment provided by engineer. */ +"Tap Connect to send request" = "Dotknij Połącz, aby wysłać prośbę"; + +/* No comment provided by engineer. */ +"Tap Connect to use bot" = "Dotknij Połącz aby użyć bota"; + +/* No comment provided by engineer. */ +"Tap Create SimpleX address in the menu to create it later." = "Dotknij Stwórz adres SimpleX w menu aby utworzyć go później."; + +/* No comment provided by engineer. */ +"Tap Join group" = "Dotknij Dołącz do grupy"; + /* No comment provided by engineer. */ "Tap to activate profile." = "Dotknij, aby aktywować profil."; @@ -4479,9 +5359,15 @@ chat item action */ /* No comment provided by engineer. */ "TCP connection" = "Połączenie TCP"; +/* No comment provided by engineer. */ +"TCP connection bg timeout" = "Przekroczono limit czasu połączenia TCP"; + /* No comment provided by engineer. */ "TCP connection timeout" = "Limit czasu połączenia TCP"; +/* No comment provided by engineer. */ +"TCP port for messaging" = "Port TCP dla wiadomości"; + /* No comment provided by engineer. */ "TCP_KEEPCNT" = "TCP_KEEPCNT"; @@ -4497,6 +5383,9 @@ chat item action */ /* server test failure */ "Test failed at step %@." = "Test nie powiódł się na etapie %@."; +/* No comment provided by engineer. */ +"Test notifications" = "Powiadomienia testowe"; + /* No comment provided by engineer. */ "Test server" = "Przetestuj serwer"; @@ -4515,9 +5404,15 @@ chat item action */ /* No comment provided by engineer. */ "Thanks to the users – contribute via Weblate!" = "Podziękowania dla użytkowników - wkład za pośrednictwem Weblate!"; +/* alert message */ +"The address will be short, and your profile will be shared via the address." = "Adres będzie krótki, a Twój profil zostanie udostępniony za pośrednictwem adresu."; + /* No comment provided by engineer. */ "The app can notify you when you receive messages or contact requests - please open settings to enable." = "Aplikacja może powiadamiać Cię, gdy otrzymujesz wiadomości lub prośby o kontakt — otwórz ustawienia, aby włączyć."; +/* No comment provided by engineer. */ +"The app protects your privacy by using different operators in each conversation." = "Aplikacja chroni Twoją prywatność, korzystając z różnych operatorów w każdej rozmowie."; + /* No comment provided by engineer. */ "The app will ask to confirm downloads from unknown file servers (except .onion)." = "Aplikacja zapyta o potwierdzenie pobierania od nieznanych serwerów plików (poza .onion)."; @@ -4527,6 +5422,9 @@ chat item action */ /* No comment provided by engineer. */ "The code you scanned is not a SimpleX link QR code." = "Kod, który zeskanowałeś nie jest kodem QR linku SimpleX."; +/* No comment provided by engineer. */ +"The connection reached the limit of undelivered messages, your contact may be offline." = "Połączenie osiągnęło limit niedostarczonych wiadomości, Twój kontakt może być offline."; + /* No comment provided by engineer. */ "The connection you accepted will be cancelled!" = "Zaakceptowane przez Ciebie połączenie zostanie anulowane!"; @@ -4548,6 +5446,9 @@ chat item action */ /* No comment provided by engineer. */ "The ID of the next message is incorrect (less or equal to the previous).\nIt can happen because of some bug or when the connection is compromised." = "Identyfikator następnej wiadomości jest nieprawidłowy (mniejszy lub równy poprzedniej).\nMoże się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skompromitowane."; +/* alert message */ +"The link will be short, and group profile will be shared via the link." = "Link będzie krótki, a profil grupowy zostanie udostępniony poprzez link."; + /* No comment provided by engineer. */ "The message will be deleted for all members." = "Wiadomość zostanie usunięta dla wszystkich członków."; @@ -4563,6 +5464,12 @@ chat item action */ /* No comment provided by engineer. */ "The old database was not removed during the migration, it can be deleted." = "Stara baza danych nie została usunięta podczas migracji, można ją usunąć."; +/* No comment provided by engineer. */ +"The same conditions will apply to operator **%@**." = "Te same warunki będą miały zastosowanie do operatora **%@**."; + +/* No comment provided by engineer. */ +"The second preset operator in the app!" = "Drugi predefiniowany operator w aplikacji!"; + /* No comment provided by engineer. */ "The second tick we missed! ✅" = "Drugi tik, który przegapiliśmy! ✅"; @@ -4572,6 +5479,9 @@ chat item action */ /* No comment provided by engineer. */ "The servers for new connections of your current chat profile **%@**." = "Serwery dla nowych połączeń bieżącego profilu czatu **%@**."; +/* No comment provided by engineer. */ +"The servers for new files of your current chat profile **%@**." = "Serwery dla nowych plików Twojego bieżącego profilu czatu **%@**."; + /* No comment provided by engineer. */ "The text you pasted is not a SimpleX link." = "Tekst, który wkleiłeś nie jest linkiem SimpleX."; @@ -4581,6 +5491,9 @@ chat item action */ /* No comment provided by engineer. */ "Themes" = "Motywy"; +/* No comment provided by engineer. */ +"These conditions will also apply for: **%@**." = "Warunki te będą miały również zastosowanie w przypadku: **%@**."; + /* No comment provided by engineer. */ "These settings are for your current profile **%@**." = "Te ustawienia dotyczą Twojego bieżącego profilu **%@**."; @@ -4593,6 +5506,9 @@ chat item action */ /* No comment provided by engineer. */ "This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes." = "Tego działania nie można cofnąć - wiadomości wysłane i odebrane wcześniej niż wybrane zostaną usunięte. Może to potrwać kilka minut."; +/* alert message */ +"This action cannot be undone - the messages sent and received in this chat earlier than selected will be deleted." = "Tej akcji nie można cofnąć - wiadomości wysłane i otrzymane na tym czacie wcześniej niż wybrane zostaną usunięte."; + /* No comment provided by engineer. */ "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Tego działania nie można cofnąć - Twój profil, kontakty, wiadomości i pliki zostaną nieodwracalnie utracone."; @@ -4617,12 +5533,24 @@ chat item action */ /* No comment provided by engineer. */ "This group no longer exists." = "Ta grupa już nie istnieje."; +/* No comment provided by engineer. */ +"This link requires a newer app version. Please upgrade the app or ask your contact to send a compatible link." = "Ten link wymaga nowszej wersji aplikacji. Zaktualizuj aplikację lub poproś osobę kontaktową o przesłanie kompatybilnego łącza."; + /* No comment provided by engineer. */ "This link was used with another mobile device, please create a new link on the desktop." = "Ten link dostał użyty z innym urządzeniem mobilnym, proszę stworzyć nowy link na komputerze."; +/* No comment provided by engineer. */ +"This message was deleted or not received yet." = "Ta wiadomość została usunięta lub jeszcze nie otrzymana."; + /* No comment provided by engineer. */ "This setting applies to messages in your current chat profile **%@**." = "To ustawienie dotyczy wiadomości Twojego bieżącego profilu czatu **%@**."; +/* No comment provided by engineer. */ +"This setting is for your current profile **%@**." = "To ustawienie jest dla Twojego obecnego profilu **%@**."; + +/* No comment provided by engineer. */ +"Time to disappear is set only for new contacts." = "Czas zniknięcia jest ustawiony tylko dla nowych kontaktów."; + /* No comment provided by engineer. */ "Title" = "Tytuł"; @@ -4638,6 +5566,9 @@ chat item action */ /* No comment provided by engineer. */ "To make a new connection" = "Aby nawiązać nowe połączenie"; +/* No comment provided by engineer. */ +"To protect against your link being replaced, you can compare contact security codes." = "Aby zabezpieczyć się przed wymianą łącza, możesz porównać kody bezpieczeństwa kontaktu."; + /* No comment provided by engineer. */ "To protect timezone, image/voice files use UTC." = "Aby chronić strefę czasową, pliki obrazów/głosów używają UTC."; @@ -4650,6 +5581,9 @@ chat item action */ /* No comment provided by engineer. */ "To protect your privacy, SimpleX uses separate IDs for each of your contacts." = "Aby chronić prywatność, zamiast identyfikatorów użytkowników używanych przez wszystkie inne platformy, SimpleX ma identyfikatory dla kolejek wiadomości, oddzielne dla każdego z Twoich kontaktów."; +/* No comment provided by engineer. */ +"To receive" = "Żeby odebrać"; + /* No comment provided by engineer. */ "To record speech please grant permission to use Microphone." = "Aby nagrać rozmowę, proszę zezwolić na użycie Mikrofonu."; @@ -4662,9 +5596,21 @@ chat item action */ /* No comment provided by engineer. */ "To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." = "Aby ujawnić Twój ukryty profil, wprowadź pełne hasło w pole wyszukiwania na stronie **Twoich profili czatu**."; +/* No comment provided by engineer. */ +"To send" = "Żeby wysłać"; + +/* alert message */ +"To send commands you must be connected." = "Aby wysyłać polecenia, musisz być podłączony."; + /* No comment provided by engineer. */ "To support instant push notifications the chat database has to be migrated." = "Aby obsługiwać natychmiastowe powiadomienia push, należy zmigrować bazę danych czatu."; +/* alert message */ +"To use another profile after connection attempt, delete the chat and use the link again." = "Aby po próbie połączenia skorzystać z innego profilu, usuń czat i użyj linku ponownie."; + +/* No comment provided by engineer. */ +"To use the servers of **%@**, accept conditions of use." = "Aby korzystać z serwerów **%@**, należy zaakceptować warunki użytkowania."; + /* No comment provided by engineer. */ "To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Aby zweryfikować szyfrowanie end-to-end z Twoim kontaktem porównaj (lub zeskanuj) kod na waszych urządzeniach."; @@ -4674,6 +5620,9 @@ chat item action */ /* No comment provided by engineer. */ "Toggle incognito when connecting." = "Przełącz incognito przy połączeniu."; +/* token status */ +"Token status: %@." = "Stan tokena: %@."; + /* No comment provided by engineer. */ "Toolbar opacity" = "Nieprzezroczystość paska narzędzi"; @@ -4686,6 +5635,9 @@ chat item action */ /* No comment provided by engineer. */ "Transport sessions" = "Sesje transportowe"; +/* subscription status explanation */ +"Trying to connect to the server used to receive messages from this connection." = "Próba połączenia z serwerem, który służył do odbierania wiadomości z tego połączenia."; + /* No comment provided by engineer. */ "Turkish interface" = "Turecki interfejs"; @@ -4716,6 +5668,9 @@ chat item action */ /* rcv group event chat item */ "unblocked %@" = "odblokowano %@"; +/* No comment provided by engineer. */ +"Undelivered messages" = "Niedostarczone wiadomości"; + /* No comment provided by engineer. */ "Unexpected migration state" = "Nieoczekiwany stan migracji"; @@ -4782,6 +5737,9 @@ chat item action */ /* swipe action */ "Unread" = "Nieprzeczytane"; +/* No comment provided by engineer. */ +"Unsupported connection link" = "Nieobsługiwane łącze połączenia"; + /* No comment provided by engineer. */ "Up to 100 last messages are sent to new members." = "Do nowych członków wysyłanych jest do 100 ostatnich wiadomości."; @@ -4797,6 +5755,9 @@ chat item action */ /* No comment provided by engineer. */ "Update settings?" = "Zaktualizować ustawienia?"; +/* No comment provided by engineer. */ +"Updated conditions" = "Zaktualizowane warunki"; + /* rcv group event chat item */ "updated group profile" = "zaktualizowano profil grupy"; @@ -4806,9 +5767,27 @@ chat item action */ /* No comment provided by engineer. */ "Updating settings will re-connect the client to all servers." = "Aktualizacja ustawień spowoduje ponowne połączenie klienta ze wszystkimi serwerami."; +/* alert button */ +"Upgrade" = "Zaktualizuj"; + +/* No comment provided by engineer. */ +"Upgrade address" = "Uaktualnij adres"; + +/* alert message */ +"Upgrade address?" = "Uaktualnić adres?"; + /* No comment provided by engineer. */ "Upgrade and open chat" = "Zaktualizuj i otwórz czat"; +/* alert message */ +"Upgrade group link?" = "Uaktualnić link do grupy?"; + +/* No comment provided by engineer. */ +"Upgrade link" = "Uaktualnij link"; + +/* No comment provided by engineer. */ +"Upgrade your address" = "Zaktualizuj swój adres"; + /* No comment provided by engineer. */ "Upload errors" = "Błędy przesłania"; @@ -4830,18 +5809,30 @@ chat item action */ /* No comment provided by engineer. */ "Use .onion hosts" = "Użyj hostów .onion"; +/* No comment provided by engineer. */ +"Use %@" = "Użyj %@"; + /* No comment provided by engineer. */ "Use chat" = "Użyj czatu"; /* new chat action */ "Use current profile" = "Użyj obecnego profilu"; +/* No comment provided by engineer. */ +"Use for files" = "Użyj dla plików"; + +/* No comment provided by engineer. */ +"Use for messages" = "Użyj dla wiadomości"; + /* No comment provided by engineer. */ "Use for new connections" = "Użyj dla nowych połączeń"; /* No comment provided by engineer. */ "Use from desktop" = "Użyj z komputera"; +/* No comment provided by engineer. */ +"Use incognito profile" = "Użyj profilu incognito"; + /* No comment provided by engineer. */ "Use iOS call interface" = "Użyj interfejsu połączeń iOS"; @@ -4860,18 +5851,30 @@ chat item action */ /* No comment provided by engineer. */ "Use server" = "Użyj serwera"; +/* No comment provided by engineer. */ +"Use servers" = "Użyj serwerów"; + /* No comment provided by engineer. */ "Use SimpleX Chat servers?" = "Użyć serwerów SimpleX Chat?"; /* No comment provided by engineer. */ "Use SOCKS proxy" = "Użyj proxy SOCKS"; +/* No comment provided by engineer. */ +"Use TCP port %@ when no port is specified." = "Jeśli nie podano portu, należy użyć portu TCP %@."; + +/* No comment provided by engineer. */ +"Use TCP port 443 for preset servers only." = "Używaj portu TCP 443 tylko dla domyślnych serwerów."; + /* No comment provided by engineer. */ "Use the app while in the call." = "Używaj aplikacji podczas połączenia."; /* No comment provided by engineer. */ "Use the app with one hand." = "Korzystaj z aplikacji jedną ręką."; +/* No comment provided by engineer. */ +"Use web port" = "Użyj portu internetowego"; + /* No comment provided by engineer. */ "User selection" = "Wybór użytkownika"; @@ -4941,12 +5944,21 @@ chat item action */ /* No comment provided by engineer. */ "Video will be received when your contact is online, please wait or check later!" = "Film zostanie odebrany, gdy kontakt będzie online, poczekaj lub sprawdź później!"; +/* No comment provided by engineer. */ +"Videos" = "Wideo"; + /* No comment provided by engineer. */ "Videos and files up to 1gb" = "Filmy i pliki do 1gb"; +/* No comment provided by engineer. */ +"View conditions" = "Zobacz warunki"; + /* No comment provided by engineer. */ "View security code" = "Pokaż kod bezpieczeństwa"; +/* No comment provided by engineer. */ +"View updated conditions" = "Zobacz zaktualizowane warunki"; + /* chat feature */ "Visible history" = "Widoczna historia"; @@ -5016,6 +6028,9 @@ chat item action */ /* No comment provided by engineer. */ "Welcome message is too long" = "Wiadomość powitalna jest zbyt długa"; +/* No comment provided by engineer. */ +"Welcome your contacts 👋" = "Powitaj swoje kontakty 👋"; + /* No comment provided by engineer. */ "What's new" = "Co nowego"; @@ -5028,6 +6043,9 @@ chat item action */ /* No comment provided by engineer. */ "when IP hidden" = "gdy IP ukryty"; +/* No comment provided by engineer. */ +"When more than one operator is enabled, none of them has metadata to learn who communicates with whom." = "Gdy włączony jest więcej niż jeden operator, żaden z nich nie ma metadanych pozwalających dowiedzieć się, kto się z kim komunikuje."; + /* No comment provided by engineer. */ "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Gdy udostępnisz komuś profil incognito, będzie on używany w grupach, do których Cię zaprosi."; @@ -5082,6 +6100,9 @@ chat item action */ /* No comment provided by engineer. */ "You accepted connection" = "Zaakceptowałeś połączenie"; +/* snd group event chat item */ +"you accepted this member" = "zaakceptowałeś tego członka"; + /* No comment provided by engineer. */ "You allow" = "Pozwalasz"; @@ -5091,6 +6112,9 @@ chat item action */ /* No comment provided by engineer. */ "You are already connected to %@." = "Jesteś już połączony z %@."; +/* No comment provided by engineer. */ +"You are already connected with %@." = "Zostałeś już połączony z %@."; + /* new chat sheet message */ "You are already connecting to %@." = "Już się łączysz z %@."; @@ -5109,9 +6133,15 @@ chat item action */ /* new chat sheet title */ "You are already joining the group!\nRepeat join request?" = "Już dołączasz do grupy!\nPowtórzyć prośbę dołączenia?"; +/* subscription status explanation */ +"You are connected to the server used to receive messages from this connection." = "Jesteś połączony z serwerem służącym do odbierania wiadomości z tego połączenia."; + /* No comment provided by engineer. */ "You are invited to group" = "Jesteś zaproszony do grupy"; +/* subscription status explanation */ +"You are not connected to the server used to receive messages from this connection (no subscription)." = "Nie masz połączenia z serwerem służącym do odbierania wiadomości w ramach tego połączenia (brak subskrypcji)."; + /* No comment provided by engineer. */ "You are not connected to these servers. Private routing is used to deliver messages to them." = "Nie jesteś połączony z tymi serwerami. Prywatne trasowanie jest używane do dostarczania do nich wiadomości."; @@ -5127,6 +6157,9 @@ chat item action */ /* No comment provided by engineer. */ "You can change it in Appearance settings." = "Możesz to zmienić w ustawieniach wyglądu."; +/* No comment provided by engineer. */ +"You can configure servers via settings." = "Serwery można skonfigurować w ustawieniach."; + /* No comment provided by engineer. */ "You can create it later" = "Możesz go utworzyć później"; @@ -5151,6 +6184,9 @@ chat item action */ /* No comment provided by engineer. */ "You can send messages to %@ from Archived contacts." = "Możesz wysyłać wiadomości do %@ ze zarchiwizowanych kontaktów."; +/* No comment provided by engineer. */ +"You can set connection name, to remember who the link was shared with." = "Możesz ustawić nazwę połączenia, aby zapamiętać, z kim link został udostępniony."; + /* No comment provided by engineer. */ "You can set lock screen notification preview via settings." = "Podgląd powiadomień na ekranie blokady można ustawić w ustawieniach."; @@ -5175,6 +6211,9 @@ chat item action */ /* alert message */ "You can view invitation link again in connection details." = "Możesz zobaczyć link zaproszenia ponownie w szczegółach połączenia."; +/* alert message */ +"You can view your reports in Chat with admins." = "Możesz przeglądać swoje raporty w czacie z administratorami."; + /* alert title */ "You can't send messages!" = "Nie możesz wysyłać wiadomości!"; @@ -5244,9 +6283,15 @@ chat item action */ /* chat list item description */ "you shared one-time link incognito" = "udostępniłeś jednorazowy link incognito"; +/* token info */ +"You should receive notifications." = "Powinieneś otrzymywać powiadomienia."; + /* snd group event chat item */ "you unblocked %@" = "odblokowałeś %@"; +/* No comment provided by engineer. */ +"You will be able to send messages **only after your request is accepted**." = "Będziesz mógł wysyłać wiadomości **dopiero po zaakceptowaniu Twojej prośby**."; + /* No comment provided by engineer. */ "You will be connected to group when the group host's device is online, please wait or check later!" = "Zostaniesz połączony do grupy, gdy urządzenie gospodarza grupy będzie online, proszę czekać lub sprawdzić później!"; @@ -5265,6 +6310,9 @@ chat item action */ /* No comment provided by engineer. */ "You will still receive calls and notifications from muted profiles when they are active." = "Nadal będziesz otrzymywać połączenia i powiadomienia z wyciszonych profili, gdy są one aktywne."; +/* No comment provided by engineer. */ +"You will stop receiving messages from this chat. Chat history will be preserved." = "Przestaniesz otrzymywać wiadomości z tego czatu. Historia czatu zostanie zachowana."; + /* No comment provided by engineer. */ "You will stop receiving messages from this group. Chat history will be preserved." = "Przestaniesz otrzymywać wiadomości od tej grupy. Historia czatu zostanie zachowana."; @@ -5280,6 +6328,9 @@ chat item action */ /* No comment provided by engineer. */ "You're using an incognito profile for this group - to prevent sharing your main profile inviting contacts is not allowed" = "Używasz profilu incognito dla tej grupy - aby zapobiec udostępnianiu głównego profilu zapraszanie kontaktów jest zabronione"; +/* No comment provided by engineer. */ +"Your business contact" = "Twój kontakt biznesowy"; + /* No comment provided by engineer. */ "Your calls" = "Twoje połączenia"; @@ -5295,9 +6346,15 @@ chat item action */ /* No comment provided by engineer. */ "Your chat profiles" = "Twoje profile czatu"; +/* alert message */ +"Your chat was moved to %@ but an unexpected error occurred while redirecting you to the profile." = "Twoja rozmowa została przeniesiona do %@, ale podczas przekierowywania do profilu wystąpił nieoczekiwany błąd."; + /* No comment provided by engineer. */ "Your connection was moved to %@ but an error happened when switching profile." = "Twoje połączenie zostało przeniesione do %@, ale podczas przekierowywania do profilu wystąpił nieoczekiwany błąd."; +/* No comment provided by engineer. */ +"Your contact" = "Twój kontakt"; + /* No comment provided by engineer. */ "Your contact sent a file that is larger than currently supported maximum size (%@)." = "Twój kontakt wysłał plik, który jest większy niż obecnie obsługiwany maksymalny rozmiar (%@)."; @@ -5316,6 +6373,9 @@ chat item action */ /* No comment provided by engineer. */ "Your current profile" = "Twój obecny profil"; +/* No comment provided by engineer. */ +"Your group" = "Twoja grupa"; + /* No comment provided by engineer. */ "Your ICE servers" = "Twoje serwery ICE"; diff --git a/apps/ios/zh-Hans.lproj/Localizable.strings b/apps/ios/zh-Hans.lproj/Localizable.strings index ff80559fb1..d5afea745d 100644 --- a/apps/ios/zh-Hans.lproj/Localizable.strings +++ b/apps/ios/zh-Hans.lproj/Localizable.strings @@ -509,6 +509,9 @@ swipe action */ /* feature role */ "all members" = "所有成员"; +/* No comment provided by engineer. */ +"All messages" = "所有消息"; + /* No comment provided by engineer. */ "All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." = "所有消息和文件均通过**端到端加密**发送;私信以量子安全方式发送。"; @@ -731,6 +734,9 @@ swipe action */ /* No comment provided by engineer. */ "Audio and video calls" = "语音和视频通话"; +/* No comment provided by engineer. */ +"Audio call" = "语音通话"; + /* No comment provided by engineer. */ "audio call (not e2e encrypted)" = "语音通话(非端到端加密)"; @@ -1727,6 +1733,9 @@ swipe action */ /* No comment provided by engineer. */ "Delete member message?" = "删除成员消息?"; +/* No comment provided by engineer. */ +"Delete member messages" = "删除成员消息"; + /* No comment provided by engineer. */ "Delete message?" = "删除消息吗?"; @@ -2559,6 +2568,9 @@ snd error text */ /* No comment provided by engineer. */ "Files and media prohibited!" = "禁止文件和媒体!"; +/* No comment provided by engineer. */ +"Filter" = "过滤器"; + /* No comment provided by engineer. */ "Filter unread and favorite chats." = "过滤未读和收藏的聊天记录。"; @@ -2862,6 +2874,9 @@ snd error text */ /* No comment provided by engineer. */ "Image will be received when your contact is online, please wait or check later!" = "图片将在您的联系人在线时收到,请稍等或稍后查看!"; +/* No comment provided by engineer. */ +"Images" = "图片"; + /* No comment provided by engineer. */ "Immediately" = "立即"; @@ -3045,6 +3060,9 @@ snd error text */ /* No comment provided by engineer. */ "Invite friends" = "邀请朋友"; +/* No comment provided by engineer. */ +"Invite member" = "邀请成员"; + /* No comment provided by engineer. */ "Invite members" = "邀请成员"; @@ -3198,6 +3216,9 @@ snd error text */ /* No comment provided by engineer. */ "Linked desktops" = "已链接桌面"; +/* No comment provided by engineer. */ +"Links" = "链接"; + /* swipe action */ "List" = "列表"; @@ -4372,6 +4393,9 @@ swipe action */ /* alert action */ "Remove" = "移除"; +/* alert action */ +"Remove and delete messages" = "移除并删除消息"; + /* No comment provided by engineer. */ "Remove archive?" = "删除存档?"; @@ -4676,9 +4700,24 @@ chat item action */ /* No comment provided by engineer. */ "Search bar accepts invitation links." = "搜索栏接受邀请链接。"; +/* No comment provided by engineer. */ +"Search files" = "搜索文件"; + +/* No comment provided by engineer. */ +"Search images" = "搜索图片"; + +/* No comment provided by engineer. */ +"Search links" = "搜索链接"; + /* No comment provided by engineer. */ "Search or paste SimpleX link" = "搜索或粘贴 SimpleX 链接"; +/* No comment provided by engineer. */ +"Search videos" = "搜索视频"; + +/* No comment provided by engineer. */ +"Search voice messages" = "搜索语音消息"; + /* network option */ "sec" = "秒"; @@ -5872,6 +5911,9 @@ report reason */ /* No comment provided by engineer. */ "Video will be received when your contact is online, please wait or check later!" = "视频将在您的联系人在线时收到,请稍等或稍后查看!"; +/* No comment provided by engineer. */ +"Videos" = "视频"; + /* No comment provided by engineer. */ "Videos and files up to 1gb" = "最大 1gb 的视频和文件"; diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt index 89bb27de02..883975a345 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt @@ -772,7 +772,9 @@ fun ChatView( changeNtfsState = { enabled, currentValue -> toggleNotifications(chatRh, chatInfo, enabled, chatModel, currentValue) }, onSearchValueChanged = onSearchValueChanged, closeSearch = { - onSearchValueChanged("") + if (chatModel.openAroundItemId.value == null) { + onSearchValueChanged("") + } showSearch.value = false searchText.value = "" contentFilter.value = null @@ -993,7 +995,7 @@ fun ChatLayout( useLinkPreviews, linkMode, scrollToItemId, selectedChatItems, showMemberInfo, showChatInfo = info, loadMessages, deleteMessage, deleteMessages, archiveReports, receiveFile, cancelFile, joinGroup, acceptCall, acceptFeature, openDirectChat, forwardItem, updateContactStats, updateMemberStats, syncContactConnection, syncMemberConnection, findModelChat, findModelMember, - setReaction, showItemDetails, markItemsRead, markChatRead, closeSearch, remember { { onComposed(it) } }, developerTools, showViaProxy, + setReaction, showItemDetails, markItemsRead, markChatRead, closeSearch, remember { { onComposed(it) } }, developerTools, showViaProxy, contentFilter, ) } if (chatInfo is ChatInfo.Group && composeState.value.message.text.isNotEmpty()) { @@ -1168,6 +1170,7 @@ fun BoxScope.ChatInfoToolbar( val scope = rememberCoroutineScope() val showMenu = rememberSaveable { mutableStateOf(false) } val showContentFilterMenu = rememberSaveable { mutableStateOf(false) } + val showCallMenu = rememberSaveable { mutableStateOf(false) } val onBackClicked = { if (!showSearch.value) { @@ -1186,35 +1189,28 @@ fun BoxScope.ChatInfoToolbar( val activeCall by remember { chatModel.activeCall } val showContentFilterButton = availableContent.value.isNotEmpty() - val activeCallInChat = chatInfo is ChatInfo.Direct && activeCall?.contact?.id == chatInfo.id + val canStartCall = chatInfo is ChatInfo.Direct && + chatInfo.contact.mergedPreferences.calls.enabled.forUser && + chatInfo.contact.ready && + chatInfo.contact.active && + activeCall == null - // Content filter button - shown in bar, or moved to menu during active call - if (showContentFilterButton) { + // Content filter button: always in bar on desktop and for groups; on Android for direct chats it + // goes into the three-dots menu UNLESS calls are unavailable, in which case it appears in the bar + if (showContentFilterButton && (appPlatform.isDesktop || chatInfo is ChatInfo.Group || + (appPlatform.isAndroid && chatInfo is ChatInfo.Direct && !canStartCall && activeCall == null))) { val enabled = chatInfo !is ChatInfo.Local || chatInfo.noteFolder.ready - if (activeCallInChat) { - menuItems.add { - ItemAction( - stringResource(MR.strings.content_filter_menu_item), + barButtons.add { + IconButton( + { showContentFilterMenu.value = true }, + enabled = enabled + ) { + Icon( painterResource(MR.images.ic_photo_library), - onClick = { - showMenu.value = false - showContentFilterMenu.value = true - } + null, + tint = MaterialTheme.colors.primary ) } - } else { - barButtons.add { - IconButton( - { showContentFilterMenu.value = true }, - enabled = enabled - ) { - Icon( - painterResource(MR.images.ic_photo_library), - null, - tint = MaterialTheme.colors.primary - ) - } - } } } @@ -1268,19 +1264,12 @@ fun BoxScope.ChatInfoToolbar( } } } - // Call buttons moved to menu - if (chatInfo.contact.mergedPreferences.calls.enabled.forUser && chatInfo.contact.ready && chatInfo.contact.active && activeCall == null) { - menuItems.add { - ItemAction(stringResource(MR.strings.icon_descr_audio_call).capitalize(Locale.current), painterResource(MR.images.ic_call_500), onClick = { - showMenu.value = false - startCall(CallMediaType.Audio) - }) - } - menuItems.add { - ItemAction(stringResource(MR.strings.icon_descr_video_call).capitalize(Locale.current), painterResource(MR.images.ic_videocam), onClick = { - showMenu.value = false - startCall(CallMediaType.Video) - }) + // Call button always in toolbar; tap opens Audio/Video call submenu + if (canStartCall) { + barButtons.add(0) { + IconButton({ showCallMenu.value = true }) { + Icon(painterResource(MR.images.ic_call_500), null, tint = MaterialTheme.colors.primary) + } } } menuItems.add { @@ -1339,6 +1328,53 @@ fun BoxScope.ChatInfoToolbar( } } + // Android only: for direct/local chats where the filter bar button is NOT shown, filter options go in the three-dots menu separated by a divider + if (appPlatform.isAndroid && chatInfo !is ChatInfo.Group && showContentFilterButton && + !(chatInfo is ChatInfo.Direct && !canStartCall && activeCall == null)) { + menuItems.add { Divider() } + availableContent.value.forEach { filter -> + menuItems.add { + val isSelected = contentFilter.value == filter + ItemAction( + stringResource(filter.label), + painterResource(if (isSelected) filter.iconFilled else filter.icon), + color = if (isSelected) MaterialTheme.colors.primary else Color.Unspecified, + onClick = { + showMenu.value = false + if (contentFilter.value == filter) return@ItemAction + contentFilter.value = filter + showSearch.value = true + scope.launch { + val c = chatModel.getChat(chatInfo.id) + if (c != null) { + apiFindMessages(chatsCtx, c, filter.contentTag, "") + } + } + } + ) + } + } + if (showSearch.value) { + menuItems.add { + ItemAction( + stringResource(MR.strings.content_filter_all_messages), + painterResource(MR.images.ic_forum), + onClick = { + showMenu.value = false + contentFilter.value = null + showSearch.value = false + scope.launch { + val c = chatModel.getChat(chatInfo.id) + if (c != null) { + apiFindMessages(chatsCtx, c, null, "") + } + } + } + ) + } + } + } + if (menuItems.isNotEmpty()) { barButtons.add { IconButton({ showMenu.value = true }) { @@ -1448,6 +1484,38 @@ fun BoxScope.ChatInfoToolbar( contentFilterMenuItems.forEach { it() } } } + val callMenuWidth = remember { mutableStateOf(250.dp) } + val callMenuHeight = remember { mutableStateOf(0.dp) } + DefaultDropdownMenu( + showCallMenu, + modifier = Modifier.onSizeChanged { with(density) { + callMenuWidth.value = it.width.toDp().coerceAtLeast(250.dp) + if (oneHandUI.value && chatBottomBar.value && (appPlatform.isDesktop || (platform.androidApiLevel ?: 0) >= 30)) callMenuHeight.value = it.height.toDp() + } }, + offset = DpOffset(-callMenuWidth.value, if (oneHandUI.value && chatBottomBar.value) -callMenuHeight.value else AppBarHeight) + ) { + if (chatInfo is ChatInfo.Direct) { + val callMenuItems: List<@Composable () -> Unit> = buildList { + add { + ItemAction(stringResource(MR.strings.icon_descr_audio_call).capitalize(Locale.current), painterResource(MR.images.ic_call_500), onClick = { + showCallMenu.value = false + startCall(CallMediaType.Audio) + }) + } + add { + ItemAction(stringResource(MR.strings.icon_descr_video_call).capitalize(Locale.current), painterResource(MR.images.ic_videocam), onClick = { + showCallMenu.value = false + startCall(CallMediaType.Video) + }) + } + } + if (oneHandUI.value && chatBottomBar.value) { + callMenuItems.asReversed().forEach { it() } + } else { + callMenuItems.forEach { it() } + } + } + } } } @@ -1667,7 +1735,8 @@ fun BoxScope.ChatItemsList( closeSearch: () -> Unit, onComposed: suspend (chatId: String) -> Unit, developerTools: Boolean, - showViaProxy: Boolean + showViaProxy: Boolean, + contentFilter: State = remember { mutableStateOf(null) } ) { val chatInfo = chat.chatInfo val loadingTopItems = remember { mutableStateOf(false) } @@ -1687,7 +1756,7 @@ fun BoxScope.ChatItemsList( } } val searchValueIsEmpty = remember { derivedStateOf { searchValue.value.isEmpty() } } - val searchValueIsNotBlank = remember { derivedStateOf { searchValue.value.isNotBlank() } } + val searchValueIsNotBlank = remember { derivedStateOf { searchValue.value.isNotBlank() || contentFilter.value != null } } val revealedItems = rememberSaveable(stateSaver = serializableSaver()) { mutableStateOf(setOf()) } // not using reversedChatItems inside to prevent possible derivedState bug in Compose when one derived state access can cause crash asking another derived state val mergedItems = remember { @@ -1722,7 +1791,17 @@ fun BoxScope.ChatItemsList( val hoveredItemId = remember { mutableStateOf(null as Long?) } val listState = rememberUpdatedState(rememberSaveable(chatInfo.id, searchValueIsEmpty.value, resetListState.value, saver = LazyListState.Saver) { val openAroundItemId = chatModel.openAroundItemId.value - val index = mergedItems.value.indexInParentItems[openAroundItemId] ?: mergedItems.value.items.indexOfLast { it.hasUnread() } + val index = mergedItems.value.indexInParentItems[openAroundItemId] ?: run { + // scroll to first unread after last viewed item (items reversed: 0 = newest) + val viewedIdx = mergedItems.value.items.indexOfFirst { !it.hasUnread() } + if (viewedIdx > 0) { + viewedIdx - 1 + } else if (viewedIdx < 0) { + mergedItems.value.items.indexOfLast { it.hasUnread() } + } else { + 0 // viewed is bottom item, scroll to bottom + } + } val reportsState = reportsListState if (openAroundItemId != null) { highlightedItems.value += openAroundItemId @@ -1818,7 +1897,7 @@ fun BoxScope.ChatItemsList( } @Composable - fun ChatItemViewShortHand(cItem: ChatItem, itemSeparation: ItemSeparation, range: State, fillMaxWidth: Boolean = true) { + fun ChatItemViewShortHand(cItem: ChatItem, itemSeparation: ItemSeparation, range: State, fillMaxWidth: Boolean = true, swipeOffset: Float = 0f) { tryOrShowError("${cItem.id}ChatItem", error = { CIBrokenComposableView(if (cItem.chatDir.sent) Alignment.CenterEnd else Alignment.CenterStart) }) { @@ -1832,7 +1911,7 @@ fun BoxScope.ChatItemsList( highlightedItems.value = setOf() } } - ChatItemView(chatsCtx, remoteHostId, chat, cItem, composeState, provider, useLinkPreviews = useLinkPreviews, linkMode = linkMode, revealed = revealed, highlighted = highlighted, hoveredItemId = hoveredItemId, range = range, searchIsNotBlank = searchValueIsNotBlank, fillMaxWidth = fillMaxWidth, selectedChatItems = selectedChatItems, selectChatItem = { selectUnselectChatItem(true, cItem, revealed, selectedChatItems, reversedChatItems) }, deleteMessage = deleteMessage, deleteMessages = deleteMessages, archiveReports = archiveReports, receiveFile = receiveFile, cancelFile = cancelFile, joinGroup = joinGroup, acceptCall = acceptCall, acceptFeature = acceptFeature, openDirectChat = openDirectChat, forwardItem = forwardItem, updateContactStats = updateContactStats, updateMemberStats = updateMemberStats, syncContactConnection = syncContactConnection, syncMemberConnection = syncMemberConnection, findModelChat = findModelChat, findModelMember = findModelMember, scrollToItem = scrollToItem, scrollToItemId = scrollToItemId, scrollToQuotedItemFromItem = scrollToQuotedItemFromItem, setReaction = setReaction, showItemDetails = showItemDetails, reveal = reveal, showMemberInfo = showMemberInfo, showChatInfo = showChatInfo, developerTools = developerTools, showViaProxy = showViaProxy, itemSeparation = itemSeparation, showTimestamp = itemSeparation.timestamp) + ChatItemView(chatsCtx, remoteHostId, chat, cItem, composeState, provider, useLinkPreviews = useLinkPreviews, linkMode = linkMode, revealed = revealed, highlighted = highlighted, hoveredItemId = hoveredItemId, range = range, searchIsNotBlank = searchValueIsNotBlank, fillMaxWidth = fillMaxWidth, selectedChatItems = selectedChatItems, selectChatItem = { selectUnselectChatItem(true, cItem, revealed, selectedChatItems, reversedChatItems) }, deleteMessage = deleteMessage, deleteMessages = deleteMessages, archiveReports = archiveReports, receiveFile = receiveFile, cancelFile = cancelFile, joinGroup = joinGroup, acceptCall = acceptCall, acceptFeature = acceptFeature, openDirectChat = openDirectChat, forwardItem = forwardItem, updateContactStats = updateContactStats, updateMemberStats = updateMemberStats, syncContactConnection = syncContactConnection, syncMemberConnection = syncMemberConnection, findModelChat = findModelChat, findModelMember = findModelMember, scrollToItem = scrollToItem, scrollToItemId = scrollToItemId, scrollToQuotedItemFromItem = scrollToQuotedItemFromItem, setReaction = setReaction, showItemDetails = showItemDetails, reveal = reveal, showMemberInfo = showMemberInfo, showChatInfo = showChatInfo, developerTools = developerTools, showViaProxy = showViaProxy, itemSeparation = itemSeparation, showTimestamp = itemSeparation.timestamp, swipeOffset = swipeOffset) } } @@ -1953,7 +2032,7 @@ fun BoxScope.ChatItemsList( MemberImage(member) } Box(modifier = Modifier.padding(top = 2.dp, start = 4.dp).chatItemOffset(cItem, itemSeparation.largeGap, revealed = revealed.value)) { - ChatItemViewShortHand(cItem, itemSeparation, range, false) + ChatItemViewShortHand(cItem, itemSeparation, range, false, dismissState.offset.value) } } } @@ -1978,7 +2057,7 @@ fun BoxScope.ChatItemsList( .chatItemOffset(cItem, itemSeparation.largeGap, revealed = revealed.value) .then(swipeableOrSelectionModifier) ) { - ChatItemViewShortHand(cItem, itemSeparation, range) + ChatItemViewShortHand(cItem, itemSeparation, range, swipeOffset = dismissState.offset.value) } } } @@ -2076,7 +2155,7 @@ fun BoxScope.ChatItemsList( .chatItemOffset(cItem, itemSeparation.largeGap, revealed = revealed.value) .then(if (selectionVisible) Modifier else swipeableModifier) ) { - ChatItemViewShortHand(cItem, itemSeparation, range) + ChatItemViewShortHand(cItem, itemSeparation, range, swipeOffset = dismissState.offset.value) } } } @@ -2094,7 +2173,7 @@ fun BoxScope.ChatItemsList( .chatItemOffset(cItem, itemSeparation.largeGap, revealed = revealed.value) .then(if (!selectionVisible || !sent) swipeableOrSelectionModifier else Modifier) ) { - ChatItemViewShortHand(cItem, itemSeparation, range) + ChatItemViewShortHand(cItem, itemSeparation, range, swipeOffset = dismissState.offset.value) } } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt index 633d6c454e..05c84db4c3 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt @@ -10,6 +10,7 @@ import androidx.compose.material.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip import androidx.compose.ui.geometry.* import androidx.compose.ui.graphics.* @@ -109,6 +110,7 @@ fun ChatItemView( showTimestamp: Boolean, itemSeparation: ItemSeparation, preview: Boolean = false, + swipeOffset: Float = 0f, ) { val cInfo = chat.chatInfo val uriHandler = LocalUriHandler.current @@ -298,8 +300,11 @@ fun ChatItemView( } Column(horizontalAlignment = if (cItem.chatDir.sent) Alignment.End else Alignment.Start) { - Row(verticalAlignment = Alignment.CenterVertically) { - val bubbleInteractionSource = remember { MutableInteractionSource() } + val canReply = (cItem.content is CIContent.SndMsgContent || cItem.content is CIContent.RcvMsgContent) && + cInfo !is ChatInfo.Local && !cItem.isReport && !cItem.meta.isLive && cItem.meta.itemDeleted == null + Box { + Row(verticalAlignment = Alignment.CenterVertically) { + val bubbleInteractionSource = remember { MutableInteractionSource() } val bubbleHovered = bubbleInteractionSource.collectIsHoveredAsState() if (cItem.chatDir.sent) { GoToItemButton(true, bubbleHovered) @@ -800,6 +805,15 @@ fun ChatItemView( if (!cItem.chatDir.sent) { GoToItemButton(false, bubbleHovered) } + } + if (canReply && swipeOffset < 0) { + Icon( + painterResource(MR.images.ic_reply), + contentDescription = null, + modifier = Modifier.align(Alignment.CenterEnd).offset(x = 26.dp).size(18.dp).alpha(minOf(1f, -swipeOffset / 30f)), + tint = MaterialTheme.colors.secondary + ) + } } if (cItem.content.msgContent != null && (cItem.meta.itemDeleted == null || revealed.value) && cItem.reactions.isNotEmpty()) { ChatItemReactions() diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml index 86e51e6937..2a76fa292a 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml @@ -2527,4 +2527,18 @@ احذف الرسائل ستُحذف رسائل العضو - ولا يمكن التراجع عن ذلك! أزل واحذف الرسائل + كل الرسائل + فشل الاتصال + فشل + ملفات + تصفية + صور + روابط + ابحث عن ملفات + ابحث عن صور + ابحث عن روابط + ابحث عن فيديوهات + ابحث عن رسائل صوتية + فيديوهات + رسائل صوتية diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml index 423f0e135f..b559431261 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml @@ -2213,7 +2213,7 @@ Chyba dočasného souboru Přesunout sezení TCP připojení - Použité servery + Použít servery Použit %s Pro příjem Systém @@ -2517,7 +2517,7 @@ Pro odeslání příkazů musíte být připojen. Pro použití jiného profilu po pokusu o připojení, smažte chat a znovu použijte odkaz. Aktualizovat vaši adresu - Povýšení + Povýšit Povýšit adresu? Povýšit odkaz skupiny Povýšit odkaz skupiny? @@ -2528,4 +2528,26 @@ Váš kontakt Vaše skupina Váš profil + Všechny zprávy + Smazat zprávy člena + Smazat zprávy člena? + Smazat zprávy + Soubory + Filtr + Obrázky + Odkazy + Zprávy člena budou smazány - nemůže být zrušeno! + bez předplatného + Odebrat a smazat zprávy + Hledat soubory + Hledat obrázky + Hledat odkazy + Hledat videa + Hledat hlasové zprávy + Videa + Hlasové zprávy + Nejste připojen k serveru, který se používá k přijímání zpráv z tohoto připojení (bez předplatného). + Připojení selhalo + selhal + Pokud jste se připojili k nějakým kanálům nebo je vytvořili, přestanou trvale fungovat. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml index 3254d0a63f..5d3d9ac90e 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml @@ -2629,4 +2629,7 @@ Sprachnachrichten suchen Videos Sprachnachrichten + Verbindung fehlgeschlagen + Fehlgeschlagen + Kanäle, welche Sie erstellt haben oder denen Sie beigetreten sind, werden dauerhaft deaktiviert. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml index 6f326c33c8..20a271f58f 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml @@ -2521,4 +2521,7 @@ Αναζήτηση φωνητικών μηνυμάτων Βίντεο Φωνητικά μηνύματα + Η σύνδεση απέτυχε + απέτυχε + Αν έχετε συμμετάσχει ή δημιουργήσει κανάλια, θα σταματήσουν να λειτουργούν μόνιμα. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml index 38f8a81d3a..09a843c91c 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml @@ -233,7 +233,7 @@ Partnerek Kapcsolódási hiba A partnere még nem kapcsolódott! - - kapcsolódás könyvtár szolgáltatáshoz (BÉTA)!\n- kézbesítési jelentések (legfeljebb 20 tagig).\n- gyorsabb és stabilabb. + - kapcsolódás a könyvtárszolgáltatáshoz (BÉTA)!\n- kézbesítési jelentések (legfeljebb 20 tagig).\n- gyorsabb és stabilabb. Közreműködés kapcsolódás (bemutatkozó meghívó) SimpleX-cím létrehozása @@ -299,7 +299,7 @@ kapcsolódás… Hívás kapcsolása Törli a fájlokat és a médiatartalmakat? - befejezett + kész CSEVEGÉSI ADATBÁZIS Önmegsemmisítő jelkód módosítása Várólista létrehozása @@ -1392,7 +1392,7 @@ A csevegés elindítható az alkalmazás „Beállítások / Adatbázis” menüjében vagy az alkalmazás újraindításával. Kód ellenőrzése a hordozható eszközön Ön csatlakozott ehhez a csoporthoz. Kapcsolódás a meghívó csoporttaghoz. - a SimpleX Chat fejlesztőivel, ahol bármiről kérdezhet és értesülhet a friss hírekről.]]> + a SimpleX Chat fejlesztőivel, akiktől bármit kérdezhet és értesülhet a friss hírekről.]]> Nem kötelező üdvözlőüzenettel. Ismeretlen adatbázishiba: %s Elrejtheti vagy lenémíthatja a felhasználóprofiljait – koppintson (vagy számítógép-alkalmazásban kattintson) hosszan a profilra a felugró menühöz. @@ -1654,7 +1654,7 @@ Átköltöztetés egy másik eszközről Kvantumbiztos titkosítás Megpróbálhatja még egyszer. - Átköltöztetés befejezve + Átköltöztetés kész Átköltöztetés egy másik eszközre QR-kód használatával. Átköltöztetés Megjegyzés: ha két eszközön is ugyanazt az adatbázist használja, akkor biztonsági védelemként megszakítja a partnereitől érkező üzenetek visszafejtését.]]> @@ -2522,4 +2522,7 @@ Hangüzenetek keresése Videók Hangüzenetek + Nem sikerült létrehozni a kapcsolatot + sikertelen + Ha csatornákat hozott létre vagy csatlakozott hozzájuk, akkor azok véglegesen le fognak állni. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml index 1c191a78bd..fe4a658a68 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml @@ -2558,4 +2558,7 @@ Video Messaggi vocali Filtro + Connessione fallita + fallito + Se sei dentro canali o ne hai creati, essi smetteranno di funzionare definitivamente. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml index 1c4d265515..4c5b279ba7 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml @@ -1826,7 +1826,7 @@ SMPサーバーの構成 接続中 XFTPサーバーの構成 - チャトリスト切り替え + チャットリスト表示切り替え 連絡先 メッセージサーバ メディア&ファイルサーバ @@ -2055,4 +2055,10 @@ メンバーとして承認する オブザーバーとして承認する スパム + アーカイブ + 自己紹介 + 自己紹介の文字数が上限を超えています + ぼかし + 連絡先 + お気に入り diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml index 2f26545913..281a734ed3 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml @@ -1619,7 +1619,7 @@ Zakończ połączenie Połączenie wideo Błąd podczas otwierania przeglądarki - Do połączeń wymagana jest domyślna przeglądarka. Proszę skonfigurować domyślną przeglądarkę systemową, i podzielić się informacją z twórcami. + Do wykonywania połączeń wymagana jest domyślna przeglądarka internetowa. Skonfiguruj domyślną przeglądarkę w systemie i przekaż więcej informacji programistom. Ten czat jest chroniony przez szyfrowanie e2e odporne na ataki kwantowe. szyfrowanie end-to-end z perfect forward secrecy, zaprzeczalnością i odzyskiwaniem bezpieczeństwa po kompromitacji.]]> Otwórz ekran migrowania @@ -2234,7 +2234,7 @@ Połącz Połącz się szybciej! 🚀 kontakt usunięty - kontakt zablokowany + kontakt wyłączony kontakt nie gotowy PROŚBY O KONTAKT OD GRUP kontakt powinien zaakceptować… @@ -2376,7 +2376,7 @@ - Otwórz czat w pierwszej nieprzeczytanej wiadomości.\n- Przejdź do cytowanych wiadomości. Otwórz czysty link Otwórz warunki - Otwórz pełen link + Otwórz pełny link Otwórz link Otwórz linki z listy czatów Otwórz nowy czat @@ -2395,8 +2395,8 @@ Nie można odczytać hasła w magazynie kluczy. Wprowadź je ręcznie. Mogło się to zdarzyć po aktualizacji systemu niezgodnej z aplikacją. Jeśli tak nie jest, skontaktuj się z programistami. Nie można odczytać hasła w magazynie kluczy. Mogło się to zdarzyć po aktualizacji systemu niezgodnej z aplikacją. Jeśli tak nie jest, skontaktuj się z programistami. oczekuje - oczekiwanie zaakceptowane - oczekująca recenzja + oczekuje na zatwierdzenie + oczekuje na ocenę Zmniejsz rozmiar wiadomości i wyślij ją ponownie. Zmniejsz rozmiar wiadomości lub usuń multimedia i wyślij ponownie. Poczekaj, aż moderatorzy grupy rozpatrzą Twoją prośbę o dołączenie do grupy. @@ -2418,7 +2418,7 @@ Odrzucić członka? Zdalne telefony komórkowe Usuń i skasuj wiadomości - przeniesiono z grupy + usunięty z grupy Usuń śledzenie linków Usunąć członka? Usuwa wiadomości i blokuje członków. @@ -2428,7 +2428,7 @@ Zgłoś profil członka: będą go widzieć tylko moderatorzy grupy. Zgłoś inne: zobaczą to tylko moderatorzy grupy. Jaki jest powód zgłoszenia? - Zgłoś: %s + Zgłoszenie: %s Zgłoszenia Zgłoszenia wysłane do moderatorów Zgłoś spam: tylko moderatorzy grupy będą to widzieć. @@ -2437,7 +2437,7 @@ poproszono o połączenie prośba została wysłana prośba o dołączenie została odrzucona - przejrzyj + ocena Przejrzyj warunki sprawdzone przez administratorów Przejrzyj członków grupy @@ -2445,12 +2445,12 @@ Przejrzyj członków Przejrzyj członków przed przyjęciem (pukanie). Zapisać ustawienia wstępu? - Zachowaj listę - Poszukaj plików - Poszukaj obrazów - Poszukaj linków - Poszukaj wideo - Poszukaj wiadomości głosowych + Zapisz listę + Szukaj plików + Szukaj zdjęć + Szukaj linków + Szukaj wideo + Szukaj wiadomości głosowych Wybierz operatora sieci Wysłać prośbę o kontakt? Wyślij prywatne zgłoszenia @@ -2459,7 +2459,7 @@ Wyślij swoją prywatną opinię do grup. Wysłano do Twojego kontaktu po połączeniu. Serwer dodany do operatora %s. - Operator serwera zmieniony. + Operator serwera został zmieniony. Operatorzy serwera Protokół serwera zmieniony. Ustaw nazwę czatu… @@ -2554,4 +2554,7 @@ Twój profil Twoje serwery Przestaniesz otrzymywać wiadomości z tego czatu. Historia czatu zostanie zachowana. + Połączenie nie powiodło się + niepowodzenie + Jeśli dołączyłeś do kanałów lub je utworzyłeś, przestaną one działać na stałe. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml index 3e5e09c039..a67f00a459 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml @@ -2542,4 +2542,7 @@ 搜索语音消息 视频 语音消息 + 连接失败 + 失败 + 如果你加入了或创建了频道,它们会永远停止工作。 diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml index f9a1a5b131..05997a9fec 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml @@ -1574,7 +1574,7 @@ 桌面設備 已連結桌面選項 已連結桌面 - 直接連線中 + 已請求連接 邀請 建立群組 修復群組成員不支援的問題 @@ -1677,7 +1677,7 @@ 連接中 錯誤 為群組停用回執? - 過往的成員 %1$s + 成員 %1$s 私密訊息路由 🚀 貼上封存連結 從桌面使用並掃描QR code。]]> @@ -1909,7 +1909,7 @@ 你分享了一個無效的檔案路徑。請將此問題報告給應用程式開發者。 如果沒有 Tor 或 VPN,你的 IP 位址將對以下 XFTP 中繼可見:\n%1$s。 檢視已崩潰 - 新增短連結 + 升級地址 接受了 %1$s 接受了你 新增團隊成員 @@ -2128,4 +2128,72 @@ 開啓新聊天 接受聯絡請求 接受聯絡請求 + 機械人 + 圖片 + 影片 + 檔案 + 連結 + 過濾器 + %d 個舉報 + 已棄用的選項 + 無訂閱 + 刪除訊息 + 搜尋圖片 + 搜尋影片 + 搜尋檔案 + 搜尋連結 + 語音訊息 + 所有訊息 + 重複加入請求? + 點擊以掃描 + 顯示內部錯誤 + 標準端對端加密 + 驗證資料庫密碼 + 顯示訊息狀態 + 設定預設主題 + 安全地接收檔案 + 臨時性檔案錯誤 + 重設所有統計 + 重設所有統計? + 有更新可用:%s + 略過此版本 + 更新下載已取消 + 儲存並重新連接 + 重設所有提示 + 自動升級應用程式 + 選擇聊天個人檔案 + 使用隨機憑證 + 儲存代理時發生錯誤 + 轉發訊息時發生錯誤 + 轉發 %1$s 條訊息? + 正在轉發 %1$s 條訊息 + 正在儲存 %1$s 條訊息 + 儲存伺服器時發生錯誤 + 接受條款時發生錯誤 + 公開地分享地址 + 用於社交媒體 + 用於訊息 + 用於私密路由 + 用於檔案 + 更新伺服器時發生錯誤 + 伺服器營運者已變更。 + 增加伺服器時發生錯誤 + 檢視已更新的條款 + 通知和電量 + 邀請加入聊天 + 使用 %s 開啟 + 沒有未讀聊天 + 找不到聊天 + 開啟以加入 + 開啟以連接 + 開啟以使用機械人 + 開啟以接受 + 搜尋或貼上 SimpleX 連結 + 你的每個訊息最多可以提及 %1$s 位成員! + 已透過代理傳送 + 伺服器統計資料將被重設—此操作無法撤銷! + 你沒有連接至這些伺服器。已使用私密路由將訊息傳送至這些伺服器。 + 不能在兩部裝置上使用同一資料庫。]]> + 警告:不支援在多個裝置上同時聊天,否則會導致訊息傳送失敗 + 或匯入封存檔案 diff --git a/apps/simplex-directory-service/src/Directory/Service.hs b/apps/simplex-directory-service/src/Directory/Service.hs index a6d6377032..34b63ff06a 100644 --- a/apps/simplex-directory-service/src/Directory/Service.hs +++ b/apps/simplex-directory-service/src/Directory/Service.hs @@ -326,6 +326,10 @@ directoryServiceEvent st opts@DirectoryOpts {adminUsers, superUsers, serviceName notifyAdminUsers msg logError msg groupInfoText p@GroupProfile {description = d} = groupNameDescr p <> maybe "" ("\nWelcome message:\n" <>) d + knockingStr :: Maybe GroupMemberAdmission -> [Text] + knockingStr = \case + Just GroupMemberAdmission {review = Just MCAll} -> ["New members are reviewed by admins"] + _ -> [] groupNameDescr GroupProfile {displayName = n, fullName = fn, shortDescr = sd_} = n <> maybe "" (\d' -> " (" <> d' <> ")") descr where @@ -485,9 +489,9 @@ directoryServiceEvent st opts@DirectoryOpts {adminUsers, superUsers, serviceName GroupInfo {groupId, groupProfile = p} = fromGroup GroupInfo {groupProfile = p'} = toGroup sameProfile - GroupProfile {displayName = n, fullName = fn, shortDescr = sd, image = i, description = d} - GroupProfile {displayName = n', fullName = fn', shortDescr = sd', image = i', description = d'} = - n == n' && fn == fn' && i == i' && sd == sd' && (T.words <$> d) == (T.words <$> d') + GroupProfile {displayName = n, fullName = fn, shortDescr = sd, image = i, description = d, memberAdmission = ma} + GroupProfile {displayName = n', fullName = fn', shortDescr = sd', image = i', description = d', memberAdmission = ma'} = + n == n' && fn == fn' && i == i' && sd == sd' && (T.words <$> d) == (T.words <$> d') && ma == ma' groupLinkAdded gr byMember = getDuplicateGroup toGroup >>= \case Left e -> notifyOwner gr $ "Error: getDuplicateGroup. Please notify the developers.\n" <> T.pack e @@ -532,9 +536,9 @@ directoryServiceEvent st opts@DirectoryOpts {adminUsers, superUsers, serviceName checkRolesSendToApprove gr' n' where onlyLinkChanged - GroupProfile {displayName = dn, fullName = fn, shortDescr = sd, image = i, description = d} - GroupProfile {displayName = dn', fullName = fn', shortDescr = sd', image = i', description = d'} = - dn == dn' && fn == fn' && i == i' && sd == sd' && (T.words . T.replace linkBefore "" <$> d) == (T.words . T.replace linkNow "" <$> d') + GroupProfile {displayName = dn, fullName = fn, shortDescr = sd, image = i, description = d, memberAdmission = ma} + GroupProfile {displayName = dn', fullName = fn', shortDescr = sd', image = i', description = d', memberAdmission = ma'} = + dn == dn' && fn == fn' && i == i' && sd == sd' && ma == ma' && (T.words . T.replace linkBefore "" <$> d) == (T.words . T.replace linkNow "" <$> d') GPServiceLinkError -> logError $ "Error: no group link for " <> groupRef <> " pending approval." groupProfileUpdate = profileUpdate <$> sendChatCmd cc (APIGetGroupLink groupId) where @@ -996,10 +1000,10 @@ directoryServiceEvent st opts@DirectoryOpts {adminUsers, superUsers, serviceName where msgs = replyMsg :| map foundGroup gs <> [moreMsg | moreGroups > 0] replyMsg = (Just ciId, MCText reply) - foundGroup (GroupInfo {groupId, groupProfile = p@GroupProfile {image = image_}, groupSummary = GroupSummary {currentMembers}}, _) = + foundGroup (GroupInfo {groupId, groupProfile = p@GroupProfile {image = image_, memberAdmission}, groupSummary = GroupSummary {currentMembers}}, _) = let membersStr = "_" <> tshow currentMembers <> " members_" showId = if isAdmin then tshow groupId <> ". " else "" - text = showId <> groupInfoText p <> "\n" <> membersStr + text = T.unlines $ [showId <> groupInfoText p, membersStr] ++ knockingStr memberAdmission in (Nothing, maybe (MCText text) (\image -> MCImage {text, image}) image_) moreMsg = (Nothing, MCText $ "Send /next for " <> tshow moreGroups <> " more result(s).") @@ -1181,14 +1185,14 @@ directoryServiceEvent st opts@DirectoryOpts {adminUsers, superUsers, serviceName sendComposedMessages_ cc (SRDirect $ contactId' ct) $ replyMsg :| map groupMessage gs' where groupMessage ((g, gr), ct_) = - let GroupInfo {groupId, groupProfile = p@GroupProfile {image = image_}, groupSummary} = g + let GroupInfo {groupId, groupProfile = p@GroupProfile {image = image_, memberAdmission}, groupSummary} = g GroupReg {userGroupRegId, groupRegStatus} = gr useGroupId = if isAdmin then groupId else userGroupRegId statusStr = "Status: " <> groupRegStatusText groupRegStatus membersStr = "_" <> tshow (currentMembers groupSummary) <> " members_" cmds = "/'role " <> tshow useGroupId <> "', /'filter " <> tshow useGroupId <> "'" ownerStr = maybe "" (("Owner: " <>) . either (("getContact error: " <>) . T.pack) localDisplayName') ct_ - text = T.unlines $ [tshow useGroupId <> ". " <> groupInfoText p] ++ [ownerStr | isAdmin] ++ [membersStr, statusStr, cmds] + text = T.unlines $ [tshow useGroupId <> ". " <> groupInfoText p] ++ [ownerStr | isAdmin] ++ [membersStr, statusStr] ++ knockingStr memberAdmission ++ [cmds] msg = maybe (MCText text) (\image -> MCImage {text, image}) image_ in (Nothing, msg) diff --git a/cabal.project b/cabal.project index f742308908..0351132f7e 100644 --- a/cabal.project +++ b/cabal.project @@ -21,7 +21,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: a1b762992b10aa3db1cd949e6c408c0043ace674 + tag: 50b71d3e569c85e788609f921ec1ae389c15abd3 source-repository-package type: git diff --git a/plans/2026-03-29-initial-open-last-unread-block.md b/plans/2026-03-29-initial-open-last-unread-block.md new file mode 100644 index 0000000000..034b57118b --- /dev/null +++ b/plans/2026-03-29-initial-open-last-unread-block.md @@ -0,0 +1,199 @@ +# Initial chat open: jump to last unread block + +## Problem + +When opening a chat with unread messages, the app always scrolls to the oldest unread message (`minUnreadItemId`). For casual group members with hundreds of unreads, this forces them to scroll through the entire backlog to reach new messages. + +The bottom circle scrolls to the latest messages without marking all as read (by design — moderators use this to reply quickly, then return to the top circle to read sequentially). But the next time the chat opens, it jumps back to the oldest unread. + +Users want the initial open to skip old unreads and land on the "new" ones — messages that arrived after their last interaction. + +## Design + +Change `CPInitial` to use a different pivot for `getDirectChatAround'` / `getGroupChatAround'`. + +Currently the pivot is `minUnreadItemId` (absolute first unread). Instead, try `maxViewedItemId` (last non-unread item in sort order) first. If not found, fall back to `minUnreadItemId`. The `getAround'` function is unchanged — it always loads `CRBefore`/`CRAfter` around the pivot and includes it. + +**maxViewedItemId**: the last item in sort order that is not `CISRcvNew`. +- "Viewed" means received read or sent — any `item_status != CISRcvNew`. + +### Why include works for both pivots + +`getDirectChatAround'` always includes the pivot in the result. When the pivot is maxViewed (a read item), including it adds one extra read item — harmless. The client scrolls to the first unread in the loaded items, which is the first item in `afterCIs` (the new unreads after the gap). The include/exclude distinction is unnecessary. + +### Sort order + +- Groups: `(item_ts, chat_item_id)` +- Direct chats: `(created_at, chat_item_id)` + +### Cases + +Items in display order (left = oldest/top, right = newest/bottom). U = unread (`CISRcvNew`), R = not unread (read, sent, event). + +**Case 1: Unreads contiguous from bottom, no gap** +``` +R...R U...U + ↑ maxViewed (last R) used as pivot +``` +`afterCIs` = the unreads. Same as current behavior. + +**Case 2: Gap, then new unreads at bottom** +``` +R...R U...U R...R U...U + ↑ maxViewed used as pivot +``` +`afterCIs` = new unreads only. Skips old unreads. This is the desired improvement. + +**Case 3: Gap at bottom, no new unreads** +``` +R...R U...U R...R + ↑ maxViewed used as pivot +``` +`afterCIs` = empty. Items loaded are the latest. Old unreads reachable via top circle. + +**Case 4: All unread** +``` +U...U +``` +maxViewed = NULL. Fall back to `minUnreadItemId` as pivot. Current behavior. + +**Case 5: No unreads** + +`maxViewedItemId` returns some item but `minUnreadItemId` returns `Nothing` — no unreads exist. Handled by stats showing zero unreads. `getAround'` loads items around maxViewed, which are the latest items. + +Actually: maxViewed is always found when items exist (every chat has at least sent items or read items unless case 4). So the flow is: maxViewed found → load around it → stats show 0 unreads → client shows latest items. + +### No UI changes needed + +Only `CPInitial` backend logic changes. The top circle, unread counter, unread separator, and all pagination continue to use `minUnreadItemId` as before. + +### Out-of-order delivery + +A late-arriving group message with old `item_ts` but recent `created_at` sorts into the old unread block in display order and gets skipped on initial open. This is acceptable — the top circle still reaches it. + +### Notes (local chat) + +Notes (`getLocalChatInitial_`) have unread handling in code but it's dead — all items are sent, `CISRcvNew` never occurs. No change needed. + +### Open concern + +In case 2, `CRBefore(maxViewed)` loads items before the gap, which may include old unreads. The client's scroll logic finds the first unread in loaded items (`lastIndex(where: hasUnread)` in reversed list), which could be an old unread from `beforeCIs` rather than a new unread from `afterCIs`. To be validated during testing — if problematic, may need client-side adjustment or limiting `beforeCIs` count. + +## Implementation + +### Files to modify + +`src/Simplex/Chat/Store/Messages.hs` — all changes are here. + +### New functions + +#### Direct chats + +```haskell +-- max viewed item: received read or sent (any item_status != CISRcvNew) +getContactMaxViewedItemId_ :: DB.Connection -> User -> Contact -> IO (Maybe ChatItemId) +``` + +Query: +```sql +SELECT chat_item_id +FROM chat_items +WHERE user_id = ? AND contact_id = ? AND item_status != ? +ORDER BY created_at DESC, chat_item_id DESC +LIMIT 1 +``` + +#### Groups + +```haskell +-- max viewed item: received read or sent (any item_status != CISRcvNew) +getGroupMaxViewedItemId_ :: DB.Connection -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> Maybe MsgContentTag -> ExceptT StoreError IO (Maybe ChatItemId) +``` + +Mirrors `queryUnreadGroupItems` structure but with `item_status != ?` instead of `item_status = ?`. Handles the same 4-case scope/content filter dispatch. New function `queryViewedGroupItems`. + +Query (for the no-scope, no-content-filter case): +```sql +SELECT chat_item_id +FROM chat_items +WHERE user_id = ? AND group_id = ? + AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL + AND item_status != ? +ORDER BY item_ts DESC, chat_item_id DESC +LIMIT 1 +``` + +### Modified functions + +#### `getDirectChatInitial_` + +Current: +```haskell +getDirectChatInitial_ db user ct contentFilter count = do + liftIO (getContactMinUnreadId_ db user ct) >>= \case + Just minUnreadItemId -> do + unreadCount <- liftIO $ getContactUnreadCount_ db user ct + let stats = emptyChatStats {unreadCount, minUnreadItemId} + getDirectChatAround' db user ct contentFilter minUnreadItemId count "" stats + Nothing -> (,Just $ NavigationInfo 0 0) <$> getDirectChatLast_ db user ct contentFilter count "" +``` + +New — only the pivot source changes, rest stays the same: +```haskell +getDirectChatInitial_ db user ct contentFilter count = do + liftIO (getContactMaxViewedItemId_ db user ct >>= maybe (getContactMinUnreadId_ db user ct) (pure . Just)) >>= \case + Just pivotId -> do + unreadCount <- liftIO $ getContactUnreadCount_ db user ct + minUnreadItemId <- fromMaybe 0 <$> liftIO (getContactMinUnreadId_ db user ct) + let stats = emptyChatStats {unreadCount, minUnreadItemId} + getDirectChatAround' db user ct contentFilter pivotId count "" stats + Nothing -> (,Just $ NavigationInfo 0 0) <$> getDirectChatLast_ db user ct contentFilter count "" +``` + +#### `getGroupChatInitial_` + +Same minimal change — only the pivot source: +```haskell +getGroupChatInitial_ db user g scopeInfo_ contentFilter count = do + (getGroupMaxViewedItemId_ db user g scopeInfo_ contentFilter >>= maybe (getGroupMinUnreadId_ db user g scopeInfo_ contentFilter) (pure . Just)) >>= \case + Just pivotId -> do + stats <- getGroupStats_ db user g scopeInfo_ + getGroupChatAround' db user g scopeInfo_ contentFilter pivotId count "" stats + Nothing -> do + stats <- liftIO $ getStats 0 (0, 0) + (,Just $ NavigationInfo 0 0) <$> getGroupChatLast_ db user g scopeInfo_ contentFilter count "" stats + where + getStats minUnreadItemId (unreadCount, unreadMentions) = do + reportsCount <- getGroupReportsCount_ db user g False + pure ChatStats {unreadCount, unreadMentions, reportsCount, minUnreadItemId, unreadChat = False} +``` + +### Summary of all affected functions + +| Function | Change | +|----------|--------| +| `getDirectChatInitial_` | Try maxViewed first, fall back to minUnread, same `getAround'` call | +| `getGroupChatInitial_` | Same | +| **New:** `getContactMaxViewedItemId_` | MAX non-unread by (created_at DESC, id DESC) | +| **New:** `getGroupMaxViewedItemId_` | MAX non-unread with scope/filter dispatch | +| **New:** `queryViewedGroupItems` | Like `queryUnreadGroupItems` but `item_status != ?` | + +Nothing else changes. `getDirectChatAround'`, `getGroupChatAround'`, `getDirectChatAround_`, `getGroupChatAround_`, `getContactMinUnreadId_`, `getGroupMinUnreadId_`, `getContactStats_`, `getGroupStats_`, `getChatItemIDs`, `NavigationInfo` computation, mark-read operations, UI code — all unchanged. + +### Performance + +- `maxViewedItemId` query: scans backward from the largest sort key, skipping unread items. Fast when there are recent read/sent items (the common case). Worst case: all items are unread — returns `Nothing` and falls back to minUnread. + +- All other queries are existing code, same performance. + +- Queries run only during `CPInitial` (chat open). No writes. + +### Testing + +1. Open chat with unreads, no prior interaction → same as current (case 1/4) +2. Open chat, jump to bottom (marks bottom screen read), close, reopen → lands on new unreads after the gap (case 2) +3. Open chat, jump to bottom, reply, close, new messages arrive, reopen → lands on new messages (case 2) +4. Open chat, jump to bottom, close, no new messages, reopen → loads around last viewed item at bottom (case 3) +5. Open chat, read from top (marks first screen read), close, reopen → lands on next unread after first screen, same as current (case 1) +6. Group with scope (member support chat) → same behavior with scope filter applied +7. Group with content filter (reports) → same behavior with content filter applied diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index ecbcddfa7f..62ae60b5f9 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."a1b762992b10aa3db1cd949e6c408c0043ace674" = "0k9sw6sf8hlgdbxfjd3rgzgf5yzqlkfpqj7mh934myp2vn9xhvnb"; + "https://github.com/simplex-chat/simplexmq.git"."50b71d3e569c85e788609f921ec1ae389c15abd3" = "1qisk492nn8ywrjnjgjkx3a7al18m7h2n44nna2i6imryinys4ik"; "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"; diff --git a/simplex-chat.cabal b/simplex-chat.cabal index d45667bfc1..0aada5642b 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 6.5.0.9 +version: 6.5.0.11 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat diff --git a/src/Simplex/Chat/Store/Messages.hs b/src/Simplex/Chat/Store/Messages.hs index 465ee2b1b4..637bfa2de5 100644 --- a/src/Simplex/Chat/Store/Messages.hs +++ b/src/Simplex/Chat/Store/Messages.hs @@ -1322,7 +1322,8 @@ getDirectChatInitial_ db user ct contentFilter count = do Just minUnreadItemId -> do unreadCount <- liftIO $ getContactUnreadCount_ db user ct let stats = emptyChatStats {unreadCount, minUnreadItemId} - getDirectChatAround' db user ct contentFilter minUnreadItemId count "" stats + pivotId <- liftIO $ fromMaybe minUnreadItemId <$> getContactMaxViewedItemId_ db user ct + getDirectChatAround' db user ct contentFilter pivotId count "" stats Nothing -> (,Just $ NavigationInfo 0 0) <$> getDirectChatLast_ db user ct contentFilter count "" getContactStats_ :: DB.Connection -> User -> Contact -> IO ChatStats @@ -1345,6 +1346,21 @@ getContactMinUnreadId_ db User {userId} Contact {contactId} = |] (userId, contactId, CISRcvNew) +-- max viewed item: received read or sent (any item_status != CISRcvNew) +getContactMaxViewedItemId_ :: DB.Connection -> User -> Contact -> IO (Maybe ChatItemId) +getContactMaxViewedItemId_ db User {userId} Contact {contactId} = + fmap join . maybeFirstRow fromOnly $ + DB.query + db + [sql| + SELECT chat_item_id + FROM chat_items + WHERE user_id = ? AND contact_id = ? AND item_status != ? + ORDER BY created_at DESC, chat_item_id DESC + LIMIT 1 + |] + (userId, contactId, CISRcvNew) + getContactUnreadCount_ :: DB.Connection -> User -> Contact -> IO Int getContactUnreadCount_ db User {userId} Contact {contactId} = fromOnly . head @@ -1652,7 +1668,8 @@ getGroupChatInitial_ db user g scopeInfo_ contentFilter count = do Just minUnreadItemId -> do unreadCounts <- getGroupUnreadCount_ db user g scopeInfo_ Nothing stats <- liftIO $ getStats minUnreadItemId unreadCounts - getGroupChatAround' db user g scopeInfo_ contentFilter minUnreadItemId count "" stats + pivotId <- fromMaybe minUnreadItemId <$> getGroupMaxViewedItemId_ db user g scopeInfo_ contentFilter + getGroupChatAround' db user g scopeInfo_ contentFilter pivotId count "" stats Nothing -> do stats <- liftIO $ getStats 0 (0, 0) (,Just $ NavigationInfo 0 0) <$> getGroupChatLast_ db user g scopeInfo_ contentFilter count "" stats @@ -1671,14 +1688,23 @@ getGroupStats_ db user g scopeInfo_ = do getGroupMinUnreadId_ :: DB.Connection -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> Maybe MsgContentTag -> ExceptT StoreError IO (Maybe ChatItemId) getGroupMinUnreadId_ db user g scopeInfo_ contentFilter = fmap join . maybeFirstRow fromOnly $ - queryUnreadGroupItems db user g scopeInfo_ contentFilter baseQuery orderLimit + queryUnreadGroupItems db user g scopeInfo_ contentFilter " item_status = ? " baseQuery orderLimit where baseQuery = "SELECT chat_item_id FROM chat_items WHERE user_id = ? AND group_id = ? " orderLimit = " ORDER BY item_ts ASC, chat_item_id ASC LIMIT 1" +-- max viewed item: received read or sent (any item_status != CISRcvNew) +getGroupMaxViewedItemId_ :: DB.Connection -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> Maybe MsgContentTag -> ExceptT StoreError IO (Maybe ChatItemId) +getGroupMaxViewedItemId_ db user g scopeInfo_ contentFilter = + fmap join . maybeFirstRow fromOnly $ + queryUnreadGroupItems db user g scopeInfo_ contentFilter " item_status != ? " baseQuery orderLimit + where + baseQuery = "SELECT chat_item_id FROM chat_items WHERE user_id = ? AND group_id = ? " + orderLimit = " ORDER BY item_ts DESC, chat_item_id DESC LIMIT 1" + getGroupUnreadCount_ :: DB.Connection -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> Maybe MsgContentTag -> ExceptT StoreError IO (Int, Int) getGroupUnreadCount_ db user g scopeInfo_ contentFilter = - head <$> queryUnreadGroupItems db user g scopeInfo_ contentFilter baseQuery "" + head <$> queryUnreadGroupItems db user g scopeInfo_ contentFilter " item_status = ? " baseQuery "" where baseQuery = "SELECT COUNT(1), COALESCE(SUM(user_mention), 0) FROM chat_items WHERE user_id = ? AND group_id = ? " @@ -1690,26 +1716,26 @@ getGroupReportsCount_ db User {userId} GroupInfo {groupId} archived = "SELECT COUNT(1) FROM chat_items WHERE user_id = ? AND group_id = ? AND msg_content_tag = ? AND item_deleted = ? AND item_sent = 0" (userId, groupId, MCReport_, BI archived) -queryUnreadGroupItems :: FromRow r => DB.Connection -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> Maybe MsgContentTag -> Query -> Query -> ExceptT StoreError IO [r] -queryUnreadGroupItems db User {userId} GroupInfo {groupId} scopeInfo_ contentFilter baseQuery orderLimit = +queryUnreadGroupItems :: FromRow r => DB.Connection -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> Maybe MsgContentTag -> Query -> Query -> Query -> ExceptT StoreError IO [r] +queryUnreadGroupItems db User {userId} GroupInfo {groupId} scopeInfo_ contentFilter statusCond baseQuery orderLimit = case (scopeInfo_, contentFilter) of (Nothing, Nothing) -> liftIO $ DB.query db - (baseQuery <> " AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? " <> orderLimit) + (baseQuery <> " AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND " <> statusCond <> orderLimit) (userId, groupId, CISRcvNew) (Nothing, Just mcTag) -> liftIO $ DB.query db - (baseQuery <> " AND msg_content_tag = ? AND item_status = ? " <> orderLimit) + (baseQuery <> " AND msg_content_tag = ? AND " <> statusCond <> orderLimit) (userId, groupId, mcTag, CISRcvNew) (Just GCSIMemberSupport {groupMember_ = m}, Nothing) -> liftIO $ DB.query db - (baseQuery <> " AND group_scope_tag = ? AND group_scope_group_member_id IS NOT DISTINCT FROM ? AND item_status = ? " <> orderLimit) + (baseQuery <> " AND group_scope_tag = ? AND group_scope_group_member_id IS NOT DISTINCT FROM ? AND " <> statusCond <> orderLimit) (userId, groupId, GCSTMemberSupport_, groupMemberId' <$> m, CISRcvNew) (Just _scope, Just _mcTag) -> throwError $ SEInternalError "group scope and content filter are not supported together" diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index 99c1b1899b..5dc9287d0e 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -3361,6 +3361,16 @@ Query: Plan: SEARCH chat_items USING INDEX idx_chat_items_contact_id (contact_id=?) +Query: + SELECT chat_item_id + FROM chat_items + WHERE user_id = ? AND contact_id = ? AND item_status != ? + ORDER BY created_at DESC, chat_item_id DESC + LIMIT 1 + +Plan: +SEARCH chat_items USING INDEX idx_chat_items_contacts_created_at (user_id=? AND contact_id=?) + Query: SELECT chat_item_id FROM chat_items @@ -6461,7 +6471,7 @@ Query: SELECT COUNT(1) FROM groups WHERE user_id = ? AND chat_item_ttl > 0 Plan: SEARCH groups USING INDEX sqlite_autoindex_groups_2 (user_id=?) -Query: SELECT COUNT(1), COALESCE(SUM(user_mention), 0) FROM chat_items WHERE user_id = ? AND group_id = ? AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? +Query: SELECT COUNT(1), COALESCE(SUM(user_mention), 0) FROM chat_items WHERE user_id = ? AND group_id = ? AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? Plan: SEARCH chat_items USING COVERING INDEX idx_chat_items_group_scope_stats_all (user_id=? AND group_id=? AND group_scope_tag=? AND group_scope_group_member_id=? AND item_status=?) @@ -6515,7 +6525,11 @@ Query: SELECT chat_item_id FROM chat_items WHERE user_id = ? AND contact_id = ? Plan: SEARCH chat_items USING INDEX idx_chat_items_direct_shared_msg_id (user_id=? AND contact_id=? AND shared_msg_id=?) -Query: SELECT chat_item_id FROM chat_items WHERE user_id = ? AND group_id = ? AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? ORDER BY item_ts ASC, chat_item_id ASC LIMIT 1 +Query: SELECT chat_item_id FROM chat_items WHERE user_id = ? AND group_id = ? AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status != ? ORDER BY item_ts DESC, chat_item_id DESC LIMIT 1 +Plan: +SEARCH chat_items USING INDEX idx_chat_items_group_scope_item_ts (user_id=? AND group_id=? AND group_scope_tag=? AND group_scope_group_member_id=?) + +Query: SELECT chat_item_id FROM chat_items WHERE user_id = ? AND group_id = ? AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? ORDER BY item_ts ASC, chat_item_id ASC LIMIT 1 Plan: SEARCH chat_items USING COVERING INDEX idx_chat_items_group_scope_item_status (user_id=? AND group_id=? AND group_scope_tag=? AND group_scope_group_member_id=? AND item_status=?) diff --git a/website/langs/ar.json b/website/langs/ar.json index 708e2d306d..41825d0683 100644 --- a/website/langs/ar.json +++ b/website/langs/ar.json @@ -200,7 +200,7 @@ "simplex-private-section-header": "ما الذي يجعل SimpleX خصوصيًّا", "privacy-matters-section-subheader": "الحفاظ على خصوصية بياناتك الوصفية — مع مَن تتحدث — يحميك من:", "simplex-network-1-overlay-linktext": "مشاكل شبكات P2P", - "simplex-network-section-desc": "يوفر Simplex Chat أفضل خصوصية من خلال الجمع بين مزايا P2P والشبكات الاتحادية.", + "simplex-network-section-desc": "يوفر SimpleX Chat أفضل خصوصية من خلال الجمع بين مزايا P2P والشبكات الاتحادية.", "simplex-network-1-desc": "يتم إرسال جميع الرسائل عبر الخوادم، مما يوفر خصوصية أفضل للبيانات الوصفية وتسليمًا موثوقًا للرسائل غير المتزامنة، مع تجنب الكثير", "simplex-network-2-header": "على عكس الشبكات الاتحادية", "simplex-network-3-desc": "توفر الخوادم قوائم انتظار أحادية الاتجاه لتوصيل المستخدمين، لكن ليس لديهم رؤية للرسم البياني لاتصال الشبكة — إلا للمستخدمين فقط.", diff --git a/website/langs/cs.json b/website/langs/cs.json index fd3cde171e..19f4aeedb6 100644 --- a/website/langs/cs.json +++ b/website/langs/cs.json @@ -1,7 +1,7 @@ { "simplex-private-card-10-point-2": "Umožňuje doručovat zprávy bez identifikátoru uživatelských profilů, což poskytuje lepší soukromí metadat než alternativy.", "simplex-unique-4-overlay-1-title": "Plně decentralizované — uživatelé vlastní síť SimpleX", - "hero-overlay-card-1-p-6": "Přečtěte si více v SimpleX whitepaper.", + "hero-overlay-card-1-p-6": "Více v SimpleX whitepaper.", "hero-overlay-card-1-p-2": "K doručování zpráv používá SimpleX namísto ID uživatelů používaných všemi ostatními sítěmi, dočasné anonymní párové identifikátory front zpráv, oddělené pro každé z vašich připojení — neexistují žádné dlouhodobé identifikátory.", "hero-overlay-card-1-p-3": "Definujete, které servery se mají používat k přijímání zpráv, vašich kontaktů — servery, které používáte k odesílání zpráv. Každá konverzace bude pravděpodobně používat dva různé servery.", "hero-overlay-card-2-p-3": "I v těch nejsoukromějších aplikacích, které používají služby Tor v3, pokud mluvíte se dvěma různými kontakty prostřednictvím stejného profilu, může být prokázáno, že jsou spojeni se stejnou osobou.", @@ -102,7 +102,7 @@ "simplex-unique-overlay-card-4-p-1": "Můžete použít SimpleX se svými vlastními servery a přesto komunikovat s lidmi, kteří používají přednastavené servery v aplikacích.", "simplex-unique-overlay-card-4-p-3": "Pokud uvažujete o vývoji pro SimpleX síť, například chat bot pro uživatele aplikace SimpleX nebo integraci knihovny SimpleX chat do Vasí mobilní aplikace, prosím buďte ve spojení pro jakoukoli radu a podporu.", "simplex-unique-card-1-p-1": "SimpleX chrání soukromí vašeho profilu, kontaktů a metadat a skrývá je před servery SimpleX sítě a jakýmikoli pozorovateli.", - "simplex-unique-card-1-p-2": "Na rozdíl od jakékoli jiné existující síti pro zasílání zpráv nemá SimpleX žádné identifikátory přiřazené uživatelům — ani náhodná čísla.", + "simplex-unique-card-1-p-2": "Na rozdíl od jakékoli jiné existující síti pro zasílání zpráv nemá SimpleX žádné identifikátory přiřazené uživatelům — ani náhodná čísla.", "simplex-unique-card-3-p-1": "SimpleX Chat ukládá všechna uživatelská data pouze na klientských zařízeních pomocí přenosného šifrovaného databázového formátu, který lze exportovat a přenést na jakékoli podporované zařízení.", "simplex-unique-card-3-p-2": "End-to-end šifrované zprávy jsou dočasně uchovávány na přenosových serverech SimpleX, dokud nejsou přijaty, poté jsou trvale odstraněny.", "join": "Připojit", @@ -140,10 +140,10 @@ "privacy-matters-section-header": "Proč na soukromí záleží", "privacy-matters-section-subheader": "Zachování soukromí vašich metadat — s kým mluvíte — vás chrání před:", "privacy-matters-section-label": "Ujistěte se, že váš messenger nemá přístup k vašim datům!", - "simplex-private-section-header": "Co dělá SimpleX soukromým", + "simplex-private-section-header": "Co dělá SimpleX soukromým", "tap-to-close": "Klepnutím zavřete", "simplex-network-section-header": "SimpleX Síť", - "simplex-network-section-desc": "Simplex Chat poskytuje nejlepší soukromí tím, že kombinuje výhody P2P a federovaných sítí.", + "simplex-network-section-desc": "SimpleX Chat poskytuje nejlepší soukromí tím, že kombinuje výhody P2P a federovaných sítí.", "simplex-network-1-header": "Na rozdíl od P2P sítí", "simplex-network-1-overlay-linktext": "problémům P2P sítí", "simplex-network-2-header": "Na rozdíl od federovaných sítí", @@ -181,7 +181,7 @@ "privacy-matters-overlay-card-2-p-2": "Chcete-li být objektivní a činit nezávislá rozhodnutí, musíte mít svůj informační prostor pod kontrolou. Je to možné pouze v případě, že používáte soukromou komunikační síť, která nemá přístup k vašemu sociálnímu grafu.", "simplex-unique-overlay-card-1-p-2": "K doručování zpráv SimpleX používá párové anonymní adresy jednosměrných front zpráv, oddělených pro přijaté a odeslané zprávy, obvykle přes různé servery.", "privacy-matters-overlay-card-3-p-2": "Jedním z nejvíce šokujících příběhů je zkušenost Mohamedoua Oulda Salahiho popsaná v jeho pamětech a zobrazená v Mauritánském filmu. Byl umístěn do tábora na Guantánamu bez soudu a byl tam 15 let mučen po telefonátu svému příbuznému v Afghánistánu pro podezření z účasti na útocích z 11. září, i když předchozích 10 let žil v Německu.", - "simplex-unique-overlay-card-1-p-1": "Na rozdíl od jiných sítí pro zasílání zpráv nemá SimpleX žádné identifikátory přiřazené uživatelům. Nespoléhá na telefonní čísla, adresy založené na doméně (jako e-mail nebo XMPP), uživatelská jména, veřejné klíče nebo dokonce náhodná čísla k identifikaci svých uživatelů — Operátoři SimpleX serverů neví, kolik lidí používá jejich servery.", + "simplex-unique-overlay-card-1-p-1": "Na rozdíl od jiných sítí pro zasílání zpráv nemá SimpleX žádné identifikátory přiřazené uživatelům. Nespoléhá na telefonní čísla, adresy založené na doméně (jako e-mail nebo XMPP), uživatelská jména, veřejné klíče nebo dokonce náhodná čísla k identifikaci svých uživatelů — Operátoři SimpleX serverů neví, kolik lidí používá jejich servery.", "invitation-hero-header": "Byl vám zaslán odkaz pro připojení na SimpleX Chat", "simplex-unique-overlay-card-3-p-1": "SimpleX Chat ukládá všechna uživatelská data pouze na klientských zařízeních pomocí přenosného šifrovaného databázového formátu, který lze exportovat a přenést na jakékoli podporované zařízení.", "contact-hero-p-1": "Veřejné klíče a adresa fronty zpráv v tomto odkazu NEJSOU při zobrazení této stránky odesílány přes síť — jsou obsaženy ve fragmentu kontrolního součtu adresy URL odkazu.", @@ -235,7 +235,7 @@ "hero-overlay-3-title": "Hodnocení zabezpečení", "hero-overlay-3-textlink": "Hodnocení zabezpečení", "hero-overlay-card-3-p-1": "Trail of Bits je přední bezpečnostní a technologické poradenství, jejichž klienti zahrnují velké technologické firmy, vládní agentury a významné blockchainové projekty.", - "f-droid-page-simplex-chat-repo-section-text": "Chcete-li jej přidat do vašeho F-Droid clienta, naskenujte QR kód nebo použijte tuto adresu URL:", + "f-droid-page-simplex-chat-repo-section-text": "Chcete-li jej přidat do vašeho F-Droid clienta, naskenujte QR kód nebo použijte tuto adresu URL:", "f-droid-page-f-droid-org-repo-section-text": "SimpleX Chat a F-Droid.org repozitáře jsou podepsané různými klíči. Chcete-li přepnout, prosím exportujte chat databázi a přeinstalujte aplikaci.", "comparison-section-list-point-4a": "SimpleX relé nemůže ohrozit šifrování e2e. Ověřte bezpečnostní kód, který zmírňuje mimo pásmový útok na kanál", "docs-dropdown-8": "SimpleX Directory", @@ -279,12 +279,12 @@ "index-messaging-p2": "Pro vaše soukromí servery nevidí vaše zprávy ani to, s kým si píšete.", "index-messaging-cta": "Zjistit více o zprávách v SimpleX", "index-nextweb-h2": "Váš internet
budoucnosti", - "index-nextweb-p1": "SimpleX je postaven na myšlence, že vaše data, kontakty a skupiny patří vám.", - "index-nextweb-p2": "Otevřená decentralizovaná síť vám umožňuje spojovat se s ostatními a komunikovat svobodně a bezpečně.", + "index-nextweb-p1": "SimpleX je postaven na myšlence, že vy musíte vlastnit váš profil, kontakty a komunity.", + "index-nextweb-p2": "Nikým nevlastněná decentralizovaná síť, vám umožní spojit se s lidmi a sdílet nápady, být svobodný a bezpečný ve své síti.", "index-token-h2": "Stabilní komunity", "index-token-p1": "Své oblíbené skupiny budete moci podpořit pomocí připravovaných Skupinových Voucherů.", "index-token-p2": "Vouchery budou sloužit k úhradě provozu serverů, aby skupiny zůstaly svobodné a nezávislé.", - "index-token-cta": "Zjistěte více a získejte bezplatný přístup do testování.", + "index-token-cta": "Zjistěte více a získejte bezplatnou vstupenku pro rané testování.", "index-roadmap-h2": "Plán SimpleX ke svobodnému internetu", "index-roadmap-2025": "2025", "index-roadmap-2025-title": "Škálování pro velké komunity", @@ -314,5 +314,59 @@ "messengers-comparison-section-list-point-5": "Dvoufaktorovou výměnu klíčů lze volitelně aktivovat pomocí ověření bezpečnostním kódem.", "messengers-comparison-section-list-point-6": "Postkvantová dohoda o klíči je omezená — chrání pouze některé kroky ratchet mechanismu.", "navbar-old-site": "Starý web", + "why-p1": "Narodili jste se bez účtu.", + "why-p2": "Nikdo nesledoval vaše konverzace. Nikdo nenakreslil mapu, kde jste byli. Ochrana osobních údajů nikdy nebyla funkce — byl to způsob života.", + "why-tagline": "Buďte volní ve své síti.", + "why-footer-link": "Proč ji stavíme", + "docs-dropdown-15": "Ověřitelné a opakovatelné sestavení", + "why-p3": "Pak jsme se přesunuli na internet a každá platforma chtěla o vás něco vědět — vaše jméno, vaše číslo, vaše přátele. Smířili jsme se s tím, že cenou za komunikaci s ostatními je dát někomu vědět, s kým mluvíme. Každá generace, lidská i technická, to tak měla — telefon, e-mail, komunikátory, sociální sítě. Zdálo se, že je to jediný možný způsob.", + "why-p4": "Existuje i jiný způsob. Síť bez telefonních čísel. Bez uživatelských jmen. Bez účtů. Bez jakékoli uživatelské identity. Síť, která spojuje lidi a přenáší šifrované zprávy, aniž by bylo známo, kdo je připojen.", + "why-p5": "Není lepší zámek na dveřích někoho jiného. Není milejší nájemce, který respektuje vaše soukromí, ale přesto vede evidenci všech návštěvníků. Vy nejste host. Jste doma. Ani král do něj nemůže vstoupit — jste suverén.", + "why-p6": "Vaše konverzace patří vám, jako tomu bylo vždy před internetem. Síť není místo, které navštěvujete. Je to místo, které vytváříte a vlastníte. A nikdo vám ho nemůže vzít, ať už je soukromé, nebo veřejné.", + "why-p7": "Nejstarší lidská svoboda — mluvit s druhým člověkem, aniž by byl sledován — postavena na infrastruktuře, která ji nemůže zradit.", + "why-p8": "Protože jsme zničili sílu vědět, kdo jste. Aby vám vaši moc nikdo nemohl vzít.", + "file": "Soubor", + "file-noscript": "Pro přenos souborů je zapotřebí JavaScript.", + "file-e2e-note": "Koncové šifrování — server nikdy neuvidí váš soubor.", + "file-learn-more": "Další informace o protokolu XFTP", + "file-desc": "Odeslání souborů bezpečně s šifrováním end-to-end — žádné účty, žádné sledování.", + "file-cta-heading": "Získejte SimpleX Chat — nejbezpečnější & soukromí komunikátor", + "file-cta-subheading": "Přenos souborů, který jste právě použili, používá stejný protokol pro přenos dat jako SimpleX Chat. Aplikace má end-to-end šifrované zprávy, hlasové a video volání, skupiny a odesílání souborů. Žádný účet. Žádný telefon. Žádný e-mail. Žádné ID uživatelského profilu.", + "file-title": "SimpleX Přenos Souborů", + "file-drop-text": "Přetáhněte soubor sem", + "file-drop-hint": "nebo", + "file-choose": "Vyberte soubor", + "file-max-size": "Max 100 MB - SimpleX Chat apka podporuje soubory až do 1 GB", + "file-encrypting": "Šifruji…", + "file-uploading": "Nahrávám…", + "file-cancel": "Zrušit", + "file-uploaded": "Nahrané soubory", + "file-copy": "Kopírovat", + "file-copied": "Zkopírováno!", + "file-share": "Sdílet", + "file-expiry": "Soubory jsou obvykle k dispozici 48 hodin.", + "file-sec-1": "Váš soubor byl zašifrován v prohlížeči - datové routery nikdy neuvidí obsah souboru, jméno nebo velikost.", + "file-sec-2": "Šifrovací klíč je obsažen v hash části odkazu – nikdy se neodesílá na žádný server.", + "file-sec-3": "Pro větší bezpečnost, použijte SimpleX Chat apku.", + "file-retry": "Znovu", + "file-downloading": "Stahuji…", + "file-decrypting": "Dešifruji…", + "file-download-complete": "Stažení dokončeno", + "file-download-btn": "Stahování", + "file-too-large": "Soubor příliš velký (%size%). Maximum je 100 MB. SimpleX app podporuje soubory až do 1 GB.", + "file-empty": "Soubor je prázdný.", + "file-invalid-link": "Neplatný nebo poškozený odkaz.", + "file-init-error": "Chyba inicializace: %error%", + "file-available": "Dostupný soubor (~%size%)", + "file-dl-sec-1": "Tento soubor je šifrován - datové směrovače nikdy neuvidí obsah souboru, jméno nebo velikost.", + "file-workers-required": "Vyžadováni Web Workers — aktualizujte prohlížeč", + "file-protocol-title": "XFTP protokol: nejbezpečnější přenos souborů", + "file-proto-h-1": "Není nutný žádný účet", + "file-proto-p-1": "Každá část souborů používá nový náhodný klíč. Datové směrovače nemají \"uživatele\" nebo \"soubory\" - přenášejí šifrované části souborů stejných velikostí.", + "file-proto-h-2": "Trojitě zašifrováno ve vašem prohlížeči", + "file-proto-h-4": "Nezávislé směrovače dat", + "file-proto-spec": "Přečtěte si specifikaci XFTP protokolu →", + "file-proto-p-2": "Šifrovací klíč souboru je obsažen pouze v části hash adresy URL – váš prohlížeč jej nikdy neodesílá na server. Existují 3 úrovně šifrování: přenos přes protokol TLS, šifrování pro každého příjemce (jedinečný dočasný klíč pro každý přenos) a šifrování souborů typu end-to-end.", + "file-proto-p-4": "Když je soubor rozdělen na části, je odeslán přes síťové směrovače provozované nezávislými stranami. Žádný operátor nemůže vidět aktuální velikost nebo jméno souboru. I kdyby byl směrovač ohrožen, může vidět pouze šifrované části s pevně stanovenou velikosti. Části souboru jsou v mezipaměti síťových směrovačů uchovávány přibližně 48 hodin.", "send-file": "Odeslat soubor" } diff --git a/website/langs/de.json b/website/langs/de.json index a1ec3447b3..17fb9b184a 100644 --- a/website/langs/de.json +++ b/website/langs/de.json @@ -200,7 +200,7 @@ "privacy-matters-overlay-card-1-p-4": "Das SimpleX-Netzwerk schützt die Privatsphäre Ihrer Verbindungen besser als jede Alternative und verhindert vollständig, dass Ihr sozialer Graph für Unternehmen oder Organisationen verfügbar wird. Selbst wenn Anwender die in der SimpleX Chat-App vorkonfigurierten Server verwenden, kennen die Server-Betreiber die Anzahl der Benutzer oder deren Verbindungen nicht.", "contact-hero-header": "Sie haben eine Adresse zur Verbindung mit SimpleX Chat erhalten", "invitation-hero-header": "Sie haben einen Einmal-Link zur Verbindung mit SimpleX Chat erhalten", - "privacy-matters-overlay-card-3-p-3": "Normale Menschen werden für das, was sie online teilen, sogar unter Nutzung ihrer „anonymen“ Konten, selbst in demokratischen Ländern verhaftet.", + "privacy-matters-overlay-card-3-p-3": "Selbst in demokratischen Ländern werden normale Menschen, auch unter Nutzung ihrer „anonymen“ Benutzerkennungen, für das, was sie online teilen, verhaftet.", "simplex-unique-overlay-card-3-p-1": "SimpleX Chat speichert alle Benutzerdaten ausschließlich auf den Endgeräten in einem portablen und verschlüsselten Datenbankformat, welches exportiert und auf jedes unterstützte Gerät übertragen werden kann.", "simplex-unique-overlay-card-2-p-2": "Auch wenn die optionale Benutzeradresse zum Versenden von Spam-Kontaktanfragen verwendet werden kann, können Sie sie ändern oder ganz löschen, ohne dass Ihre Verbindungen verloren gehen.", "simplex-unique-overlay-card-4-p-2": "Das SimpleX-Netzwerk verwendet ein offenes Protokoll und bietet ein SDK zur Erstellung von Chatbots an. Dies ermöglicht die Erstellung von Diensten, mit denen Nutzer über SimpleX Chat-Apps interagieren können — wir sind gespannt, welche SimpleX-Dienste Sie entwickeln werden.", @@ -275,15 +275,15 @@ "index-publications-optout-title": "Podcast-Interview von OptOut", "worlds-most-secure-messaging": "Das sicherste Messaging-System der Welt", "index-messaging-p1": "SimpleX-Messaging verfügt über modernste Ende-zu-Ende-Verschlüsselung.", - "index-messaging-p2": "Zu Ihrer Sicherheit und zum Schutz Ihrer Privatsphäre können Server Ihre Nachrichten weder sehen, noch mit wem Sie kommunizieren.", + "index-messaging-p2": "Zu Ihrer Sicherheit und zum Schutz Ihrer Privatsphäre können Server weder Ihre Nachrichten sehen, noch mit wem Sie kommunizieren.", "index-messaging-cta": "Lernen Sie mehr über SimpleX-Messaging", "index-nextweb-h2": "Sie besitzen die
Zukunft des Webs", - "index-nextweb-p1": "SimpleX basiert auf der Überzeugung, dass Sie Eigentümer Ihrer Identität, Ihrer Kontakte und Ihrer Communitys bleiben müssen.", - "index-nextweb-p2": "Ein offenes und dezentrales Netzwerk ermöglicht es Ihnen, mit Menschen in Kontakt zu treten und Ideen auszutauschen: Seien Sie frei und sicher.", + "index-nextweb-p1": "SimpleX wurde aus der Überzeugung heraus entwickelt, dass Sie Eigentümer Ihrer Profile, Kontakte und Communitys bleiben müssen.", + "index-nextweb-p2": "Ein dezentrales Netzwerk, welches Niemanden gehört, ermöglicht es Ihnen, mit Menschen in Kontakt zu treten, Ideen auszutauschen und dabei frei und sicher in Ihrem Netzwerk zu sein.", "index-token-h2": "Communitys, die Bestand haben", "index-token-p1": "Sie werden Ihre Lieblingsgruppen in Zukunft mit Community-Gutscheinen unterstützen können.", "index-token-p2": "Server werden mit Gutscheinen bezahlt, damit Ihre Communitys kostenlos und unabhängig bleiben können.", - "index-token-cta": "Erfahren Sie mehr und holen Sie sich Ihren kostenlosen NFT ab
, um es frühzeitig auszuprobieren.", + "index-token-cta": "Erfahren Sie mehr und sichern Sie sich einen kostenlosen Zugangspass, um es frühzeitig auszuprobieren.", "index-roadmap-h2": "SimpleX - Der Weg zum freien Internet", "index-roadmap-2025": "2025", "index-roadmap-2025-title": "Skalierung auf große Communitys", @@ -314,5 +314,59 @@ "messengers-comparison-section-list-point-6": "Die Schlüsselvereinbarung per Post-Quanten-Security ist nicht durchgängig — Sie schützt lediglich ausgewählte Schritte innerhalb des Ratchet-Prozesses.", "navbar-token": "Token", "navbar-old-site": "Alte Webseite", + "docs-dropdown-15": "Builds überprüfen und reproduzieren", + "why-p1": "Sie wurden ohne eine Benutzerkennung geboren.", + "why-p2": "Niemand verfolgte Ihre Gespräche. Niemand erstellte eine Karte, wo Sie sich aufgehalten haben. Privatsphäre war nie ein Feature — sie war selbstverständlich.", + "why-p3": "Dann sind wir online gegangen, und jede Plattform wollte Etwas von Ihnen — Ihren Namen, Ihre Nummer, Ihre Freunde. Wir akzeptierten, dass es der Preis mit Anderen zu kommunizieren ist, Jemandem preiszugeben, mit wem und wie wir miteinander kommunizieren. Jede Generation, Menschen und Technologien, kannten es nur so — Telefon, E-Mail, Messenger, soziale Medien. Es schien der einzig mögliche Weg zu sein.", + "why-p4": "Es gibt einen anderen Weg. Ein Netzwerk ohne Telefonnummern, ohne Benutzernamen, ohne Benutzerkennungen und ohne jegliche Benutzeridentität. Ein Netzwerk, welches Menschen verbindet und verschlüsselte Nachrichten überträgt, ohne zu wissen, wer mit wem verbunden ist.", + "why-p5": "Nicht ein besseres Schloss an der Tür eines Anderen. Kein freundlicher Vermieter, der Ihre Privatsphäre respektiert, aber dennoch jeden Besucher registriert. Sie sind kein Gast. Sie sind zu Hause. Kein Vermieter, kein Fremder kann es betreten — Sie sind souverän.", + "why-p6": "Ihre Kommunikation gehört Ihnen, so wie es immer war, bevor es das Internet gab. Das Netzwerk ist kein Ort, den Sie besuchen. Es ist ein Ort, den Sie erschaffen und besitzen und Niemand kann es Ihnen nehmen, egal ob Sie es privat oder öffentlich machen.", + "why-p7": "Die älteste Freiheit des Menschen — mit einem anderen Menschen sprechen zu können, ohne beobachtet zu werden — gestützt auf einer Infrastruktur, die Sie nicht verraten kann.", + "why-p8": "Weil wir die Macht zerstört haben, zu wissen, wer Sie sind. Damit Ihnen Ihre Macht niemals genommen werden kann.", + "why-tagline": "Genießen Sie die Freiheit in Ihrem Netzwerk.", + "why-footer-link": "Warum wir es erschaffen haben", + "file": "Datei", + "file-desc": "Versenden Sie Dateien via Ende-zu-Ende-Verschlüsselung — ohne Benutzerkennungen, ohne Tracking.", + "file-noscript": "Für den Datei-Transfer wird JavaScript benötigt.", + "file-e2e-note": "Ende-zu-Ende-verschlüsselt — der Server bekommt Ihre Datei nie zu sehen.", + "file-learn-more": "Erfahren Sie mehr über das XFTP-Protokoll", + "file-cta-heading": "Laden Sie sich die SimpleX Chat App herunter — die sicherste & private Messenger-App", + "file-cta-subheading": "Die Dateiübertragung, die Sie gerade verwendet haben, nutzt dasselbe Datenweiterleitungsprotokoll wie SimpleX Chat. Die App bietet Ende‑zu‑Ende‑verschlüsselte Nachrichten, Sprach‑ und Videoanrufe, Gruppen sowie das Senden von Dateien. Keine Benutzerkennung. Kein Telefon. Keine E‑Mail. Keine Benutzerprofil‑IDs.", + "file-title": "SimpleX Dateiübertragung", + "file-drop-text": "Datei per Drag & Drop hinzufügen", + "file-drop-hint": "oder", + "file-choose": "Datei auswählen", + "file-max-size": "Max. 100 MB — die SimpleX Chat App unterstützt Dateien bis zu 1 GB", + "file-encrypting": "Wird verschlüsselt…", + "file-uploading": "Wird hochgeladen…", + "file-cancel": "Abbrechen", + "file-uploaded": "Datei wurde hochgeladen", + "file-copy": "Kopieren", + "file-copied": "Wurde kopiert!", + "file-share": "Teilen", + "file-expiry": "Dateien sind in der Regel 48 Stunden lang verfügbar.", + "file-sec-1": "Ihre Datei wurde im Browser verschlüsselt — Datenrouter sehen weder Inhalt, Namen noch Größe der Datei.", + "file-sec-2": "Der für die Verschlüsselung genutzte Schlüssel befindet sich im Hash‑Fragment des Links und wird niemals an einen Server übertragen.", + "file-sec-3": "Für noch mehr Sicherheit verwenden Sie die SimpleX Chat App.", + "file-retry": "Wiederholen", + "file-downloading": "Wird heruntergeladen…", + "file-decrypting": "Wird entschlüsselt…", + "file-download-complete": "Herunterladen abgeschlossen", + "file-download-btn": "Herunterladen", + "file-too-large": "Datei ist zu groß (%size%). Das Maximum ist 100MB. Die SimpleX Chat App unterstützt Dateigrößen bis zu 1GB.", + "file-empty": "Datei ist leer.", + "file-invalid-link": "Ungültiger oder beschädigter Link.", + "file-init-error": "Initialisierung fehlgeschlagen: %error%", + "file-available": "Datei verfügbar (~%size%)", + "file-dl-sec-1": "Diese Datei ist verschlüsselt — Datenrouter sehen weder Inhalt, Namen noch Größe der Datei.", + "file-workers-required": "Web Workers werden benötigt — aktualisieren Sie Ihren Browser", + "file-protocol-title": "XFTP-Protokoll: Der sicherste Dateitransfer", + "file-proto-h-1": "Es wird keine Benutzerkennung benötigt", + "file-proto-p-1": "Jedes Dateifragment verwendet einen neuen zufälligen Schlüssel. Datenrouter kennen keine \"Benutzer\" oder \"Dateien\" — sie übertragen nur verschlüsselte Dateifragmente fester Größe.", + "file-proto-h-2": "Dreifach direkt in Ihrem Browser verschlüsselt", + "file-proto-p-2": "Der für die Dateiverschlüsselung genutzte Schlüssel befindet sich ausschließlich im Hash‑Fragment der URL — Ihr Browser sendet ihn niemals an einen Server. Es gibt drei Verschlüsselungsebenen: TLS‑Transport, empfängerbezogene Verschlüsselung (ein eindeutiger, flüchtiger Schlüssel pro Transfer) und Ende‑zu‑Ende‑Verschlüsselung der Datei.", + "file-proto-h-4": "Unabhängig voneinander arbeitende Datenrouter", + "file-proto-p-4": "Wenn die Datei in Fragmente aufgeteilt wurde, wird sie über Netzwerkrouter übertragen, die von unabhängigen Parteien betrieben werden. Kein Betreiber kann die tatsächliche Dateigröße oder den Dateinamen sehen. Selbst wenn ein Router kompromittiert wird, sieht er nur verschlüsselte Fragmente fester Größe. Die Fragmente werden von den Netzwerkroutern für etwa 48 Stunden zwischengespeichert.", + "file-proto-spec": "Lesen Sie die XFTP‑Protokollspezifikation durch →", "send-file": "Datei senden" } diff --git a/website/langs/en.json b/website/langs/en.json index b509e90342..aea1d057d4 100644 --- a/website/langs/en.json +++ b/website/langs/en.json @@ -185,7 +185,7 @@ "simplex-private-section-header": "What makes SimpleX private", "tap-to-close": "Tap to close", "simplex-network-section-header": "SimpleX Network", - "simplex-network-section-desc": "Simplex Chat provides the best privacy by combining the advantages of P2P and federated networks.", + "simplex-network-section-desc": "SimpleX Chat provides the best privacy by combining the advantages of P2P and federated networks.", "simplex-network-1-header": "Unlike P2P networks", "simplex-network-1-desc": "All messages are sent via the servers, both providing better metadata privacy and reliable asynchronous message delivery, while avoiding many", "simplex-network-1-overlay-linktext": "problems of P2P networks", diff --git a/website/langs/es.json b/website/langs/es.json index ac6993c085..5c708ef681 100644 --- a/website/langs/es.json +++ b/website/langs/es.json @@ -83,7 +83,7 @@ "simplex-unique-4-title": "La red SimpleX te pertenece", "hero-overlay-card-1-p-1": "Muchos usuarios se preguntan: si SimpleX no tiene identificadores de usuario, ¿cómo puede saber dónde entregar los mensajes?", "hero-overlay-card-1-p-4": "Este diseño evita que se filtren metadatos de usuario a nivel de aplicación. Para mejorar aún más la privacidad y proteger tu dirección IP, puedes conectarte a los servidores de mensajería a través de la red Tor.", - "hero-overlay-card-1-p-6": "Encontrarás más información en elSimpleX whitepaper.", + "hero-overlay-card-1-p-6": "Encontrarás más información en el SimpleX whitepaper.", "hero-overlay-card-2-p-1": "Cuando los usuarios asumen identidades persistentes, aunque sólo se trate de un número aleatorio como un identificador de sesión, existe el riesgo de que el proveedor de red o un atacante puedan observar cómo se conectan y la cantidad de mensajes que envían.", "hero-overlay-card-2-p-2": "A continuación podrían correlacionar esta información con las redes sociales públicas existentes y averiguar las identidades reales de los usuarios.", "hero-overlay-card-2-p-3": "Incluso con las aplicaciones más privadas que usan los servicios de Tor v3, si hablas con dos contactos a través de un mismo perfil se puede probar que estos están conectados con la misma persona.", @@ -199,7 +199,7 @@ "scan-the-qr-code-with-the-simplex-chat-app-description": "Las claves públicas y la dirección de la cola de mensajes de este enlace NO se envían a través de la red cuando ves esta página.
Están contenidos en el fragmento hash del URL del enlace.", "privacy-matters-section-header": "Por qué es importante la privacidad", "simplex-private-section-header": "Qué hace que SimpleX sea privado", - "simplex-network-section-desc": "Simplex Chat proporciona la mejor privacidad al combinar las ventajas de P2P y las redes federadas.", + "simplex-network-section-desc": "SimpleX Chat proporciona la mejor privacidad al combinar las ventajas de P2P y las redes federadas.", "simplex-network-1-header": "Distinta de las redes P2P", "simplex-network-2-header": "Distinta de las redes federadas", "simplex-network-2-desc": "Los servidores de SimpleX NO almacenan perfiles de usuario, contactos, o mensajes entregados. NO contactan entre sí y NO existe un directorio de servidores.", @@ -235,7 +235,7 @@ "stable-and-beta-versions-built-by-developers": "Versiones estables y beta compilados por los desarrolladores", "f-droid-page-simplex-chat-repo-section-text": "Para añadirlo al cliente F-Droid, escanea el código QR o usa esta URL:", "docs-dropdown-8": "Directorio SimpleX", - "simplex-chat-repo": "Repositorio Simplex Chat", + "simplex-chat-repo": "Repositorio SimpleX Chat", "simplex-chat-via-f-droid": "SimpleX Chat en F-Droid", "f-droid-org-repo": "Repositorio F-Droid.org", "stable-versions-built-by-f-droid-org": "Versión estable compilada por F-Droid.org", @@ -278,12 +278,12 @@ "index-messaging-p2": "Para tu seguridad y privacidad los servidores no pueden ver tus mensajes ni con quién te comunicas.", "index-messaging-cta": "Descubre más sobre la mensajería SimpleX", "index-nextweb-h2": "La Web
Del Futuro
Te Pertenece", - "index-nextweb-p1": "SimpleX se funda en la creencia de que debes ser el propietario de tu identidad, contactos y comunidades.", - "index-nextweb-p2": "Una red abierta y descentralizada que te permite conectarte con personas y compartir ideas: libre y segura.", + "index-nextweb-p1": "SimpleX se origina en la creencia de que debes ser el propietario de tus perfiles, contactos y comunidades.", + "index-nextweb-p2": "Una red descentralizada que no pertenece a nadie, que te permite conectar con personas y compartir ideas de manera libre y segura en tu red.", "index-token-h2": "Comunidades Duraderas", "index-token-p1": "Podrás apoyar a tus grupos favoritos con los futuros Vales Comunitarios.", "index-token-p2": "Los vales costearán los servidores para que tus comunidades sigan siendo libres e independientes.", - "index-token-cta": "Descubre más y obtén tu NFT gratuito por participar en las pruebas.", + "index-token-cta": "Descubre más y obtén acceso gratuito para participar en las pruebas iniciales.", "index-roadmap-h2": "Ruta SimpleX hacía el Internet Libre", "index-roadmap-2025": "2025", "index-roadmap-2025-title": "Escalar a Comunidades Grandes", @@ -314,5 +314,59 @@ "messengers-comparison-section-list-point-6": "El acuerdo de claves postcuántico es \"parcial\", solo protege determinados pasos del ratchet.", "navbar-token": "Token", "navbar-old-site": "Web antigua", + "why-p1": "Naciste sin una cuenta.", + "why-p2": "Nadie monitorizaba tus conversaciones. Nadie registraba tus ubicaciones. La privacidad nunca fue un lujo, era la manera de vivir.", + "why-p3": "Después pasamos a internet y cada plataforma pedía una parte de tí: tu nombre, tu número, tus amistades. Aceptamos que el precio de hablar con los demás es informar a alguien de quién es interlocutor. Cada generación, personas y tecnología, ha funcionado así: teléfono, email, mensajería, redes sociales. Parecía el único camino.", + "why-p4": "Existe otro camino. Una red sin números de teléfono. Sin nombres de usuario. Sin cuentas. Sin identificadores de ningún tipo. Una red que conecta las personas y entrega mensajes cifrados sin saber quien está conectado.", + "why-p5": "No un candado mejorado en la puerta de otro. No un terrateniente que respeta tu privacidad pero sigue guardando un registro de tus visitantes. Tu no eres el invitado. Estás en tu casa y ningún rey podrá entrar. Tu eres el soberano.", + "why-p6": "Tus conversaciones te pertenecen, tal como ha sido siempre antes de la llegada de internet. Tu red no es un lugar que visitas. Es un lugar que has creado, te pertenece y nadie te la podrá quitar, ya sea pública o privada.", + "why-p7": "La libertad más antigua del ser humano, la de hablar con otra persona sin ser observado, materializada sobre una infraestructura que no puede traicionarla.", + "why-p8": "Porque hemos destruido el poder de saber quien eres. De manera que tu poder nunca se pueda arrebatar.", + "why-tagline": "Se libre en tu red.", + "why-footer-link": "Por qué la estamos creando", + "docs-dropdown-15": "Verificar y reproducir compilaciones", + "file": "Archivo", + "file-desc": "Envía archivos cifrados de extremo a extremo de forma segura - sin cuentas, sin ser monitorizado.", + "file-noscript": "Se requiere JavaScript para transferir archivos.", + "file-e2e-note": "Cifrado de extremo a extremo, el servidor nunca ve tus archivos.", + "file-learn-more": "Descubre más sobre el protocolo XFTP", + "file-cta-heading": "Descarga SimpleX Chat — el mensajero privado & más seguro", + "file-title": "Transferencia de archivos SimpleX", + "file-drop-text": "Arrastra y suelta el archivo aquí", + "file-drop-hint": "o", + "file-choose": "Seleccionar archivo", + "file-max-size": "Max 100 MB - La app SimpleX Chat soporta archivos hasta 1GB", + "file-encrypting": "Cifrando…", + "file-uploading": "Subiendo…", + "file-cancel": "Cancelar", + "file-uploaded": "Archivo subido", + "file-copy": "Copiar", + "file-copied": "¡Copiado!", + "file-share": "Compartir", + "file-expiry": "Normalmente los archivos están disponibles durante 48 horas.", + "file-sec-1": "Tu archivo se ha cifrado en el navegador, los routers de datos nunca ven el contenido, el nombre o el tamaño.", + "file-sec-2": "La clave de cifrado está en el fragmento hash del enlace, nunca se envía a ningún servidor.", + "file-sec-3": "Para mejor seguridad, usa la app SimpleX Chat.", + "file-retry": "Reintentar", + "file-downloading": "Descargando…", + "file-decrypting": "Descifrando…", + "file-download-complete": "Descarga completada", + "file-download-btn": "Descargar", + "file-too-large": "Archivo demasiado grande (%size%). Máximo 100MB. La app SimpleX soporta archivos de hasta 1GB.", + "file-empty": "El archivo está vacío.", + "file-invalid-link": "Enlace corrupto o no válido.", + "file-init-error": "Fallo al inicializar: %error%", + "file-available": "Archivo disponible (~%size%)", + "file-dl-sec-1": "El archivo está cifrado, los routers de datos no ven el contenido, el nombre o el tamaño.", + "file-workers-required": "Web Workers requerido, actualiza el navegador", + "file-protocol-title": "Protocolo XFTP, la transferencia de archivos más segura", + "file-proto-h-1": "No se necesita cuenta", + "file-proto-p-1": "Cada fragmento del archivo usa una clave aleatoria. Los routers de datos no tienen \"usuarios\" o \"archivos\", solo transportan los fragmentos cifrados con un tamaño fijo.", + "file-proto-h-2": "Triple cifrado en tu navegador", + "file-proto-p-2": "La clave de cifrado está presente solo en el fragmento hash de la URL, tu navegador nunca lo envía a un servidor. Hay tres capas de cifrado: transporte TLS, clave por transferencia (clave única y temporal por cada transferencia), y cifrado de extremo a extremo del archivo.", + "file-proto-h-4": "Routers de datos independientes", + "file-proto-p-4": "Cuando un archivo se divide en fragmentos, se envía a través de routers en la red gestionados por terceros independientes. Ningún operador puede ver el nombre o el tamaño real del archivo. Incluso si un enrutador se ve comprometido, solo puede ver fragmentos cifrados de tamaño fijo. Los fragmentos de los archivos se almacenan por los routers de la red durante aproximadamente 48 horas.", + "file-proto-spec": "Sobre las especificaciones del protocolo XFTP →", + "file-cta-subheading": "La transferencia de archivos que acabas de usar emplea el mismo protocolo de enrutamiento de datos que SimpleX Chat. La aplicación ofrece mensajería, llamadas de voz y video, grupos y envío de archivos con cifrado de extremo a extremo. Sin cuentas. Sin teléfono. Sin correo electrónico. Sin identificadores de usuario.", "send-file": "Enviar archivo" } diff --git a/website/langs/fi.json b/website/langs/fi.json index e1e31c633b..50f10331cf 100644 --- a/website/langs/fi.json +++ b/website/langs/fi.json @@ -213,7 +213,7 @@ "privacy-matters-section-header": "Miksi yksityisyys on tärkeää", "tap-to-close": "Napauta sulkeaksesi", "simplex-network-section-header": "SimpleX Verkko", - "simplex-network-section-desc": "Simplex Chat tarjoaa parhaan yksityisyyden yhdistämällä P2P-verkkojen ja liitettävien verkkojen edut.", + "simplex-network-section-desc": "SimpleX Chat tarjoaa parhaan yksityisyyden yhdistämällä P2P-verkkojen ja liitettävien verkkojen edut.", "simplex-network-1-desc": "Kaikki viestit lähetetään palvelimien kautta, mikä sekä parantaa metatietojen yksityisyyttä että mahdollistaa luotettavan asynkronisen viestien toimituksen, samalla välttäen monia", "simplex-network-2-header": "Toisin kuin liitettävät verkot", "simplex-network-3-desc": "palvelimet tarjoavat yksisuuntaisia jonopalveluja yhdistääkseen käyttäjät, mutta niillä ei ole näkyvyyttä verkon yhteyskarttaan — ainoastaan käyttäjillä on.", diff --git a/website/langs/fr.json b/website/langs/fr.json index 8f87809224..b2551990fd 100644 --- a/website/langs/fr.json +++ b/website/langs/fr.json @@ -177,7 +177,7 @@ "simplex-private-section-header": "Ce qui rend SimpleX privé", "tap-to-close": "Appuyez pour fermer", "simplex-network-section-header": "Réseau SimpleX", - "simplex-network-section-desc": "Simplex Chat offre la meilleure protection pour votre vie privée en combinant les avantages du P2P et des réseaux fédérés.", + "simplex-network-section-desc": "SimpleX Chat offre la meilleure protection pour votre vie privée en combinant les avantages du P2P et des réseaux fédérés.", "simplex-network-1-header": "Contrairement aux réseaux P2P", "simplex-network-1-desc": "Tous les messages sont envoyés via les serveurs, offrant à la fois une meilleure protection des métadonnées et une livraison asynchrone fiable des messages, tout en évitant de nombreux", "simplex-network-1-overlay-linktext": "problèmes des réseaux P2P", diff --git a/website/langs/he.json b/website/langs/he.json index 0af1afaec3..9d72680c84 100644 --- a/website/langs/he.json +++ b/website/langs/he.json @@ -122,7 +122,7 @@ "simplex-chat-for-the-terminal": "SimpleX Chat עבור מסוף שורת הפקודה", "simplex-network-overlay-card-1-li-3": "P2P אינו פותר את בעיית התקפת MITM, ורוב ההטמעות הקיימות אינן משתמשות בהודעות out-of-band עבור החלפת המפתחות הראשונית. SimpleX משתמש בהודעות out-of-band או, במקרים מסוימים, בחיבורים מאובטחים ומהימנים קיימים מראש לצורך החלפת המפתחות הראשונית.", "the-instructions--source-code": "לקבלת ההוראות כיצד להוריד או לקמפל אותו מקוד המקור.", - "simplex-network-section-desc": "Simplex Chat מספק את הפרטיות הטובה ביותר על ידי שילוב היתרונות של P2P ורשתות מאוחדות.", + "simplex-network-section-desc": "SimpleX Chat מספק את הפרטיות הטובה ביותר על ידי שילוב היתרונות של P2P ורשתות מאוחדות.", "privacy-matters-section-subheader": "שמירה על פרטיות המטא נתונים שלכם — עם מי אתם מדברים — מגנה עליכם מפני:", "if-you-already-installed": "אם כבר התקנתם", "join": "הצטרפו", diff --git a/website/langs/hu.json b/website/langs/hu.json index c5150cabf9..5dda790d96 100644 --- a/website/langs/hu.json +++ b/website/langs/hu.json @@ -44,10 +44,10 @@ "feature-7-title": "Hordozható, titkosított alkalmazás-adattárolás — profil átköltöztetése egy másik eszközre", "feature-8-title": "Az inkognitómód —
egyedülálló a SimpleX Chatben", "simplex-network-overlay-1-title": "Összehasonlítás más P2P-üzenetküldő protokollokkal", - "simplex-private-1-title": "2 rétegű végpontok közötti titkosítás", + "simplex-private-1-title": "Kétrétegű végpontok közötti titkosítás", "simplex-private-2-title": "További rétege a
kiszolgáló-titkosítás", "simplex-private-4-title": "Hozzáférés a Tor hálózaton keresztül
(nem kötelező)", - "simplex-private-5-title": "Több rétegű
tartalomkitöltés", + "simplex-private-5-title": "Többrétegű
tartalomkitöltés", "simplex-private-6-title": "Sávon kívüli
kulcscsere", "simplex-private-7-title": "Üzenetintegritás
hitelesítés", "simplex-private-8-title": "Üzenetek keverése
a korreláció csökkentése érdekében", @@ -55,7 +55,7 @@ "simplex-private-10-title": "Ideiglenes, névtelen, páronkénti azonosítók", "simplex-private-card-1-point-1": "Dupla racsnis protokoll —
OTR-üzenetküldés, kompromittálás előtti és utáni titkosság-védelemmel.", "simplex-private-card-1-point-2": "NaCL cryptobox minden egyes várólistához, hogy megakadályozza a forgalom korrelációját az üzenetek várólistái között, ha a TLS veszélybe kerül.", - "simplex-private-card-2-point-1": "Kiegészítő kiszolgáló titkosítási réteg a címzettnek történő kézbesítéshez, hogy megakadályozza a fogadott és az elküldött kiszolgálóforgalom közötti korrelációt, ha a TLS veszélybe kerül.", + "simplex-private-card-2-point-1": "Kiegészítő kiszolgálótitkosítási réteg a címzettnek történő kézbesítéshez, hogy megakadályozza a fogadott és az elküldött kiszolgálóforgalom közötti korrelációt, ha a TLS veszélybe kerül.", "simplex-private-card-3-point-1": "A kliens és a kiszolgálók közötti kapcsolatokhoz csak az erős algoritmusokkal rendelkező TLS 1.2/1.3 protokollt használja.", "simplex-private-card-3-point-2": "A kiszolgáló ujjlenyomata és a csatornakötés megakadályozza a MITM- és a visszajátszási támadásokat.", "simplex-private-card-3-point-3": "Az újrakapcsolódás le van tiltva a munkamenet elleni támadások megelőzése érdekében.", @@ -88,7 +88,7 @@ "hero-overlay-card-1-p-1": "Sok felhasználó kérdezte: ha a SimpleXnek nincsenek felhasználói azonosítói, honnan tudja, hogy hová kell eljuttatni az üzeneteket?", "hero-overlay-card-1-p-2": "Az üzenetek kézbesítéséhez az összes többi hálózat által használt felhasználói azonosítók helyett a SimpleX az üzenetek várólistába rendezéséhez ideiglenes, névtelen, páros azonosítókat használ, külön-külön minden egyes kapcsolathoz — nincsenek hosszú távú azonosítók.", "hero-overlay-card-1-p-4": "Ez a kialakítás megakadályozza a felhasználók metaadatainak kiszivárgását az alkalmazás szintjén. Az adatvédelem további javítása és az IP-cím védelme érdekében az üzenetküldő kiszolgálókhoz Tor hálózaton keresztül is kapcsolódhat.", - "hero-overlay-card-1-p-5": "Csak a kliensek tárolják a felhasználói profilokat, partnereket és csoportokat; az üzenetek küldése 2 rétegű végpontok közötti titkosítással történik.", + "hero-overlay-card-1-p-5": "Csak a kliensek tárolják a felhasználói profilokat, partnereket és csoportokat; az üzenetek küldése kétrétegű végpontok közötti titkosítással történik.", "hero-overlay-card-1-p-6": "További leírást a SimpleX ismertetőben olvashat.", "hero-overlay-card-2-p-1": "Ha a felhasználók állandó azonosítóval rendelkeznek, még akkor is, ha ez csak egy véletlenszerű szám, például egy munkamenet-azonosító, fennáll annak a veszélye, hogy a szolgáltató vagy egy támadó megfigyelheti, azt hogy hogyan kapcsolódnak a felhasználók egymáshoz, és hány üzenetet küldenek egymásnak.", "hero-overlay-card-2-p-2": "Ezt az információt aztán összefüggésbe hozhatják a meglévő nyilvános közösségi hálózatokkal, és meghatározhatnak néhány valódi személyazonosságot.", @@ -168,7 +168,7 @@ "privacy-matters-section-label": "Győződjön meg arról, hogy az üzenetváltó-alkalmazás amit használ nem fér hozzá az adataihoz!", "simplex-private-section-header": "Mitől lesz a SimpleX privát", "simplex-network-section-header": "SimpleX hálózat", - "simplex-network-section-desc": "A Simplex Chat a P2P- és a föderált hálózatok előnyeinek kombinálásával biztosítja a legjobb adatvédelmet.", + "simplex-network-section-desc": "A SimpleX Chat a P2P- és a föderált hálózatok előnyeinek kombinálásával biztosítja a legjobb adatvédelmet.", "simplex-network-1-desc": "Minden üzenet a kiszolgálókon keresztül kerül elküldésre, ami jobb metaadat-védelmet és megbízható aszinkron üzenetkézbesítést biztosít, miközben elkerülhető a sok", "simplex-network-2-header": "A föderált hálózatokkal ellentétben", "simplex-network-2-desc": "A SimpleX továbbítókiszolgálói NEM tárolnak felhasználói profilokat, kapcsolatokat és kézbesített üzeneteket, NEM kapcsolódnak egymáshoz, és NINCS kiszolgálójegyzék.", @@ -266,7 +266,7 @@ "index-security-review-2024-title": "Biztonsági audit 2024", "index-security-audits-label": "Biztonsági
auditok", "index-publications-heise-title": "A Heise Online kiadványai", - "index-hero-h2": "A Saját Hálózatában", + "index-hero-h2": "Az Ön hálózatában", "index-testflight-title": "Nyilvános betekintés az iOS alkalmazás fejlesztésébe a TestFlighton", "index-f-droid-title": "SimpleX alkalmazás az F-Droidon keresztül", "index-publications-privacy-guides-title": "A Privacy Guides üzenetváltó ajánlásai", @@ -278,8 +278,8 @@ "index-messaging-p2": "A biztonsága és magánszférájának védelme érdekében a kiszolgálók nem látják az üzeneteit, és azt sem, hogy kivel beszélget.", "index-messaging-cta": "Tudjon meg többet a SimpleX üzenetváltó alkalmazásról", "index-nextweb-h2": "Vegye birtokba
A jövő hálózatát", - "index-nextweb-p1": "A SimpleX arra a meggyőződésre épül, hogy a felhasználóknak kell birtokolnia a saját identitásukat, valamint a kapcsolataikat a partnereikkel és a közösségeikkel.", - "index-nextweb-p2": "A nyílt és decentralizált hálózat lehetővé teszi, hogy kapcsolatba lépjen másokkal és ötleteket osszon meg: legyen szabad biztonságban.", + "index-nextweb-p1": "A SimpleX abból a meggyőződésből jött létre, hogy a profilok, a kapcsolatok és a közösségek a felhasználók tulajdonát kell, hogy képezzék.", + "index-nextweb-p2": "Egy decentralizált hálózat, amelyet senki sem birtokol, lehetővé teszi a kapcsolatok létrehozását és az ötleteket megosztását szabadon és biztonságosan a hálózaton.", "index-token-h2": "Időtálló közösségek", "index-token-p1": "A jövőben közösségi utalványokkal támogathatja a kedvenc csoportjait.", "index-token-p2": "Az utalványokkal fizetni tudja a kiszolgálókat, hogy a közösségek szabadok és függetlenek maradhassanak.", @@ -314,5 +314,59 @@ "messengers-comparison-section-list-point-6": "A kvantumbiztos kulcscsere „ritka” — csak a racsnis lépések egy részét védi.", "navbar-token": "Token", "navbar-old-site": "Régi oldal", + "docs-dropdown-15": "Összeállítások ellenőrzése és reprodukálása", + "why-p2": "Senki sem követi nyomon a beszélgetéseit. Senki sem készít térképet az Ön kapcsolati hálójáról. A magánélet nem csak egy funkció, hanem egy életmód.", + "why-p3": "Amikor online vagyunk minden platform egy darabot kér tőlünk – nevet, telefonszámot, baráti kapcsolatokat. Elfogadtuk, hogy a kommunikáció ára az, hogy mások megtudják, hogy kivel beszélünk. Minden generáció, az emberek és a technológia is eddig így működött – telefon, e-mail, üzenetküldő programok, közösségi média. Úgy tűnt, ez az egyetlen lehetséges mód.", + "why-p4": "De van egy másik lehetőség is. Egy hálózat, amelyben nincsenek telefonszámok. Nincsenek felhasználónevek. Nincsenek fiókok. Nincsenek semmiféle felhasználói azonosítók. Egy hálózat, amely összeköti az embereket és titkosított üzeneteket továbbít, anélkül, hogy tudná, ki csatlakozik hozzá.", + "why-p5": "Nem egy jobb zár mások ajtaján. Nem egy kedvesebb házmester, aki tiszteletben tartja az Ön magánéletét, de mégis nyilvántartást vezet minden látogatójáról. Ön itt nem csak egy vendég. Ön itt otthon van. Egyetlen „kíváncsiskodó” sem tekinthet bele a beszélgetéseibe, Ön itt szuverén.", + "why-p6": "A beszélgetései Önhöz tartoznak, ahogy az internet megjelenése előtt is mindig így volt. A hálózat nem egy hely, amelyet meglátogat. Ez egy olyan hely, amelyet Ön hoz létre saját magának. És senki sem veheti el Öntől, függetlenül attól, hogy privát vagy nyilvános.", + "why-p7": "A legrégebbi emberi szabadság – beszélgetni az emberekkel anélkül, hogy mások megfigyelnének – olyan infrastruktúrán alapul, amely nem tudja elárulni.", + "why-p8": "Mert elpusztítottuk azt az erőt, amellyel megtudhatnánk, hogy Ön kicsoda. Hogy az Ön ereje soha ne kerülhessen mások kezébe.", + "why-tagline": "Legyen szabad a saját hálózatában.", + "why-footer-link": "Miért készítjük", + "why-p1": "Ön fiók nélkül született.", + "file": "Fájl", + "file-desc": "Fájlok biztonságos küldése végpontok közötti titkosítással – felhasználói fiókok és nyomon követés nélkül.", + "file-noscript": "A fájlátvitelhez JavaScript szükséges.", + "file-e2e-note": "Végpontok közötti titkosítás – a kiszolgáló soha nem „látja” a fájlt.", + "file-learn-more": "Tudjon meg többet az XFTP-protokollról", + "file-cta-heading": "Szerezze be a SimpleX Chat alkalmazást – a legbiztonságosabb és legbizalmasabb üzenetváltó programot", + "file-cta-subheading": "Az imént használt fájlátvitel ugyanazt az útválasztó protokollt használja, mint a SimpleX Chat alkalmazás. Az alkalmazás végpontok közötti titkosított üzenetküldést, hang- és videohívásokat, csoportos csevegéseket és fájlok küldését teszi lehetővé. Nem szükséges hozzá felhasználói fiók, telefonszám, e-mail-cím és nem használ felhasználói profilazonosítókat sem.", + "file-title": "SimpleX fájlátvitel", + "file-drop-text": "Húzzon ide", + "file-drop-hint": "vagy", + "file-choose": "válasszon ki egy fájlt", + "file-max-size": "Legfeljebb 100 MB – a SimpleX Chat alkalmazás viszont 1 GB méretű fájlokat is támogat", + "file-encrypting": "Titkosítás…", + "file-uploading": "Feltöltés…", + "file-cancel": "Mégse", + "file-uploaded": "Fájl feltöltve", + "file-copy": "Másolás", + "file-copied": "Másolva!", + "file-share": "Megosztás", + "file-expiry": "A fájlok általában 48 óráig érhetők el.", + "file-sec-1": "A fájl a böngészőben lett titkosítva – az útválasztók soha nem „látják” a fájl tartalmát, nevét és méretét.", + "file-sec-2": "A titkosítási kulcs a hivatkozás kivonattöredékében található – soha nem kerül elküldésre semmilyen kiszolgálóra.", + "file-sec-3": "A nagyobb biztonság érdekében használja a SimpleX Chat alkalmazást.", + "file-retry": "Újra", + "file-downloading": "Letöltés…", + "file-decrypting": "Visszafejtés…", + "file-download-complete": "Letöltés kész", + "file-download-btn": "Letöltés", + "file-too-large": "A fájl túl nagy (%size%). A megengedett feltölthető méret 100 MB. Az ettől nagyobb fájlok küldéséhez használja a SimpleX Chat alkalmazást, ami legfeljebb 1 GB méretű fájlokat is támogat.", + "file-empty": "A fájl üres.", + "file-invalid-link": "Érvénytelen vagy sérült hivatkozás.", + "file-init-error": "Nem sikerült előkészíteni: %error%", + "file-available": "A fájl elérhető (~%size%)", + "file-dl-sec-1": "Ez a fájl titkosítva van – az útválasztók soha nem „látják” a fájl tartalmát, nevét és méretét.", + "file-workers-required": "Web Workers szükséges – frissítse a böngészőjét", + "file-protocol-title": "XFTP-protokoll: a legbiztonságosabb fájlátvitel", + "file-proto-h-1": "Nincs szükség felhasználói fiókra", + "file-proto-p-1": "Minden fájldarab új, véletlenszerű kulcsot használ. Az útválasztóknak nincsenek „felhasználóik” vagy „fájljaik” – rögzített méretű titkosított fájldarabokat továbbítanak.", + "file-proto-h-2": "Háromrétegű titkosítás a böngészőben", + "file-proto-p-2": "A fájl titkosítási kulcsa csak a webcím kivonattöredékében található – a böngésző soha nem küldi el azt a kiszolgálónak. A fájlok háromrétegű titkosítással rendelkeznek: TLS-átviteli, címzettenkénti (egyedi, ideiglenes kulcs átvitelenként) és végpontok közötti titkosítással.", + "file-proto-h-4": "Független útválasztók", + "file-proto-p-4": "Amikor a fájl töredékekre oszlik, akkor a független felek által üzemeltetett hálózati útválasztókon keresztül kerül továbbításra. Egyetlen üzemeltető sem láthatja a fájl tényleges méretét és nevét. Még ha egy útválasztó biztonsága meg is sérül, csak a rögzített méretű titkosított töredékeket „láthatja”. A fájltöredékeket a hálózati útválasztók körülbelül 48 órán át tárolják a gyorsítótárban.", + "file-proto-spec": "Olvassa el az XFTP-protokoll leírását →", "send-file": "Fájl küldése" } diff --git a/website/langs/it.json b/website/langs/it.json index 5b292a30a0..c7f6679a74 100644 --- a/website/langs/it.json +++ b/website/langs/it.json @@ -108,7 +108,7 @@ "privacy-matters-section-subheader": "Preservare la privacy dei tuoi metadati — con chi parli — ti protegge da:", "privacy-matters-section-label": "Assicurati che il tuo messenger non possa accedere ai tuoi dati!", "simplex-network-section-header": "Rete di SimpleX", - "simplex-network-section-desc": "Simplex Chat offre la migliore privacy combinando i vantaggi del P2P e delle reti federate.", + "simplex-network-section-desc": "SimpleX Chat offre la migliore privacy combinando i vantaggi del P2P e delle reti federate.", "simplex-network-1-header": "A differenza delle reti P2P", "simplex-network-1-overlay-linktext": "problemi delle reti P2P", "simplex-network-2-header": "A differenza delle reti federate", @@ -258,7 +258,7 @@ "docs-dropdown-14": "SimpleX per il lavoro", "about-and-contact-us": "Informazioni e contatti", "directory": "Directory", - "index-hero-h2": "Nella Tua Rete", + "index-hero-h2": "nella tua rete", "index-hero-p1": "Messaggistica privata e sicura.
La prima rete in cui possiedi
i tuoi contatti e i tuoi gruppi.", "index-hero-download-desktop-btn-title": "Scarica l'app desktop di SimpleX", "index-testflight-title": "Anteprima pubblica per iOS su TestFlight", @@ -278,12 +278,12 @@ "index-messaging-p2": "Per la tua sicurezza e privacy, i server non possono vedere i messaggi e con chi parli.", "index-messaging-cta": "Scopri di più sui messaggi di SimpleX", "index-nextweb-h2": "Il nuovo web
è tuo", - "index-nextweb-p1": "SimpleX è fondato sulla convinzione che devi possedere la tua identità, i tuoi contatti e le tue comunità.", - "index-nextweb-p2": "La rete aperta e decentralizzata consente di connetterti con persone e condividere idee: sii libero e al sicuro.", + "index-nextweb-p1": "SimpleX è stato creato sulla convinzione che devi possedere i tuoi profili, contatti e comunità.", + "index-nextweb-p2": "Una rete decentralizzata che nessuno possiede consente di connetterti con persone e condividere idee, di restare libero e sicuro nella tua rete.", "index-token-h2": "Comunità fatte per restare", "index-token-p1": "Sosterrai i tuoi gruppi preferiti con futuri buoni comunitari.", "index-token-p2": "I buoni pagheranno i server, per consentire alle tue comunità di rimanere libere e indipendenti.", - "index-token-cta": "Scopri di più e ricevi un NFT gratuito per provarlo in anticipo.", + "index-token-cta": "Scopri di più e ricevi un pass di accesso gratuito per provarlo in anticipo.", "index-roadmap-h2": "Tabella di marcia per un internet libero", "index-roadmap-2025": "2025", "index-roadmap-2025-title": "Scalabilità per comunità numerose", @@ -314,5 +314,59 @@ "messengers-comparison-section-list-point-6": "L'accordo sulle chiavi post-quantistico è “scarno” — protegge solo alcuni dei passaggi del ratchet.", "navbar-token": "Token", "navbar-old-site": "Sito vecchio", + "docs-dropdown-15": "Verifica e riproduci le build", + "why-p2": "Nessuno monitorava le tue conversazioni. Nessuno disegnava una mappa delle tue posizioni. La privacy non era mai una caratteristica, era uno stile di vita.", + "why-p3": "Poi ci siamo trasferiti online e ogni piattaforma ha chiesto un pezzo di noi: il nome, il numero, gli amici. Abbiamo accettato che il prezzo da pagare per comunicare con gli altri fosse quello di far sapere a qualcuno con chi parliamo. Ogni generazione, sia le persone che la tecnologia, ha funzionato così: telefono, email, messenger, social media. Sembrava l'unica via possibile.", + "why-p1": "Sei nato senza un account.", + "why-p4": "C'è un altro modo. Una rete senza numeri di telefono. Senza nomi utente. Senza account. Senza identificatori utente di alcun tipo. Una rete che connette le persone e trasferisce messaggi crittografati senza sapere chi è connesso.", + "why-p5": "Non una serratura migliore sulla porta di qualcun altro. Non un padrone di casa più gentile che rispetta la tua privacy, ma che continua a tenere traccia di tutti i visitatori. Non sei un ospite. Sei a casa tua. Nessun re può entrarvi: sei tu il sovrano.", + "why-p6": "Le tue conversazioni appartengono a te, come è sempre stato prima dell'avvento di Internet. La rete non è un luogo che visiti. È un luogo che crei e possiedi. E nessuno può portartelo via, sia che tu lo renda privato o pubblico.", + "why-p7": "La più antica libertà umana, parlare con un'altra persona senza essere osservati, si basa su un'infrastruttura che non può tradirla.", + "why-p8": "Perché abbiamo distrutto il potere di sapere chi sei. In modo che il tuo potere non possa mai essere sottratto.", + "why-tagline": "Vivi libero nella tua rete.", + "why-footer-link": "Perché lo stiamo costruendo", + "file": "File", + "file-desc": "Invia file in modo sicuro con crittografia end-to-end: nessun account, nessun monitoraggio.", + "file-noscript": "JavaScript è necessario per il trasferimento di file.", + "file-e2e-note": "Crittografato end-to-end: il server non vede mai il file.", + "file-learn-more": "Maggiori informazioni sul protocollo XFTP", + "file-cta-heading": "Scarica SimpleX Chat — il messenger più sicuro e privato", + "file-cta-subheading": "Il trasferimento di file appena avviato usa lo stesso protocollo di instradamento dati di SimpleX Chat. L'app offre messaggi crittografati end-to-end, chiamate vocali e video, gruppi e invio di file. Nessun account. Nessun telefono. Nessuna email. Nessun ID utente.", + "file-title": "Trasferimento file di SimpleX", + "file-drop-text": "Trascina un file qui", + "file-drop-hint": "o", + "file-choose": "Scegli file", + "file-max-size": "Max 100 MB - L'app SimpleX Chat supporta file fino a 1 GB", + "file-encrypting": "Crittografia…", + "file-uploading": "Caricamento…", + "file-cancel": "Annulla", + "file-uploaded": "File caricato", + "file-copy": "Copia", + "file-copied": "Copiato!", + "file-share": "Condividi", + "file-expiry": "I file sono generalmente disponibili per 48 ore.", + "file-sec-1": "Il file è stato crittografato nel browser: gli instradatori di dati non vedono mai il contenuto, il nome o la dimensione del file.", + "file-sec-2": "La chiave di crittografia è nel frammento hash del link, non viene mai inviata ad alcun server.", + "file-sec-3": "Per una migliore sicurezza, usa l'app SimpleX Chat.", + "file-retry": "Riprova", + "file-downloading": "Scaricamento…", + "file-decrypting": "Decifrazione…", + "file-download-complete": "Scaricamento completato", + "file-download-btn": "Scarica", + "file-too-large": "File troppo grande (%size%). Il massimo è 100 MB. L'app SimpleX supporta file fino a 1 GB.", + "file-empty": "Il file è vuoto.", + "file-invalid-link": "Link non valido o danneggiato.", + "file-init-error": "Inizializzazione fallita: %error%", + "file-available": "File disponibile (~%size%)", + "file-dl-sec-1": "Questo file è crittografato: gli instradatori di dati non vedono mai il contenuto del file, il nome o la dimensione.", + "file-workers-required": "Web worker necessari, aggiorna il browser", + "file-protocol-title": "Protocollo XFTP: il trasferimento di file più sicuro", + "file-proto-h-1": "Nessun account richiesto", + "file-proto-p-1": "Ogni frammento di file usa una nuova chiave casuale. Gli instradatori di dati non hanno \"utenti\" o \"file\": trasferiscono frammenti di file crittografati di dimensioni fisse.", + "file-proto-h-2": "Crittografia tripla nel tuo browser", + "file-proto-p-2": "La chiave di crittografia dei file è presente solo nel frammento dell'hash dell'URL: il browser non la invia mai a un server. Ci sono 3 strati di crittografia: trasporto TLS, crittografia per-destinatario (chiave effimera unica per trasferimento) e crittografia file end-to-end.", + "file-proto-h-4": "Instradatori indipendenti di dati", + "file-proto-p-4": "Quando il file è diviso in frammenti, viene inviato tramite instradatori di rete operati da parti indipendenti. Nessun operatore può vedere la vera dimensione o il nome del file. Anche se un instradatore venisse compromesso, potrà vedere solo frammenti cifrati di dimensione fissa. I frammenti di file restano in cache dagli instradatori di rete per circa 48 ore.", + "file-proto-spec": "Leggi le specifiche del protocollo XFTP →", "send-file": "Invia file" } diff --git a/website/langs/ja.json b/website/langs/ja.json index d3ce009eff..2337ed472d 100644 --- a/website/langs/ja.json +++ b/website/langs/ja.json @@ -95,7 +95,7 @@ "simplex-chat-for-the-terminal": "ターミナル用 SimpleX チャット", "simplex-network-overlay-card-1-li-3": "P2P は MITM 攻撃 問題を解決せず、既存の実装のほとんどは最初の鍵交換に帯域外メッセージを使用していません 。 SimpleX は、最初のキー交換に帯域外メッセージを使用するか、場合によっては既存の安全で信頼できる接続を使用します。", "the-instructions--source-code": "ソースコードからダウンロードまたはコンパイルする方法を説明します。", - "simplex-network-section-desc": "Simplex Chat は、P2P とフェデレーション ネットワークの利点を組み合わせて最高のプライバシーを提供します。", + "simplex-network-section-desc": "SimpleX Chat は、P2P とフェデレーション ネットワークの利点を組み合わせて最高のプライバシーを提供します。", "privacy-matters-section-subheader": "メタデータのプライバシーを保護する — 話す相手 — 以下のことからあなたを守ります:", "if-you-already-installed": "すでにインストールしている場合", "join": "参加", diff --git a/website/langs/nl.json b/website/langs/nl.json index c0acba7cbd..613e07ff5c 100644 --- a/website/langs/nl.json +++ b/website/langs/nl.json @@ -146,7 +146,7 @@ "privacy-matters-section-subheader": "Behoud van de privacy van uw metadata — met wie u praat — beschermt u tegen:", "simplex-private-section-header": "Wat maakt SimpleX privé", "simplex-network-section-header": "SimpleX Netwerk", - "simplex-network-section-desc": "Simplex Chat biedt de beste privacy door de voordelen van P2P en gefedereerde netwerken te combineren.", + "simplex-network-section-desc": "SimpleX Chat biedt de beste privacy door de voordelen van P2P en gefedereerde netwerken te combineren.", "simplex-network-1-header": "In tegenstelling tot P2P netwerken", "simplex-network-1-desc": "Alle berichten worden verzonden via servers, die zorgen voor een betere metadata privacy en een betrouwbare asynchrone bezorging van berichten, terwijl er veel word vermeden", "simplex-network-1-overlay-linktext": "van problemen met P2P netwerken", diff --git a/website/langs/pl.json b/website/langs/pl.json index e14274a408..37582f80e3 100644 --- a/website/langs/pl.json +++ b/website/langs/pl.json @@ -17,7 +17,7 @@ "donate": "Darowizna", "copyright-label": "© 2020-2025 SimpleX Chat | Projekt Open-Source", "simplex-chat-protocol": "Protokół SimpleX Chat", - "terminal-cli": "Terminal CLI", + "terminal-cli": "Terminal wiersza poleceń", "terms-and-privacy-policy": "Polityka prywatności", "hero-header": "Prywatność zdefiniowana na nowo", "hero-subheader": "Pierwszy komunikator
bez identyfikatorów użytkowników (ID)", @@ -191,7 +191,7 @@ "copy-the-command-below-text": "skopiuj poniższe polecenie i użyj go na czacie:", "privacy-matters-section-label": "Upewnij się, że Twój komunikator nie ma dostępu do Twoich danych!", "simplex-network-1-header": "W przeciwieństwie do sieci P2P", - "simplex-network-section-desc": "Simplex Chat zapewnia najlepszą prywatność dzięki połączeniu zalet sieci P2P i sieci federacyjnych.", + "simplex-network-section-desc": "SimpleX Chat zapewnia najlepszą prywatność dzięki połączeniu zalet sieci P2P i sieci federacyjnych.", "simplex-network-2-header": "W przeciwieństwie do sieci federacyjnych", "simplex-private-section-header": "Co sprawia, że SimpleX jest prywatny", "tap-to-close": "Stuknij, aby zamknąć", @@ -279,12 +279,12 @@ "index-messaging-p2": "Dla Twojego bezpieczeństwa i prywatności, serwery nie mogą zobaczyć wiadomości i tego z kim rozmawiasz.", "index-messaging-cta": "Dowiedz się więcej o komunikatorze SimpleX", "index-nextweb-h2": "Ty Posiadasz
Sieć Kolejnej Generacji", - "index-nextweb-p1": "SimpleX opiera się na przekonaniu, że to Ty musisz posiadać na własność swoją tożsamość, kontakty i społeczności.", - "index-nextweb-p2": "Otwarta i zdecentralizowana sieć pozwala połączyć się z ludźmi i dzielić się pomysłami: bądź wolny i bezpieczny.", + "index-nextweb-p1": "SimpleX powstał w oparciu o przekonanie, że musisz być właścicielem swoich profili, kontaktów i społeczności.", + "index-nextweb-p2": "Zdecentralizowana sieć, której nikt nie jest właścicielem, pozwala łączyć się z ludźmi i dzielić się pomysłami, zapewniając swobodę i bezpieczeństwo w sieci.", "index-token-h2": "Społeczności, Które Trwają", "index-token-p1": "Będziesz mógł wspierać swoje ulubione grupy dzięki przyszłym Voucherom Społeczności.", "index-token-p2": "Vouchery opłacą serwery, aby Twoje społeczności pozostały wolne i niezależne.", - "index-token-cta": "Dowiedz się więcej i uzyskuj swój darmowy NFT
do wczesnych testów.", + "index-token-cta": "Dowiedz się więcej i uzyskaj bezpłatną przepustkę umożliwiającą wczesne testowanie.", "index-roadmap-h2": "Plan Działania SimpleX dla Wolnego Internetu", "index-roadmap-2025": "2025", "index-roadmap-2025-title": "Wyskalowany dla Dużych Społeczności", @@ -303,10 +303,10 @@ "how-secure-comparison-title": "Porównanie zabezpieczeń szyfrowania end-to-end w różnych komunikatorach", "how-secure-message-padding": "Wypełnianie wiadomości", "how-secure-repudiation-deniability": "Wyrzeczenie (wiarygodne zaprzeczenie)", - "how-secure-forward-secrecy": "Forward secrecy", + "how-secure-forward-secrecy": "Poufność przekazywania informacji", "how-secure-break-in-recovery": "Bezpieczeństwo po naruszeniu zabezpieczeń", "how-secure-two-factor-key-exchange": "Wymiana kluczy 2-składnikowych", - "how-secure-post-quantum-hybrid-crypto": "Post-quantum hybrid crypto", + "how-secure-post-quantum-hybrid-crypto": "Hybrydowe szyfrowanie postkwantowe", "messengers-comparison-section-list-point-1": "Briar wypełnia wiadomości do zaokrąglonego rozmiaru do maksymalnie 1024 bajtów, Signal - do 160 bajtów", "messengers-comparison-section-list-point-2": "Repudiatacja (wiarygodne zaprzeczenie) nie obejmuje połączenia klient-serwer.", "messengers-comparison-section-list-point-3": "Wydaje się, że użycie podpisów kryptograficznych zagraża repudiatacji (wiarygodnemu zaprzeczeniu), ale należy je wyjaśnić.", @@ -314,5 +314,59 @@ "messengers-comparison-section-list-point-5": "Wymiana kluczy 2-składnikowych jest opcjonalna poprzez weryfikację kodu bezpieczeństwa.", "messengers-comparison-section-list-point-6": "Post-kwantowe, kluczowe porozumienie jest \"rzadkie\" — chroni tylko niektóre kroki systemu Ratchet.", "navbar-old-site": "Stara strona", + "docs-dropdown-15": "Weryfikacja i odtwarzanie kompilacji", + "why-p1": "Urodziłeś się bez konta.", + "why-p2": "Nikt nie śledził twoich rozmów. Nikt nie rysował mapy miejsc, w których byłeś. Prywatność nigdy nie była funkcją — była sposobem na życie.", + "why-p3": "Następnie przenieśliśmy się do sieci, a każda platforma prosiła o podanie danych osobowych — imienia i nazwiska, numeru telefonu, znajomych. Zaakceptowaliśmy fakt, że ceną za możliwość komunikowania się z innymi jest ujawnienie komuś, z kim rozmawiamy. Tak było w przypadku każdego pokolenia, ludzi i technologii — telefonu, poczty elektronicznej, komunikatorów, mediów społecznościowych. Wydawało się to jedyną możliwą opcją.", + "why-p4": "Jest jeszcze inny sposób. Sieć bez numerów telefonów. Bez nazw użytkowników. Bez kont. Bez jakichkolwiek tożsamości użytkowników. Sieć, która łączy ludzi i przesyła zaszyfrowane wiadomości, nie wiedząc, kto jest podłączony.", + "why-p5": "Nie chodzi o lepszy zamek w drzwiach kogoś innego. Nie chodzi o milszego właściciela, który szanuje twoją prywatność, ale nadal prowadzi rejestr wszystkich odwiedzających. Nie jesteś gościem. Jesteś w domu. Żaden król nie może do niego wejść — jesteś suwerenem.", + "why-p6": "Twoje rozmowy należą do Ciebie, tak jak zawsze było przed pojawieniem się Internetu. Sieć nie jest miejscem, które odwiedzasz. Jest miejscem, które tworzysz i które należy do Ciebie. Nikt nie może Ci tego odebrać, niezależnie od tego, czy jest to miejsce prywatne, czy publiczne.", + "why-p7": "Najstarsza ludzka wolność — możliwość rozmowy z inną osobą bez bycia obserwowanym — opiera się na infrastrukturze, która nie może jej zdradzić.", + "why-p8": "Ponieważ zniszczyliśmy moc pozwalającą poznać, kim jesteś. Więc twoja moc nigdy nie będzie Ci odebrana.", + "why-tagline": "Ciesz się swobodą w swojej sieci.", + "why-footer-link": "Dlaczego to budujemy", + "file": "Plik", + "file-desc": "Wysyłaj pliki bezpiecznie dzięki szyfrowaniu typu end-to-end — bez kont, bez śledzenia.", + "file-noscript": "Do przesyłania plików wymagana jest obsługa języka JavaScript.", + "file-e2e-note": "Szyfrowanie typu end-to-end — serwer nigdy nie widzi Twojego pliku.", + "file-learn-more": "Dowiedz się więcej o protokole XFTP", + "file-cta-heading": "Pobierz SimpleX Chat — najbezpieczniejszy i najbardziej prywatny komunikator", + "file-cta-subheading": "Przesyłanie plików, z którego właśnie skorzystałeś, wykorzystuje ten sam protokół routingu danych, co SimpleX Chat. Aplikacja oferuje szyfrowane wiadomości, połączenia głosowe i wideo, grupy oraz wysyłanie plików. Bez konta. Bez telefonu. Bez adresu e-mail. Bez identyfikatorów profilu użytkownika.", + "file-title": "Transfer plików SimpleX", + "file-drop-text": "Przeciągnij i upuść plik tutaj", + "file-drop-hint": "lub", + "file-choose": "Wybierz plik", + "file-max-size": "Maksymalnie 100 MB - aplikacja SimpleX Chat obsługuje pliki o rozmiarze do 1 GB", + "file-encrypting": "Szyfrowanie…", + "file-uploading": "Wysyłanie…", + "file-cancel": "Anuluj", + "file-uploaded": "Plik wysłany", + "file-copy": "Kopiuj", + "file-copied": "Skopiowano!", + "file-share": "Udostępnij", + "file-expiry": "Pliki są zazwyczaj dostępne przez 48 godzin.", + "file-sec-1": "Twój plik został zaszyfrowany w przeglądarce – routery danych nigdy nie widzą treści plików, ich nazw ani rozmiarów.", + "file-sec-2": "Klucz szyfrujący znajduje się w fragmencie skrótu linku – nigdy nie jest wysyłany do żadnego serwera.", + "file-sec-3": "Aby zapewnić większe bezpieczeństwo, użyj aplikacji SimpleX Chat.", + "file-retry": "Ponów", + "file-downloading": "Pobieranie…", + "file-decrypting": "Odszyfrowywanie…", + "file-download-complete": "Pobieranie zakończone", + "file-download-btn": "Pobierz", + "file-too-large": "Plik jest zbyt duży (%size%). Maksymalny rozmiar to 100 MB. Aplikacja SimpleX obsługuje pliki o rozmiarze do 1 GB.", + "file-empty": "Plik jest pusty.", + "file-invalid-link": "Nieprawidłowy lub uszkodzony link.", + "file-init-error": "Nie udało się zainicjować: %error%", + "file-available": "Plik dostępny (~%size%)", + "file-dl-sec-1": "Ten plik jest zaszyfrowany – routery danych nigdy nie widzą zawartości pliku, jego nazwy ani rozmiaru.", + "file-workers-required": "Wymagane Web Workers — zaktualizuj przeglądarkę", + "file-protocol-title": "Protokół XFTP: najbezpieczniejszy transfer plików", + "file-proto-h-1": "Nie jest wymagane konto", + "file-proto-p-1": "Każdy fragment pliku wykorzystuje nowy losowy klucz. Routery danych nie mają „użytkowników” ani „plików” – przesyłają zaszyfrowane fragmenty plików o stałych rozmiarach.", + "file-proto-h-2": "Potrójne szyfrowanie w przeglądarce", + "file-proto-p-2": "Klucz szyfrowania plików znajduje się wyłącznie we fragmencie skrótu adresu URL – przeglądarka nigdy nie wysyła go do serwera. Istnieją trzy warstwy szyfrowania: transport TLS, szyfrowanie po-odbiorcy (unikalny klucz tymczasowy dla każdego transferu) oraz szyfrowanie plików typu end-to-end.", + "file-proto-h-4": "Niezależne routery danych", + "file-proto-p-4": "Gdy plik jest dzielony na fragmenty, jest on wysyłany przez routery sieciowe obsługiwane przez niezależne podmioty. Żaden operator nie może zobaczyć rzeczywistego rozmiaru ani nazwy pliku. Nawet jeśli router zostanie naruszony, może on zobaczyć tylko zaszyfrowane fragmenty o stałym rozmiarze. Fragmenty plików są przechowywane w pamięci podręcznej routerów sieciowych przez około 48 godzin.", + "file-proto-spec": "Zapoznaj się ze specyfikacją protokołu XFTP →", "send-file": "Wyślij plik" } diff --git a/website/langs/pt_BR.json b/website/langs/pt_BR.json index 3c1c971f7f..a94670e443 100644 --- a/website/langs/pt_BR.json +++ b/website/langs/pt_BR.json @@ -178,7 +178,7 @@ "simplex-private-section-header": "O que torna o SimpleX privado", "tap-to-close": "Toque para fechar", "guide-dropdown-6": "Chamadas de áudio e vídeo", - "simplex-network-section-desc": "O Simplex Chat oferece a melhor privacidade ao combinar as vantagens das redes P2P e federadas.", + "simplex-network-section-desc": "O SimpleX Chat oferece a melhor privacidade ao combinar as vantagens das redes P2P e federadas.", "simplex-network-1-header": "Diferente das redes P2P", "docs-dropdown-2": "Acessando arquivos do Android", "comparison-section-list-point-3": "Chave pública ou alguma outra ID globalmente exclusiva", @@ -238,7 +238,7 @@ "stable-and-beta-versions-built-by-developers": "Versões estáveis e beta criadas pelos desenvolvedores", "signing-key-fingerprint": "Assinatura de impressão digital de chave (SHA-256)", "simplex-chat-via-f-droid": "SimpleX Chat pelo F-Droid", - "simplex-chat-repo": "Repositório Simplex Chat", + "simplex-chat-repo": "Repositório SimpleX Chat", "f-droid-org-repo": "Repositório F-Droid.org", "stable-versions-built-by-f-droid-org": "Versões estáveis criadas por F-Droid.org", "releases-to-this-repo-are-done-1-2-days-later": "Os lançamentos para este repositório são feitos 1 ou 2 dias depois", diff --git a/website/langs/uk.json b/website/langs/uk.json index d36ff6c820..7c719381d7 100644 --- a/website/langs/uk.json +++ b/website/langs/uk.json @@ -202,7 +202,7 @@ "simplex-private-section-header": "Що робить SimpleX конфіденційним", "tap-to-close": "Торкніться, щоб закрити", "simplex-network-section-header": "SimpleX Network", - "simplex-network-section-desc": "Simplex Chat надає найкращу конфіденційність, поєднуючи переваги P2P та федеративних мереж.", + "simplex-network-section-desc": "SimpleX Chat надає найкращу конфіденційність, поєднуючи переваги P2P та федеративних мереж.", "simplex-network-1-desc": "Всі повідомлення відправляються через сервери, що забезпечує кращу конфіденційність метаданих та надійну асинхронну доставку повідомлень, уникаючи багатьох", "simplex-network-1-header": "На відміну від мереж P2P", "simplex-network-1-overlay-linktext": "проблем P2P-мереж", diff --git a/website/langs/zh_Hans.json b/website/langs/zh_Hans.json index 5b1eea5969..e67df60a6d 100644 --- a/website/langs/zh_Hans.json +++ b/website/langs/zh_Hans.json @@ -174,7 +174,7 @@ "simplex-network-2-desc": "SimpleX 中继服务器不存储用户配置文件、联系人和传递的消息,不相互连接,并且没有服务器目录。", "tap-to-close": "点击关闭", "simplex-network-section-header": "SimpleX 网络", - "simplex-network-section-desc": "Simplex Chat 通过结合 P2P 和联邦网络的优势使其保密性无与伦比。", + "simplex-network-section-desc": "SimpleX Chat 通过结合 P2P 和联邦网络的优势使其保密性无与伦比。", "no-private": "否 - 私密", "simplex-network-1-desc": "所有消息都通过服务器发送,既能更好地保护元数据隐私和可靠地传递异步消息,同时也能避免许多", "simplex-network-3-header": "SimpleX 网络", @@ -258,5 +258,115 @@ "docs-dropdown-14": "企业版 SimpleX", "directory": "目录", "about-and-contact-us": "关于 & 联系我们", + "docs-dropdown-15": "验证并重现构建过程", + "index-hero-h1": "变得
自由", + "index-hero-h2": "在属于你的网络中", + "index-hero-p1": "私密安全的即时通讯。
首个由您掌控
联系人和群组的网络。", + "index-hero-download-desktop-btn-title": "下载 SimpleX 桌面应用程序", + "index-testflight-title": "SimpleX iOS 测试版已在 TestFlight 上发布", + "index-f-droid-title": "SimpleX 安卓应用(通过 F-Droid)", + "index-security-assessment-title": "安全审计", + "index-security-review-2022-title": "2022年­安全审计", + "index-security-review-2024-title": "2024年安全审计", + "index-security-audits-label": "安全
审计", + "index-publications-privacy-guides-title": "隐私指南通讯推荐", + "index-publications-whonix-title": "Whonix通讯推荐", + "index-publications-heise-title": "Heise Online出版物", + "index-publications-kuketz-title": "Mike Kuketz 的评论", + "index-publications-optout-title": "OptOut播客访谈", + "worlds-most-secure-messaging": "全球最安全的即时通讯", + "index-messaging-p1": "SimpleX 即时通讯采用最先进的端到端加密技术。", + "index-messaging-p2": "为了您的安全和隐私,服务器无法看到您的消息以及您与谁交谈。", + "index-messaging-cta": "了解更多关于 SimpleX 消息传递的知识", + "index-nextweb-h2": "属于你的
下一代互联网", + "index-nextweb-p1": "SimpleX 的创建理念是:您必须拥有自己的个人资料、联系人和社区。", + "index-nextweb-p2": "一个不归个人所有的去中心化网络,让你能够与他人联系并分享想法,在网络中自由安全地生活。", + "index-token-h2": "长久存在的社区", + "index-token-p1": "您将通过未来的社区代金券支持您喜爱的团体。", + "index-token-p2": "代金券将用于支付服务器费用,让您的社区保持自由和独立。", + "index-token-cta": "了解更多信息并获取免费抢先体验券,参与早期测试。", + "index-roadmap-h2": "SimpleX 通往自由互联网的路线图", + "index-roadmap-2025-title": "扩展到大型社区", + "index-roadmap-2025-desc": "逃离中心化平台", + "index-roadmap-2026-title": "可持续社区与服务器", + "index-roadmap-2026-desc": "推出社区代金券", + "index-roadmap-2027-title": "促进社区发展", + "index-roadmap-2027-desc": "用于推广社区的工具", + "index-directory-h2": "加入 SimpleX 社区", + "index-directory-p1": "已有数十万人信赖 SimpleX 即时通讯服务。", + "index-directory-p2": "在 SimpleX 目录中找到您的社区并创建您自己的社区!", + "index-directory-cta": "查看 SimpleX 目录", + "index-directory-users-group-title": "SimpleX 用户群组", + "how-secure-comparison-title": "不同即时通讯软件端到端加密安全性的比较", + "how-secure-message-padding": "消息填充", + "how-secure-repudiation-deniability": "否认(可否认性)", + "how-secure-forward-secrecy": "前向加密", + "how-secure-break-in-recovery": "事后安全", + "how-secure-two-factor-key-exchange": "双因素密钥交换", + "how-secure-post-quantum-hybrid-crypto": "后量子混合加密", + "messengers-comparison-section-list-point-1": "Briar 将消息大小向上取整至 1024 字节,Signal 消息大小向上取整至 160 字节", + "messengers-comparison-section-list-point-2": "可否认性不包括客户端-服务器连接。", + "messengers-comparison-section-list-point-3": "使用加密签名似乎会损害可否认性(否认能力),但这一点需要澄清。", + "messengers-comparison-section-list-point-4": "多设备部署会降低双棘轮攻击后的安全性", + "messengers-comparison-section-list-point-5": "双因素密钥交换可通过安全码验证进行,并非强制要求。", + "messengers-comparison-section-list-point-6": "后量子密钥协商是“稀疏的”——它只保护了部分棘轮步骤。", + "navbar-old-site": "旧网站", + "why-p1": "你生来就没有账户。", + "why-p2": "没有人追踪你的谈话内容。没有人绘制你去过的地方的地图。隐私从来都不是一项功能——而是一种生活方式。", + "why-p3": "然后我们转向线上,每个平台都要求你提供一些信息——你的姓名、电话号码、好友列表。我们接受了这样一个事实:与人交流的代价就是让别人知道我们在和谁交流。每一代人,每一代科技,都遵循着这样的模式——电话、电子邮件、即时通讯、社交媒体。这似乎是唯一可行的方式。", + "why-p4": "还有另一种方法。一个没有电话号码、没有用户名、没有账户、没有任何用户身份的网络。一个连接人们并传输加密信息的网络,而无需知道谁连接了。", + "why-p5": "别人家的门锁再好也比不上这里。房东再好也比不上这里,他既尊重你的隐私,又保留着所有访客的记录。你不是客人,你是家。没有国王能闯入——你是主人。", + "why-p6": "你的对话内容始终属于你,就像互联网出现之前一样。网络不是一个你访问的地方,而是一个你创建并拥有的地方。无论你将其设为私密还是公开,任何人都无法将其夺走。", + "why-p7": "人类最古老的自由——与他人交谈而不被监视——建立在不会背叛它的基础设施之上。", + "why-p8": "因为我们摧毁了知道你是谁的权力,因而您的权利永远不会被夺走。", + "why-tagline": "在你的网络中自由畅行。", + "why-footer-link": "我们为什么要建造它", + "file": "文件", + "file-desc": "使用端到端加密安全发送文件——无需注册账户,不会追踪。", + "file-noscript": "文件传输需要启用 JavaScript。", + "file-e2e-note": "端到端加密——服务器永远不会看到您的文件。", + "file-learn-more": "了解更多关于 XFTP 协议的信息", + "file-cta-heading": "获取 SimpleX Chat——最安全、最私密的即时通讯工具", + "file-cta-subheading": "您刚才使用的文件传输功能与 SimpleX Chat 使用相同的数据路由协议。该应用提供端到端加密的消息传递、语音和视频通话、群组功能以及文件发送功能。无需注册账号,无需电话号码,无需邮箱,也无需用户个人资料 ID。", + "file-title": "SimpleX 文件传输", + "file-drop-text": "将文件拖放到此处", + "file-drop-hint": "或", + "file-choose": "选择文件", + "file-max-size": "最大支持 100 MB - SimpleX Chat 应用 支持最大 1 GB 的文件", + "file-encrypting": "加密中……", + "file-uploading": "正在上传…", + "file-cancel": "取消", + "file-uploaded": "文件已上传", + "file-copy": "复制", + "file-copied": "已复制!", + "file-share": "分享", + "file-expiry": "文件通常可保存 48 小时。", + "file-sec-1": "您的文件已在浏览器中加密 - 数据路由器永远不会看到文件内容、名称或大小。", + "file-sec-2": "加密密钥位于链接的哈希片段中——它永远不会发送到任何服务器。", + "file-sec-3": "为了获得更好的安全性,请使用SimpleX Chat应用程序。", + "file-retry": "重试", + "file-downloading": "正在下载…", + "file-decrypting": "正在解密…", + "file-download-complete": "下载完成", + "file-download-btn": "下载", + "file-too-large": "文件过大(%size%)。最大文件大小为 100 MB。SimpleX 应用 支持最大 1 GB 的文件。", + "file-empty": "文件为空。", + "file-invalid-link": "链接无效或已损坏。", + "file-init-error": "初始化失败:%error%", + "file-available": "文件可用(约 %size%)", + "file-dl-sec-1": "此文件已加密——数据路由器永远看不到文件内容、名称或大小。", + "file-workers-required": "需要 Web Workers — 请更新您的浏览器", + "file-protocol-title": "XFTP协议:最安全的文件传输协议", + "file-proto-h-1": "无需注册账号", + "file-proto-p-1": "每个文件片段都使用一个新的随机密钥。数据路由器没有“用户”或“文件”的概念——它们传输的是固定大小的加密文件片段。", + "file-proto-h-2": "浏览器中采用三重加密", + "file-proto-p-2": "文件加密密钥仅存在于 URL 哈希片段中——您的浏览器绝不会将其发送给服务器。加密过程包含三层:TLS 传输层、每个接收者加密层(每次传输使用唯一的临时密钥)以及文件端到端加密层。", + "file-proto-h-4": "独立数据路由器", + "file-proto-p-4": "文件被分割成多个片段后,会通过独立运营商运营的网络路由器进行传输。任何运营商都无法看到文件的实际大小或名称。即使路由器遭到入侵,也只能看到固定大小的加密片段。网络路由器会将文件片段缓存约48小时。", + "file-proto-spec": "阅读 XFTP 协议规范 →", + "navbar-token": "Token 令牌", + "index-roadmap-2025": "2025", + "index-roadmap-2026": "2026", + "index-roadmap-2027": "2027", "send-file": "发送文件" } diff --git a/website/src/js/directory.js b/website/src/js/directory.js index 3000ed0877..42403e279d 100644 --- a/website/src/js/directory.js +++ b/website/src/js/directory.js @@ -246,6 +246,13 @@ function displayEntries(entries) { textContainer.appendChild(memberCountElement); } + if (entryType?.admission?.review === "all") { + const knockingElement = document.createElement('p'); + knockingElement.textContent = 'New members are reviewed by admins'; + knockingElement.className = 'text-sm'; + textContainer.appendChild(knockingElement); + } + const imgLinkElement = document.createElement('a'); const groupLinkUri = groupLink.connShortLink ?? groupLink.connFullLink try {