Merge tag '2.29.3.3'

This commit is contained in:
Michael Kirk 2018-09-15 09:17:08 -05:00
commit 920a82564f
84 changed files with 3367 additions and 1852 deletions

2
Pods

@ -1 +1 @@
Subproject commit 3ce7a1b597cd20211b2e9ad79ad59262b6f64c82
Subproject commit e9fb539a0061d7e9f87ba48a724f99092232b41b

View File

@ -437,6 +437,7 @@
4C13C9F620E57BA30089A98B /* ColorPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C13C9F520E57BA30089A98B /* ColorPickerViewController.swift */; };
4C20B2B720CA0034001BAC90 /* ThreadViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4542DF51208B82E9007B4E76 /* ThreadViewModel.swift */; };
4C20B2B920CA10DE001BAC90 /* ConversationSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C20B2B820CA10DE001BAC90 /* ConversationSearchViewController.swift */; };
4C2F454F214C00E1004871FF /* AvatarTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2F454E214C00E1004871FF /* AvatarTableViewCell.swift */; };
4C3EF7FD2107DDEE0007EBF7 /* ParamParserTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EF7FC2107DDEE0007EBF7 /* ParamParserTest.swift */; };
4C3EF802210918740007EBF7 /* SSKProtoEnvelopeTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EF801210918740007EBF7 /* SSKProtoEnvelopeTest.swift */; };
4C4AEC4520EC343B0020E72B /* DismissableTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C4AEC4420EC343B0020E72B /* DismissableTextField.swift */; };
@ -444,6 +445,7 @@
4C63CC00210A620B003AE45C /* SignalTSan.supp in Resources */ = {isa = PBXBuildFile; fileRef = 4C63CBFF210A620B003AE45C /* SignalTSan.supp */; };
4C6F527C20FFE8400097DEEE /* SignalUBSan.supp in Resources */ = {isa = PBXBuildFile; fileRef = 4C6F527B20FFE8400097DEEE /* SignalUBSan.supp */; };
4C858A52212DC5E1001B45D3 /* UIImage+OWS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C858A51212DC5E1001B45D3 /* UIImage+OWS.swift */; };
4C948FF72146EB4800349F0D /* BlockListCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C948FF62146EB4800349F0D /* BlockListCache.swift */; };
4CA5F793211E1F06008C2708 /* Toast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA5F792211E1F06008C2708 /* Toast.swift */; };
4CB5F26720F6E1E2004D1B42 /* MenuActionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CFF4C0920F55BBA005DA313 /* MenuActionsViewController.swift */; };
4CB5F26920F7D060004D1B42 /* MessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CB5F26820F7D060004D1B42 /* MessageActions.swift */; };
@ -1128,6 +1130,7 @@
4C11AA4F20FD59C700351FBD /* MessageStatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageStatusView.swift; sourceTree = "<group>"; };
4C13C9F520E57BA30089A98B /* ColorPickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerViewController.swift; sourceTree = "<group>"; };
4C20B2B820CA10DE001BAC90 /* ConversationSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConversationSearchViewController.swift; sourceTree = "<group>"; };
4C2F454E214C00E1004871FF /* AvatarTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarTableViewCell.swift; sourceTree = "<group>"; };
4C3EF7FC2107DDEE0007EBF7 /* ParamParserTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParamParserTest.swift; sourceTree = "<group>"; };
4C3EF801210918740007EBF7 /* SSKProtoEnvelopeTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSKProtoEnvelopeTest.swift; sourceTree = "<group>"; };
4C4AEC4420EC343B0020E72B /* DismissableTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DismissableTextField.swift; sourceTree = "<group>"; };
@ -1135,6 +1138,7 @@
4C63CBFF210A620B003AE45C /* SignalTSan.supp */ = {isa = PBXFileReference; lastKnownFileType = text; path = SignalTSan.supp; sourceTree = "<group>"; };
4C6F527B20FFE8400097DEEE /* SignalUBSan.supp */ = {isa = PBXFileReference; lastKnownFileType = text; path = SignalUBSan.supp; sourceTree = "<group>"; };
4C858A51212DC5E1001B45D3 /* UIImage+OWS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+OWS.swift"; sourceTree = "<group>"; };
4C948FF62146EB4800349F0D /* BlockListCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockListCache.swift; sourceTree = "<group>"; };
4CA5F792211E1F06008C2708 /* Toast.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Toast.swift; sourceTree = "<group>"; };
4CB5F26820F7D060004D1B42 /* MessageActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageActions.swift; sourceTree = "<group>"; };
4CC0B59B20EC5F2E00CF6EE0 /* ConversationConfigurationSyncOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConversationConfigurationSyncOperation.swift; sourceTree = "<group>"; };
@ -1565,6 +1569,7 @@
B97940261832BD2400BD66CB /* UIUtil.m */,
45F170D51E315310003FC1F2 /* Weak.swift */,
4C858A51212DC5E1001B45D3 /* UIImage+OWS.swift */,
4C948FF62146EB4800349F0D /* BlockListCache.swift */,
);
path = utils;
sourceTree = "<group>";
@ -2232,6 +2237,7 @@
isa = PBXGroup;
children = (
452EA09D1EA7ABE00078744B /* AttachmentPointerView.swift */,
4C2F454E214C00E1004871FF /* AvatarTableViewCell.swift */,
34E3E5671EC4B19400495BAC /* AudioProgressView.swift */,
451764291DE939FD00EDB8B9 /* ContactCell.swift */,
4523149F1F7E9E18003A428C /* DirectionalPanGestureRecognizer.swift */,
@ -3272,6 +3278,7 @@
34480B561FD0A7A400BC14EF /* DebugLogger.m in Sources */,
459B775C207BA46C0071D0AB /* OWSQuotedReplyModel.m in Sources */,
34ABB2C42090C59700C727A6 /* OWSResaveCollectionDBMigration.m in Sources */,
4C948FF72146EB4800349F0D /* BlockListCache.swift in Sources */,
4551DB5A205C562300C8AE75 /* Collection+OWS.swift in Sources */,
34AC09ED211B39B100997B47 /* ContactFieldView.swift in Sources */,
346129AF1FD1F5D900532771 /* SystemContactsFetcher.swift in Sources */,
@ -3326,6 +3333,7 @@
451166C01FD86B98000739BA /* AccountManager.swift in Sources */,
34D2CCD220618B3000CB1A14 /* OWSBackupLazyRestoreJob.swift in Sources */,
3430FE181F7751D4000EC51B /* GiphyAPI.swift in Sources */,
4C2F454F214C00E1004871FF /* AvatarTableViewCell.swift in Sources */,
34A55F3720485465002CC6DE /* OWS2FARegistrationViewController.m in Sources */,
340FC8AD204DAC8D007AEB0F /* OWSLinkedDevicesTableViewController.m in Sources */,
340FC8AA204DAC8D007AEB0F /* NotificationSettingsViewController.m in Sources */,

View File

@ -21,7 +21,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.29.2</string>
<string>2.29.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@ -38,7 +38,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>2.29.2.3</string>
<string>2.29.3.3</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LOGS_EMAIL</key>

View File

@ -9,11 +9,13 @@
#import "ContactsViewHelper.h"
#import "OWSTableViewController.h"
#import "PhoneNumber.h"
#import "Signal-Swift.h"
#import "UIFont+OWS.h"
#import "UIView+OWS.h"
#import <SignalMessaging/Environment.h>
#import <SignalMessaging/OWSContactsManager.h>
#import <SignalServiceKit/OWSBlockingManager.h>
#import <SignalServiceKit/TSGroupThread.h>
NS_ASSUME_NONNULL_BEGIN
@ -29,6 +31,11 @@ NS_ASSUME_NONNULL_BEGIN
@implementation BlockListViewController
- (OWSBlockingManager *)blockingManager
{
return OWSBlockingManager.sharedManager;
}
- (void)loadView
{
[super loadView];
@ -57,11 +64,11 @@ NS_ASSUME_NONNULL_BEGIN
__weak BlockListViewController *weakSelf = self;
ContactsViewHelper *helper = self.contactsViewHelper;
// Add section
// "Add" section
OWSTableSection *addSection = [OWSTableSection new];
addSection.footerTitle = NSLocalizedString(
@"BLOCK_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of blocking another user.");
@"BLOCK_USER_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of blocking another user.");
[addSection
addItem:[OWSTableItem
@ -73,29 +80,66 @@ NS_ASSUME_NONNULL_BEGIN
}]];
[contents addSection:addSection];
// Blocklist section
// "Blocklist" section
OWSTableSection *blocklistSection = [OWSTableSection new];
NSArray<NSString *> *blockedPhoneNumbers =
[helper.blockedPhoneNumbers sortedArrayUsingSelector:@selector(compare:)];
for (NSString *phoneNumber in blockedPhoneNumbers) {
[blocklistSection addItem:[OWSTableItem
itemWithCustomCellBlock:^{
ContactTableViewCell *cell = [ContactTableViewCell new];
[cell configureWithRecipientId:phoneNumber
contactsManager:helper.contactsManager];
return cell;
}
customRowHeight:UITableViewAutomaticDimension
actionBlock:^{
[BlockListUIUtils showUnblockPhoneNumberActionSheet:phoneNumber
fromViewController:weakSelf
blockingManager:helper.blockingManager
contactsManager:helper.contactsManager
completionBlock:nil];
}]];
[self.blockingManager.blockedPhoneNumbers sortedArrayUsingSelector:@selector(compare:)];
if (blockedPhoneNumbers.count > 0) {
OWSTableSection *blockedContactsSection = [OWSTableSection new];
blockedContactsSection.headerTitle = NSLocalizedString(
@"BLOCK_LIST_BLOCKED_USERS_SECTION", @"Section header for users that have been blocked");
for (NSString *phoneNumber in blockedPhoneNumbers) {
[blockedContactsSection
addItem:[OWSTableItem
itemWithCustomCellBlock:^{
ContactTableViewCell *cell = [ContactTableViewCell new];
[cell configureWithRecipientId:phoneNumber contactsManager:helper.contactsManager];
return cell;
}
customRowHeight:UITableViewAutomaticDimension
actionBlock:^{
[BlockListUIUtils showUnblockPhoneNumberActionSheet:phoneNumber
fromViewController:weakSelf
blockingManager:helper.blockingManager
contactsManager:helper.contactsManager
completionBlock:nil];
}]];
}
[contents addSection:blockedContactsSection];
}
NSArray<TSGroupModel *> *blockedGroups = self.blockingManager.blockedGroups;
if (blockedGroups.count > 0) {
OWSTableSection *blockedGroupsSection = [OWSTableSection new];
blockedGroupsSection.headerTitle = NSLocalizedString(
@"BLOCK_LIST_BLOCKED_GROUPS_SECTION", @"Section header for groups that have been blocked");
for (TSGroupModel *blockedGroup in blockedGroups) {
UIImage *image = blockedGroup.groupImage ?: OWSGroupAvatarBuilder.defaultGroupImage;
NSString *groupName
= blockedGroup.groupName.length > 0 ? blockedGroup.groupName : TSGroupThread.defaultGroupName;
[blockedGroupsSection addItem:[OWSTableItem
itemWithCustomCellBlock:^{
OWSAvatarTableViewCell *cell = [OWSAvatarTableViewCell new];
[cell configureWithImage:image
text:groupName
detailText:nil];
return cell;
}
customRowHeight:UITableViewAutomaticDimension
actionBlock:^{
[BlockListUIUtils showUnblockGroupActionSheet:blockedGroup
displayName:groupName
fromViewController:weakSelf
blockingManager:helper.blockingManager
completionBlock:nil];
}]];
}
[contents addSection:blockedGroupsSection];
}
[contents addSection:blocklistSection];
self.tableViewController.contents = contents;
}

View File

@ -293,8 +293,8 @@ typedef enum : NSUInteger {
- (void)addNotificationListeners
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(blockedPhoneNumbersDidChange:)
name:kNSNotificationName_BlockedPhoneNumbersDidChange
selector:@selector(blockListDidChange:)
name:kNSNotificationName_BlockListDidChange
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(windowManagerCallDidChange:)
@ -410,7 +410,7 @@ typedef enum : NSUInteger {
}
}
- (void)blockedPhoneNumbersDidChange:(id)notification
- (void)blockListDidChange:(id)notification
{
OWSAssertIsOnMainThread();
@ -865,9 +865,14 @@ typedef enum : NSUInteger {
}
NSString *blockStateMessage = nil;
if ([self isBlockedContactConversation]) {
blockStateMessage = NSLocalizedString(
@"MESSAGES_VIEW_CONTACT_BLOCKED", @"Indicates that this 1:1 conversation has been blocked.");
if ([self isBlockedConversation]) {
if (self.isGroupConversation) {
blockStateMessage = NSLocalizedString(
@"MESSAGES_VIEW_GROUP_BLOCKED", @"Indicates that this group conversation has been blocked.");
} else {
blockStateMessage = NSLocalizedString(
@"MESSAGES_VIEW_CONTACT_BLOCKED", @"Indicates that this 1:1 conversation has been blocked.");
}
} else if (self.isGroupConversation) {
int blockedGroupMemberCount = [self blockedGroupMemberCount];
if (blockedGroupMemberCount == 1) {
@ -964,9 +969,9 @@ typedef enum : NSUInteger {
return;
}
if ([self isBlockedContactConversation]) {
// If this a blocked 1:1 conversation, offer to unblock the user.
[self showUnblockContactUI:nil];
if ([self isBlockedConversation]) {
// If this a blocked conversation, offer to unblock.
[self showUnblockConversationUI:nil];
} else if (self.isGroupConversation) {
// If this a group conversation with at least one blocked member,
// Show the block list view.
@ -1054,10 +1059,8 @@ typedef enum : NSUInteger {
}
}
- (void)showUnblockContactUI:(nullable BlockActionCompletionBlock)completionBlock
- (void)showUnblockConversationUI:(nullable BlockActionCompletionBlock)completionBlock
{
OWSAssertDebug([self.thread isKindOfClass:[TSContactThread class]]);
self.userHasScrolled = NO;
// To avoid "noisy" animations (hiding the keyboard before showing
@ -1068,21 +1071,16 @@ typedef enum : NSUInteger {
// hidden.
[self dismissKeyBoard];
NSString *contactIdentifier = ((TSContactThread *)self.thread).contactIdentifier;
[BlockListUIUtils showUnblockPhoneNumberActionSheet:contactIdentifier
fromViewController:self
blockingManager:_blockingManager
contactsManager:_contactsManager
completionBlock:completionBlock];
[BlockListUIUtils showUnblockThreadActionSheet:self.thread
fromViewController:self
blockingManager:self.blockingManager
contactsManager:self.contactsManager
completionBlock:completionBlock];
}
- (BOOL)isBlockedContactConversation
- (BOOL)isBlockedConversation
{
if (![self.thread isKindOfClass:[TSContactThread class]]) {
return NO;
}
NSString *contactIdentifier = ((TSContactThread *)self.thread).contactIdentifier;
return [[_blockingManager blockedPhoneNumbers] containsObject:contactIdentifier];
return [self.blockingManager isThreadBlocked:self.thread];
}
- (int)blockedGroupMemberCount
@ -1432,25 +1430,17 @@ typedef enum : NSUInteger {
}]];
}
if (self.userLeftGroup) {
[subtitleText
appendAttributedString:[[NSAttributedString alloc]
initWithString:NSLocalizedString(@"GROUP_YOU_LEFT", @"")
attributes:@{
NSFontAttributeName : self.headerView.subtitleFont,
NSForegroundColorAttributeName : subtitleColor,
}]];
} else {
[subtitleText appendAttributedString:
[[NSAttributedString alloc]
initWithString:NSLocalizedString(@"MESSAGES_VIEW_TITLE_SUBTITLE",
@"The subtitle for the messages view title indicates that the "
@"title can be tapped to access settings for this conversation.")
attributes:@{
NSFontAttributeName : self.headerView.subtitleFont,
NSForegroundColorAttributeName : subtitleColor,
}]];
}
[subtitleText
appendAttributedString:[[NSAttributedString alloc]
initWithString:NSLocalizedString(@"MESSAGES_VIEW_TITLE_SUBTITLE",
@"The subtitle for the messages view title indicates that the "
@"title can be tapped to access settings for this conversation.")
attributes:@{
NSFontAttributeName : self.headerView.subtitleFont,
NSForegroundColorAttributeName : subtitleColor,
}]];
self.headerView.attributedSubtitle = subtitleText;
}
@ -1523,8 +1513,8 @@ typedef enum : NSUInteger {
}
__weak ConversationViewController *weakSelf = self;
if ([self isBlockedContactConversation]) {
[self showUnblockContactUI:^(BOOL isBlocked) {
if ([self isBlockedConversation]) {
[self showUnblockConversationUI:^(BOOL isBlocked) {
if (!isBlocked) {
[weakSelf callWithVideo:isVideo];
}
@ -1592,11 +1582,6 @@ typedef enum : NSUInteger {
- (void)showConversationSettingsAndShowVerification:(BOOL)showVerification
{
if (self.userLeftGroup) {
OWSLogDebug(@"Ignoring request to show conversation settings, since user left group");
return;
}
OWSConversationSettingsViewController *settingsVC = [OWSConversationSettingsViewController new];
settingsVC.conversationSettingsViewDelegate = self;
[settingsVC configureWithThread:self.thread uiDatabaseConnection:self.uiDatabaseConnection];
@ -3766,8 +3751,8 @@ typedef enum : NSUInteger {
[self dismissKeyBoard];
__weak ConversationViewController *weakSelf = self;
if ([self isBlockedContactConversation]) {
[self showUnblockContactUI:^(BOOL isBlocked) {
if ([self isBlockedConversation]) {
[self showUnblockConversationUI:^(BOOL isBlocked) {
if (!isBlocked) {
[weakSelf attachmentButtonPressed];
}
@ -4123,8 +4108,8 @@ typedef enum : NSUInteger {
DispatchMainThreadSafe(^{
__weak ConversationViewController *weakSelf = self;
if ([self isBlockedContactConversation]) {
[self showUnblockContactUI:^(BOOL isBlocked) {
if ([self isBlockedConversation]) {
[self showUnblockConversationUI:^(BOOL isBlocked) {
if (!isBlocked) {
[weakSelf tryToSendAttachmentIfApproved:attachment];
}
@ -4430,8 +4415,8 @@ typedef enum : NSUInteger {
{
__weak ConversationViewController *weakSelf = self;
if ([self isBlockedContactConversation]) {
[self showUnblockContactUI:^(BOOL isBlocked) {
if ([self isBlockedConversation]) {
[self showUnblockConversationUI:^(BOOL isBlocked) {
if (!isBlocked) {
[weakSelf tryToSendTextMessage:text updateKeyboardState:NO];
}

View File

@ -137,7 +137,7 @@ NS_ASSUME_NONNULL_BEGIN
+ (void)sendBlockListSyncMessage
{
[self.blockingManager syncBlockedPhoneNumbers];
[self.blockingManager syncBlockList];
}
+ (void)sendConfigurationSyncMessage

View File

@ -10,7 +10,7 @@ protocol ConversationSearchViewDelegate: class {
}
@objc
class ConversationSearchViewController: UITableViewController {
class ConversationSearchViewController: UITableViewController, BlockListCacheDelegate {
@objc
public weak var delegate: ConversationSearchViewDelegate?
@ -46,17 +46,17 @@ class ConversationSearchViewController: UITableViewController {
case messages
}
var blockedPhoneNumberSet = Set<String>()
private var hasThemeChanged = false
var blockListCache: BlockListCache!
// MARK: View Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
let blockingManager = OWSBlockingManager.shared()
blockedPhoneNumberSet = Set(blockingManager.blockedPhoneNumbers())
blockListCache = BlockListCache()
blockListCache.startObservingAndSyncState(delegate: self)
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 60
@ -216,7 +216,7 @@ class ConversationSearchViewController: UITableViewController {
owsFailDebug("searchResult was unexpectedly nil")
return UITableViewCell()
}
cell.configure(withThread: searchResult.thread, contactsManager: contactsManager, blockedPhoneNumber: self.blockedPhoneNumberSet)
cell.configure(withThread: searchResult.thread, contactsManager: contactsManager, isBlocked: isBlocked(thread: searchResult.thread))
return cell
case .contacts:
guard let cell = tableView.dequeueReusableCell(withIdentifier: ContactTableViewCell.reuseIdentifier()) as? ContactTableViewCell else {
@ -266,7 +266,7 @@ class ConversationSearchViewController: UITableViewController {
cell.configure(withThread: searchResult.thread,
contactsManager: contactsManager,
blockedPhoneNumber: self.blockedPhoneNumberSet,
isBlocked: isBlocked(thread: searchResult.thread),
overrideSnippet: overrideSnippet,
overrideDate: overrideDate)
@ -337,6 +337,12 @@ class ConversationSearchViewController: UITableViewController {
}
}
// MARK: BlockListCacheDelegate
func blockListCacheDidUpdate(_ blocklistCache: BlockListCache) {
refreshSearchResults()
}
// MARK: Update Search Results
var refreshTimer: Timer?
@ -401,6 +407,12 @@ class ConversationSearchViewController: UITableViewController {
override func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
delegate?.conversationSearchViewWillBeginDragging()
}
// MARK: -
private func isBlocked(thread: ThreadViewModel) -> Bool {
return self.blockListCache.isBlocked(thread: thread.threadRecord)
}
}
class EmptySearchResultCell: UITableViewCell {

View File

@ -14,11 +14,11 @@ NS_ASSUME_NONNULL_BEGIN
- (void)configureWithThread:(ThreadViewModel *)thread
contactsManager:(OWSContactsManager *)contactsManager
blockedPhoneNumberSet:(NSSet<NSString *> *)blockedPhoneNumberSet;
isBlocked:(BOOL)isBlocked;
- (void)configureWithThread:(ThreadViewModel *)thread
contactsManager:(OWSContactsManager *)contactsManager
blockedPhoneNumberSet:(NSSet<NSString *> *)blockedPhoneNumberSet
isBlocked:(BOOL)isBlocked
overrideSnippet:(nullable NSAttributedString *)overrideSnippet
overrideDate:(nullable NSDate *)overrideDate;

View File

@ -174,25 +174,24 @@ NS_ASSUME_NONNULL_BEGIN
- (void)configureWithThread:(ThreadViewModel *)thread
contactsManager:(OWSContactsManager *)contactsManager
blockedPhoneNumberSet:(NSSet<NSString *> *)blockedPhoneNumberSet
isBlocked:(BOOL)isBlocked
{
[self configureWithThread:thread
contactsManager:contactsManager
blockedPhoneNumberSet:blockedPhoneNumberSet
isBlocked:isBlocked
overrideSnippet:nil
overrideDate:nil];
}
- (void)configureWithThread:(ThreadViewModel *)thread
contactsManager:(OWSContactsManager *)contactsManager
blockedPhoneNumberSet:(NSSet<NSString *> *)blockedPhoneNumberSet
isBlocked:(BOOL)isBlocked
overrideSnippet:(nullable NSAttributedString *)overrideSnippet
overrideDate:(nullable NSDate *)overrideDate
{
OWSAssertIsOnMainThread();
OWSAssertDebug(thread);
OWSAssertDebug(contactsManager);
OWSAssertDebug(blockedPhoneNumberSet);
[OWSTableItem configureCell:self];
@ -215,8 +214,7 @@ NS_ASSUME_NONNULL_BEGIN
if (overrideSnippet) {
self.snippetLabel.attributedText = overrideSnippet;
} else {
self.snippetLabel.attributedText =
[self attributedSnippetForThread:thread blockedPhoneNumberSet:blockedPhoneNumberSet];
self.snippetLabel.attributedText = [self attributedSnippetForThread:thread isBlocked:isBlocked];
}
self.dateTimeLabel.text
@ -341,29 +339,23 @@ NS_ASSUME_NONNULL_BEGIN
contactsManager:contactsManager];
}
- (NSAttributedString *)attributedSnippetForThread:(ThreadViewModel *)thread
blockedPhoneNumberSet:(NSSet<NSString *> *)blockedPhoneNumberSet
- (NSAttributedString *)attributedSnippetForThread:(ThreadViewModel *)thread isBlocked:(BOOL)isBlocked
{
OWSAssertDebug(thread);
BOOL isBlocked = NO;
if (!thread.isGroupThread) {
NSString *contactIdentifier = thread.contactIdentifier;
isBlocked = [blockedPhoneNumberSet containsObject:contactIdentifier];
}
BOOL hasUnreadMessages = thread.hasUnreadMessages;
NSMutableAttributedString *snippetText = [NSMutableAttributedString new];
if (isBlocked) {
// If thread is blocked, don't show a snippet or mute status.
[snippetText
appendAttributedString:[[NSAttributedString alloc]
initWithString:NSLocalizedString(@"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION",
@"A label for conversations with blocked users.")
attributes:@{
NSFontAttributeName : self.snippetFont.ows_mediumWeight,
NSForegroundColorAttributeName : [Theme primaryColor],
}]];
[snippetText appendAttributedString:
[[NSAttributedString alloc]
initWithString:NSLocalizedString(@"HOME_VIEW_BLOCKED_CONVERSATION",
@"Table cell subtitle label for a conversation the user has blocked.")
attributes:@{
NSFontAttributeName : self.snippetFont.ows_mediumWeight,
NSForegroundColorAttributeName : [Theme primaryColor],
}]];
} else {
if ([thread isMuted]) {
[snippetText appendAttributedString:[[NSAttributedString alloc]

View File

@ -21,9 +21,9 @@
#import <PromiseKit/AnyPromise.h>
#import <SignalMessaging/OWSContactsManager.h>
#import <SignalMessaging/OWSFormat.h>
#import <SignalMessaging/SignalMessaging-Swift.h>
#import <SignalMessaging/UIUtil.h>
#import <SignalServiceKit/NSDate+OWS.h>
#import <SignalServiceKit/OWSBlockingManager.h>
#import <SignalServiceKit/OWSMessageSender.h>
#import <SignalServiceKit/OWSMessageUtils.h>
#import <SignalServiceKit/TSAccountManager.h>
@ -64,7 +64,8 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
UITableViewDataSource,
UIViewControllerPreviewingDelegate,
UISearchBarDelegate,
ConversationSearchViewDelegate>
ConversationSearchViewDelegate,
OWSBlockListCacheDelegate>
@property (nonatomic) UITableView *tableView;
@property (nonatomic) UILabel *emptyBoxLabel;
@ -74,7 +75,6 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
@property (nonatomic) YapDatabaseViewMappings *threadMappings;
@property (nonatomic) HomeViewMode homeViewMode;
@property (nonatomic) id previewingContext;
@property (nonatomic) NSSet<NSString *> *blockedPhoneNumberSet;
@property (nonatomic, readonly) NSCache<NSString *, ThreadViewModel *> *threadViewModelCache;
@property (nonatomic) BOOL isViewVisible;
@property (nonatomic) BOOL shouldObserveDBModifications;
@ -90,7 +90,7 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
@property (nonatomic, readonly) AccountManager *accountManager;
@property (nonatomic, readonly) OWSContactsManager *contactsManager;
@property (nonatomic, readonly) OWSMessageSender *messageSender;
@property (nonatomic, readonly) OWSBlockingManager *blockingManager;
@property (nonatomic, readonly) OWSBlockListCache *blocklistCache;
// Views
@ -148,8 +148,8 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
_accountManager = SignalApp.sharedApp.accountManager;
_contactsManager = Environment.shared.contactsManager;
_messageSender = Environment.shared.messageSender;
_blockingManager = [OWSBlockingManager sharedManager];
_blockedPhoneNumberSet = [NSSet setWithArray:[_blockingManager blockedPhoneNumbers]];
_blocklistCache = [OWSBlockListCache new];
[_blocklistCache startObservingAndSyncStateWithDelegate:self];
_threadViewModelCache = [NSCache new];
// Ensure ExperienceUpgradeFinder has been initialized.
@ -158,10 +158,6 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
[ExperienceUpgradeFinder sharedManager];
#pragma GCC diagnostic pop
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(blockedPhoneNumbersDidChange:)
name:kNSNotificationName_BlockedPhoneNumbersDidChange
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(signalAccountsDidChange:)
name:OWSContactsManagerSignalAccountsDidChangeNotification
@ -207,15 +203,6 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
#pragma mark - Notifications
- (void)blockedPhoneNumbersDidChange:(id)notification
{
OWSAssertIsOnMainThread();
_blockedPhoneNumberSet = [NSSet setWithArray:[_blockingManager blockedPhoneNumbers]];
[self reloadTableViewData];
}
- (void)signalAccountsDidChange:(id)notification
{
OWSAssertIsOnMainThread();
@ -835,9 +822,9 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
OWSAssertDebug(cell);
ThreadViewModel *thread = [self threadViewModelForIndexPath:indexPath];
[cell configureWithThread:thread
contactsManager:self.contactsManager
blockedPhoneNumberSet:self.blockedPhoneNumberSet];
BOOL isBlocked = [self.blocklistCache isThreadBlocked:thread.threadRecord];
[cell configureWithThread:thread contactsManager:self.contactsManager isBlocked:isBlocked];
return cell;
}
@ -1071,41 +1058,31 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
}
TSThread *thread = [self threadForIndexPath:indexPath];
if ([thread isKindOfClass:[TSGroupThread class]]) {
if ([thread isKindOfClass:[TSGroupThread class]]) {
TSGroupThread *gThread = (TSGroupThread *)thread;
if ([gThread.groupModel.groupMemberIds containsObject:[TSAccountManager localNumber]]) {
UIAlertController *removingFromGroup = [UIAlertController
alertControllerWithTitle:[NSString
stringWithFormat:NSLocalizedString(@"GROUP_REMOVING", nil), [thread name]]
message:nil
preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:removingFromGroup animated:YES completion:nil];
[ThreadUtil sendLeaveGroupMessageInThread:gThread
presentingViewController:self
messageSender:self.messageSender
completion:^(NSError *_Nullable error) {
if (error) {
NSString *title = NSLocalizedString(@"GROUP_REMOVING_FAILED",
@"Title of alert indicating that group deletion failed.");
TSOutgoingMessage *message = [TSOutgoingMessage outgoingMessageInThread:thread
groupMetaMessage:TSGroupMetaMessageQuit
expiresInSeconds:0];
[self.messageSender enqueueMessage:message
success:^{
[self dismissViewControllerAnimated:YES
completion:^{
[self deleteThread:thread];
}];
}
failure:^(NSError *error) {
[self dismissViewControllerAnimated:YES
completion:^{
[OWSAlerts
showAlertWithTitle:
NSLocalizedString(@"GROUP_REMOVING_FAILED",
@"Title of alert indicating that group deletion failed.")
message:error.localizedRecoverySuggestion];
}];
}];
[OWSAlerts showAlertWithTitle:title
message:error.localizedRecoverySuggestion];
return;
}
[self deleteThread:thread];
}];
} else {
// MJK - turn these trailing elses into guards
[self deleteThread:thread];
}
} else {
// MJK - turn these trailing elses into guards
[self deleteThread:thread];
}
}
@ -1491,6 +1468,14 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
}
}
#pragma mark - OWSBlockListCacheDelegate
- (void)blockListCacheDidUpdate:(OWSBlockListCache *_Nonnull)blocklistCache
{
OWSLogVerbose(@"");
[self reloadTableViewData];
}
@end
NS_ASSUME_NONNULL_END

View File

@ -351,20 +351,24 @@ const CGFloat kIconViewLength = 24;
}
actionBlock:nil]];
} else {
[mainSection addItem:[OWSTableItem itemWithCustomCellBlock:^{
return
[weakSelf disclosureCellWithName:(self.isGroupThread
? NSLocalizedString(
@"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_GROUP",
@"Action that shares user profile with a group.")
: NSLocalizedString(
@"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER",
@"Action that shares user profile with a user."))iconName
:@"table_ic_share_profile"];
}
actionBlock:^{
[weakSelf showShareProfileAlert];
}]];
[mainSection
addItem:[OWSTableItem
itemWithCustomCellBlock:^{
UITableViewCell *cell = [weakSelf
disclosureCellWithName:
(self.isGroupThread
? NSLocalizedString(@"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_GROUP",
@"Action that shares user profile with a group.")
: NSLocalizedString(@"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER",
@"Action that shares user profile with a user."))
iconName:@"table_ic_share_profile"];
cell.userInteractionEnabled = !weakSelf.hasLeftGroup;
return cell;
}
actionBlock:^{
[weakSelf showShareProfileAlert];
}]];
}
[mainSection addItem:[OWSTableItem
@ -414,6 +418,8 @@ const CGFloat kIconViewLength = 24;
[subtitleLabel autoPinTrailingToSuperviewMargin];
[subtitleLabel autoPinBottomToSuperviewMargin];
cell.userInteractionEnabled = !strongSelf.hasLeftGroup;
return cell;
}
customRowHeight:UITableViewAutomaticDimension
@ -460,6 +466,8 @@ const CGFloat kIconViewLength = 24;
[slider autoPinTrailingToSuperviewMargin];
[slider autoPinBottomToSuperviewMargin];
cell.userInteractionEnabled = !strongSelf.hasLeftGroup;
return cell;
}
customRowHeight:UITableViewAutomaticDimension
@ -472,27 +480,40 @@ const CGFloat kIconViewLength = 24;
if (self.isGroupThread) {
NSArray *groupItems = @[
[OWSTableItem itemWithCustomCellBlock:^{
return [weakSelf disclosureCellWithName:NSLocalizedString(@"EDIT_GROUP_ACTION",
@"table cell label in conversation settings")
iconName:@"table_ic_group_edit"];
}
[OWSTableItem
itemWithCustomCellBlock:^{
UITableViewCell *cell =
[weakSelf disclosureCellWithName:NSLocalizedString(@"EDIT_GROUP_ACTION",
@"table cell label in conversation settings")
iconName:@"table_ic_group_edit"];
cell.userInteractionEnabled = !weakSelf.hasLeftGroup;
return cell;
}
actionBlock:^{
[weakSelf showUpdateGroupView:UpdateGroupMode_Default];
}],
[OWSTableItem itemWithCustomCellBlock:^{
return [weakSelf disclosureCellWithName:NSLocalizedString(@"LIST_GROUP_MEMBERS_ACTION",
@"table cell label in conversation settings")
iconName:@"table_ic_group_members"];
}
[OWSTableItem
itemWithCustomCellBlock:^{
UITableViewCell *cell =
[weakSelf disclosureCellWithName:NSLocalizedString(@"LIST_GROUP_MEMBERS_ACTION",
@"table cell label in conversation settings")
iconName:@"table_ic_group_members"];
cell.userInteractionEnabled = !weakSelf.hasLeftGroup;
return cell;
}
actionBlock:^{
[weakSelf showGroupMembersView];
}],
[OWSTableItem itemWithCustomCellBlock:^{
return [weakSelf disclosureCellWithName:NSLocalizedString(@"LEAVE_GROUP_ACTION",
@"table cell label in conversation settings")
iconName:@"table_ic_group_leave"];
}
[OWSTableItem
itemWithCustomCellBlock:^{
UITableViewCell *cell =
[weakSelf disclosureCellWithName:NSLocalizedString(@"LEAVE_GROUP_ACTION",
@"table cell label in conversation settings")
iconName:@"table_ic_group_leave"];
cell.userInteractionEnabled = !weakSelf.hasLeftGroup;
return cell;
}
actionBlock:^{
[weakSelf didTapLeaveGroup];
}],
@ -617,35 +638,48 @@ const CGFloat kIconViewLength = 24;
= NSLocalizedString(@"MUTE_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of muting a thread.");
[contents addSection:notificationsSection];
// Block user section.
// Block Conversation section.
if (!self.isGroupThread) {
BOOL isBlocked = [[_blockingManager blockedPhoneNumbers] containsObject:self.thread.contactIdentifier];
OWSTableSection *section = [OWSTableSection new];
OWSTableSection *section = [OWSTableSection new];
if (self.thread.isGroupThread) {
section.footerTitle = NSLocalizedString(
@"BLOCK_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of blocking another user.");
[section addItem:[OWSTableItem itemWithCustomCellBlock:^{
UITableViewCell *cell =
[weakSelf disclosureCellWithName:NSLocalizedString(@"CONVERSATION_SETTINGS_BLOCK_THIS_USER",
@"table cell label in conversation settings")
iconName:@"table_ic_block"];
OWSConversationSettingsViewController *strongSelf = weakSelf;
OWSCAssertDebug(strongSelf);
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UISwitch *blockUserSwitch = [UISwitch new];
blockUserSwitch.on = isBlocked;
[blockUserSwitch addTarget:strongSelf
action:@selector(blockUserSwitchDidChange:)
forControlEvents:UIControlEventValueChanged];
cell.accessoryView = blockUserSwitch;
return cell;
}
actionBlock:nil]];
[contents addSection:section];
@"BLOCK_GROUP_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of blocking a group.");
} else {
section.footerTitle = NSLocalizedString(
@"BLOCK_USER_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of blocking another user.");
}
[section addItem:[OWSTableItem
itemWithCustomCellBlock:^{
OWSConversationSettingsViewController *strongSelf = weakSelf;
if (!strongSelf) {
return [UITableViewCell new];
}
NSString *cellTitle;
if (self.thread.isGroupThread) {
cellTitle = NSLocalizedString(@"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP",
@"table cell label in conversation settings");
} else {
cellTitle = NSLocalizedString(@"CONVERSATION_SETTINGS_BLOCK_THIS_USER",
@"table cell label in conversation settings");
}
UITableViewCell *cell =
[strongSelf disclosureCellWithName:cellTitle iconName:@"table_ic_block"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UISwitch *blockConversationSwitch = [UISwitch new];
blockConversationSwitch.on = [strongSelf.blockingManager isThreadBlocked:self.thread];
[blockConversationSwitch addTarget:strongSelf
action:@selector(blockConversationSwitchDidChange:)
forControlEvents:UIControlEventValueChanged];
cell.accessoryView = blockConversationSwitch;
return cell;
}
actionBlock:nil]];
[contents addSection:section];
self.contents = contents;
}
@ -983,6 +1017,17 @@ const CGFloat kIconViewLength = 24;
[self presentViewController:alertController animated:YES completion:nil];
}
- (BOOL)hasLeftGroup
{
if (self.isGroupThread) {
TSGroupThread *groupThread = (TSGroupThread *)self.thread;
BOOL inGroup = [groupThread.groupModel.groupMemberIds containsObject:TSAccountManager.localNumber];
return !inGroup;
}
return NO;
}
- (void)leaveGroup
{
TSGroupThread *gThread = (TSGroupThread *)self.thread;
@ -996,10 +1041,10 @@ const CGFloat kIconViewLength = 24;
OWSLogWarn(@"Failed to leave group with error: %@", error);
}];
NSMutableArray *newGroupMemberIds = [NSMutableArray arrayWithArray:gThread.groupModel.groupMemberIds];
[newGroupMemberIds removeObject:[self.accountManager localNumber]];
gThread.groupModel.groupMemberIds = newGroupMemberIds;
[gThread save];
[self.editingDatabaseConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[gThread leaveGroupWithTransaction:transaction];
}];
[self.navigationController popViewControllerAnimated:YES];
}
@ -1013,43 +1058,43 @@ const CGFloat kIconViewLength = 24;
[self updateTableContents];
}
- (void)blockUserSwitchDidChange:(id)sender
- (void)blockConversationSwitchDidChange:(id)sender
{
OWSAssertDebug(!self.isGroupThread);
if (![sender isKindOfClass:[UISwitch class]]) {
OWSFailDebug(@"Unexpected sender for block user switch: %@", sender);
}
UISwitch *blockUserSwitch = (UISwitch *)sender;
UISwitch *blockConversationSwitch = (UISwitch *)sender;
BOOL isCurrentlyBlocked = [[_blockingManager blockedPhoneNumbers] containsObject:self.thread.contactIdentifier];
BOOL isCurrentlyBlocked = [self.blockingManager isThreadBlocked:self.thread];
if (blockUserSwitch.isOn) {
if (blockConversationSwitch.isOn) {
OWSAssertDebug(!isCurrentlyBlocked);
if (isCurrentlyBlocked) {
return;
}
[BlockListUIUtils showBlockPhoneNumberActionSheet:self.thread.contactIdentifier
fromViewController:self
blockingManager:_blockingManager
contactsManager:_contactsManager
completionBlock:^(BOOL isBlocked) {
// Update switch state if user cancels action.
blockUserSwitch.on = isBlocked;
}];
[BlockListUIUtils showBlockThreadActionSheet:self.thread
fromViewController:self
blockingManager:self.blockingManager
contactsManager:self.contactsManager
messageSender:self.messageSender
completionBlock:^(BOOL isBlocked) {
// Update switch state if user cancels action.
blockConversationSwitch.on = isBlocked;
}];
} else {
OWSAssertDebug(isCurrentlyBlocked);
if (!isCurrentlyBlocked) {
return;
}
[BlockListUIUtils showUnblockPhoneNumberActionSheet:self.thread.contactIdentifier
fromViewController:self
blockingManager:_blockingManager
contactsManager:_contactsManager
completionBlock:^(BOOL isBlocked) {
// Update switch state if user cancels action.
blockUserSwitch.on = isBlocked;
}];
[BlockListUIUtils showUnblockThreadActionSheet:self.thread
fromViewController:self
blockingManager:_blockingManager
contactsManager:_contactsManager
completionBlock:^(BOOL isBlocked) {
// Update switch state if user cancels action.
blockConversationSwitch.on = isBlocked;
}];
}
}

View File

@ -0,0 +1,72 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc(OWSAvatarTableViewCell)
public class AvatarTableViewCell: UITableViewCell {
private let columns: UIStackView
private let textRows: UIStackView
private let avatarView: AvatarImageView
private let _textLabel: UILabel
override public var textLabel: UILabel? {
get {
return _textLabel
}
}
private let _detailTextLabel: UILabel
override public var detailTextLabel: UILabel? {
get {
return _detailTextLabel
}
}
@objc
public override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
self.avatarView = AvatarImageView()
avatarView.autoSetDimensions(to: CGSize(width: CGFloat(kContactCellAvatarSize), height: CGFloat(kContactCellAvatarSize)))
self._textLabel = UILabel()
self._detailTextLabel = UILabel()
self.textRows = UIStackView(arrangedSubviews: [_textLabel, _detailTextLabel])
textRows.axis = .vertical
self.columns = UIStackView(arrangedSubviews: [avatarView, textRows])
columns.axis = .horizontal
columns.spacing = CGFloat(kContactCellAvatarTextMargin)
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.contentView.addSubview(columns)
columns.autoPinEdgesToSuperviewMargins()
OWSTableItem.configureCell(self)
}
required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@objc
public func configure(image: UIImage?, text: String?, detailText: String?) {
self.avatarView.image = image
self.textLabel?.text = text
self.detailTextLabel?.text = detailText
OWSTableItem.configureCell(self)
}
@objc
public override func prepareForReuse() {
super.prepareForReuse()
self.avatarView.image = nil
self.textLabel?.text = nil
self.detailTextLabel?.text = nil
}
}

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "استعادة الملفات";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "لن يتمكن المستخدم المحظور من الاتصال بك أو بعث الرسائل إليك.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "حظر";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "حظر %@؟";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "رفع الحظر";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "رفع الحظر %@؟";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "حظر";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "لم ينجح حظر المستخدم.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "خطأ";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ تم الحظر";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "المستخدم محظور";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "لا يمكنك حظر نفسك.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "خطأ";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "لم ينجح رفع الحظر عن المستخدم.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "خطأ";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ تم رفع الحظر.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "المستخدم غير محظور";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "حظر";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "حظر %@؟";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "إضافة إلى جهة اتصال موجودة";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "حظر هذا المستخدم";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "معلومات عن جهة الاتصال";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "معلومات جهات الاتصال";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "مغادرة مجموعة %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "محظور";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "لم تعد هناك دلالة تحقق من %@. انقر للحصول على خيارات";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "قمت بحظر 1 عضو من هذه المجموعة";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "لقد حظرت %@ من أعضاء هذه المجموعة.";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "هل ترغب في مشاركة ملفك الشخصي مع هذه المجموعة؟";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "إضافة";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "جهات الاتصال الخاصة بك غير موجودة على Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Add to Existing Contact";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "%@ qrupundan çıxma";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "You have no contacts on Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Възстановяване на файлове";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Блокиран потребител не може да ви се обажда или да ви изпраща съобщения.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Блокиране";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Блокиране на %@ ?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Отблокиране";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Отблокирай %@ ?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Блокиране";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Неуспешно блокиране на потребител.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Грешка";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ беше блокиран";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Блокиран Потребител";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Не можете да блокирате себе си.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Грешка";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Неуспешно отблокиране на потребител.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Грешка";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ беше отблокиран";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Отблокиран Потребител";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Блокиране";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Блокирай %@ ?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Добави към съществуващ контакт";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Блокирай потребителя";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Информация за контакта";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Информация за контакта";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Напускане на група %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Архивирани разговори";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Блокиран";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ вече не е отбелязан като проверен. Докоснете за настройки.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Вие сте блокирали 1 потребител на тази група.";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Вие сте блокирали %@ потребителя на тази група.";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Споделете профила си с тази група.";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Архивирането е успешно";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Добави...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Нямате контакти в Сигнал.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blokirani korisnici neće biti u mogućnosti da vas nazovu ili vam pošalju poruku.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokiraj";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Blokiraj %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Deblokiraj";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Deblokiraj %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blokiraj";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Blokiranje korisnika nije uspjelo.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Greška";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ je blokiran";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Korisnik je blokiran";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Ne možete blokirati sebe.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Greška";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Deblokiranje korisnika nije uspjelo.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Greška";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = " %@ je deblokiran.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Korisnik odblokiran";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blokiraj";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blokiraj %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Dodaj postojećem kontaktu";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blokiraj ovog korisnika";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informacije o kontaktu";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informacije o kontaktu";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Napuštanje grupe %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blokiran";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ više nije označen/a kao provjeren/a. Dodirni za opcije.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Blokirali ste 1 člana ove grupe";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Blokirali ste%@ članova ove grupe.";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Podijeli svoj profil sa ovom grupom?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Dodaj...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Nemate kontakata koji koriste Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restaurant arxius";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Els usuaris blocats no podran telefonar-vos ni enviar-vos missatges.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bloca";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Voleu blocar %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Desbloca";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Voleu desblocar %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloca";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "No s'ha pogut blocar.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "S'ha blocat %@";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Usuari blocat";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "No podeu blocar-vos.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "No s'ha pogut desblocar.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "S'ha desblocat %@";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Usuari desblocat";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloca";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Voleu blocar %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continuar";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Afegeix a un contacte existent";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloca aquest usuari";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informació del contacte";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informació del contacte";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "S'està abandonant el grup %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocat";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ ja no és marcat com a verificat. Toqueu per a més opcions.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Heu blocat 1 membre d'aquest grup";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Heu blocat %@ membres d'aquest grup";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Afegeix...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "No teniu cap contacte al Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Obnova souborů";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Zablokovaní uživatelé vám nebudou moci zavolat nebo vám posílat zprávy.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Zablokovat";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Zablokovat %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Odblokovat";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Odblokovat %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Zablokovat";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Nepodařilo se zablokovat uživatele.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Chyba";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ byl(a) zablokován(a)";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Uživatel zablokován";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Nemůžete zablokovat sám/sama sebe.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Chyba";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Nepodařilo se odblokovat uživatele.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Chyba";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ byl(a) odblokován(a).";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Uživatel odblokován";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Zablokovat";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Zablokovat %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Pokračovat";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Přidat k existujícímu kontaktu";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Zablokovat tohoto uživatele";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informace o kontaktu";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informace o kontaktu";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Opouštění skupiny %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archivované konverzace";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blokovaný";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Hledat";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ již není označen(a) jako ověřený. Pro možnosti klepněte.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Zablokoval(a) jste jednoho člena této skupiny";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Zablokoval(a) jste %@ členů této skupiny";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Sdílet s touto skupinou váš profil?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Záloha provedena";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Přidat…";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "V aplikaci Signal nemáte žádné kontakty.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Gendanner Filer";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blokerede brugere vil ikke kunne ringe eller sende dig beskeder.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bloker";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Bloker %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Ophæv Blokade";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Ophæv blokade for %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloker";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Brugeren kunne ikke blokeres.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Fejl";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ er blevet blokeret";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Bruger blokeret";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Du kan ikke blokkere dig selv.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Fejl";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Blokaden for brugeren kunne ikke ophæves.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Fejl";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@'s blokering er blevet fjernet.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Bruger Blokering Fjernet";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloker";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloker %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Forsæt";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Tilføj til eksisterende kontakt";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloker denne bruger";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinformation";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Kontaktinformation";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Forlad gruppen %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Arkiveret Samtaler";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blokeret";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Søg";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ er ikke længere markeret som verificeret. Tryk for muligheder.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Du Blokerede 1 Medlem af denne Gruppe";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Du Blokerede %@ Medlemmer af denne Gruppe";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Del Din Profil Med Denne Gruppe?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Sikkerhedskopiering Vellykket";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Tilføj...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Du har ingen kontakter på Signal";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Dateien werden wiederhergestellt";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blockierte Benutzer werden dich nicht anrufen oder dir Nachrichten senden können.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "Du wirst von dieser Gruppe keine Nachrichten oder Aktualisierungen mehr erhalten.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blockieren";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Gruppe »%@« blockieren und verlassen?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "%@ blockieren?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "%@ blockieren?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blockierte Gruppen";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blockierte Benutzer";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Freigeben";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Vorhandene Mitglieder werden dich wieder zur Gruppe hinzufügen können.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@ freigeben?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blockieren";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Blockieren des Benutzers gescheitert.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Fehler";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ wurde blockiert";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Benutzer blockiert";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Gruppe blockiert";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Du kannst dich nicht selbst blockieren.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Fehler";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Freigeben des Benutzers gescheitert.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Fehler";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ wurde freigegeben.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Benutzer freigegeben";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blockieren";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "%@ blockieren?";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Blockierte Benutzer werden dich nicht anrufen oder dir Nachrichten senden können.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Weiter";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Zu bestehenden Kontakt hinzufügen";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Benutzer blockieren";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Diese Gruppe blockieren";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Diesen Benutzer blockieren";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinformationen";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Kontaktinfo";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Gruppe %@ wird verlassen";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archivierte Unterhaltungen";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blockiert";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blockiert";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Suchen";
@ -1266,6 +1278,9 @@
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Du hast 1 Mitglied dieser Gruppe blockiert";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "Du hast diese Gruppe blockiert";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Du hast %@ Mitglieder dieser Gruppe blockiert";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Originalnachricht nicht gefunden.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Originalnachricht nicht mehr verfügbar.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Originalnachricht nicht gefunden.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Anhang";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Sicherung erfolgreich";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Hinzufügen …";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Blockierten Benutzer hinzufügen";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Du hast bei Signal keine Kontakte.";

View File

@ -2,7 +2,7 @@
"AB_PERMISSION_MISSING_ACTION_NOT_NOW" = "Όχι Τώρα";
/* Action sheet item */
"ACCEPT_NEW_IDENTITY_ACTION" = "Αποδοχή Νέου Αριθμού Ασφαλείας";
"ACCEPT_NEW_IDENTITY_ACTION" = "Αποδοχή νέου αριθμού ασφαλείας";
/* Label for 'audio call' button in contact view. */
"ACTION_AUDIO_CALL" = "Κλήση Signal";
@ -27,7 +27,7 @@
"ADD_GROUP_MEMBER_VIEW_CONTACT_TITLE" = "Προσθήκη Επαφής";
/* Title for the 'add by phone number' section of the 'add group member' view. */
"ADD_GROUP_MEMBER_VIEW_PHONE_NUMBER_TITLE" = "Προσθήκη με Αριθμό τηλεφώνου ";
"ADD_GROUP_MEMBER_VIEW_PHONE_NUMBER_TITLE" = "Προσθήκη με Αριθμό Τηλεφώνου";
/* Title for the 'add group member' view. */
"ADD_GROUP_MEMBER_VIEW_TITLE" = "Προσθήκη Μέλους";
@ -75,7 +75,7 @@
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Σφάλμα";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Εισάγετε το όνομά σας";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Εισάγετε το όνομα σας";
/* Label for the 'dismiss' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_DISMISS_BUTTON" = "Όχι Τώρα";
@ -99,7 +99,7 @@
"ATTACHMENT" = "Συνημμένο";
/* One line label indicating the user can add no more text to the attachment caption. */
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Φτάσατε το όριο του μηνύματος";
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Φτάσατε το όριο του μηνύματος.";
/* Format string for file extension label in call interstitial view */
"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "Τύπος αρχείου: %@";
@ -123,10 +123,10 @@
"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Σε σειρά προτεραιότητας";
/* 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" = "Αδυναμία επεξεργασίας βίντεο.";
@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Επαναφορά Αρχείων";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Οι αποκλεισμένοι χρήστες δεν θα μπορούν να σας καλέσουν ή να σας στείλουν μηνύματα.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "Δεν θα λαμβάνετε πλέον μηνύματα ή ενημερώσεις από αυτήν την ομάδα.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Αποκλεισμός";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Αποκλεισμός και να αποχώρηση από την ομάδα \"%@\";";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Αποκλεισμός του/της %@;";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Αποκλεισμός του/της %@;";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Αποκλεισμένες Ομάδες";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Αποκλεισμένοι Χρήστες";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Κατάργηση Αποκλεισμού";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Κατάργηση Αποκλεισμού του/της %@;";
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Τα υπάρχοντα μέλη θα μπορούν να σας προσθέσουν ξανά στην ομάδα.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Κατάργηση αποκλεισμού του/της %@;";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Αποκλεισμός";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Αποτυχία Αποκλεισμού Χρήστη";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Σφάλμα";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "Ο/Η %@ αποκλείστηκε";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Ο χρήστης αποκλείστηκε";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Η ομάδα αποκλείστηκε";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Δεν μπορείτε να αποκλείσετε τον εαυτό σας.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Σφάλμα";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Αποτυχία Κατάργησης Αποκλεισμού χρήστη.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Σφάλμα";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "Καταργήθηκε ο αποκλεισμός του/της %@";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Καταργήθηκε ο αποκλεισμός του χρήστη";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Αποκλεισμός";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Αποκλεισμός του/της %@;";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Οι αποκλεισμένοι χρήστες δεν θα μπορούν να σας καλέσουν ή να σας στείλουν μηνύματα.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Συνέχεια";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Προσθήκη σε Υπάρχουσα Επαφή";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Αποκλεισμός αυτού του χρήστη";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Αποκλεισμός της ομάδας";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Αποκλεισμός του χρήστη";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Πληροφορίες Επαφής";
@ -591,7 +603,7 @@
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Πατήστε για περισσότερα";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Αποκλεισμός αυτού του χρήστη";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Αποκλεισμός του χρήστη";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "Η επαναφορά της συνεδρίας θα επιτρέψει τη λήψη μελλοντικών μηνυμάτων από τον/την %@, αλλά θα ανακτήσει τα ήδη κατεστραμμένα μηνύματα.";
@ -670,7 +682,7 @@
"DEBUG_LOG_GITHUB_ISSUE_ALERT_TITLE" = "Ανακατεύθυνση στο GitHub";
/* Label for button that lets users re-register using the same phone number. */
"DEREGISTRATION_REREGISTER_WITH_SAME_PHONE_NUMBER" = "Επανεγγραφή Αριθμού Τηλεφώνου";
"DEREGISTRATION_REREGISTER_WITH_SAME_PHONE_NUMBER" = "Επανεγγραφή αριθμού τηλεφώνου";
/* Label warning the user that they have been de-registered. */
"DEREGISTRATION_WARNING" = "Η συσκευή δεν είναι πλέον καταχωρημένη. Ο αριθμός τηλεφώνου σας μπορεί να έχει καταχωρηθεί στο Signal σε διαφορετική συσκευή. Πατήστε για επανεγγραφή.";
@ -745,7 +757,7 @@
"EDIT_TXT" = "Επεξεργασία";
/* body of email sent to contacts when inviting to install Signal. Embeds {{link to install Signal}} and {{link to the Signal home page}} */
"EMAIL_INVITE_BODY" = "Γειά,\n\nτελευταία χρησιμοποιώ το Signal για να κρατήσω τα μηνύματα στο iPhone μου ιδιωτικά. Θα ήθελα να το εγκαταστήσεις και συ, για να είμαστε σίγουροι οτι μόνο εμείς οι δυο μπορούμε να διαβάσουμε τα μηνύματα μας και να ακούσουμε τις συνομιλίες μας.\n\nΤο Signal είναι διαθέσιμο για το iPhone και το Android εδώ: %@\n\nΔουλεύει σαν την εφαρμογή μηνυμάτων που ήδη χρησιμοποιείς. Μπορούμε να στείλουμε φωτογραφίες και βίντεο, να κάνουμε κλήσεις, και να αρχίσουμε ομαδικές συνομιλίες. Το καλύτερο είναι οτι κανείς δεν θα μπορεί να τα δει, ούτε καν αυτοί που έφτιαξαν το Signal!\n\nΜπορείς να διαβάσεις περισσότερα για το Open Whisper Systems, τον οργανισμό που έφτιαξε το Signal, εδώ: %@";
"EMAIL_INVITE_BODY" = "Γειά,\n\nΤον τελευταίο καιρό χρησιμοποιώ το Signal για να διατηρήσω τις συνομιλίες απο το iPhone μου ιδιωτικές. Θα ήθελα να το εγκαταστήσεις και εσυ, για να είμαστε σίγουροι οτι μόνο εμείς οι δυο μπορούμε να διαβάσουμε τα μηνύματα μας και να ακούσουμε τις συνομιλίες μας.\n\nΤο Signal είναι διαθέσιμο για το iPhone και το Android εδώ: %@\n\nΤο Signal λειτουργεί όπως η εφαρμογή μηνυμάτων που ήδη χρησιμοποιείς. Μπορούμε να στείλουμε φωτογραφίες και βίντεο, να κάνουμε κλήσεις, και να αρχίσουμε ομαδικές συνομιλίες. Το καλύτερο είναι ότι κανείς δεν θα μπορεί να τα δει, ούτε καν αυτοί που έφτιαξαν το Signal!\n\nΜπορείς να διαβάσεις περισσότερα για το Open Whisper Systems, τον οργανισμό που έφτιαξε το Signal, εδώ: %@";
/* subject of email sent to contacts when inviting to install Signal */
"EMAIL_INVITE_SUBJECT" = "Ας χρησιμοποιήσουμε το Signal";
@ -829,7 +841,7 @@
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Αποτυχία λόγω αποτυχίας εγγραφής συνημμένου.";
/* Generic error used whenever Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Το Signal δεν μπόρεσε να συνδεθεί στο διαδίκτυο. Παρακαλώ δοκιμάστε να συνδεθείτε σε άλλο δίκτυο WiFi ή χρησιμοποιήστε τα δεδομένα του κινητού.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Το Signal δεν μπόρεσε να συνδεθεί στο Internet. Παρακαλώ δοκιμάστε να συνδεθείτε σε άλλο δίκτυο WiFi ή χρησιμοποιήστε τα δεδομένα του κινητού.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Αποτυχία αποστολής μηνύματος λόγω απουσίας έγκυρων παραληπτών.";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Πληροφορίες Επαφής";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Αποχώρηση από την ομάδα %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Αρχειοθετημένες Συνομιλίες";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Αποκλεισμένος/η";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Αποκλεισμένο";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Αναζήτηση";
@ -1012,7 +1024,7 @@
"HOME_VIEW_SEARCH_NO_RESULTS_FORMAT" = "Δεν βρέθηκαν αποτελέσματα για '%@'";
/* Title for the home view's 'archive' mode. */
"HOME_VIEW_TITLE_ARCHIVE" = "Αρχειοθετημένα";
"HOME_VIEW_TITLE_ARCHIVE" = "Αρχειοθήκη";
/* Title for the home view's default mode. */
"HOME_VIEW_TITLE_INBOX" = "Signal";
@ -1207,7 +1219,7 @@
"MESSAGE_METADATA_VIEW_MESSAGE_STATUS_SKIPPED" = "Παραλείφθηκε";
/* Status label for messages which are uploading. */
"MESSAGE_METADATA_VIEW_MESSAGE_STATUS_UPLOADING" = "Μεταφόρτωση";
"MESSAGE_METADATA_VIEW_MESSAGE_STATUS_UPLOADING" = "Ανεβαίνει";
/* Label for messages without a body or attachment in the 'message metadata' view. */
"MESSAGE_METADATA_VIEW_NO_ATTACHMENT_OR_BODY" = "Το μήνυμα δεν έχει περιεχόμενο ή συνημμένο.";
@ -1252,22 +1264,25 @@
"MESSAGE_STATUS_SENT" = "Στάλθηκε";
/* status message while attachment is uploading */
"MESSAGE_STATUS_UPLOADING" = "Μεταφόρτωση...";
"MESSAGE_STATUS_UPLOADING" = "Ανεβαίνει...";
/* Indicates that one member of this group conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "Ο/Η %@ δεν είναι πλέον σημειωμένος/η ως επιβεβαιωμένος. Πατήστε για επιλογές.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Αποκλείσατε αυτόν τον χρήστη";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Έχετε αποκλείσει τον χρήστη";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "Ο/Η %@ δεν είναι πλέον σημειωμένος/η ως επιβεβαιωμένος. Πατήστε για επιλογές.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Αποκλείσατε 1 μέλος αυτής της ομάδας";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Έχετε αποκλείσει 1 μέλος της ομάδας";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "Έχετε αποκλείσει την ομάδα";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Αποκλείσατε %@ Μέλη αυτής της Ομάδας";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Έχετε αποκλείσει %@ μέλη της ομάδας";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Διαμοιρασμός του προφίλ σας με αυτή την ομάδα;";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Το αρχικό μήνυμα δεν βρέθηκε.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Το αρχικό μήνυμα δεν είναι πλέον διαθέσιμο.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Το αρχικό μήνυμα δεν βρέθηκε.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Συνημμένο";
@ -1668,7 +1683,7 @@
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Δεν μπορούμε να ενεργοποιήσουμε τον λογαριασμό σας μέχρι να επιβεβαιώσετε τον κωδικό που σας στείλαμε.";
/* alert body when registering an iPad */
"REGISTRATION_IPAD_CONFIRM_BODY" = "Η εγγραφή τώρα θα απενεργοποιήσει το Signal σε οποιαδήποτε άλλη συσκευή είναι αυτή τη στιγμή εγγεγραμμένη με αυτόν τον αριθμό τηλεφώνου. ";
"REGISTRATION_IPAD_CONFIRM_BODY" = "Η εγγραφή τώρα θα απενεργοποιήσει το Signal σε οποιαδήποτε άλλη συσκευή είναι αυτή τη στιγμή εγγεγραμμένη με αυτόν τον αριθμό τηλεφώνου.";
/* button text to proceed with registration when on an iPad */
"REGISTRATION_IPAD_CONFIRM_BUTTON" = "Εγγραφή αυτού του iPad";
@ -1872,7 +1887,7 @@
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_AUTO_ENABLED" = "Η παράκαμψη λογοκρισίας ενεργοποιήθηκε βάσει του αριθμού τηλεφώνου του λογαριασμού σας.";
/* Table footer for the 'censorship circumvention' section shown when the app is not connected to the internet. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_NO_CONNECTION" = "Η παράκαμψη λογοκρισίας μπορεί να ενεργοποιηθεί μόνο όταν υπάρχει σύνδεση στο διαδίκτυο.";
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_NO_CONNECTION" = "Η παράκαμψη λογοκρισίας μπορεί να ενεργοποιηθεί μόνο όταν υπάρχει σύνδεση στο Internet.";
/* Table footer for the 'censorship circumvention' section shown when the app is connected to the Signal service. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_WEBSOCKET_CONNECTED" = "Η παράκαμψη λογοκρισίας δεν είναι απαραίτητη, είστε ήδη συνδεδεμένος/η στις υπηρεσίες του Signal.";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Η δημιουργία αντιγράφου ασφαλείας ήταν επιτυχής";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Προσθήκη...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Προσθήκη Αποκλεισμένου Χρήστη";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Δεν έχετε επαφές στο Signal.";
@ -2100,7 +2115,7 @@
"SHARE_EXTENSION_NOT_YET_MIGRATED_TITLE" = "Όχι ακόμα έτοιμο";
/* Alert title */
"SHARE_EXTENSION_SENDING_FAILURE_TITLE" = "Αδυναμία Αποστολής Συννημένου";
"SHARE_EXTENSION_SENDING_FAILURE_TITLE" = "Αδυναμία Αποστολής Συνημμένου";
/* Alert title */
"SHARE_EXTENSION_SENDING_IN_PROGRESS_TITLE" = "Μεταφόρτωση...";
@ -2223,13 +2238,13 @@
"UNSUPPORTED_FEATURE_ERROR" = "Η συσκευή σας δεν υποστηρίζει αυτή τη λειτουργία.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Δεν μπορείτε να καταργήσετε μέλη της ομάδας. Θα πρέπει είτε να αποχωρήσουν απο μόνοι τους, είτε μπορείτε να δημιουργήσετε μια νέα ομάδα χωρίς αυτό το μέλος.";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Δεν μπορείτε να καταργήσετε μέλη της ομάδας. Θα πρέπει είτε να αποχωρήσουν από μόνοι τους, είτε μπορείτε να δημιουργήσετε μια νέα ομάδα χωρίς αυτό το μέλος.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Δεν Επιτρέπεται";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Η απάντηση στις κλήσεις από την οθόνη κλειδώματος είναι εύκολη με την ενσωμάτωση κλήσεων iOS. Ως προεπιλογή ανωνυμοποιούμε αυτόν που καλεί, οπότε είναι και ασφαλές για την ιδιωτικότητα. ";
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Η απάντηση στις κλήσεις από την οθόνη κλειδώματος είναι εύκολη με την ενσωμάτωση κλήσεων iOS. Ως προεπιλογή ανωνυμοποιούμε αυτόν που καλεί, οπότε είναι και ασφαλές για την ιδιωτικότητα.";
/* button label shown once when when user upgrades app, in context of call kit */
"UPGRADE_EXPERIENCE_CALLKIT_PRIVACY_SETTINGS_BUTTON" = "Μάθετε περισσότερα στις ρυθμίσεις απορρήτου.";
@ -2244,7 +2259,7 @@
"UPGRADE_EXPERIENCE_INTRODUCING_NOTIFICATION_AUDIO_SETTINGS_BUTTON" = "Αναθεώρηση των ρυθμίσεων ειδοποιήσεων";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_NOTIFICATION_AUDIO_TITLE" = "Καινούργιοι ήχοι κλήσεων καί μηνυμάτων";
"UPGRADE_EXPERIENCE_INTRODUCING_NOTIFICATION_AUDIO_TITLE" = "Καινούργιοι ήχοι κλήσεων και μηνυμάτων";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Ρυθμίστε το προφίλ σας";
@ -2286,7 +2301,7 @@
"VERIFICATION_CHALLENGE_DEFAULT_TEXT" = "Κωδικός Επαλήθευσης";
/* button text during registration to request phone number verification be done via phone call */
"VERIFICATION_CHALLENGE_SEND_VIA_VOICE" = "Κάλεσέ με αντ' αυτού";
"VERIFICATION_CHALLENGE_SEND_VIA_VOICE" = "Καλέστε με αντ' αυτού";
/* button text during registration to request another SMS code be sent */
"VERIFICATION_CHALLENGE_SUBMIT_AGAIN" = "Επανάληψη Αποστολής Κωδικού με SMS";
@ -2295,7 +2310,7 @@
"VERIFICATION_CHALLENGE_SUBMIT_CODE" = "Καταχώριση";
/* Label indicating the phone number currently being verified. */
"VERIFICATION_PHONE_NUMBER_FORMAT" = "Εισαγάγετε τον κωδικό επαλήθευσης που στείλαμε στο %@.";
"VERIFICATION_PHONE_NUMBER_FORMAT" = "Εισάγετε τον κωδικό επαλήθευσης που στείλαμε στο %@.";
/* Format for info message indicating that the verification state was unverified on this device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_LOCAL" = "Σημειώσατε τον/την %@ ως μη επιβεβαιωμένο.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Add to Existing Contact";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Leaving group %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "You have no contacts on Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restableciendo archivos";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Los contactos bloqueados no podrán llamarte ni enviarte mensajes.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bloquear";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "¿Bloquear %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Desbloquear";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "¿Desbloquear %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloquear";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Fallo al bloquear contacto.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "Has bloqueado a %@";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Contacto bloqueado";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "No te puedes bloquear a ti mismo.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Fallo al desbloquear contacto.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "Has desbloqueado a %@.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Contacto desbloqueado";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloquear";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "¿Bloquear %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Siguiente";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Añadir a contacto existente";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear contacto";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Detalles de contacto";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Información de contacto";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Abandonando el grupo %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Chats archivados";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Bloqueado";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Buscar";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "Las cifras de seguridad con %@ han cambiado y no han sido verificadas. Toca para ver opciones.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "1 miembro bloqueado en este grupo";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Has bloqueado a %@ miembros en este grupo";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "¿Compartir perfil con este grupo?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Copia realizada";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Añadir...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "No tienes contactos en Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Failide taastamine";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blokeeritud kasutajad ei saa sulle helistada ega saata sulle sõnumeid.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokeeri";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Kas blokeerida %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Eemalda blokeering";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Kas eemaldada %@ blokeering?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blokeeri";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Kasutaja blokeerimine ei õnnestunud.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Tõrge";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ on blokeeritud";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Kasutaja on blokeeritud";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Iseennast ei saa blokeerida.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Tõrge";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Kasutaja blokeeringu eemaldamine ei õnnestunud.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Tõrge";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ blokeering on eemaldatud.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Kasutaja blokeering on eemaldatud";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blokeeri";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Kas blokeerida %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Jätka";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Lisa olemasolevale kontaktile";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blokeeri see kasutaja";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontakti info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Teave kontakti kohta";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Grupist %@ lahkumine";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Arhiveeritud vestlused";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blokeeritud";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Otsi";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ ei ole enam kinnitatuks märgitud. Klõpsa valikuteks.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Sa blokeerisid ühe selle grupi liikme";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Sa blokeerisid %@ selle grupi liiget";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Kas jagada sinu profiili selle grupiga?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Algset sõnumit ei leitud.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Algne sõnum ei ole enam saadaval.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Algset sõnumit ei leitud.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Manus";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Varukoopia tegemine õnnestus";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Lisa...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Sul pole Signalis kontakte.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "در حال بازگردانی فایل‌ها";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "کاربری که مسدود شده است، امکان تماس یا ارسال پیام به شما را ندارد.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "مسدود کردن";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "%@ مسدود شود؟";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "رفع مسدودی";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@از حالت مسدود خارج شود؟";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "مسدود";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "ناتوان در مسدود کردن کاربر";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "خطا";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ مسدود شد";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "کاربر مسدود شده است";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "نمیتوانید خودتان را مسدود کنید.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "خطا";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "خطا در خارج کردن کاربر از مسدودی";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "خطا";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ از حالت مسدودی خارج شد.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "کاربر از لیست مسدودی‌ها خارج شد.";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "مسدود کردن کاربر";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "%@ مسدود شود؟";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "ادامه دادن";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "اضافه کردن به مخاطبین قبلی";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "قرار دادن کاربر در لیست سیاه";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "اطلاعات مخاطب";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "اطلاعات مخاطب";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "ترک گروه %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "مکالمه های آرشیو شده";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "مسدود شده";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "جستجو";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ دیگر تائیدشده نیست. برای مشاهده تنظیمات لمس کنید.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "شما 1 عضو از این گروه را مسدود کرده‌اید";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "شما %@ عضو از این گروه را مسدود کرده‌اید";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "آیا مایل به اشتراک پروفایل‌تان با این گروه هستید؟";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "پیام اصلی پیدا نشد.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "پیام اصلی دیگر موجود نمی باشد.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "پیام اصلی پیدا نشد.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "ضمیمه";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "پشتیبان گیری موفق بود";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "افزودن…";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "هیچ کدام از مخاطبین شما سیگنال را نصب نکرده‌اند.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Palautetaan tiedostoja";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Estetyt käyttäjät eivät pysty soittamaan sinulle tai lähettämään sinulle viestejä.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Estä";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Estä %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Poista esto";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Poista esto yhteystiedolta %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Estä";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Käytäjän estäminen epäonnistui.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Virhe";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ on nyt estetty.";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Käyttäjä estetty";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Et voi estää itseäsi.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Virhe";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Käyttäjän estäminen epäonnistui.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Virhe";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "Yhteystiedon %@ esto on poistettu.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Esto poistettu";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Estä";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Estä %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Jatka";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Lisää olemassaolevaan yhteystietoon";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Estä tämä käyttäjä";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Yhteystiedot";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Yhteystiedot";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Poistutaan ryhmästä %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Arkistoidut keskustelut";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Estetyt";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Hae";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ ei ole enää merkitty varmennetuksi. Lisätietoja napauttamalla.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Estit 1 käyttäjän tästä ryhmästä";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Estit %@ jäsentä tästä ryhmästä";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Jaa profiilisi tämän ryhmän kanssa?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Alkuperäistä viestiä ei löytynyt.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Alkuperäinen viesti ei ole enää saatavilla.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Alkuperäistä viestiä ei löytynyt.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Liitetiedosto";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Varmuuskopio onnistui";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Lisää...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Sinulla ei ole yhteystietoja Signalissa.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Add to Existing Contact";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Leaving group %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "You have no contacts on Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restauration des fichiers";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Les utilisateurs bloqués ne pourront ni vous appeler ni vous envoyer de messages.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "Vous ne recevrez plus ni messages ni mises à jour de ce groupe";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bloquer";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Bloquer le groupe « %@ » et le quitter?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Bloquer %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Bloquer %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Groupes bloqués";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Utilisateurs bloqués";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Débloquer";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Les utilisateurs existants pourront vous ajouter au groupe de nouveau.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Débloquer %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloquer";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Échec de blocage de lutilisateur.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Erreur";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ a été bloqué";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Lutilisateur est bloqué";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Le groupe a été bloqué";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Vous ne pouvez pas vous bloquer.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Erreur";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Échec de déblocage de lutilisateur.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Erreur";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ a été débloqué.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Lutilisateur est débloqué";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloquer";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloquer %@?";
/* 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 'continue' button. */
"BUTTON_CONTINUE" = "Continuer";
@ -512,6 +521,9 @@
/* Label for 'new contact' button in conversation settings view. */
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Ajouter à un contact existant";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Bloquer ce groupe";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquer cet utilisateur";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "À propos du contact";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Départ du groupe %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Conversations archivées";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Bloqués";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Bloquée";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Rechercher";
@ -1266,6 +1278,9 @@
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Vous avez bloqué un membre de ce groupe";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "Vous avez bloqué ce groupe";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Vous avez bloqué %@ membres de ce groupe";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Le message original est introuvable.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Le message original nest plus disponible";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Le message original est introuvable.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Pièce jointe";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "La sauvegarde est terminée avec succès";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Ajouter";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Ajouter un utilisateur bloqué";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Vous navez aucun contact sur Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restaurando ficheiros";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Os usuarios bloqueados non poderán chamarte nin enviarche mensaxes.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bloquear";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Bloquear a %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Desbloquear";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Desbloquear a %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloquear";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Erro ao bloquear o usuario.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Erro";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ foi bloqueado/a";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Usuario bloqueado";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Non te podes bloquear a ti mesmo.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Erro";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Erro ao desbloquear o usuario.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Erro";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ foi desbloqueado/a.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Usuario desbloqueado";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloquear";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloquear a %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Engadir a un contacto xa existente";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear este usuario";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Información do contacto";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Información de contacto";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Abandonando o grupo %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Bloqueado";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ xa non está marcado como verificado. Toca para máis opcións.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Bloqueaches a 1 membro deste grupo";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Bloqueaches %@ membros deste grupo";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Queres compartir o teu perfil con este grupo?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Copia de seguranza satisfactoria";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Engadir...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Non tes contactos en Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "משחזר קבצים";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "משתמשים חסומים לא יוכלו לחייג אליך או לשלוח לך הודעות.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "לא תקבל יותר הודעות או עדכונים מקבוצה זו.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "חסום";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "לחסום ולעזוב את הקבוצה \"%@\"?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "לחסום את %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "לחסום את %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "קבוצות חסומות";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "משתמשים חסומים";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "בטל חסימה";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "חברי קבוצה קיימים יוכלו להוסיף אותך אל הקבוצה שוב.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "לבטל את חסימת %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "חסום";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "חסימת משתמש נכשלה";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "שגיאה";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ נחסם";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "המשתמש נחסם";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "קבוצה נחסמה";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "אינך יכול לחסום את עצמך.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "שגיאה";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "נכשל בביטול חסימת משתמש.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "שגיאה";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "הוסרה חסימת %@";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "הוסרה חסימת המשתמש";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "חסום";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "לחסום את %@?";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "משתמשים חסומים לא יוכלו להתקשר אליך או לשלוח לך הודעות.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "המשך";
@ -512,6 +521,9 @@
/* Label for 'new contact' button in conversation settings view. */
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "הוסף לאיש קשר קיים";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "חסום קבוצה זו";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "חסום משתמש זה";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "מידע איש קשר";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "עוזב את הקבוצה %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "שיחות מאורכבות";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "חסומים";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "חסום";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "חיפוש";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ אינו מסומן יותר כמוודא. הקש לאפשרויות.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "חסמת משתמש 1 מקבוצה זו";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "חסמת חבר קבוצה 1 של קבוצה זו";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "חסמת קבוצה זו";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "חסמת %@ משתמשים מקבוצה זו";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "חסמת %@ חברי קבוצה של קבוצה זו";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "לשתף את הפרופיל שלך עם קבוצה זו?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "הודעה מקורית לא נמצאה.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "הודעה מקורית אינה זמינה עוד.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "הודעה מקורית לא נמצאה.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "צרופה";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "גיבוי הצליח";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "הוסף...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "הוסף משתמש חסום";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "אין לך אנשי קשר ב־Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Vraćanje datoteka";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blokirani korisnici neće biti u mogućnosti da vas pozovu ili vam pošalju poruku.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokiraj";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Blokiraj %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Deblokiraj";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Deblokiraj %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blokiraj";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Blokiranje korisnika nije uspjelo.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Greška";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ je blokiran";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Korisnik je blokiran";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Ne možete blokirati sebe.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Greška";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Deblokiranje korisnika nije uspjelo.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Greška";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ je deblokiran.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Korisnik odblokiran";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blokiraj";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blokiraj %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Dodaj postojećem kontaktu";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blokiraj ovog korisnika";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Detalji kontakta";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Detalji kontakta";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Napuštanje grupe %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blokiran";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ više nije označen/a kao provjeren/a. Dodirni za opcije.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Blokirali ste 1 člana ove grupe";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Blokirali ste %@ članova ove grupe.";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Podijeli svoj profil sa ovom grupom?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Uspješno sigurnosno kopiranje";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Dodaj...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Nemate kontakata koji koriste Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Fájlok visszaállítása";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "A letiltott felhasználók nem fognak tudni sem üzenetet küldeni Neked, sem pedig felhívni.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Letiltás";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "%@ letiltása?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Tiltás feloldása";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@ tiltásának feloldása?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Letiltás";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Felhasználó letiltása sikertelen.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Hiba";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ letiltva.";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Felhasználó letiltva";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Nem tilthatod le saját magad.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Hiba";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Felhasználó letiltásának feloldása sikertelen.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Hiba";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ letiltása feloldva.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Felhasználó letiltása feloldva";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Letiltás";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "%@ letiltása?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Hozzáadás létező kontakthoz";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Felhasználó letiltása";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontakt részletek";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Kontakt részletek";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "%@ csoport elhagyása";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Letiltva";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Biztonsági mentés sikeres";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Hozzáadás...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Nincsenek Signal felhasználó kontaktjaid.";

View File

@ -78,7 +78,7 @@
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Masukkan nama Anda";
/* 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" = "Tidak Sekarang";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number}} */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Versi %@ telah tersedia di App Store.";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Gagal memilih dokumen.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try compressing it before sending.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal tidak dapat menangani berkas seperti apa adanya. Cobalah untuk mengkompresi berkas tersebut sebelum mengirimkannya.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Berkas tidak didukung.";
@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Memulihkan Berkas-berkas";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Pengguna terblokir tidak bisa menghubungi atau mengirimkan pesan kepada Anda.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokir";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Blokir %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Buka blokir";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Buka blokir %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blokir";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Gagal Memblokir Pengguna.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Galat";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ telah diblokir";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Pengguna telah diblokir";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Anda tidak bisa memblokir diri Anda sendiri.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Galat";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Gagal Menghapus Blokir Pengguna.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Galat";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ telah dibuka blokirnya";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Pengguna telah dibuka blokirnya";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blokir";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blokir %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Lanjut";
@ -447,7 +456,7 @@
"CONTACT_FIELD_ADDRESS_POBOX" = "Kotak Pos";
/* Label for the 'postcode' field of a contact's address. */
"CONTACT_FIELD_ADDRESS_POSTCODE" = "Postal Code";
"CONTACT_FIELD_ADDRESS_POSTCODE" = "Kode Pos";
/* Label for the 'region' field of a contact's address. */
"CONTACT_FIELD_ADDRESS_REGION" = "Provinsi";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Tambahkan Kontak Saat Ini";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blokir pengguna ini";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Info Kontak ";
@ -763,10 +775,10 @@
"EMPTY_CONTACTS_LABEL_LINE2" = "Mengapa Anda tidak mengundang seseorang?";
/* Body text a new user sees when viewing an empty inbox */
"EMPTY_INBOX_NEW_USER_TEXT" = "Tap on the compose button";
"EMPTY_INBOX_NEW_USER_TEXT" = "Ketuk pada tombol menyusun";
/* Header text a new user sees when viewing an empty inbox */
"EMPTY_INBOX_NEW_USER_TITLE" = "Start your first Signal conversation!";
"EMPTY_INBOX_NEW_USER_TITLE" = "Mulai percakapan Signal pertama Anda!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "Kosong...Sepi...";
@ -808,7 +820,7 @@
"ENABLE_2FA_VIEW_TITLE" = "Kunci Pendaftaran";
/* Call setup status label */
"END_CALL_RESPONDER_IS_BUSY" = "Busy";
"END_CALL_RESPONDER_IS_BUSY" = "Sibuk";
/* Call setup status label */
"END_CALL_UNCATEGORIZED_FAILURE" = "Panggilan Gagal.";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Info Kontak";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Meninggalkan grup %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Percakapan Terarsipkan";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Terblokir";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Pencarian";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@tidak lagi ditandai sudah terverifikasi. Ketuk untuk pilihan.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Anda Memblokir 1 Anggota dari Grup ini";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Anda Memblokir %@Anggota dari Grup ini";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Bagikan Profil Anda Dengan Grup Ini?";
@ -1314,10 +1329,10 @@
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Panggilan tak terjawab dari %@.";
/* alert title: cannot link - reached max linked devices */
"MULTIDEVICE_PAIRING_MAX_DESC" = "You cannot link any more devices.";
"MULTIDEVICE_PAIRING_MAX_DESC" = "Anda tidak dapat menghubungkan perangkat lain lagi.";
/* alert body: cannot link - reached max linked devices */
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "You have reached the maximum of devices you can currently link with your account. Please remove a device or try again to link it later.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Anda telah mencapai batas maksimum dari perangkat yang bisa dihubungkan dengan akun Anda. Mohon hapus sebuah perangkat atau coba lagi untuk menghubungkannya nanti.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Anda tidak akan menerima pemberitahuan untuk percakapan yang disenyapkan.";
@ -1602,13 +1617,13 @@
"QUOTED_REPLY_AUTHOR_INDICATOR_YOURSELF" = "Membalas Diri Sendiri";
/* Footer label that appears below quoted messages when the quoted content was note derived locally. When the local user doesn't have a copy of the message being quoted, e.g. if it had since been deleted, we instead show the content specified by the sender. */
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Original message not found.";
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Pesan asli tidak ditemukan.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Pesan asli tidak lagi tersedia.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Pesan asli tidak ditemukan.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Lampiran";
@ -1881,7 +1896,7 @@
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_HEADER" = "Menghindari Penyensoran ";
/* Label for setting that enables dark theme. */
"SETTINGS_ADVANCED_DARK_THEME" = "Dark Theme";
"SETTINGS_ADVANCED_DARK_THEME" = "Tema Gelap";
/* No comment provided by engineer. */
"SETTINGS_ADVANCED_DEBUGLOG" = "Ijinkan Catatan Debug";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Cadangan Berhasil Dibuat";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Tambahkan";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Anda tidak mempunyai kontak di Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Ripristino file";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Gli utenti bloccati non potranno chiamarti o inviarti messaggi.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blocca";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Bloccare %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Sblocca";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Sbloccare %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blocca";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Blocco utente non riuscito.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Errore";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ è stato bloccato";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Utente bloccato";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Non puoi bloccare te stesso.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Errore";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Sblocco utente non riuscito.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Errore";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ è stato sbloccato.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Utente sbloccato";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blocco";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blocca %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continua";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Aggiungi ad un contatto esistente";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blocca questo utente";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Info contatto";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informazioni contatto";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Lasciato il gruppo %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Conversazioni archiviate";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Bloccato";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Cerca";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ non è più segnato come verificato. Tocca per le opzioni.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Hai bloccato 1 membro di questo gruppo";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Hai bloccato %@ membri di questo gruppo";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Vuoi condividere il tuo profilo con questo gruppo?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup eseguito con successo";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Aggiungi...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Non hai contatti su Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "ファイルを復元中";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "ブロックされたユーザーは通話もメッセージも送って来れません。";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "ブロックする";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "%@をブロックしますか?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "ブロックを解除する";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@のブロックを解除しますか?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "ブロックする";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "ブロックに失敗しました";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "エラー";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@をブロックしました";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "ユーザはブロックされました";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "自分自身はブロックできません";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "エラー";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "ブロックの解除に失敗しました";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "エラー";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@のブロックを解除しました";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "ユーザのブロックは解除されました";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "ブロック";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "%@をブロックしますか?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "続ける";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "既存の連絡先に加える";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "このユーザをブロックする";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "連絡先情報";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "連絡先情報";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "%@から離脱";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "保存済みの会話";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "ブロック中";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "検索";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@は要確認です。タップして選択肢をご覧ください。";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "グループ内の1人をブロックしました";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "グループ内の%@人をブロックしました";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "自分のプロフィールをこのグループと共有しますか?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "元のメッセージが見つかりません。";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "元のメッセージはすでに削除されています。";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "元のメッセージが見つかりません。";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "添付";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "バックアップ成功";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "追加する";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "連絡先がありません";

View File

@ -78,7 +78,7 @@
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "បញ្ចូលឈ្មោះរបស់អ្នក";
/* 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" = "ជំនាន់ %@ ឥឡូវមាននៅលើ App Store។";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "បរាជ័យក្នុងការជ្រើសរើសឯកសារ។";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try compressing it before sending.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "ស៊ីហ្គណលមិនអាចទ្រទ្រង់ឯកសារនេះបាន។ ព្យាយាមពង្រួមវា មុនពេលផ្ញើចេញ។";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "មិនស្គាល់ឯកសារ";
@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "កំពុងស្តារឯកសារ";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "អ្នកប្រើប្រាស់ដែលបានហាមឃាត់ នឹងមិនអាចហៅ ឬផ្ញើសារមកអ្នកបានទេ។";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "ហាមឃាត់";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "ហាមឃាត់ %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "លែងហាមឃាត់";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "លែងហាមឃាត់ %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "ហាមឃាត់";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "បរាជ័យក្នុងការហាមឃាត់អ្នកប្រើប្រាស់។";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "បញ្ហា";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "ត្រូវបានហាមឃាត់%@ ";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "អ្នកប្រើប្រាស់បានហាមឃាត់";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "អ្នកមិនអាចហាមឃាត់ខ្លួនអ្នកទេ។";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "បញ្ហា";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "បរាជ័យក្នុងការលែលហាមឃាត់អ្នកប្រើប្រាស់។";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "បញ្ហា";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ ត្រូវបានបើកសោរ។";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "អ្នកប្រើប្រាស់លែងបានហាមឃាត់";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "ហាមឃាត់";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "ហាមឃាត់ %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "បន្ត";
@ -288,7 +297,7 @@
"BUTTON_SELECT" = "ជ្រើសរើស";
/* Label for button that lets users call a contact again. */
"CALL_AGAIN_BUTTON_TITLE" = "Call Again";
"CALL_AGAIN_BUTTON_TITLE" = "ហៅម្តងទៀត";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "ស៊ីហ្គណលទាមទារចូលប្រើប្រាស់ម៉ែក្រូហ្វូនរបស់អ្នក ដើម្បីធ្វើការហៅចេញ និងថតសារសំឡេង។ អ្នកអាចផ្តល់សិទ្ធិនេះក្នុងការកំណត់។";
@ -447,7 +456,7 @@
"CONTACT_FIELD_ADDRESS_POBOX" = "ប្រអប់សំបុត្រ";
/* Label for the 'postcode' field of a contact's address. */
"CONTACT_FIELD_ADDRESS_POSTCODE" = "Postal Code";
"CONTACT_FIELD_ADDRESS_POSTCODE" = "កូដប្រៃសណីយ៍";
/* Label for the 'region' field of a contact's address. */
"CONTACT_FIELD_ADDRESS_REGION" = "តំបន់";
@ -513,13 +522,16 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "បន្ថែមទៅបញ្ជីទំនាក់ទំនងដែលមានស្រាប់";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "ហាមឃាត់អ្នកប្រើប្រាស់នេះ";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "ព័ត៌មានលេខទំនាក់ទំនង";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "ពណ៌";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "ព័ត៌មានក្រុម";
@ -555,7 +567,7 @@
"CONVERSATION_SETTINGS_NEW_CONTACT" = "បង្កើតលេខទំនាក់ទំនងថ្មី";
/* Label for button that opens conversation settings. */
"CONVERSATION_SETTINGS_TAP_TO_CHANGE" = "Tap to Change";
"CONVERSATION_SETTINGS_TAP_TO_CHANGE" = "ចុច ដើម្បីផ្លាស់ប្តូរ";
/* Label for button to unmute a thread. */
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "មិនបិទសំឡេង";
@ -612,13 +624,13 @@
"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" = "ថ្ងៃនេះ";
@ -763,10 +775,10 @@
"EMPTY_CONTACTS_LABEL_LINE2" = "ហេតុអី អ្នកមិនអញ្ជើញនរណាម្នាក់?";
/* Body text a new user sees when viewing an empty inbox */
"EMPTY_INBOX_NEW_USER_TEXT" = "Tap on the compose button";
"EMPTY_INBOX_NEW_USER_TEXT" = "ចុចលើប៊ូតុង បង្កើតសារ";
/* Header text a new user sees when viewing an empty inbox */
"EMPTY_INBOX_NEW_USER_TITLE" = "Start your first Signal conversation!";
"EMPTY_INBOX_NEW_USER_TITLE" = "ចាប់ផ្តើមការសន្ទនាលើ ស៊ីហ្គណល លើកដំបូង!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "គ្មាន សូន្យ ទទេរ ";
@ -808,7 +820,7 @@
"ENABLE_2FA_VIEW_TITLE" = "ចាក់សោរចុះឈ្មោះ";
/* Call setup status label */
"END_CALL_RESPONDER_IS_BUSY" = "Busy";
"END_CALL_RESPONDER_IS_BUSY" = "រវល់";
/* Call setup status label */
"END_CALL_UNCATEGORIZED_FAILURE" = "ការហៅបានបរាជ័យ។";
@ -865,7 +877,7 @@
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "សោររបស់អ្នកទទួល មិនត្រឹមត្រូវ។";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_MESSAGE" = "Received message was out of sync.";
"ERROR_MESSAGE_INVALID_MESSAGE" = "សារទទួលបាន មិនបានធ្វើសមកាលកម្ម។";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "ទទួលបានសារមួយ ដែលមិនត្រូវគ្នានឹងជំនាន់កម្មវិធីនេះ។";
@ -883,7 +895,7 @@
"ERROR_MESSAGE_UNKNOWN_ERROR" = "បញ្ហាមិនស្គាល់កើតឡើង។";
/* No comment provided by engineer. */
"ERROR_MESSAGE_WRONG_TRUSTED_IDENTITY_KEY" = "Safety number changed.";
"ERROR_MESSAGE_WRONG_TRUSTED_IDENTITY_KEY" = "លេខសុវត្ថិភាពបានផ្លាស់ប្តូរ។";
/* Format string for 'unregistered user' error. Embeds {{the unregistered user's name or signal id}}. */
"ERROR_UNREGISTERED_USER_FORMAT" = "អ្នកប្រើប្រាស់មិនបានចុះឈ្មោះ: %@";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "ព័ត៌មានលេខទំនាក់ទំនង";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "កំពុងចាកចេញពីក្រុម %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "បណ្ណសារសន្ទនា";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "បានហាមឃាត់";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "ស្វែងរក";
@ -1048,7 +1060,7 @@
"INCOMING_DECLINED_CALL" = "អ្នកបានបដិសេធការហៅ";
/* No comment provided by engineer. */
"INCOMING_INCOMPLETE_CALL" = "Incoming call";
"INCOMING_INCOMPLETE_CALL" = "ការហៅចូល";
/* info message text shown in conversation view */
"INFO_MESSAGE_MISSED_CALL_DUE_TO_CHANGED_IDENITY" = "ខកខានការហៅចូល ដោយសារលេខសុវត្ថិភាពបានផ្លាស់ប្តូរ។";
@ -1150,25 +1162,25 @@
"MEDIA_GALLERY_THIS_MONTH_HEADER" = "ខែនេះ";
/* Action sheet button title */
"MESSAGE_ACTION_COPY_MEDIA" = "Copy Media";
"MESSAGE_ACTION_COPY_MEDIA" = "ថតចម្លងឯកសារមេឌា";
/* Action sheet button title */
"MESSAGE_ACTION_COPY_TEXT" = "Copy Message Text";
"MESSAGE_ACTION_COPY_TEXT" = "ថតចម្លងសារអក្សរ";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete this Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "លុបសារនេះចោល";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will be deleted on this device only";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "វានឹងត្រូវបានលុបចេញពីឧបករណ៍នេះប៉ុណ្ណោះ";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "More Info";
"MESSAGE_ACTION_DETAILS" = "ព័ត៌មានបន្ថែម";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to this Message";
"MESSAGE_ACTION_REPLY" = "ឆ្លើយតបទៅកាន់សារនេះ";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Save Media";
"MESSAGE_ACTION_SAVE_MEDIA" = "រក្សាទុកឯកសារមេឌា";
/* Title for the 'message approval' dialog. */
"MESSAGE_APPROVAL_DIALOG_TITLE" = "សារ";
@ -1231,7 +1243,7 @@
"MESSAGE_STATUS_DELIVERED" = "បានទទួល";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED" = "Sending failed.";
"MESSAGE_STATUS_FAILED" = "ការបញ្ជូនបរាជ័យ។";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED_SHORT" = "បានបរាជ័យ";
@ -1243,7 +1255,7 @@
"MESSAGE_STATUS_RECIPIENT_SKIPPED" = "បានរំលង";
/* Label indicating that a message failed to send. */
"MESSAGE_STATUS_SEND_FAILED" = "Send Failed";
"MESSAGE_STATUS_SEND_FAILED" = "បញ្ជូនបរាជ័យ";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "កំពុងផ្ញើ...";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ គឺលែងជ្រើសរើសថាបានផ្ទៀងផ្ទាត់ទៀតទេ។ ចុច សម្រាប់ជម្រើសបន្ថែម។";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "អ្នកបានហាមឃាត់សមាជិក1ក្នុងក្រុមនេះ";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "អ្នកបានហាមឃាត់ សមាជិក%@ នៃក្រុមនេះ";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "ចែករំលែកប្រវត្តិរូបអ្នកជាមួយក្រុមនេះ?";
@ -1279,13 +1294,13 @@
"MESSAGES_VIEW_TITLE_SUBTITLE" = "ចុចទីនេះ សម្រាប់ការកំណត់";
/* Indicator that separates read from unread messages. */
"MESSAGES_VIEW_UNREAD_INDICATOR" = "New Messages";
"MESSAGES_VIEW_UNREAD_INDICATOR" = "សារថ្មី";
/* Messages that indicates that there are more unseen messages. */
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES" = "There are more unread messages.";
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES" = "មានសារមិនទាន់បានអានច្រើន។";
/* Messages that indicates that there are more unseen messages including safety number changes. */
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_AND_SAFETY_NUMBER_CHANGES" = "There are more unread messages (including safety number changes).";
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_AND_SAFETY_NUMBER_CHANGES" = "មានសារមិនទាន់អានច្រើនទៀត ( រួមមានការផ្លាស់ប្តូរលេខសុវត្ថិភាព ) ។";
/* notification title */
"MISSED_CALL" = "មិនបានទទួលការហៅចូល";
@ -1314,10 +1329,10 @@
"MSGVIEW_MISSED_CALL_WITH_NAME" = "មិនបានទទួលការហៅចូលពី %@។";
/* alert title: cannot link - reached max linked devices */
"MULTIDEVICE_PAIRING_MAX_DESC" = "You cannot link any more devices.";
"MULTIDEVICE_PAIRING_MAX_DESC" = "អ្នកមិនអាចតភ្ជាប់ឧបករណ៍ផ្សេងទៀតទេ។";
/* alert body: cannot link - reached max linked devices */
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "You have reached the maximum of devices you can currently link with your account. Please remove a device or try again to link it later.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "គណនីរបស់អ្នកថ្មីៗនេះភ្ជាប់ជាមួយឧបករណ៍ផ្សេងទៀដល់កម្រិតអតិបរមា។ សូមលុបឧបករណ៍មួយចោល ឬព្យយាមភ្ជាប់ម្តងទៀតនៅពេលក្រោយ។";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "អ្នកនឹងមិនទទួលសារជូនដំណឹង សម្រាប់បិទសំឡេងការសន្ទនានោះទេ។";
@ -1434,10 +1449,10 @@
"OUTGOING_CALL" = "ហៅចេញក្រៅ";
/* No comment provided by engineer. */
"OUTGOING_INCOMPLETE_CALL" = "Outgoing call";
"OUTGOING_INCOMPLETE_CALL" = "ហៅចេញក្រៅ";
/* info message recorded in conversation history when local user tries and fails to call another user. */
"OUTGOING_MISSED_CALL" = "Unanswered outgoing call";
"OUTGOING_MISSED_CALL" = "ការហៅចេញមិនបានទទួល";
/* A display format for oversize text messages. */
"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@…";
@ -1602,13 +1617,13 @@
"QUOTED_REPLY_AUTHOR_INDICATOR_YOURSELF" = "កំពុងឆ្លើយតបទៅកាន់ខ្លួនអ្នក";
/* Footer label that appears below quoted messages when the quoted content was note derived locally. When the local user doesn't have a copy of the message being quoted, e.g. if it had since been deleted, we instead show the content specified by the sender. */
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Original message not found.";
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "សារដើមរកមិនឃើញ។";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "សារដើមលែងមានទៀតហើយ។";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "សារដើមរកមិនឃើញ។";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "ការភ្ជាប់";
@ -1881,7 +1896,7 @@
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_HEADER" = "ការចៀសវាងការឃ្លាំមើល";
/* Label for setting that enables dark theme. */
"SETTINGS_ADVANCED_DARK_THEME" = "Dark Theme";
"SETTINGS_ADVANCED_DARK_THEME" = "ទម្រង់ពណ៌ងងឹត";
/* No comment provided by engineer. */
"SETTINGS_ADVANCED_DEBUGLOG" = "បើកកំណត់ត្រាកំហុស";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "បម្រុងទុកជោគជ័យ";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "បន្ថែម...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "អ្នកមិនមានលេខទំនាក់ទំនងលើស៊ីហ្គណលទេ។";
@ -2112,7 +2127,7 @@
"SHARE_EXTENSION_VIEW_TITLE" = "ចែករំលែកទៅ ស៊ីហ្គណល";
/* Action sheet item */
"SHOW_SAFETY_NUMBER_ACTION" = "Show Safety Number";
"SHOW_SAFETY_NUMBER_ACTION" = "បង្ហាញលេខសុវត្ថិភាព";
/* notification action */
"SHOW_THREAD_BUTTON_TITLE" = "បង្ហាញការសន្ទនា";
@ -2130,10 +2145,10 @@
"SUCCESSFUL_VERIFICATION_TITLE" = "លេខសុវត្ថិភាព ត្រូវគ្នា!";
/* Label for button to verify a user's safety number. */
"SYSTEM_MESSAGE_ACTION_VERIFY_SAFETY_NUMBER" = "Verify Safety Number";
"SYSTEM_MESSAGE_ACTION_VERIFY_SAFETY_NUMBER" = "ផ្ទៀងផ្ទាត់លេខសុវត្ថិភាព";
/* No comment provided by engineer. */
"THEME_SECTION" = "Theme";
"THEME_SECTION" = "ទម្រង់";
/* {{number of days}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 days}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_DAYS" = "%@ ថ្ងៃ";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Add to Existing Contact";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Leaving group %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "You have no contacts on Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Atkuriami failai";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Užblokuoti naudotojai negalės jums skambinti ar siųsti žinutes.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Užblokuoti";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Užblokuoti %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Atblokuoti";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Atblokuoti %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Užblokuoti";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Nepavyko užblokuoti naudotojo.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Klaida";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ buvo užblokuota(-as)";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Naudotojas užblokuotas";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Jūs negalite užblokuoti save.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Klaida";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Nepavyko atblokuoti naudotojo.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Klaida";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ buvo atblokuota(-as).";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Naudotojas atblokuotas";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Užblokuoti";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Užblokuoti %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Tęsti";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Pridėti prie esamo kontakto";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Užblokuoti šį naudotoją";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinė informacija";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Kontaktinė informacija";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Išeinama iš grupės %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archyvuoti pokalbiai";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Užblokuotas";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Ieškoti";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ daugiau nebėra pažymėta(-s) kaip patvirtinta(-s). Bakstelėkite norėdami matyti parinktis.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Jūs užblokavote 1 šios grupės dalyvį";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Jūs užblokavote %@ šios grupės dalyvius(-ių)";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Bendrinti jūsų profilį su šia grupe?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Pradinė žinutė nerasta.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Pradinė žinutė daugiau nebeprieinama.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Pradinė žinutė nerasta.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Priedas";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Atsarginė kopija pavyko";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Pridėti…";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Jūs neturite Signal kontaktų.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Add to Existing Contact";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Leaving group %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "You have no contacts on Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Блокираните корисници нема да можат да ве контактираат или да ви праќаат пораки.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Блокирај";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Блокирај %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Одблокирај";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Одблокирај %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Блокирај";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Неуспешно е Блокирањето на Корисникот.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Грешка";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ е блокиран";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Корисникот е Блокиран";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Неможеш да се блокираш самиот.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Грешка";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Неуспешно Одблокирање на Корисникот";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Грешка";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ беше одблокиран";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Корисникот е Одблокиран";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Блокирај";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Блокирај %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Додади во постоечки контакт";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Блокирај го овој корисник";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Напуштање на групата%@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Блокиравте 1 Член од групата";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Додадете...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Немате контакти на Сигнал.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "ဖိုင်များကို ပြန်လည်သိမ်းဆည်းနေသည်";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "ဘလော့လုပ်ထားသော လူများအနေဖြင့် သင့်အားစာပို့​ခြင်း၊ ဖုန်းခေါ်ခြင်းများ ​ပြုလုပ်၍မရပါ။";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "ပိတ်သည် ";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "%@ကိုပိတ်မလား?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "ပြန်ဖွင့်သည် ";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@ကိုပြန်ဖွင့်ပေးမလား? ";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "ပိတ်သည် ";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "အသုံးပြုသူကို ပိတ်လို့မရပါ";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "သတိ ";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ကိုဘလော့လိုက်ပြီ ";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "အသုံးပြုသူကိုဘလော့လိုက်ပြီ";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "ကိုယ့်ကိုယ်ကို ဘလော့လို့မရပါ။ ";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "သတိ!";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "သူ့ကိုဘလော့ခြင်း မအောင်မြင်ပါ ";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "သတိ ";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ကို ဘလော့ဖြည်လိုက်ပြီ ";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "အသုံးပြုသူကို ဘလော့ဖြည်လိုက်ပြီ ";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "ဘလော့သည် ";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "%@ကိုဘလော့ မလား?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "ဆက်လက်၍";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "ရှိရင်းစွဲလိပ်စာတွင် ထပ်ဖြည့်မည် ";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "ဤသူကို ဘလော့မည် ";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "ဆက်သွယ်သူအချက်အလက် ";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "လိပ်စာအချက်အလက်";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "%@အဖွဲ့မှထွက်သည်";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "မှတ်တမ်းပြုပြီး စကားဝိုင်းများ";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "ဘလော့လုပ်ပြီး";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "ရှာရန်";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@သည်အတည်ပြုထားမှု မရှိတော့ပါ။ လုပ်ဆောင်ချက်များကို ကြည့်ရန် တစ်ချက်နှိပ်ပါ။";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "ယခုအဖွဲ့မှ အဖွဲ့ဝင် 1 ယောက်အား သင်မှ ဘလော့လုပ်လိုက်သည်";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "ယခုအဖွဲ့မှ အဖွဲ့ဝင် %@ ယောက်အား သင်မှ ဘလော့လုပ်လိုက်သည်";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "ယခုအဖွဲ့ဖြင့် သင့်အချက်အလက်များအား မျှဝေမှာလား?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "အရံသိမ်းဆည်းမှု အောင်မြင်ပါသည်";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "ထည့်သည်...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Signal ပေါ်တွင် သင့်လိပ်စာစာရင်းထဲမှ လူတစ်ယောက်မှ မရှိပါ။";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Gjenoppretter filer";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blokkerte brukere vil ikke kunne ringe deg eller sende deg meldinger.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokker";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Blokker %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Skru av blokkering";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Skru av blokkering for %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blokker";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Kunne ikke blokkere brukeren.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Feil";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ har blitt blokkert";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Bruker blokkert";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Du kan ikke blokkere deg selv.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Feilmelding";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Kunne ikke fjerne blokkeringen.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Feilmelding";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ er ikke lenger blokkert.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Blokkering fjernet";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blokker";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blokker %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Fortsett";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Legg til eksisterende kontakt";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blokker denne brukeren";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinfo";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Kontaktinfo";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Forlater gruppe %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Arkiverte Samtaler";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blokkert";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Søk";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ er ikke lenger merket som verifisert. Trykk for valg.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Du blokkerte 1 medlem av gruppen";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Du blokkerte %@ medlemmer av gruppen";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Del din profil med denne gruppen?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Opprinnelig melding ikke funnet.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Opprinnelig melding er ikke lenger tilgjengelig.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Opprinnelig melding ikke funnet.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Vedlegg";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Sikkerhetskopiering fullført";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Legg til...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Du har ingen kontakter på Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Bestanden worden hersteld";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Geblokkeerde gebruikers zullen je niet kunnen bellen of berichten sturen.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokkeren";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "%@ blokkeren?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Deblokkeren";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@ deblokkeren?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blokkeren";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Gebruiker blokkeren mislukt.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Fout";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ is geblokkeerd";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Gebruiker geblokkeerd";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Je kunt jezelf niet blokkeren.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Fout";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Gebruiker deblokkeren mislukt.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Fout";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ is gedeblokkeerd.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Gebruiker gedeblokkeerd";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blokkeren";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "%@ blokkeren?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Doorgaan";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Toevoegen aan bestaand contact";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Deze gebruiker blokkeren";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contactinfo";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contactinfo";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Groep %@ verlaten";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Gearchiveerde gesprekken";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Geblokkeerd";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Zoeken";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is niet meer gemarkeerd als geverifieerd. Tik voor opties.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Je hebt 1 lid van deze groep geblokkeerd";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Je hebt %@ leden van deze groep geblokkeerd";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Je profiel met deze groep delen?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Back-up voltooid";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Toevoegen…";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Je hebt geen contacten met Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Przywracanie plików";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Zablokowani użytkownicy nie będą mogli do ciebie dzwonić ani wysyłać ci wiadomości.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Zablokuj";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Zablokować %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Odblokuj";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Odblokować %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Zablokuj";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Nie udało się zablokować użytkownika.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Błąd";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "Zablokowano %@";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Zablokowano użytkownika";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Nie możesz zablokować siebie.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Błąd";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Nie powiodło się odblokowanie użytkownika";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Błąd";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "Odblokowano %@.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Odblokowano użytkownika";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Zablokuj";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Zablokować %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Kontynuuj";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Dodaj do istniejącego kontaktu";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Zablokuj tego użytkownika";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informacje o kontakcie";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informacje o kontakcie";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Opuszczanie grupy %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Zarchiwizowane rozmowy";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Zablokowany";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Szukaj";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ nie jest już oznaczony(a) jako kontakt zweryfikowany. Dotknij, aby wyświetlić opcje.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Zablokowano 1-go członka z tej grupy";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Zablokowano %@ członków tej grupy";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Czy chcesz udostępnić swój profil w tej grupie?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Archiwizacja powiodła się";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Dodaj...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Nie masz żadnych kontaktów używających Signal.";

View File

@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Falha ao selecionar o documento.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try compressing it before sending.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "O Signal não pode carregar o arquivo como está. Tente comprimi-lo antes de enviar.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Arquivo Incompatível";
@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restaurando arquivos";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Usuários bloqueados não poderão efetuar ligações ou enviar mensagens para você.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "Você deixará de receber mensagens e atualizações do grupo.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bloquear";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Bloquear e sair do grupo \"%@\"?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Bloquear %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Bloquear %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Grupos bloqueados";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Usuários bloqueados";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Desbloquear";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Membros atuais poderão adicionar você novamente ao grupo.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Desbloquear %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloquear";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Falha ao Bloquear essa Pessoa.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Erro";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ sob bloqueio";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Pessoa sob Bloqueio";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Grupo bloqueado";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Você nao pode bloquear-se.";
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Você não pode se bloquear.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Erro";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Falha ao Desbloquear essa Pessoa.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Erro";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ não mais sob bloqueio.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Pessoa Desbloqueada";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloquear";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloquear %@?";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "Você não receberá mais ligações e mensagens de quem bloquear.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continuar";
@ -288,7 +297,7 @@
"BUTTON_SELECT" = "Selecionar";
/* Label for button that lets users call a contact again. */
"CALL_AGAIN_BUTTON_TITLE" = "Ligar Novamente";
"CALL_AGAIN_BUTTON_TITLE" = "Ligar novamente";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "O Signal necessita de acesso ao seu microfone para fazer chamadas e gravar mensagens de voz. Você pode conseguir esta permissão no app Configurações.";
@ -405,7 +414,7 @@
"CONFIRM_LEAVE_GROUP_TITLE" = "Você tem certeza que deseja sair?";
/* Button text */
"CONFIRM_LINK_NEW_DEVICE_ACTION" = "Conectar Novo Dispositivo";
"CONFIRM_LINK_NEW_DEVICE_ACTION" = "Vincular novo dispositivo";
/* Action sheet body presented when a user's SN has recently changed. Embeds {{contact's name or phone number}} */
"CONFIRM_SENDING_TO_CHANGED_IDENTITY_BODY_FORMAT" = "%@talvez tenha reinstalado ou trocado de aparelho. Verifique seu número de segurança com esse contato para garantir privacidade.";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Adicionar à Lista de Contatos";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear este usuário";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Bloquear grupo";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear pessoa";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informações do contato";
@ -555,7 +567,7 @@
"CONVERSATION_SETTINGS_NEW_CONTACT" = "Criar Novo Contato";
/* Label for button that opens conversation settings. */
"CONVERSATION_SETTINGS_TAP_TO_CHANGE" = "Tap to Change";
"CONVERSATION_SETTINGS_TAP_TO_CHANGE" = "Toque para mudar";
/* Label for button to unmute a thread. */
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Ativar o som";
@ -564,7 +576,7 @@
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_GROUP" = "Este grupo pode ver o seu perfil";
/* Indicates that user's profile has been shared with a user. */
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_USER" = "Esta pessoa pode ver o seu perfil.";
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_USER" = "Esta pessoa pode ver o seu perfil";
/* Button to confirm that user wants to share their profile with a user or group. */
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE" = "Compartilhar Perfil";
@ -612,13 +624,13 @@
"DATABASE_VIEW_OVERLAY_TITLE" = "Otimizando base de dados";
/* 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" = "Há %@ h";
/* 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" = "Há %@ min";
/* The present; the current time. */
"DATE_NOW" = "Now";
"DATE_NOW" = "Agora";
/* The current day. */
"DATE_TODAY" = "Hoje";
@ -670,10 +682,10 @@
"DEBUG_LOG_GITHUB_ISSUE_ALERT_TITLE" = "Redirecionando para o GitHub";
/* Label for button that lets users re-register using the same phone number. */
"DEREGISTRATION_REREGISTER_WITH_SAME_PHONE_NUMBER" = "Re-register this phone number";
"DEREGISTRATION_REREGISTER_WITH_SAME_PHONE_NUMBER" = "Recadastrar este telefone";
/* Label warning the user that they have been de-registered. */
"DEREGISTRATION_WARNING" = "Device no longer registered. Your phone number may be registered with Signal on a different device. Tap to re-register.";
"DEREGISTRATION_WARNING" = "Dispositivo não cadastrado. Seu número de telefone pode estar cadastrado no Signal em outro aparelho. Clique para se recadastrar.";
/* {{Short Date}} when device last communicated with Signal Server. */
"DEVICE_LAST_ACTIVE_AT_LABEL" = "Última atividade: %@";
@ -688,7 +700,7 @@
"DISAPPEARING_MESSAGES" = "Mensagens efêmeras";
/* 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 %@.";
"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "Mensagens nesta conversa desaparecem após %@.";
/* subheading in conversation settings */
"DISAPPEARING_MESSAGES_DESCRIPTION" = "Se assim habilitadas, as mensagens enviadas e recebidas nesta conversa desaparecerão após terem sido lidas.";
@ -763,10 +775,10 @@
"EMPTY_CONTACTS_LABEL_LINE2" = "Por que você não convida alguém?";
/* Body text a new user sees when viewing an empty inbox */
"EMPTY_INBOX_NEW_USER_TEXT" = "Tap on the compose button";
"EMPTY_INBOX_NEW_USER_TEXT" = "Clique no botão de escrever";
/* Header text a new user sees when viewing an empty inbox */
"EMPTY_INBOX_NEW_USER_TITLE" = "Start your first Signal conversation!";
"EMPTY_INBOX_NEW_USER_TITLE" = "Comece a conversar no Signal!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "Nada. None. Zero. Zilch.";
@ -796,10 +808,10 @@
"ENABLE_2FA_VIEW_PIN_DOES_NOT_MATCH" = "PIN incorreto.";
/* Indicates that user should select a 'two factor auth pin'. */
"ENABLE_2FA_VIEW_SELECT_PIN_INSTRUCTIONS" = "Insira um PIN para o Bloqueio de Cadastro. Você deverá informar esse PIN da próxima vez que cadastrar este número de telefone no Signal.";
"ENABLE_2FA_VIEW_SELECT_PIN_INSTRUCTIONS" = "Insira um PIN de Desbloqueio de Cadastro. Você deverá informar esse PIN da próxima vez que cadastrar este número de telefone no Signal.";
/* Indicates that user has 'two factor auth pin' disabled. */
"ENABLE_2FA_VIEW_STATUS_DISABLED_INSTRUCTIONS" = "Para mais segurança, ative um PIN de Bloqueio de Cadastro que será requerido para cadastrar este número de telefone no Signal no futuro.";
"ENABLE_2FA_VIEW_STATUS_DISABLED_INSTRUCTIONS" = "Para mais segurança, ative um PIN de Desbloqueio de Cadastro que será requerido para cadastrar este número de telefone no Signal no futuro.";
/* Indicates that user has 'two factor auth pin' enabled. */
"ENABLE_2FA_VIEW_STATUS_ENABLED_INSTRUCTIONS" = "O Bloqueio de Cadastro está ativo. Você deve inserir seu PIN quando for cadastrar seu número de telefone no Signal novamente.";
@ -835,10 +847,10 @@
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "O envio da mensagem falhou devido à falta de destinatários válidos.";
/* Error indicating that a socket request failed. */
"ERROR_DESCRIPTION_REQUEST_FAILED" = "A solicitação de rede falhou.";
"ERROR_DESCRIPTION_REQUEST_FAILED" = "Falha na solicitação de rede.";
/* Error indicating that a socket request timed out. */
"ERROR_DESCRIPTION_REQUEST_TIMED_OUT" = "Network request timed out.";
"ERROR_DESCRIPTION_REQUEST_TIMED_OUT" = "Solicitação de rede expirada.";
/* Error indicating that a socket response failed. */
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Resposta inválida do serviço.";
@ -865,7 +877,7 @@
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "A chave do recipiente não é válida.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_MESSAGE" = "Received message was out of sync.";
"ERROR_MESSAGE_INVALID_MESSAGE" = "Mensagem recebida não sincronizada.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Recebi uma mensagem não compatível com esta versão.";
@ -883,7 +895,7 @@
"ERROR_MESSAGE_UNKNOWN_ERROR" = "Erro desconhecido,";
/* No comment provided by engineer. */
"ERROR_MESSAGE_WRONG_TRUSTED_IDENTITY_KEY" = "Safety number changed.";
"ERROR_MESSAGE_WRONG_TRUSTED_IDENTITY_KEY" = "Mudança no número de segurança.";
/* Format string for 'unregistered user' error. Embeds {{the unregistered user's name or signal id}}. */
"ERROR_UNREGISTERED_USER_FORMAT" = "Usuário não registrado: %@";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informações do contato";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Saindo do grupo %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,14 +1014,14 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Conversas arquivadas";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Bloqueado";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Você bloqueou";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Buscar";
/* Format string when search returns no results. Embeds {{search term}} */
"HOME_VIEW_SEARCH_NO_RESULTS_FORMAT" = "No results found for '%@'";
"HOME_VIEW_SEARCH_NO_RESULTS_FORMAT" = "Nenhum resultado encontrado para '%@'";
/* Title for the home view's 'archive' mode. */
"HOME_VIEW_TITLE_ARCHIVE" = "Arquivo";
@ -1018,10 +1030,10 @@
"HOME_VIEW_TITLE_INBOX" = "Signal";
/* Call setup status label */
"IN_CALL_CONNECTING" = "Conectando...";
"IN_CALL_CONNECTING" = "conectando...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconectando...";
"IN_CALL_RECONNECTING" = "reconectando...";
/* Call setup status label */
"IN_CALL_RINGING" = "Chamando...";
@ -1048,7 +1060,7 @@
"INCOMING_DECLINED_CALL" = "Você recusou uma chamada";
/* No comment provided by engineer. */
"INCOMING_INCOMPLETE_CALL" = "Incoming call";
"INCOMING_INCOMPLETE_CALL" = "Recebendo chamada";
/* info message text shown in conversation view */
"INFO_MESSAGE_MISSED_CALL_DUE_TO_CHANGED_IDENITY" = "Chamada perdida porque o número de segurança dessa pessoa mudou.";
@ -1063,7 +1075,7 @@
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Habilitar acesso aos contatos";
/* Label for the cell that presents the 'invite contacts' workflow. */
"INVITE_FRIENDS_CONTACT_TABLE_BUTTON" = "Convide Amigos para o Signal.";
"INVITE_FRIENDS_CONTACT_TABLE_BUTTON" = "Convide amigos para o Signal";
/* Search */
"INVITE_FRIENDS_PICKER_SEARCHBAR_PLACEHOLDER" = "Buscar";
@ -1072,7 +1084,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Convide Amigos.";
/* Alert warning that sending an invite to multiple users will create a group message whose recipients will be able to see each other. */
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Inviting multiple users at the same time will send a group message whose recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Quando várias pessoas são convidadas ao mesmo tempo, elas recebem uma mensagem em grupo e podem se ver entre si.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "Mensagens expiram em %@.";
@ -1108,7 +1120,7 @@
"LINK_NEW_DEVICE_SUBTITLE" = "Digitalizar o código QR";
/* Navigation title when scanning QR code to add new device. */
"LINK_NEW_DEVICE_TITLE" = "Conectar Novo Dispositivo";
"LINK_NEW_DEVICE_TITLE" = "Vincular novo dispositivo";
/* Menu item and navbar title for the device manager */
"LINKED_DEVICES_TITLE" = "Dispositivos vinculados";
@ -1153,22 +1165,22 @@
"MESSAGE_ACTION_COPY_MEDIA" = "Copiar Mídia";
/* Action sheet button title */
"MESSAGE_ACTION_COPY_TEXT" = "Copy Message Text";
"MESSAGE_ACTION_COPY_TEXT" = "Copiar mensagem de texto";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete this Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Excluir mensagem";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will be deleted on this device only";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Ela será apagada apenas deste dispositivo";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "More Info";
"MESSAGE_ACTION_DETAILS" = "Detalhes";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to this Message";
"MESSAGE_ACTION_REPLY" = "Responder à mensagem";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Save Media";
"MESSAGE_ACTION_SAVE_MEDIA" = "Salvar";
/* Title for the 'message approval' dialog. */
"MESSAGE_APPROVAL_DIALOG_TITLE" = "Mensagem";
@ -1231,7 +1243,7 @@
"MESSAGE_STATUS_DELIVERED" = "Recebido";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED" = "Sending failed.";
"MESSAGE_STATUS_FAILED" = "O envio falhou.";
/* status message for failed messages */
"MESSAGE_STATUS_FAILED_SHORT" = "Falhou";
@ -1243,7 +1255,7 @@
"MESSAGE_STATUS_RECIPIENT_SKIPPED" = "Ignorada";
/* Label indicating that a message failed to send. */
"MESSAGE_STATUS_SEND_FAILED" = "Send Failed";
"MESSAGE_STATUS_SEND_FAILED" = "Falha no envio";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Enviando...";
@ -1266,8 +1278,11 @@
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Você bloqueou 1 membro deste grupo";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "Você bloqueou este grupo";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Você Bloqueou %@ Membros deste Grupo";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Você bloqueou %@ membros deste grupo";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Você Deseja Compartilhar o Seu Perfil com Esse Grupo?";
@ -1276,16 +1291,16 @@
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "Ao menos um membro deste grupo não está mais marcado como verificado. Toque para ver as opções.";
/* The subtitle for the messages view title indicates that the title can be tapped to access settings for this conversation. */
"MESSAGES_VIEW_TITLE_SUBTITLE" = "Toque aqui para configura";
"MESSAGES_VIEW_TITLE_SUBTITLE" = "Toque para ajustes";
/* Indicator that separates read from unread messages. */
"MESSAGES_VIEW_UNREAD_INDICATOR" = "New Messages";
"MESSAGES_VIEW_UNREAD_INDICATOR" = "Novas mensagens";
/* Messages that indicates that there are more unseen messages. */
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES" = "There are more unread messages.";
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES" = "Há mais mensagens não lidas.";
/* Messages that indicates that there are more unseen messages including safety number changes. */
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_AND_SAFETY_NUMBER_CHANGES" = "There are more unread messages (including safety number changes).";
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_AND_SAFETY_NUMBER_CHANGES" = "Há mais mensagens não lidas (inclusive sobre mudanças de número de segurança)";
/* notification title */
"MISSED_CALL" = "Chamada perdida";
@ -1314,10 +1329,10 @@
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Chamada perdida de %@";
/* alert title: cannot link - reached max linked devices */
"MULTIDEVICE_PAIRING_MAX_DESC" = "You cannot link any more devices.";
"MULTIDEVICE_PAIRING_MAX_DESC" = "Você não pode vincular mais dispositivos.";
/* alert body: cannot link - reached max linked devices */
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "You have reached the maximum of devices you can currently link with your account. Please remove a device or try again to link it later.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Você atingiu o número máximo de dispositivos que pode atualmente vincular à sua conta. Por favor, remova um dispositivo ou tente mais tarde.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Você não receberá notificações para conversas silenciadas.";
@ -1338,7 +1353,7 @@
"NETWORK_STATUS_CONNECTING" = "Conectando";
/* Error indicating that this device is no longer registered. */
"NETWORK_STATUS_DEREGISTERED" = "No Longer Registered";
"NETWORK_STATUS_DEREGISTERED" = "Descadastrado";
/* No comment provided by engineer. */
"NETWORK_STATUS_HEADER" = "Status da rede";
@ -1428,16 +1443,16 @@
"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ definiu a expiração da mensagem efêmera para %@.";
/* Label warning the user that the Signal service may be down. */
"OUTAGE_WARNING" = "Signal is experiencing technical difficulties. We are working hard to restore service as quickly as possible.";
"OUTAGE_WARNING" = "O Signal está com dificuldades técnicas. Estamos fazendo o possível para restaurar o serviço o quanto antes.";
/* No comment provided by engineer. */
"OUTGOING_CALL" = "Chamada efetuada";
/* No comment provided by engineer. */
"OUTGOING_INCOMPLETE_CALL" = "Outgoing call";
"OUTGOING_INCOMPLETE_CALL" = "Fazendo chamada";
/* info message recorded in conversation history when local user tries and fails to call another user. */
"OUTGOING_MISSED_CALL" = "Unanswered outgoing call";
"OUTGOING_MISSED_CALL" = "Chamada não atendida";
/* A display format for oversize text messages. */
"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@…";
@ -1566,7 +1581,7 @@
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Toque aqui para saber mais.";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Nome do Perfil";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Nome de perfil";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Salvar";
@ -1599,16 +1614,16 @@
"QUOTED_REPLY_AUTHOR_INDICATOR_YOU" = "Em resposta a você";
/* message header label when quoting yourself */
"QUOTED_REPLY_AUTHOR_INDICATOR_YOURSELF" = "Replying to Yourself";
"QUOTED_REPLY_AUTHOR_INDICATOR_YOURSELF" = "Em resposta a você";
/* Footer label that appears below quoted messages when the quoted content was note derived locally. When the local user doesn't have a copy of the message being quoted, e.g. if it had since been deleted, we instead show the content specified by the sender. */
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Mensagem original não encontrada.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Mensagem original indisponível.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Mensagem original não encontrada.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Anexo";
@ -1629,10 +1644,10 @@
"REGISTER_2FA_FORGOT_PIN" = "Esqueci meu PIN.";
/* Alert message explaining what happens if you forget your 'two-factor auth pin'. */
"REGISTER_2FA_FORGOT_PIN_ALERT_MESSAGE" = "Este número de telefone poderá ser cadastrado sem o PIN de Bloqueio de Cadastro após 7 dias de inatividade no Signal.";
"REGISTER_2FA_FORGOT_PIN_ALERT_MESSAGE" = "Este número de telefone poderá ser cadastrado sem o PIN de Desbloqueio de Cadastro após 7 dias de inatividade no Signal.";
/* Instructions to enter the 'two-factor auth pin' in the 2FA registration view. */
"REGISTER_2FA_INSTRUCTIONS" = "This phone number has Registration Lock enabled. Please enter the Registration Lock PIN.\n\nYour Registration Lock PIN is separate from the automated verification code that was sent to your phone during the last step.";
"REGISTER_2FA_INSTRUCTIONS" = "Este número de telefone está com o Bloqueio de Cadastro ativo. Por favor, insira o PIN de Desbloqueio de Cadastro.\n\nSeu PIN de Desbloqueio de Cadastro é um número à parte do código de verificação automático enviado para você na etapa anterior.";
/* Title for alert indicating that attempt to register with 'two-factor auth' failed. */
"REGISTER_2FA_REGISTRATION_FAILED_ALERT_TITLE" = "Falha no registro";
@ -1656,7 +1671,7 @@
"REGISTRATION_DEFAULT_COUNTRY_NAME" = "Código Do País";
/* Navigation title shown when user is re-registering after having enabled registration lock */
"REGISTRATION_ENTER_LOCK_PIN_NAV_TITLE" = "Registration Lock";
"REGISTRATION_ENTER_LOCK_PIN_NAV_TITLE" = "Bloqueio de Cadastro";
/* Placeholder text for the phone number textfield */
"REGISTRATION_ENTERNUMBER_DEFAULT_TEXT" = "Inserir Número";
@ -1668,13 +1683,13 @@
"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Não podemos ativar sua conta até que você verifique o código que enviamos.";
/* alert body when registering an iPad */
"REGISTRATION_IPAD_CONFIRM_BODY" = "Registering now will disable Signal on any other device currently registered with this phone number.";
"REGISTRATION_IPAD_CONFIRM_BODY" = "O Signal será agora desativado em outros dispositivos cadastrados atualmente com este número de telefone.";
/* button text to proceed with registration when on an iPad */
"REGISTRATION_IPAD_CONFIRM_BUTTON" = "Registre esse iPad";
/* alert title when registering an iPad */
"REGISTRATION_IPAD_CONFIRM_TITLE" = "Already have a Signal account?";
"REGISTRATION_IPAD_CONFIRM_TITLE" = "Já tem uma conta no Signal?";
/* one line label below submit button on registration screen, which links to an external webpage. */
"REGISTRATION_LEGAL_TERMS_LINK" = "Termos e Política de Privacidade";
@ -1704,10 +1719,10 @@
"REGISTRATION_VERIFICATION_FAILED_WRONG_CODE_DESCRIPTION" = "Os números que você submeteu não batem com os que enviamos. Quer conferir?";
/* Error message indicating that registration failed due to a missing or incorrect 2FA PIN. */
"REGISTRATION_VERIFICATION_FAILED_WRONG_PIN" = "Incorrect Registration Lock PIN.";
"REGISTRATION_VERIFICATION_FAILED_WRONG_PIN" = "PIN de Desbloqueio de Cadastro incorreto.";
/* No comment provided by engineer. */
"REGISTRATION_VERIFY_DEVICE" = "Register";
"REGISTRATION_VERIFY_DEVICE" = "Cadastro";
/* Message of alert indicating that users needs to enter a valid phone number to register. */
"REGISTRATION_VIEW_INVALID_PHONE_NUMBER_ALERT_MESSAGE" = "Por favor, forneça um número de telefone válido para registrar.";
@ -1728,16 +1743,16 @@
"RELAY_REGISTERED_ERROR_RECOVERY" = "O número de telefone que você está tentanto registrar já foi registrado em um outro servidor. Por favor, anule o outro registro e tente de novo. ";
/* Body text for when user is periodically prompted to enter their registration lock PIN */
"REMINDER_2FA_BODY" = "Registration Lock is enabled for your phone number. To help you memorize your Registration Lock PIN, Signal will periodically ask you to confirm it.";
"REMINDER_2FA_BODY" = "O Bloqueio de Cadastro está ativo para seu número de telefone. Para ajudar você a memorizar seu PIN de Desbloqueio de Cadastro, o Signal pedirá que o confirme periodicamente.";
/* Body header for when user is periodically prompted to enter their registration lock PIN */
"REMINDER_2FA_BODY_HEADER" = "Lembrete:";
/* Alert message explaining what happens if you forget your 'two-factor auth pin' */
"REMINDER_2FA_FORGOT_PIN_ALERT_MESSAGE" = "Registration Lock helps protect your phone number from unauthorized registration attempts. This feature can be disabled at any time in your Signal privacy settings.";
"REMINDER_2FA_FORGOT_PIN_ALERT_MESSAGE" = "O Bloqueio de Cadastro ajuda a proteger seu número de telefone de tentativas de cadastro não autorizadas. Esse recurso pode ser desativado a qualquer instante nas configurações de privacidade do Signal.";
/* Navbar title for when user is periodically prompted to enter their registration lock PIN */
"REMINDER_2FA_NAV_TITLE" = "Enter Your Registration Lock PIN";
"REMINDER_2FA_NAV_TITLE" = "Insira seu PIN de Desbloqueio de Cadastro";
/* Alert body after wrong guess for 'two-factor auth pin' reminder activity */
"REMINDER_2FA_WRONG_PIN_ALERT_BODY" = "Você pode criar um novo PIN nas suas configurações de privacidade.";
@ -1770,19 +1785,19 @@
"SCAN_CODE_INSTRUCTIONS" = "Escaneie o Código QR no dispositivo do seu contato.";
/* Title for the 'scan QR code' view. */
"SCAN_QR_CODE_VIEW_TITLE" = "Scanear o Código QR";
"SCAN_QR_CODE_VIEW_TITLE" = "Escanear código QR";
/* Indicates a delay of zero seconds, and that 'screen lock activity' will timeout immediately. */
"SCREEN_LOCK_ACTIVITY_TIMEOUT_NONE" = "Instante";
/* Indicates that an unknown error occurred while using Touch ID/Face ID/Phone Passcode. */
"SCREEN_LOCK_ENABLE_UNKNOWN_ERROR" = "Authentication could not be accessed.";
"SCREEN_LOCK_ENABLE_UNKNOWN_ERROR" = "Não foi possível acessar a autenticação.";
/* Indicates that Touch ID/Face ID/Phone Passcode authentication failed. */
"SCREEN_LOCK_ERROR_LOCAL_AUTHENTICATION_FAILED" = "Falha na autenticação.";
/* Indicates that Touch ID/Face ID/Phone Passcode is 'locked out' on this device due to authentication failures. */
"SCREEN_LOCK_ERROR_LOCAL_AUTHENTICATION_LOCKOUT" = "Too many failed authentication attempts. Please try again later.";
"SCREEN_LOCK_ERROR_LOCAL_AUTHENTICATION_LOCKOUT" = "Você excedeu o número máximo permitido de tentativas de autenticação. Por favor, tente novamente mais tarde.";
/* Indicates that Touch ID/Face ID/Phone Passcode are not available on this device. */
"SCREEN_LOCK_ERROR_LOCAL_AUTHENTICATION_NOT_AVAILABLE" = "You must enable a passcode in your iOS Settings in order to use Screen Lock.";
@ -1794,7 +1809,7 @@
"SCREEN_LOCK_ERROR_LOCAL_AUTHENTICATION_PASSCODE_NOT_SET" = "You must enable a passcode in your iOS Settings in order to use Screen Lock.";
/* Description of how and why Signal iOS uses Touch ID/Face ID/Phone Passcode to unlock 'screen lock'. */
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Authenticate to open Signal.";
"SCREEN_LOCK_REASON_UNLOCK_SCREEN_LOCK" = "Autentique-se para abrir o Signal.";
/* Title for alert indicating that screen lock could not be unlocked. */
"SCREEN_LOCK_UNLOCK_FAILED" = "Falha na Autenticação";
@ -1875,13 +1890,13 @@
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_NO_CONNECTION" = "A driblagem de censura pode ser ativada somente durante uma conexão à Internet.";
/* Table footer for the 'censorship circumvention' section shown when the app is connected to the Signal service. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_WEBSOCKET_CONNECTED" = "A driblagem de censura não é necessária. Você já está conectada/o ao serviço Signal.";
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_WEBSOCKET_CONNECTED" = "A driblagem de censura não é necessária. Você já se conectou ao serviço Signal.";
/* Table header for the 'censorship circumvention' section. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_HEADER" = "Driblagem de Censura";
/* Label for setting that enables dark theme. */
"SETTINGS_ADVANCED_DARK_THEME" = "Dark Theme";
"SETTINGS_ADVANCED_DARK_THEME" = "Tema Escuro";
/* No comment provided by engineer. */
"SETTINGS_ADVANCED_DEBUGLOG" = "Habilitar log de depuração";
@ -1929,16 +1944,16 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Cópia de segurança bem-sucedida";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Adicionar...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Você não possui contatos no Signal";
/* A label that indicates the user's search has no matching results. */
"SETTINGS_BLOCK_LIST_NO_SEARCH_RESULTS" = "Nenhum Resultado de Pesquisa";
"SETTINGS_BLOCK_LIST_NO_SEARCH_RESULTS" = "Nenhum resultado encontrado";
/* Label for the block list section of the settings view */
"SETTINGS_BLOCK_LIST_TITLE" = "Bloqueado";
"SETTINGS_BLOCK_LIST_TITLE" = "Lista de bloqueio";
/* Table cell label */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Sempre redirecionar chamadas";
@ -1947,7 +1962,7 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Redirecionar todas as chamadas através do servidor do Signal para impedir de revelar seu endereço IP ao seu contato. Habilitar esta opção irá reduzir a qualidade da chamada.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Apagar seu histórico de conversas";
"SETTINGS_CLEAR_HISTORY" = "Limpar histórico de conversas";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Open Whisper Systems \n Licenciado sob a GPLv3";
@ -1956,7 +1971,7 @@
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Excluir conta";
/* Label for 'delete data' button. */
"SETTINGS_DELETE_DATA_BUTTON" = "Delete All Data";
"SETTINGS_DELETE_DATA_BUTTON" = "Apagar todos os dados";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Tem certeza que deseja apagar todo seu histórico (mensagens, anexos, histórico de chamada …)? Esta ação não pode ser revertida.";
@ -1968,16 +1983,16 @@
"SETTINGS_HELP_HEADER" = "Ajuda";
/* Section header */
"SETTINGS_HISTORYLOG_TITLE" = "Clear Conversation History";
"SETTINGS_HISTORYLOG_TITLE" = "Limpar histórico de conversas";
/* No comment provided by engineer. */
"SETTINGS_INFORMATION_HEADER" = "Informação";
/* Settings table view cell label */
"SETTINGS_INVITE_TITLE" = "Convide Seus Amigos";
"SETTINGS_INVITE_TITLE" = "Convide seus amigos";
/* content of tweet when inviting via twitter - please do not translate URL */
"SETTINGS_INVITE_TWITTER_TEXT" = "You can reach me using @signalapp. Get it now: https://signal.org/download/";
"SETTINGS_INVITE_TWITTER_TEXT" = "Você pode falar comigo pelo @signalapp. Baixe agora: https://signal.org/download/.";
/* Label for settings view that allows user to change the notification sound. */
"SETTINGS_ITEM_NOTIFICATION_SOUND" = "Som de mensagem";
@ -1989,7 +2004,7 @@
"SETTINGS_NAV_BAR_TITLE" = "Configurações";
/* table section footer */
"SETTINGS_NOTIFICATION_CONTENT_DESCRIPTION" = "Call and Message notifications can appear while your phone is locked. You may wish to limit what is shown in these notifications.";
"SETTINGS_NOTIFICATION_CONTENT_DESCRIPTION" = "Notificações de chamadas ou mensagens aparecem enquanto o telefone está bloqueado. Você pode limitar o conteúdo mostrado.";
/* table section header */
"SETTINGS_NOTIFICATION_CONTENT_TITLE" = "Conteúdo de Notificação";
@ -2019,13 +2034,13 @@
"SETTINGS_READ_RECEIPTS_SECTION_FOOTER" = "Consultar e compartilhar quando as mensagens tiverem sido lidas. Essa configuração é opcional e válida para todas as conversas.";
/* Label for re-registration button. */
"SETTINGS_REREGISTER_BUTTON" = "Re-register";
"SETTINGS_REREGISTER_BUTTON" = "Recadastrar-se";
/* 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" = "Espera para Bloqueio de Tela";
/* Footer for the 'screen lock' section of the privacy settings. */
"SETTINGS_SCREEN_LOCK_SECTION_FOOTER" = "Unlock Signal's screen using Touch ID, Face ID, or your iOS device passcode. You can still answer incoming calls and receive message notifications while Screen Lock is enabled. Signal's notification settings allow you to customize the information that is displayed.";
"SETTINGS_SCREEN_LOCK_SECTION_FOOTER" = "Desbloqueie a tela do Signal usando Touch ID, Face ID ou a senha do seu dispositivo iOS. Você ainda poderá receber chamadas e notificações de mensagem com o Bloqueio de Tela ativo. Os ajustes de notificação do Signal permitem que você personalize a informação que será exibida.";
/* Title for the 'screen lock' section of the privacy settings. */
"SETTINGS_SCREEN_LOCK_SECTION_TITLE" = "Bloqueio de Tela";
@ -2082,7 +2097,7 @@
"SHARE_ACTION_TWEET" = "Twitter";
/* alert body when sharing file failed because of untrusted/changed identity keys */
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Your safety number with %@ has recently changed. You may wish to verify it in the main app before resending.";
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Seu número de segurança com %@ mudou recentemente. Verifique-o no aplicativo principal antes de reenviar.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Carregando...";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "A restaurar Ficheiros";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Utilizadores bloqueados não lhe poderão telefonar ou enviar mensagens.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bloquear";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Bloquear %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Desbloquear";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Desbloquear %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloquear";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Falha a bloquear utilizador.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Erro";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ foi bloqueado";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Utilizador bloqueado";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Não se pode bloquear a si mesmo.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Erro";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Falha a desbloquear utilizador.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Erro";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ foi desbloqueado.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Utilizador Desbloqueado";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloquear";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloquear %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continuar";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Adicionar a um Contacto Existente";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear este utilizador";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Info. Contacto";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informação do Contacto";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "A sair do grupo %@ ";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Conversas Arquivadas";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Utilizadores Bloqueados";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Procurar";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@: contacto deixou de estar marcado como verificado. Toque aqui para ver opções. ";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Bloqueou 1 Membro deste Grupo";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = " Bloqueou %@ Membros deste Grupo ";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Deseja partilhar o seu perfil com este Grupo?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Efectuado com Sucesso";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Adicionar";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Não possui contactos no Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Se restaurează fișierele";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Utilizatorii blocați nu vor putea să te sune sau să-ți trimită mesaje.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blochează";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Blochez pe %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Deblochează";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Deblochez pe %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blochează";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Blocarea utilizatorului a eșuat.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Eroare";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ a fost blocat";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Utilizator blocat";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Nu te poți bloca pe tine.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Eroare";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Deblocarea utilizatorului a eșuat.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Eroare";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ a fost deblocat.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Utilizator deblocat";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blochează";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blochez pe %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continuă";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Adaugă la contactul existent";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blochează acest utilizator";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informații contact";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informații contact";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Se părăsește grupul %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Conversații arhivate";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocat";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Caută";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ nu mai este marcat ca fiind verificat. Apasă pentru opțiuni.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Ai blocat 1 membru al acestui grup";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Ai blocat %@ membrii din acest grup";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Partajez profilul tău cu acest grup?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Copia de rezervă a fost realizată cu succes.";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Adaugă...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Nu ai nici un contact pe Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Восстановление файлов";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Заблокированные пользователи не смогут звонить или отправлять сообщения Вам.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Заблокировать";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Заблокировать %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Разблокировать";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Разблокировать %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Заблокировать";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Не удалось заблокировать пользователя";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Ошибка";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ был заблокирован";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Пользователь заблокирован";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Вы не можете заблокировать самого себя.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Ошибка";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Не удалось разблокировать пользователя.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Ошибка";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ был разблокирован.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Пользователь разблокирован";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Блокировка";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Заблокировать %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Продолжить";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Добавить в существующий контакт";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Заблокировать";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Информация о контакте";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Информация о контакте";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Покидаем группу «%@»";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Архивированные разговоры";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Заблокированные";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Поиск";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ больше не отмечен как проверенный. Нажмите для опций.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Вы заблокировали 1 участника в этой группе";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Вы заблокировали %@ участников этой группы";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Поделиться своим профилем с этой группой?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Резервное копирование выполнено";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Добавить";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "К сожалению, у Вас нет ни одного контакта, пользующегося Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Obnova datotek";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blokirani uporabniki vas ne bodo mogli klicati, oziroma vam pošiljati sporočil.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blokiraj";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Blokiram osebo %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Odblokiraj";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Odblokiram osebo %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blokiraj";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Blokiranje uporabnika ni bilo uspešno.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Napaka";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "Uporabnik %@ je bil blokiran.";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Uporabnik je blokiran";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Sebe ne morete blokirati.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Napaka";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Deblokiiranje uporabnika ni bilo uspešno.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Napaka";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "Oseba %@ je bila odblokirana";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Uporabnik je deblokiran";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blokiraj";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blokiram uporabnika %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Nadaljuj";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Dodaj k obstoječim stikom";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blokiraj tega uporabnika";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informacije o stiku";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Informacije o stiku";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Zapuščam skupino %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Arhivirani pogovori";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blokirano";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Iskanje";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "Uporabnik %@ ni več označen kot potrjen. Tapnite za več možnosti.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Blokirali ste 1 člana te skupine";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Število blokiranih članov skupine: %@";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Želite deliti svoj profil s to skupino?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Izdelava varnostne kopije je uspela";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Dodaj...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Nimate stikov, ki uporabljajo aplikacijo Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Mafaira ari kudzoreredzwa.";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Vashandisi vakavharirwa havakwanise kukuchaira kana kukutumira mashoko.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Vharisa";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Vharira %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Vhurisa";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Vhurira %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Vharira";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Yatadza kuvharira mushandisi.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Pakanganiswa";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ avharirwa";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Mushandisi akavharirwa";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Haukwanise kuzvivharisa.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Pakanganiswa";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Yatadza kuvharisa mushandisi.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Pakanganiswa";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ avhariswa.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Mushandisi avhurirwa";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Vharira";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Vharira %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Enderera";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Wedzera pakontakt yagara iripo";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Vharira mushandisi uyu";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Ruzivo rwezve Kontakt";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Maererano nekontakt";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Kubuda muboka %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Nhaurwa dziri mudura";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Yakavharwa";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Tsvaga";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ haasisina kutarwa seaka ongororwa.Bata kuti uone zvaungaite.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Wavharira nhengo 1 yeBoka rino";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Wavharira nhengo %@ nhengo dzeBoka rino";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Gova profile yako neBoka rino?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Isa";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Hauna makontakt paSignal";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Restoring Files";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Block";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Gabim";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blloko";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blloko %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Add to Existing Contact";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Infot e Kontaktit";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Duke dal nga grupi %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Bllokuar";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Backup Successful";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Asnjë nga kontaktet tuaj ka Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Po rikthehen Kartela";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Përdoruesit e bllokuar s\do të jenë në gjendje t\ju bëjnë thirrje apo t\ju dërgojnë mesazhe.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Bllokoje";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Të bllokohet %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Zhbllokoje";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Të zhbllokohet %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bllokoje";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Dështoi Bllokimi i Përdoruesit.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Gabim";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ u bllokua";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Përdoruesi u Bllokua";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "S\mund të bllokoni veten.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Gabim";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Dështoi Zhbllokimi i Përdoruesit.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Gabim";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ u zhbllokua.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Përdoruesi u Zhbllokua";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bllokoje";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Të bllokohet %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Vazhdo";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Shtoje te Kontaktet Ekzistuese";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bllokoje këtë përdorues";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Të dhëna kontakti";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Të dhëna Kontakti";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Po braktiset grupi %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Biseda të Arkivuara";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "I bllokuar";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Kërko";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ s\është më i shënuar si i verifikuar. Prekeni për mundësi.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Keni Bllokuar 1 Anëtar të këtij Grupi";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Keni Bllokuar %@ Anëtarë të këtij Grupi";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Të ndahet Me Këtë Grup Profili Juaj?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Kopjeruajtje e Suksesshme";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Shtoni…";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "S\keni kontakte në Signal.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Återställer filer";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Blockerade användare kommer inte kunna ringa eller skicka meddelanden till dig.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Blockera";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Blockera %@?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Avblockera";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Avblockera %@?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Blockera";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Kunde inte blockera användaren.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Fel";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ har blivit blockerad";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Användaren blockerad";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Du kan inte blockera dig själv.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Fel";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Kunde inte avblockera användare.";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Fel";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ har blivit avblockerad.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Användare avblockerad";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Blockera";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blockera %@?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Fortsätt";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Lägg till i existerande kontakt";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Blockera denna användare";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinfo";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Kontaktinfo";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "Lämnar gruppen %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Arkiverade konversationer";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blockerad";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Sök";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ är inte markerad som verifierad längre. Tryck för alternativ.";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Du blockerade 1 medlem i denna grupp";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Du blockerade %@ medlemmar ur den här gruppen";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Dela din profil med den här gruppen?";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Säkerhetskopiering lyckades";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Lägg till...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Du har inga kontakter med Signal.";

View File

@ -5,17 +5,17 @@
"ACCEPT_NEW_IDENTITY_ACTION" = "ยอมรับรหัสความปลอดภัยใหม่";
/* Label for 'audio call' button in contact view. */
"ACTION_AUDIO_CALL" = "Signal Call";
"ACTION_AUDIO_CALL" = "สายโทร Signal";
/* Label for 'invite' button in contact view. */
"ACTION_INVITE" = "Invite to Signal";
/* Label for 'send message' button in contact view.
Label for button that lets you send a message to a contact. */
"ACTION_SEND_MESSAGE" = "Send Message";
"ACTION_SEND_MESSAGE" = "ส่งข้อความ";
/* Label for 'share contact' button. */
"ACTION_SHARE_CONTACT" = "Share Contact";
"ACTION_SHARE_CONTACT" = "แบ่งปันรายชื่อ";
/* Label for 'video call' button in contact view. */
"ACTION_VIDEO_CALL" = "Video Call";
@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "กำลังคืนค่าไฟล์";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "ผู้ใช้ที่ถูกบล็อกจะไม่สามารถโทรหาหรือส่งข้อความถึงคุณได้";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "บล็อก";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "บล็อก %@ หรือไม่";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "เลิกบล็อก";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "เลิกบล็อก %@ หรือไม่";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "บล็อก";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "การบล็อกผู้ใช้ไม่สำเร็จ";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "ข้อผิดพลาด";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ ถูกบล็อกแล้ว";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "ผู้ใช้ถูกบล็อก";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "คุณไม่สามารถบล็อกตัวเอง";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "ข้อผิดพลาด";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "ยกเลิกการบล็อกผู้ใช้ไม่สำเร็จ";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "ข้อผิดพลาด";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "เลิกบล็อก %@ แล้ว";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "ยกเลิกการบล็อกผู้ใช้แล้ว";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "บล็อก";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "บล็อก %@ หรือไม่";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Continue";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "เพิ่มไปยังผู้ติดต่อที่มีอยู่";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "บล็อกผู้ใช้นี้";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "ข้อมูลผู้ติดต่อ";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "ข้อมูลผู้ติดต่อ";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "กำลังออกจากกลุ่ม %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Archived Conversations";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "บล็อกแล้ว";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Search";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ไม่มีเครื่องหมายว่าตรวจยืนยันแล้วอีกต่อไป แตะเพื่อดูตัวเลือก ";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "คุณได้บล็อกสมาชิกของกลุ่มนี้ 1 คน";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "คุณได้บล็อกสมาชิกของกลุ่มนี้ %@ คน";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "แบ่งปันโปรไฟล์ของคุณให้กับกลุ่มนี้หรือไม่";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "สำรองข้อมูลได้สำเร็จ";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "เพิ่ม…";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "คุณไม่มีผู้ติดต่อบน Signal";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "Dosyalar Eski Haline Getiriliyor";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Engellenen kullanıcılar sizi arayamaz veya size mesaj gönderemez.";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Engelle";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "%@ engellensin mi?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "Engeli kaldır";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "%@ kullanıcısının engeli kaldırılsın mı?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Engelle";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Kullanıcı Engellenirken Hata Oluştu.";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Hata";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ engellendi";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Kullanıcı Engellendi";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Kendinizi engelleyemezsiniz.";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Hata";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Kullanıcı Engeli Kaldırılamadı";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Hata";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ kullanıcısının engeli kaldırıldı.";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Kullanıcının Engeli Kaldırıldı";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Engelle";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "%@ engellensin mi?";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "Devam et";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Varolan Kişiye Ekle";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bu kullanıcıyı engelle";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kişi Bilgisi";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Kişi Bilgileri";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "%@ grubundan ayrılıyorsunuz";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "Arşivlenmiş Sohbetler";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Engelli";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "Ara";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ artık doğrulanmış olarak işaretlenmiyor. Seçenekler için dokunun. ";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Bu Grubun 1 Üyesini Engellediniz";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Bu Grubun %@ Üyesini Engellediniz";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Profiliniz Bu Grupla Paylaşılsın Mı?";
@ -1602,13 +1617,13 @@
"QUOTED_REPLY_AUTHOR_INDICATOR_YOURSELF" = "Kendinize Cevaben";
/* Footer label that appears below quoted messages when the quoted content was note derived locally. When the local user doesn't have a copy of the message being quoted, e.g. if it had since been deleted, we instead show the content specified by the sender. */
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Orijinal mesaj bulunamadı.";
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "Mesajın aslı bulunamadı.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Mesajın aslı artık mevcut değil.";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Mesajın aslı bulunamadı.";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Ek";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "Yedekleme Başarılı Oldu";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Ekle...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Signal'de kişiniz yok.";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "正在恢复文件";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "黑名单中的用户将不能呼叫您或给你发送消息。";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "您将不会收到此群组的消息或更新。";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "加入黑名单";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "屏蔽并退出“%@”群组?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "把 %@ 加入黑名单?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "屏蔽 %@";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "已屏蔽的群组";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "已屏蔽的用户";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "从黑名单中移除";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "现有成员可再次将您加入群组。";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "从黑名单中移除 %@ 吗?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "加入黑名单";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "无法加入黑名单。";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "错误";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ 已经在黑名单里了。";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "用户加入黑名单了";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "群组已屏蔽";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "不能将自己加入黑名单";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "错误";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "无法从黑名单中移除。";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "错误";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ 不在黑名单中。";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "用户从黑名单中移除了";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "加入黑名单";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "将 %@ 加入黑名单";
/* An explanation of the consequences of blocking another user. */
"BLOCK_USER_BEHAVIOR_EXPLANATION" = "被屏蔽的用户将无法向您发起通话,或发送消息。";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "继续";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "添加已有的联系人";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "将用户加入黑名单";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "屏蔽此群组";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "屏蔽该用户";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "联系人信息";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "联系人信息";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "离开组群 %@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "已归档对话";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "已加入黑名单";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "已屏蔽";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "搜索";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@不再标记为已验证。点击打开选项。";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "群组中的 1 个成员在您的黑名单中";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "您已屏蔽此群组的一名成员";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "您已屏蔽此群组";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "群组中%@个成员已在您的黑名单中";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "您已屏蔽此群组的%@名成员";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "是否与该群组共享您的资料?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "未找到原始消息。";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "原始消息已失效。";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "未找到原始消息。";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "附件";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "备份成功";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "添加...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "添加屏蔽用户";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "您没有任何 Signal 联系人。";

View File

@ -224,53 +224,59 @@
/* Indicates that the backup import data is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_FILES" = "回復檔案";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "被封鎖的使用者將無法打電話或傳訊息給你。";
/* An explanation of the consequences of blocking a group. */
"BLOCK_GROUP_BEHAVIOR_EXPLANATION" = "You will no longer receive messages or updates from this group.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "封鎖";
/* A format for the 'block group' action sheet title. Embeds the {{group name}}. */
"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT" = "Block and Leave the \"%@\" Group?";
/* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "要封鎖%@嗎?";
"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT" = "Block %@?";
/* Section header for groups that have been blocked */
"BLOCK_LIST_BLOCKED_GROUPS_SECTION" = "Blocked Groups";
/* Section header for users that have been blocked */
"BLOCK_LIST_BLOCKED_USERS_SECTION" = "Blocked Users";
/* Button label for the 'unblock' button */
"BLOCK_LIST_UNBLOCK_BUTTON" = "解除封鎖";
/* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */
/* Action sheet body when confirming you want to unblock a group */
"BLOCK_LIST_UNBLOCK_GROUP_BODY" = "Existing members will be able to add you to the group again.";
/* Action sheet title when confirming you want to unblock a group. */
"BLOCK_LIST_UNBLOCK_GROUP_TITLE" = "Unblock This Group?";
/* A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}. */
"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "要解除封鎖 %@嗎?";
/* A label for the block button in the block list view */
"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "封鎖";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "無法封鎖此使用者。";
/* The title of the 'block user failed' alert. */
"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "錯誤";
/* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ 已經被封鎖";
/* The message format of the 'conversation blocked' alert. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked.";
/* The title of the 'user blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "使用者已被封鎖";
/* The title of the 'group blocked' alert. */
"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE" = "Group Blocked";
/* The message of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "你不能封鎖自己。";
/* The title of the 'You can't block yourself' alert. */
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "錯誤";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "無法解除封鎖該使用者。";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ has been unblocked.";
/* The title of the 'unblock user failed' alert. */
"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "錯誤";
/* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ 已經被解除封鎖。";
/* The title of the 'user unblocked' alert. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "使用者已解除封鎖";
/* Alert body after unblocking a group. */
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Existing members can now add you to the group again.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "封鎖";
@ -278,6 +284,9 @@
/* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "封鎖 %@";
/* 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.";
/* Label for 'continue' button. */
"BUTTON_CONTINUE" = "繼續";
@ -513,7 +522,10 @@
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "加入現有的聯絡人";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "封鎖這個使用者";
"CONVERSATION_SETTINGS_BLOCK_THIS_GROUP" = "Block This Group";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block This User";
/* Navbar title when viewing settings for a 1-on-1 thread */
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "使用者資訊";
@ -769,10 +781,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "開始你的第一個Signal 對話!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "沒有!就是沒有啊";
"EMPTY_INBOX_TEXT" = "沒有任何訊息";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "超級無敵乾淨。";
"EMPTY_INBOX_TITLE" = "所有訊息已清除。";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "確認你的 PIN 碼。";
@ -984,7 +996,7 @@
/* Button label for the 'show contact info' button */
"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "聯絡人資訊";
/* No comment provided by engineer. */
/* Modal text when removing a group */
"GROUP_REMOVING" = "離開群組%@";
/* Title of alert indicating that group deletion failed. */
@ -1002,8 +1014,8 @@
/* Label for 'archived conversations' button. */
"HOME_VIEW_ARCHIVED_CONVERSATIONS" = "封存對話";
/* A label for conversations with blocked users. */
"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "已封鎖";
/* Table cell subtitle label for a conversation the user has blocked. */
"HOME_VIEW_BLOCKED_CONVERSATION" = "Blocked";
/* Placeholder text for search bar which filters conversations. */
"HOME_VIEW_CONVERSATION_SEARCHBAR_PLACEHOLDER" = "搜尋";
@ -1264,10 +1276,13 @@
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@已不再標記為已驗證。點擊開啟選項。";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "你封鎖了此群組的 1 位成員。";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of This Group";
/* Indicates that this group conversation has been blocked. */
"MESSAGES_VIEW_GROUP_BLOCKED" = "You Blocked This Group";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "你封鎖了此群組 %@ 位成員";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of This Group";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "同意共享個人資訊給該此群組嗎?";
@ -1605,10 +1620,10 @@
"QUOTED_REPLY_CONTENT_FROM_REMOTE_SOURCE" = "找不到原始訊息。";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message was since deleted. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "Original message no longer available.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_DELETED" = "原始訊息已不存在。";
/* Toast alert text shown when tapping on a quoted message which we cannot scroll to because the local copy of the message didn't exist when the quote was received. */
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "Original message not found.";
"QUOTED_REPLY_ORIGINAL_MESSAGE_REMOTELY_SOURCED" = "找不到原始訊息。";
/* Indicates this message is a quoted reply to an attachment of unknown type. */
"QUOTED_REPLY_TYPE_ATTACHMENT" = "附件";
@ -1929,7 +1944,7 @@
"SETTINGS_BACKUP_STATUS_SUCCEEDED" = "備份成功";
/* A label for the 'add phone number' button in the block list table. */
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "新增...";
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add Blocked User";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "你沒有使用Signal的連絡人。";

View File

@ -17,7 +17,6 @@
#import <SignalMessaging/UIView+OWS.h>
#import <SignalServiceKit/AppContext.h>
#import <SignalServiceKit/ContactsUpdater.h>
#import <SignalServiceKit/OWSBlockingManager.h>
#import <SignalServiceKit/PhoneNumberUtil.h>
#import <SignalServiceKit/SignalAccount.h>
#import <SignalServiceKit/TSAccountManager.h>

View File

@ -197,12 +197,10 @@ NS_ASSUME_NONNULL_BEGIN
// instead of HomeViewCell to present contacts and threads.
ContactTableViewCell *cell = [ContactTableViewCell new];
if ([thread isKindOfClass:[TSContactThread class]]) {
BOOL isBlocked = [helper isRecipientIdBlocked:thread.contactIdentifier];
if (isBlocked) {
cell.accessoryMessage = NSLocalizedString(
@"CONTACT_CELL_IS_BLOCKED", @"An indicator that a contact has been blocked.");
}
BOOL isBlocked = [helper isThreadBlocked:thread];
if (isBlocked) {
cell.accessoryMessage = NSLocalizedString(
@"CONTACT_CELL_IS_BLOCKED", @"An indicator that a contact has been blocked.");
}
[cell configureWithThread:thread contactsManager:helper.contactsManager];
@ -238,21 +236,19 @@ NS_ASSUME_NONNULL_BEGIN
return;
}
if ([thread isKindOfClass:[TSContactThread class]]) {
BOOL isBlocked = [helper isRecipientIdBlocked:thread.contactIdentifier];
if (isBlocked && ![strongSelf.selectThreadViewDelegate canSelectBlockedContact]) {
[BlockListUIUtils showUnblockPhoneNumberActionSheet:thread.contactIdentifier
fromViewController:strongSelf
blockingManager:helper.blockingManager
contactsManager:helper.contactsManager
completionBlock:^(BOOL isStillBlocked) {
if (!isStillBlocked) {
[strongSelf.selectThreadViewDelegate
threadWasSelected:thread];
}
}];
return;
}
BOOL isBlocked = [helper isThreadBlocked:thread];
if (isBlocked && ![strongSelf.selectThreadViewDelegate canSelectBlockedContact]) {
[BlockListUIUtils
showUnblockThreadActionSheet:thread
fromViewController:strongSelf
blockingManager:helper.blockingManager
contactsManager:helper.contactsManager
completionBlock:^(BOOL isStillBlocked) {
if (!isStillBlocked) {
[strongSelf.selectThreadViewDelegate threadWasSelected:thread];
}
}];
return;
}
[strongSelf.selectThreadViewDelegate threadWasSelected:thread];

View File

@ -7,6 +7,7 @@ NS_ASSUME_NONNULL_BEGIN
@class Contact;
@class ContactsViewHelper;
@class SignalAccount;
@class TSThread;
@protocol CNContactViewControllerDelegate;
@ -45,8 +46,6 @@ NS_ASSUME_NONNULL_BEGIN
// Useful to differentiate between having no signal accounts vs. haven't checked yet
@property (nonatomic, readonly) BOOL hasUpdatedContactsAtLeastOnce;
@property (nonatomic, readonly) NSArray<NSString *> *blockedPhoneNumbers;
// Suitable when the user tries to perform an action which is not possible due to the user having
// previously denied contact access.
- (void)presentMissingContactAccessAlertControllerFromViewController:(UIViewController *)viewController;
@ -62,6 +61,10 @@ NS_ASSUME_NONNULL_BEGIN
// is only safe to be called on the main thread.
- (BOOL)isRecipientIdBlocked:(NSString *)recipientId;
// This method is faster than OWSBlockingManager but
// is only safe to be called on the main thread.
- (BOOL)isThreadBlocked:(TSThread *)thread;
// NOTE: This method uses a transaction.
- (NSString *)localNumber;

View File

@ -19,7 +19,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface ContactsViewHelper ()
@interface ContactsViewHelper () <OWSBlockListCacheDelegate>
// This property is a cached value that is lazy-populated.
@property (nonatomic, nullable) NSArray<Contact *> *nonSignalContacts;
@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic) NSDictionary<NSString *, SignalAccount *> *signalAccountMap;
@property (nonatomic) NSArray<SignalAccount *> *signalAccounts;
@property (nonatomic) NSArray<NSString *> *blockedPhoneNumbers;
@property (nonatomic, readonly) OWSBlockListCache *blockListCache;
@property (nonatomic) BOOL shouldNotifyDelegateOfUpdatedContacts;
@property (nonatomic) BOOL hasUpdatedContactsAtLeastOnce;
@ -51,7 +51,9 @@ NS_ASSUME_NONNULL_BEGIN
_delegate = delegate;
_blockingManager = [OWSBlockingManager sharedManager];
_blockedPhoneNumbers = [_blockingManager blockedPhoneNumbers];
_blockListCache = [OWSBlockListCache new];
[_blockListCache startObservingAndSyncStateWithDelegate:self];
_conversationSearcher = ConversationSearcher.shared;
_contactsManager = Environment.shared.contactsManager;
@ -73,10 +75,6 @@ NS_ASSUME_NONNULL_BEGIN
selector:@selector(signalAccountsDidChange:)
name:OWSContactsManagerSignalAccountsDidChangeNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(blockedPhoneNumbersDidChange:)
name:kNSNotificationName_BlockedPhoneNumbersDidChange
object:nil];
}
- (void)dealloc
@ -91,15 +89,6 @@ NS_ASSUME_NONNULL_BEGIN
[self updateContacts];
}
- (void)blockedPhoneNumbersDidChange:(id)notification
{
OWSAssertIsOnMainThread();
self.blockedPhoneNumbers = [_blockingManager blockedPhoneNumbers];
[self updateContacts];
}
#pragma mark - Contacts
- (nullable SignalAccount *)fetchSignalAccountForRecipientId:(NSString *)recipientId
@ -158,7 +147,28 @@ NS_ASSUME_NONNULL_BEGIN
{
OWSAssertIsOnMainThread();
return [_blockedPhoneNumbers containsObject:recipientId];
return [self.blockListCache isRecipientIdBlocked:recipientId];
}
- (BOOL)isGroupIdBlocked:(NSData *)groupId
{
OWSAssertIsOnMainThread();
return [self.blockListCache isGroupIdBlocked:groupId];
}
- (BOOL)isThreadBlocked:(TSThread *)thread
{
if ([thread isKindOfClass:[TSContactThread class]]) {
TSContactThread *contactThread = (TSContactThread *)thread;
return [self isRecipientIdBlocked:contactThread.contactIdentifier];
} else if ([thread isKindOfClass:[TSGroupThread class]]) {
TSGroupThread *groupThread = (TSGroupThread *)thread;
return [self isGroupIdBlocked:groupThread.groupModel.groupId];
} else {
OWSFailDebug(@"%@ failure: unexpected thread: %@", self.logTag, thread.class);
return NO;
}
}
- (void)updateContacts
@ -409,6 +419,12 @@ NS_ASSUME_NONNULL_BEGIN
[fromViewController presentViewController:modal animated:YES completion:nil];
}
- (void)blockListCacheDidUpdate:(OWSBlockListCache *)blocklistCache
{
OWSAssertIsOnMainThread();
[self updateContacts];
}
@end
NS_ASSUME_NONNULL_END

View File

@ -6,9 +6,7 @@
NS_ASSUME_NONNULL_BEGIN
//#ifdef DEBUG
#define THEME_ENABLED
//#endif
//#define THEME_ENABLED
extern NSString *const ThemeDidChangeNotification;

View File

@ -0,0 +1,122 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc(OWSBlockListCacheDelegate)
public protocol BlockListCacheDelegate: class {
func blockListCacheDidUpdate(_ blocklistCache: BlockListCache)
}
/// A performant cache for which contacts/groups are blocked.
///
/// The source of truth for which contacts and groups are blocked is the `blockingManager`, but because
/// those accessors are made to be thread safe, they can be slow in tight loops, e.g. when rendering table
/// view cells.
///
/// Typically you'll want to create a Cache, update it to the latest state while simultaneously being informed
/// of any future changes to block list state.
///
/// class SomeViewController: BlockListCacheDelegate {
/// let blockListCache = BlockListCache()
/// func viewDidLoad() {
/// super.viewDidLoad()
/// blockListCache.startObservingAndSyncState(delegate: self)
/// self.updateAnyViewsWhichDepondOnBlockListCache()
/// }
///
/// func blockListCacheDidUpdate(_ blocklistCache: BlockListCache) {
/// self.updateAnyViewsWhichDepondOnBlockListCache()
/// }
///
/// ...
/// }
///
@objc(OWSBlockListCache)
public class BlockListCache: NSObject {
private var blockedRecipientIds: Set<String> = Set()
private var blockedGroupIds: Set<Data> = Set()
private let serialQueue: DispatchQueue = DispatchQueue(label: "BlockListCache")
weak var delegate: BlockListCacheDelegate?
private var blockingManager: OWSBlockingManager {
return OWSBlockingManager.shared()
}
/// Generally something which wants to use this cache wants to do 3 things
/// 1. get the cache on the latest state
/// 2. update the cache whenever the blockingManager's state changes
/// 3. be notified when the cache updates
/// This method does all three.
@objc
public func startObservingAndSyncState(delegate: BlockListCacheDelegate) {
self.delegate = delegate
NotificationCenter.default.addObserver(self,
selector: #selector(blockListDidChange),
name: NSNotification.Name(rawValue: kNSNotificationName_BlockListDidChange),
object: nil)
updateWithoutNotifyingDelegate()
}
// MARK: -
@objc
func blockListDidChange() {
self.update()
}
@objc(isRecipientIdBlocked:)
public func isBlocked(recipientId: String) -> Bool {
return serialQueue.sync {
blockedRecipientIds.contains(recipientId)
}
}
@objc(isGroupIdBlocked:)
public func isBlocked(groupId: Data) -> Bool {
return serialQueue.sync {
blockedGroupIds.contains(groupId)
}
}
@objc(isThreadBlocked:)
public func isBlocked(thread: TSThread) -> Bool {
switch thread {
case let contactThread as TSContactThread:
return serialQueue.sync {
blockedRecipientIds.contains(contactThread.contactIdentifier())
}
case let groupThread as TSGroupThread:
return serialQueue.sync {
blockedGroupIds.contains(groupThread.groupModel.groupId)
}
default:
owsFail("\(self.logTag) in \(#function) unexepected thread type: \(type(of: thread))")
return false
}
}
// MARK: -
public func update() {
updateWithoutNotifyingDelegate()
DispatchQueue.main.async {
self.delegate?.blockListCacheDidUpdate(self)
}
}
private func updateWithoutNotifyingDelegate() {
let blockedRecipientIds = Set(blockingManager.blockedPhoneNumbers())
let blockedGroupIds = Set(blockingManager.blockedGroupIds)
update(blockedRecipientIds: blockedRecipientIds, blockedGroupIds: blockedGroupIds)
}
private func update(blockedRecipientIds: Set<String>, blockedGroupIds: Set<Data>) {
serialQueue.sync {
self.blockedRecipientIds = blockedRecipientIds
self.blockedGroupIds = blockedGroupIds
}
}
}

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import <UIKit/UIKit.h>
@ -7,9 +7,12 @@
NS_ASSUME_NONNULL_BEGIN
@class Contact;
@class SignalAccount;
@class OWSBlockingManager;
@class OWSContactsManager;
@class OWSMessageSender;
@class SignalAccount;
@class TSGroupModel;
@class TSThread;
typedef void (^BlockActionCompletionBlock)(BOOL isBlocked);
@ -19,6 +22,13 @@ typedef void (^BlockActionCompletionBlock)(BOOL isBlocked);
#pragma mark - Block
+ (void)showBlockThreadActionSheet:(TSThread *)thread
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
contactsManager:(OWSContactsManager *)contactsManager
messageSender:(OWSMessageSender *)messageSender
completionBlock:(nullable BlockActionCompletionBlock)completionBlock;
+ (void)showBlockPhoneNumberActionSheet:(NSString *)phoneNumber
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
@ -33,6 +43,12 @@ typedef void (^BlockActionCompletionBlock)(BOOL isBlocked);
#pragma mark - Unblock
+ (void)showUnblockThreadActionSheet:(TSThread *)thread
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
contactsManager:(OWSContactsManager *)contactsManager
completionBlock:(nullable BlockActionCompletionBlock)completionBlock;
+ (void)showUnblockPhoneNumberActionSheet:(NSString *)phoneNumber
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
@ -45,6 +61,12 @@ typedef void (^BlockActionCompletionBlock)(BOOL isBlocked);
contactsManager:(OWSContactsManager *)contactsManager
completionBlock:(nullable BlockActionCompletionBlock)completionBlock;
+ (void)showUnblockGroupActionSheet:(TSGroupModel *)groupModel
displayName:(NSString *)displayName
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
completionBlock:(nullable BlockActionCompletionBlock)completionBlock;
#pragma mark - UI Utils
+ (NSString *)formatDisplayNameForAlertTitle:(NSString *)displayName;

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "BlockListUIUtils.h"
@ -10,6 +10,7 @@
#import <SignalServiceKit/OWSBlockingManager.h>
#import <SignalServiceKit/SignalAccount.h>
#import <SignalServiceKit/TSAccountManager.h>
#import <SignalServiceKit/TSGroupThread.h>
NS_ASSUME_NONNULL_BEGIN
@ -19,6 +20,32 @@ typedef void (^BlockAlertCompletionBlock)(UIAlertAction *action);
#pragma mark - Block
+ (void)showBlockThreadActionSheet:(TSThread *)thread
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
contactsManager:(OWSContactsManager *)contactsManager
messageSender:(OWSMessageSender *)messageSender
completionBlock:(nullable BlockActionCompletionBlock)completionBlock
{
if ([thread isKindOfClass:[TSContactThread class]]) {
TSContactThread *contactThread = (TSContactThread *)thread;
[self showBlockPhoneNumberActionSheet:contactThread.contactIdentifier
fromViewController:fromViewController
blockingManager:blockingManager
contactsManager:contactsManager
completionBlock:completionBlock];
} else if ([thread isKindOfClass:[TSGroupThread class]]) {
TSGroupThread *groupThread = (TSGroupThread *)thread;
[self showBlockGroupActionSheet:groupThread
fromViewController:fromViewController
blockingManager:blockingManager
messageSender:messageSender
completionBlock:completionBlock];
} else {
OWSFailDebug(@"unexpected thread type: %@", thread.class);
}
}
+ (void)showBlockPhoneNumberActionSheet:(NSString *)phoneNumber
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
@ -78,18 +105,18 @@ typedef void (^BlockAlertCompletionBlock)(UIAlertAction *action);
}
}
NSString *title = [NSString stringWithFormat:NSLocalizedString(@"BLOCK_LIST_BLOCK_TITLE_FORMAT",
NSString *title = [NSString stringWithFormat:NSLocalizedString(@"BLOCK_LIST_BLOCK_USER_TITLE_FORMAT",
@"A format for the 'block user' action sheet title. Embeds {{the "
@"blocked user's name or phone number}}."),
[self formatDisplayNameForAlertTitle:displayName]];
UIAlertController *actionSheetController =
[UIAlertController alertControllerWithTitle:title
message:NSLocalizedString(@"BLOCK_BEHAVIOR_EXPLANATION",
message:NSLocalizedString(@"BLOCK_USER_BEHAVIOR_EXPLANATION",
@"An explanation of the consequences of blocking another user.")
preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *unblockAction = [UIAlertAction
UIAlertAction *blockAction = [UIAlertAction
actionWithTitle:NSLocalizedString(@"BLOCK_LIST_BLOCK_BUTTON", @"Button label for the 'block' button")
style:UIAlertActionStyleDestructive
handler:^(UIAlertAction *_Nonnull action) {
@ -103,7 +130,57 @@ typedef void (^BlockAlertCompletionBlock)(UIAlertAction *action);
}
}];
}];
[actionSheetController addAction:unblockAction];
[actionSheetController addAction:blockAction];
UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:CommonStrings.cancelButton
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *_Nonnull action) {
if (completionBlock) {
completionBlock(NO);
}
}];
[actionSheetController addAction:dismissAction];
[fromViewController presentViewController:actionSheetController animated:YES completion:nil];
}
+ (void)showBlockGroupActionSheet:(TSGroupThread *)groupThread
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
messageSender:(OWSMessageSender *)messageSender
completionBlock:(nullable BlockActionCompletionBlock)completionBlock
{
OWSAssertDebug(groupThread);
OWSAssertDebug(fromViewController);
OWSAssertDebug(blockingManager);
NSString *groupName = groupThread.name.length > 0 ? groupThread.name : TSGroupThread.defaultGroupName;
NSString *title = [NSString
stringWithFormat:NSLocalizedString(@"BLOCK_LIST_BLOCK_GROUP_TITLE_FORMAT",
@"A format for the 'block group' action sheet title. Embeds the {{group name}}."),
[self formatDisplayNameForAlertTitle:groupName]];
UIAlertController *actionSheetController =
[UIAlertController alertControllerWithTitle:title
message:NSLocalizedString(@"BLOCK_GROUP_BEHAVIOR_EXPLANATION",
@"An explanation of the consequences of blocking a group.")
preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *blockAction = [UIAlertAction
actionWithTitle:NSLocalizedString(@"BLOCK_LIST_BLOCK_BUTTON", @"Button label for the 'block' button")
style:UIAlertActionStyleDestructive
handler:^(UIAlertAction *_Nonnull action) {
[self blockGroup:groupThread
fromViewController:fromViewController
blockingManager:blockingManager
messageSender:messageSender
completionBlock:^(UIAlertAction *ignore) {
if (completionBlock) {
completionBlock(YES);
}
}];
}];
[actionSheetController addAction:blockAction];
UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:CommonStrings.cancelButton
style:UIAlertActionStyleCancel
@ -137,15 +214,86 @@ typedef void (^BlockAlertCompletionBlock)(UIAlertAction *action);
@"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE", @"The title of the 'user blocked' alert.")
message:[NSString
stringWithFormat:NSLocalizedString(@"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT",
@"The message format of the 'user blocked' "
@"alert. Embeds {{the blocked user's name or phone number}}."),
@"The message format of the 'conversation blocked' alert. "
@"Embeds the {{conversation title}}."),
[self formatDisplayNameForAlertMessage:displayName]]
fromViewController:fromViewController
completionBlock:completionBlock];
}
+ (void)blockGroup:(TSGroupThread *)groupThread
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
messageSender:(OWSMessageSender *)messageSender
completionBlock:(BlockAlertCompletionBlock)completionBlock
{
OWSAssertDebug(groupThread);
OWSAssertDebug(fromViewController);
OWSAssertDebug(blockingManager);
// block the group regardless of the ability to deliver the "leave group" message.
[blockingManager addBlockedGroup:groupThread.groupModel];
// blockingManager.addBlocked* creates sneaky transactions, so we can't pass in a transaction
// via params and instead have to create our own sneaky transaction here.
[groupThread leaveGroupWithSneakyTransaction];
[ThreadUtil
sendLeaveGroupMessageInThread:groupThread
presentingViewController:fromViewController
messageSender:messageSender
completion:^(NSError *_Nullable error) {
if (error) {
OWSLogError(@"Failed to leave blocked group with error: %@", error);
}
NSString *groupName
= groupThread.name.length > 0 ? groupThread.name : TSGroupThread.defaultGroupName;
[self
showOkAlertWithTitle:NSLocalizedString(@"BLOCK_LIST_VIEW_BLOCKED_GROUP_ALERT_TITLE",
@"The title of the 'group blocked' alert.")
message:[NSString
stringWithFormat:
NSLocalizedString(
@"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT",
@"The message format of the 'conversation blocked' "
@"alert. "
@"Embeds the {{conversation title}}."),
[self formatDisplayNameForAlertMessage:groupName]]
fromViewController:fromViewController
completionBlock:completionBlock];
}];
}
#pragma mark - Unblock
+ (void)showUnblockThreadActionSheet:(TSThread *)thread
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
contactsManager:(OWSContactsManager *)contactsManager
completionBlock:(nullable BlockActionCompletionBlock)completionBlock
{
if ([thread isKindOfClass:[TSContactThread class]]) {
TSContactThread *contactThread = (TSContactThread *)thread;
[self showUnblockPhoneNumberActionSheet:contactThread.contactIdentifier
fromViewController:fromViewController
blockingManager:blockingManager
contactsManager:contactsManager
completionBlock:completionBlock];
} else if ([thread isKindOfClass:[TSGroupThread class]]) {
TSGroupThread *groupThread = (TSGroupThread *)thread;
NSString *groupName = groupThread.name.length > 0 ? groupThread.name : TSGroupThread.defaultGroupName;
[self showUnblockGroupActionSheet:groupThread.groupModel
displayName:groupName
fromViewController:fromViewController
blockingManager:blockingManager
completionBlock:completionBlock];
} else {
OWSFailDebug(@"unexpected thread type: %@", thread.class);
}
}
+ (void)showUnblockPhoneNumberActionSheet:(NSString *)phoneNumber
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
@ -185,10 +333,11 @@ typedef void (^BlockAlertCompletionBlock)(UIAlertAction *action);
OWSAssertDebug(fromViewController);
OWSAssertDebug(blockingManager);
NSString *title = [NSString stringWithFormat:NSLocalizedString(@"BLOCK_LIST_UNBLOCK_TITLE_FORMAT",
@"A format for the 'unblock user' action sheet title. Embeds "
@"{{the blocked user's name or phone number}}."),
[self formatDisplayNameForAlertTitle:displayName]];
NSString *title = [NSString
stringWithFormat:
NSLocalizedString(@"BLOCK_LIST_UNBLOCK_TITLE_FORMAT",
@"A format for the 'unblock conversation' action sheet title. Embeds the {{conversation title}}."),
[self formatDisplayNameForAlertTitle:displayName]];
UIAlertController *actionSheetController =
[UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleActionSheet];
@ -237,39 +386,83 @@ typedef void (^BlockAlertCompletionBlock)(UIAlertAction *action);
[blockingManager removeBlockedPhoneNumber:phoneNumber];
}
[self showOkAlertWithTitle:NSLocalizedString(@"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE",
@"The title of the 'user unblocked' alert.")
message:[NSString
stringWithFormat:NSLocalizedString(@"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT",
@"The message format of the 'user unblocked' "
@"alert. Embeds {{the blocked user's name or phone number}}."),
[self formatDisplayNameForAlertMessage:displayName]]
fromViewController:fromViewController
completionBlock:completionBlock];
NSString *titleFormat = NSLocalizedString(@"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT",
@"Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}.");
NSString *title = [NSString stringWithFormat:titleFormat, [self formatDisplayNameForAlertMessage:displayName]];
[self showOkAlertWithTitle:title message:nil fromViewController:fromViewController completionBlock:completionBlock];
}
+ (void)showBlockFailedAlert:(UIViewController *)fromViewController
completionBlock:(BlockAlertCompletionBlock)completionBlock
+ (void)showUnblockGroupActionSheet:(TSGroupModel *)groupModel
displayName:(NSString *)displayName
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
completionBlock:(nullable BlockActionCompletionBlock)completionBlock
{
OWSAssertDebug(displayName.length > 0);
OWSAssertDebug(fromViewController);
OWSAssertDebug(blockingManager);
[self showOkAlertWithTitle:NSLocalizedString(@"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE",
@"The title of the 'block user failed' alert.")
message:NSLocalizedString(@"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE",
@"The title of the 'block user failed' alert.")
fromViewController:fromViewController
completionBlock:completionBlock];
NSString *title =
[NSString stringWithFormat:NSLocalizedString(@"BLOCK_LIST_UNBLOCK_GROUP_TITLE",
@"Action sheet title when confirming you want to unblock a group.")];
NSString *message = NSLocalizedString(
@"BLOCK_LIST_UNBLOCK_GROUP_BODY", @"Action sheet body when confirming you want to unblock a group");
UIAlertController *actionSheetController =
[UIAlertController alertControllerWithTitle:title
message:message
preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *unblockAction = [UIAlertAction
actionWithTitle:NSLocalizedString(@"BLOCK_LIST_UNBLOCK_BUTTON", @"Button label for the 'unblock' button")
style:UIAlertActionStyleDestructive
handler:^(UIAlertAction *_Nonnull action) {
[BlockListUIUtils unblockGroup:groupModel
displayName:displayName
fromViewController:fromViewController
blockingManager:blockingManager
completionBlock:^(UIAlertAction *ignore) {
if (completionBlock) {
completionBlock(NO);
}
}];
}];
[actionSheetController addAction:unblockAction];
UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:CommonStrings.cancelButton
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *_Nonnull action) {
if (completionBlock) {
completionBlock(YES);
}
}];
[actionSheetController addAction:dismissAction];
[fromViewController presentViewController:actionSheetController animated:YES completion:nil];
}
+ (void)showUnblockFailedAlert:(UIViewController *)fromViewController
completionBlock:(BlockAlertCompletionBlock)completionBlock
+ (void)unblockGroup:(TSGroupModel *)groupModel
displayName:(NSString *)displayName
fromViewController:(UIViewController *)fromViewController
blockingManager:(OWSBlockingManager *)blockingManager
completionBlock:(BlockAlertCompletionBlock)completionBlock
{
OWSAssertDebug(displayName.length > 0);
OWSAssertDebug(fromViewController);
OWSAssertDebug(blockingManager);
[self showOkAlertWithTitle:NSLocalizedString(@"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE",
@"The title of the 'unblock user failed' alert.")
message:NSLocalizedString(@"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE",
@"The title of the 'unblock user failed' alert.")
[blockingManager removeBlockedGroupId:groupModel.groupId];
NSString *titleFormat = NSLocalizedString(@"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT",
@"Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}.");
NSString *title = [NSString stringWithFormat:titleFormat, [self formatDisplayNameForAlertMessage:displayName]];
NSString *message
= NSLocalizedString(@"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY", @"Alert body after unblocking a group.");
[self showOkAlertWithTitle:title
message:message
fromViewController:fromViewController
completionBlock:completionBlock];
}
@ -277,12 +470,11 @@ typedef void (^BlockAlertCompletionBlock)(UIAlertAction *action);
#pragma mark - UI
+ (void)showOkAlertWithTitle:(NSString *)title
message:(NSString *)message
message:(nullable NSString *)message
fromViewController:(UIViewController *)fromViewController
completionBlock:(BlockAlertCompletionBlock)completionBlock
{
OWSAssertDebug(title.length > 0);
OWSAssertDebug(message.length > 0);
OWSAssertDebug(fromViewController);
UIAlertController *controller =

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "OWSAvatarBuilder.h"
@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface OWSGroupAvatarBuilder : OWSAvatarBuilder
- (instancetype)initWithThread:(TSGroupThread *)thread;
+ (UIImage *)defaultGroupImage;
@end

View File

@ -33,6 +33,11 @@ NS_ASSUME_NONNULL_BEGIN
}
- (UIImage *)buildDefaultImage
{
return self.class.defaultGroupImage;
}
+ (UIImage *)defaultGroupImage
{
static UIImage *defaultGroupImage;
static dispatch_once_t onceToken;

View File

@ -10,6 +10,7 @@ NS_ASSUME_NONNULL_BEGIN
@class OWSUnreadIndicator;
@class SignalAttachment;
@class TSContactThread;
@class TSGroupThread;
@class TSInteraction;
@class TSThread;
@class YapDatabaseConnection;
@ -71,6 +72,13 @@ NS_ASSUME_NONNULL_BEGIN
messageSender:(OWSMessageSender *)messageSender
completion:(void (^_Nullable)(NSError *_Nullable error))completion;
+ (void)sendLeaveGroupMessageInThread:(TSGroupThread *)thread
presentingViewController:(UIViewController *)presentingViewController
messageSender:(OWSMessageSender *)messageSender
completion:(void (^_Nullable)(NSError *_Nullable error))completion;
#pragma mark - dynamic interactions
// This method will create and/or remove any offers and indicators
// necessary for this thread. This includes:
//

View File

@ -212,6 +212,49 @@ NS_ASSUME_NONNULL_BEGIN
return message;
}
+ (void)sendLeaveGroupMessageInThread:(TSGroupThread *)thread
presentingViewController:(UIViewController *)presentingViewController
messageSender:(OWSMessageSender *)messageSender
completion:(void (^_Nullable)(NSError *_Nullable error))completion
{
OWSAssertDebug([thread isKindOfClass:[TSGroupThread class]]);
OWSAssertDebug(presentingViewController);
OWSAssertDebug(messageSender);
NSString *groupName = thread.name.length > 0 ? thread.name : TSGroupThread.defaultGroupName;
NSString *title = [NSString
stringWithFormat:NSLocalizedString(@"GROUP_REMOVING", @"Modal text when removing a group"), groupName];
UIAlertController *removingFromGroup =
[UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleAlert];
[presentingViewController presentViewController:removingFromGroup animated:YES completion:nil];
TSOutgoingMessage *message =
[TSOutgoingMessage outgoingMessageInThread:thread groupMetaMessage:TSGroupMetaMessageQuit expiresInSeconds:0];
[messageSender enqueueMessage:message
success:^{
dispatch_async(dispatch_get_main_queue(), ^{
[presentingViewController dismissViewControllerAnimated:YES
completion:^{
if (completion) {
completion(nil);
}
}];
});
}
failure:^(NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
[presentingViewController dismissViewControllerAnimated:YES
completion:^{
if (completion) {
completion(error);
}
}];
});
}];
}
#pragma mark - Dynamic Interactions
+ (ThreadDynamicInteractions *)ensureDynamicInteractionsForThread:(TSThread *)thread
contactsManager:(OWSContactsManager *)contactsManager
blockingManager:(OWSBlockingManager *)blockingManager
@ -347,6 +390,9 @@ NS_ASSUME_NONNULL_BEGIN
shouldHaveAddToContactsOffer = NO;
// Only create block offers in 1:1 conversations.
shouldHaveBlockOffer = NO;
// MJK TODO - any conditions under which we'd make a block offer for groups?
// Only create profile whitelist offers in 1:1 conversations.
shouldHaveAddToProfileWhitelistOffer = NO;
} else {
@ -661,6 +707,10 @@ NS_ASSUME_NONNULL_BEGIN
if (![OWSProfileManager.sharedManager hasLocalProfile]) {
return NO;
}
if ([blockingManager isThreadBlocked:thread]) {
return NO;
}
BOOL hasUnwhitelistedMember = NO;
NSArray<NSString *> *blockedPhoneNumbers = [blockingManager blockedPhoneNumbers];
for (NSString *recipientId in thread.recipientIdentifiers) {

View File

@ -250,6 +250,7 @@ message SyncMessage {
message Blocked {
repeated string numbers = 1;
repeated bytes groupIds = 2;
}
message Request {
@ -353,4 +354,5 @@ message GroupDetails {
optional bool active = 5 [default = true];
optional uint32 expireTimer = 6;
optional string color = 7;
optional bool blocked = 8;
}

View File

@ -29,10 +29,15 @@ extern NSString *const TSGroupThread_NotificationKey_UniqueId;
+ (NSString *)threadIdFromGroupId:(NSData *)groupId;
+ (NSString *)defaultGroupName;
// all group threads containing recipient as a member
+ (NSArray<TSGroupThread *> *)groupThreadsWithRecipientId:(NSString *)recipientId
transaction:(YapDatabaseReadWriteTransaction *)transaction;
- (void)leaveGroupWithSneakyTransaction;
- (void)leaveGroupWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
- (void)updateAvatarWithAttachmentStream:(TSAttachmentStream *)attachmentStream;
- (void)updateAvatarWithAttachmentStream:(TSAttachmentStream *)attachmentStream
transaction:(YapDatabaseReadWriteTransaction *)transaction;

View File

@ -175,9 +175,36 @@ NSString *const TSGroupThread_NotificationKey_UniqueId = @"TSGroupThread_Notific
- (NSString *)name
{
return self.groupModel.groupName ? self.groupModel.groupName : NSLocalizedString(@"NEW_GROUP_DEFAULT_TITLE", @"");
// TODO sometimes groupName is set to the empty string. I'm hesitent to change
// the semantics here until we have time to thouroughly test the fallout.
// Instead, see the `groupNameOrDefault` which is appropriate for use when displaying
// text corresponding to a group.
return self.groupModel.groupName ?: self.class.defaultGroupName;
}
+ (NSString *)defaultGroupName
{
return NSLocalizedString(@"NEW_GROUP_DEFAULT_TITLE", @"");
}
- (void)leaveGroupWithSneakyTransaction
{
[self.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[self leaveGroupWithTransaction:transaction];
}];
}
- (void)leaveGroupWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
{
NSMutableArray<NSString *> *newGroupMemberIds = [self.groupModel.groupMemberIds mutableCopy];
[newGroupMemberIds removeObject:[TSAccountManager localNumber]];
self.groupModel.groupMemberIds = newGroupMemberIds;
[self saveWithTransaction:transaction];
}
#pragma mark - Avatar
- (void)updateAvatarWithAttachmentStream:(TSAttachmentStream *)attachmentStream
{
[self.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {

View File

@ -10,7 +10,8 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithPhoneNumbers:(NSArray<NSString *> *)phoneNumbers NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithPhoneNumbers:(NSArray<NSString *> *)phoneNumbers
groupIds:(NSArray<NSData *> *)groupIds NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
@end

View File

@ -10,6 +10,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface OWSBlockedPhoneNumbersMessage ()
@property (nonatomic, readonly) NSArray<NSString *> *phoneNumbers;
@property (nonatomic, readonly) NSArray<NSData *> *groupIds;
@end
@ -20,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN
return [super initWithCoder:coder];
}
- (instancetype)initWithPhoneNumbers:(NSArray<NSString *> *)phoneNumbers
- (instancetype)initWithPhoneNumbers:(NSArray<NSString *> *)phoneNumbers groupIds:(NSArray<NSData *> *)groupIds
{
self = [super init];
if (!self) {
@ -28,6 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
}
_phoneNumbers = [phoneNumbers copy];
_groupIds = [groupIds copy];
return self;
}
@ -36,6 +38,8 @@ NS_ASSUME_NONNULL_BEGIN
{
SSKProtoSyncMessageBlockedBuilder *blockedBuilder = [SSKProtoSyncMessageBlockedBuilder new];
[blockedBuilder setNumbers:_phoneNumbers];
[blockedBuilder setGroupIds:_groupIds];
NSError *error;
SSKProtoSyncMessageBlocked *_Nullable blockedProto = [blockedBuilder buildAndReturnError:&error];
if (error || !blockedProto) {

View File

@ -4,6 +4,7 @@
#import "OWSGroupsOutputStream.h"
#import "MIMETypeUtil.h"
#import "OWSBlockingManager.h"
#import "OWSDisappearingMessagesConfiguration.h"
#import "TSGroupModel.h"
#import "TSGroupThread.h"
@ -27,6 +28,10 @@ NS_ASSUME_NONNULL_BEGIN
[groupBuilder setMembers:group.groupMemberIds];
[groupBuilder setColor:groupThread.conversationColorName];
if ([OWSBlockingManager.sharedManager isGroupIdBlocked:group.groupId]) {
[groupBuilder setBlocked:YES];
}
NSData *avatarPng;
if (group.groupImage) {
SSKProtoGroupDetailsAvatarBuilder *avatarBuilder =

View File

@ -695,9 +695,9 @@ typedef void (^OWSLoadedThumbnailSuccess)(OWSLoadedThumbnail *loadedThumbnail);
{
OWSLoadedThumbnail *_Nullable loadedThumbnail;
loadedThumbnail = [self loadedThumbnailWithThumbnailDimensionPoints:thumbnailDimensionPoints
success:^(OWSLoadedThumbnail *loadedThumbnail) {
success:^(OWSLoadedThumbnail *thumbnail) {
DispatchMainThreadSafe(^{
success(loadedThumbnail.image);
success(thumbnail.image);
});
}
failure:^{
@ -749,9 +749,9 @@ typedef void (^OWSLoadedThumbnailSuccess)(OWSLoadedThumbnail *loadedThumbnail);
__block OWSLoadedThumbnail *_Nullable asyncLoadedThumbnail = nil;
OWSLoadedThumbnail *_Nullable syncLoadedThumbnail = nil;
syncLoadedThumbnail = [self loadedThumbnailWithThumbnailDimensionPoints:kThumbnailDimensionPointsSmall
success:^(OWSLoadedThumbnail *asyncLoadedThumbnail) {
success:^(OWSLoadedThumbnail *thumbnail) {
@synchronized(self) {
asyncLoadedThumbnail = asyncLoadedThumbnail;
asyncLoadedThumbnail = thumbnail;
}
dispatch_semaphore_signal(semaphore);
}

View File

@ -4,7 +4,10 @@
NS_ASSUME_NONNULL_BEGIN
extern NSString *const kNSNotificationName_BlockedPhoneNumbersDidChange;
@class TSGroupModel;
@class TSThread;
extern NSString *const kNSNotificationName_BlockListDidChange;
// This class can be safely accessed and used from any thread.
@interface OWSBlockingManager : NSObject
@ -21,11 +24,21 @@ extern NSString *const kNSNotificationName_BlockedPhoneNumbersDidChange;
// want to fire a sync message.
- (void)setBlockedPhoneNumbers:(NSArray<NSString *> *)blockedPhoneNumbers sendSyncMessage:(BOOL)sendSyncMessage;
// TODO convert to property
- (NSArray<NSString *> *)blockedPhoneNumbers;
- (BOOL)isRecipientIdBlocked:(NSString *)recipientId;
@property (readonly) NSArray<NSData *> *blockedGroupIds;
@property (readonly) NSArray<TSGroupModel *> *blockedGroups;
- (void)syncBlockedPhoneNumbers;
- (void)addBlockedGroup:(TSGroupModel *)group;
- (void)removeBlockedGroupId:(NSData *)groupId;
- (nullable TSGroupModel *)cachedGroupDetailsWithGroupId:(NSData *)groupId;
- (BOOL)isRecipientIdBlocked:(NSString *)recipientId;
- (BOOL)isGroupIdBlocked:(NSData *)groupId;
- (BOOL)isThreadBlocked:(TSThread *)thread;
- (void)syncBlockList;
@end

View File

@ -10,17 +10,23 @@
#import "OWSMessageSender.h"
#import "OWSPrimaryStorage.h"
#import "SSKEnvironment.h"
#import "TSContactThread.h"
#import "TSGroupThread.h"
#import "YapDatabaseConnection+OWS.h"
NS_ASSUME_NONNULL_BEGIN
NSString *const kNSNotificationName_BlockedPhoneNumbersDidChange = @"kNSNotificationName_BlockedPhoneNumbersDidChange";
NSString *const kNSNotificationName_BlockListDidChange = @"kNSNotificationName_BlockListDidChange";
NSString *const kOWSBlockingManager_BlockedPhoneNumbersCollection = @"kOWSBlockingManager_BlockedPhoneNumbersCollection";
// This key is used to persist the current "blocked phone numbers" state.
NSString *const kOWSBlockingManager_BlockListCollection = @"kOWSBlockingManager_BlockedPhoneNumbersCollection";
// These keys are used to persist the current local "block list" state.
NSString *const kOWSBlockingManager_BlockedPhoneNumbersKey = @"kOWSBlockingManager_BlockedPhoneNumbersKey";
// This key is used to persist the most recently synced "blocked phone numbers" state.
NSString *const kOWSBlockingManager_BlockedGroupMapKey = @"kOWSBlockingManager_BlockedGroupMapKey";
// These keys are used to persist the most recently synced remote "block list" state.
NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockingManager_SyncedBlockedPhoneNumbersKey";
NSString *const kOWSBlockingManager_SyncedBlockedGroupIdsKey = @"kOWSBlockingManager_SyncedBlockedGroupIdsKey";
@interface OWSBlockingManager ()
@ -31,6 +37,7 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
// consistency issues between clients, but these should all be valid e164
// phone numbers.
@property (atomic, readonly) NSMutableSet<NSString *> *blockedPhoneNumberSet;
@property (atomic, readonly) NSMutableDictionary<NSData *, TSGroupModel *> *blockedGroupMap;
@end
@ -93,6 +100,25 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
object:nil];
}
#pragma mark -
- (BOOL)isThreadBlocked:(TSThread *)thread
{
if ([thread isKindOfClass:[TSContactThread class]]) {
TSContactThread *contactThread = (TSContactThread *)thread;
return [self isRecipientIdBlocked:contactThread.contactIdentifier];
} else if ([thread isKindOfClass:[TSGroupThread class]]) {
TSGroupThread *groupThread = (TSGroupThread *)thread;
return [self isGroupIdBlocked:groupThread.groupModel.groupId];
} else {
OWSFailDebug(@"%@ failure unexpected thread type", self.logTag);
return NO;
}
}
#pragma mark - Contact Blocking
- (void)addBlockedPhoneNumber:(NSString *)phoneNumber
{
OWSAssertDebug(phoneNumber.length > 0);
@ -171,6 +197,79 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
return [self.blockedPhoneNumbers containsObject:recipientId];
}
#pragma mark - Group Blocking
- (NSArray<NSData *> *)blockedGroupIds
{
@synchronized(self) {
[self ensureLazyInitialization];
return self.blockedGroupMap.allKeys;
}
}
- (NSArray<TSGroupModel *> *)blockedGroups
{
@synchronized(self) {
[self ensureLazyInitialization];
return self.blockedGroupMap.allValues;
}
}
- (BOOL)isGroupIdBlocked:(NSData *)groupId
{
return self.blockedGroupMap[groupId] != nil;
}
- (nullable TSGroupModel *)cachedGroupDetailsWithGroupId:(NSData *)groupId
{
@synchronized(self) {
return self.blockedGroupMap[groupId];
}
}
- (void)addBlockedGroup:(TSGroupModel *)groupModel
{
NSData *groupId = groupModel.groupId;
OWSAssertDebug(groupId.length > 0);
OWSLogInfo(@"groupId: %@", groupId);
@synchronized(self) {
[self ensureLazyInitialization];
if ([self isGroupIdBlocked:groupId]) {
// Ignore redundant changes.
return;
}
self.blockedGroupMap[groupId] = groupModel;
}
[self handleUpdate];
}
- (void)removeBlockedGroupId:(NSData *)groupId
{
OWSAssertDebug(groupId.length > 0);
OWSLogInfo(@"groupId: %@", groupId);
@synchronized(self) {
[self ensureLazyInitialization];
if (![self isGroupIdBlocked:groupId]) {
// Ignore redundant changes.
return;
}
[self.blockedGroupMap removeObjectForKey:groupId];
}
[self handleUpdate];
}
#pragma mark - Updates
// This should be called every time the block list changes.
- (void)handleUpdate
@ -179,20 +278,32 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
[self handleUpdate:YES];
}
// TODO label the `sendSyncMessage` param
- (void)handleUpdate:(BOOL)sendSyncMessage
{
NSArray<NSString *> *blockedPhoneNumbers = [self blockedPhoneNumbers];
[self.dbConnection setObject:blockedPhoneNumbers
forKey:kOWSBlockingManager_BlockedPhoneNumbersKey
inCollection:kOWSBlockingManager_BlockedPhoneNumbersCollection];
inCollection:kOWSBlockingManager_BlockListCollection];
NSDictionary *blockedGroupMap;
@synchronized(self) {
blockedGroupMap = [self.blockedGroupMap copy];
}
NSArray<NSData *> *blockedGroupIds = blockedGroupMap.allKeys;
[self.dbConnection setObject:blockedGroupMap
forKey:kOWSBlockingManager_BlockedGroupMapKey
inCollection:kOWSBlockingManager_BlockListCollection];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
if (sendSyncMessage) {
[self sendBlockedPhoneNumbersMessage:blockedPhoneNumbers];
[self sendBlockListSyncMessageWithPhoneNumbers:blockedPhoneNumbers groupIds:blockedGroupIds];
} else {
// If this update came from an incoming block list sync message,
// update the "synced blocked phone numbers" state immediately,
// update the "synced blocked list" state immediately,
// since we're now in sync.
//
// There could be data loss if both clients modify the block list
@ -203,10 +314,10 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
// c) It's unlikely a user will make conflicting changes on two
// devices around the same time.
// d) There isn't a good way to avoid this.
[self saveSyncedBlockedPhoneNumbers:blockedPhoneNumbers];
[self saveSyncedBlockListWithPhoneNumbers:blockedPhoneNumbers groupIds:blockedGroupIds];
}
[[NSNotificationCenter defaultCenter] postNotificationNameAsync:kNSNotificationName_BlockedPhoneNumbersDidChange
[[NSNotificationCenter defaultCenter] postNotificationNameAsync:kNSNotificationName_BlockListDidChange
object:nil
userInfo:nil];
});
@ -216,72 +327,105 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
- (void)ensureLazyInitialization
{
if (_blockedPhoneNumberSet) {
// _blockedPhoneNumberSet has already been loaded, abort.
OWSAssertDebug(_blockedGroupMap);
// already loaded
return;
}
NSArray<NSString *> *blockedPhoneNumbers =
[self.dbConnection objectForKey:kOWSBlockingManager_BlockedPhoneNumbersKey
inCollection:kOWSBlockingManager_BlockedPhoneNumbersCollection];
inCollection:kOWSBlockingManager_BlockListCollection];
_blockedPhoneNumberSet = [[NSMutableSet alloc] initWithArray:(blockedPhoneNumbers ?: [NSArray new])];
[self syncBlockedPhoneNumbersIfNecessary];
NSDictionary<NSData *, TSGroupModel *> *storedBlockedGroupMap =
[self.dbConnection objectForKey:kOWSBlockingManager_BlockedGroupMapKey
inCollection:kOWSBlockingManager_BlockListCollection];
if ([storedBlockedGroupMap isKindOfClass:[NSDictionary class]]) {
_blockedGroupMap = [storedBlockedGroupMap mutableCopy];
} else {
_blockedGroupMap = [NSMutableDictionary new];
}
[self syncBlockListIfNecessary];
[self observeNotifications];
}
- (void)syncBlockedPhoneNumbers
- (void)syncBlockList
{
OWSAssertDebug(_blockedPhoneNumberSet);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self sendBlockedPhoneNumbersMessage:self.blockedPhoneNumbers];
[self sendBlockListSyncMessageWithPhoneNumbers:self.blockedPhoneNumbers groupIds:self.blockedGroupIds];
});
}
// This method should only be called from within a synchronized block.
- (void)syncBlockedPhoneNumbersIfNecessary
- (void)syncBlockListIfNecessary
{
OWSAssertDebug(_blockedPhoneNumberSet);
// If we haven't yet successfully synced the current "blocked phone numbers" changes,
// If we haven't yet successfully synced the current "block list" changes,
// try again to sync now.
NSArray<NSString *> *syncedBlockedPhoneNumbers =
[self.dbConnection objectForKey:kOWSBlockingManager_SyncedBlockedPhoneNumbersKey
inCollection:kOWSBlockingManager_BlockedPhoneNumbersCollection];
NSSet *syncedBlockedPhoneNumberSet = [[NSSet alloc] initWithArray:(syncedBlockedPhoneNumbers ?: [NSArray new])];
if (![_blockedPhoneNumberSet isEqualToSet:syncedBlockedPhoneNumberSet]) {
OWSLogInfo(@"retrying sync of blocked phone numbers");
[self sendBlockedPhoneNumbersMessage:self.blockedPhoneNumbers];
inCollection:kOWSBlockingManager_BlockListCollection];
NSSet<NSString *> *syncedBlockedPhoneNumberSet =
[[NSSet alloc] initWithArray:(syncedBlockedPhoneNumbers ?: [NSArray new])];
NSArray<NSData *> *syncedBlockedGroupIds =
[self.dbConnection objectForKey:kOWSBlockingManager_SyncedBlockedGroupIdsKey
inCollection:kOWSBlockingManager_BlockListCollection];
NSSet<NSData *> *syncedBlockedGroupIdSet = [[NSSet alloc] initWithArray:(syncedBlockedGroupIds ?: [NSArray new])];
NSArray<NSData *> *localBlockedGroupIds = self.blockedGroupIds;
NSSet<NSData *> *localBlockedGroupIdSet = [[NSSet alloc] initWithArray:localBlockedGroupIds];
if ([self.blockedPhoneNumberSet isEqualToSet:syncedBlockedPhoneNumberSet] &&
[localBlockedGroupIdSet isEqualToSet:syncedBlockedGroupIdSet]) {
OWSLogVerbose(@"Ignoring redundant block list sync");
return;
}
OWSLogInfo(@"retrying sync of block list");
[self sendBlockListSyncMessageWithPhoneNumbers:self.blockedPhoneNumbers groupIds:localBlockedGroupIds];
}
- (void)sendBlockedPhoneNumbersMessage:(NSArray<NSString *> *)blockedPhoneNumbers
- (void)sendBlockListSyncMessageWithPhoneNumbers:(NSArray<NSString *> *)blockedPhoneNumbers
groupIds:(NSArray<NSData *> *)blockedGroupIds
{
OWSAssertDebug(blockedPhoneNumbers);
OWSAssertDebug(blockedGroupIds);
OWSBlockedPhoneNumbersMessage *message =
[[OWSBlockedPhoneNumbersMessage alloc] initWithPhoneNumbers:blockedPhoneNumbers];
[[OWSBlockedPhoneNumbersMessage alloc] initWithPhoneNumbers:blockedPhoneNumbers groupIds:blockedGroupIds];
[self.messageSender enqueueMessage:message
success:^{
OWSLogInfo(@"Successfully sent blocked phone numbers sync message");
// Record the last set of "blocked phone numbers" which we successfully synced.
[self saveSyncedBlockedPhoneNumbers:blockedPhoneNumbers];
[self saveSyncedBlockListWithPhoneNumbers:blockedPhoneNumbers groupIds:blockedGroupIds];
}
failure:^(NSError *error) {
OWSLogError(@"Failed to send blocked phone numbers sync message with error: %@", error);
}];
}
- (void)saveSyncedBlockedPhoneNumbers:(NSArray<NSString *> *)blockedPhoneNumbers
/// Records the last block list which we successfully synced.
- (void)saveSyncedBlockListWithPhoneNumbers:(NSArray<NSString *> *)blockedPhoneNumbers
groupIds:(NSArray<NSData *> *)blockedGroupIds
{
OWSAssertDebug(blockedPhoneNumbers);
OWSAssertDebug(blockedGroupIds);
// Record the last set of "blocked phone numbers" which we successfully synced.
[self.dbConnection setObject:blockedPhoneNumbers
forKey:kOWSBlockingManager_SyncedBlockedPhoneNumbersKey
inCollection:kOWSBlockingManager_BlockedPhoneNumbersCollection];
inCollection:kOWSBlockingManager_BlockListCollection];
[self.dbConnection setObject:blockedGroupIds
forKey:kOWSBlockingManager_SyncedBlockedGroupIdsKey
inCollection:kOWSBlockingManager_BlockListCollection];
}
#pragma mark - Notifications
@ -293,7 +437,7 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
[AppReadiness runNowOrWhenAppIsReady:^{
@synchronized(self)
{
[self syncBlockedPhoneNumbersIfNecessary];
[self syncBlockListIfNecessary];
}
}];
}

View File

@ -80,7 +80,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Blocking
- (BOOL)isEnvelopeBlocked:(SSKProtoEnvelope *)envelope
- (BOOL)isEnvelopeSenderBlocked:(SSKProtoEnvelope *)envelope
{
OWSAssertDebug(envelope);
@ -121,7 +121,7 @@ NS_ASSUME_NONNULL_BEGIN
OWSLogInfo(@"decrypting envelope: %@", [self descriptionForEnvelope:envelope]);
OWSAssertDebug(envelope.source.length > 0);
if ([self isEnvelopeBlocked:envelope]) {
if ([self isEnvelopeSenderBlocked:envelope]) {
OWSLogInfo(@"ignoring blocked envelope: %@", envelope.source);
failureBlock();
return;

View File

@ -158,13 +158,30 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Blocking
- (BOOL)isEnvelopeBlocked:(SSKProtoEnvelope *)envelope
- (BOOL)isEnvelopeSenderBlocked:(SSKProtoEnvelope *)envelope
{
OWSAssertDebug(envelope);
return [_blockingManager isRecipientIdBlocked:envelope.source];
}
- (BOOL)isDataMessageBlocked:(SSKProtoDataMessage *)dataMessage envelope:(SSKProtoEnvelope *)envelope
{
OWSAssertDebug(dataMessage);
OWSAssertDebug(envelope);
if (dataMessage.group) {
return [self.blockingManager isGroupIdBlocked:dataMessage.group.id];
} else {
BOOL senderBlocked = [self isEnvelopeSenderBlocked:envelope];
// If the envelopeSender was blocked, we never should have gotten as far as decrypting the dataMessage.
OWSAssertDebug(!senderBlocked);
return senderBlocked;
}
}
#pragma mark - message handling
- (void)processEnvelope:(SSKProtoEnvelope *)envelope
@ -184,7 +201,7 @@ NS_ASSUME_NONNULL_BEGIN
}
OWSAssertDebug(envelope.source.length > 0);
OWSAssertDebug(![self isEnvelopeBlocked:envelope]);
OWSAssertDebug(![self isEnvelopeSenderBlocked:envelope]);
switch (envelope.type) {
case SSKProtoEnvelopeTypeCiphertext:
@ -338,6 +355,16 @@ NS_ASSUME_NONNULL_BEGIN
OWSAssertDebug(dataMessage);
OWSAssertDebug(transaction);
if ([self isDataMessageBlocked:dataMessage envelope:envelope]) {
NSString *logMessage = [NSString stringWithFormat:@"Ignoring blocked message from sender: %@", envelope.source];
if (dataMessage.group) {
logMessage =
[logMessage stringByAppendingString:[NSString stringWithFormat:@" in group: %@", dataMessage.group.id]];
}
OWSLogError(@"%@", logMessage);
return;
}
if (dataMessage.hasTimestamp) {
if (dataMessage.timestamp <= 0) {
OWSLogError(@"Ignoring message with invalid data message timestamp: %@", envelope.source);
@ -365,7 +392,14 @@ NS_ASSUME_NONNULL_BEGIN
TSGroupThread *_Nullable groupThread =
[TSGroupThread threadWithGroupId:dataMessage.group.id transaction:transaction];
if (!groupThread) {
if (groupThread) {
if (dataMessage.group.type != SSKProtoGroupContextTypeUpdate) {
if (![groupThread.groupModel.groupMemberIds containsObject:[TSAccountManager localNumber]]) {
OWSLogInfo(@"Ignoring messages for left group.");
return;
}
}
} else {
// Unknown group.
if (dataMessage.group.type == SSKProtoGroupContextTypeUpdate) {
// Accept group updates for unknown groups.
@ -687,7 +721,7 @@ NS_ASSUME_NONNULL_BEGIN
}];
} else if (syncMessage.request.type == SSKProtoSyncMessageRequestTypeBlocked) {
OWSLogInfo(@"Received request for block list");
[_blockingManager syncBlockedPhoneNumbers];
[_blockingManager syncBlockList];
} else if (syncMessage.request.type == SSKProtoSyncMessageRequestTypeConfiguration) {
BOOL areReadReceiptsEnabled =
[[OWSReadReceiptManager sharedManager] areReadReceiptsEnabledWithTransaction:transaction];

View File

@ -2979,6 +2979,16 @@ extension SSKProtoSyncMessageGroups.SSKProtoSyncMessageGroupsBuilder {
proto.numbers = wrappedItems
}
@objc public func addGroupIds(_ valueParam: Data) {
var items = proto.groupIds
items.append(valueParam)
proto.groupIds = items
}
@objc public func setGroupIds(_ wrappedItems: [Data]) {
proto.groupIds = wrappedItems
}
@objc public func build() throws -> SSKProtoSyncMessageBlocked {
return try SSKProtoSyncMessageBlocked.parseProto(proto)
}
@ -2994,6 +3004,10 @@ extension SSKProtoSyncMessageGroups.SSKProtoSyncMessageGroupsBuilder {
return proto.numbers
}
@objc public var groupIds: [Data] {
return proto.groupIds
}
private init(proto: SignalServiceProtos_SyncMessage.Blocked) {
self.proto = proto
}
@ -4306,6 +4320,10 @@ extension SSKProtoGroupDetailsAvatar.SSKProtoGroupDetailsAvatarBuilder {
proto.color = valueParam
}
@objc public func setBlocked(_ valueParam: Bool) {
proto.blocked = valueParam
}
@objc public func build() throws -> SSKProtoGroupDetails {
return try SSKProtoGroupDetails.parseProto(proto)
}
@ -4359,6 +4377,13 @@ extension SSKProtoGroupDetailsAvatar.SSKProtoGroupDetailsAvatarBuilder {
return proto.hasColor
}
@objc public var blocked: Bool {
return proto.blocked
}
@objc public var hasBlocked: Bool {
return proto.hasBlocked
}
private init(proto: SignalServiceProtos_GroupDetails,
id: Data,
avatar: SSKProtoGroupDetailsAvatar?) {

View File

@ -1444,6 +1444,8 @@ struct SignalServiceProtos_SyncMessage {
var numbers: [String] = []
var groupIds: [Data] = []
var unknownFields = SwiftProtobuf.UnknownStorage()
init() {}
@ -1971,6 +1973,15 @@ struct SignalServiceProtos_GroupDetails {
/// Clears the value of `color`. Subsequent reads from it will return its default value.
mutating func clearColor() {_storage._color = nil}
var blocked: Bool {
get {return _storage._blocked ?? false}
set {_uniqueStorage()._blocked = newValue}
}
/// Returns true if `blocked` has been explicitly set.
var hasBlocked: Bool {return _storage._blocked != nil}
/// Clears the value of `blocked`. Subsequent reads from it will return its default value.
mutating func clearBlocked() {_storage._blocked = nil}
var unknownFields = SwiftProtobuf.UnknownStorage()
struct Avatar {
@ -3612,12 +3623,14 @@ extension SignalServiceProtos_SyncMessage.Blocked: SwiftProtobuf.Message, SwiftP
static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Blocked"
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
1: .same(proto: "numbers"),
2: .same(proto: "groupIds"),
]
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
while let fieldNumber = try decoder.nextFieldNumber() {
switch fieldNumber {
case 1: try decoder.decodeRepeatedStringField(value: &self.numbers)
case 2: try decoder.decodeRepeatedBytesField(value: &self.groupIds)
default: break
}
}
@ -3627,11 +3640,15 @@ extension SignalServiceProtos_SyncMessage.Blocked: SwiftProtobuf.Message, SwiftP
if !self.numbers.isEmpty {
try visitor.visitRepeatedStringField(value: self.numbers, fieldNumber: 1)
}
if !self.groupIds.isEmpty {
try visitor.visitRepeatedBytesField(value: self.groupIds, fieldNumber: 2)
}
try unknownFields.traverse(visitor: &visitor)
}
func _protobuf_generated_isEqualTo(other: SignalServiceProtos_SyncMessage.Blocked) -> Bool {
if self.numbers != other.numbers {return false}
if self.groupIds != other.groupIds {return false}
if unknownFields != other.unknownFields {return false}
return true
}
@ -4094,6 +4111,7 @@ extension SignalServiceProtos_GroupDetails: SwiftProtobuf.Message, SwiftProtobuf
5: .same(proto: "active"),
6: .same(proto: "expireTimer"),
7: .same(proto: "color"),
8: .same(proto: "blocked"),
]
fileprivate class _StorageClass {
@ -4104,6 +4122,7 @@ extension SignalServiceProtos_GroupDetails: SwiftProtobuf.Message, SwiftProtobuf
var _active: Bool? = nil
var _expireTimer: UInt32? = nil
var _color: String? = nil
var _blocked: Bool? = nil
static let defaultInstance = _StorageClass()
@ -4117,6 +4136,7 @@ extension SignalServiceProtos_GroupDetails: SwiftProtobuf.Message, SwiftProtobuf
_active = source._active
_expireTimer = source._expireTimer
_color = source._color
_blocked = source._blocked
}
}
@ -4139,6 +4159,7 @@ extension SignalServiceProtos_GroupDetails: SwiftProtobuf.Message, SwiftProtobuf
case 5: try decoder.decodeSingularBoolField(value: &_storage._active)
case 6: try decoder.decodeSingularUInt32Field(value: &_storage._expireTimer)
case 7: try decoder.decodeSingularStringField(value: &_storage._color)
case 8: try decoder.decodeSingularBoolField(value: &_storage._blocked)
default: break
}
}
@ -4168,6 +4189,9 @@ extension SignalServiceProtos_GroupDetails: SwiftProtobuf.Message, SwiftProtobuf
if let v = _storage._color {
try visitor.visitSingularStringField(value: v, fieldNumber: 7)
}
if let v = _storage._blocked {
try visitor.visitSingularBoolField(value: v, fieldNumber: 8)
}
}
try unknownFields.traverse(visitor: &visitor)
}
@ -4184,6 +4208,7 @@ extension SignalServiceProtos_GroupDetails: SwiftProtobuf.Message, SwiftProtobuf
if _storage._active != other_storage._active {return false}
if _storage._expireTimer != other_storage._expireTimer {return false}
if _storage._color != other_storage._color {return false}
if _storage._blocked != other_storage._blocked {return false}
return true
}
if !storagesAreEqual {return false}

View File

@ -164,7 +164,7 @@ static NSString *const OWSMediaGalleryFinderExtensionName = @"OWSMediaGalleryFin
YapDatabaseViewOptions *options = [YapDatabaseViewOptions new];
options.allowedCollections = [[YapWhitelistBlacklist alloc] initWithWhitelist:[NSSet setWithObject:TSMessage.collection]];
return [[YapDatabaseAutoView alloc] initWithGrouping:grouping sorting:sorting versionTag:@"2" options:options];
return [[YapDatabaseAutoView alloc] initWithGrouping:grouping sorting:sorting versionTag:@"3" options:options];
}
+ (BOOL)attachmentIdShouldAppearInMediaGallery:(NSString *)attachmentId transaction:(YapDatabaseReadTransaction *)transaction

View File

@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>2.29.2</string>
<string>2.29.3</string>
<key>CFBundleVersion</key>
<string>2.29.2.3</string>
<string>2.29.3.3</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>NSAppTransportSecurity</key>