Merge pull request #626 from oxen-io/dev

Dev 1.12.8
This commit is contained in:
RyanZhao 2022-05-18 09:01:04 +10:00 committed by GitHub
commit 0856a66ec3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
47 changed files with 2187 additions and 1396 deletions

View File

@ -5181,7 +5181,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 342;
CURRENT_PROJECT_VERSION = 344;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = SUQ8J2PCT7;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
@ -5206,7 +5206,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.12.7;
MARKETING_VERSION = 1.12.8;
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.ShareExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
@ -5254,7 +5254,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 342;
CURRENT_PROJECT_VERSION = 344;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = SUQ8J2PCT7;
ENABLE_NS_ASSERTIONS = NO;
@ -5284,7 +5284,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.12.7;
MARKETING_VERSION = 1.12.8;
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.ShareExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
@ -5320,7 +5320,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 342;
CURRENT_PROJECT_VERSION = 344;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = SUQ8J2PCT7;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
@ -5343,7 +5343,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.12.7;
MARKETING_VERSION = 1.12.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.NotificationServiceExtension";
@ -5394,7 +5394,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 342;
CURRENT_PROJECT_VERSION = 344;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = SUQ8J2PCT7;
ENABLE_NS_ASSERTIONS = NO;
@ -5422,7 +5422,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.12.7;
MARKETING_VERSION = 1.12.8;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.NotificationServiceExtension";
@ -6330,7 +6330,7 @@
CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 342;
CURRENT_PROJECT_VERSION = 344;
DEVELOPMENT_TEAM = SUQ8J2PCT7;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@ -6370,7 +6370,7 @@
"$(SRCROOT)",
);
LLVM_LTO = NO;
MARKETING_VERSION = 1.12.7;
MARKETING_VERSION = 1.12.8;
OTHER_LDFLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger";
@ -6403,7 +6403,7 @@
CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 342;
CURRENT_PROJECT_VERSION = 344;
DEVELOPMENT_TEAM = SUQ8J2PCT7;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@ -6443,7 +6443,7 @@
"$(SRCROOT)",
);
LLVM_LTO = NO;
MARKETING_VERSION = 1.12.7;
MARKETING_VERSION = 1.12.8;
OTHER_LDFLAGS = "$(inherited)";
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger";
PRODUCT_NAME = Session;

View File

@ -2,9 +2,17 @@
import WebRTC
import Foundation
#if arch(arm64)
// Note: 'RTCMTLVideoView' requires arm64 (so won't work on the simulator which
// we need to build for x86_64 due to WebRTC not supporting arm64 simulator builds)
typealias TargetView = RTCMTLVideoView
#else
typealias TargetView = RTCEAGLVideoView
#endif
// MARK: RemoteVideoView
class RemoteVideoView: RTCMTLVideoView {
class RemoteVideoView: TargetView {
override func renderFrame(_ frame: RTCVideoFrame?) {
super.renderFrame(frame)
@ -39,7 +47,7 @@ class RemoteVideoView: RTCMTLVideoView {
// Assume we're already setup for the correct orientation.
break
}
#if arch(arm64)
if let rotationOverride = rotationOverride {
self.rotationOverride = NSNumber(value: rotationOverride.rawValue)
if [ RTCVideoRotation._0, RTCVideoRotation._180 ].contains(rotationOverride) {
@ -59,13 +67,14 @@ class RemoteVideoView: RTCMTLVideoView {
if frameRatio < 1.5 {
self.videoContentMode = .scaleAspectFit
}
#endif
}
}
}
// MARK: LocalVideoView
class LocalVideoView: RTCMTLVideoView {
class LocalVideoView: TargetView {
static let width: CGFloat = 80
static let height: CGFloat = 173
@ -77,7 +86,9 @@ class LocalVideoView: RTCMTLVideoView {
// sometimes the rotationOverride is not working
// if it is only set once on initialization
self.rotationOverride = NSNumber(value: RTCVideoRotation._0.rawValue)
#if arch(arm64)
self.videoContentMode = .scaleAspectFill
#endif
}
}
}

View File

@ -16,6 +16,9 @@ final class MiniCallView: UIView, RTCVideoViewDelegate {
private var top: NSLayoutConstraint?
private var bottom: NSLayoutConstraint?
#if arch(arm64)
// Note: 'RTCMTLVideoView' requires arm64 (so won't work on the simulator which
// we need to build for x86_64 due to WebRTC not supporting arm64 simulator builds)
private lazy var remoteVideoView: RTCMTLVideoView = {
let result = RTCMTLVideoView()
result.delegate = self
@ -24,6 +27,15 @@ final class MiniCallView: UIView, RTCVideoViewDelegate {
result.backgroundColor = .black
return result
}()
#else
private lazy var remoteVideoView: RTCEAGLVideoView = {
let result = RTCEAGLVideoView()
result.delegate = self
result.alpha = self.callVC.call.isRemoteVideoEnabled ? 1 : 0
result.backgroundColor = .black
return result
}()
#endif
// MARK: Initialization
public static var current: MiniCallView?

View File

@ -1,4 +1,5 @@
import PromiseKit
import SessionMessagingKit
@objc(SNEditClosedGroupVC)
final class EditClosedGroupVC : BaseVC, UITableViewDataSource, UITableViewDelegate {
@ -292,6 +293,7 @@ final class EditClosedGroupVC : BaseVC, UITableViewDataSource, UITableViewDelega
}, completion: {
let _ = promise.done(on: DispatchQueue.main) {
guard let self = self else { return }
MentionsManager.populateUserPublicKeyCacheIfNeeded(for: self.thread.uniqueId!)
self.dismiss(animated: true, completion: nil) // Dismiss the loader
popToConversationVC(self)
}

View File

@ -95,4 +95,5 @@ protocol ContextMenuActionDelegate : AnyObject {
func save(_ viewItem: ConversationViewItem)
func ban(_ viewItem: ConversationViewItem)
func banAndDeleteAllMessages(_ viewItem: ConversationViewItem)
func contextMenuDismissed()
}

View File

@ -132,6 +132,7 @@ final class ContextMenuVC : UIViewController {
self.timestampLabel.alpha = 0
}, completion: { _ in
self.dismiss()
self.delegate?.contextMenuDismissed()
})
}
}

View File

@ -815,6 +815,10 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc
alert.addAction(UIAlertAction(title: "Cancel", style: .default, handler: nil))
presentAlert(alert)
}
func contextMenuDismissed() {
recoverInputView()
}
func handleQuoteViewCancelButtonTapped() {
snInputView.quoteDraftInfo = nil
@ -1192,12 +1196,16 @@ extension ConversationVC {
// Delete all thread content
self?.thread.removeAllThreadInteractions(with: transaction)
self?.thread.remove(with: transaction)
},
completion: { [weak self] in
// Force a config sync and pop to the previous screen
MessageSender.syncConfiguration(forceSyncNow: true).retainUntilComplete()
// Remove the thread after the config message is sent.
// Otherwise the blocked user won't be included in the
// config message.
self?.thread.remove()
DispatchQueue.main.async {
self?.navigationController?.popViewController(animated: true)
}

View File

@ -420,7 +420,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
highlightFocusedMessageIfNeeded()
didFinishInitialLayout = true
markAllAsRead()
self.becomeFirstResponder()
recoverInputView()
}
override func viewWillDisappear(_ animated: Bool) {
@ -438,9 +438,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
}
override func appDidBecomeActive(_ notification: Notification) {
// This is a workaround for an issue where the textview is not scrollable
// after the app goes into background and goes back in foreground.
self.snInputView.text = self.snInputView.text
recoverInputView()
}
deinit {
@ -495,9 +493,10 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
}
}
else {
// Note: Adding an empty button because without it the title alignment is busted (Note: The size was
// Note: Adding 2 empty buttons because without it the title alignment is busted (Note: The size was
// taken from the layout inspector for the back button in Xcode
rightBarButtonItems.append(UIBarButtonItem(customView: UIView(frame: CGRect(x: 0, y: 0, width: 37, height: 44))))
rightBarButtonItems.append(UIBarButtonItem(customView: UIView(frame: CGRect(x: 0, y: 0, width: Values.verySmallProfilePictureSize, height: 44))))
rightBarButtonItems.append(UIBarButtonItem(customView: UIView(frame: CGRect(x: 0, y: 0, width: 44, height: 44))))
}
}
else {
@ -737,6 +736,14 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
}
}
func recoverInputView() {
// This is a workaround for an issue where the textview is not scrollable
// after the app goes into background and goes back in foreground.
DispatchQueue.main.async {
self.snInputView.text = self.snInputView.text
}
}
func markAllAsRead() {
guard let lastSortID = viewItems.last?.interaction.sortId else { return }
OWSReadReceiptManager.shared().markAsReadLocally(

View File

@ -327,7 +327,7 @@ CGFloat kIconViewLength = 24;
}]];
// Disappearing messages
if (![self isOpenGroup]) {
if (![self isOpenGroup] && !self.thread.isBlocked) {
[section addItem:[OWSTableItem itemWithCustomCellBlock:^{
UITableViewCell *cell = [OWSTableItem newCell];
OWSConversationSettingsViewController *strongSelf = weakSelf;

View File

@ -50,6 +50,10 @@ final class ConversationTitleView : UIView {
private func initialize() {
addSubview(stackView)
stackView.pin(to: self)
let shouldShowCallButton = SessionCall.isEnabled && !thread.isNoteToSelf() && !thread.isGroupThread()
let leftMargin: CGFloat = shouldShowCallButton ? 54 : 8 // Contact threads also have the call button to compensate for
stackView.layoutMargins = UIEdgeInsets(top: 0, left: leftMargin, bottom: 0, right: 0)
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
addGestureRecognizer(tapGestureRecognizer)
let notificationCenter = NotificationCenter.default
@ -70,11 +74,6 @@ final class ConversationTitleView : UIView {
subtitleLabel.attributedText = subtitle
let titleFontSize = (subtitle != nil) ? Values.mediumFontSize : Values.veryLargeFontSize
titleLabel.font = .boldSystemFont(ofSize: titleFontSize)
// Update title left margin
let shouldShowCallButton = SessionCall.isEnabled && !thread.isNoteToSelf() && !thread.isGroupThread() && !thread.isMessageRequest()
let leftMargin: CGFloat = shouldShowCallButton ? 54 : 8 // Contact threads also have the call button to compensate for
stackView.layoutMargins = UIEdgeInsets(top: 0, left: leftMargin, bottom: 0, right: 0)
}
// MARK: General

View File

@ -3,13 +3,13 @@
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number}} */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Version %@ ist nun im App Store verfügbar.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "Neue Version von Session verfügbar";
"APP_UPDATE_NAG_ALERT_TITLE" = "Eine neue Version von Session ist verfügbar";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Aktualisieren";
/* No comment provided by engineer. */
"ATTACHMENT" = "Anhang";
/* One-line label indicating the user can add no more text to the attachment caption. */
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Zeichen Limit erreicht.";
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Maximale Zeichen erreicht.";
/* placeholder text for an empty captioning field */
"ATTACHMENT_APPROVAL_CAPTION_PLACEHOLDER" = "Bemerkung hinzufügen …";
/* Title for 'caption' mode of the attachment approval view. */
@ -19,7 +19,7 @@
/* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */
"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Größe: %@";
/* One-line label indicating the user can add no more text to the media message field. */
"ATTACHMENT_APPROVAL_MESSAGE_LENGTH_LIMIT_REACHED" = "Nachrichtenlimit erreicht.";
"ATTACHMENT_APPROVAL_MESSAGE_LENGTH_LIMIT_REACHED" = "Nachrichtenlimit erreicht";
/* Label for 'send' button in the 'attachment approval' dialog. */
"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Senden";
/* Generic filename for an attachment with no known name */
@ -75,7 +75,7 @@
/* Indicates that the backup import data is being finalized. */
"BACKUP_IMPORT_PHASE_FINALIZING" = "Sicherung wird abgeschlossen";
/* Indicates that the backup import data is being imported. */
"BACKUP_IMPORT_PHASE_IMPORT" = "Sicherung wird importiert";
"BACKUP_IMPORT_PHASE_IMPORT" = "Sicherung wird importiert.";
/* Indicates that the backup database is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_DATABASE" = "Datenbank wird wiederhergestellt";
/* Indicates that the backup import data is being restored. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Link-Vorschauen senden";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Linkvorschau ist verfügbar für Imgur, Instagram, Pinterest, Reddit, und YouTube Links.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Vorschauen werden für die meisten Urls unterstützt.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Link-Vorschauen";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Sprach- und Videoanrufe";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Erlauben, Sprach- und Videoanrufe von anderen Nutzern anzunehmen.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Anrufe";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Mitteilungsinhalt";
/* Label for the 'read receipts' setting. */
@ -519,10 +525,10 @@
"modal_clear_all_data_title" = "Alle Daten löschen";
"modal_clear_all_data_explanation" = "Dadurch werden Ihre Nachrichten, Sessions und Kontakte dauerhaft gelöscht.";
"modal_clear_all_data_explanation_2" = "Möchtest du nur dieses Gerät löschen oder dein gesamtes Konto löschen?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"dialog_clear_all_data_deletion_failed_1" = "Daten nicht gelöscht von Service Node 1. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Daten nicht gelöscht von %@ Service Noten. Service Noten IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Nur Geräte";
"modal_clear_all_data_entire_account_button_title" = "Gesamtes Konto";
"vc_qr_code_title" = "QR-Code";
"vc_qr_code_view_my_qr_code_tab_title" = "Meinen QR-Code anzeigen";
"vc_qr_code_view_scan_qr_code_tab_title" = "QR-Code scannen";
@ -555,61 +561,81 @@
"modal_open_url_title" = "URL öffnen?";
"modal_open_url_explanation" = "Möchten Sie %@ wirklich öffnen?";
"modal_open_url_button_title" = "Öffnen";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Link kopieren";
"modal_blocked_title" = "%@ entsperren?";
"modal_blocked_explanation" = "Sind Sie sicher, dass Sie %@ entsperren möchten?";
"modal_blocked_button_title" = "Entsperren";
"modal_link_previews_title" = "Link-Vorschau aktivieren?";
"modal_link_previews_explanation" = "Das Aktivieren von Link-Vorschauen zeigt Vorschaubilder für URLs, die Sie senden und empfangen. Dies kann nützlich sein, aber Session muss verlinkte Webseiten kontaktieren, um Vorschaubilder zu generieren. Du kannst die Link-Vorschau in den Session-Einstellungen immer deaktivieren.";
"modal_link_previews_button_title" = "Aktivieren";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Sprach-/Videoanrufe";
"modal_call_explanation" = "Die aktuelle Implementierung von Sprach- und Videoanrufen wird deine IP-Adresse den Oxen Foundation Servern und dem anderen Benutzer offenbaren.";
"modal_share_logs_title" = "Logs teilen";
"modal_share_logs_explanation" = "Möchten Sie Ihre Anwendungsprotokolle exportieren, um sie später zur Fehlerbehebung teilen zu können?";
"vc_share_title" = "Mit Session teilen";
"vc_share_loading_message" = "Anlagen werden vorbereitet...";
"vc_share_sending_message" = "Wird gesendet ...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"vc_share_link_previews_unsecure" = "Vorschau nicht für unsicheren Link geladen";
"vc_share_link_previews_error" = "Ansicht konnte nicht geladen werden";
"vc_share_link_previews_disabled_title" = "Linkvorschau deaktiviert";
"vc_share_link_previews_disabled_explanation" = "Das Aktivieren von Link-Vorschauen zeigt Vorschaubilder für URLs, die Sie senden und empfangen. Dies kann nützlich sein, aber Session muss verlinkte Webseiten kontaktieren, um Vorschaubilder zu generieren. Du kannst die Link-Vorschau in den Session-Einstellungen immer deaktivieren.";
"view_open_group_invitation_description" = "Gruppeneinladung öffnen";
"vc_conversation_settings_invite_button_title" = "Mitglieder hinzufügen";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"vc_settings_faq_button_title" = "Häufig gestellte Fragen";
"vc_settings_survey_button_title" = "Feedback / Umfrage";
"vc_settings_support_button_title" = "Debug-Protokoll";
"modal_send_seed_title" = "Warnung";
"modal_send_seed_explanation" = "Dies ist dein Wiederherstellungssatz. Wenn du ihn jemandem schickst, hat er oder sie vollen Zugriff auf dein Konto.";
"modal_send_seed_send_button_title" = "Senden";
"vc_conversation_settings_notify_for_mentions_only_title" = "Nur für Erwähnungen benachrichtigen";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Wenn aktiviert, wirst du nur für Nachrichten benachrichtigt, die dich erwähnen.";
"view_conversation_title_notify_for_mentions_only" = "Nur für Erwähnungen benachrichtigen";
"message_deleted" = "Die Nachricht wurde gelöscht";
"delete_message_for_me" = "Nur für mich löschen";
"delete_message_for_everyone" = "Für jeden löschen";
"delete_message_for_me_and_recipient" = "Für mich und %@ löschen";
"context_menu_reply" = "Antworten";
"context_menu_save" = "Speichern";
"context_menu_ban_user" = "Nutzer sperren";
"context_menu_ban_and_delete_all" = "Sperren und alles löschen";
"accessibility_expanding_attachments_button" = "Anhänge hinzufügen";
"accessibility_gif_button" = "GIF";
"accessibility_document_button" = "Dokument";
"accessibility_library_button" = "Fotobibliothek";
"accessibility_camera_button" = "Kamera";
"accessibility_main_button_collapse" = "Optionen für Anhänge einklappen";
"invalid_recovery_phrase" = "Ungültige Wiederherstellungsphrase";
"invalid_recovery_phrase" = "Ungültige Wiederherstellungsphrase";
"DISMISS_BUTTON_TEXT" = "Verwerfen";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"OPEN_SETTINGS_BUTTON" = "Einstellungen";
"call_outgoing" = "Du hast %@ angerufen";
"call_incoming" = "%@ rief Sie an";
"call_missed" = "Verpasster Anruf von %@";
"call_rejected" = "Anruf abgelehnt";
"call_cancelled" = "Abgebrochener Anruf";
"call_timeout" = "Unbeantworteter Anruf";
"voice_call" = "Sprachanruf";
"video_call" = "Videoanruf";
"APN_Message" = "Du hast eine neue Nachricht";
"APN_Collapsed_Messages" = "Du hast %@ neue Nachrichten.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"dark_mode_theme" = "Dunkel";
"light_mode_theme" = "Hell";
"PIN_BUTTON_TEXT" = "Anheften";
"UNPIN_BUTTON_TEXT" = "Loslösen";
"modal_call_missed_tips_title" = "Verpasster Anruf";
"modal_call_missed_tips_explanation" = "Verpasster Anruf von '%@', da du die Berechtigung 'Anrufe und Videoanrufe' in den Datenschutzeinstellungen aktivieren musst.";
"meida_saved" = "Medien gespeichert von %@.";
"screenshot_taken" = "%@ hat ein Screenshot gemacht.";
"SEARCH_SECTION_CONTACTS" = "Kontakte und Gruppen";
"SEARCH_SECTION_MESSAGES" = "Nachrichten";
"SEARCH_SECTION_RECENT" = "Zuletzt verwendete";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "letzte Nachricht: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Möchten Sie wirklich alle Nachrichten löschen?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";

View File

@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Enviar previsualizaciones";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Las previsualizaciones están disponibles para enlaces hacia Imgur, Instagram, Pinterest, Reddit y YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Las vistas previas están soportadas para la mayoría de URLs.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Previsualizar enlaces";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Llamadas de voz y video";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Permitir el acceso para aceptar llamadas de voz y vídeo de otros usuarios.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Llamadas";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Contenido de notificaciones";
/* Label for the 'read receipts' setting. */
@ -555,15 +561,17 @@
"modal_open_url_title" = "¿Abrir URL?";
"modal_open_url_explanation" = "¿Estás seguro de que quieres abrir %@?";
"modal_open_url_button_title" = "Abrir";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Copiar Enlace";
"modal_blocked_title" = "¿Desbloquear a %@?";
"modal_blocked_explanation" = "¿Estás seguro de que quieres desbloquear a %@?";
"modal_blocked_button_title" = "Desbloquear";
"modal_link_previews_title" = "¿Habilitar Previsualizaciones de Enlace?";
"modal_link_previews_explanation" = "Activar vista previa de enlaces mostrará las vistas previas para las URL que envíe y reciba. Esto puede ser útil, pero Session tendrá que ponerse en contacto con los sitios web enlazados para generar vistas previas. Siempre puedes desactivar las vistas previas de enlaces en la configuración de Session.";
"modal_link_previews_button_title" = "Activar";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Llamadas de voz / video";
"modal_call_explanation" = "La implementación actual de llamadas de voz/video expondrá tu dirección IP a los servidores de Oxen Foundation y al usuario llamado.";
"modal_share_logs_title" = "Compartir registros";
"modal_share_logs_explanation" = "¿Quiere exportar los registros de su aplicación para poder compartir para la solución de problemas?";
"vc_share_title" = "Compartir en Session";
"vc_share_loading_message" = "Preparando archivos adjuntos...";
"vc_share_sending_message" = "Enviando...";
@ -573,39 +581,57 @@
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "Abrir invitación de grupo";
"vc_conversation_settings_invite_button_title" = "Añadir Miembros";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"vc_settings_faq_button_title" = "Preguntas Frecuentes";
"vc_settings_survey_button_title" = "Encuesta de opinión";
"vc_settings_support_button_title" = "Registro de depuración";
"modal_send_seed_title" = "Aviso";
"modal_send_seed_explanation" = "Esta es tu frase de recuperación. Si se la envias a alguien, tendrá acceso completo a tu cuenta.";
"modal_send_seed_send_button_title" = "Enviar";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notificar Solo Menciones";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Cuando está activado, sólo se te notificará de mensajes que te mencionen.";
"view_conversation_title_notify_for_mentions_only" = "Notificando Solo Menciones";
"message_deleted" = "El mensaje se ha eliminado";
"delete_message_for_me" = "Eliminar solo para mí";
"delete_message_for_everyone" = "Eliminar para todos";
"delete_message_for_me_and_recipient" = "Eliminar para mí y para %@";
"context_menu_reply" = "Responder";
"context_menu_save" = "Guardar";
"context_menu_ban_user" = "Banear Usuario";
"context_menu_ban_and_delete_all" = "Banear y Eliminar Todo";
"accessibility_expanding_attachments_button" = "Añadir adjuntos Añadir archivo adjunto";
"accessibility_gif_button" = "GIF";
"accessibility_document_button" = "Documento";
"accessibility_library_button" = "Fototeca";
"accessibility_camera_button" = "Cámara";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Frase de Recuperación Incorrecta";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"DISMISS_BUTTON_TEXT" = "Descartar";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"OPEN_SETTINGS_BUTTON" = "Ajustes";
"call_outgoing" = "Has llamado a %@";
"call_incoming" = "%@ called you";
"call_missed" = "Llamada Perdida de %@";
"call_rejected" = "Llamada Rechazada";
"call_cancelled" = "Llamada Cancelada";
"call_timeout" = "Llamada No Contestada";
"voice_call" = "Llamada de Voz";
"video_call" = "Videollamada";
"APN_Message" = "Tienes un mensaje nuevo";
"APN_Collapsed_Messages" = "Tienes un mensaje nuevo.";
"system_mode_theme" = "Sistema";
"dark_mode_theme" = "Oscuro";
"light_mode_theme" = "Claro";
"PIN_BUTTON_TEXT" = "Fijar";
"UNPIN_BUTTON_TEXT" = "Dejar de fijar";
"modal_call_missed_tips_title" = "Llamada perdida";
"modal_call_missed_tips_explanation" = "Llamada perdida de '%@' porque necesitas habilitar el permiso de 'Llamadas de voz y video' en la configuración de privacidad.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ tomó una captura de pantalla.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -13,7 +13,7 @@
/* placeholder text for an empty captioning field */
"ATTACHMENT_APPROVAL_CAPTION_PLACEHOLDER" = "یک عنوان اضافه کنید...";
/* Title for 'caption' mode of the attachment approval view. */
"ATTACHMENT_APPROVAL_CAPTION_TITLE" = "Caption";
"ATTACHMENT_APPROVAL_CAPTION_TITLE" = "عنوان";
/* Format string for file extension label in call interstitial view */
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "نوع فايل: %@";
/* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */
@ -27,7 +27,7 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "خطا در ارسال فایل ضمیمه";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "امکان تبدیل نگاره وجود ندارد.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Unable to process video.";
/* Attachment error message for image attachments which cannot be parsed */
@ -99,9 +99,9 @@
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "رفع مسدودی";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ مسدود شد.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "کاربر مسدود شده است";
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "کاربر مسدود شد";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ از حالت مسدودی خارج شد.";
/* Alert body after unblocking a group. */
@ -307,25 +307,25 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "آلبوم بی نام";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "علامت‌گذاری به عنوان خوانده‌شده";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "پاسخ";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "لطفا برای فعال شدن حساب خود، کدی که به شما فرستاده‌ایم را تائید کنید.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
"SCREEN_LOCK_ACTIVITY_TIMEOUT_NONE" = "لحظه";
/* Description of how and why Session iOS uses Touch ID/Face ID/Phone Passcode to unlock 'screen lock'. */
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Authenticate to open Session.";
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "برای باز کردن Session هویت خود را احراز کنید.";
/* Title for alert indicating that screen lock could not be unlocked. */
"SCREEN_LOCK_UNLOCK_FAILED" = "احراز هویت ناموفق بود";
/* alert title when user attempts to leave the send media flow when they have an in-progress album */
"SEND_MEDIA_ABANDON_TITLE" = "Discard Media?";
"SEND_MEDIA_ABANDON_TITLE" = "رسانه ها کنار گذاشته شوند؟";
/* alert action, confirming the user wants to exit the media flow and abandon any photos they've taken */
"SEND_MEDIA_CONFIRM_ABANDON_ALBUM" = "Discard Media";
"SEND_MEDIA_CONFIRM_ABANDON_ALBUM" = "رسانه ها کنار گذاشته شوند";
/* alert action when the user decides not to cancel the media flow after all. */
"SEND_MEDIA_RETURN_TO_CAMERA" = "بازگشت به دوربین";
/* alert action when the user decides not to cancel the media flow after all. */
"SEND_MEDIA_RETURN_TO_MEDIA_LIBRARY" = "Return to Media Library";
"SEND_MEDIA_RETURN_TO_MEDIA_LIBRARY" = "برگشت به کتابخانه رسانه";
/* Format string for the default 'Note' sound. Embeds the system {{sound name}}. */
"SETTINGS_AUDIO_DEFAULT_TONE_LABEL_FORMAT" = "%@ (پیشفرض)";
/* Label for the backup view in app settings. */
@ -341,7 +341,7 @@
/* Indicates that the last backup restore failed. */
"SETTINGS_BACKUP_IMPORT_STATUS_FAILED" = "ناتوانی در بازگرداندن بکاپ";
/* Indicates that app is not restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "Backup Restore Idle";
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "بازیابی پشتیبان غیرفعال است";
/* Indicates that app is restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IN_PROGRESS" = "در حال بازگرداندن بکاپ";
/* Indicates that the last backup restore succeeded. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "ارسال پیش نمایش لینک";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "پیش نمایش ها برای Imgur، Instagram، Pinterest، Reddit، و لینک های Youtube پشتیبانی می شود.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "پیش‌نمایش‌ها برای اکثر آدرس‌های اینترنتی پشتیبانی می‌شوند.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "پیش نمایش های لینک";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "تماس های صوتی و تصویری";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "اجازه دسترسی برای پذیرش تماس های صوتی و تصویری از سایر کاربران را بدهید.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "تماس ها";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "محتوای نوتیفیکیشن";
/* Label for the 'read receipts' setting. */
@ -518,30 +524,30 @@
"modal_seed_explanation" = "این عبارت بازیابی شماست. با استفاده از آن می‌توانید شناسه‌ی Session خود را به دستگاه جدید بازیابی یا انتقال دهید.";
"modal_clear_all_data_title" = "پاک کردن همه داده‌ها";
"modal_clear_all_data_explanation" = "این به طور دائم پیام‌ها، جلسات و مخاطبین شما را حذف می‌کند.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "آیا فقط می‌خواهید این دستگاه را پاک کنید یا می‌خواهید این اکانت را پاک کنید؟";
"dialog_clear_all_data_deletion_failed_1" = "داده ها توسط ۱ گره سرویس حذف نشده است. شناسه گره سرویس: %@.";
"dialog_clear_all_data_deletion_failed_2" = "داده ها توسط گره سرویس %@ حذف نشدند. شناسه گره سرویس: %@.";
"modal_clear_all_data_device_only_button_title" = "فقط دستگاه";
"modal_clear_all_data_entire_account_button_title" = "تمام حساب";
"vc_qr_code_title" = "کد QR";
"vc_qr_code_view_my_qr_code_tab_title" = "مشاهده کد QR من";
"vc_qr_code_view_scan_qr_code_tab_title" = "اسکن کد QR";
"vc_qr_code_view_scan_qr_code_explanation" = "برای شروع مکالمه با دیگران، کد QR شخصی را اسکن کنید";
"vc_view_my_qr_code_explanation" = "این کد QR شماست. سایر کاربران می‌توانند برای شروع Session با شما آن را اسکن کنند.";
// MARK: - Not Yet Translated
"fast_mode_explanation" = "Youll be notified of new messages reliably and immediately using Apples notification servers.";
"fast_mode" = "Fast Mode";
"slow_mode_explanation" = "Session will occasionally check for new messages in the background.";
"slow_mode" = "Slow Mode";
"vc_pn_mode_title" = "Message Notifications";
"fast_mode_explanation" = "با استفاده از سرورهای اطلاع رسانی اپل، شما به صورت سریع و مطمئن از پیام‌های جدید مطلع می‌شوید.";
"fast_mode" = "حالت سریع";
"slow_mode_explanation" = "Session هرازگاهی در پس زمینه وجود پیام‌های جدید را بررسی می‌کند.";
"slow_mode" = "حالت آهسته";
"vc_pn_mode_title" = "اعلان‌های پیام";
"vc_notification_settings_notification_mode_title" = "استفاده از حالت سریع";
"vc_link_device_recovery_phrase_tab_title" = "عبارت بازیابی";
"vc_link_device_scan_qr_code_explanation" = "Navigate to Settings → Recovery Phrase on your other device to show your QR code.";
"vc_link_device_scan_qr_code_explanation" = "برای دیدن کد QR خود، در دستگاه دیگرتان به «تنظیمات ← عبارت بازیابی» مراجعه کنید.";
"vc_enter_recovery_phrase_title" = "عبارت بازیابی";
"vc_enter_recovery_phrase_explanation" = "To link your device, enter the recovery phrase that was given to you when you signed up.";
"vc_enter_public_key_text_field_hint" = "Enter Session ID or ONS name";
"vc_enter_recovery_phrase_explanation" = "برای وصل کردن دستگاهتان، عبارت بازیابی که در زمان ثبت نام به شما داده شده بود را وارد کنید.";
"vc_enter_public_key_text_field_hint" = "شناسه Session یا اسم سرویس نام Oxen را وارد کنید";
"vc_home_title" = "پیام ها";
"admin_group_leave_warning" = "Because you are the creator of this group it will be deleted for everyone. This cannot be undone.";
"admin_group_leave_warning" = "به دلیل اینکه شما مدیر گروه هستید، این گروه برای همه اعضا ی گروه پاک میشود. این قابل بازگشت نیست.";
"vc_join_open_group_suggestions_title" = "یا به یکی از اینها بپیوندید...";
"vc_settings_invite_a_friend_button_title" = "دعوت از یک دوست";
"vc_settings_help_us_translate_button_title" = "به ما کمک کنید که سشن را ترجمه کنیم";
@ -549,19 +555,21 @@
"vc_conversation_settings_copy_session_id_button_title" = "کپی کردن شناسه‌ی Session شما";
"vc_conversation_input_prompt" = "پیام";
"vc_conversation_voice_message_cancel_message" = "برای کنسل کردن به کناره بکشید";
"modal_download_attachment_title" = "Trust %@?";
"modal_download_attachment_explanation" = "Are you sure you want to download media sent by %@?";
"modal_download_attachment_title" = "آیا به %@ اعتماد میکنید؟";
"modal_download_attachment_explanation" = "آیا مطمئن هستید که می‌خواهید رسانه ارسال شده توسط %@ را دانلود کنید؟";
"modal_download_button_title" = "دریافت";
"modal_open_url_title" = "URL باز شود؟";
"modal_open_url_explanation" = "آیا مطمئن هستید که میخواهید %@ را باز کنید؟";
"modal_open_url_button_title" = "باز کن";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Unblock %@?";
"modal_blocked_explanation" = "Are you sure you want to unblock %@?";
"modal_copy_url_button_title" = "کپی کردن لینک";
"modal_blocked_title" = "%@ از حالت مسدود خارج شود؟";
"modal_blocked_explanation" = "آیا مطمئن هستید که میخواهید %@ را از حالت مسدود خارج کنید؟";
"modal_blocked_button_title" = "رفع مسدودی";
"modal_link_previews_title" = "فعال‌سازی پیش‌نمایش لینک؟";
"modal_link_previews_explanation" = "Enabling link previews will show previews for URLs you send and receive. This can be useful, but Session will need to contact linked websites to generate previews. You can always disable link previews in Session's settings.";
"modal_link_previews_explanation" = "با فعال کردن این گزینه، پیش‌نمایش لینک‌ها در پیام‌های ارسالی و دریافتی دیده می‌شود. این گزینه می‌تواند مفید باشد اما Session باید با سایت ارتباط برقرار کند تا پیش‌نمایش را نشان دهد. شما می‌توانید همیشه در تنظیمات این پیش‌نمایش را غیرفعال کنید.";
"modal_link_previews_button_title" = "فعال سازی";
"modal_call_title" = "تماس های صوتی / تصویری";
"modal_call_explanation" = "The current implementation of voice / video calls will expose your IP address to the Oxen Foundation servers and the calling / called user.";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "اشتراک گذاری با Session";
@ -572,23 +580,23 @@
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "Open group invitation";
"vc_conversation_settings_invite_button_title" = "Add Members";
"vc_settings_faq_button_title" = "FAQ";
"vc_conversation_settings_invite_button_title" = "اضافه‌کردن اعضا";
"vc_settings_faq_button_title" = "سوالات متداول";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"modal_send_seed_title" = "هشدار";
"modal_send_seed_explanation" = "این عبارت بازیابی شماست. اگر آن را برای شخصی ارسال کنید ، دسترسی کامل به حساب شما خواهد داشت.";
"modal_send_seed_send_button_title" = "ارسال";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"message_deleted" = "این پیام حذف شده است";
"delete_message_for_me" = "حذف برای من";
"delete_message_for_everyone" = "حذف برای همه";
"delete_message_for_me_and_recipient" = "حذف برای من و %@";
"context_menu_reply" = "پاسخ";
"context_menu_save" = "ذخیره";
"context_menu_ban_user" = "مسدود کردن کاربر";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"accessibility_gif_button" = "Gif";
@ -597,15 +605,33 @@
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"call_outgoing" = "You called %@";
"call_incoming" = "%@ called you";
"call_missed" = "Missed Call from %@";
"call_rejected" = "Rejected Call";
"call_cancelled" = "Cancelled Call";
"call_timeout" = "Unanswered Call";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"APN_Message" = "You've got a new message.";
"APN_Collapsed_Messages" = "You've got %@ new messages.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"PIN_BUTTON_TEXT" = "Pin";
"UNPIN_BUTTON_TEXT" = "Unpin";
"modal_call_missed_tips_title" = "Call missed";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ took a screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -1,25 +1,25 @@
/* Label for the 'dismiss' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "Ei nyt";
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "Myöhemmin";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number}} */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Versio %@ on nyt ladattavissa App Storesta.";
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Uusin versio on nyt saatavilla App Storesta.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "Uusi versio Sessionista on nyt saatavilla";
"APP_UPDATE_NAG_ALERT_TITLE" = "Uusi versio Sessionista on saatavilla";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Päivitys";
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Päivitä";
/* No comment provided by engineer. */
"ATTACHMENT" = "Liite";
"ATTACHMENT" = "Lisää liite";
/* One-line label indicating the user can add no more text to the attachment caption. */
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Otsikon maksimimerkkimäärä saavutettu.";
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Kuvatekstin enimmäispituus on saavutettu.";
/* placeholder text for an empty captioning field */
"ATTACHMENT_APPROVAL_CAPTION_PLACEHOLDER" = "Lisää otsikko…";
"ATTACHMENT_APPROVAL_CAPTION_PLACEHOLDER" = "Lisää kuvateksti…";
/* Title for 'caption' mode of the attachment approval view. */
"ATTACHMENT_APPROVAL_CAPTION_TITLE" = "Otsikko";
/* Format string for file extension label in call interstitial view */
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "Tiedostotyyppi: %@";
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "Tiedoston formaatti: %@";
/* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */
"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Koko: %@";
"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Rajoitettu koko: %@";
/* One-line label indicating the user can add no more text to the media message field. */
"ATTACHMENT_APPROVAL_MESSAGE_LENGTH_LIMIT_REACHED" = "Viestin maksimimerkkimäärä saavutettu";
"ATTACHMENT_APPROVAL_MESSAGE_LENGTH_LIMIT_REACHED" = "Viestin suurin sallittu pituus saavutettu";
/* Label for 'send' button in the 'attachment approval' dialog. */
"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Lähetä";
/* Generic filename for an attachment with no known name */
@ -33,37 +33,37 @@
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Kuvaa ei voitu jäsentää.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Metatietojen poistaminen kuvasta ei onnistunut.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Metadatan poistaminen kuvasta epäonnistui.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Kuvan kokoa ei voitu muuttaa.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Liitetiedosto on liian suuri.";
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Liite on liian iso.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Liitetiedoston sisältö on virheellinen.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Liite sisältää virheellistä sisältöä.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Liitetiedoston muoto on virheellinen.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Liitteellä on virheellinen tiedostotyyppi.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Liitetiedosto on tyhjä.";
"ATTACHMENT_ERROR_MISSING_DATA" = "Liite on tyhjä.";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Dokumentin valinta epäonnistui.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Ole hyvä ja kokeile kompressoidun arkiston luomista tästä tiedostosta ja lähettää se tiedoston sijaan.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Ole hyvä ja luo tiivistetty arkisto tästä tiedostosta ja kokeile lähettämistä uudelleen.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Tiedostotyyppiä ei tueta";
/* Short text label for a voice message attachment, used for thread preview and on the lock screen */
"ATTACHMENT_TYPE_VOICE_MESSAGE" = "Ääniviesti";
/* Error indicating the backup export could not export the user's data. */
"BACKUP_EXPORT_ERROR_COULD_NOT_EXPORT" = "Varmuuskopiodataa ei pystytty viemään.";
"BACKUP_EXPORT_ERROR_COULD_NOT_EXPORT" = "Varmuuskopiodataa ei pystytty siirtämään.";
/* Error indicating that the app received an invalid response from CloudKit. */
"BACKUP_EXPORT_ERROR_INVALID_CLOUDKIT_RESPONSE" = "Virheellinen vastaus palvelulta";
"BACKUP_EXPORT_ERROR_INVALID_CLOUDKIT_RESPONSE" = "Virheellinen palvelun vastaus";
/* Indicates that the cloud is being cleaned up. */
"BACKUP_EXPORT_PHASE_CLEAN_UP" = "Puhdistetaan varmuuskopiota";
"BACKUP_EXPORT_PHASE_CLEAN_UP" = "Puhdistetaan varmuuskopioita";
/* Indicates that the backup export is being configured. */
"BACKUP_EXPORT_PHASE_CONFIGURATION" = "Alustetaan varmuuskopiota";
/* Indicates that the database data is being exported. */
"BACKUP_EXPORT_PHASE_DATABASE_EXPORT" = "Viedään dataa";
"BACKUP_EXPORT_PHASE_DATABASE_EXPORT" = "Siirretään dataa";
/* Indicates that the backup export data is being exported. */
"BACKUP_EXPORT_PHASE_EXPORT" = "Varmuuskopiota viedään";
"BACKUP_EXPORT_PHASE_EXPORT" = "Siirretään varmuuskopiota";
/* Indicates that the backup export data is being uploaded. */
"BACKUP_EXPORT_PHASE_UPLOAD" = "Ladataan varmuuskopiota";
/* Error indicating the backup import could not import the user's data. */
@ -73,7 +73,7 @@
/* Indicates that the backup import data is being downloaded. */
"BACKUP_IMPORT_PHASE_DOWNLOAD" = "Ladataan varmuuskopiota";
/* Indicates that the backup import data is being finalized. */
"BACKUP_IMPORT_PHASE_FINALIZING" = "Viimeistellään Varmuuskopiota";
"BACKUP_IMPORT_PHASE_FINALIZING" = "Viimeistellään varmuuskopiota";
/* Indicates that the backup import data is being imported. */
"BACKUP_IMPORT_PHASE_IMPORT" = "Tuodaan varmuuskopiota.";
/* Indicates that the backup database is being restored. */
@ -94,8 +94,8 @@
"BLOCK_LIST_BLOCK_BUTTON" = "Estä";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Estä %@?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Poista esto yhteystiedolta %@?";
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Poista henkilön %@ esto?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Poista esto";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
@ -103,7 +103,7 @@
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Käyttäjä estetty";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ esto on poistettu.";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "Henkilön %@ esto on poistettu.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Ryhmän jäsenet voivat nyt lisätä sinut takaisin ryhmään.";
/* An explanation of the consequences of blocking another user. */
@ -123,7 +123,7 @@
/* Error indicating that the app was prevented from accessing the user's iCloud account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Sessionilta estettiin pääsy sinun iCloud-varmuuskopioihin. Myönnä Sessionille lupa iCloud-tilillesi järjestelmäasetuksissa varmuuskopioidaksesi Session-datan.";
/* Alert body */
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "Et voi enää lähettää tai vastaanottaa viestejä tässä ryhmässä.";
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "Et pysty enään lähettämään tai vastaanottamaan viestejä tässä ryhmässä.";
/* Alert title */
"CONFIRM_LEAVE_GROUP_TITLE" = "Haluatko varmasti poistua ryhmästä?";
/* Message for the 'conversation delete confirmation' alert. */
@ -131,43 +131,43 @@
/* Title for the 'conversation delete confirmation' alert. */
"CONVERSATION_DELETE_CONFIRMATION_ALERT_TITLE" = "Poistetaanko keskustelu?";
/* keyboard toolbar label when no messages match the search string */
"CONVERSATION_SEARCH_NO_RESULTS" = "Ei osumia";
"CONVERSATION_SEARCH_NO_RESULTS" = "Ei tuloksia";
/* keyboard toolbar label when exactly 1 message matches the search string */
"CONVERSATION_SEARCH_ONE_RESULT" = "1 osuma";
/* keyboard toolbar label when more than 1 message matches the search string. Embeds {{number/position of the 'currently viewed' result}} and the {{total number of results}} */
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "%d./%d. hakutuloksesta";
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "%d/%d osumasta";
/* title for conversation settings screen */
"CONVERSATION_SETTINGS" = "Keskusteluasetukset";
"CONVERSATION_SETTINGS" = "Keskustelun asetukset";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Estä tämä käyttäjä";
/* Title of the 'mute this thread' action sheet. */
"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Mykistä";
"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Hiljennä";
/* label for 'mute thread' cell in conversation settings */
"CONVERSATION_SETTINGS_MUTE_LABEL" = "Mykistä";
"CONVERSATION_SETTINGS_MUTE_LABEL" = "Hiljennä";
/* Indicates that the current thread is not muted. */
"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Hiljentämätön";
"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Ei hiljennetty";
/* Label for button to mute a thread for a day. */
"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Hiljennä päiväksi";
"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Hiljennä yhdeksi päiväksi";
/* Label for button to mute a thread for a hour. */
"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Hiljennä tunniksi";
"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Hiljennä tunnin ajan";
/* Label for button to mute a thread for a minute. */
"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Hiljennä minuutiksi";
"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Mykistä minuutiksi";
/* Label for button to mute a thread for a week. */
"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Hiljennä viikoksi";
"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Hiljennä yhden viikon ajaksi";
/* Label for button to mute a thread for a year. */
"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Hiljennä vuodeksi";
"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Mykistä vuodeksi";
/* Indicates that this thread is muted until a given date or time. Embeds {{The date or time which the thread is muted until}}. */
"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "%@ asti";
/* Table cell label in conversation settings which returns the user to the conversation with 'search mode' activated */
"CONVERSATION_SETTINGS_SEARCH" = "Hae keskusteluista";
"CONVERSATION_SETTINGS_SEARCH" = "Etsi keskustelusta";
/* Label for button to unmute a thread. */
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Poista hiljennys";
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Poista mykistys";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Siirrä ja muuta kokoa";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Siirrä ja Skaalaa";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "Tämä saattaa viedä hetken.";
/* Title shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_TITLE" = "Optimoidaan tietokantaa";
"DATABASE_VIEW_OVERLAY_TITLE" = "Optimoidaan tietokanta";
/* Format string for a relative time, expressed as a certain number of hours in the past. Embeds {{The number of hours}}. */
"DATE_HOURS_AGO_FORMAT" = "%@ tuntia sitten";
/* Format string for a relative time, expressed as a certain number of minutes in the past. Embeds {{The number of minutes}}. */
@ -183,27 +183,27 @@
/* Info Message when added to a group which has enabled disappearing messages. Embeds {{time amount}} before messages disappear, see the *_TIME_AMOUNT strings for context. */
"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "Viestit tässä keskustelussa katoavat %@ jälkeen.";
/* table cell label in conversation settings */
"EDIT_GROUP_ACTION" = "Muokkaa ryhmää";
"EDIT_GROUP_ACTION" = "Muokkaa Ryhmää";
/* Label indicating media gallery is empty */
"GALLERY_TILES_EMPTY_GALLERY" = "Sinulla ei ole ollenkaan mediaa tässä keskustelussa.";
"GALLERY_TILES_EMPTY_GALLERY" = "Sinulla ei ole yhtään mediaa tässä keskustelussa.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Ladataan uutta mediaa…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Ladataan uudempaa mediaa…";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Ladataan vanhempaa mediaa…";
/* Error displayed when there is a failure fetching a GIF from the remote service. */
"GIF_PICKER_ERROR_FETCH_FAILURE" = "Pyydetyn GIF-animaation hakeminen epäonnistui. Ole hyvä ja varmista yhteys internettiin.";
"GIF_PICKER_ERROR_FETCH_FAILURE" = "Pyydetyn GIF-animaation hakeminen epäonnistui. Ole hyvä ja varmista yhteytesi.";
/* Generic error displayed when picking a GIF */
"GIF_PICKER_ERROR_GENERIC" = "Ilmeni tuntematon virhe.";
"GIF_PICKER_ERROR_GENERIC" = "Tuntematon virhe ilmeni.";
/* Shown when selected GIF couldn't be fetched */
"GIF_PICKER_FAILURE_ALERT_TITLE" = "GIF-animaation valinta epäonnistui";
"GIF_PICKER_FAILURE_ALERT_TITLE" = "GIF-animaatiota ei pystytä valitsemaan";
/* Alert message shown when user tries to search for GIFs without entering any search terms. */
"GIF_PICKER_VIEW_MISSING_QUERY" = "Kirjoita hakutermi.";
/* Indicates that an error occurred while searching. */
"GIF_VIEW_SEARCH_ERROR" = "Virhe. Napauta kokeillaksesi uudelleen.";
"GIF_VIEW_SEARCH_ERROR" = "Virhe. Paina kokeillaksesi uudelleen.";
/* Indicates that the user's search had no results. */
"GIF_VIEW_SEARCH_NO_RESULTS" = "Ei hakutuloksia.";
"GIF_VIEW_SEARCH_NO_RESULTS" = "Ei tuloksia.";
/* No comment provided by engineer. */
"GROUP_CREATED" = "Ryhmä luotu";
"GROUP_CREATED" = "Ryhmä on luotu";
/* No comment provided by engineer. */
"GROUP_MEMBER_JOINED" = " %@ liittyi ryhmään. ";
/* No comment provided by engineer. */
@ -213,7 +213,7 @@
/* No comment provided by engineer. */
"GROUP_MEMBERS_REMOVED" = " %@ poistettiin ryhmästä. ";
/* No comment provided by engineer. */
"GROUP_TITLE_CHANGED" = "Ryhmän nimi on nyt ”%@”. ";
"GROUP_TITLE_CHANGED" = "Ryhmän kuvaus on nyt ”%@”. ";
/* No comment provided by engineer. */
"GROUP_UPDATED" = "Ryhmä päivitetty.";
/* No comment provided by engineer. */
@ -221,7 +221,7 @@
/* No comment provided by engineer. */
"YOU_WERE_REMOVED" = " Sinut poistettiin ryhmästä. ";
/* Momentarily shown to the user when attempting to select more images than is allowed. Embeds {{max number of items}} that can be shared. */
"IMAGE_PICKER_CAN_SELECT_NO_MORE_TOAST_FORMAT" = "Voit jakaa korkeintaan %@ kohdetta.";
"IMAGE_PICKER_CAN_SELECT_NO_MORE_TOAST_FORMAT" = "Et voi jakaa enempää kuin %@ kohdetta.";
/* alert title */
"IMAGE_PICKER_FAILED_TO_PROCESS_ATTACHMENTS" = "Liitteen valinta epäonnistui.";
/* Message for the alert indicating that an audio file is invalid. */
@ -255,7 +255,7 @@
/* status message for failed messages */
"MESSAGE_STATUS_FAILED" = "Lähetys epäonnistui.";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED_SHORT" = "Virhe";
"MESSAGE_STATUS_FAILED_SHORT" = "Epäonnistui";
/* status message for read messages */
"MESSAGE_STATUS_READ" = "Luettu";
/* message status if message delivery to a recipient is skipped. We skip delivering group messages to users who have left the group or unregistered their Session account. */
@ -267,11 +267,11 @@
/* status message while attachment is uploading */
"MESSAGE_STATUS_UPLOADING" = "Ladataan…";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Voit sallia tämän järjestelmäasetuksissa.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Voit sallia tämän iOS-järjestelmän asetuksista.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Tämä Sessionin toiminto tarvitsee käyttöluvan kuviisi.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Session tarvitsee oikeuden käyttääkseen kuviasi.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Et saa ilmoituksia hiljennetyistä keskusteluista.";
"MUTE_BEHAVIOR_EXPLANATION" = "Et saa ilmoituksia mykistetyistä keskusteluista.";
/* notification title. Embeds {{author name}} and {{group name}} */
"NEW_GROUP_MESSAGE_NOTIFICATION_TITLE" = "%@ ryhmässä %@";
/* Label for 1:1 conversation with yourself. */
@ -279,9 +279,9 @@
/* Lock screen notification text presented after user powers on their device without unlocking. Embeds {{device model}} (either 'iPad' or 'iPhone') */
"NOTIFICATION_BODY_PHONE_LOCKED_FORMAT" = "Olet saattanut saada viesteja laitteesi %@ käynnistyessä uudelleen.";
/* No comment provided by engineer. */
"NOTIFICATIONS_FOOTER_WARNING" = "Due to known bugs in Apple's push framework, message previews will only be shown if the message is retrieved within 30 seconds after being sent. The application badge might be inaccurate as a result.";
"NOTIFICATIONS_FOOTER_WARNING" = "Tunnettujen Applen ilmoituskehyksessä olevien vikojen vuoksi, viestien esikatselut näytetään vain, jos viesti pystytään saamaan 30 sekuntin kuluessa sen lähettämisestä. Aplikaation ilmoitusmerkki saattaa tästä syystä olla epätarkka.";
/* Table cell switch label. When disabled, Session will not play notification sounds while the app is in the foreground. */
"NOTIFICATIONS_SECTION_INAPP" = "Soita ilmoitusääni apin olessa avoinna";
"NOTIFICATIONS_SECTION_INAPP" = "Älä hiljennä apin ollessa näytöllä";
/* Label for settings UI that allows user to change the notification sound. */
"NOTIFICATIONS_SECTION_SOUNDS" = "Äänet";
/* No comment provided by engineer. */
@ -293,7 +293,7 @@
/* No comment provided by engineer. */
"NOTIFICATIONS_SHOW" = "Näytä";
/* No comment provided by engineer. */
"BUTTON_OK" = "Ok";
"BUTTON_OK" = "OK";
/* Info Message when {{other user}} disables or doesn't support disappearing messages */
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ poisti katoavat viestit käytöstä.";
/* Info Message when {{other user}} updates message expiration to {{time amount}}, see the *_TIME_AMOUNT strings for context. */
@ -307,17 +307,17 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "Nimetön albumi";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "Merkkaa luetuksi";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "Vastaa";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Emme pysty aktivoimaan käyttäjätiliä ennen kuin vahvistat lähettämämme koodin.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
"SCREEN_LOCK_ACTIVITY_TIMEOUT_NONE" = "Heti";
/* Description of how and why Session iOS uses Touch ID/Face ID/Phone Passcode to unlock 'screen lock'. */
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Authenticate to open Session.";
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Tunnistaudu avataksesi Sessionin.";
/* Title for alert indicating that screen lock could not be unlocked. */
"SCREEN_LOCK_UNLOCK_FAILED" = "Authentication Failed";
"SCREEN_LOCK_UNLOCK_FAILED" = "Tunnistautuminen epäonnistui";
/* alert title when user attempts to leave the send media flow when they have an in-progress album */
"SEND_MEDIA_ABANDON_TITLE" = "Hylkää media?";
/* alert action, confirming the user wants to exit the media flow and abandon any photos they've taken */
@ -335,17 +335,17 @@
/* Label for 'cancel backup' button in the backup settings view. */
"SETTINGS_BACKUP_CANCEL_BACKUP" = "Peruuta varmuuskopio";
/* Label for switch in settings that controls whether or not backup is enabled. */
"SETTINGS_BACKUP_ENABLING_SWITCH" = "Backup Enabled";
"SETTINGS_BACKUP_ENABLING_SWITCH" = "Varmuuskopiointi käytössä";
/* Label for iCloud status row in the in the backup settings view. */
"SETTINGS_BACKUP_ICLOUD_STATUS" = "iCloud Status";
"SETTINGS_BACKUP_ICLOUD_STATUS" = "iCloud status";
/* Indicates that the last backup restore failed. */
"SETTINGS_BACKUP_IMPORT_STATUS_FAILED" = "Backup Restore Failed";
"SETTINGS_BACKUP_IMPORT_STATUS_FAILED" = "Varmuuskopion tuominen epäonnistui";
/* Indicates that app is not restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "Backup Restore Idle";
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "Varmuuskopion tuominen on tyhjäkäynnillä";
/* Indicates that app is restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IN_PROGRESS" = "Backup Restore In Progress";
"SETTINGS_BACKUP_IMPORT_STATUS_IN_PROGRESS" = "Varmuuskopiosta tuominen käynnissä";
/* Indicates that the last backup restore succeeded. */
"SETTINGS_BACKUP_IMPORT_STATUS_SUCCEEDED" = "Backup Restore Succeeded";
"SETTINGS_BACKUP_IMPORT_STATUS_SUCCEEDED" = "Varmuuskopiosta tuominen onnistui";
/* Label for phase row in the in the backup settings view. */
"SETTINGS_BACKUP_PHASE" = "Vaihe";
/* Label for phase row in the in the backup settings view. */
@ -359,39 +359,45 @@
/* Indicates that app is backing up. */
"SETTINGS_BACKUP_STATUS_IN_PROGRESS" = "Varmuuskopioidaan";
/* Indicates that the last backup succeeded. */
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Varmuuskopiointi onnistui";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Clear Conversation History";
"SETTINGS_CLEAR_HISTORY" = "Tyhjennä keskusteluhistoria";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Delete Everything";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Poista kaikki";
/* Section header */
"SETTINGS_HISTORYLOG_TITLE" = "Clear Conversation History";
"SETTINGS_HISTORYLOG_TITLE" = "Tyhjennä keskusteluhistoria";
/* Label for settings view that allows user to change the notification sound. */
"SETTINGS_ITEM_NOTIFICATION_SOUND" = "Message Sound";
"SETTINGS_ITEM_NOTIFICATION_SOUND" = "Viestien ilmoitusääni";
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Send Link Previews";
"SETTINGS_LINK_PREVIEWS" = "Lähetä linkeistä esikatselu";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Previews are supported for most urls.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Useimpien URL-osoitteiden esikatselut ovat tuettuja.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Link Previews";
"SETTINGS_LINK_PREVIEWS_HEADER" = "Linkkien esikatselu";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Ääni- ja videopuhelut";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Salli pääsy hyväksyäksesi muilta käyttäjiltä saapuvat ääni- ja videopuhelut.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Puhelut";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Notification Content";
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Ilmoituksen sisältö";
/* Label for the 'read receipts' setting. */
"SETTINGS_READ_RECEIPT" = "Read Receipts";
"SETTINGS_READ_RECEIPT" = "Lukukuittaukset";
/* An explanation of the 'read receipts' setting. */
"SETTINGS_READ_RECEIPTS_SECTION_FOOTER" = "See and share when messages have been read. This setting is optional and applies to all conversations.";
"SETTINGS_READ_RECEIPTS_SECTION_FOOTER" = "Nää ja jaa lukukuittaukset. Tämä asetus on vapaaehtoinen ja koskee kaikkia keskusteluja.";
/* Label for the 'screen lock activity timeout' setting of the privacy settings. */
"SETTINGS_SCREEN_LOCK_ACTIVITY_TIMEOUT" = "Screen Lock Timeout";
"SETTINGS_SCREEN_LOCK_ACTIVITY_TIMEOUT" = "Näytön lukitus";
/* Title for the 'screen lock' section of the privacy settings. */
"SETTINGS_SCREEN_LOCK_SECTION_TITLE" = "Screen Lock";
"SETTINGS_SCREEN_LOCK_SECTION_TITLE" = "Näytön lukitus";
/* Label for the 'enable screen lock' switch of the privacy settings. */
"SETTINGS_SCREEN_LOCK_SWITCH_LABEL" = "Screen Lock";
"SETTINGS_SCREEN_LOCK_SWITCH_LABEL" = "Näytön lukitus";
/* Header Label for the sounds section of settings views. */
"SETTINGS_SECTION_SOUNDS" = "Äänet";
/* Section header */
"SETTINGS_SECURITY_TITLE" = "Screen Security";
"SETTINGS_SECURITY_TITLE" = "Näytön suojaus";
/* Label for the 'typing indicators' setting. */
"SETTINGS_TYPING_INDICATORS" = "Typing Indicators";
"SETTINGS_TYPING_INDICATORS" = "Ilmaise aktiivinen kirjoitus";
/* Label for the 'no sound' option that allows users to disable sounds for notifications, etc. */
"SOUNDS_NONE" = "Ei ääntä";
/* {{number of days}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 days}}'. See other *_TIME_AMOUNT strings */
@ -447,103 +453,103 @@
"your_session_id" = "Sinun Session ID";
"vc_landing_title_2" = "Sinun sessio alkaa tästä...";
"vc_landing_register_button_title" = "Luo Session ID";
"vc_landing_restore_button_title" = "Jatka istuntoasi";
"vc_landing_link_button_title" = "Linkkaa laite";
"vc_landing_restore_button_title" = "Jatka Sessionin käyttöä";
"vc_landing_link_button_title" = "Yhdistä laite";
"view_fake_chat_bubble_1" = "Mikä on Session?";
"view_fake_chat_bubble_2" = "Se on hajautettu sekä salattu viestipalvelu";
"view_fake_chat_bubble_3" = "Joten se ei kerää henkilökohtaisia tietoja tai keskustelujeni metadataa? Miten se sitten toimii?";
"view_fake_chat_bubble_3" = "Joten se ei kerää henkilökohtaisia tietojani tai keskustelujeni metadataa? Miten se sitten toimii?";
"view_fake_chat_bubble_4" = "Yhdistämällä edistynyttä reititys- ja salausteknologiaa päästä päätyyn.";
"view_fake_chat_bubble_5" = "Kaverit eivät jätä kavereita käyttämään vaarantuneita viestipalveluita. Ole hyvä.";
"view_fake_chat_bubble_5" = "Kaverit eivät anna kavereiden käyttää vaarantuneita viestipalveluita. Oleppa hyvä.";
"vc_register_title" = "Sano terve sinun Session ID:lle";
"vc_register_explanation" = "Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.";
"vc_register_explanation" = "Session ID on sinun ainutlaatuinen osoite, jolla ihmiset voivat ottaa sinuun yhteyttä; ilman yhteyttä oikeaan identiteettiisi. Session ID on luonteeltaan täysin anonyymi ja yksityinen.";
"vc_restore_title" = "Palauta käyttäjätilisi";
"vc_restore_explanation" = "Enter the recovery phrase that was given to you when you signed up to restore your account.";
"vc_restore_seed_text_field_hint" = "Anna palautusvirkkeesi";
"vc_restore_explanation" = "Palauttaaksesi tilisi, syötä palautusvirke, joka annettiin sinulle kun loit tämän tilin.";
"vc_restore_seed_text_field_hint" = "Syötä palautusvirkkeesi";
"vc_link_device_title" = "Yhdistä laite";
"vc_link_device_scan_qr_code_tab_title" = "Skannaa QR-koodi";
"vc_display_name_title_2" = "Valitse julkinen nimi";
"vc_display_name_explanation" = "Tämä on nimesi kun käytät Sessionia. Se voi olla oikea nimesi, alias tai mikä tahansa mistä tykkäät.";
"vc_display_name_text_field_hint" = "Anna julkinen nimi";
"vc_display_name_explanation" = "Tämä on nimesi kun käytät Sessionia. Se voi olla oikea nimesi, alias tai halutessasi jotain ihan muuta.";
"vc_display_name_text_field_hint" = "Syötä julkinen nimi";
"vc_display_name_display_name_missing_error" = "Ole hyvä ja valitse julkinen nimi";
"vc_display_name_display_name_too_long_error" = "Ole hyvä ja valitse lyhyempi julkinen nimi";
"vc_pn_mode_recommended_option_tag" = "Suositellut";
"vc_pn_mode_recommended_option_tag" = "Suositeltu";
"vc_pn_mode_no_option_picked_modal_title" = "Ole hyvä ja valitse vaihtoehto";
"vc_home_empty_state_message" = "Sinulla ei ole yhtään kontaktia vielä";
"vc_home_empty_state_message" = "Sinulla ei ole vielä yhtään keskustelua";
"vc_home_empty_state_button_title" = "Aloita keskustelu";
"vc_seed_title" = "Palautusvirkkeesi";
"vc_seed_title_2" = "Tapaa palautusvirkkeesi";
"vc_seed_explanation" = "Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and dont give it to anyone.";
"vc_seed_reveal_button_title" = "Hold to reveal";
"view_seed_reminder_subtitle_1" = "Secure your account by saving your recovery phrase";
"view_seed_reminder_subtitle_2" = "Tap and hold the redacted words to reveal your recovery phrase, then store it safely to secure your Session ID.";
"view_seed_reminder_subtitle_3" = "Make sure to store your recovery phrase in a safe place";
"vc_path_title" = "Path";
"vc_seed_explanation" = "Palautusvirkkeesi on sinun Session ID:n pääavain — voit palauttaa sillä Session ID:n, jos menetät pääsyn laitteeseesi. Sijoita palautusvirkkeesi turvalliseen paikkaan äläkä anna sitä kellekkään.";
"vc_seed_reveal_button_title" = "Pidä pohjassa paljastaaksesi";
"view_seed_reminder_subtitle_1" = "Turvaa tilisi ottamalla palautusvirkkeesi ylös";
"view_seed_reminder_subtitle_2" = "Paina ja pidä painettuna piilotettuja sanoja paljastaaksesi palautusvirkkeesi. Ota ne ylös ja sijoita turvalliseen paikkaan turvataksesi Session ID:si.";
"view_seed_reminder_subtitle_3" = "Varmista, että säilytät palautusvirkkeesi turvallisessa paikassa";
"vc_path_title" = "Polku";
"vc_path_explanation" = "Session piilottaa IP-osoitteesi ohjaamalla viestisi monen välittäjäreleen läpi Sessionin hajautetussa verkossa. Tässä ovat maat joiden kautta viestisi tällä hetkellä kulkevat:";
"vc_path_device_row_title" = "Sinä";
"vc_path_guard_node_row_title" = "Tulorele";
"vc_path_guard_node_row_title" = "Tulosolmu";
"vc_path_service_node_row_title" = "Välittäjärele";
"vc_path_destination_row_title" = "Kohde";
"vc_path_destination_row_title" = "Määränpää";
"vc_path_learn_more_button_title" = "Opi lisää";
"vc_create_private_chat_title" = "Uusi istunto";
"vc_create_private_chat_title" = "Uusi keskustelu";
"vc_create_private_chat_enter_session_id_tab_title" = "Syötä Session ID";
"vc_create_private_chat_scan_qr_code_tab_title" = "Skannaa QR-koodi";
"vc_create_private_chat_scan_qr_code_explanation" = "Scan a users QR code to start a session. QR codes can be found by tapping the QR code icon in account settings.";
"vc_enter_public_key_explanation" = "Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.";
"vc_create_private_chat_scan_qr_code_explanation" = "Skannaa käyttäjän QR-koodi aloittaaksesi keskustelu. QR-koodin voit löytää napauttamalla QR-koodi kuvaketta tilin asetuksissa.";
"vc_enter_public_key_explanation" = "Käyttäjät voivat jakaa heidän Session ID:n menemällä tilin asetuksiin ja painamalla \"Jaa\" tai jakamalla heidän QR-koodin.";
"vc_scan_qr_code_camera_access_explanation" = "Session tarvitsee kameraa skannatakseen QR-koodeja";
"vc_scan_qr_code_grant_camera_access_button_title" = "Anna kameran käyttölupa";
"vc_create_closed_group_title" = "Uusi suljettu ryhmä";
"vc_create_closed_group_title" = "Uusi yksityinen ryhmä";
"vc_create_closed_group_text_field_hint" = "Anna ryhmälle nimi";
"vc_create_closed_group_empty_state_message" = "Sinulla ei ole vielä yhtään kontaktia";
"vc_create_closed_group_empty_state_message" = "Sinulla ei ole vielä yhtään keskustelua";
"vc_create_closed_group_empty_state_button_title" = "Aloita keskustelu";
"vc_create_closed_group_group_name_missing_error" = "Anna ryhmälle nimi";
"vc_create_closed_group_group_name_too_long_error" = "Anna ryhmälle lyhyempi nimi";
"vc_create_closed_group_too_many_group_members_error" = "Suljetussa ryhmässä voi olla enintään 100 jäsentä";
"vc_join_public_chat_title" = "Liity avoimeen ryhmään";
"vc_join_public_chat_enter_group_url_tab_title" = "Open Group URL";
"vc_create_closed_group_too_many_group_members_error" = "Yksityisessä ryhmässä voi olla enintään 100 jäsentä";
"vc_join_public_chat_title" = "Liity julkiseen ryhmään";
"vc_join_public_chat_enter_group_url_tab_title" = "Julkisen ryhmän URL";
"vc_join_public_chat_scan_qr_code_tab_title" = "Skannaa QR-koodi";
"vc_join_public_chat_scan_qr_code_explanation" = "Skannaa sen avoimen ryhmän QR-koodi, johon haluaisit liittyä";
"vc_enter_chat_url_text_field_hint" = "Enter an open group URL";
"vc_join_public_chat_scan_qr_code_explanation" = "Skannaa sen julkisen ryhmän QR-koodi, johon haluaisit liittyä";
"vc_enter_chat_url_text_field_hint" = "Syötä julkisen ryhmän URL";
"vc_settings_title" = "Asetukset";
"vc_settings_display_name_text_field_hint" = "Enter a display name";
"vc_settings_display_name_missing_error" = "Please pick a display name";
"vc_settings_display_name_too_long_error" = "Please pick a shorter display name";
"vc_settings_display_name_text_field_hint" = "Anna julkinen nimi";
"vc_settings_display_name_missing_error" = "Ole hyvä ja valitse julkinen nimi";
"vc_settings_display_name_too_long_error" = "Ole hyvä ja valitse lyhyempi julkinen nimi";
"vc_settings_privacy_button_title" = "Yksityisyys";
"vc_settings_notifications_button_title" = "Ilmoitukset";
"vc_settings_recovery_phrase_button_title" = "Palautusvirke";
"vc_settings_clear_all_data_button_title" = "Tyhjennä data";
"vc_settings_clear_all_data_button_title" = "Tyhjennä kaikki data";
"vc_notification_settings_title" = "Ilmoitukset";
"vc_privacy_settings_title" = "Yksityisyys";
"preferences_notifications_strategy_category_title" = "Ilmoitustyyli";
"modal_seed_title" = "Palatusvirkkeesi";
"modal_seed_explanation" = "Tämä on palautusvirkkeesi. Sillä voit palauttaa tai siirtää Session ID:si uuteen laitteeseen.";
"modal_clear_all_data_title" = "Tyhjennä kaikki data";
"modal_clear_all_data_explanation" = "Tämä poistaa kaikki viestisi, istuntosi sekä kontaktisi lopullisesti.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation" = "Tämä poistaa kaikki viestisi sekä yhteydet lopullisesti.";
"modal_clear_all_data_explanation_2" = "Haluatko tyhjentää datan vain tästä laitteesta vai poistaa koko tilin?";
"dialog_clear_all_data_deletion_failed_1" = "Dataa ei poistettu yhdestä palvelusolmusta. Palvelusolmun tunnus: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Dataa ei poistettu %@ palvelusolmusta. Palvelusolmujen tunnukset: %@.";
"modal_clear_all_data_device_only_button_title" = "Vain tämä laite";
"modal_clear_all_data_entire_account_button_title" = "Koko tili";
"vc_qr_code_title" = "QR-koodi";
"vc_qr_code_view_my_qr_code_tab_title" = "Näytä QR-koodini";
"vc_qr_code_view_scan_qr_code_tab_title" = "Skannaa QR-koodi";
"vc_qr_code_view_scan_qr_code_explanation" = "Skannaa jonkun QR-koodi aloittaaksesi keskustelu heidän kanssaan";
"vc_view_my_qr_code_explanation" = "Tämä on QR-koodisi. Toiset käyttäjät voivat skannata sen aloittaakseen keskustelun kanssasi.";
"vc_view_my_qr_code_explanation" = "Tämä on QR-koodisi. Muut käyttäjät voivat skannata sen aloittaakseen keskustelun kanssasi.";
// MARK: - Not Yet Translated
"fast_mode_explanation" = "Sinulle ilmoitetaan uusista viesteistä luotettavasti ja viivyittelemättä Applen ilmoituspalveluja käyttäen.";
"fast_mode" = "Pikatila";
"fast_mode_explanation" = "Sinulle ilmoitetaan uusista viesteistä luotettavasti ja viivyttelemättä Applen ilmoituspalvelua käyttäen.";
"fast_mode" = "Nopeasti";
"slow_mode_explanation" = "Session tarkistaa taustalla ajoittain uudet viestit.";
"slow_mode" = "Hidas tila";
"slow_mode" = "Hitaasti";
"vc_pn_mode_title" = "Viesti-ilmoitukset";
"vc_notification_settings_notification_mode_title" = "Käytä pikatilaa";
"vc_notification_settings_notification_mode_title" = "Toimita nopeasti";
"vc_link_device_recovery_phrase_tab_title" = "Palautusvirke";
"vc_link_device_scan_qr_code_explanation" = "Siirry asetuksiin ja sitten kohtaan palautusvirke toisella laitteellasi näyttääksesi QR-koodisi.";
"vc_link_device_scan_qr_code_explanation" = "Siirry asetuksiin palautusvirke toisella laitteellasi näyttääksesi QR-koodisi.";
"vc_enter_recovery_phrase_title" = "Palautusvirke";
"vc_enter_recovery_phrase_explanation" = "Yhdistääksesi laitteesi, anna palautusvirke, jonka sait rekisteröitymisen yhteydessä.";
"vc_enter_public_key_text_field_hint" = "Anna Session ID tai ONS-nimi";
"vc_enter_public_key_text_field_hint" = "Syötä Session ID tai ONS-nimi";
"vc_home_title" = "Viestit";
"admin_group_leave_warning" = "Koska teit tämän ryhmän, poistetaan se kaikilta. Tätä ei voi peruuttaa.";
"admin_group_leave_warning" = "Koska loit tämän ryhmän, se poistetaan kaikilta. Tätä ei voi peruuttaa.";
"vc_join_open_group_suggestions_title" = "Tai liity yhteen näistä...";
"vc_settings_invite_a_friend_button_title" = "Kutsu ystävä";
"vc_settings_invite_a_friend_button_title" = "Kutsu ystäviä";
"vc_settings_help_us_translate_button_title" = "Auta meitä kääntämään Session";
"copied" = "Kopioitu";
"vc_conversation_settings_copy_session_id_button_title" = "Kopioi Session ID";
@ -555,72 +561,92 @@
"modal_open_url_title" = "Avataanko URL?";
"modal_open_url_explanation" = "Oletko varma, että haluat avata linkin %@?";
"modal_open_url_button_title" = "Avaa";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Poista esto henkilöltä %@?";
"modal_copy_url_button_title" = "Kopioi Linkki";
"modal_blocked_title" = "Poistetaanko esto henkilöltä %@?";
"modal_blocked_explanation" = "Oletko varma, että haluat poistaa eston henkilöltä %@?";
"modal_blocked_button_title" = "Poista esto";
"modal_link_previews_title" = "Ota linkkien esikatselu käyttöön?";
"modal_link_previews_explanation" = "Enabling link previews will show previews for URLs you send and receive. This can be useful, but Session will need to contact linked websites to generate previews. You can always disable link previews in Session's settings.";
"modal_link_previews_title" = "Luodaanko linkeistä esikatselut?";
"modal_link_previews_explanation" = "Linkkien esikatselu näyttää esikatselun saamiesi ja lähettämiesi linkkien sisällöstä. Tämä voi olla hyödyllistä, mutta Sessionin pitää vierailla linkatulla nettisivulla luodakseen esikatselun. Voit aina ottaa tämän toiminnon pois päältä Sessionin asetuksissa.";
"modal_link_previews_button_title" = "Ota käyttöön";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Ääni-/videopuhelut";
"modal_call_explanation" = "Nykyinen ääni-/videopuheluiden toteutus paljastaa IP-osoitteesi Oxen-säätiön palvelimille sekä soittavalle/soitettavalle käyttäjälle.";
"modal_share_logs_title" = "Jaa lokitietoja";
"modal_share_logs_explanation" = "Haluatko siirtää sovelluksen lokitiedot että ne ovat jaettavissa vianmääritystä varten?";
"vc_share_title" = "Jaa Sessioniin";
"vc_share_loading_message" = "Valmistellaan liitteitä...";
"vc_share_sending_message" = "Lähetetään...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_unsecure" = "Esikatselua ei ladattu epäturvalliselle linkille";
"vc_share_link_previews_error" = "Esikatselun lataaminen epäonnistui";
"vc_share_link_previews_disabled_title" = "Linkin esikatselut otettu pois käytöstä";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "Avaa ryhmäkutsu";
"vc_conversation_settings_invite_button_title" = "Lisää jäseniä";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_faq_button_title" = "UKK";
"vc_settings_survey_button_title" = "Palaute / Kysely";
"vc_settings_support_button_title" = "Virheenkorjausloki";
"modal_send_seed_title" = "Varoitus";
"modal_send_seed_explanation" = "Tämä on palautuslauseesi. Jos lähetät sen jollekulle, heillä on täysin vapaa pääsy tililesi.";
"modal_send_seed_send_button_title" = "Lähetä";
"vc_conversation_settings_notify_for_mentions_only_title" = "Huomioi vain mainitut";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Vain viestit joissa sinut mainitaan, huomioidaan.";
"view_conversation_title_notify_for_mentions_only" = "Vain huomioidut ilmoitukset";
"message_deleted" = "Tämä viesti on poistettu";
"delete_message_for_me" = "Poista vain minun nähtäväksi";
"delete_message_for_everyone" = "Poista kaikkien näkyviltä";
"delete_message_for_me_and_recipient" = "Poista minulta ja vastaanottajalta";
"context_menu_reply" = "Vastaa";
"context_menu_save" = "Tallenna";
"context_menu_ban_user" = "Estä Käyttäjä";
"context_menu_ban_and_delete_all" = "Estä ja Poista kaikki";
"accessibility_expanding_attachments_button" = "Lisää liitteitä";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "Asiakirja";
"accessibility_library_button" = "Kuvakirjasto";
"accessibility_camera_button" = "Kamera";
"accessibility_main_button_collapse" = "Tiivistä liiteasetukset";
"invalid_recovery_phrase" = "Virheellinen Palautuslauseke";
"invalid_recovery_phrase" = "Virheellinen palautuslauseke";
"DISMISS_BUTTON_TEXT" = "Hylkää";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Closed Group";
"OPEN_SETTINGS_BUTTON" = "Asetukset";
"call_outgoing" = "Soitit käyttäjälle %@";
"call_incoming" = "%@ soitti sinulle";
"call_missed" = "Vastaamaton puhelu käyttäjältä %@";
"call_rejected" = "Hylätty puhelu";
"call_cancelled" = "Peruttu puhelu";
"call_timeout" = "Vastaamaton puhelu";
"voice_call" = "Äänipuhelu";
"video_call" = "Videopuhelu";
"APN_Message" = "Sinulla on uusi viesti";
"APN_Collapsed_Messages" = "Sinulla on %@ uutta viestiä.";
"system_mode_theme" = "Järjestelmä";
"dark_mode_theme" = "Tumma";
"light_mode_theme" = "Vaalea";
"PIN_BUTTON_TEXT" = "Kiinnitä";
"UNPIN_BUTTON_TEXT" = "Irrota";
"modal_call_missed_tips_title" = "Vastaamaton puhelu";
"modal_call_missed_tips_explanation" = "Vastaamaton puhelu käyttäjältä '%@', koska pahelut edellyttävät 'Ääni- ja videopuhelut' -käyttöoikeuden yksityisyysasetuksista.";
"meida_saved" = "%@ tallensi median.";
"screenshot_taken" = "%@ otti kuvankaappauksen.";
"SEARCH_SECTION_CONTACTS" = "Henkilöt ja ryhmät";
"SEARCH_SECTION_MESSAGES" = "Viestit";
"SEARCH_SECTION_RECENT" = "Viimeisimmät";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "viimeisin viesti: %@";
"MESSAGE_REQUESTS_TITLE" = "Viestipyynnöt";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "Ei odottavia viestipyyntöjä";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Poista kaikki";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Oletko varma että haluat poistaa kaikki viestipyynnöt?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Poista";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Oletko varma että haluat poistaa tämän viestipyynnön?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "Viestipyyntöä hyväksyttäessä ilmeni virhe";
"MESSAGE_REQUESTS_INFO" = "Viestin lähettäminen tälle henkilölle hyväksyy automaattisesti viestipyynnön.";
"MESSAGE_REQUESTS_ACCEPTED" = "Viestipyyntösi hyväksyttiin.";
"MESSAGE_REQUESTS_NOTIFICATION" = "Sinulla on uusi viestipyyntö";
"TXT_HIDE_TITLE" = "Piilota";
"TXT_DELETE_ACCEPT" = "Hyväksy";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Avoin ryhmä";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Yksityisviesti";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Suljettu ryhmä";
"modal_call_permission_request_title" = "Call Permissions Required";
"modal_call_permission_request_explanation" = "You can enable the 'Voice and video calls' permission in the Privacy Settings.";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";

View File

@ -27,23 +27,23 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Erreur denvoi du fichier joint";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Impossible de convertir limage.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Impossible de convertir l'image.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Impossible de traiter la vidéo.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Impossible de convertir la vidéo.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Impossible danalyser limage.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Impossible d'importer l'image.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Impossible de supprimer les métadonnées de limage.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Impossible de supprimer les métadonnées de l'image.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Impossible de redimensionner limage.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Le fichier joint est trop volumineux.";
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "La pièce jointe est trop lourde.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Le fichier joint comporte du contenu non valide.";
"ATTACHMENT_ERROR_INVALID_DATA" = "La pièce jointe contient du contenu non valide.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Le fichier joint présente un format de fichier invalide.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Le format de la pièce jointe est invalide.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Le fichier joint est vide.";
"ATTACHMENT_ERROR_MISSING_DATA" = "La pièce jointe est vide.";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Échec de sélection du document.";
/* Alert body when picking a document fails because user picked a directory/bundle */
@ -94,7 +94,7 @@
"BLOCK_LIST_BLOCK_BUTTON" = "Bloquer";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Bloquer %@?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Débloquer %@?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Débloquer";
@ -105,7 +105,7 @@
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ a été débloqué.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Les membres actuels peuvent désormais vous ajouter au groupe de nouveau.";
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Les membres actuels peuvent désormais vous ajouter au groupe à nouveau.";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Les utilisateurs bloqués ne pourront ni vous appeler ni vous envoyer des messages.";
/* Label for generic done button. */
@ -307,9 +307,9 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "Album sans nom";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "Marquer comme lu";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "Répondre";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Nous ne pouvons pas activer votre compte tant que vous naurez pas vérifié le code que nous vous avons envoyé.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Envoyer des aperçus de liens.";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Les aperçus sont pris en charge pour les liens Imgur, Instagram, Pinterest, Reddit et YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Les aperçus sont pris en charge pour la plupart des URLs.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Aperçus de liens";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Appels audio et vidéo";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Autoriser les appels audios et vidéos venant des autres utilisateurs.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Appels";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Contenu des notifications";
/* Label for the 'read receipts' setting. */
@ -518,14 +524,14 @@
"modal_seed_explanation" = "Ceci est votre phrase de récupération. Elle vous permet de restaurer ou migrer votre Session ID vers un nouvel appareil.";
"modal_clear_all_data_title" = "Effacer toutes les données";
"modal_clear_all_data_explanation" = "Cela supprimera définitivement vos messages, vos sessions et vos contacts.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "Souhaitez-vous effacer seulement cet appareil ou supprimer lensemble de votre compte ?";
"dialog_clear_all_data_deletion_failed_1" = "Les données nont pas été supprimées sur un nœud de service. ID du nœud de service : %@.";
"dialog_clear_all_data_deletion_failed_2" = "Les données nont pas été supprimées sur %@ nœuds de service. ID des nœuds de service : %@.";
"modal_clear_all_data_device_only_button_title" = "Lappareil uniquement";
"modal_clear_all_data_entire_account_button_title" = "Lensemble du compte";
"vc_qr_code_title" = "Code QR";
"vc_qr_code_view_my_qr_code_tab_title" = "Afficher mon code QR";
"vc_qr_code_view_scan_qr_code_tab_title" = "Scanner le code QR";
"vc_qr_code_view_scan_qr_code_tab_title" = "Scanner le QR Code";
"vc_qr_code_view_scan_qr_code_explanation" = "Scannez le code QR d'un autre utilisateur pour démarrer une session";
"vc_view_my_qr_code_explanation" = "Ceci est votre code QR. Les autres utilisateurs peuvent le scanner pour démarrer une session avec vous.";
// MARK: - Not Yet Translated
@ -555,73 +561,93 @@
"modal_open_url_title" = "Ouvrir l'URL?";
"modal_open_url_explanation" = "Êtes-vous sûr de vouloir ouvrir %@?";
"modal_open_url_button_title" = "Ouvrir";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Copier le lien";
"modal_blocked_title" = "Débloquer %@?";
"modal_blocked_explanation" = "Confirmez-vous le déblocage de %@ ?";
"modal_blocked_button_title" = "Débloquer";
"modal_link_previews_title" = "Activer les aperçus de lien?";
"modal_link_previews_explanation" = "L'activation des aperçus de lien affichera des aperçus pour les URL que vous envoyez et recevez. Cela peut être utile, mais Session devra contacter les sites Web liés pour générer des aperçus. Vous pouvez toujours désactiver les aperçus de lien dans les paramètres de Session.";
"modal_link_previews_button_title" = "Activer";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Appels audio et vidéo";
"modal_call_explanation" = "La mise en œuvre actuelle des appels vocaux/vidéo exposera votre adresse IP aux serveurs de la Fondation Oxen et aux utilisateurs appelés.";
"modal_share_logs_title" = "Partager les logs";
"modal_share_logs_explanation" = "Voulez-vous exporter les logs de votre application pour pouvoir les partager pour du débogage ?";
"vc_share_title" = "Partager en Session";
"vc_share_loading_message" = "Préparation des pièces jointes ...";
"vc_share_sending_message" = "Envoi...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"vc_share_link_previews_unsecure" = "Aperçu non chargé pour les liens non sécurisés";
"vc_share_link_previews_error" = "Impossible de charger l'aperçu";
"vc_share_link_previews_disabled_title" = "Aperçu des Liens Désactivé";
"vc_share_link_previews_disabled_explanation" = "L'activation des aperçus de lien affichera des aperçus pour les URL que vous partagez. Cela peut être utile, mais Session devra contacter les sites Web liés pour générer des aperçus.\n\nVous pouvez toujours activer les aperçus de lien dans les paramètres de Session.";
"view_open_group_invitation_description" = "Invitation à un groupe ouvert";
"vc_conversation_settings_invite_button_title" = "Ajouter des membres";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_survey_button_title" = "Retours / Sondage";
"vc_settings_support_button_title" = "Logs de Débug";
"modal_send_seed_title" = "Attention";
"modal_send_seed_explanation" = "Voici votre phrase de récupération. Si vous l'envoyez à quelqu'un, cette personne aura un accès complet à votre compte.";
"modal_send_seed_send_button_title" = "Envoyer";
"vc_conversation_settings_notify_for_mentions_only_title" = "Activer les notifications que sur mention";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Quand activer, vous recevrez les notifications duniquement les messages vous notifiant.";
"view_conversation_title_notify_for_mentions_only" = "Me notifier que si je suis mentionné(e)";
"message_deleted" = "Ce message a été supprimé";
"delete_message_for_me" = "Supprimer pour moi uniquement";
"delete_message_for_everyone" = "Supprimer pour tout le monde";
"delete_message_for_me_and_recipient" = "Supprimer pour moi et %@";
"context_menu_reply" = "Répondre";
"context_menu_save" = "Enregistrer";
"context_menu_ban_user" = "Bannir l'utilisateur";
"context_menu_ban_and_delete_all" = "Bannir et supprimer tout";
"accessibility_expanding_attachments_button" = "Ajouter une pièce jointe";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_library_button" = "Bibliothèque photos";
"accessibility_camera_button" = "Caméra";
"accessibility_main_button_collapse" = "Réduire les options de pièces jointes";
"invalid_recovery_phrase" = "Phrase de récupération incorrecte";
"invalid_recovery_phrase" = "Phrase de récupération incorrecte";
"DISMISS_BUTTON_TEXT" = "Fermer";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Closed Group";
"modal_call_permission_request_title" = "Call Permissions Required";
"modal_call_permission_request_explanation" = "You can enable the 'Voice and video calls' permission in the Privacy Settings.";
"OPEN_SETTINGS_BUTTON" = "Paramètres";
"call_outgoing" = "Vous avez appelé %@";
"call_incoming" = "%@ vous a appelé";
"call_missed" = "Appel manqué de %@";
"call_rejected" = "Appel refusé";
"call_cancelled" = "Appel annulé";
"call_timeout" = "Appels sans réponse";
"voice_call" = "Appel vocal";
"video_call" = "Appel vidéo";
"APN_Message" = "Vous avez un nouveau message.";
"APN_Collapsed_Messages" = "Vous avez %@ nouveaux messages.";
"system_mode_theme" = "Système";
"dark_mode_theme" = "Sombre";
"light_mode_theme" = "Clair";
"PIN_BUTTON_TEXT" = "Épingler";
"UNPIN_BUTTON_TEXT" = "Désépingler";
"modal_call_missed_tips_title" = "Appel manqué";
"modal_call_missed_tips_explanation" = "Appel manqué de '%@' car vous devez activer la permission 'Appels vocaux et vidéo' dans les paramètres de confidentialité.";
"meida_saved" = "%@ a enregistré le média.";
"screenshot_taken" = "%@ a pris une capture d'écran.";
"SEARCH_SECTION_CONTACTS" = "Contacts et Groupes";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Récent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "dernier message : %@";
"MESSAGE_REQUESTS_TITLE" = "Demandes de message";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "Aucune demande de message en attente";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Effacer tous";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Êtes-vous sûr de vouloir supprimer toutes les demandes de messages ?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Effacer";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Êtes-vous sûr de vouloir supprimer cette demande de message ?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "Une erreur s'est produite en acceptant cette demande de message";
"MESSAGE_REQUESTS_INFO" = "Envoyer un message à cet utilisateur acceptera automatiquement sa demande de message.";
"MESSAGE_REQUESTS_ACCEPTED" = "Votre demande de message a été réceptionnée.";
"MESSAGE_REQUESTS_NOTIFICATION" = "Vous avez une nouvelle demande de message";
"TXT_HIDE_TITLE" = "Masquer";
"TXT_DELETE_ACCEPT" = "Accepter";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Groupe public";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Message privé";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Groupe privé";
"modal_call_permission_request_title" = "Autorisations d'appel requises";
"modal_call_permission_request_explanation" = "Vous pouvez activer la permission \"Appels vocaux et vidéo\" dans les paramètres de confidentialité.";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";

View File

@ -123,9 +123,9 @@
/* Error indicating that the app was prevented from accessing the user's iCloud account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Session को बैकअप के लिए आपके iCloud खाते तक पहुंच से वंचित कर दिया गया था। अपने Session डेटा का बैकअप लेने के लिए iOS सेटिंग ऐप में अपने iCloud खाते में Session की पहुंच प्रदान करें।";
/* Alert body */
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "You will no longer be able to send or receive messages in this group.";
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "अब आप इस समूह में संदेश भेजने या प्राप्त करने में सक्षम नहीं होंगे।";
/* Alert title */
"CONFIRM_LEAVE_GROUP_TITLE" = "Do you really want to leave?";
"CONFIRM_LEAVE_GROUP_TITLE" = "क्या आप वाकई छोड़ना चाहते हैं?";
/* Message for the 'conversation delete confirmation' alert. */
"CONVERSATION_DELETE_CONFIRMATION_ALERT_MESSAGE" = "This cannot be undone.";
/* Title for the 'conversation delete confirmation' alert. */
@ -141,45 +141,45 @@
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Title of the 'mute this thread' action sheet. */
"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Mute";
"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "म्यूट";
/* label for 'mute thread' cell in conversation settings */
"CONVERSATION_SETTINGS_MUTE_LABEL" = "Mute";
"CONVERSATION_SETTINGS_MUTE_LABEL" = "म्यूट";
/* Indicates that the current thread is not muted. */
"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Not muted";
"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "म्यूट नहीं";
/* Label for button to mute a thread for a day. */
"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Mute for one day";
"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "एक दिन के लिए म्यूट करें";
/* Label for button to mute a thread for a hour. */
"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Mute for one hour";
"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "एक घंटे के लिए म्यूट करें";
/* Label for button to mute a thread for a minute. */
"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Mute for one minute";
"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "एक मिनट के लिए म्यूट करें";
/* Label for button to mute a thread for a week. */
"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Mute for one week";
"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "एक हफ़्ते के लिए म्यूट करें";
/* Label for button to mute a thread for a year. */
"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Mute for one year";
"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "एक साल के लिए म्यूट करें";
/* Indicates that this thread is muted until a given date or time. Embeds {{The date or time which the thread is muted until}}. */
"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "until %@";
"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "जब तक %@";
/* Table cell label in conversation settings which returns the user to the conversation with 'search mode' activated */
"CONVERSATION_SETTINGS_SEARCH" = "Search Conversation";
"CONVERSATION_SETTINGS_SEARCH" = "बातचीत खोजें";
/* Label for button to unmute a thread. */
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Unmute";
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "अनम्यूट";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "This can take a few minutes.";
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "इसमें कुछ मिनटों का समय लगेगा ।";
/* Title shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_TITLE" = "Optimizing Database";
"DATABASE_VIEW_OVERLAY_TITLE" = "डाटाबेस का अनुकूलन";
/* Format string for a relative time, expressed as a certain number of hours in the past. Embeds {{The number of hours}}. */
"DATE_HOURS_AGO_FORMAT" = "%@ Hr Ago";
"DATE_HOURS_AGO_FORMAT" = "%@ घंटा पहले";
/* Format string for a relative time, expressed as a certain number of minutes in the past. Embeds {{The number of minutes}}. */
"DATE_MINUTES_AGO_FORMAT" = "%@ Min Ago";
"DATE_MINUTES_AGO_FORMAT" = "%@ मिनट पहले";
/* The present; the current time. */
"DATE_NOW" = "Now";
"DATE_NOW" = "अभी";
/* The current day. */
"DATE_TODAY" = "Today";
"DATE_TODAY" = "आज";
/* The day before today. */
"DATE_YESTERDAY" = "Yesterday";
"DATE_YESTERDAY" = "कल";
/* table cell label in conversation settings */
"DISAPPEARING_MESSAGES" = "Disappearing Messages";
"DISAPPEARING_MESSAGES" = "गायब होने वाले संदेश";
/* Info Message when added to a group which has enabled disappearing messages. Embeds {{time amount}} before messages disappear, see the *_TIME_AMOUNT strings for context. */
"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "Messages in this conversation will disappear after %@.";
/* table cell label in conversation settings */
@ -211,13 +211,13 @@
/* No comment provided by engineer. */
"GROUP_MEMBER_REMOVED" = " %@ was removed from the group. ";
/* No comment provided by engineer. */
"GROUP_MEMBERS_REMOVED" = " %@ were removed from the group. ";
"GROUP_MEMBERS_REMOVED" = " %@ समूह से हटा दिए गये हैं ";
/* No comment provided by engineer. */
"GROUP_TITLE_CHANGED" = "Title is now '%@'. ";
/* No comment provided by engineer. */
"GROUP_UPDATED" = "Group updated.";
/* No comment provided by engineer. */
"GROUP_YOU_LEFT" = "You have left the group.";
"GROUP_YOU_LEFT" = "आपने समूह छोड़ दिया है";
/* No comment provided by engineer. */
"YOU_WERE_REMOVED" = " You were removed from the group. ";
/* Momentarily shown to the user when attempting to select more images than is allowed. Embeds {{max number of items}} that can be shared. */
@ -374,6 +374,12 @@
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Previews are supported for most urls.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Link Previews";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Voice and video calls";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Allow access to accept voice and video calls from other users.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Calls";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Notification Content";
/* Label for the 'read receipts' setting. */
@ -562,6 +568,8 @@
"modal_link_previews_title" = "लिंक पूर्वावलोकन सक्षम करें?";
"modal_link_previews_explanation" = "लिंक पूर्वावलोकन सक्षम करने से आपके द्वारा भेजे और प्राप्त किए जाने वाले URL के पूर्वावलोकन दिखाई देंगे. यह उपयोगी हो सकता है, लेकिन Session को पूर्वावलोकन उत्पन्न करने के लिए लिंक की गई वेबसाइटों से संपर्क करने की आवश्यकता होगी। आप कभी भी Session की सेटिंग में लिंक पूर्वावलोकन अक्षम कर सकते हैं।";
"modal_link_previews_button_title" = "सक्षम करें";
"modal_call_title" = "Voice / video calls";
"modal_call_explanation" = "The current implementation of voice / video calls will expose your IP address to the Oxen Foundation servers and the calling / called user.";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "सत्र में साझा करें";
@ -597,15 +605,33 @@
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"call_outgoing" = "You called %@";
"call_incoming" = "%@ called you";
"call_missed" = "Missed Call from %@";
"call_rejected" = "Rejected Call";
"call_cancelled" = "Cancelled Call";
"call_timeout" = "Unanswered Call";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"APN_Message" = "You've got a new message.";
"APN_Collapsed_Messages" = "You've got %@ new messages.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"PIN_BUTTON_TEXT" = "Pin";
"UNPIN_BUTTON_TEXT" = "Unpin";
"modal_call_missed_tips_title" = "Call missed";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ took a screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -337,7 +337,7 @@
/* Label for switch in settings that controls whether or not backup is enabled. */
"SETTINGS_BACKUP_ENABLING_SWITCH" = "Sigurnosno kopiranje omogućeno";
/* Label for iCloud status row in the in the backup settings view. */
"SETTINGS_BACKUP_ICLOUD_STATUS" = "iCloud status";
"SETTINGS_BACKUP_ICLOUD_STATUS" = "iCloud stanje";
/* Indicates that the last backup restore failed. */
"SETTINGS_BACKUP_IMPORT_STATUS_FAILED" = "Vraćanje sigurnosne kopije nije uspjelo";
/* Indicates that app is not restoring up. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Pošaljite preglede poveznica";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Pregledi su podržani za poveznice Imgur, Instagram, Pinterest, Reddit i YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Pregledi su podržani za većinu Url -ova.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Pregledi poveznica";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Audio i video pozivi";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Dopusti pristup da se prihvate audio i video pozivi od drugih korisnika.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Pozivi";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Sadržaj obavijesti";
/* Label for the 'read receipts' setting. */
@ -399,7 +405,7 @@
/* Label text below navbar button, embeds {{number of days}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5d' not '5 d'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_DAYS_SHORT_FORMAT" = "%@d";
/* {{number of hours}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 hours}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_HOURS" = "%@ dana";
"TIME_AMOUNT_HOURS" = "%@ sati";
/* Label text below navbar button, embeds {{number of hours}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5h' not '5 h'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_HOURS_SHORT_FORMAT" = "%@h";
/* {{number of minutes}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 minutes}}'. See other *_TIME_AMOUNT strings */
@ -452,7 +458,7 @@
"view_fake_chat_bubble_1" = "Što je Session?";
"view_fake_chat_bubble_2" = "To je decentralizirana aplikacija za razmjenu šifriranih poruka";
"view_fake_chat_bubble_3" = "Dakle, ne prikuplja moje osobne podatke ili metapodatke razgovora? Kako to radi?";
"view_fake_chat_bubble_4" = "Koristeći kombinacije naprednih anonimnih usmjeravanja i end-to-end tehnologija šifriranja.";
"view_fake_chat_bubble_4" = "Koristeći kombinacije naprednih anonimnih usmjeravanja i end-to-end tehnologiju šifriranja.";
"view_fake_chat_bubble_5" = "Prijatelji ne dopuštaju prijateljima da koriste kompromitirane aplikacije za dopisivanje. Nema na čemu.";
"vc_register_title" = "Pozdravite svoj Session ID";
"vc_register_explanation" = "Vaš Session ID jedinstvena je adresa koju ljudi mogu koristiti da bi vas kontaktirali na Session-u. Bez povezivanja sa vašim stvarnim identitetom, vaš Session ID je potpuno anoniman i dizajniran privatno.";
@ -462,7 +468,7 @@
"vc_link_device_title" = "Poveži uređaj";
"vc_link_device_scan_qr_code_tab_title" = "Skeniraj QR kôd";
"vc_display_name_title_2" = "Odaberite svoje ime za prikaz";
"vc_display_name_explanation" = "To će biti vaše ime dok ćete koristiti Session. To može biti vaše pravo ime, lažno ime ili bilo što drugo što želite.";
"vc_display_name_explanation" = "To će biti vaše ime dok ćete koristiti Session. To može biti vaše pravo ime, lažno ime ili bilo što drugo, što želite.";
"vc_display_name_text_field_hint" = "Unesite ime za prikaz";
"vc_display_name_display_name_missing_error" = "Molimo odaberite svoje ime za prikaz";
"vc_display_name_display_name_too_long_error" = "Odaberite kraće ime za prikaz";
@ -470,8 +476,8 @@
"vc_pn_mode_no_option_picked_modal_title" = "Odaberite opciju";
"vc_home_empty_state_message" = "Nemate kontakata";
"vc_home_empty_state_button_title" = "Pokreni Session razgovor";
"vc_seed_title" = "Fraza za oporavak";
"vc_seed_title_2" = "Fraza za oporavak";
"vc_seed_title" = "Vaša fraza za oporavak";
"vc_seed_title_2" = "Upoznajte Vašu frazu za oporavak";
"vc_seed_explanation" = "Fraza za oporavak je glavni ključ vašeg Session ID-a - pomoću njega možete vratiti svoj Session ID ako izgubite pristup uređaju. Spremite frazu za oporavak na sigurno mjesto i nedajte je nikome.";
"vc_seed_reveal_button_title" = "Drži za otkrivanje";
"view_seed_reminder_subtitle_1" = "Osigurajte svoj račun spremanjem fraze za oporavak";
@ -488,8 +494,8 @@
"vc_create_private_chat_enter_session_id_tab_title" = "Unesite Session ID";
"vc_create_private_chat_scan_qr_code_tab_title" = "Skeniraj QR kôd";
"vc_create_private_chat_scan_qr_code_explanation" = "Skenirajte korisnikov QR kôd da biste započeli sesiju. QR kodovi se mogu pronaći dodirom ikone QR koda u postavkama računa.";
"vc_enter_public_key_explanation" = "Korisnici mogu podijeliti svoj Session ID tako da uđu u postavke računa i dodirnu \"Dijeli Session ID\" ili dijeljenjem svog QR koda.";
"vc_scan_qr_code_camera_access_explanation" = "Session treba pristup kameri za skeniranje QR kodova";
"vc_enter_public_key_explanation" = "Korisnici mogu podijeliti svoj Session ID tako da uđu u postavke računa i dodirnu \"Dijeli Session ID\" ili dijeljenjem svog QR kôda.";
"vc_scan_qr_code_camera_access_explanation" = "Session treba pristup kameri za skeniranje QR kôdova";
"vc_scan_qr_code_grant_camera_access_button_title" = "Odobri pristup kameri";
"vc_create_closed_group_title" = "Nova zatvorena grupa";
"vc_create_closed_group_text_field_hint" = "Unesite naziv grupe";
@ -517,12 +523,12 @@
"modal_seed_title" = "Fraza za oporavak";
"modal_seed_explanation" = "Ovo je vaša fraza za oporavak. Pomoću nje možete vratiti ili migrirati svoj Session ID na novi uređaj.";
"modal_clear_all_data_title" = "Obriši sve podatke";
"modal_clear_all_data_explanation" = "Ovo će trajno izbrisati vaše poruke, sesije i kontakte.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation" = "Ovo će trajno izbrisati vaše poruke, sesije razgovora i kontakte.";
"modal_clear_all_data_explanation_2" = "Želite li izbrisati samo ovaj uređaj ili želite izbrisati cijeli račun?";
"dialog_clear_all_data_deletion_failed_1" = "Podatke nije izbrisao 1 uslužni čvor. ID uslužnog čvora: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Podatke nije izbrisao %@ uslužni čvor. ID uslužnog čvora: %@.";
"modal_clear_all_data_device_only_button_title" = "Samo uređaj";
"modal_clear_all_data_entire_account_button_title" = "Cijeli račun";
"vc_qr_code_title" = "QR kôd";
"vc_qr_code_view_my_qr_code_tab_title" = "Pogledaj moj QR kôd";
"vc_qr_code_view_scan_qr_code_tab_title" = "Skeniraj QR kôd";
@ -555,15 +561,17 @@
"modal_open_url_title" = "Otvori poveznicu?";
"modal_open_url_explanation" = "Jeste li sigurni da želite otvoriti %@?";
"modal_open_url_button_title" = "Otvori";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Kopiraj poveznicu";
"modal_blocked_title" = "Deblokiraj %@?";
"modal_blocked_explanation" = "Jeste li sigurni da želite deblokirati %@?";
"modal_blocked_button_title" = "Deblokiraj";
"modal_link_previews_title" = "Omogući preglede poveznica?";
"modal_link_previews_explanation" = "Omogućavanjem pregleda poveznica prikazat će se pregledi za URL-ove koje šaljete i primate. To može biti korisno, ali Session će trebati kontaktirati povezane web stranice kako bi generirao preglede. Uvijek možete onemogućiti preglede poveznica u postavkama Session-a.";
"modal_link_previews_button_title" = "Uključi";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Audio / video pozivi";
"modal_call_explanation" = "Trenutna će implementacija sustava poziva Vašu IP adresu učiniti vidljivom serverima Oxen Foundationa te korisniku kojem se poziv upućuje.";
"modal_share_logs_title" = "Podijeli zapisnik";
"modal_share_logs_explanation" = "Želite li izvesti zapisnik koji se može podijeliti za oporavak aplikacije?";
"vc_share_title" = "Podijeli sa Session-om";
"vc_share_loading_message" = "Priprema privitaka...";
"vc_share_sending_message" = "Slanje...";
@ -574,38 +582,56 @@
"view_open_group_invitation_description" = "Otvori pozivnicu za grupu";
"vc_conversation_settings_invite_button_title" = "Dodaj članove";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_survey_button_title" = "Povratne informacije / anketa";
"vc_settings_support_button_title" = "Evidencija o otklanjanju grešaka";
"modal_send_seed_title" = "Upozorenje";
"modal_send_seed_explanation" = "Ovo je vaša fraza za oporavak. Ako ju pošaljete nekome, imat će puni pristup vašem računu.";
"modal_send_seed_send_button_title" = "Pošalji";
"vc_conversation_settings_notify_for_mentions_only_title" = "Obavijesti samo kod spominjanja";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Kad je omogućeno, bit ćete obaviješteni samo o porukama koje vas spominju.";
"view_conversation_title_notify_for_mentions_only" = "Obavijesti samo kod spominjanja";
"message_deleted" = "Ova poruka je izbrisana";
"delete_message_for_me" = "Izbriši samo za mene";
"delete_message_for_everyone" = "Izbriši za sve";
"delete_message_for_me_and_recipient" = "Izbriši za mene i %@";
"context_menu_reply" = "Odgovori";
"context_menu_save" = "Spremi";
"context_menu_ban_user" = "Zabrani korisnik";
"context_menu_ban_and_delete_all" = "Zabrani i izbriši sve";
"accessibility_expanding_attachments_button" = "Dodaj privitak";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "Dokument";
"accessibility_library_button" = "Galerija slika";
"accessibility_camera_button" = "Kamera";
"accessibility_main_button_collapse" = "Sažmi opcije privitka";
"invalid_recovery_phrase" = "Nevažeća fraza za oporavak";
"invalid_recovery_phrase" = "Nevažeća fraza za oporavak";
"DISMISS_BUTTON_TEXT" = "Odbaci";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"OPEN_SETTINGS_BUTTON" = "Postavke";
"call_outgoing" = "Zvali ste %@";
"call_incoming" = "zvao vas je %@";
"call_missed" = "Propušten poziv od %@";
"call_rejected" = "Poziv odbijen";
"call_cancelled" = "Poziv odbačen";
"call_timeout" = "Neodgovoreni poziv";
"voice_call" = "Glasovni poziv";
"video_call" = "Video poziv";
"APN_Message" = "Imate novu poruku!";
"APN_Collapsed_Messages" = "Imate %@ novih poruka!";
"system_mode_theme" = "Sustav";
"dark_mode_theme" = "Tamno";
"light_mode_theme" = "Svijetlo";
"PIN_BUTTON_TEXT" = "Prikvači";
"UNPIN_BUTTON_TEXT" = "Otkvači";
"modal_call_missed_tips_title" = "Propušten poziv";
"modal_call_missed_tips_explanation" = "Propušten poziv od '%@' jer 'Audio i video pozivi' nemaju dopuštenje u Postavkama privatnosti.";
"meida_saved" = "%@ je spremio/la medij.";
"screenshot_taken" = "%@ je napravio/la snimku zaslona.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -243,7 +243,7 @@
/* Confirmation button text to delete selected media message from the gallery */
"MEDIA_GALLERY_DELETE_SINGLE_MESSAGE" = "Hapus Pesan";
/* embeds {{sender name}} and {{sent datetime}}, e.g. 'Sarah on 10/30/18, 3:29' */
"MEDIA_GALLERY_LANDSCAPE_TITLE_FORMAT" = "%@ on %@";
"MEDIA_GALLERY_LANDSCAPE_TITLE_FORMAT" = "%@ pada %@";
/* Format for the 'more items' indicator for media galleries. Embeds {{the number of additional items}}. */
"MEDIA_GALLERY_MORE_ITEMS_FORMAT" = "+%@";
/* Short sender label for media sent by you */
@ -273,7 +273,7 @@
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Anda tidak akan menerima pemberitahuan untuk percakapan yang disenyapkan.";
/* notification title. Embeds {{author name}} and {{group name}} */
"NEW_GROUP_MESSAGE_NOTIFICATION_TITLE" = "%@ to %@";
"NEW_GROUP_MESSAGE_NOTIFICATION_TITLE" = "%@ ke %@";
/* Label for 1:1 conversation with yourself. */
"NOTE_TO_SELF" = "Catatan Pribadi";
/* Lock screen notification text presented after user powers on their device without unlocking. Embeds {{device model}} (either 'iPad' or 'iPhone') */
@ -341,11 +341,11 @@
/* Indicates that the last backup restore failed. */
"SETTINGS_BACKUP_IMPORT_STATUS_FAILED" = "Memulihkan cadangan gagal";
/* Indicates that app is not restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "Backup Restore Idle";
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "Cadangkan dan Pulihkan diam";
/* Indicates that app is restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IN_PROGRESS" = "Backup Restore In Progress";
"SETTINGS_BACKUP_IMPORT_STATUS_IN_PROGRESS" = "Cadangkan dan Pulihkan sedang dalam proses";
/* Indicates that the last backup restore succeeded. */
"SETTINGS_BACKUP_IMPORT_STATUS_SUCCEEDED" = "Backup Restore Succeeded";
"SETTINGS_BACKUP_IMPORT_STATUS_SUCCEEDED" = "Cadangkan dan Pulihkan berhasil";
/* Label for phase row in the in the backup settings view. */
"SETTINGS_BACKUP_PHASE" = "Fase";
/* Label for phase row in the in the backup settings view. */
@ -369,11 +369,17 @@
/* Label for settings view that allows user to change the notification sound. */
"SETTINGS_ITEM_NOTIFICATION_SOUND" = "Suara Pesan";
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Send Link Previews";
"SETTINGS_LINK_PREVIEWS" = "Kirim pratinjau tautan";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Previews are supported for most urls.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Mendukung pratinjau disebagian besar url.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Link Previews";
"SETTINGS_LINK_PREVIEWS_HEADER" = "Pratinjau tautan";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Voice and video calls";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Allow access to accept voice and video calls from other users.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Calls";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Isi Pemberitahuan";
/* Label for the 'read receipts' setting. */
@ -391,17 +397,17 @@
/* Section header */
"SETTINGS_SECURITY_TITLE" = "Layar Aman";
/* Label for the 'typing indicators' setting. */
"SETTINGS_TYPING_INDICATORS" = "Typing Indicators";
"SETTINGS_TYPING_INDICATORS" = "Indikator mengetik";
/* Label for the 'no sound' option that allows users to disable sounds for notifications, etc. */
"SOUNDS_NONE" = "None";
"SOUNDS_NONE" = "Tidak ada";
/* {{number of days}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 days}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_DAYS" = "%@hari";
/* Label text below navbar button, embeds {{number of days}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5d' not '5 d'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_DAYS_SHORT_FORMAT" = "%@d";
"TIME_AMOUNT_DAYS_SHORT_FORMAT" = "%@h";
/* {{number of hours}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 hours}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_HOURS" = "%@jam";
/* Label text below navbar button, embeds {{number of hours}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5h' not '5 h'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_HOURS_SHORT_FORMAT" = "%@h";
"TIME_AMOUNT_HOURS_SHORT_FORMAT" = "%@j";
/* {{number of minutes}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 minutes}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_MINUTES" = "%@menit";
/* Label text below navbar button, embeds {{number of minutes}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5m' not '5 m'. See other *_TIME_AMOUNT strings */
@ -409,7 +415,7 @@
/* {{number of seconds}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 seconds}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SECONDS" = "%@ detik";
/* Label text below navbar button, embeds {{number of seconds}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5s' not '5 s'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SECONDS_SHORT_FORMAT" = "%@s";
"TIME_AMOUNT_SECONDS_SHORT_FORMAT" = "%@d";
/* {{1 day}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 day}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_DAY" = "%@hari";
/* {{1 hour}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 hour}}'. See other *_TIME_AMOUNT strings */
@ -421,7 +427,7 @@
/* {{number of weeks}}, embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 weeks}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_WEEKS" = "%@minggu";
/* Label text below navbar button, embeds {{number of weeks}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5w' not '5 w'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_WEEKS_SHORT_FORMAT" = "%@w";
"TIME_AMOUNT_WEEKS_SHORT_FORMAT" = "%@mgg";
/* Label for the cancel button in an alert or action sheet. */
"TXT_CANCEL_TITLE" = "Batal";
/* No comment provided by engineer. */
@ -518,11 +524,11 @@
"modal_seed_explanation" = "Ini adalah kata pemulihan anda. Gunakan untuk mengembalikan atau memindahkan Session ID anda ke perangkat lain";
"modal_clear_all_data_title" = "Hapus semua data";
"modal_clear_all_data_explanation" = "Pesan, Session, dan kontak anda akan dihapus secara permanen";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "Apakah anda ingin menghapus di perangkat ini, atau menghapus akun anda seutuhnya?";
"dialog_clear_all_data_deletion_failed_1" = "Data tidak dihapus oleh 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data tidak dihapus oleh %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Perangkat saja";
"modal_clear_all_data_entire_account_button_title" = "Seluruh akun";
"vc_qr_code_title" = "Kode QR";
"vc_qr_code_view_my_qr_code_tab_title" = "Lihat kode QR saya";
"vc_qr_code_view_scan_qr_code_tab_title" = "Pindai kode QR";
@ -562,6 +568,8 @@
"modal_link_previews_title" = "Enable Link Previews?";
"modal_link_previews_explanation" = "Enabling link previews will show previews for URLs you send and receive. This can be useful, but Session will need to contact linked websites to generate previews. You can always disable link previews in Session's settings.";
"modal_link_previews_button_title" = "Enable";
"modal_call_title" = "Voice / video calls";
"modal_call_explanation" = "The current implementation of voice / video calls will expose your IP address to the Oxen Foundation servers and the calling / called user.";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "Share to Session";
@ -597,15 +605,33 @@
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"call_outgoing" = "You called %@";
"call_incoming" = "%@ called you";
"call_missed" = "Missed Call from %@";
"call_rejected" = "Rejected Call";
"call_cancelled" = "Cancelled Call";
"call_timeout" = "Unanswered Call";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"APN_Message" = "You've got a new message.";
"APN_Collapsed_Messages" = "You've got %@ new messages.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"PIN_BUTTON_TEXT" = "Pin";
"UNPIN_BUTTON_TEXT" = "Unpin";
"modal_call_missed_tips_title" = "Call missed";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ took a screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -27,25 +27,25 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Errore invio allegato";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Nepavyko kovertuoti paveikslo.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Impossibile convertire l'immagine.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Nepavyko apdoroti vaizdo įrašo.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Impossibile elaborare il video.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Nepavyko išnagrinėti paveikslo.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Impossibile elaborare immagine.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Nepavyko pašalinti metaduomenų iš paveikslo.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Impossibile rimuovere i metadati dall'immagine.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Nepavyko pakeisti paveikslo dydžio.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Impossibile ridimensionare l'immagine.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Priedas yra per didelis.";
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Allegato troppo pesante.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Priede yra neteisingas turinys.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Contenuto dell'allegato non valido.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Priedas yra neteisingo failo formato.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Il formato dell'allegato non è valido.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Priedas yra tuščias.";
"ATTACHMENT_ERROR_MISSING_DATA" = "L'allegato è vuoto.";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Scelta del documento fallita.";
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Selezione del documento fallito.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Crea un archivio compresso di questo file o cartella e quindi prova a inviarlo.";
/* Alert title when picking a document fails because user picked a directory/bundle */
@ -94,7 +94,7 @@
"BLOCK_LIST_BLOCK_BUTTON" = "Blocca";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Bloccare %@?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Sbloccare %@?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Sblocca";
@ -103,9 +103,9 @@
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Utente bloccato";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ buvo atblokuota(-as).";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ è stato sbloccato.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Dabar, esami dalyviai gali ir vėl pridėti jus į grupę.";
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "I membri esistenti possono ora aggiungerti nel gruppo nuovamente.";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Gli utenti bloccati non potranno chiamarti o inviarti messaggi.";
/* Label for generic done button. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Invia anteprime link";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Le anteprime sono supportate per link di Imgur, Instagram, Pinterest, Reddit e YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Le anteprime sono supportate per la maggior parte degli url.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Anteprime link";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Chiamate vocali e video";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Consenti l'accesso per accettare le chiamate vocali e video da altri utenti.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Chiamate";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Contenuto notifica";
/* Label for the 'read receipts' setting. */
@ -518,11 +524,11 @@
"modal_seed_explanation" = "Questa è la tua frase di recupero. Usala per ripristinare o migrare la Sessione ID a un nuovo dispositivo.";
"modal_clear_all_data_title" = "Elimina tutti i dati";
"modal_clear_all_data_explanation" = "Ciò eliminerà permanentemente i tuoi messaggi, sessioni e contatti.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "Vuoi cancellare solo su questo dispositivo o eliminare l'intero account?";
"dialog_clear_all_data_deletion_failed_1" = "Dati non eliminati da 1 nodi di servizio. ID Nodo di servizio: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Dati non eliminati da %@ nodi di servizio. ID Nodo di servizio: %@.";
"modal_clear_all_data_device_only_button_title" = "Solo dispositivo";
"modal_clear_all_data_entire_account_button_title" = "Tutto l'account";
"vc_qr_code_title" = "Codice QR";
"vc_qr_code_view_my_qr_code_tab_title" = "Visualizza il mio codice QR";
"vc_qr_code_view_scan_qr_code_tab_title" = "Scansiona il codice QR";
@ -555,73 +561,93 @@
"modal_open_url_title" = "Aprire URL?";
"modal_open_url_explanation" = "Sei sicuro di voler aprire %@?";
"modal_open_url_button_title" = "Apri";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Copia link";
"modal_blocked_title" = "Sbloccare %@?";
"modal_blocked_explanation" = "Sei sicuro di voler sbloccare %@?";
"modal_blocked_button_title" = "Sblocca";
"modal_link_previews_title" = "Abilitare Anteprima Link?";
"modal_link_previews_explanation" = "Abilitando le anteprime dei collegamenti Session mostrerà le anteprime degli URL che invii e ricevi. Questo può essere utile, ma Session dovrà contattare i siti web collegati per generare le anteprime. Puoi sempre disabilitare le anteprime dei link nelle impostazioni di Session.";
"modal_link_previews_button_title" = "Abilita";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Chiamate vocali / video";
"modal_call_explanation" = "L'attuale implementazione di chiamate vocali / video esporrà il tuo indirizzo IP ai server di Oxen Foundation e all'utente chiamato/ chiamato.";
"modal_share_logs_title" = "Condividi log file";
"modal_share_logs_explanation" = "Vuoi esportare i log dell'applicazione per essere in grado di condividerli per risolvere i problemi?";
"vc_share_title" = "Condividi con Session";
"vc_share_loading_message" = "Preparazione allegati...";
"vc_share_sending_message" = "Invio...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"vc_share_link_previews_unsecure" = "Anteprima non caricata: il link non è sicuro";
"vc_share_link_previews_error" = "Impossibile caricare l'anteprima";
"vc_share_link_previews_disabled_title" = "Anteprima dei link disabilitata";
"vc_share_link_previews_disabled_explanation" = "Abilitando le anteprime dei collegamenti verranno mostrate le anteprime degli URL che condividi. Questo può essere utile, ma Session dovrà contattare i siti web collegati per generare le anteprime.\n\nPuoi sempre abilitare le anteprime dei link nelle impostazioni di Session.";
"view_open_group_invitation_description" = "Apri invito di gruppo";
"vc_conversation_settings_invite_button_title" = "Aggiungi membri";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_survey_button_title" = "Feedback / Sondaggio";
"vc_settings_support_button_title" = "Log di debug";
"modal_send_seed_title" = "Attenzione";
"modal_send_seed_explanation" = "Questa è la tua frase di recupero. Qualora dovessi inviarla a qualcuno questi avranno accesso totale al tuo account.";
"modal_send_seed_send_button_title" = "Invia";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notifica solo per le menzioni";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Se abilitato, verrai avvisato solo per i messaggi che ti menzionano.";
"view_conversation_title_notify_for_mentions_only" = "Invio notifiche solo per le menzioni";
"message_deleted" = "Questo messaggio è stato eliminato";
"delete_message_for_me" = "Elimina solo per me";
"delete_message_for_everyone" = "Elimina per tutti";
"delete_message_for_me_and_recipient" = "Elimina per me e %@";
"context_menu_reply" = "Rispondi";
"context_menu_save" = "Salva";
"context_menu_ban_user" = "Banna utente";
"context_menu_ban_and_delete_all" = "Banna ed elimina tutto";
"accessibility_expanding_attachments_button" = "Aggiungi allegati";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "Documento";
"accessibility_library_button" = "Galleria foto";
"accessibility_camera_button" = "Fotocamera";
"accessibility_main_button_collapse" = "Comprimi opzioni allegato";
"invalid_recovery_phrase" = "Frase Di Recupero non valida";
"invalid_recovery_phrase" = "Frase Di Ripristino Non Valida";
"DISMISS_BUTTON_TEXT" = "Chiudi";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Closed Group";
"modal_call_permission_request_title" = "Call Permissions Required";
"modal_call_permission_request_explanation" = "You can enable the 'Voice and video calls' permission in the Privacy Settings.";
"OPEN_SETTINGS_BUTTON" = "Impostazioni";
"call_outgoing" = "Hai chiamato %@";
"call_incoming" = "%@ ti ha chiamato";
"call_missed" = "Chiamata persa da %@";
"call_rejected" = "Chiamata rifiutata";
"call_cancelled" = "Chiama Annullata";
"call_timeout" = "Chiamata Senza Risposta";
"voice_call" = "Chiamata Vocale";
"video_call" = "Chiamata Video";
"APN_Message" = "Hai ricevuto un nuovo messaggio";
"APN_Collapsed_Messages" = "Hai ricevuto %@ nuovi messaggi.";
"system_mode_theme" = "Sistema";
"dark_mode_theme" = "Scuro";
"light_mode_theme" = "Chiaro";
"PIN_BUTTON_TEXT" = "Fissa";
"UNPIN_BUTTON_TEXT" = "Non fissare in alto";
"modal_call_missed_tips_title" = "Chiamata persa";
"modal_call_missed_tips_explanation" = "Chiamata persa da '%@' perché era necessario abilitare l'autorizzazione 'Voce e video chiamate' nelle Impostazioni Privacy.";
"meida_saved" = "Media salvato da %@.";
"screenshot_taken" = "%@ ha acquisito uno screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contatti e Gruppi";
"SEARCH_SECTION_MESSAGES" = "Messaggi";
"SEARCH_SECTION_RECENT" = "Recenti";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "ultimo messaggio: %@";
"MESSAGE_REQUESTS_TITLE" = "Richieste Di Messaggio";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "Nessuna richiesta aperta";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Cancella tutto";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Eliminare veramente tutte le richieste di messaggio?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Cancella";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Sei sicuro di voler eliminare questa richiesta di messaggio?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "Si è verificato un errore durante il tentativo di accettare questa richiesta di messaggio";
"MESSAGE_REQUESTS_INFO" = "L'invio di un messaggio a questo utente accetterà automaticamente la richiesta di messaggio.";
"MESSAGE_REQUESTS_ACCEPTED" = "La tua richiesta di messaggio è stata accettata.";
"MESSAGE_REQUESTS_NOTIFICATION" = "Hai una nuova richiesta di messaggio";
"TXT_HIDE_TITLE" = "Nascondi";
"TXT_DELETE_ACCEPT" = "Accetta";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Gruppo Aperto";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Messaggio Privato";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Gruppo Chiuso";
"modal_call_permission_request_title" = "Permessi Di Chiamata Richiesti";
"modal_call_permission_request_explanation" = "È possibile abilitare l'autorizzazione 'Voce e video chiamate' nelle Impostazioni Privacy.";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";

View File

@ -29,21 +29,21 @@
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "画像を変換できません。";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "動画を処理できません";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "動画を処理できませんでした";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "画像をパースできません。";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "画像の解析に失敗しました。";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "画像からメタデータを消去できませんでした。";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "画像のサイズを変できません。";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "画像のサイズを変できません。";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "添付ファイルが大きすぎます。";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "添付ファイルが無効です。";
"ATTACHMENT_ERROR_INVALID_DATA" = "添付ファイルに無効なコンテンツが含まれています。";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "添付ファイルのフォーマットが不正です。";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "添付ファイルに無効なファイル形式があります";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "添付ファイルの中身が空です";
"ATTACHMENT_ERROR_MISSING_DATA" = "添付ファイルの中身が空です";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "ドキュメントの選択に失敗しました";
/* Alert body when picking a document fails because user picked a directory/bundle */
@ -85,7 +85,7 @@
/* Label for the backup restore description. */
"BACKUP_RESTORE_DESCRIPTION" = "バックアップから修復中";
/* Label for the backup restore progress. */
"BACKUP_RESTORE_PROGRESS" = "進";
"BACKUP_RESTORE_PROGRESS" = "進行状況";
/* Label for the backup restore status. */
"BACKUP_RESTORE_STATUS" = "状態";
/* Error shown when backup fails due to an unexpected error. */
@ -94,7 +94,7 @@
"BLOCK_LIST_BLOCK_BUTTON" = "ブロックする";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "%@ をブロックしますか?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@のブロックを解除しますか?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "ブロックを解除する";
@ -103,7 +103,7 @@
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "ユーザがブロックされました";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ のブロックは解除されています。";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@のブロックを解除しました";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "既存のメンバーは、あなたをグループに再加入させることができます。";
/* An explanation of the consequences of blocking another user. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "リンクプレビューを送る";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "プレビューはImgur、Instagram、Pinterest、RedditおよびYouTubeリンクをサポートしています。";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "ほとんどのURLでプレビューをサポートしています。";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "リンクプレビュー";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "音声とビデオ通話";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "他のユーザーからの音声通話やビデオ通話を受け入れることができます.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "通話";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "通知内容";
/* Label for the 'read receipts' setting. */
@ -473,7 +479,7 @@
"vc_seed_title" = "あなたのリカバリーフレーズ";
"vc_seed_title_2" = "リカバリーフレーズに合致する";
"vc_seed_explanation" = "リカバリーフレーズは、Session ID のマスターキーです。端末にアクセスできなくなった場合、これを使用して Session ID を復元できます。リカバリーフレーズを安全な場所に保管し、誰にも教えないでください。";
"vc_seed_reveal_button_title" = "明らかにする";
"vc_seed_reveal_button_title" = "ホールドして表示";
"view_seed_reminder_subtitle_1" = "リカバリーフレーズを保存してアカウントを保護する";
"view_seed_reminder_subtitle_2" = "編集された単語をタップして長押ししてリカバリーフレーズを表示し、それを安全に保管して Session ID を保護します。";
"view_seed_reminder_subtitle_3" = "リカバリーフレーズは安全な場所に保管してください";
@ -508,21 +514,21 @@
"vc_settings_display_name_missing_error" = "表示名を選択してください";
"vc_settings_display_name_too_long_error" = "短い表示名を選択してください";
"vc_settings_privacy_button_title" = "プライバシー";
"vc_settings_notifications_button_title" = "お知らせ";
"vc_settings_notifications_button_title" = "通知";
"vc_settings_recovery_phrase_button_title" = "リカバリーフレーズ";
"vc_settings_clear_all_data_button_title" = "データを消去する";
"vc_notification_settings_title" = "お知らせ";
"vc_notification_settings_title" = "通知";
"vc_privacy_settings_title" = "プライバシー";
"preferences_notifications_strategy_category_title" = "通知戦略";
"modal_seed_title" = "あなたのリカバリーフレーズ";
"modal_seed_explanation" = "これはあなたのリカバリーフレーズです。これにより、Session ID を新しい端末に復元または移行できます。";
"modal_clear_all_data_title" = "すべてのデータを消去する";
"modal_clear_all_data_explanation" = "これにより、メッセージ、Session、連絡先が完全に削除されます。";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "この端末のみから消去するか、すべての端末からアカウント全体を削除しますか?";
"dialog_clear_all_data_deletion_failed_1" = "このサービスードからデータが削除されませんでした。ID: %@";
"dialog_clear_all_data_deletion_failed_2" = "%@ つのサービスードからデータが削除されませんでした。ID %@";
"modal_clear_all_data_device_only_button_title" = "この端末のみ";
"modal_clear_all_data_entire_account_button_title" = "アカウント全体";
"vc_qr_code_title" = "QR コード";
"vc_qr_code_view_my_qr_code_tab_title" = "私の QR コードを表示する";
"vc_qr_code_view_scan_qr_code_tab_title" = "QR コードをスキャンする";
@ -555,73 +561,93 @@
"modal_open_url_title" = "URLを開きますか";
"modal_open_url_explanation" = "%@を本当に開いてもよろしいですか?";
"modal_open_url_button_title" = "開く";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "リンクをコピーする";
"modal_blocked_title" = "%@のブロックを解除しますか?";
"modal_blocked_explanation" = "%@のブロックを解除してもよろしいですか?";
"modal_blocked_button_title" = "ブロックを解除する";
"modal_link_previews_title" = "リンクプレビューを有効にしますか?";
"modal_link_previews_explanation" = "リンクプレビューを有効すると、URLを送受信する場合にプレビューが表示されます。これは便利ですが、プレビューを作成するのにSessionはそのウェブサイトに接続する必要があります。Sessionの設定から、リンクプレビューをいつでも無効にできます。";
"modal_link_previews_button_title" = "有効にする";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "音声とビデオ通話";
"modal_call_explanation" = "現在の音声/ビデオ通話の実装では、あなたのIPアドレスがOxen Foundationサーバー及び通話/着信先に表示されます。";
"modal_share_logs_title" = "ログを共有";
"modal_share_logs_explanation" = "アプリケーションログをエクスポートしてトラブルシューティングのために共有しますか?";
"vc_share_title" = "Sessionと共有";
"vc_share_loading_message" = "添付ファイルを準備しています...";
"vc_share_sending_message" = "送信中…";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"vc_share_link_previews_unsecure" = "セキュアでないリンクのプレビューは読み込めません";
"vc_share_link_previews_error" = "プレビューを読み込めません";
"vc_share_link_previews_disabled_title" = "リンクのプレビューが無効です";
"vc_share_link_previews_disabled_explanation" = "リンクプレビューを有効すると、URLを送受信する場合にプレビューが表示されます。これは便利ですが、プレビューを作成するのにSessionはそのウェブサイトに接続する必要があります。Sessionの設定から、リンクプレビューをいつでも無効にできます。";
"view_open_group_invitation_description" = "公開グループからの招待";
"vc_conversation_settings_invite_button_title" = "メンバーを追加する";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_faq_button_title" = "よくある質問";
"vc_settings_survey_button_title" = "フィードバック / アンケート";
"vc_settings_support_button_title" = "デバッグログ";
"modal_send_seed_title" = "警告";
"modal_send_seed_explanation" = "これはあなたの復元フレーズです。もし誰かに送信すると、あなたのアカウントにフルアクセスできます。";
"modal_send_seed_send_button_title" = "送信";
"vc_conversation_settings_notify_for_mentions_only_title" = "メンションのみ";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "有効にすると、あなたに言及するメッセージのみが通知されます。";
"view_conversation_title_notify_for_mentions_only" = "メンションのみを通知する";
"message_deleted" = "このメッセージは削除されました";
"delete_message_for_me" = "自分の端末から削除";
"delete_message_for_everyone" = "全員の端末から削除";
"delete_message_for_me_and_recipient" = "自分と %@ の端末から削除する";
"context_menu_reply" = "返信";
"context_menu_save" = "保存";
"context_menu_ban_user" = "ユーザーをBAN";
"context_menu_ban_and_delete_all" = "BANしてすべてを削除する";
"accessibility_expanding_attachments_button" = "添付ファイルを追加";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "ドキュメント";
"accessibility_library_button" = "写真を選択";
"accessibility_camera_button" = "カメラ";
"accessibility_main_button_collapse" = "添付ファイルのオプションを閉じる";
"invalid_recovery_phrase" = "無効な復元フレーズ";
"invalid_recovery_phrase" = "無効な復元フレーズ";
"DISMISS_BUTTON_TEXT" = "中止";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Closed Group";
"modal_call_permission_request_title" = "Call Permissions Required";
"modal_call_permission_request_explanation" = "You can enable the 'Voice and video calls' permission in the Privacy Settings.";
"OPEN_SETTINGS_BUTTON" = "設定";
"call_outgoing" = "%@ に発信";
"call_incoming" = "%@から着信";
"call_missed" = "%@からの不在着信";
"call_rejected" = "着信拒否";
"call_cancelled" = "キャンセルした通話";
"call_timeout" = "不在着信";
"voice_call" = "音声通話";
"video_call" = "ビデオ通話";
"APN_Message" = "新しいメッセージがあります。";
"APN_Collapsed_Messages" = "%@ 件の新規メッセージがあります。";
"system_mode_theme" = "システム";
"dark_mode_theme" = "ダーク";
"light_mode_theme" = "ライト";
"PIN_BUTTON_TEXT" = "ピン留め";
"UNPIN_BUTTON_TEXT" = "ピン留めを外す";
"modal_call_missed_tips_title" = "通話できません";
"modal_call_missed_tips_explanation" = "プライバシー設定で「音声通話とビデオ通話」を許可していないため、%@から着信できませんでした。";
"meida_saved" = "%@ によって保存されたメディア";
"screenshot_taken" = "%@はスクリーンショットを撮りました。";
"SEARCH_SECTION_CONTACTS" = "連絡先とグループ";
"SEARCH_SECTION_MESSAGES" = "メッセージ";
"SEARCH_SECTION_RECENT" = "最近";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "最後のメッセージ: %@";
"MESSAGE_REQUESTS_TITLE" = "メッセージリクエスト";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "保留しているリクエストはありません";
"MESSAGE_REQUESTS_CLEAR_ALL" = "すべて消去";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "本当に全てのリクエストを消去しますか?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "消去";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "本当にこのリクエストを削除しますか?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "リクエスト承認時にエラーが発生しました";
"MESSAGE_REQUESTS_INFO" = "このユーザーにメッセージを送信すると、自動的にリクエストが承認されます。";
"MESSAGE_REQUESTS_ACCEPTED" = "リクエストが承認されました";
"MESSAGE_REQUESTS_NOTIFICATION" = "新しいリクエストがあります";
"TXT_HIDE_TITLE" = "非表示";
"TXT_DELETE_ACCEPT" = "許可";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "公開グループ";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "ダイレクトメッセージ";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "非公開グループ";
"modal_call_permission_request_title" = "許可が必要です";
"modal_call_permission_request_explanation" = "プライバシー設定から音声とビデオ通話の許可を有効にできます。";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";

View File

@ -27,21 +27,21 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Versturen bijlage mislukt";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Kan afbeelding niet naar JPEG converteren.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Afbeelding converteren mislukt.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Kan video niet verwerken.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Video converteren mislukt.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Kan afbeelding niet verwerken.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Afbeelding verwerken mislukt.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Kan metagegevens niet uit afbeelding verwijderen.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Metadata van afbeelding verwijderen mislukt.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Afbeelding verkleinen mislukt.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Aanpassen formaat afbeelding mislukt.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Bijlage is te groot.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Bijlage bevat inhoud die niet wordt ondersteund of niet correct is geformatteerd.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Bijlage bevat ongeldige inhoud.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Bijlage is een bestandstype welke niet wordt ondersteund.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Bijlage heeft een ongeldig bestandsformaat.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Bijlage is leeg.";
/* Alert title when picking a document fails for an unknown reason */
@ -93,11 +93,11 @@
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokkeren";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "%@ blokkeren?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@ deblokkeren?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Blokkeer %@?";
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Deblokkeer %@?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Deblokkeren";
"BLOCK_LIST_UNBLOCK_BUTTON" = "Blokkering opheffen";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ is geblokkeerd.";
/* The title of the 'user blocked' alert. */
@ -307,9 +307,9 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "Naamloze Album";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "Markeer als gelezen";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "Antwoord";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "We kunnen uw account pas activeren nadat u de code die we u hebben gestuurd verifieert.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Link Previews verzenden";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Voorbeelden worden ondersteund van Imgur, Instagram, Pinterest Reddit, en YouTube links.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Voorvertoningen worden ondersteund voor de meeste urls.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Link voorbeelden";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Spraak- en video-oproepen";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Sta toegang toe tot het accepteren van spraak- en video-oproepen van andere gebruikers.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Bellen";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Notificatie Inhoud";
/* Label for the 'read receipts' setting. */
@ -518,11 +524,11 @@
"modal_seed_explanation" = "Dit is uw herstel zin, Hiermee kun je je sessie-ID herstellen of migreren naar een nieuw apparaat.";
"modal_clear_all_data_title" = "Wis alle gegevens";
"modal_clear_all_data_explanation" = "Hiermee worden uw berichten, sessies en contacten permanent verwijderd.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "Wilt u alleen de data op dit apparaat verwijderen, of wilt u uw hele account verwijderen?";
"dialog_clear_all_data_deletion_failed_1" = "Gegevens niet verwijderd door 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Gegevens niet verwijderd door %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Alleen apparaat";
"modal_clear_all_data_entire_account_button_title" = "Gehele account";
"vc_qr_code_title" = "QR-code";
"vc_qr_code_view_my_qr_code_tab_title" = "Bekijk mijn QR-code";
"vc_qr_code_view_scan_qr_code_tab_title" = "QR-code scannen";
@ -555,15 +561,17 @@
"modal_open_url_title" = "URL openen?";
"modal_open_url_explanation" = "Weet u zeker dat u %@ wilt openen?";
"modal_open_url_button_title" = "Openen";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Kopieer link";
"modal_blocked_title" = "Blokkering opheffen voor %@?";
"modal_blocked_explanation" = "Weet je zeker dat je %@ weer wilt toelaten?";
"modal_blocked_button_title" = "Deblokkeren";
"modal_link_previews_title" = "Linkvoorbeeld inschakelen?";
"modal_link_previews_explanation" = "Link previews inschakelen zal previews tonen voor URLs die u verstuurt en ontvangt. Dit kan nuttig zijn, maar Session moet contact opnemen met gekoppelde websites om previews te genereren. U kunt links altijd uitschakelen in de Sessions-instellingen.";
"modal_link_previews_button_title" = "Inschakelen";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Spraak / video-oproepen";
"modal_call_explanation" = "De huidige implementatie van spraak / video-oproepen zal uw IP-adres blootstellen aan de Oxen Foundation servers en de bel/gebelde gebruiker.";
"modal_share_logs_title" = "Deel logs";
"modal_share_logs_explanation" = "Wil je je applicatie logboeken exporteren om te kunnen delen bij het oplossen van problemen?";
"vc_share_title" = "Delen naar de Session";
"vc_share_loading_message" = "Bijlagen voorbereiden...";
"vc_share_sending_message" = "Aan het verzenden...";
@ -573,39 +581,57 @@
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "Open groepsuitnodiging";
"vc_conversation_settings_invite_button_title" = "Voeg deelnemers toe";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_faq_button_title" = "Veelgestelde vragen (FAQ)";
"vc_settings_survey_button_title" = "Tips / Vragen";
"vc_settings_support_button_title" = "Foutopsporingslogboek";
"modal_send_seed_title" = "Waarschuwing";
"modal_send_seed_explanation" = "Dit is je herstelzin. Als je het naar iemand stuurt hebben ze volledige toegang tot je account.";
"modal_send_seed_send_button_title" = "Verzenden";
"vc_conversation_settings_notify_for_mentions_only_title" = "Alleen melding bij vermeldingen";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Wanneer ingeschakeld, wordt u alleen op de hoogte gesteld voor berichten die u vermelden.";
"view_conversation_title_notify_for_mentions_only" = "Melding alleen voor vermeldingen";
"message_deleted" = "Dit bericht is verwijderd";
"delete_message_for_me" = "Verwijder alleen voor mij";
"delete_message_for_everyone" = "Verwijder voor iedereen";
"delete_message_for_me_and_recipient" = "Verwijderen voor mij en %@";
"context_menu_reply" = "Antwoord";
"context_menu_save" = "Opslaan";
"context_menu_ban_user" = "Gebruiker verbannen";
"context_menu_ban_and_delete_all" = "Blokkeer en verwijder alles";
"accessibility_expanding_attachments_button" = "Bijlage toevoegen";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_library_button" = "Fotobibliotheek";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_main_button_collapse" = "Bijlage-opties inklappen";
"invalid_recovery_phrase" = "Ongeldig Herstelzin";
"invalid_recovery_phrase" = "Ongeldig Herstelzin";
"DISMISS_BUTTON_TEXT" = "Negeren";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"OPEN_SETTINGS_BUTTON" = "Instellingen";
"call_outgoing" = "Je belde %@";
"call_incoming" = "%@ heeft je gebeld";
"call_missed" = "Gemiste oproep van %@";
"call_rejected" = "Gesprek afwijzen";
"call_cancelled" = "Oproep geannuleerd";
"call_timeout" = "Onbeantwoorde oproep";
"voice_call" = "Spraak gesprek";
"video_call" = "Videogesprek";
"APN_Message" = "Je hebt een nieuw bericht.";
"APN_Collapsed_Messages" = "Je hebt een %@ nieuw bericht.";
"system_mode_theme" = "Systeem";
"dark_mode_theme" = "Donker";
"light_mode_theme" = "Licht";
"PIN_BUTTON_TEXT" = "Vastzetten";
"UNPIN_BUTTON_TEXT" = "Losmaken";
"modal_call_missed_tips_title" = "Oproep gemist";
"modal_call_missed_tips_explanation" = "Oproep gemist van '%@' omdat je de 'Spraak- en video-oproep' permissie nodig hebt in de privacy-instellingen.";
"meida_saved" = "Media opgeslagen door %@.";
"screenshot_taken" = "%@ heeft een schermafbeelding genomen.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -94,7 +94,7 @@
"BLOCK_LIST_BLOCK_BUTTON" = "Zablokuj";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Zablokować %@?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Odblokować %@?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Odblokuj";
@ -103,7 +103,7 @@
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Użytkownik zablokowany";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "Odblokowano %@.";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ został odblokowany.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Istniejący członkowie mogą teraz ponownie dodać Cię do grupy.";
/* An explanation of the consequences of blocking another user. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Podgląd linków";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Podgląd jest dostepny dla linków z Imgur, Instagram, Pinterest, Reddit, i YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Podgląd jest obsługiwany dla większości adresów url.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Podgląd linków";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Połączenia głosowe i wideo";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Zezwól na dostęp do akceptowania połączeń głosowych i wideo od innych użytkowników.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Połączenia";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Treść powiadomień";
/* Label for the 'read receipts' setting. */
@ -555,73 +561,93 @@
"modal_open_url_title" = "Otworzyć URL?";
"modal_open_url_explanation" = "Czy na pewno chcesz otworzyć %@?";
"modal_open_url_button_title" = "Otwórz";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Kopiuj odnośnik";
"modal_blocked_title" = "Odblokować %@?";
"modal_blocked_explanation" = "Czy na pewno chcesz odblokować %@?";
"modal_blocked_button_title" = "Odblokuj";
"modal_link_previews_title" = "Włączyć podgląd linków?";
"modal_link_previews_explanation" = "Włączanie podglądów linków wyświetli podgląd dla adresów URL które wysyłasz i otrzymujesz. Może to być użyteczne, ale Session będzie musiał się połączyć ze stronami których linki wysyłasz aby wygenerować podgląd. Możesz zawsze wyłączyć podgląd linków w ustawieniach Session.";
"modal_link_previews_button_title" = "Włącz";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Połączenia głosowe / wideo";
"modal_call_explanation" = "Obecna implementacja połączeń głosowych/wideo wyświetli Twój adres IP na serwerach Fundacji Oxen i użytkownikowi do którego dzwonisz/dzwoni.";
"modal_share_logs_title" = "Wyślij Log";
"modal_share_logs_explanation" = "Czy chcesz wyeksportować logi aplikacji, aby móc je udostępniać do rozwiązywania problemów?";
"vc_share_title" = "Udostępnij w Session";
"vc_share_loading_message" = "Przygotowywanie załączników...";
"vc_share_sending_message" = "Wysyłanie...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"vc_share_link_previews_unsecure" = "Podgląd nie jest załadowany dla niezabezpieczonego linku";
"vc_share_link_previews_error" = "Nie można załadować podglądu";
"vc_share_link_previews_disabled_title" = "Podgląd linków wyłączony";
"vc_share_link_previews_disabled_explanation" = "Włączanie podglądów linków wyświetli podgląd dla adresów URL, które udostępniasz. Może to być użyteczne, ale Session będzie musiał się połączyć, z których stronami linki wysyłasz, aby wygenerować podgląd. \n\nMożesz włączyć podgląd linków w ustawieniach Session.";
"view_open_group_invitation_description" = "Otwórz zaproszenie do grupy";
"vc_conversation_settings_invite_button_title" = "Dodaj użytkowników";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_survey_button_title" = "Opinia / Ankieta";
"vc_settings_support_button_title" = "Dziennik logów";
"modal_send_seed_title" = "Uwaga";
"modal_send_seed_explanation" = "To jest Twoja fraza odzyskiwania. Jeśli wyślesz ją do kogoś, będzie miał pełny dostęp do Twojego konta.";
"modal_send_seed_send_button_title" = "Wyślij";
"vc_conversation_settings_notify_for_mentions_only_title" = "Powiadom tylko o wzmiankach";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Gdy włączone, będzie wysyłane powiadomienie tylko o wiadomościach które wspominają ciebie.";
"view_conversation_title_notify_for_mentions_only" = "Powiadomienie tylko o wzmiankach";
"message_deleted" = "Ta wiadomość została usunięta";
"delete_message_for_me" = "Usuń tylko dla mnie";
"delete_message_for_everyone" = "Usuń dla wszystkich";
"delete_message_for_me_and_recipient" = "Usuń dla mnie i %@";
"context_menu_reply" = "Odpowiedz";
"context_menu_save" = "Zapisz";
"context_menu_ban_user" = "Zbanuj użytkownika";
"context_menu_ban_and_delete_all" = "Zbanuj i usuń wszystko";
"accessibility_expanding_attachments_button" = "Dodaj załączniki";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "Dokument";
"accessibility_library_button" = "Galeria zdjęć";
"accessibility_camera_button" = "Aparat";
"accessibility_main_button_collapse" = "Zwiń opcje załączników";
"invalid_recovery_phrase" = "Nieprawidłowa fraza odzyskiwania";
"invalid_recovery_phrase" = "Nieprawidłowa fraza odzyskiwania";
"DISMISS_BUTTON_TEXT" = "Odrzuć";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"OPEN_SETTINGS_BUTTON" = "Ustawienia";
"call_outgoing" = "Zadzwoniłeś/aś do %@";
"call_incoming" = "Użytkownik %@ dzwonił";
"call_missed" = "Nieodebrane połączenie od %@";
"call_rejected" = "Odrzucone połączenie";
"call_cancelled" = "Połączenie anulowane";
"call_timeout" = "Nieodebrane połączenie";
"voice_call" = "Połączenia głosowe";
"video_call" = "Wideo rozmowa";
"APN_Message" = "Masz nową wiadomość";
"APN_Collapsed_Messages" = "Masz %@ nowych wiadomości.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Closed Group";
"modal_call_permission_request_title" = "Call Permissions Required";
"modal_call_permission_request_explanation" = "You can enable the 'Voice and video calls' permission in the Privacy Settings.";
"dark_mode_theme" = "Ciemny";
"light_mode_theme" = "Jasny";
"PIN_BUTTON_TEXT" = "Przypnij";
"UNPIN_BUTTON_TEXT" = "Odepnij";
"modal_call_missed_tips_title" = "Połączenie nieodebrane";
"modal_call_missed_tips_explanation" = "Połączenie nieodebrane od '%@' ponieważ musisz włączyć uprawnienie 'Połączenia głosowe i wideo' w Ustawieniach Prywatności.";
"meida_saved" = "Media zapisane przez %@.";
"screenshot_taken" = "%@ wykonał zrzut ekranu.";
"SEARCH_SECTION_CONTACTS" = "Kontakty i grupy";
"SEARCH_SECTION_MESSAGES" = "Wiadomości";
"SEARCH_SECTION_RECENT" = "Ostatnie";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "ostatnia wiadomość: %@";
"MESSAGE_REQUESTS_TITLE" = "Żądania wiadomości";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "Brak oczekujących żądań wiadomości";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Wyczyść wszystko";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Czy na pewno chcesz wyczyścić wszystkie żądania wiadomości?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Wyczyść";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Czy na pewno chcesz usunąć to żądanie wiadomości?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "Wystąpił błąd podczas próby zaakceptowania tego żądania wiadomości";
"MESSAGE_REQUESTS_INFO" = "Wysyłanie wiadomości do tego użytkownika automatycznie zaakceptuje ich żądanie wiadomości.";
"MESSAGE_REQUESTS_ACCEPTED" = "Twoje żądanie wiadomości zostało zaakceptowane.";
"MESSAGE_REQUESTS_NOTIFICATION" = "Masz nowe żądanie wiadomości";
"TXT_HIDE_TITLE" = "Ukryj";
"TXT_DELETE_ACCEPT" = "Zaakceptuj";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Otwórz grupę";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Wiadomość prywatna";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Zamknięta Grupa";
"modal_call_permission_request_title" = "Wymagane uprawnienia połączenia";
"modal_call_permission_request_explanation" = "Możesz włączyć uprawnienie 'Połączenia głosowe i wideo' w Ustawieniach Prywatności.";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";

View File

@ -27,13 +27,13 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Erro ao Enviar Anexo";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Impossível converter imagem.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Não foi possível capturar a imagem.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Não foi possível processar o vídeo.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Não foi possível analisar a imagem.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Não foi possível suprimir os metadados da imagem.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Não é possível remover os metadados da imagem.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Impossível redimensionar imagem.";
/* Attachment error message for attachments whose data exceed file size limits */
@ -307,9 +307,9 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "Álbum sem nome";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "Marcar como Lido";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "Responder";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Não podemos ativar sua conta até que você verifique o código que enviamos.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Enviar pré-visualizações de links";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Pré-visualizações de links suportadas para Imgur, Instagram, Pinterest, Reddit e YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Pré-visualizações são suportadas para a maioria do urls.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Pré-visualizações de links";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Chamadas de voz e vídeo";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Permitir acesso para aceitar ligações de voz e vídeo de outros usuários.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Chamadas";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Conteúdo de Notificação";
/* Label for the 'read receipts' setting. */
@ -518,11 +524,11 @@
"modal_seed_explanation" = "Esta é sua frase de recuperação. Com ela, você pode restaurar ou migrar seu ID Session para um novo dispositivo.";
"modal_clear_all_data_title" = "Limpar todos os dados";
"modal_clear_all_data_explanation" = "Isso excluirá permanentemente suas mensagens, sessões e contatos.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "Você gostaria de limpar apenas esse dispositivo, ou deletar sua conta?";
"dialog_clear_all_data_deletion_failed_1" = "Dados não excluídos por 1 Service Node. ID do Service Node: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Dados não excluídos por %@ Service Nodes. IDs dos Service Nodes: %@.";
"modal_clear_all_data_device_only_button_title" = "Somente esse dispositivo";
"modal_clear_all_data_entire_account_button_title" = "Conta inteira";
"vc_qr_code_title" = "Código QR";
"vc_qr_code_view_my_qr_code_tab_title" = "Ver meu código QR";
"vc_qr_code_view_scan_qr_code_tab_title" = "Escanear código QR";
@ -555,15 +561,17 @@
"modal_open_url_title" = "Abrir URL?";
"modal_open_url_explanation" = "Você tem certeza que deseja abrir %@/?";
"modal_open_url_button_title" = "Abrir";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Copiar link";
"modal_blocked_title" = "Desbloquear %@?";
"modal_blocked_explanation" = "Você tem certeza que deseja desbloquear %@?";
"modal_blocked_button_title" = "Desbloquear";
"modal_link_previews_title" = "Ativar pré-visualizações de link?";
"modal_link_previews_explanation" = "Ativar a pré-visualização de links irá mostrar as URLs que você receber e enviar. Isto pode ser útil, o Session precisa se conectar aos sites vinculados gerar as prévias. Você poderá desabiliatar esta opção nas configurações do Session.";
"modal_link_previews_button_title" = "Ativar";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Chamadas de voz / vídeo";
"modal_call_explanation" = "A implementação atual das chamadas de voz / vídeo irá expor seu endereço IP aos servidores da Oxen Foundation e ao usuário chamado chamador.";
"modal_share_logs_title" = "Compartilhar logs";
"modal_share_logs_explanation" = "Você deseja exportar os logs do aplicativo para nos ajudar a resolver esse problema?";
"vc_share_title" = "Compartilhar no Session";
"vc_share_loading_message" = "Preparando anexos...";
"vc_share_sending_message" = "Enviando...";
@ -573,39 +581,57 @@
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "Convite para grupo aberto";
"vc_conversation_settings_invite_button_title" = "Adicionar Membros";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_faq_button_title" = "Perguntas Frequentes";
"vc_settings_survey_button_title" = "Feedback / Pesquisa";
"vc_settings_support_button_title" = "Logs de depuração";
"modal_send_seed_title" = "Aviso";
"modal_send_seed_explanation" = "Essa é sua frase de recuperação. Se você mandá-la para alguem, essa pessoa terá acesso completo a sua conta.";
"modal_send_seed_send_button_title" = "Enviar";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notificar apenas menções";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Quando ativo, você só receberá notificações quando alguém mencionar você.";
"view_conversation_title_notify_for_mentions_only" = "Apenas notifcar quando mencionado";
"message_deleted" = "Essa mensagem foi deletada";
"delete_message_for_me" = "Apagar para mim";
"delete_message_for_everyone" = "Apagar para todos";
"delete_message_for_me_and_recipient" = "Apagar para mim e para %@";
"context_menu_reply" = "Responder";
"context_menu_save" = "Salvar";
"context_menu_ban_user" = "Banir Usuário";
"context_menu_ban_and_delete_all" = "Banir e Apagar Tudo";
"accessibility_expanding_attachments_button" = "Adicionar anexos";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "Documento";
"accessibility_library_button" = "Biblioteca de Fotos";
"accessibility_camera_button" = "Câmera";
"accessibility_main_button_collapse" = "Recolher opções de anexo";
"invalid_recovery_phrase" = "Frase de Recuperação inválida";
"invalid_recovery_phrase" = "Frase de Recuperação inválida";
"DISMISS_BUTTON_TEXT" = "Ignorar";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"OPEN_SETTINGS_BUTTON" = "Configurações";
"call_outgoing" = "Você ligou para %@";
"call_incoming" = "%@ Ligou para você";
"call_missed" = "Ligação perdida de %@";
"call_rejected" = "Ligação rejeitada";
"call_cancelled" = "Ligação cancelada";
"call_timeout" = "Ligação não atendida";
"voice_call" = "Chamada de voz";
"video_call" = "Chamada de vídeo";
"APN_Message" = "Você recebem uma nova mensagem.";
"APN_Collapsed_Messages" = "Você tem %@ novas mensagens.";
"system_mode_theme" = "Sistema";
"dark_mode_theme" = "Escuro";
"light_mode_theme" = "Claro";
"PIN_BUTTON_TEXT" = "Fixar";
"UNPIN_BUTTON_TEXT" = "Desfixar";
"modal_call_missed_tips_title" = "Chamada perdida";
"modal_call_missed_tips_explanation" = "Chamada perdida de '%@', você precisa habilitar a permissão de 'Voz e Video' nas configurações de Privacidade.";
"meida_saved" = "Mídia salva por %@.";
"screenshot_taken" = "%@ fez uma captura de tela.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -27,23 +27,23 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Ошибка отправки вложения";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Невозможно конвертировать изображение.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Unable to process video.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Невозможно обработать видео.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Невозможно распознать изображение.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Unable to remove metadata from image.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Не удается удалить метаданные из изображения.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Невозможно изменить размер изображения.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Attachment is too large.";
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Вложение слишком большое.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Вложение содержит неподдерживаемое содержимое.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Вложение имеет неверный формат файла.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Attachment is empty.";
"ATTACHMENT_ERROR_MISSING_DATA" = "Вложение без содержимого.";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Не удалось выбрать документ.";
/* Alert body when picking a document fails because user picked a directory/bundle */
@ -105,7 +105,7 @@
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ был(-a) разблокирован(-a).";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Теперь участники группы могут снова добавить вас в группу.";
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Существующие члены группы теперь могут снова вас добавить.";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Заблокированные пользователи не смогут звонить или отправлять сообщения Вам.";
/* Label for generic done button. */
@ -307,9 +307,9 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "Безымянный альбом";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "Отметить как прочтенное";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "Ответить";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Невозможно активировать аккаунт до подтверждения отправленного вам кода.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Отправлять предпросмотр ссылки";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Предварительный просмотр поддерживается для ссылок Imgur, Instagram, Pinterest, Reddit и YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Предпросмотр поддерживается для большинства ссылок.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Предпросмотры ссылок";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Голосовые и видео вызовы";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Разрешить принимать голосовые и видео вызовы от других пользователей.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Вызовы";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Содержимое уведомления";
/* Label for the 'read receipts' setting. */
@ -472,7 +478,7 @@
"vc_home_empty_state_button_title" = "Начать Сессию";
"vc_seed_title" = "Ваша секретная фраза для восстановления";
"vc_seed_title_2" = "А вот и ваша секретная фраза для восстановления";
"vc_seed_explanation" = "Ваша секретная фраза является главным ключом к вашему Session ID. Вы можете использовать ее для восстановления Session ID, если потеряете доступ к своему устройству. Сохраните свою секретную фразу в безопасном месте, и никому её не передавайте.";
"vc_seed_explanation" = "Ваша фраза восстановления является главным ключом к вашему Session ID. Храните свою фразу восстановления в надежном месте и никому ее не передавайте.";
"vc_seed_reveal_button_title" = "Удерживайте, чтобы показать";
"view_seed_reminder_subtitle_1" = "Защитите свой аккаунт, сохранив секретную фразу";
"view_seed_reminder_subtitle_2" = "Нажмите и удерживайте сокращенные слова, чтобы открыть секретную фразу, а затем сохраните ее в надежном месте, чтобы защитить свой Session ID.";
@ -518,11 +524,11 @@
"modal_seed_explanation" = "Это ваша секретная фраза. С ее помощью вы можете восстановить или перенести свой Session ID на новое устройство.";
"modal_clear_all_data_title" = "Очистить все данные";
"modal_clear_all_data_explanation" = "Это навсегда удалит ваши сообщения, сессии и контакты.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "Вы хотите очистить только это устройство или полностью удалить ваш аккаунт?";
"dialog_clear_all_data_deletion_failed_1" = "Данные не удалены 1 узлом сервиса. Номер узла: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Данные не удалены %@ узлами сервиса. Номера узлов: %@.";
"modal_clear_all_data_device_only_button_title" = "Только устройство";
"modal_clear_all_data_entire_account_button_title" = "Полностью аккаунт";
"vc_qr_code_title" = "QR-код";
"vc_qr_code_view_my_qr_code_tab_title" = "Посмотреть мой QR-код";
"vc_qr_code_view_scan_qr_code_tab_title" = "Сканировать QR-код";
@ -555,68 +561,88 @@
"modal_open_url_title" = "Открыть ссылку?";
"modal_open_url_explanation" = "Вы уверены, что хотите открыть %@?";
"modal_open_url_button_title" = "Открыть";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Копировать ссылку";
"modal_blocked_title" = "Разблокировать %@?";
"modal_blocked_explanation" = "Вы уверены, что хотите разблокировать %@?";
"modal_blocked_button_title" = "Разблокировать";
"modal_link_previews_title" = "Включить предварительный просмотр ссылок?";
"modal_link_previews_explanation" = "Включение предпросмотра ссылок покажет превью для отправляемых и получаемых ссылок. Это может быть полезно, но Session нужно будет соединиться с сайтами, связанными с ссылками, чтобы сгенерировать предпросмотр. Вы всегда можете отключить предпросмотр ссылок в настройках Session.";
"modal_link_previews_button_title" = "Включить";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "Голосовые / видео вызовы";
"modal_call_explanation" = "Текущая реализация голосовых / видео вызовов предоставит ваш IP-адрес серверам Oxen Foundation и вызывающему / вызываемому пользователю.";
"modal_share_logs_title" = "Отправить журнал";
"modal_share_logs_explanation" = "Вы хотите экспортировать журналы приложения, чтобы иметь возможность поделиться ими для устранения неполадок?";
"vc_share_title" = "Поделиться в Session";
"vc_share_loading_message" = "Подготовка вложений...";
"vc_share_sending_message" = "Отправка...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_unsecure" = "Предпросмотр не загружен для небезопасных ссылок";
"vc_share_link_previews_error" = "Невозможно загрузить предпросмотр";
"vc_share_link_previews_disabled_title" = "Ссылка предпросмотра выключена";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "Открыть приглашение в группу";
"vc_conversation_settings_invite_button_title" = "Добавить участников";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_faq_button_title" = "Часто задаваемые вопросы";
"vc_settings_survey_button_title" = "Обратная связь / Опрос";
"vc_settings_support_button_title" = "Журнал отладки";
"modal_send_seed_title" = "Предупреждение";
"modal_send_seed_explanation" = "Это ваша фраза для восстановления. Если вы отправите ее кому-то, он получит полный доступ к вашей учетной записи.";
"modal_send_seed_send_button_title" = "Отправить";
"vc_conversation_settings_notify_for_mentions_only_title" = "Уведомлять только об упоминаниях";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Когда включено, вы будете уведомлены только о сообщениях, упоминающих вас.";
"view_conversation_title_notify_for_mentions_only" = "Уведомления только для упоминаний";
"message_deleted" = "Это сообщение было удалено";
"delete_message_for_me" = "Удалить только для меня";
"delete_message_for_everyone" = "Удалить для всех";
"delete_message_for_me_and_recipient" = "Удалить для меня и %@";
"context_menu_reply" = "Ответить";
"context_menu_save" = "Сохранить";
"context_menu_ban_user" = "Заблокировать пользователя";
"context_menu_ban_and_delete_all" = "Забанить и удалить все";
"accessibility_expanding_attachments_button" = "Добавить вложения";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "Документ";
"accessibility_library_button" = "Библиотека фотографий";
"accessibility_camera_button" = "Камера";
"accessibility_main_button_collapse" = "Свернуть параметры вложений";
"invalid_recovery_phrase" = "Неверная секретная фраза";
"invalid_recovery_phrase" = "Неверная секретная фраза";
"DISMISS_BUTTON_TEXT" = "Закрыть";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"OPEN_SETTINGS_BUTTON" = "Настройки";
"call_outgoing" = "Вы позвонили %@";
"call_incoming" = "%@ звонил(а) вам";
"call_missed" = "Пропущенный звонок от %@";
"call_rejected" = "Отклоненный вызов";
"call_cancelled" = "Отмененный вызов";
"call_timeout" = "Пропущенные вызовы";
"voice_call" = "Голосовой вызов";
"video_call" = "Видеовызов";
"APN_Message" = "Вы получили новое сообщение";
"APN_Collapsed_Messages" = "Вы получили %@ новых сообщений.";
"system_mode_theme" = "Системная";
"dark_mode_theme" = "Темная";
"light_mode_theme" = "Светлая";
"PIN_BUTTON_TEXT" = "Закрепить";
"UNPIN_BUTTON_TEXT" = "Открепить";
"modal_call_missed_tips_title" = "Пропущен вызов";
"modal_call_missed_tips_explanation" = "Вызов от '%@' пропущен, вам необходимо включить разрешение 'Голосовые и видео вызовы' в настройках Конфиденциальности.";
"meida_saved" = "%@ сохранил(а) медиафайл.";
"screenshot_taken" = "%@ сделал(а) снимок экрана.";
"SEARCH_SECTION_CONTACTS" = "Контакты и группы";
"SEARCH_SECTION_MESSAGES" = "Сообщения";
"SEARCH_SECTION_RECENT" = "Недавние";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "последнее сообщение: %@";
"MESSAGE_REQUESTS_TITLE" = "Запросы Сообщений";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "Нет ожидающих запросов";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Очистить всё";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Вы уверены, что хотите очистить все запросы сообщений?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Очистить";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Вы уверены, что хотите удалить это сообщение?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"TXT_HIDE_TITLE" = "Скрыть";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";

View File

@ -1,13 +1,13 @@
/* Label for the 'dismiss' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "Not Now";
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "දැන් නොවේ";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number}} */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Version %@ is now available in the App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Session Is Available";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Update";
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "යාවත්කාල";
/* No comment provided by engineer. */
"ATTACHMENT" = "Attachment";
"ATTACHMENT" = "ඇමුණුම";
/* One-line label indicating the user can add no more text to the attachment caption. */
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Caption limit reached.";
/* placeholder text for an empty captioning field */
@ -15,15 +15,15 @@
/* Title for 'caption' mode of the attachment approval view. */
"ATTACHMENT_APPROVAL_CAPTION_TITLE" = "Caption";
/* Format string for file extension label in call interstitial view */
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "File type: %@";
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "ගොනුවේ වර්ගය: %@";
/* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */
"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Size: %@";
"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "ප්‍රමාණය: %@";
/* One-line label indicating the user can add no more text to the media message field. */
"ATTACHMENT_APPROVAL_MESSAGE_LENGTH_LIMIT_REACHED" = "Message limit reached";
/* Label for 'send' button in the 'attachment approval' dialog. */
"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Send";
"ATTACHMENT_APPROVAL_SEND_BUTTON" = "යවන්න";
/* Generic filename for an attachment with no known name */
"ATTACHMENT_DEFAULT_FILENAME" = "Attachment";
"ATTACHMENT_DEFAULT_FILENAME" = "ඇමුණුම";
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Error Sending Attachment";
/* Attachment error message for image attachments which could not be converted to JPEG */
@ -49,7 +49,7 @@
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "සහාය නොදක්වන ගොනුවකි";
/* Short text label for a voice message attachment, used for thread preview and on the lock screen */
"ATTACHMENT_TYPE_VOICE_MESSAGE" = "Voice Message";
/* Error indicating the backup export could not export the user's data. */
@ -61,17 +61,17 @@
/* Indicates that the backup export is being configured. */
"BACKUP_EXPORT_PHASE_CONFIGURATION" = "Initializing Backup";
/* Indicates that the database data is being exported. */
"BACKUP_EXPORT_PHASE_DATABASE_EXPORT" = "Exporting Data";
"BACKUP_EXPORT_PHASE_DATABASE_EXPORT" = "දත්ත නිර්යාත වෙමින්";
/* Indicates that the backup export data is being exported. */
"BACKUP_EXPORT_PHASE_EXPORT" = "Exporting Backup";
"BACKUP_EXPORT_PHASE_EXPORT" = "උපස්ථය නිර්යාත වෙමින්";
/* Indicates that the backup export data is being uploaded. */
"BACKUP_EXPORT_PHASE_UPLOAD" = "Uploading Backup";
/* Error indicating the backup import could not import the user's data. */
"BACKUP_IMPORT_ERROR_COULD_NOT_IMPORT" = "Backup could not be imported.";
/* Indicates that the backup import is being configured. */
"BACKUP_IMPORT_PHASE_CONFIGURATION" = "Configuring Backup";
"BACKUP_IMPORT_PHASE_CONFIGURATION" = "උපස්ථය වින්‍යාසගත වෙමින්";
/* Indicates that the backup import data is being downloaded. */
"BACKUP_IMPORT_PHASE_DOWNLOAD" = "Downloading Backup Data";
"BACKUP_IMPORT_PHASE_DOWNLOAD" = "උපස්ථ දත්ත බාගැනෙමින්";
/* Indicates that the backup import data is being finalized. */
"BACKUP_IMPORT_PHASE_FINALIZING" = "Finalizing Backup";
/* Indicates that the backup import data is being imported. */
@ -87,11 +87,11 @@
/* Label for the backup restore progress. */
"BACKUP_RESTORE_PROGRESS" = "Progress";
/* Label for the backup restore status. */
"BACKUP_RESTORE_STATUS" = "Status";
"BACKUP_RESTORE_STATUS" = "තත්වය";
/* Error shown when backup fails due to an unexpected error. */
"BACKUP_UNEXPECTED_ERROR" = "Unexpected Backup Error";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
"BLOCK_LIST_BLOCK_BUTTON" = "අවහිර";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
@ -103,7 +103,7 @@
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "Oseba %@ je bila odblokirana";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* An explanation of the consequences of blocking another user. */
@ -173,17 +173,17 @@
/* Format string for a relative time, expressed as a certain number of minutes in the past. Embeds {{The number of minutes}}. */
"DATE_MINUTES_AGO_FORMAT" = "%@ Min Ago";
/* The present; the current time. */
"DATE_NOW" = "Now";
"DATE_NOW" = "දැන්";
/* The current day. */
"DATE_TODAY" = "Today";
"DATE_TODAY" = "අද";
/* The day before today. */
"DATE_YESTERDAY" = "Yesterday";
"DATE_YESTERDAY" = "ඊයේ";
/* table cell label in conversation settings */
"DISAPPEARING_MESSAGES" = "Disappearing Messages";
/* Info Message when added to a group which has enabled disappearing messages. Embeds {{time amount}} before messages disappear, see the *_TIME_AMOUNT strings for context. */
"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "Messages in this conversation will disappear after %@.";
/* table cell label in conversation settings */
"EDIT_GROUP_ACTION" = "Edit Group";
"EDIT_GROUP_ACTION" = "සමූහය සංස්කරණය";
/* Label indicating media gallery is empty */
"GALLERY_TILES_EMPTY_GALLERY" = "You don't have any media in this conversation.";
/* Label indicating loading is in progress */
@ -201,13 +201,13 @@
/* Indicates that an error occurred while searching. */
"GIF_VIEW_SEARCH_ERROR" = "Error. Tap to Retry.";
/* Indicates that the user's search had no results. */
"GIF_VIEW_SEARCH_NO_RESULTS" = "No Results.";
"GIF_VIEW_SEARCH_NO_RESULTS" = "ප්‍රතිඵල නැත.";
/* No comment provided by engineer. */
"GROUP_CREATED" = "Group created";
/* No comment provided by engineer. */
"GROUP_MEMBER_JOINED" = " %@ joined the group. ";
/* No comment provided by engineer. */
"GROUP_MEMBER_LEFT" = " %@ left the group. ";
"GROUP_MEMBER_LEFT" = " %@ සමූහය හැරගියා. ";
/* No comment provided by engineer. */
"GROUP_MEMBER_REMOVED" = " %@ was removed from the group. ";
/* No comment provided by engineer. */
@ -229,13 +229,13 @@
/* Slider label when disappearing messages is off */
"KEEP_MESSAGES_FOREVER" = "Messages do not disappear.";
/* Confirmation button within contextual alert */
"LEAVE_BUTTON_TITLE" = "Leave";
"LEAVE_BUTTON_TITLE" = "හැරයන්න";
/* table cell label in conversation settings */
"LEAVE_GROUP_ACTION" = "Leave Group";
"LEAVE_GROUP_ACTION" = "සමූහය හැරයන්න";
/* Title for the 'long text message' view. */
"LONG_TEXT_VIEW_TITLE" = "Message";
"LONG_TEXT_VIEW_TITLE" = "පණිවිඩය";
/* nav bar button item */
"MEDIA_DETAIL_VIEW_ALL_MEDIA_BUTTON" = "All Media";
"MEDIA_DETAIL_VIEW_ALL_MEDIA_BUTTON" = "සියළුම මාධ්‍යය";
/* media picker option to choose from library */
"MEDIA_FROM_LIBRARY_BUTTON" = "Photo Library";
/* Confirmation button text to delete selected media from the gallery, embeds {{number of messages}} */
@ -247,9 +247,9 @@
/* Format for the 'more items' indicator for media galleries. Embeds {{the number of additional items}}. */
"MEDIA_GALLERY_MORE_ITEMS_FORMAT" = "+%@";
/* Short sender label for media sent by you */
"MEDIA_GALLERY_SENDER_NAME_YOU" = "You";
"MEDIA_GALLERY_SENDER_NAME_YOU" = "ඔබ";
/* Section header in media gallery collection view */
"MEDIA_GALLERY_THIS_MONTH_HEADER" = "This Month";
"MEDIA_GALLERY_THIS_MONTH_HEADER" = "මෙම මාසය";
/* message status for message delivered to their recipient. */
"MESSAGE_STATUS_DELIVERED" = "Delivered";
/* status message for failed messages */
@ -283,15 +283,15 @@
/* Table cell switch label. When disabled, Session will not play notification sounds while the app is in the foreground. */
"NOTIFICATIONS_SECTION_INAPP" = "Play While App is Open";
/* Label for settings UI that allows user to change the notification sound. */
"NOTIFICATIONS_SECTION_SOUNDS" = "Sounds";
"NOTIFICATIONS_SECTION_SOUNDS" = "ශබ්ද";
/* No comment provided by engineer. */
"NOTIFICATIONS_SENDER_AND_MESSAGE" = "Name and Content";
"NOTIFICATIONS_SENDER_AND_MESSAGE" = "නම සහ අන්තර්ගතය";
/* No comment provided by engineer. */
"NOTIFICATIONS_SENDER_ONLY" = "Name Only";
"NOTIFICATIONS_SENDER_ONLY" = "නම පමණි";
/* No comment provided by engineer. */
"NOTIFICATIONS_NONE" = "No Name or Content";
"NOTIFICATIONS_NONE" = "නමක් හෝ අන්තර්ගතයක් නැත";
/* No comment provided by engineer. */
"NOTIFICATIONS_SHOW" = "Show";
"NOTIFICATIONS_SHOW" = "පෙන්වන්න";
/* No comment provided by engineer. */
"BUTTON_OK" = "OK";
/* Info Message when {{other user}} disables or doesn't support disappearing messages */
@ -309,11 +309,11 @@
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "පිළිතුරු";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "We can't activate your account until you verify the code we sent you.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
"SCREEN_LOCK_ACTIVITY_TIMEOUT_NONE" = "Instant";
"SCREEN_LOCK_ACTIVITY_TIMEOUT_NONE" = "ක්ෂණික";
/* Description of how and why Session iOS uses Touch ID/Face ID/Phone Passcode to unlock 'screen lock'. */
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Authenticate to open Session.";
/* Title for alert indicating that screen lock could not be unlocked. */
@ -351,11 +351,11 @@
/* Label for phase row in the in the backup settings view. */
"SETTINGS_BACKUP_PROGRESS" = "Progress";
/* Label for backup status row in the in the backup settings view. */
"SETTINGS_BACKUP_STATUS" = "Status";
"SETTINGS_BACKUP_STATUS" = "තත්වය";
/* Indicates that the last backup failed. */
"SETTINGS_BACKUP_STATUS_FAILED" = "Backup Failed";
/* Indicates that app is not backing up. */
"SETTINGS_BACKUP_STATUS_IDLE" = "Waiting";
"SETTINGS_BACKUP_STATUS_IDLE" = "රැඳෙමින්";
/* Indicates that app is backing up. */
"SETTINGS_BACKUP_STATUS_IN_PROGRESS" = "Backing Up";
/* Indicates that the last backup succeeded. */
@ -367,63 +367,69 @@
/* Section header */
"SETTINGS_HISTORYLOG_TITLE" = "Clear Conversation History";
/* Label for settings view that allows user to change the notification sound. */
"SETTINGS_ITEM_NOTIFICATION_SOUND" = "Message Sound";
"SETTINGS_ITEM_NOTIFICATION_SOUND" = "පණිවිඩ ශබ්දය";
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Send Link Previews";
"SETTINGS_LINK_PREVIEWS" = "සබැඳියේ පෙරදසුන් යවන්න";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Previews are supported for most urls.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Link Previews";
"SETTINGS_LINK_PREVIEWS_HEADER" = "සබැඳි පෙරදසුන්";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Voice and video calls";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Allow access to accept voice and video calls from other users.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Calls";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Notification Content";
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "දැනුම්දීමේ අන්තර්ගතය";
/* Label for the 'read receipts' setting. */
"SETTINGS_READ_RECEIPT" = "Read Receipts";
"SETTINGS_READ_RECEIPT" = "කියවූ බවට ලදුපත්";
/* An explanation of the 'read receipts' setting. */
"SETTINGS_READ_RECEIPTS_SECTION_FOOTER" = "See and share when messages have been read. This setting is optional and applies to all conversations.";
/* Label for the 'screen lock activity timeout' setting of the privacy settings. */
"SETTINGS_SCREEN_LOCK_ACTIVITY_TIMEOUT" = "Screen Lock Timeout";
/* Title for the 'screen lock' section of the privacy settings. */
"SETTINGS_SCREEN_LOCK_SECTION_TITLE" = "Screen Lock";
"SETTINGS_SCREEN_LOCK_SECTION_TITLE" = "තිර අගුල";
/* Label for the 'enable screen lock' switch of the privacy settings. */
"SETTINGS_SCREEN_LOCK_SWITCH_LABEL" = "Screen Lock";
"SETTINGS_SCREEN_LOCK_SWITCH_LABEL" = "තිර අගුල";
/* Header Label for the sounds section of settings views. */
"SETTINGS_SECTION_SOUNDS" = "Sounds";
"SETTINGS_SECTION_SOUNDS" = "ශබ්ද";
/* Section header */
"SETTINGS_SECURITY_TITLE" = "Screen Security";
"SETTINGS_SECURITY_TITLE" = "තිරයේ ආරක්ෂාව";
/* Label for the 'typing indicators' setting. */
"SETTINGS_TYPING_INDICATORS" = "Typing Indicators";
/* Label for the 'no sound' option that allows users to disable sounds for notifications, etc. */
"SOUNDS_NONE" = "None";
/* {{number of days}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 days}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_DAYS" = "%@ days";
"TIME_AMOUNT_DAYS" = "දවස් %@";
/* Label text below navbar button, embeds {{number of days}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5d' not '5 d'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_DAYS_SHORT_FORMAT" = "%@d";
/* {{number of hours}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 hours}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_HOURS" = "%@ hours";
"TIME_AMOUNT_HOURS" = "පැය %@";
/* Label text below navbar button, embeds {{number of hours}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5h' not '5 h'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_HOURS_SHORT_FORMAT" = "%@h";
/* {{number of minutes}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 minutes}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_MINUTES" = "%@ minutes";
"TIME_AMOUNT_MINUTES" = "විනාඩි %@";
/* Label text below navbar button, embeds {{number of minutes}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5m' not '5 m'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_MINUTES_SHORT_FORMAT" = "%@m";
/* {{number of seconds}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 seconds}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SECONDS" = "%@ seconds";
"TIME_AMOUNT_SECONDS" = "තත්පර %@";
/* Label text below navbar button, embeds {{number of seconds}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5s' not '5 s'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SECONDS_SHORT_FORMAT" = "%@s";
/* {{1 day}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 day}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_DAY" = "%@ day";
"TIME_AMOUNT_SINGLE_DAY" = "දවස් %@";
/* {{1 hour}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 hour}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_HOUR" = "%@ hour";
"TIME_AMOUNT_SINGLE_HOUR" = "පැය %@";
/* {{1 minute}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 minute}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_MINUTE" = "%@ minute";
"TIME_AMOUNT_SINGLE_MINUTE" = "විනාඩි %@";
/* {{1 week}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 week}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_WEEK" = "%@ week";
"TIME_AMOUNT_SINGLE_WEEK" = "සති %@";
/* {{number of weeks}}, embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 weeks}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_WEEKS" = "%@ weeks";
"TIME_AMOUNT_WEEKS" = "සති %@";
/* Label text below navbar button, embeds {{number of weeks}}. Must be very short, like 1 or 2 characters, The space is intentionally omitted between the text and the embedded duration so that we get, e.g. '5w' not '5 w'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_WEEKS_SHORT_FORMAT" = "%@w";
/* Label for the cancel button in an alert or action sheet. */
"TXT_CANCEL_TITLE" = "Cancel";
"TXT_CANCEL_TITLE" = "අවලංගු";
/* No comment provided by engineer. */
"TXT_DELETE_TITLE" = "Delete";
/* Filename for voice messages. */
@ -437,24 +443,24 @@
/* Info message embedding a {{time amount}}, see the *_TIME_AMOUNT strings for context. */
"YOU_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "You set disappearing message time to %@";
// MARK: - Session
"continue_2" = "Continue";
"copy" = "Copy";
"invalid_url" = "Invalid URL";
"next" = "Next";
"share" = "Share";
"continue_2" = "ඉදිරියට";
"copy" = "පිටපත්";
"invalid_url" = "ඒ.ස.නි. වලංගු නොවේ";
"next" = "ඊළඟ";
"share" = "බෙදාගන්න";
"invalid_session_id" = "Invalid Session ID";
"cancel" = "Cancel";
"cancel" = "අවලංගු";
"your_session_id" = "Your Session ID";
"vc_landing_title_2" = "Your Session begins here...";
"vc_landing_register_button_title" = "Create Session ID";
"vc_landing_restore_button_title" = "Continue Your Session";
"vc_landing_link_button_title" = "Link a Device";
"view_fake_chat_bubble_1" = "What's Session?";
"view_fake_chat_bubble_1" = "සෙෂන් යනු කුමක්ද?";
"view_fake_chat_bubble_2" = "It's a decentralized, encrypted messaging app";
"view_fake_chat_bubble_3" = "So it doesn't collect my personal information or my conversation metadata? How does it work?";
"view_fake_chat_bubble_4" = "Using a combination of advanced anonymous routing and end-to-end encryption technologies.";
"view_fake_chat_bubble_5" = "Friends don't let friends use compromised messengers. You're welcome.";
"vc_register_title" = "Say hello to your Session ID";
"vc_register_title" = "ඔබගේ සෙෂන් හැඳු. ආයුබෝවන් කියන්න";
"vc_register_explanation" = "Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.";
"vc_restore_title" = "Restore your account";
"vc_restore_explanation" = "Enter the recovery phrase that was given to you when you signed up to restore your account.";
@ -466,7 +472,7 @@
"vc_display_name_text_field_hint" = "Enter a display name";
"vc_display_name_display_name_missing_error" = "Please pick a display name";
"vc_display_name_display_name_too_long_error" = "Please pick a shorter display name";
"vc_pn_mode_recommended_option_tag" = "Recommended";
"vc_pn_mode_recommended_option_tag" = "නිර්දේශිතයි";
"vc_pn_mode_no_option_picked_modal_title" = "Please Pick an Option";
"vc_home_empty_state_message" = "You don't have any contacts yet";
"vc_home_empty_state_button_title" = "Start a Session";
@ -479,7 +485,7 @@
"view_seed_reminder_subtitle_3" = "Make sure to store your recovery phrase in a safe place";
"vc_path_title" = "Path";
"vc_path_explanation" = "Session hides your IP by routing your messages through multiple Service Nodes in Session's decentralized network. These are the countries your connection is currently being routed through:";
"vc_path_device_row_title" = "You";
"vc_path_device_row_title" = "ඔබ";
"vc_path_guard_node_row_title" = "Entry Node";
"vc_path_service_node_row_title" = "Service Node";
"vc_path_destination_row_title" = "Destination";
@ -503,16 +509,16 @@
"vc_join_public_chat_scan_qr_code_tab_title" = "Scan QR Code";
"vc_join_public_chat_scan_qr_code_explanation" = "Scan the QR code of the open group you'd like to join";
"vc_enter_chat_url_text_field_hint" = "Enter an open group URL";
"vc_settings_title" = "Settings";
"vc_settings_title" = "සැකසුම්";
"vc_settings_display_name_text_field_hint" = "Enter a display name";
"vc_settings_display_name_missing_error" = "Please pick a display name";
"vc_settings_display_name_too_long_error" = "Please pick a shorter display name";
"vc_settings_privacy_button_title" = "Privacy";
"vc_settings_notifications_button_title" = "Notifications";
"vc_settings_privacy_button_title" = "පෞද්ගලිකත්වය";
"vc_settings_notifications_button_title" = "දැනුම්දීම්";
"vc_settings_recovery_phrase_button_title" = "Recovery Phrase";
"vc_settings_clear_all_data_button_title" = "Clear Data";
"vc_notification_settings_title" = "Notifications";
"vc_privacy_settings_title" = "Privacy";
"vc_notification_settings_title" = "දැනුම්දීම්";
"vc_privacy_settings_title" = "පෞද්ගලිකත්වය";
"preferences_notifications_strategy_category_title" = "Notification Strategy";
"modal_seed_title" = "Your Recovery Phrase";
"modal_seed_explanation" = "This is your recovery phrase. With it, you can restore or migrate your Session ID to a new device.";
@ -533,52 +539,54 @@
"fast_mode" = "Fast Mode";
"slow_mode_explanation" = "Session will occasionally check for new messages in the background.";
"slow_mode" = "Slow Mode";
"vc_pn_mode_title" = "Message Notifications";
"vc_pn_mode_title" = "පණිවිඩ දැනුම්දීම්";
"vc_notification_settings_notification_mode_title" = "Use Fast Mode";
"vc_link_device_recovery_phrase_tab_title" = "Recovery Phrase";
"vc_link_device_scan_qr_code_explanation" = "Navigate to Settings → Recovery Phrase on your other device to show your QR code.";
"vc_enter_recovery_phrase_title" = "Recovery Phrase";
"vc_enter_recovery_phrase_explanation" = "To link your device, enter the recovery phrase that was given to you when you signed up.";
"vc_enter_public_key_text_field_hint" = "Enter Session ID or ONS name";
"vc_home_title" = "Messages";
"vc_home_title" = "පණිවිඩ";
"admin_group_leave_warning" = "Because you are the creator of this group it will be deleted for everyone. This cannot be undone.";
"vc_join_open_group_suggestions_title" = "Or join one of these...";
"vc_settings_invite_a_friend_button_title" = "Invite a Friend";
"vc_settings_help_us_translate_button_title" = "Help us Translate Session";
"copied" = "Copied";
"copied" = "පිටපත් විය";
"vc_conversation_settings_copy_session_id_button_title" = "Copy Session ID";
"vc_conversation_input_prompt" = "Message";
"vc_conversation_input_prompt" = "පණිවිඩය";
"vc_conversation_voice_message_cancel_message" = "Slide to Cancel";
"modal_download_attachment_title" = "Trust %@?";
"modal_download_attachment_title" = "%@ විශ්වාස ද?";
"modal_download_attachment_explanation" = "Are you sure you want to download media sent by %@?";
"modal_download_button_title" = "Download";
"modal_open_url_title" = "Open URL?";
"modal_download_button_title" = "බාගන්න";
"modal_open_url_title" = "ඒ.ස.නි. විවෘත?";
"modal_open_url_explanation" = "Are you sure you want to open %@?";
"modal_open_url_button_title" = "Open";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Unblock %@?";
"modal_open_url_button_title" = "විවෘත";
"modal_copy_url_button_title" = "සබැඳිය පිටපත්";
"modal_blocked_title" = "%@ අනවහිර?";
"modal_blocked_explanation" = "Are you sure you want to unblock %@?";
"modal_blocked_button_title" = "Unblock";
"modal_blocked_button_title" = "අනවහිර";
"modal_link_previews_title" = "Enable Link Previews?";
"modal_link_previews_explanation" = "Enabling link previews will show previews for URLs you send and receive. This can be useful, but Session will need to contact linked websites to generate previews. You can always disable link previews in Session's settings.";
"modal_link_previews_button_title" = "Enable";
"modal_link_previews_button_title" = "සබල කරන්න";
"modal_call_title" = "Voice / video calls";
"modal_call_explanation" = "The current implementation of voice / video calls will expose your IP address to the Oxen Foundation servers and the calling / called user.";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "Share to Session";
"vc_share_title" = "සෙෂන් වෙත බෙදාගන්න";
"vc_share_loading_message" = "Preparing attachments...";
"vc_share_sending_message" = "Sending...";
"vc_share_sending_message" = "යැවෙමින්...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "Open group invitation";
"vc_conversation_settings_invite_button_title" = "Add Members";
"vc_settings_faq_button_title" = "FAQ";
"vc_conversation_settings_invite_button_title" = "සාමාජිකයින් එක්කරන්න";
"vc_settings_faq_button_title" = "නිති පැණ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_title" = "අවවාදයයි";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"modal_send_seed_send_button_title" = "යවන්න";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
@ -586,26 +594,44 @@
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_reply" = "පිළිතුරු";
"context_menu_save" = "සුරකින්න";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"accessibility_expanding_attachments_button" = "ඇමුණුම් එක්කරන්න";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_document_button" = "ලේඛනය";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"OPEN_SETTINGS_BUTTON" = "සැකසුම්";
"call_outgoing" = "You called %@";
"call_incoming" = "%@ called you";
"call_missed" = "Missed Call from %@";
"call_rejected" = "Rejected Call";
"call_cancelled" = "Cancelled Call";
"call_timeout" = "Unanswered Call";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"APN_Message" = "You've got a new message.";
"APN_Collapsed_Messages" = "You've got %@ new messages.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"PIN_BUTTON_TEXT" = "Pin";
"UNPIN_BUTTON_TEXT" = "Unpin";
"modal_call_missed_tips_title" = "Call missed";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ took a screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -27,23 +27,23 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Chyba pri posielaní prílohy";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Obrázok sa nepodarilo skonvertovať.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Obrázok nie je možné konvertovať.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Video sa nepodarilo spracovať.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Video nie je možné spracovať.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Obrázok sa nepodarilo spracovať.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Obrázok nie je možné spracovať.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Z obrázku sa nepodarilo odstrániť metadáta.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Nie je možné z obrázku odstrániť metadáta.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Nepodarilo sa zmeniť veľkosť obrázka.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Nie je možné zmeniť rozmer obrázku.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Príloha je priliš veľká.";
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Príloha je priveľká.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Príloha obsahuje neplatný obsah.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Príloha obsahuje neplatné prvky.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Príloha má neplatný formát súboru.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Príloha má neplatný typ súboru.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Príloha je prázdna.";
"ATTACHMENT_ERROR_MISSING_DATA" = "Príloha neobsahuje žiadne údaje.";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Nepodarilo sa vybrať dokument.";
/* Alert body when picking a document fails because user picked a directory/bundle */
@ -89,39 +89,39 @@
/* Label for the backup restore status. */
"BACKUP_RESTORE_STATUS" = "Stav";
/* Error shown when backup fails due to an unexpected error. */
"BACKUP_UNEXPECTED_ERROR" = "Neočakávaná chyba zálohovania";
"BACKUP_UNEXPECTED_ERROR" = "Nečakaná Chyba Zálohy";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokovať";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Blokovať %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Zablokovať %@?";
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Odblokovať %@?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Odblokovať";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ bol/a zablokovaný/á.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Používateľ blokovaný";
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Používateľ Zablokovaný";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ bol/a odblokovaný/á.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Súčasný členovia skupiny vás teraz už môžu znova pridať.";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Blokovaný používateľ vám nebude mocť volať ani posielať správy.";
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Zablokovaný používatelia vám nebudú môcť zavolať ani posielať správy.";
/* Label for generic done button. */
"BUTTON_DONE" = "Hotovo";
/* Button text to enable batch selection mode */
"BUTTON_SELECT" = "Vyberte";
"BUTTON_SELECT" = "Vybrať";
/* The label for the 'do not restore backup' button. */
"CHECK_FOR_BACKUP_DO_NOT_RESTORE" = "Neobnoviť";
"CHECK_FOR_BACKUP_DO_NOT_RESTORE" = "Neobnovovať";
/* The label for the 'restore backup' button. */
"CHECK_FOR_BACKUP_RESTORE" = "Obnoviť";
/* Error indicating that the app could not determine that user's iCloud account status */
"CLOUDKIT_STATUS_COULD_NOT_DETERMINE" = "Seassion-u sa nepodarilo zistiť stav Vášho iCloud účtu. Prihláste sa do Vášho iCloud účtu v nastaveniach iOS aplikácie pre zálohovanie Vašich Seassion dát.";
"CLOUDKIT_STATUS_COULD_NOT_DETERMINE" = "Session sa nepodarilo zistiť stav vášho iCloud účtu. Prihláste sa do svojho iCloud účtu v iOS nastaveniach pre zálohovanie vašich Session dát.";
/* Error indicating that user does not have an iCloud account. */
"CLOUDKIT_STATUS_NO_ACCOUNT" = "No iCloud Account. Sign in to your iCloud Account in the iOS settings app to backup your Session data.";
"CLOUDKIT_STATUS_NO_ACCOUNT" = "Žiadny iCloud účet. Prihláste sa do vášho iCloud účtu v iOS nastaveniach pre zálohovanie vašich Session dát.";
/* Error indicating that the app was prevented from accessing the user's iCloud account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Session was denied access your iCloud account for backups. Grant Session access to your iCloud Account in the iOS settings app to backup your Session data.";
"CLOUDKIT_STATUS_RESTRICTED" = "Prístup pre Session do Vášho iCloud účtu na účely zálohovania bol zamietnutý. Povoľte aplikácii Session prístup do Vášho iCloud Účtu v aplikácii iOS Nastavenia aby sa dáta mohli zálohovať.";
/* Alert body */
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "Už nebudete môcť posielať a prijímať správy v tejto skupine.";
/* Alert title */
@ -135,7 +135,7 @@
/* keyboard toolbar label when exactly 1 message matches the search string */
"CONVERSATION_SEARCH_ONE_RESULT" = "1 zhoda";
/* keyboard toolbar label when more than 1 message matches the search string. Embeds {{number/position of the 'currently viewed' result}} and the {{total number of results}} */
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "%d of %d matches";
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "nájdených %d z %d";
/* title for conversation settings screen */
"CONVERSATION_SETTINGS" = "Nastavenia konverzácie";
/* table cell label in conversation settings */
@ -163,7 +163,7 @@
/* Label for button to unmute a thread. */
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Zrušiť stíšenie";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Presun a zmena veľkosti";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "Môže to trvať zopár minút.";
/* Title shown while the app is updating its database. */
@ -199,7 +199,7 @@
/* Alert message shown when user tries to search for GIFs without entering any search terms. */
"GIF_PICKER_VIEW_MISSING_QUERY" = "Zadajte prosím čo hľadáte.";
/* Indicates that an error occurred while searching. */
"GIF_VIEW_SEARCH_ERROR" = "Error. Tap to Retry.";
"GIF_VIEW_SEARCH_ERROR" = "Chyba. Stlačte tlačidlo a skúste to znova.";
/* Indicates that the user's search had no results. */
"GIF_VIEW_SEARCH_NO_RESULTS" = "Žiadne výsledky.";
/* No comment provided by engineer. */
@ -267,7 +267,7 @@
/* status message while attachment is uploading */
"MESSAGE_STATUS_UPLOADING" = "Odovzdáva sa…";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Toto povolenie môžete povoliť v aplikácii Nastavenia iOS.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Session potrebuje prístup k vašim fotkám pre túto funkciu.";
/* An explanation of the consequences of muting a thread. */
@ -279,7 +279,7 @@
/* Lock screen notification text presented after user powers on their device without unlocking. Embeds {{device model}} (either 'iPad' or 'iPhone') */
"NOTIFICATION_BODY_PHONE_LOCKED_FORMAT" = "Je možné, že ste dostali správy kým sa váš %@ reštartoval.";
/* No comment provided by engineer. */
"NOTIFICATIONS_FOOTER_WARNING" = "Due to known bugs in Apple's push framework, message previews will only be shown if the message is retrieved within 30 seconds after being sent. The application badge might be inaccurate as a result.";
"NOTIFICATIONS_FOOTER_WARNING" = "Kvôli známym chybám v rámci Apple push sa náhľady správ zobrazia len vtedy, ak sa správa načíta do 30 sekúnd po odoslaní. V dôsledku toho môže byť odznak aplikácie nepresný.";
/* Table cell switch label. When disabled, Session will not play notification sounds while the app is in the foreground. */
"NOTIFICATIONS_SECTION_INAPP" = "Hrať keď je apka otvorená";
/* Label for settings UI that allows user to change the notification sound. */
@ -295,27 +295,27 @@
/* No comment provided by engineer. */
"BUTTON_OK" = "OK";
/* Info Message when {{other user}} disables or doesn't support disappearing messages */
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ disabled disappearing messages.";
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ zakázal miznutie správ.";
/* Info Message when {{other user}} updates message expiration to {{time amount}}, see the *_TIME_AMOUNT strings for context. */
"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ set disappearing message time to %@";
"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ nastavil čas zmiznutia správy na %@";
/* alert title, generic error preventing user from capturing a photo */
"PHOTO_CAPTURE_GENERIC_ERROR" = "Nepodarilo sa zachytiť obrázok.";
/* alert title */
"PHOTO_CAPTURE_UNABLE_TO_CAPTURE_IMAGE" = "Nepodarilo sa zachytiť obrázok.";
/* alert title */
"PHOTO_CAPTURE_UNABLE_TO_INITIALIZE_CAMERA" = "Failed to configure camera.";
"PHOTO_CAPTURE_UNABLE_TO_INITIALIZE_CAMERA" = "Nepodarilo sa nakonfigurovať fotoaparát.";
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "Nepomenovaný album";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "Označiť ako prečítané";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "Odpovedať";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Nemôžeme aktivovať váš účet kým neoveríte kód, ktorý sme vám poslali.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
"SCREEN_LOCK_ACTIVITY_TIMEOUT_NONE" = "Okamžite";
/* Description of how and why Session iOS uses Touch ID/Face ID/Phone Passcode to unlock 'screen lock'. */
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Authenticate to open Session.";
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Pre otvorenie %1$s potvrďte svoju totožnosť.";
/* Title for alert indicating that screen lock could not be unlocked. */
"SCREEN_LOCK_UNLOCK_FAILED" = "Overenie zlyhalo";
/* alert title when user attempts to leave the send media flow when they have an in-progress album */
@ -339,17 +339,17 @@
/* Label for iCloud status row in the in the backup settings view. */
"SETTINGS_BACKUP_ICLOUD_STATUS" = "Stav iCloud";
/* Indicates that the last backup restore failed. */
"SETTINGS_BACKUP_IMPORT_STATUS_FAILED" = "Backup Restore Failed";
"SETTINGS_BACKUP_IMPORT_STATUS_FAILED" = "Obnovenie zálohy zlyhalo";
/* Indicates that app is not restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "Backup Restore Idle";
"SETTINGS_BACKUP_IMPORT_STATUS_IDLE" = "Obnovenie zálohy zlyhalo";
/* Indicates that app is restoring up. */
"SETTINGS_BACKUP_IMPORT_STATUS_IN_PROGRESS" = "Backup Restore In Progress";
"SETTINGS_BACKUP_IMPORT_STATUS_IN_PROGRESS" = "Prebieha obnovenie zálohy";
/* Indicates that the last backup restore succeeded. */
"SETTINGS_BACKUP_IMPORT_STATUS_SUCCEEDED" = "Backup Restore Succeeded";
"SETTINGS_BACKUP_IMPORT_STATUS_SUCCEEDED" = "Obnovenie zálohy sa podarilo";
/* Label for phase row in the in the backup settings view. */
"SETTINGS_BACKUP_PHASE" = "Fáza";
/* Label for phase row in the in the backup settings view. */
"SETTINGS_BACKUP_PROGRESS" = "Progress";
"SETTINGS_BACKUP_PROGRESS" = "Priebeh";
/* Label for backup status row in the in the backup settings view. */
"SETTINGS_BACKUP_STATUS" = "Status";
/* Indicates that the last backup failed. */
@ -371,15 +371,21 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Posielať náhľady odkazov";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Náhľady sú podporované pre odkazy na Imgur, Instagram, Pinterest, Reddit a YouTube.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Náhľady sú podporované pre väčšinu adries.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Náhľady odkazov";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Hlasové a video hovory";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Povoliť prístup k prijímaniu hlasových a video hovorov od ostatných používateľov.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Hovory";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Obsah upozornenia";
/* Label for the 'read receipts' setting. */
"SETTINGS_READ_RECEIPT" = "Potvrdenia o prečítaní";
/* An explanation of the 'read receipts' setting. */
"SETTINGS_READ_RECEIPTS_SECTION_FOOTER" = "See and share when messages have been read. This setting is optional and applies to all conversations.";
"SETTINGS_READ_RECEIPTS_SECTION_FOOTER" = "Zobrazte a zdieľajte, keď boli správy prečítané. Toto nastavenie je voliteľné a vzťahuje sa na všetky konverzácie.";
/* Label for the 'screen lock activity timeout' setting of the privacy settings. */
"SETTINGS_SCREEN_LOCK_ACTIVITY_TIMEOUT" = "Časový limit zamknutia obrazovky";
/* Title for the 'screen lock' section of the privacy settings. */
@ -429,7 +435,7 @@
/* Filename for voice messages. */
"VOICE_MESSAGE_FILE_NAME" = "Hlasová správa";
/* Message for the alert indicating the 'voice message' needs to be held to be held down to record. */
"VOICE_MESSAGE_TOO_SHORT_ALERT_MESSAGE" = "Tap and hold to record a voice message.";
"VOICE_MESSAGE_TOO_SHORT_ALERT_MESSAGE" = "Ťuknutím a podržaním nahráte hlasovú správu.";
/* Title for the alert indicating the 'voice message' needs to be held to be held down to record. */
"VOICE_MESSAGE_TOO_SHORT_ALERT_TITLE" = "Hlasová správa";
/* Info Message when you disable disappearing messages */
@ -445,19 +451,19 @@
"invalid_session_id" = "Neplatné Session ID";
"cancel" = "Zrušiť";
"your_session_id" = "Vaše Session ID";
"vc_landing_title_2" = "Your Session begins here...";
"vc_landing_title_2" = "Váš Session sa začína tu...";
"vc_landing_register_button_title" = "Vytvoriť Session ID";
"vc_landing_restore_button_title" = "Continue Your Session";
"vc_landing_restore_button_title" = "Pokračovať v Session";
"vc_landing_link_button_title" = "Pripojiť zariadenie";
"view_fake_chat_bubble_1" = "Čo je Session?";
"view_fake_chat_bubble_2" = "Je to decentralizovaná, šifrovaná apka na posielanie správ";
"view_fake_chat_bubble_3" = "Takže nezbiera moje osobné informácie alebo metadáta mojich konverzácií? Ako to funguje?";
"view_fake_chat_bubble_4" = "Použitím kombinácie pokročilých technológií anonymného smerovania a end-to-end šifrovania.";
"view_fake_chat_bubble_5" = "Friends don't let friends use compromised messengers. You're welcome.";
"view_fake_chat_bubble_5" = "Priatelia nedovoľujú priateľom používať kompromitované messengery. Nemáte za čo.";
"vc_register_title" = "Povedzte ahoj svojmu Session ID";
"vc_register_explanation" = "Vaše Session ID je jedinečná adresa, ktorú môžu ľudia použiť aby sa s vami skontaktovali v Session. Pretože Session ID nemá žiadne spojenie s vašou skutočnou identitou, je Session ID úplne anonymné a súkromé.";
"vc_restore_title" = "Obnoviť účet";
"vc_restore_explanation" = "Enter the recovery phrase that was given to you when you signed up to restore your account.";
"vc_restore_explanation" = "Zadajte frázu na obnovenie, ktorá vám bola poskytnutá pri registrácii, aby ste obnovili svoje konto.";
"vc_restore_seed_text_field_hint" = "Zadajte vašu obnovovaciu frázu";
"vc_link_device_title" = "Pripojiť zariadenie";
"vc_link_device_scan_qr_code_tab_title" = "Skenovať QR kód";
@ -472,10 +478,10 @@
"vc_home_empty_state_button_title" = "Začať stretnutie";
"vc_seed_title" = "Vaša fráza pre obnovenie";
"vc_seed_title_2" = "Toto je vaša fráza pre obnovenie";
"vc_seed_explanation" = "Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and dont give it to anyone.";
"vc_seed_explanation" = "Vaša fráza na obnovenie je hlavným kľúčom k vášmu Session ID - môžete ju použiť na obnovenie svojho Session ID ak stratíte prístup k zariadeniu. Uložte frázu na obnovenie na bezpečnom mieste a nikomu ju nedávajte.";
"vc_seed_reveal_button_title" = "Podržaním odhaľte";
"view_seed_reminder_subtitle_1" = "Secure your account by saving your recovery phrase";
"view_seed_reminder_subtitle_2" = "Tap and hold the redacted words to reveal your recovery phrase, then store it safely to secure your Session ID.";
"view_seed_reminder_subtitle_1" = "Zabezpečte svoje konto uložením frázy na obnovenie";
"view_seed_reminder_subtitle_2" = "Ťuknutím a podržaním upravených slov odhaľte frázu na obnovenie a potom ju bezpečne uložte, aby ste zabezpečili svoje Session ID.";
"view_seed_reminder_subtitle_3" = "Uistite sa, že frázu na obnovenie máte uloženú na bezpečnom mieste";
"vc_path_title" = "Cesta";
"vc_path_explanation" = "Session skrýva vašu IP smerovaním vašich správ cez viacero servisných uzlov v decentralizovanej Session siete. Toto sú krajiny cez ktoré je momentálne smerované vaše spojenie:";
@ -484,17 +490,17 @@
"vc_path_service_node_row_title" = "Servisný uzol";
"vc_path_destination_row_title" = "Cieľ";
"vc_path_learn_more_button_title" = "Viac informácií";
"vc_create_private_chat_title" = "New Session";
"vc_create_private_chat_title" = "Nová relácia";
"vc_create_private_chat_enter_session_id_tab_title" = "Zadajte Session ID";
"vc_create_private_chat_scan_qr_code_tab_title" = "Skenovať QR kód";
"vc_create_private_chat_scan_qr_code_explanation" = "Začnite stretnutie naskenovaním QR kódu iného používateľa. QR kód nájdete ťuknutím na ikonu QR kódu v nastaveniach účtu.";
"vc_enter_public_key_explanation" = "Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.";
"vc_enter_public_key_explanation" = "Používatelia môžu zdieľať svoje Session ID tak, že prejdú do nastavení svojho konta a klepnú na \"Zdieľať Session ID\" alebo zdieľajú svoj QR kód.";
"vc_scan_qr_code_camera_access_explanation" = "Session potrebuje prístup ku kamere na skenovanie QR kódov";
"vc_scan_qr_code_grant_camera_access_button_title" = "Povoliť prístup ku kamere";
"vc_create_closed_group_title" = "Nová uzatvorená skupina";
"vc_create_closed_group_text_field_hint" = "Zadajte názov skupiny";
"vc_create_closed_group_empty_state_message" = "Zatiaľ nemáte žiadne kontakty";
"vc_create_closed_group_empty_state_button_title" = "Start a Session";
"vc_create_closed_group_empty_state_button_title" = "Začať Session";
"vc_create_closed_group_group_name_missing_error" = "Zadajte prosím názov skupiny";
"vc_create_closed_group_group_name_too_long_error" = "Zadajte prosím kratší názov skupiny";
"vc_create_closed_group_too_many_group_members_error" = "Uzatvorená skupina nemôže mať viac ako 100 členov";
@ -518,11 +524,11 @@
"modal_seed_explanation" = "Toto je vaša fráza pre obnovenie. S jej pomocou môžete obnoviť alebo presunúť svoje Session ID na nové zariadenie.";
"modal_clear_all_data_title" = "Odstrániť všetky dáta";
"modal_clear_all_data_explanation" = "Toto navždy vymaže vaše správy, stretnutia a kontakty.";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "Chcete vymazať iba toto zariadenie alebo celý účet?";
"dialog_clear_all_data_deletion_failed_1" = "Data neboli odstránené 1 Servisným Uzlom. Servisný Uzol ID:%@.";
"dialog_clear_all_data_deletion_failed_2" = "Data neboli odstránené 1 Servisným Uzlom. Servisný Uzol ID:%@.";
"modal_clear_all_data_device_only_button_title" = "Iba zariadenie";
"modal_clear_all_data_entire_account_button_title" = "Celý Účet";
"vc_qr_code_title" = "QR kód";
"vc_qr_code_view_my_qr_code_tab_title" = "Zobraziť môj QR kód";
"vc_qr_code_view_scan_qr_code_tab_title" = "Skenovať QR kód";
@ -536,10 +542,10 @@
"vc_pn_mode_title" = "Upozornenia na správy";
"vc_notification_settings_notification_mode_title" = "Použiť rýchly režim";
"vc_link_device_recovery_phrase_tab_title" = "Fráza pre obnovenie";
"vc_link_device_scan_qr_code_explanation" = "Navigate to Settings → Recovery Phrase on your other device to show your QR code.";
"vc_link_device_scan_qr_code_explanation" = "Prejdite do Nastavenia → Fráza pre Obnovenie na inom Vašom zariadení pre zobrazenie QR kódu.";
"vc_enter_recovery_phrase_title" = "Fráza pre obnovenie";
"vc_enter_recovery_phrase_explanation" = "To link your device, enter the recovery phrase that was given to you when you signed up.";
"vc_enter_public_key_text_field_hint" = "Enter Session ID or ONS name";
"vc_enter_recovery_phrase_explanation" = "Pre prepojenie Vášho zariadenia, zadajte Frázu pre Obnovenie, ktorá Vám bola poskytnutá pri registrácii.";
"vc_enter_public_key_text_field_hint" = "Vložte Session ID alebo ONS meno";
"vc_home_title" = "Správy";
"admin_group_leave_warning" = "Pretože tvorcom skupiny ste vy, skupina bude vymazaná pre každého. Táto akcia sa nedá vrátiť.";
"vc_join_open_group_suggestions_title" = "Alebo sa pripojte k jednej z týchto...";
@ -555,68 +561,88 @@
"modal_open_url_title" = "Otvoriť URL?";
"modal_open_url_explanation" = "Ste si istý, že chcete otvoriť %@?";
"modal_open_url_button_title" = "Otvoriť";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "Skopírovať Odkaz";
"modal_blocked_title" = "Odblokovať %@?";
"modal_blocked_explanation" = "Ste si istý/á, že chcete odblokovať %@?";
"modal_blocked_button_title" = "Odblokovať";
"modal_link_previews_title" = "Povoliť náhľad odkazov?";
"modal_link_previews_explanation" = "Enabling link previews will show previews for URLs you send and receive. This can be useful, but Session will need to contact linked websites to generate previews. You can always disable link previews in Session's settings.";
"modal_link_previews_explanation" = "Zapnutie ukážok linkov ukáže ukážky pre URL, ktoré vy pošlete a príjmete. Toto môže byť užitočné, ale Session bude potrebovať navštíviť dané webstránky pre vygenerovanie ukážok. Kedykoľvek môžete vypnúť ukážky linkov v nastaveniach Session.";
"modal_link_previews_button_title" = "Povoliť";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "Share to Session";
"modal_call_title" = "Hlasové / video hovory";
"modal_call_explanation" = "Súčasná implementácia hlasových/video hovorov odhalí vašu IP adresu serverom Oxen Foundation a volajúcemu/volanému používateľovi.";
"modal_share_logs_title" = "Zdieľať záznamy";
"modal_share_logs_explanation" = "Chcete exportovať záznamy činnosti vašej aplikácie pre zdieľanie za účelom vyriešenia problémov?";
"vc_share_title" = "Zdieľať do Session";
"vc_share_loading_message" = "Pripravujú sa prílohy...";
"vc_share_sending_message" = "Odosiela sa...";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"vc_share_link_previews_unsecure" = "Ukážka nebola načítaná pre nezabezpečený odkaz";
"vc_share_link_previews_error" = "Nepodarilo sa načítať ukážku";
"vc_share_link_previews_disabled_title" = "Ukážky odkazov sú vypnuté";
"vc_share_link_previews_disabled_explanation" = "Zapnutie ukážok linkov ukáže ukážky pre URL, ktoré vy pošlete a príjmete. Toto môže byť užitočné, ale Session bude potrebovať navštíviť dané webstránky pre vygenerovanie ukážok.\n\nKedykoľvek môžete vypnúť ukážky linkov v nastaveniach Session.";
"view_open_group_invitation_description" = "Otvoriť skupinovú pozvánku";
"vc_conversation_settings_invite_button_title" = "Pridať členov";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_faq_button_title" = "Časté otázky";
"vc_settings_survey_button_title" = "Spätná väzba / Anketa";
"vc_settings_support_button_title" = "Ladiaci log";
"modal_send_seed_title" = "Varovanie";
"modal_send_seed_explanation" = "Toto je Vaša Fáza pre Obnovenie. Ak ju niekomu poskytnete, dotýčný má plný prístup do Vášho účtu.";
"modal_send_seed_send_button_title" = "Odoslať";
"vc_conversation_settings_notify_for_mentions_only_title" = "Upozorniť Len ak Spomenutý";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "Ak povolené, budete upozornený iba na správy, kde Vás niekto spomenul.";
"view_conversation_title_notify_for_mentions_only" = "Upozorniť Iba ak Spomenutý";
"message_deleted" = "Táto správa už bola odstránená";
"delete_message_for_me" = "Vymazať len u mňa";
"delete_message_for_everyone" = "Vymazať u všetkých";
"delete_message_for_me_and_recipient" = "Vymazať pre mňa a %@";
"context_menu_reply" = "Odpovedať";
"context_menu_save" = "Uložiť";
"context_menu_ban_user" = "Zablokovanie používateľa";
"context_menu_ban_and_delete_all" = "Zabanovať a Vymazať Všetko";
"accessibility_expanding_attachments_button" = "Pridať Prílohy";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "Dokument";
"accessibility_library_button" = "Knižnica Fotografií";
"accessibility_camera_button" = "Kamera";
"accessibility_main_button_collapse" = "Uzatvor možnosti prípon";
"invalid_recovery_phrase" = "Neplatná Obnovovacia Fráza";
"invalid_recovery_phrase" = "Neplatná Obnovovacia Fráza";
"DISMISS_BUTTON_TEXT" = "Zrušiť";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"OPEN_SETTINGS_BUTTON" = "Nastavenia";
"call_outgoing" = "Volali ste %@";
"call_incoming" = "%@ vám volal/a";
"call_missed" = "Zmeškaný Hovor od %@";
"call_rejected" = "Odmietnutý Hovor";
"call_cancelled" = "Zrušený Hovor";
"call_timeout" = "Neprijatý Hovor";
"voice_call" = "Hlasový Hovor";
"video_call" = "Video Hovor";
"APN_Message" = "Máte novú správu";
"APN_Collapsed_Messages" = "Máte %@ nových správ.";
"system_mode_theme" = "Systém";
"dark_mode_theme" = "Tmavý";
"light_mode_theme" = "Svetlý";
"PIN_BUTTON_TEXT" = "Pripnúť";
"UNPIN_BUTTON_TEXT" = "Zrušiť pripnutie";
"modal_call_missed_tips_title" = "Zmeškaný hovor";
"modal_call_missed_tips_explanation" = "Zmeškaný hovor od %@ pretože ste potrebovali zapnúť povolenie pre 'Hlasové a video hovory' v Nastaveniach Súkromia.";
"meida_saved" = "Médiá uložené používateľom %@.";
"screenshot_taken" = "%@ urobili snímku obrazovky.";
"SEARCH_SECTION_CONTACTS" = "Kontakty a Skupiny";
"SEARCH_SECTION_MESSAGES" = "Správy";
"SEARCH_SECTION_RECENT" = "Nedávne";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "posledná správa: %@";
"MESSAGE_REQUESTS_TITLE" = "Žiadosti o Správu";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "Žiadne prebiehajúce žiadosti o správu";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Vymazať Všetko";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Naozaj chcete vymazať všetky žiadosti o správu?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Vymazať";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Naozaj chcete vymazať túto žiadosť o správu?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "Nastala chyba pri akceptovaní žiadosti o túto správu";
"MESSAGE_REQUESTS_INFO" = "Poslanie správy tomuto používateľovi automaticky príjme ich žiadosť o správu.";
"MESSAGE_REQUESTS_ACCEPTED" = "Vaša žiadosť o správu bola prijatá.";
"MESSAGE_REQUESTS_NOTIFICATION" = "Máte novú žiadosť o správu";
"TXT_HIDE_TITLE" = "Skryť";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";

View File

@ -307,9 +307,9 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "Namnlöst Album";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "Markera som läst";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "Svara";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Vi kan inte aktivera ditt konto förrän du verifierar koden vi skickade till dig.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "Länkförhandsvisningar";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Förhandsvisningar stöds för Imgur-, Instagram-, Pinterest-, Reddit- och YouTube-länkar.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Previews are supported for most urls.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Förhandsgranskning av länkar";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Röst- och videosamtal";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Allow access to accept voice and video calls from other users.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Calls";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Aviseringsljud";
/* Label for the 'read receipts' setting. */
@ -562,6 +568,8 @@
"modal_link_previews_title" = "Aktivera förhandsgranskningar av länkar?";
"modal_link_previews_explanation" = "Om du aktiverar länkförhandsvisningar visas förhandsvisningar för URL: er du skickar och tar emot. Detta kan vara användbart, men sessionen måste kontakta länkade webbplatser för att generera förhandsvisningar. Du kan alltid inaktivera länkförhandsvisningar i sessionsinställningarna.";
"modal_link_previews_button_title" = "Aktivera";
"modal_call_title" = "Voice / video calls";
"modal_call_explanation" = "The current implementation of voice / video calls will expose your IP address to the Oxen Foundation servers and the calling / called user.";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "Dela i Session";
@ -576,7 +584,7 @@
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_title" = "Varning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
@ -587,25 +595,43 @@
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_save" = "Spara";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_camera_button" = "Kamera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"OPEN_SETTINGS_BUTTON" = "Inställningar";
"call_outgoing" = "Du ringde %@";
"call_incoming" = "%@ ringde dig";
"call_missed" = "Missat samtal från %@";
"call_rejected" = "Rejected Call";
"call_cancelled" = "Cancelled Call";
"call_timeout" = "Unanswered Call";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"APN_Message" = "You've got a new message.";
"APN_Collapsed_Messages" = "You've got %@ new messages.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"PIN_BUTTON_TEXT" = "Pin";
"UNPIN_BUTTON_TEXT" = "Unpin";
"modal_call_missed_tips_title" = "Call missed";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ took a screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "สงตัวอย่างจากลินค์";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "สามารถได้ตัวอย่างจากเว็บไซต์ Imgur, Instagram, Pinterest, Reddit, และ YouTube";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Previews are supported for most urls.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "ตัวอย่างจากลินค์";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Voice and video calls";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Allow access to accept voice and video calls from other users.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Calls";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "ข้อมูลการแจ้งเตือน";
/* Label for the 'read receipts' setting. */
@ -562,6 +568,8 @@
"modal_link_previews_title" = "เปิดใช้งานการแสดงตัวอย่างลิงค์";
"modal_link_previews_explanation" = "การเปิดใช้งานการแสดงตัวอย่างลิงค์จะแสดงตัวอย่างสำหรับ URL ที่คุณส่งและรับ สิ่งนี้มีประโยชน์ แต่Sessionจะต้องติดต่อเว็บไซต์ที่เชื่อมโยงเพื่อสร้างตัวอย่าง คุณสามารถปิดการแสดงตัวอย่างลิงก์ได้ตลอดเวลาในการตั้งค่าของSession";
"modal_link_previews_button_title" = "เปิดใช้งาน";
"modal_call_title" = "Voice / video calls";
"modal_call_explanation" = "The current implementation of voice / video calls will expose your IP address to the Oxen Foundation servers and the calling / called user.";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "เชิญมาใช้ Session";
@ -597,15 +605,33 @@
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"call_outgoing" = "You called %@";
"call_incoming" = "%@ called you";
"call_missed" = "Missed Call from %@";
"call_rejected" = "Rejected Call";
"call_cancelled" = "Cancelled Call";
"call_timeout" = "Unanswered Call";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"APN_Message" = "You've got a new message.";
"APN_Collapsed_Messages" = "You've got %@ new messages.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"PIN_BUTTON_TEXT" = "Pin";
"UNPIN_BUTTON_TEXT" = "Unpin";
"modal_call_missed_tips_title" = "Call missed";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ took a screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -1,31 +1,31 @@
/* Label for the 'dismiss' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "Not Now";
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "Không phải bây giờ";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number}} */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Version %@ is now available in the App Store.";
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Phiên bản %@ đã có trên App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Session Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Một phiên bản mới của Session đã sẵn có để sử dụng";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Update";
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Cập nhật";
/* No comment provided by engineer. */
"ATTACHMENT" = "Attachment";
"ATTACHMENT" = "Tệp đính kèm";
/* One-line label indicating the user can add no more text to the attachment caption. */
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Caption limit reached.";
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Đã đạt đến giới hạn.";
/* placeholder text for an empty captioning field */
"ATTACHMENT_APPROVAL_CAPTION_PLACEHOLDER" = "Add a caption…";
"ATTACHMENT_APPROVAL_CAPTION_PLACEHOLDER" = "Thêm mô tả…";
/* Title for 'caption' mode of the attachment approval view. */
"ATTACHMENT_APPROVAL_CAPTION_TITLE" = "Caption";
"ATTACHMENT_APPROVAL_CAPTION_TITLE" = "Mô tả";
/* Format string for file extension label in call interstitial view */
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "File type: %@";
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "Loại tệp tin: %@";
/* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */
"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Size: %@";
"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Dung lượng: %@";
/* One-line label indicating the user can add no more text to the media message field. */
"ATTACHMENT_APPROVAL_MESSAGE_LENGTH_LIMIT_REACHED" = "Message limit reached";
"ATTACHMENT_APPROVAL_MESSAGE_LENGTH_LIMIT_REACHED" = "Đã đạt đến mức giới hạn ký tự";
/* Label for 'send' button in the 'attachment approval' dialog. */
"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Send";
"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Gửi";
/* Generic filename for an attachment with no known name */
"ATTACHMENT_DEFAULT_FILENAME" = "Attachment";
"ATTACHMENT_DEFAULT_FILENAME" = "Tệp đính kèm";
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Error Sending Attachment";
"ATTACHMENT_ERROR_ALERT_TITLE" = "Lỗi khi gửi tệp";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
/* Attachment error message for video attachments which could not be converted to MP4 */
@ -45,101 +45,101 @@
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Attachment is empty.";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Failed to choose document.";
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Không thể chọn tệp tin.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Không thể gửi thư mục. Hãy nén thư mục và gửi đi bằng tập tin nén đó.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Tập tin không được hỗ trợ";
/* Short text label for a voice message attachment, used for thread preview and on the lock screen */
"ATTACHMENT_TYPE_VOICE_MESSAGE" = "Voice Message";
"ATTACHMENT_TYPE_VOICE_MESSAGE" = "Tin nhắn thoại";
/* Error indicating the backup export could not export the user's data. */
"BACKUP_EXPORT_ERROR_COULD_NOT_EXPORT" = "Backup data could not be exported.";
"BACKUP_EXPORT_ERROR_COULD_NOT_EXPORT" = "Không thể trích xuất dữ liệu sao lưu.";
/* Error indicating that the app received an invalid response from CloudKit. */
"BACKUP_EXPORT_ERROR_INVALID_CLOUDKIT_RESPONSE" = "Invalid Service Response";
"BACKUP_EXPORT_ERROR_INVALID_CLOUDKIT_RESPONSE" = "Phản hồi không hợp lệ";
/* Indicates that the cloud is being cleaned up. */
"BACKUP_EXPORT_PHASE_CLEAN_UP" = "Cleaning Up Backup";
"BACKUP_EXPORT_PHASE_CLEAN_UP" = "Đang dọn dẹp bản sao lưu";
/* Indicates that the backup export is being configured. */
"BACKUP_EXPORT_PHASE_CONFIGURATION" = "Initializing Backup";
"BACKUP_EXPORT_PHASE_CONFIGURATION" = "Đang bắt đầu sao lưu";
/* Indicates that the database data is being exported. */
"BACKUP_EXPORT_PHASE_DATABASE_EXPORT" = "Exporting Data";
"BACKUP_EXPORT_PHASE_DATABASE_EXPORT" = "Đang xuất dữ liệu";
/* Indicates that the backup export data is being exported. */
"BACKUP_EXPORT_PHASE_EXPORT" = "Exporting Backup";
"BACKUP_EXPORT_PHASE_EXPORT" = "Đang xuất bản sao lưu";
/* Indicates that the backup export data is being uploaded. */
"BACKUP_EXPORT_PHASE_UPLOAD" = "Uploading Backup";
"BACKUP_EXPORT_PHASE_UPLOAD" = "Đang tải lên bản sao lưu";
/* Error indicating the backup import could not import the user's data. */
"BACKUP_IMPORT_ERROR_COULD_NOT_IMPORT" = "Backup could not be imported.";
"BACKUP_IMPORT_ERROR_COULD_NOT_IMPORT" = "Không thể nhập bản sao lưu.";
/* Indicates that the backup import is being configured. */
"BACKUP_IMPORT_PHASE_CONFIGURATION" = "Configuring Backup";
"BACKUP_IMPORT_PHASE_CONFIGURATION" = "Tuỳ chỉnh sao lưu";
/* Indicates that the backup import data is being downloaded. */
"BACKUP_IMPORT_PHASE_DOWNLOAD" = "Downloading Backup Data";
"BACKUP_IMPORT_PHASE_DOWNLOAD" = "Tải xuống bản sao lưu";
/* Indicates that the backup import data is being finalized. */
"BACKUP_IMPORT_PHASE_FINALIZING" = "Finalizing Backup";
"BACKUP_IMPORT_PHASE_FINALIZING" = "Quá trình sao lưu sắp hoàn tất";
/* Indicates that the backup import data is being imported. */
"BACKUP_IMPORT_PHASE_IMPORT" = "Importing backup.";
"BACKUP_IMPORT_PHASE_IMPORT" = "Đang nhập bản sao lưu.";
/* Indicates that the backup database is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_DATABASE" = "Restoring Database";
"BACKUP_IMPORT_PHASE_RESTORING_DATABASE" = "Đang khôi phục cơ sở dữ liệu";
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Đang khôi phục tập tin";
/* Label for the backup restore decision section. */
"BACKUP_RESTORE_DECISION_TITLE" = "Backup Available";
"BACKUP_RESTORE_DECISION_TITLE" = "Bản sao lưu khả dụng";
/* Label for the backup restore description. */
"BACKUP_RESTORE_DESCRIPTION" = "Restoring Backup";
"BACKUP_RESTORE_DESCRIPTION" = "Đang khôi phục bản sao lưu";
/* Label for the backup restore progress. */
"BACKUP_RESTORE_PROGRESS" = "Progress";
"BACKUP_RESTORE_PROGRESS" = "Đang khôi phục";
/* Label for the backup restore status. */
"BACKUP_RESTORE_STATUS" = "Status";
"BACKUP_RESTORE_STATUS" = "Trạng thái";
/* Error shown when backup fails due to an unexpected error. */
"BACKUP_UNEXPECTED_ERROR" = "Unexpected Backup Error";
"BACKUP_UNEXPECTED_ERROR" = "Lỗi sao lưu";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
"BLOCK_LIST_BLOCK_BUTTON" = "Chặn";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Chặn %@?";
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock";
"BLOCK_LIST_UNBLOCK_BUTTON" = "Bỏ chặn";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "Đã bỏ chặn %@.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Người dùng bị chặn";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages.";
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Người dùng bị chặn sẽ không thể gọi hoặc gửi tin nhắn cho bạn.";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "Xong";
/* Button text to enable batch selection mode */
"BUTTON_SELECT" = "Select";
"BUTTON_SELECT" = "Chọn";
/* The label for the 'do not restore backup' button. */
"CHECK_FOR_BACKUP_DO_NOT_RESTORE" = "Do Not Restore";
"CHECK_FOR_BACKUP_DO_NOT_RESTORE" = "Không khôi phục";
/* The label for the 'restore backup' button. */
"CHECK_FOR_BACKUP_RESTORE" = "Restore";
"CHECK_FOR_BACKUP_RESTORE" = "Khôi phục";
/* Error indicating that the app could not determine that user's iCloud account status */
"CLOUDKIT_STATUS_COULD_NOT_DETERMINE" = "Session could not determine your iCloud account status. Sign in to your iCloud Account in the iOS settings app to backup your Session data.";
"CLOUDKIT_STATUS_COULD_NOT_DETERMINE" = "Session không thể xác định trạng thái của tài khoản iCloud. Đăng nhập vào tài khoản iCloud trong phần cài đặt để sao lưu dữ liệu Session.";
/* Error indicating that user does not have an iCloud account. */
"CLOUDKIT_STATUS_NO_ACCOUNT" = "No iCloud Account. Sign in to your iCloud Account in the iOS settings app to backup your Session data.";
"CLOUDKIT_STATUS_NO_ACCOUNT" = "Chưa đăng nhập tài khoản iCloud. Đăng nhập vào tài khoản iCloud trong phần cài đặt để sao lưu dữ liệu Session.";
/* Error indicating that the app was prevented from accessing the user's iCloud account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Session was denied access your iCloud account for backups. Grant Session access to your iCloud Account in the iOS settings app to backup your Session data.";
"CLOUDKIT_STATUS_RESTRICTED" = "Session không được quyền truy cập vào tài khoản iCloud. Hãy cấp quyền truy cập trong phần cài đặt để có thể sao lưu dữ liệu Session.";
/* Alert body */
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "You will no longer be able to send or receive messages in this group.";
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "Bạn sẽ không thể gửi hoặc nhận tin nhắn trong nhóm này nữa.";
/* Alert title */
"CONFIRM_LEAVE_GROUP_TITLE" = "Do you really want to leave?";
"CONFIRM_LEAVE_GROUP_TITLE" = "Bạn thực sự muốn rời khỏi nhóm?";
/* Message for the 'conversation delete confirmation' alert. */
"CONVERSATION_DELETE_CONFIRMATION_ALERT_MESSAGE" = "This cannot be undone.";
"CONVERSATION_DELETE_CONFIRMATION_ALERT_MESSAGE" = "Tác vụ này không thể hoàn tất.";
/* Title for the 'conversation delete confirmation' alert. */
"CONVERSATION_DELETE_CONFIRMATION_ALERT_TITLE" = "Delete Conversation?";
"CONVERSATION_DELETE_CONFIRMATION_ALERT_TITLE" = "Xóa cuộc hội thoại?";
/* keyboard toolbar label when no messages match the search string */
"CONVERSATION_SEARCH_NO_RESULTS" = "No matches";
"CONVERSATION_SEARCH_NO_RESULTS" = "Không trùng khớp";
/* keyboard toolbar label when exactly 1 message matches the search string */
"CONVERSATION_SEARCH_ONE_RESULT" = "1 match";
"CONVERSATION_SEARCH_ONE_RESULT" = "Trùng khớp";
/* keyboard toolbar label when more than 1 message matches the search string. Embeds {{number/position of the 'currently viewed' result}} and the {{total number of results}} */
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "%d of %d matches";
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "%d trên %d phù hợp";
/* title for conversation settings screen */
"CONVERSATION_SETTINGS" = "Conversation Settings";
"CONVERSATION_SETTINGS" = "Thiết đặt chuyện trò";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Chặn Người dùng này";
/* Title of the 'mute this thread' action sheet. */
"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Mute";
/* label for 'mute thread' cell in conversation settings */
@ -241,61 +241,61 @@
/* Confirmation button text to delete selected media from the gallery, embeds {{number of messages}} */
"MEDIA_GALLERY_DELETE_MULTIPLE_MESSAGES_FORMAT" = "Delete %d Messages";
/* Confirmation button text to delete selected media message from the gallery */
"MEDIA_GALLERY_DELETE_SINGLE_MESSAGE" = "Delete Message";
"MEDIA_GALLERY_DELETE_SINGLE_MESSAGE" = "Xóa tin nhắn";
/* embeds {{sender name}} and {{sent datetime}}, e.g. 'Sarah on 10/30/18, 3:29' */
"MEDIA_GALLERY_LANDSCAPE_TITLE_FORMAT" = "%@ on %@";
"MEDIA_GALLERY_LANDSCAPE_TITLE_FORMAT" = "%@ lúc %@";
/* Format for the 'more items' indicator for media galleries. Embeds {{the number of additional items}}. */
"MEDIA_GALLERY_MORE_ITEMS_FORMAT" = "+%@";
/* Short sender label for media sent by you */
"MEDIA_GALLERY_SENDER_NAME_YOU" = "You";
"MEDIA_GALLERY_SENDER_NAME_YOU" = "Bạn";
/* Section header in media gallery collection view */
"MEDIA_GALLERY_THIS_MONTH_HEADER" = "This Month";
"MEDIA_GALLERY_THIS_MONTH_HEADER" = "Tháng này";
/* message status for message delivered to their recipient. */
"MESSAGE_STATUS_DELIVERED" = "Delivered";
"MESSAGE_STATUS_DELIVERED" = "Đã gửi";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED" = "Sending failed.";
"MESSAGE_STATUS_FAILED" = "Gửi thất bại.";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED_SHORT" = "Failed";
"MESSAGE_STATUS_FAILED_SHORT" = "Không thành công";
/* status message for read messages */
"MESSAGE_STATUS_READ" = "Read";
"MESSAGE_STATUS_READ" = "Đã đọc";
/* message status if message delivery to a recipient is skipped. We skip delivering group messages to users who have left the group or unregistered their Session account. */
"MESSAGE_STATUS_RECIPIENT_SKIPPED" = "Skipped";
"MESSAGE_STATUS_RECIPIENT_SKIPPED" = "Đã bỏ qua";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Đang gửi…";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Sent";
"MESSAGE_STATUS_SENT" = "Đã gửi";
/* status message while attachment is uploading */
"MESSAGE_STATUS_UPLOADING" = "Uploading…";
"MESSAGE_STATUS_UPLOADING" = "Đang tải lên…";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Bạn có thể cấp quyền truy cập trong phần cài đặt ứng dụng.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Session requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Session yêu cầu quyền truy cập vào ảnh để sử dụng tính năng này.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "You will not receive notifications for muted conversations.";
"MUTE_BEHAVIOR_EXPLANATION" = "Bạn sẽ không nhận được thông báo cho các cuộc hội thoại bị tắt tiếng.";
/* notification title. Embeds {{author name}} and {{group name}} */
"NEW_GROUP_MESSAGE_NOTIFICATION_TITLE" = "%@ to %@";
"NEW_GROUP_MESSAGE_NOTIFICATION_TITLE" = "%@ đến %@";
/* Label for 1:1 conversation with yourself. */
"NOTE_TO_SELF" = "Note to Self";
"NOTE_TO_SELF" = "Gửi lời nhắc cho chính mình";
/* Lock screen notification text presented after user powers on their device without unlocking. Embeds {{device model}} (either 'iPad' or 'iPhone') */
"NOTIFICATION_BODY_PHONE_LOCKED_FORMAT" = "You may have received messages while your %@ was restarting.";
"NOTIFICATION_BODY_PHONE_LOCKED_FORMAT" = "Bạn có thể nhận được tin nhắn trong khi %@ của bạn đang được khởi động lại.";
/* No comment provided by engineer. */
"NOTIFICATIONS_FOOTER_WARNING" = "Due to known bugs in Apple's push framework, message previews will only be shown if the message is retrieved within 30 seconds after being sent. The application badge might be inaccurate as a result.";
/* Table cell switch label. When disabled, Session will not play notification sounds while the app is in the foreground. */
"NOTIFICATIONS_SECTION_INAPP" = "Play While App is Open";
/* Label for settings UI that allows user to change the notification sound. */
"NOTIFICATIONS_SECTION_SOUNDS" = "Sounds";
"NOTIFICATIONS_SECTION_SOUNDS" = "Âm thanh";
/* No comment provided by engineer. */
"NOTIFICATIONS_SENDER_AND_MESSAGE" = "Name and Content";
"NOTIFICATIONS_SENDER_AND_MESSAGE" = "Tên và Nội dung";
/* No comment provided by engineer. */
"NOTIFICATIONS_SENDER_ONLY" = "Name Only";
"NOTIFICATIONS_SENDER_ONLY" = "Chỉ tên người gửi";
/* No comment provided by engineer. */
"NOTIFICATIONS_NONE" = "No Name or Content";
"NOTIFICATIONS_NONE" = "Không hiện tên cũng như tin nhắn";
/* No comment provided by engineer. */
"NOTIFICATIONS_SHOW" = "Show";
"NOTIFICATIONS_SHOW" = "Hiển thị";
/* No comment provided by engineer. */
"BUTTON_OK" = "OK";
/* Info Message when {{other user}} disables or doesn't support disappearing messages */
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ disabled disappearing messages.";
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ đã vô hiệu hóa tin nhắn tự huỷ.";
/* Info Message when {{other user}} updates message expiration to {{time amount}}, see the *_TIME_AMOUNT strings for context. */
"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ set disappearing message time to %@";
/* alert title, generic error preventing user from capturing a photo */
@ -374,6 +374,12 @@
"SETTINGS_LINK_PREVIEWS_FOOTER" = "Previews are supported for most urls.";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "Link Previews";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "Voice and video calls";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "Allow access to accept voice and video calls from other users.";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "Calls";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Notification Content";
/* Label for the 'read receipts' setting. */
@ -562,6 +568,8 @@
"modal_link_previews_title" = "Enable Link Previews?";
"modal_link_previews_explanation" = "Enabling link previews will show previews for URLs you send and receive. This can be useful, but Session will need to contact linked websites to generate previews. You can always disable link previews in Session's settings.";
"modal_link_previews_button_title" = "Enable";
"modal_call_title" = "Voice / video calls";
"modal_call_explanation" = "The current implementation of voice / video calls will expose your IP address to the Oxen Foundation servers and the calling / called user.";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"vc_share_title" = "Share to Session";
@ -597,15 +605,33 @@
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"call_outgoing" = "You called %@";
"call_incoming" = "%@ called you";
"call_missed" = "Missed Call from %@";
"call_rejected" = "Rejected Call";
"call_cancelled" = "Cancelled Call";
"call_timeout" = "Unanswered Call";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"APN_Message" = "You've got a new message.";
"APN_Collapsed_Messages" = "You've got %@ new messages.";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"PIN_BUTTON_TEXT" = "Pin";
"UNPIN_BUTTON_TEXT" = "Unpin";
"modal_call_missed_tips_title" = "Call missed";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "Media saved by %@.";
"screenshot_taken" = "%@ took a screenshot.";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -1,7 +1,7 @@
/* Label for the 'dismiss' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "稍後";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number}} */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "版本%@ 現在已經可以下載。";
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "版本 %@ 現在已經可以下載。";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "更新版本的 Session 已推出";
/* Label for the 'update' button in the 'new app version available' alert. */
@ -27,23 +27,23 @@
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "寄送附件時發生錯誤";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "無法讀取圖片。";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Unable to process video.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "無法處理影片";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "無法解析圖片";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Unable to remove metadata from image.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "無法移除圖片資訊";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "無法修改圖片大小";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Attachment is too large.";
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "附件過大";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "附件包含無效內容";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "附件有無效檔案格式";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Attachment is empty.";
"ATTACHMENT_ERROR_MISSING_DATA" = "附件不存在";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "選取檔案時發生錯誤";
/* Alert body when picking a document fails because user picked a directory/bundle */
@ -89,13 +89,13 @@
/* Label for the backup restore status. */
"BACKUP_RESTORE_STATUS" = "狀態";
/* Error shown when backup fails due to an unexpected error. */
"BACKUP_UNEXPECTED_ERROR" = "不明的錯誤,請聯繫開發者";
"BACKUP_UNEXPECTED_ERROR" = "不明的備份錯誤";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "封鎖";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "封鎖 %@";
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "取消封鎖 %@";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "解除封鎖";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
@ -103,9 +103,9 @@
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "使用者已封鎖";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ 已被封鎖";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "現有成員現已可以再次將你加入群組";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "被您封鎖的使用者將無法傳送訊息與撥打電話給您";
/* Label for generic done button. */
@ -121,21 +121,21 @@
/* Error indicating that user does not have an iCloud account. */
"CLOUDKIT_STATUS_NO_ACCOUNT" = "沒有偵測到 iCloud 帳戶,請進入設定登入您的 iCloud 帳號。";
/* Error indicating that the app was prevented from accessing the user's iCloud account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Session 因為您的 iCloud 帳號設定並沒有將 Session 的備份選項開啟請進入設定並打開您iCloud 的設定開啟 Session 的備份功能。";
"CLOUDKIT_STATUS_RESTRICTED" = "您的 iCloud 設定未允許 Session 進行備份。請進入設定並授權 Session 存取您的 iCloud 以啟動 Session 的備份功能。";
/* Alert body */
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "您已經無法再於此群組傳送訊息或撥打電話。";
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "您已經無法再於此群組傳送或接收訊息。";
/* Alert title */
"CONFIRM_LEAVE_GROUP_TITLE" = "您真的想要離開嗎?";
"CONFIRM_LEAVE_GROUP_TITLE" = "確定要離開嗎?";
/* Message for the 'conversation delete confirmation' alert. */
"CONVERSATION_DELETE_CONFIRMATION_ALERT_MESSAGE" = "這個動作無法被撤銷。";
"CONVERSATION_DELETE_CONFIRMATION_ALERT_MESSAGE" = "此操作無法復原。";
/* Title for the 'conversation delete confirmation' alert. */
"CONVERSATION_DELETE_CONFIRMATION_ALERT_TITLE" = "刪除對話?";
/* keyboard toolbar label when no messages match the search string */
"CONVERSATION_SEARCH_NO_RESULTS" = "沒有結果。";
"CONVERSATION_SEARCH_NO_RESULTS" = "沒有相符項目";
/* keyboard toolbar label when exactly 1 message matches the search string */
"CONVERSATION_SEARCH_ONE_RESULT" = "一個結果。";
"CONVERSATION_SEARCH_ONE_RESULT" = "1 個相符項目";
/* keyboard toolbar label when more than 1 message matches the search string. Embeds {{number/position of the 'currently viewed' result}} and the {{total number of results}} */
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "%d/%d) 符合。";
"CONVERSATION_SEARCH_RESULTS_FORMAT" = "%d 中的 %d 個項目相符";
/* title for conversation settings screen */
"CONVERSATION_SETTINGS" = "對話設定";
/* table cell label in conversation settings */
@ -153,11 +153,11 @@
/* Label for button to mute a thread for a minute. */
"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "靜音一分鐘";
/* Label for button to mute a thread for a week. */
"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "靜音一個禮拜";
"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "靜音一星期";
/* Label for button to mute a thread for a year. */
"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "靜音一年";
/* Indicates that this thread is muted until a given date or time. Embeds {{The date or time which the thread is muted until}}. */
"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "直到%@";
"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "直到 %@";
/* Table cell label in conversation settings which returns the user to the conversation with 'search mode' activated */
"CONVERSATION_SETTINGS_SEARCH" = "搜尋對話";
/* Label for button to unmute a thread. */
@ -165,7 +165,7 @@
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "移動與裁切";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "這會花上幾分鐘。";
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "這可能需要幾分鐘的時間。";
/* Title shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_TITLE" = "最佳化資料庫中";
/* Format string for a relative time, expressed as a certain number of hours in the past. Embeds {{The number of hours}}. */
@ -179,7 +179,7 @@
/* The day before today. */
"DATE_YESTERDAY" = "昨天";
/* table cell label in conversation settings */
"DISAPPEARING_MESSAGES" = "消失的訊息";
"DISAPPEARING_MESSAGES" = "自動銷毀訊息";
/* Info Message when added to a group which has enabled disappearing messages. Embeds {{time amount}} before messages disappear, see the *_TIME_AMOUNT strings for context. */
"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "在這則對話的訊息將於 %@ 後消失";
/* table cell label in conversation settings */
@ -191,35 +191,35 @@
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "讀取舊媒體中⋯";
/* Error displayed when there is a failure fetching a GIF from the remote service. */
"GIF_PICKER_ERROR_FETCH_FAILURE" = "無法讀取此 GIF。請驗證您是否連結到網路。";
"GIF_PICKER_ERROR_FETCH_FAILURE" = "無法讀取此 GIF。請確認您是否已連接到網路。";
/* Generic error displayed when picking a GIF */
"GIF_PICKER_ERROR_GENERIC" = "發生不知名的錯誤。";
"GIF_PICKER_ERROR_GENERIC" = "發生不錯誤。";
/* Shown when selected GIF couldn't be fetched */
"GIF_PICKER_FAILURE_ALERT_TITLE" = "無法選取此 GIF。";
/* Alert message shown when user tries to search for GIFs without entering any search terms. */
"GIF_PICKER_VIEW_MISSING_QUERY" = "請輸入您的搜尋內容";
"GIF_PICKER_VIEW_MISSING_QUERY" = "請輸入搜尋內容";
/* Indicates that an error occurred while searching. */
"GIF_VIEW_SEARCH_ERROR" = "錯誤,請重試。";
"GIF_VIEW_SEARCH_ERROR" = "錯誤。請輕點重試。";
/* Indicates that the user's search had no results. */
"GIF_VIEW_SEARCH_NO_RESULTS" = "沒有結果";
/* No comment provided by engineer. */
"GROUP_CREATED" = "已立群組";
"GROUP_CREATED" = "已立群組";
/* No comment provided by engineer. */
"GROUP_MEMBER_JOINED" = " %@ 已加入群組。 ";
/* No comment provided by engineer. */
"GROUP_MEMBER_LEFT" = " %@ 已離開群組。 ";
/* No comment provided by engineer. */
"GROUP_MEMBER_REMOVED" = " %@ 被踢出群組。 ";
"GROUP_MEMBER_REMOVED" = " %@ 已從群組中移除。 ";
/* No comment provided by engineer. */
"GROUP_MEMBERS_REMOVED" = " %@ 已被群組踢出 ";
"GROUP_MEMBERS_REMOVED" = " %@ 已從群組中移除。 ";
/* No comment provided by engineer. */
"GROUP_TITLE_CHANGED" = "標題已更改為 %@ ";
"GROUP_TITLE_CHANGED" = "標題已更改為「%@」 ";
/* No comment provided by engineer. */
"GROUP_UPDATED" = "群組已更新";
/* No comment provided by engineer. */
"GROUP_YOU_LEFT" = "您已離開群組";
/* No comment provided by engineer. */
"YOU_WERE_REMOVED" = " 您已被群組踢出 ";
"YOU_WERE_REMOVED" = " 你已從群組中移除。 ";
/* Momentarily shown to the user when attempting to select more images than is allowed. Embeds {{max number of items}} that can be shared. */
"IMAGE_PICKER_CAN_SELECT_NO_MORE_TOAST_FORMAT" = "無法分享超過 %@ 個項目。";
/* alert title */
@ -293,7 +293,7 @@
/* No comment provided by engineer. */
"NOTIFICATIONS_SHOW" = "顯示";
/* No comment provided by engineer. */
"BUTTON_OK" = "OK";
"BUTTON_OK" = "";
/* Info Message when {{other user}} disables or doesn't support disappearing messages */
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ 取消了閱後即焚模式";
/* Info Message when {{other user}} updates message expiration to {{time amount}}, see the *_TIME_AMOUNT strings for context. */
@ -307,9 +307,9 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "未命名相簿";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "標記為已讀";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "回覆";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "我們無法為您啟用帳號,直到您驗證了傳送給您的代碼。";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "送出的連結預覽";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "預覽功能支援 Imgur, Instagram, Pinterest, Reddit, 跟 YouTube 連結。";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "大部分網址都支援預覽功能。";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "連結預覽";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "語音和視頻通話";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "允許訪問以接受來自其他用戶的語音和視頻通話";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "通話";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "通知內容";
/* Label for the 'read receipts' setting. */
@ -518,11 +524,11 @@
"modal_seed_explanation" = "這是您的回復用字句,您可以利用此字句來回復或轉移您的帳號至新的裝置上。";
"modal_clear_all_data_title" = "清除所有資料";
"modal_clear_all_data_explanation" = "這樣做將永久清除您的訊息,帳號與聯絡人。";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "你要清附這部裝置的資料,還是你整個賬戶的資料?";
"dialog_clear_all_data_deletion_failed_1" = "數據已被1個服務節點刪除。節點ID: %@";
"dialog_clear_all_data_deletion_failed_2" = "數據沒有被%@個服務節點刪除。節點ID: %@";
"modal_clear_all_data_device_only_button_title" = "僅限裝置";
"modal_clear_all_data_entire_account_button_title" = "整個賬戶";
"vc_qr_code_title" = "QR Code";
"vc_qr_code_view_my_qr_code_tab_title" = "查看我的 QR Code";
"vc_qr_code_view_scan_qr_code_tab_title" = "掃描 QR Code";
@ -555,57 +561,77 @@
"modal_open_url_title" = "打開連結?";
"modal_open_url_explanation" = "您確定要打開 %@ 嗎?";
"modal_open_url_button_title" = "打開";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "複製鏈結";
"modal_blocked_title" = "解除封鎖 %@ 嗎?";
"modal_blocked_explanation" = "您確定要解除封鎖 %@ 嗎?";
"modal_blocked_button_title" = "解除封鎖";
"modal_link_previews_title" = "是否要啟用連結預覽?";
"modal_link_previews_explanation" = "啟用連結預覽將會讓您送出與接收的 URLs 啟用預覽,這是一項好用的功能,但是 Session 會需要連結這些網站來產生預覽,您可以隨時關閉連結預覽功能。";
"modal_link_previews_button_title" = "啟用";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "語音和視頻通話";
"modal_call_explanation" = "當前的語音/視頻通話機制會將 IP 地址暴露給 Oxen Foundation 服務器以及與您通話的用戶。";
"modal_share_logs_title" = "分享歷史紀錄";
"modal_share_logs_explanation" = "您想輸出及分享應用程式的歷史紀錄以供我們做故障檢修嗎?";
"vc_share_title" = "分享至 Session";
"vc_share_loading_message" = "準備附件中⋯";
"vc_share_sending_message" = "傳送中⋯";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_unsecure" = "無法載入不安全連結的預覽";
"vc_share_link_previews_error" = "無法載入預覽";
"vc_share_link_previews_disabled_title" = "已停用預覽連結";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"view_open_group_invitation_description" = "打開群組邀請";
"vc_conversation_settings_invite_button_title" = "新增成員";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_survey_button_title" = "回饋 / 意見調查";
"vc_settings_support_button_title" = "除錯紀錄";
"modal_send_seed_title" = "警告";
"modal_send_seed_explanation" = "這是你的復原密碼。獲得這段復原密碼的任何人都可以全權存取你的帳戶。";
"modal_send_seed_send_button_title" = "發送";
"vc_conversation_settings_notify_for_mentions_only_title" = "提及我時才通知";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "啟用後,你將只會收到提及你的訊息之通知。";
"view_conversation_title_notify_for_mentions_only" = "目前啟用提及我時才通知";
"message_deleted" = "此段訊息經已刪除";
"delete_message_for_me" = "只為我自己刪除";
"delete_message_for_everyone" = "從所有人的裝置上刪除";
"delete_message_for_me_and_recipient" = "為我和 %@ 刪除";
"context_menu_reply" = "回覆";
"context_menu_save" = "儲存";
"context_menu_ban_user" = "封鎖用戶";
"context_menu_ban_and_delete_all" = "封鎖並刪除所有";
"accessibility_expanding_attachments_button" = "增加附件檔案";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "文件";
"accessibility_library_button" = "前往照片圖庫";
"accessibility_camera_button" = "相機";
"accessibility_main_button_collapse" = "摺疊附件選項";
"invalid_recovery_phrase" = "備援暗語無效";
"invalid_recovery_phrase" = "恢復短語無效";
"DISMISS_BUTTON_TEXT" = "關閉";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"OPEN_SETTINGS_BUTTON" = "設定";
"call_outgoing" = "You called %@";
"call_incoming" = "%@ 來電";
"call_missed" = "錯過 %@ 的來電";
"call_rejected" = "通話被拒絕";
"call_cancelled" = "通話被取消";
"call_timeout" = "未接電話";
"voice_call" = "語音通話";
"video_call" = "視頻通話";
"APN_Message" = "你有一條新訊息。";
"APN_Collapsed_Messages" = "你有 %@ 條新訊息。";
"system_mode_theme" = "按系統設定變更";
"dark_mode_theme" = "深色風格";
"light_mode_theme" = "明亮風格";
"PIN_BUTTON_TEXT" = "置頂";
"UNPIN_BUTTON_TEXT" = "取消置頂";
"modal_call_missed_tips_title" = "未接來電";
"modal_call_missed_tips_explanation" = "Call missed from '%@' because you needed to enable the 'Voice and video calls' permission in the Privacy Settings.";
"meida_saved" = "%@ 儲存了媒體";
"screenshot_taken" = "%@ 擷取了螢幕畫面";
"SEARCH_SECTION_CONTACTS" = "Contacts and Groups";
"SEARCH_SECTION_MESSAGES" = "Messages";
"SEARCH_SECTION_RECENT" = "Recent";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "last message: %@";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";

View File

@ -25,15 +25,15 @@
/* Generic filename for an attachment with no known name */
"ATTACHMENT_DEFAULT_FILENAME" = "附件";
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "附件发送错误";
"ATTACHMENT_ERROR_ALERT_TITLE" = "发送附件时出错";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "无法转图片。";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "无法转码该图片。";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "无法处理该视频。";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "无法解析该视频。";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "无法解析图片。";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "无法识别图片。";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "无法删除图片的元数据。";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "无法清除图片元数据。";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "无法调整图像大小。";
/* Attachment error message for attachments whose data exceed file size limits */
@ -43,7 +43,7 @@
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "附件的文件格式无效。";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "附件为空。";
"ATTACHMENT_ERROR_MISSING_DATA" = "附件。";
/* Alert title when picking a document fails for an unknown reason */
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "文件选取失败。";
/* Alert body when picking a document fails because user picked a directory/bundle */
@ -57,7 +57,7 @@
/* Error indicating that the app received an invalid response from CloudKit. */
"BACKUP_EXPORT_ERROR_INVALID_CLOUDKIT_RESPONSE" = "服务端返回无效响应";
/* Indicates that the cloud is being cleaned up. */
"BACKUP_EXPORT_PHASE_CLEAN_UP" = "正在清备份";
"BACKUP_EXPORT_PHASE_CLEAN_UP" = "正在清备份";
/* Indicates that the backup export is being configured. */
"BACKUP_EXPORT_PHASE_CONFIGURATION" = "正在准备备份";
/* Indicates that the database data is being exported. */
@ -94,8 +94,8 @@
"BLOCK_LIST_BLOCK_BUTTON" = "加入黑名单";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "屏蔽 %@";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "从黑名单中移除 %@ 吗?";
/* A format for the 'unblock user' action sheet title. Embeds {{the unblocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "取消屏蔽 %@吗?";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "从黑名单中移除";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
@ -105,7 +105,7 @@
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "已取消屏蔽 %@。";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "现有成员可再次将您加入群组。";
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "现有成员现在再次将您加入群组。";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "被屏蔽的用户将无法向您发起通话,或发送消息。";
/* Label for generic done button. */
@ -123,7 +123,7 @@
/* Error indicating that the app was prevented from accessing the user's iCloud account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Session访问您iCloud账户以备份数据的请求被拒绝了。请在iOS设置中允许Session访问iCloud账户来备份您在Session中的数据。";
/* Alert body */
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "您将无法在这个群聊里面发送和接收消息。";
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "您将无法在此群组中继续发送或接收消息。";
/* Alert title */
"CONFIRM_LEAVE_GROUP_TITLE" = "确定离开群聊?";
/* Message for the 'conversation delete confirmation' alert. */
@ -145,7 +145,7 @@
/* label for 'mute thread' cell in conversation settings */
"CONVERSATION_SETTINGS_MUTE_LABEL" = "静音";
/* Indicates that the current thread is not muted. */
"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "未静音";
"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "未静音";
/* Label for button to mute a thread for a day. */
"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "静音一天";
/* Label for button to mute a thread for a hour. */
@ -175,17 +175,17 @@
/* The present; the current time. */
"DATE_NOW" = "现在";
/* The current day. */
"DATE_TODAY" = "今";
"DATE_TODAY" = "今";
/* The day before today. */
"DATE_YESTERDAY" = "昨";
"DATE_YESTERDAY" = "昨";
/* table cell label in conversation settings */
"DISAPPEARING_MESSAGES" = "阅后即焚";
/* Info Message when added to a group which has enabled disappearing messages. Embeds {{time amount}} before messages disappear, see the *_TIME_AMOUNT strings for context. */
"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "此对话中的消息将在%@后消失。";
/* table cell label in conversation settings */
"EDIT_GROUP_ACTION" = "编辑群";
"EDIT_GROUP_ACTION" = "编辑群";
/* Label indicating media gallery is empty */
"GALLERY_TILES_EMPTY_GALLERY" = "此对话中没有您的媒体数据。";
"GALLERY_TILES_EMPTY_GALLERY" = "此对话中没有媒体。";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "正在加载新媒体...";
/* Label indicating loading is in progress */
@ -205,9 +205,9 @@
/* No comment provided by engineer. */
"GROUP_CREATED" = "组群已成功创建。";
/* No comment provided by engineer. */
"GROUP_MEMBER_JOINED" = "%@ 加入了群组。";
"GROUP_MEMBER_JOINED" = " %@ 加入了群组。 ";
/* No comment provided by engineer. */
"GROUP_MEMBER_LEFT" = "%@ 已退出群组。";
"GROUP_MEMBER_LEFT" = " %@ 已退出群组。 ";
/* No comment provided by engineer. */
"GROUP_MEMBER_REMOVED" = "%@ 已被移出群组。";
/* No comment provided by engineer. */
@ -231,13 +231,13 @@
/* Confirmation button within contextual alert */
"LEAVE_BUTTON_TITLE" = "离开群组";
/* table cell label in conversation settings */
"LEAVE_GROUP_ACTION" = "离开群";
"LEAVE_GROUP_ACTION" = "离开群";
/* Title for the 'long text message' view. */
"LONG_TEXT_VIEW_TITLE" = "消息";
/* nav bar button item */
"MEDIA_DETAIL_VIEW_ALL_MEDIA_BUTTON" = "所有媒体";
/* media picker option to choose from library */
"MEDIA_FROM_LIBRARY_BUTTON" = "相册";
"MEDIA_FROM_LIBRARY_BUTTON" = "照片图库";
/* Confirmation button text to delete selected media from the gallery, embeds {{number of messages}} */
"MEDIA_GALLERY_DELETE_MULTIPLE_MESSAGES_FORMAT" = "删除%d条消息";
/* Confirmation button text to delete selected media message from the gallery */
@ -251,7 +251,7 @@
/* Section header in media gallery collection view */
"MEDIA_GALLERY_THIS_MONTH_HEADER" = "这个月";
/* message status for message delivered to their recipient. */
"MESSAGE_STATUS_DELIVERED" = "已传达";
"MESSAGE_STATUS_DELIVERED" = "已发送";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED" = "发送失败。";
/* status message for failed messages */
@ -267,7 +267,7 @@
/* status message while attachment is uploading */
"MESSAGE_STATUS_UPLOADING" = "上传中...";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "您可在”iOS 设置“中启用此权限。";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "您可在 iOS 设置中启用此权限。";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "您授予照片访问权限后Session 才能启用此功能。";
/* An explanation of the consequences of muting a thread. */
@ -297,7 +297,7 @@
/* Info Message when {{other user}} disables or doesn't support disappearing messages */
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ 取消了阅后即焚。";
/* Info Message when {{other user}} updates message expiration to {{time amount}}, see the *_TIME_AMOUNT strings for context. */
"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ 设置了消息 %@ 后消失。";
"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ 将阅后即焚时长设为 %@。";
/* alert title, generic error preventing user from capturing a photo */
"PHOTO_CAPTURE_GENERIC_ERROR" = "无法拍摄图片。";
/* alert title */
@ -307,15 +307,15 @@
/* label for system photo collections which have no name. */
"PHOTO_PICKER_UNNAMED_COLLECTION" = "未命名的相册";
/* Notification action button title */
"PUSH_MANAGER_MARKREAD" = "Mark as Read";
"PUSH_MANAGER_MARKREAD" = "标记为已读";
/* Notification action button title */
"PUSH_MANAGER_REPLY" = "Reply";
"PUSH_MANAGER_REPLY" = "回复";
/* alert body during registration */
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "在验证发给你的验证码之前,我们无法激活你的帐户.";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
"SCREEN_LOCK_ACTIVITY_TIMEOUT_NONE" = "立即";
/* Description of how and why Session iOS uses Touch ID/Face ID/Phone Passcode to unlock 'screen lock'. */
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "验证以打开Session";
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "验证以打开 Session";
/* Title for alert indicating that screen lock could not be unlocked. */
"SCREEN_LOCK_UNLOCK_FAILED" = "认证失败";
/* alert title when user attempts to leave the send media flow when they have an in-progress album */
@ -371,9 +371,15 @@
/* Setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS" = "发送链接预览";
/* Footer for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_FOOTER" = "现支持Imgur, Instagram, Pinterest, Reddit, 以及YouTube的链接预览.";
"SETTINGS_LINK_PREVIEWS_FOOTER" = "大多数URL都支持链接预览。";
/* Header for setting for enabling & disabling link previews. */
"SETTINGS_LINK_PREVIEWS_HEADER" = "链接预览";
/* Setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS" = "语音和视频通话";
/* Footer for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_FOOTER" = "允许访问以接听其他用户的语音和视频通话。";
/* Header for setting for enabling & disabling voice & video calls. */
"SETTINGS_CALLS_HEADER" = "通话";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "通知内容";
/* Label for the 'read receipts' setting. */
@ -429,17 +435,17 @@
/* Filename for voice messages. */
"VOICE_MESSAGE_FILE_NAME" = "语音消息";
/* Message for the alert indicating the 'voice message' needs to be held to be held down to record. */
"VOICE_MESSAGE_TOO_SHORT_ALERT_MESSAGE" = "按住不放来录取语音消息。";
"VOICE_MESSAGE_TOO_SHORT_ALERT_MESSAGE" = "长按来录制语音消息。";
/* Title for the alert indicating the 'voice message' needs to be held to be held down to record. */
"VOICE_MESSAGE_TOO_SHORT_ALERT_TITLE" = "语音消息";
/* Info Message when you disable disappearing messages */
"YOU_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "您取消了阅后即焚。";
/* Info message embedding a {{time amount}}, see the *_TIME_AMOUNT strings for context. */
"YOU_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "您设置了消息%@后消失。";
"YOU_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "您将阅后即焚时长设置为%@。";
// MARK: - Session
"continue_2" = "继续";
"copy" = "复制";
"invalid_url" = "无效链接";
"copy" = "拷贝";
"invalid_url" = "无效链接";
"next" = "下一步";
"share" = "共享";
"invalid_session_id" = "无效的Session ID";
@ -461,12 +467,12 @@
"vc_restore_seed_text_field_hint" = "输入您的恢复口令";
"vc_link_device_title" = "关联设备";
"vc_link_device_scan_qr_code_tab_title" = "扫描二维码";
"vc_display_name_title_2" = "选择您想显示的名称";
"vc_display_name_title_2" = "选择您的昵称";
"vc_display_name_explanation" = "这就是您在使用Session时的名字。它可以是您的真实姓名别名或您喜欢的其他任何名称。";
"vc_display_name_text_field_hint" = "输入您想显示的名称";
"vc_display_name_display_name_missing_error" = "请设定一个称";
"vc_display_name_display_name_too_long_error" = "请设定一个较短的名称";
"vc_pn_mode_recommended_option_tag" = "推荐选项";
"vc_display_name_text_field_hint" = "输入称";
"vc_display_name_display_name_missing_error" = "请设定一个称";
"vc_display_name_display_name_too_long_error" = "请选择一个更短的昵称";
"vc_pn_mode_recommended_option_tag" = "推荐选项";
"vc_pn_mode_no_option_picked_modal_title" = "请选择一个选项";
"vc_home_empty_state_message" = "您还没有任何联系人";
"vc_home_empty_state_button_title" = "开始对话";
@ -518,11 +524,11 @@
"modal_seed_explanation" = "这是您的恢复口令。您可以通过该口令将Session ID还原或迁移到新设备上。";
"modal_clear_all_data_title" = "清除所有数据";
"modal_clear_all_data_explanation" = "这将永久删除您的消息、对话和联系人。";
"modal_clear_all_data_explanation_2" = "Would you like to clear only this device, or delete your entire account?";
"dialog_clear_all_data_deletion_failed_1" = "Data not deleted by 1 Service Node. Service Node ID: %@.";
"dialog_clear_all_data_deletion_failed_2" = "Data not deleted by %@ Service Nodes. Service Node IDs: %@.";
"modal_clear_all_data_device_only_button_title" = "Device Only";
"modal_clear_all_data_entire_account_button_title" = "Entire Account";
"modal_clear_all_data_explanation_2" = "你想只清除这个设备,还是删除你的整个账户?";
"dialog_clear_all_data_deletion_failed_1" = "数据未被一个服务节点删除。服务节点ID %@";
"dialog_clear_all_data_deletion_failed_2" = "数据未被 %@ 服务节点删除。服务节点ID %@";
"modal_clear_all_data_device_only_button_title" = "仅设备";
"modal_clear_all_data_entire_account_button_title" = "整个账户";
"vc_qr_code_title" = "二维码";
"vc_qr_code_view_my_qr_code_tab_title" = "查看我的二维码";
"vc_qr_code_view_scan_qr_code_tab_title" = "扫描二维码";
@ -555,73 +561,93 @@
"modal_open_url_title" = "打开链接?";
"modal_open_url_explanation" = "确定要打开 %@ 吗?";
"modal_open_url_button_title" = "打开";
"modal_copy_url_button_title" = "Copy Link";
"modal_copy_url_button_title" = "复制链接";
"modal_blocked_title" = "从黑名单中移除 %@ 吗?";
"modal_blocked_explanation" = "确定解除屏蔽%@吗?";
"modal_blocked_button_title" = "解除屏蔽";
"modal_link_previews_title" = "是否启用链接预览?";
"modal_link_previews_explanation" = "链接预览将为您发送或收到的URL生成预览内容。 该功能非常实用但Session需要访问该链接指向的网站以生成预览。您可以随后在会话设置中禁用该功能。";
"modal_link_previews_button_title" = "启用";
"modal_share_logs_title" = "Share Logs";
"modal_share_logs_explanation" = "Would you like to export your application logs to be able to share for troubleshooting?";
"modal_call_title" = "语音和视频通话";
"modal_call_explanation" = "当前的语音/视频通话机制会将 IP 地址暴露给 Oxen Foundation 服务器以及与您通话的用户。";
"modal_share_logs_title" = "分享日志";
"modal_share_logs_explanation" = "导出日志以供分享和排除故障?";
"vc_share_title" = "分享到 Session";
"vc_share_loading_message" = "正在准备附件......";
"vc_share_sending_message" = "正在发送…";
"vc_share_link_previews_unsecure" = "Preview not loaded for unsecure link";
"vc_share_link_previews_error" = "Unable to load preview";
"vc_share_link_previews_disabled_title" = "Link Previews Disabled";
"vc_share_link_previews_disabled_explanation" = "Enabling link previews will show previews for URLs you share. This can be useful, but Session will need to contact linked websites to generate previews.\n\nYou can enable link previews in Session's settings.";
"vc_share_link_previews_unsecure" = "未加载非安全链接预览";
"vc_share_link_previews_error" = "未能加载预览";
"vc_share_link_previews_disabled_title" = "链接预览已禁用";
"vc_share_link_previews_disabled_explanation" = "开启链接预览将为您发送或收到的URL生成预览内容。 该功能非常实用但Session需要访问该链接指向的网站以生成预览。\n\n您可以随后在会话设置中禁用该功能。";
"view_open_group_invitation_description" = "打开群组邀请";
"vc_conversation_settings_invite_button_title" = "添加成员";
"vc_settings_faq_button_title" = "FAQ";
"vc_settings_survey_button_title" = "Feedback / Survey";
"vc_settings_support_button_title" = "Debug Log";
"modal_send_seed_title" = "Warning";
"modal_send_seed_explanation" = "This is your recovery phrase. If you send it to someone they'll have full access to your account.";
"modal_send_seed_send_button_title" = "Send";
"vc_conversation_settings_notify_for_mentions_only_title" = "Notify for Mentions Only";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "When enabled, you'll only be notified for messages mentioning you.";
"view_conversation_title_notify_for_mentions_only" = "Notifying for Mentions Only";
"message_deleted" = "This message has been deleted";
"delete_message_for_me" = "Delete just for me";
"delete_message_for_everyone" = "Delete for everyone";
"delete_message_for_me_and_recipient" = "Delete for me and %@";
"context_menu_reply" = "Reply";
"context_menu_save" = "Save";
"context_menu_ban_user" = "Ban User";
"context_menu_ban_and_delete_all" = "Ban and Delete All";
"accessibility_expanding_attachments_button" = "Add attachments";
"vc_settings_faq_button_title" = "常见问题";
"vc_settings_survey_button_title" = "意见反馈 / 问卷调查";
"vc_settings_support_button_title" = "调试日志";
"modal_send_seed_title" = "警告";
"modal_send_seed_explanation" = "这是您的恢复口令。如果您将其发送给某人,他们将完全有权访问您的帐户。";
"modal_send_seed_send_button_title" = "发送";
"vc_conversation_settings_notify_for_mentions_only_title" = "仅在提及时通知";
"vc_conversation_settings_notify_for_mentions_only_explanation" = "启用后,您只会收到提及您的消息通知。";
"view_conversation_title_notify_for_mentions_only" = "仅在提及时通知";
"message_deleted" = "此消息已被删除";
"delete_message_for_me" = "仅为我删除";
"delete_message_for_everyone" = "为所有人删除";
"delete_message_for_me_and_recipient" = "为我和 %@ 删除";
"context_menu_reply" = "回复";
"context_menu_save" = "保存";
"context_menu_ban_user" = "封禁用户";
"context_menu_ban_and_delete_all" = "封禁并删除全部";
"accessibility_expanding_attachments_button" = "添加附件";
"accessibility_gif_button" = "Gif";
"accessibility_document_button" = "Document";
"accessibility_library_button" = "Photo library";
"accessibility_camera_button" = "Camera";
"accessibility_main_button_collapse" = "Collapse attachment options";
"invalid_recovery_phrase" = "Invalid Recovery Phrase";
"DISMISS_BUTTON_TEXT" = "Dismiss";
"accessibility_document_button" = "文件";
"accessibility_library_button" = "照片库";
"accessibility_camera_button" = "相机";
"accessibility_main_button_collapse" = "收起附件选项";
"invalid_recovery_phrase" = "恢复口令无效";
"invalid_recovery_phrase" = "恢复口令无效";
"DISMISS_BUTTON_TEXT" = "取消";
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
"voice_call" = "Voice Call";
"video_call" = "Video Call";
"APN_Message" = "You've got a new message";
"system_mode_theme" = "System";
"dark_mode_theme" = "Dark";
"light_mode_theme" = "Light";
"MESSAGE_REQUESTS_TITLE" = "Message Requests";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "No pending message requests";
"MESSAGE_REQUESTS_CLEAR_ALL" = "Clear All";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "Are you sure you want to clear all message requests?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "Clear";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "Are you sure you want to delete this message request?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "An error occurred when trying to accept this message request";
"MESSAGE_REQUESTS_INFO" = "Sending a message to this user will automatically accept their message request.";
"MESSAGE_REQUESTS_ACCEPTED" = "Your message request has been accepted.";
"MESSAGE_REQUESTS_NOTIFICATION" = "You have a new message request";
"TXT_HIDE_TITLE" = "Hide";
"TXT_DELETE_ACCEPT" = "Accept";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "Open Group";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "Direct Message";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "Closed Group";
"modal_call_permission_request_title" = "Call Permissions Required";
"modal_call_permission_request_explanation" = "You can enable the 'Voice and video calls' permission in the Privacy Settings.";
"OPEN_SETTINGS_BUTTON" = "设置";
"call_outgoing" = "您呼叫了 %@";
"call_incoming" = "%@ 来电";
"call_missed" = "来自 %@ 的未接来电";
"call_rejected" = "通话被拒绝";
"call_cancelled" = "通话被取消";
"call_timeout" = "未接电话";
"voice_call" = "语音通话";
"video_call" = "视频通话";
"APN_Message" = "您有一条新消息。";
"APN_Collapsed_Messages" = "你有 %@ 条新消息。";
"system_mode_theme" = "系统";
"dark_mode_theme" = "深色";
"light_mode_theme" = "明亮";
"PIN_BUTTON_TEXT" = "置顶";
"UNPIN_BUTTON_TEXT" = "取消置顶";
"modal_call_missed_tips_title" = "未接来电";
"modal_call_missed_tips_explanation" = "未接听 '%@',因为您需要在隐私设置中启用“语音和视频通话”权限。";
"meida_saved" = "%@ 保存了媒体内容。";
"screenshot_taken" = "%@ 进行了截图。";
"SEARCH_SECTION_CONTACTS" = "联系人和群组";
"SEARCH_SECTION_MESSAGES" = "消息";
"SEARCH_SECTION_RECENT" = "最近";
"RECENT_SEARCH_LAST_MESSAGE_DATETIME" = "最后消息: %@";
"MESSAGE_REQUESTS_TITLE" = "消息请求";
"MESSAGE_REQUESTS_EMPTY_TEXT" = "没有待处理的消息请求";
"MESSAGE_REQUESTS_CLEAR_ALL" = "清除所有";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_TITLE" = "您确定要清除所有消息请求吗?";
"MESSAGE_REQUESTS_CLEAR_ALL_CONFIRMATION_ACTON" = "清除";
"MESSAGE_REQUESTS_DELETE_CONFIRMATION_ACTON" = "您确定要删除此消息请求吗?";
"MESSAGE_REQUESTS_APPROVAL_ERROR_MESSAGE" = "尝试接受此消息请求时发生错误";
"MESSAGE_REQUESTS_INFO" = "发送消息给此用户将自动接受他们的消息请求。";
"MESSAGE_REQUESTS_ACCEPTED" = "您的消息请求已被接受。";
"MESSAGE_REQUESTS_NOTIFICATION" = "您有一个新的消息请求";
"TXT_HIDE_TITLE" = "隐藏";
"TXT_DELETE_ACCEPT" = "接受";
"NEW_CONVERSATION_MENU_OPEN_GROUP" = "公开群组";
"NEW_CONVERSATION_MENU_DIRECT_MESSAGE" = "私信";
"NEW_CONVERSATION_MENU_CLOSED_GROUP" = "私密群组";
"modal_call_permission_request_title" = "请授予通话权限";
"modal_call_permission_request_explanation" = "您可以在隐私设置中启用“语音和视频通话”权限。";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_TITLE" = "Oops, an error occurred";
"DEFAULT_OPEN_GROUP_LOAD_ERROR_SUBTITLE" = "Please try again later";

View File

@ -62,10 +62,7 @@ class BaseVC : UIViewController {
navigationBar.barTintColor = Colors.navigationBarBackground
}
// Back button (to appear on pushed screen)
let backButton = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
backButton.tintColor = Colors.text
navigationItem.backBarButtonItem = backButton
navigationItem.backButtonTitle = ""
}
internal func setNavBarTitle(_ title: String, customFontSize: CGFloat? = nil) {

View File

@ -33,14 +33,14 @@ public final class BackgroundPoller : NSObject {
private static func pollForClosedGroupMessages() -> [Promise<Void>] {
let publicKeys = Storage.shared.getUserClosedGroupPublicKeys()
return publicKeys.map { getMessages(for: $0) }
return publicKeys.map { getClosedGroupMessages(for: $0) }
}
private static func getMessages(for publicKey: String) -> Promise<Void> {
return SnodeAPI.getSwarm(for: publicKey).then(on: DispatchQueue.main) { swarm -> Promise<Void> in
guard let snode = swarm.randomElement() else { throw SnodeAPI.Error.generic }
return attempt(maxRetryCount: 4, recoveringOn: DispatchQueue.main) {
return SnodeAPI.getRawMessages(from: snode, associatedWith: publicKey).then(on: DispatchQueue.main) { rawResponse -> Promise<Void> in
SnodeAPI.getRawMessages(from: snode, associatedWith: publicKey).then(on: DispatchQueue.main) { rawResponse -> Promise<Void> in
let (messages, lastRawMessage) = SnodeAPI.parseRawMessagesResponse(rawResponse, from: snode, associatedWith: publicKey)
let promises = messages.compactMap { json -> Promise<Void>? in
// Use a best attempt approach here; we don't want to fail the entire process if one of the
@ -50,13 +50,55 @@ public final class BackgroundPoller : NSObject {
let job = MessageReceiveJob(data: data, serverHash: json["hash"] as? String, isBackgroundPoll: true)
return job.execute()
}
// Now that the MessageReceiveJob's have been created we can update the `lastMessageHash` value
SnodeAPI.updateLastMessageHashValueIfPossible(for: snode, associatedWith: publicKey, from: lastRawMessage)
SnodeAPI.updateLastMessageHashValueIfPossible(for: snode, namespace: SnodeAPI.defaultNamespace, associatedWith: publicKey, from: lastRawMessage)
return when(fulfilled: promises) // The promise returned by MessageReceiveJob never rejects
}
}
}
}
private static func getClosedGroupMessages(for publicKey: String) -> Promise<Void> {
return SnodeAPI.getSwarm(for: publicKey).then(on: DispatchQueue.main) { swarm -> Promise<Void> in
guard let snode = swarm.randomElement() else { throw SnodeAPI.Error.generic }
return attempt(maxRetryCount: 4, recoveringOn: DispatchQueue.main) {
var promises: [SnodeAPI.RawResponsePromise] = []
var namespaces: [Int] = []
// We have to poll for both namespace 0 and -10 when hardfork == 19 && softfork == 0
if SnodeAPI.hardfork <= 19, SnodeAPI.softfork == 0 {
let promise = SnodeAPI.getRawClosedGroupMessagesFromDefaultNamespace(from: snode, associatedWith: publicKey)
promises.append(promise)
namespaces.append(SnodeAPI.defaultNamespace)
}
if SnodeAPI.hardfork >= 19 && SnodeAPI.softfork >= 0 {
let promise = SnodeAPI.getRawMessages(from: snode, associatedWith: publicKey, authenticated: false)
promises.append(promise)
namespaces.append(SnodeAPI.closedGroupNamespace)
}
return when(resolved: promises).then(on: DispatchQueue.main) { results -> Promise<Void> in
var promises: [Promise<Void>] = []
var index = 0
for result in results {
if case .fulfilled(let rawResponse) = result {
let (messages, lastRawMessage) = SnodeAPI.parseRawMessagesResponse(rawResponse, from: snode, associatedWith: publicKey)
let jobPromises = messages.compactMap { json -> Promise<Void>? in
// Use a best attempt approach here; we don't want to fail the entire process if one of the
// messages failed to parse.
guard let envelope = SNProtoEnvelope.from(json),
let data = try? envelope.serializedData() else { return nil }
let job = MessageReceiveJob(data: data, serverHash: json["hash"] as? String, isBackgroundPoll: true)
return job.execute()
}
// Now that the MessageReceiveJob's have been created we can update the `lastMessageHash` value
SnodeAPI.updateLastMessageHashValueIfPossible(for: snode, namespace: namespaces[index], associatedWith: publicKey, from: lastRawMessage)
promises += jobPromises
}
index += 1
}
return when(fulfilled: promises) // The promise returned by MessageReceiveJob never rejects
}
}
}
}
}

View File

@ -9,11 +9,14 @@ public final class CallMessage : ControlMessage {
public var sdps: [String]?
public override var isSelfSendValid: Bool {
if case .answer = kind { return true }
if case .endCall = kind { return true }
return false
switch kind {
case .answer, .endCall: return true
default: return false
}
}
public override var shouldBeRetryable: Bool { true }
// NOTE: Multiple ICE candidates may be batched together for performance
// MARK: Kind

View File

@ -12,6 +12,13 @@ public final class ClosedGroupControlMessage : ControlMessage {
public override var isSelfSendValid: Bool { true }
public override var shouldBeRetryable: Bool {
switch kind {
case .new, .encryptionKeyPair: return true
default: return false
}
}
// MARK: Kind
public enum Kind : CustomStringConvertible {
case new(publicKey: Data, name: String, encryptionKeyPair: ECKeyPair, members: [Data], admins: [Data], expirationTimer: UInt32)

View File

@ -15,6 +15,8 @@ public class Message : NSObject, NSCoding { // NSObject/NSCoding conformance is
public var ttl: UInt64 { 14 * 24 * 60 * 60 * 1000 }
public var isSelfSendValid: Bool { false }
public var shouldBeRetryable: Bool { false }
public override init() { }

View File

@ -859,7 +859,9 @@ extension MessageReceiver {
// Force a config sync to ensure all devices know the contact approval state if desired
guard forceConfigSync else { return }
MessageSender.syncConfiguration(forceSyncNow: true).retainUntilComplete()
transaction.addCompletionQueue(Threading.jobQueue) {
MessageSender.syncConfiguration(forceSyncNow: true).retainUntilComplete()
}
}
public static func handleMessageRequestResponse(_ message: MessageRequestResponse, using transaction: Any) {

View File

@ -168,14 +168,14 @@ public enum MessageReceiver {
// If the message failed to process the first time around we retry it later (if the error is retryable). In this case the timestamp
// will already be in the database but we don't want to treat the message as a duplicate. The isRetry flag is a simple workaround
// for this issue.
if let message = message as? ClosedGroupControlMessage, case .new = message.kind {
// Allow duplicates in this case to avoid the following situation:
if message.shouldBeRetryable {
// Allow duplicates for new closed group & encryption key pair update:
// The app performed a background poll or received a push notification
// This method was invoked and the received message timestamps table was updated
// Processing wasn't finished
// The user doesn't see the new closed group
} else if message.isKind(of: CallMessage.self) {
// Allow duplicates for all call messages
// Allow duplicates for all call messages,
// The double checking will be done on message handling to make sure the messages are for the same ongoing call
} else {
guard !Set(storage.getReceivedMessageTimestamps(using: transaction)).contains(envelope.timestamp) || isRetry else { throw Error.duplicateMessage }

View File

@ -204,7 +204,10 @@ public final class MessageSender : NSObject {
let base64EncodedData = wrappedMessage.base64EncodedString()
let timestamp = UInt64(Int64(message.sentTimestamp!) + SnodeAPI.clockOffset)
let snodeMessage = SnodeMessage(recipient: message.recipient!, data: base64EncodedData, ttl: message.ttl, timestamp: timestamp)
SnodeAPI.sendMessage(snodeMessage).done(on: DispatchQueue.global(qos: .userInitiated)) { promises in
SnodeAPI.sendMessage(snodeMessage,
isClosedGroupMessage: (kind == .closedGroupMessage),
isConfigMessage: message.isKind(of: ConfigurationMessage.self))
.done(on: DispatchQueue.global(qos: .userInitiated)) { promises in
var isSuccess = false
let promiseCount = promises.count
var errorCount = 0

View File

@ -87,7 +87,14 @@ public final class ClosedGroupPoller : NSObject {
timers[groupPublicKey] = Timer.scheduledTimerOnMainThread(withTimeInterval: nextPollInterval, repeats: false) { [weak self] timer in
timer.invalidate()
Threading.pollerQueue.async {
self?.poll(groupPublicKey).done(on: Threading.pollerQueue) { _ in
var promises: [Promise<Void>] = []
if SnodeAPI.hardfork <= 19, SnodeAPI.softfork == 0, let promise = self?.poll(groupPublicKey, defaultInbox: true) {
promises.append(promise)
}
if SnodeAPI.hardfork >= 19, SnodeAPI.softfork >= 0,let promise = self?.poll(groupPublicKey) {
promises.append(promise)
}
when(resolved: promises).done(on: Threading.pollerQueue) { _ in
self?.pollRecursively(groupPublicKey)
}.catch(on: Threading.pollerQueue) { error in
// The error is logged in poll(_:)
@ -97,13 +104,14 @@ public final class ClosedGroupPoller : NSObject {
}
}
private func poll(_ groupPublicKey: String) -> Promise<Void> {
private func poll(_ groupPublicKey: String, defaultInbox: Bool = false) -> Promise<Void> {
guard isPolling(for: groupPublicKey) else { return Promise.value(()) }
let promise = SnodeAPI.getSwarm(for: groupPublicKey).then2 { [weak self] swarm -> Promise<(Snode, [JSON], JSON?)> in
// randomElement() uses the system's default random generator, which is cryptographically secure
guard let snode = swarm.randomElement() else { return Promise(error: Error.insufficientSnodes) }
guard let self = self, self.isPolling(for: groupPublicKey) else { return Promise(error: Error.pollingCanceled) }
return SnodeAPI.getRawMessages(from: snode, associatedWith: groupPublicKey).map2 {
let getRawMessagesPromise = defaultInbox ? SnodeAPI.getRawClosedGroupMessagesFromDefaultNamespace(from: snode, associatedWith: groupPublicKey) : SnodeAPI.getRawMessages(from: snode, associatedWith: groupPublicKey, authenticated: false)
return getRawMessagesPromise.map2 {
let (rawMessages, lastRawMessage) = SnodeAPI.parseRawMessagesResponse($0, from: snode, associatedWith: groupPublicKey)
return (snode, rawMessages, lastRawMessage)
@ -128,7 +136,7 @@ public final class ClosedGroupPoller : NSObject {
}
// Now that the MessageReceiveJob's have been created we can update the `lastMessageHash` value
SnodeAPI.updateLastMessageHashValueIfPossible(for: snode, associatedWith: groupPublicKey, from: lastRawMessage)
SnodeAPI.updateLastMessageHashValueIfPossible(for: snode, namespace: SnodeAPI.closedGroupNamespace, associatedWith: groupPublicKey, from: lastRawMessage)
}
promise.catch2 { error in
SNLog("Polling failed for closed group with public key: \(groupPublicKey) due to error: \(error).")

View File

@ -112,7 +112,7 @@ public final class Poller : NSObject {
}
// Now that the MessageReceiveJob's have been created we can update the `lastMessageHash` value
SnodeAPI.updateLastMessageHashValueIfPossible(for: snode, associatedWith: userPublicKey, from: lastRawMessage)
SnodeAPI.updateLastMessageHashValueIfPossible(for: snode, namespace: SnodeAPI.defaultNamespace, associatedWith: userPublicKey, from: lastRawMessage)
strongSelf.pollCount += 1
if strongSelf.pollCount == Poller.maxPollCount {

View File

@ -395,6 +395,9 @@ public enum OnionRequestAPI {
if statusCode == 406 { // Clock out of sync
SNLog("The user's clock is out of sync with the service node network.")
seal.reject(SnodeAPI.Error.clockOutOfSync)
} else if statusCode == 401 { // Signature verification failed
SNLog("Failed to verify the signature.")
seal.reject(SnodeAPI.Error.signatureVerificationFailed)
} else if let bodyAsString = json["body"] as? String {
guard let bodyAsData = bodyAsString.data(using: .utf8),
let body = try JSONSerialization.jsonObject(with: bodyAsData, options: [ .fragmentsAllowed ]) as? JSON else { return seal.reject(HTTP.Error.invalidJSON) }

View File

@ -22,6 +22,15 @@ public final class SnodeAPI : NSObject {
public static var clockOffset: Int64 = 0
/// - Note: Should only be accessed from `Threading.workQueue` to avoid race conditions.
public static var swarmCache: [String:Set<Snode>] = [:]
// MARK: Namespaces
public static let defaultNamespace = 0
public static let closedGroupNamespace = -10
public static let configNamespace = 5
// MARK: Hardfork version
public static var hardfork = UserDefaults.standard[.hardfork]
public static var softfork = UserDefaults.standard[.softfork]
// MARK: Settings
private static let maxRetryCount: UInt = 8
@ -39,6 +48,7 @@ public final class SnodeAPI : NSObject {
case inconsistentSnodePools
case noKeyPair
case signingFailed
case signatureVerificationFailed
// ONS
case decryptionFailed
case hashingFailed
@ -52,6 +62,7 @@ public final class SnodeAPI : NSObject {
case .inconsistentSnodePools: return "Received inconsistent Service Node pool information from the Service Node network."
case .noKeyPair: return "Missing user key pair."
case .signingFailed: return "Couldn't sign message."
case . signatureVerificationFailed: return "Failed to verify the signature."
// ONS
case .decryptionFailed: return "Couldn't decrypt ONS name."
case .hashingFailed: return "Couldn't compute ONS name hash."
@ -131,7 +142,22 @@ public final class SnodeAPI : NSObject {
// MARK: Internal API
internal static func invoke(_ method: Snode.Method, on snode: Snode, associatedWith publicKey: String? = nil, parameters: JSON) -> RawResponsePromise {
if Features.useOnionRequests {
return OnionRequestAPI.sendOnionRequest(to: snode, invoking: method, with: parameters, associatedWith: publicKey).map2 { $0 as Any }
return OnionRequestAPI.sendOnionRequest(to: snode, invoking: method, with: parameters, associatedWith: publicKey)
.map2 { json in
if let hf = json["hf"] as? [Int] {
if hf[1] > softfork {
softfork = hf[1]
UserDefaults.standard[.softfork] = softfork
}
if hf[0] > hardfork {
hardfork = hf[0]
UserDefaults.standard[.hardfork] = hardfork
softfork = hf[1]
UserDefaults.standard[.softfork] = softfork
}
}
return json as Any
}
} else {
let url = "\(snode.address):\(snode.port)/storage_rpc/v1"
return HTTP.execute(.post, url, parameters: parameters).map2 { $0 as Any }.recover2 { error -> Promise<Any> in
@ -390,47 +416,113 @@ public final class SnodeAPI : NSObject {
}
}
public static func getRawMessages(from snode: Snode, associatedWith publicKey: String) -> RawResponsePromise {
// MARK: Retrieve
// Not in use until we can batch delete and store config messages
public static func getConfigMessages(from snode: Snode, associatedWith publicKey: String) -> RawResponsePromise {
let (promise, seal) = RawResponsePromise.pending()
Threading.workQueue.async {
getMessagesInternal(from: snode, associatedWith: publicKey).done2 { seal.fulfill($0) }.catch2 { seal.reject($0) }
getMessagesWithAuthentication(from: snode, associatedWith: publicKey, namespace: configNamespace).done2 {
seal.fulfill($0)
}.catch2 {
seal.reject($0)
}
}
return promise
}
private static func getMessagesInternal(from snode: Snode, associatedWith publicKey: String) -> RawResponsePromise {
public static func getRawMessages(from snode: Snode, associatedWith publicKey: String, authenticated: Bool = true) -> RawResponsePromise {
let (promise, seal) = RawResponsePromise.pending()
Threading.workQueue.async {
let retrievePromise = authenticated ? getMessagesWithAuthentication(from: snode, associatedWith: publicKey, namespace: defaultNamespace) : getMessagesUnauthenticated(from: snode, associatedWith: publicKey)
retrievePromise.done2 { seal.fulfill($0) }.catch2 { seal.reject($0) }
}
return promise
}
public static func getRawClosedGroupMessagesFromDefaultNamespace(from snode: Snode, associatedWith publicKey: String) -> RawResponsePromise {
let (promise, seal) = RawResponsePromise.pending()
Threading.workQueue.async {
getMessagesUnauthenticated(from: snode, associatedWith: publicKey, namespace: defaultNamespace).done2 { seal.fulfill($0) }.catch2 { seal.reject($0) }
}
return promise
}
private static func getMessagesWithAuthentication(from snode: Snode, associatedWith publicKey: String, namespace: Int) -> RawResponsePromise {
let storage = SNSnodeKitConfiguration.shared.storage
// NOTE: All authentication logic is currently commented out, the reason being that we can't currently support
// NOTE: All authentication logic is only apply to 1-1 chats, the reason being that we can't currently support
// it yet for closed groups. The Storage Server requires an ed25519 key pair, but we don't have that for our
// closed groups.
// guard let userED25519KeyPair = storage.getUserED25519KeyPair() else { return Promise(error: Error.noKeyPair) }
guard let userED25519KeyPair = storage.getUserED25519KeyPair() else { return Promise(error: Error.noKeyPair) }
// Get last message hash
storage.pruneLastMessageHashInfoIfExpired(for: snode, associatedWith: publicKey)
let lastHash = storage.getLastMessageHash(for: snode, associatedWith: publicKey) ?? ""
storage.pruneLastMessageHashInfoIfExpired(for: snode, namespace: namespace, associatedWith: publicKey)
let lastHash = storage.getLastMessageHash(for: snode, namespace: namespace, associatedWith: publicKey) ?? ""
// Construct signature
// let timestamp = UInt64(Int64(NSDate.millisecondTimestamp()) + SnodeAPI.clockOffset)
// let ed25519PublicKey = userED25519KeyPair.publicKey.toHexString()
// let verificationData = ("retrieve" + String(timestamp)).data(using: String.Encoding.utf8)!
// let signature = sodium.sign.signature(message: Bytes(verificationData), secretKey: userED25519KeyPair.secretKey)!
let timestamp = UInt64(Int64(NSDate.millisecondTimestamp()) + SnodeAPI.clockOffset)
let ed25519PublicKey = userED25519KeyPair.publicKey.toHexString()
let namespaceVerificationString = namespace == defaultNamespace ? "" : String(namespace)
guard let verificationData = ("retrieve" + namespaceVerificationString + String(timestamp)).data(using: String.Encoding.utf8),
let signature = sodium.sign.signature(message: Bytes(verificationData), secretKey: userED25519KeyPair.secretKey)
else { return Promise(error: Error.signingFailed) }
// Make the request
let parameters: JSON = [
"pubKey" : Features.useTestnet ? publicKey.removing05PrefixIfNeeded() : publicKey,
"namespace": namespace,
"lastHash" : lastHash,
// "timestamp" : timestamp,
// "pubkey_ed25519" : ed25519PublicKey,
// "signature" : signature.toBase64()!
"timestamp" : timestamp,
"pubkey_ed25519" : ed25519PublicKey,
"signature" : signature.toBase64()
]
return invoke(.getMessages, on: snode, associatedWith: publicKey, parameters: parameters)
}
public static func sendMessage(_ message: SnodeMessage) -> Promise<Set<RawResponsePromise>> {
private static func getMessagesUnauthenticated(from snode: Snode, associatedWith publicKey: String, namespace: Int = closedGroupNamespace) -> RawResponsePromise {
let storage = SNSnodeKitConfiguration.shared.storage
// Get last message hash
storage.pruneLastMessageHashInfoIfExpired(for: snode, namespace: namespace, associatedWith: publicKey)
let lastHash = storage.getLastMessageHash(for: snode, namespace: namespace, associatedWith: publicKey) ?? ""
// Make the request
var parameters: JSON = [
"pubKey" : Features.useTestnet ? publicKey.removing05PrefixIfNeeded() : publicKey,
"lastHash" : lastHash,
]
// Don't include namespace if polling for 0 with no authentication
if namespace != defaultNamespace {
parameters["namespace"] = namespace
}
return invoke(.getMessages, on: snode, associatedWith: publicKey, parameters: parameters)
}
// MARK: Store
public static func sendMessage(_ message: SnodeMessage, isClosedGroupMessage: Bool, isConfigMessage: Bool) -> Promise<Set<RawResponsePromise>> {
return sendMessageUnauthenticated(message, isClosedGroupMessage: isClosedGroupMessage)
}
// Not in use until we can batch delete and store config messages
private static func sendMessageWithAuthentication(_ message: SnodeMessage, namespace: Int) -> Promise<Set<RawResponsePromise>> {
let storage = SNSnodeKitConfiguration.shared.storage
guard let userED25519KeyPair = storage.getUserED25519KeyPair() else { return Promise(error: Error.noKeyPair) }
// Construct signature
let timestamp = UInt64(Int64(NSDate.millisecondTimestamp()) + SnodeAPI.clockOffset)
let ed25519PublicKey = userED25519KeyPair.publicKey.toHexString()
guard let verificationData = ("store" + String(namespace) + String(timestamp)).data(using: String.Encoding.utf8),
let signature = sodium.sign.signature(message: Bytes(verificationData), secretKey: userED25519KeyPair.secretKey)
else { return Promise(error: Error.signingFailed) }
// Make the request
let (promise, seal) = Promise<Set<RawResponsePromise>>.pending()
let publicKey = Features.useTestnet ? message.recipient.removing05PrefixIfNeeded() : message.recipient
Threading.workQueue.async {
getTargetSnodes(for: publicKey).map2 { targetSnodes in
let parameters = message.toJSON()
var parameters = message.toJSON()
parameters["namespace"] = namespace
parameters["sig_timestamp"] = timestamp
parameters["pubkey_ed25519"] = ed25519PublicKey
parameters["signature"] = signature.toBase64()
return Set(targetSnodes.map { targetSnode in
attempt(maxRetryCount: maxRetryCount, recoveringOn: Threading.workQueue) {
invoke(.sendMessage, on: targetSnode, associatedWith: publicKey, parameters: parameters)
@ -441,6 +533,40 @@ public final class SnodeAPI : NSObject {
return promise
}
private static func sendMessageUnauthenticated(_ message: SnodeMessage, isClosedGroupMessage: Bool) -> Promise<Set<RawResponsePromise>> {
let (promise, seal) = Promise<Set<RawResponsePromise>>.pending()
let publicKey = Features.useTestnet ? message.recipient.removing05PrefixIfNeeded() : message.recipient
Threading.workQueue.async {
getTargetSnodes(for: publicKey).map2 { targetSnodes in
var rawResponsePromises: Set<RawResponsePromise> = Set()
var parameters = message.toJSON()
parameters["namespace"] = isClosedGroupMessage ? closedGroupNamespace : defaultNamespace
for targetSnode in targetSnodes {
let rawResponsePromise = attempt(maxRetryCount: maxRetryCount, recoveringOn: Threading.workQueue) {
invoke(.sendMessage, on: targetSnode, associatedWith: publicKey, parameters: parameters)
}
rawResponsePromises.insert(rawResponsePromise)
}
// Send closed group messages to default namespace as well
if hardfork == 19 && softfork == 0 && isClosedGroupMessage {
parameters["namespace"] = defaultNamespace
for targetSnode in targetSnodes {
let rawResponsePromise = attempt(maxRetryCount: maxRetryCount, recoveringOn: Threading.workQueue) {
invoke(.sendMessage, on: targetSnode, associatedWith: publicKey, parameters: parameters)
}
rawResponsePromises.insert(rawResponsePromise)
}
}
return rawResponsePromises
}.done2 { seal.fulfill($0) }.catch2 { seal.reject($0) }
}
return promise
}
// MARK: Delete
@objc(deleteMessageForPublickKey:serverHashes:)
public static func objc_deleteMessage(publicKey: String, serverHashes: [String]) -> AnyPromise {
AnyPromise.from(deleteMessage(publicKey: publicKey, serverHashes: serverHashes))
@ -568,10 +694,10 @@ public final class SnodeAPI : NSObject {
)
}
public static func updateLastMessageHashValueIfPossible(for snode: Snode, associatedWith publicKey: String, from lastRawMessage: JSON?) {
public static func updateLastMessageHashValueIfPossible(for snode: Snode, namespace: Int, associatedWith publicKey: String, from lastRawMessage: JSON?) {
if let lastMessage = lastRawMessage, let lastHash = lastMessage["hash"] as? String, let expirationDate = lastMessage["expiration"] as? UInt64 {
SNSnodeKitConfiguration.shared.storage.writeSync { transaction in
SNSnodeKitConfiguration.shared.storage.setLastMessageHashInfo(for: snode, associatedWith: publicKey,
SNSnodeKitConfiguration.shared.storage.setLastMessageHashInfo(for: snode, namespace: namespace, associatedWith: publicKey,
to: [ "hash" : lastHash, "expirationDate" : NSNumber(value: expirationDate) ], using: transaction)
}
} else if (lastRawMessage != nil) {

View File

@ -80,8 +80,8 @@ extension Storage {
private static let lastMessageHashCollection = "LokiLastMessageHashCollection"
public func getLastMessageHashInfo(for snode: Snode, associatedWith publicKey: String) -> JSON? {
let key = "\(snode.address):\(snode.port).\(publicKey)"
public func getLastMessageHashInfo(for snode: Snode, namespace: Int, associatedWith publicKey: String) -> JSON? {
let key = namespace == SnodeAPI.defaultNamespace ? "\(snode.address):\(snode.port).\(publicKey)" : "\(snode.address):\(snode.port).\(publicKey).\(namespace)"
var result: JSON?
Storage.read { transaction in
result = transaction.object(forKey: key, inCollection: Storage.lastMessageHashCollection) as? JSON
@ -93,29 +93,30 @@ extension Storage {
return result
}
public func getLastMessageHash(for snode: Snode, associatedWith publicKey: String) -> String? {
return getLastMessageHashInfo(for: snode, associatedWith: publicKey)?["hash"] as? String
public func getLastMessageHash(for snode: Snode, namespace: Int, associatedWith publicKey: String) -> String? {
return getLastMessageHashInfo(for: snode, namespace: namespace, associatedWith: publicKey)?["hash"] as? String
}
public func setLastMessageHashInfo(for snode: Snode, associatedWith publicKey: String, to lastMessageHashInfo: JSON, using transaction: Any) {
let key = "\(snode.address):\(snode.port).\(publicKey)"
public func setLastMessageHashInfo(for snode: Snode, namespace: Int, associatedWith publicKey: String, to lastMessageHashInfo: JSON, using transaction: Any) {
let key = namespace == SnodeAPI.defaultNamespace ? "\(snode.address):\(snode.port).\(publicKey)" : "\(snode.address):\(snode.port).\(publicKey).\(namespace)"
guard lastMessageHashInfo.count == 2 && lastMessageHashInfo["hash"] as? String != nil && lastMessageHashInfo["expirationDate"] as? NSNumber != nil else { return }
(transaction as! YapDatabaseReadWriteTransaction).setObject(lastMessageHashInfo, forKey: key, inCollection: Storage.lastMessageHashCollection)
}
public func pruneLastMessageHashInfoIfExpired(for snode: Snode, associatedWith publicKey: String) {
guard let lastMessageHashInfo = getLastMessageHashInfo(for: snode, associatedWith: publicKey),
public func pruneLastMessageHashInfoIfExpired(for snode: Snode, namespace: Int, associatedWith publicKey: String) {
guard let lastMessageHashInfo = getLastMessageHashInfo(for: snode, namespace: namespace, associatedWith: publicKey),
(lastMessageHashInfo["hash"] as? String) != nil, let expirationDate = (lastMessageHashInfo["expirationDate"] as? NSNumber)?.uint64Value else { return }
let now = NSDate.millisecondTimestamp()
if now >= expirationDate {
Storage.writeSync { transaction in
self.removeLastMessageHashInfo(for: snode, associatedWith: publicKey, using: transaction)
self.removeLastMessageHashInfo(for: snode, namespace: namespace, associatedWith: publicKey, using: transaction)
self.setReceivedMessages(to: Set(), for: publicKey, using: transaction)
}
}
}
public func removeLastMessageHashInfo(for snode: Snode, associatedWith publicKey: String, using transaction: Any) {
let key = "\(snode.address):\(snode.port).\(publicKey)"
public func removeLastMessageHashInfo(for snode: Snode, namespace: Int, associatedWith publicKey: String, using transaction: Any) {
let key = namespace == SnodeAPI.defaultNamespace ? "\(snode.address):\(snode.port).\(publicKey)" : "\(snode.address):\(snode.port).\(publicKey).\(namespace)"
(transaction as! YapDatabaseReadWriteTransaction).removeObject(forKey: key, inCollection: Storage.lastMessageHashCollection)
}

View File

@ -20,9 +20,9 @@ public protocol SessionSnodeKitStorageProtocol {
func setLastSnodePoolRefreshDate(to date: Date, using transaction: Any)
func getSwarm(for publicKey: String) -> Set<Snode>
func setSwarm(to swarm: Set<Snode>, for publicKey: String, using transaction: Any)
func getLastMessageHash(for snode: Snode, associatedWith publicKey: String) -> String?
func setLastMessageHashInfo(for snode: Snode, associatedWith publicKey: String, to lastMessageHashInfo: JSON, using transaction: Any)
func pruneLastMessageHashInfoIfExpired(for snode: Snode, associatedWith publicKey: String)
func getLastMessageHash(for snode: Snode, namespace: Int, associatedWith publicKey: String) -> String?
func setLastMessageHashInfo(for snode: Snode, namespace: Int, associatedWith publicKey: String, to lastMessageHashInfo: JSON, using transaction: Any)
func pruneLastMessageHashInfoIfExpired(for snode: Snode, namespace: Int, associatedWith publicKey: String)
func getReceivedMessages(for publicKey: String) -> Set<String>
func setReceivedMessages(to receivedMessages: Set<String>, for publicKey: String, using transaction: Any)
}

View File

@ -70,7 +70,15 @@ public final class Button : UIButton {
if heightConstraint == nil { heightConstraint = set(.height, to: height) }
layer.cornerRadius = height / 2
backgroundColor = fillColor
layer.borderColor = borderColor.cgColor
if #available(iOS 13.0, *) {
layer.borderColor = borderColor
.resolvedColor(
// Note: This is needed for '.cgColor' to support dark mode
with: UITraitCollection(userInterfaceStyle: isDarkMode ? .dark : .light)
).cgColor
} else {
layer.borderColor = borderColor.cgColor
}
layer.borderWidth = 1
let fontSize = (size == .small) ? Values.smallFontSize : Values.mediumFontSize
titleLabel!.font = .boldSystemFont(ofSize: fontSize)

View File

@ -26,6 +26,8 @@ public enum SNUserDefaults {
public enum Int : Swift.String {
case appMode
case hardfork
case softfork
}
public enum String : Swift.String {