Merge remote-tracking branch 'origin/release/2.30.2'

This commit is contained in:
Matthew Chen 2018-10-12 16:00:42 -04:00
commit f1d93d4472
106 changed files with 1791 additions and 1036 deletions

View File

@ -1 +1 @@
2.4.1
2.5.0

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "color-palette-24@1x.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "color-palette-24@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "color-palette-24@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "dark-theme-off-24@1x.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "dark-theme-off-24@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "dark-theme-off-24@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "dark-theme-on-24@1x.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "dark-theme-on-24@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "dark-theme-on-24@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -60,6 +60,13 @@
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>api.directory.signal.org</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>signal.org</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>

View File

@ -195,15 +195,6 @@ NS_ASSUME_NONNULL_BEGIN
}
[contents addSection:censorshipSection];
OWSTableSection *themeSection = [OWSTableSection new];
themeSection.headerTitle = NSLocalizedString(@"THEME_SECTION", nil);
[themeSection addItem:[OWSTableItem switchItemWithText:NSLocalizedString(@"SETTINGS_ADVANCED_DARK_THEME",
@"Label for setting that enables dark theme.")
isOn:[Theme isDarkThemeEnabled]
target:weakSelf
selector:@selector(didToggleThemeSwitch:)]];
[contents addSection:themeSection];
self.contents = contents;
}
@ -285,13 +276,6 @@ NS_ASSUME_NONNULL_BEGIN
[self updateTableContents];
}
- (void)didToggleThemeSwitch:(UISwitch *)sender
{
[Theme setIsDarkThemeEnabled:sender.isOn];
[self updateTableContents];
}
@end
NS_ASSUME_NONNULL_END

View File

@ -85,7 +85,7 @@
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop
target:self
action:@selector(dismissWasPressed:)];
[self updateRightBarButtonForTheme];
[self observeNotifications];
self.title = NSLocalizedString(@"SETTINGS_NAV_BAR_TITLE", @"Title for settings activity");
@ -467,6 +467,44 @@
[RegistrationUtils showReregistrationUIFromViewController:self];
}
#pragma mark - Dark Theme
- (UIBarButtonItem *)darkThemeBarButton
{
UIBarButtonItem *barButtonItem;
if (Theme.isDarkThemeEnabled) {
barButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"ic_dark_theme_on"]
style:UIBarButtonItemStylePlain
target:self
action:@selector(didPressDisableDarkTheme:)];
} else {
barButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"ic_dark_theme_off"]
style:UIBarButtonItemStylePlain
target:self
action:@selector(didPressEnableDarkTheme:)];
}
return barButtonItem;
}
- (void)didPressEnableDarkTheme:(id)sender
{
[Theme setIsDarkThemeEnabled:YES];
[self updateRightBarButtonForTheme];
[self updateTableContents];
}
- (void)didPressDisableDarkTheme:(id)sender
{
[Theme setIsDarkThemeEnabled:NO];
[self updateRightBarButtonForTheme];
[self updateTableContents];
}
- (void)updateRightBarButtonForTheme
{
self.navigationItem.rightBarButtonItem = [self darkThemeBarButton];
}
#pragma mark - Socket Status Notifications
- (void)observeNotifications

View File

@ -4,6 +4,43 @@
import Foundation
@objc
class OWSColorPickerAccessoryView: NeverClearView {
override var intrinsicContentSize: CGSize {
return CGSize(width: kSwatchSize, height: kSwatchSize)
}
override func sizeThatFits(_ size: CGSize) -> CGSize {
return self.intrinsicContentSize
}
let kSwatchSize: CGFloat = 24
@objc
required init(color: UIColor) {
super.init(frame: .zero)
let circleView = CircleView()
circleView.backgroundColor = color
addSubview(circleView)
circleView.autoSetDimensions(to: CGSize(width: kSwatchSize, height: kSwatchSize))
circleView.autoPinEdgesToSuperviewEdges()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
@objc (OWSCircleView)
class CircleView: UIView {
override var bounds: CGRect {
didSet {
self.layer.cornerRadius = self.bounds.size.height / 2
}
}
}
protocol ColorViewDelegate: class {
func colorViewWasTapped(_ colorView: ColorView)
}
@ -12,8 +49,8 @@ class ColorView: UIView {
public weak var delegate: ColorViewDelegate?
public let conversationColor: OWSConversationColor
private let swatchView: UIView
private let selectedRing: UIView
private let swatchView: CircleView
private let selectedRing: CircleView
public var isSelected: Bool = false {
didSet {
self.selectedRing.isHidden = !isSelected
@ -22,26 +59,28 @@ class ColorView: UIView {
required init(conversationColor: OWSConversationColor) {
self.conversationColor = conversationColor
self.swatchView = UIView()
self.selectedRing = UIView()
self.swatchView = CircleView()
self.selectedRing = CircleView()
super.init(frame: .zero)
self.addSubview(selectedRing)
self.addSubview(swatchView)
let cellHeight: CGFloat = 64
// Selected Ring
let cellHeight: CGFloat = ScaleFromIPhone5(60)
selectedRing.autoSetDimensions(to: CGSize(width: cellHeight, height: cellHeight))
selectedRing.layer.cornerRadius = cellHeight / 2
selectedRing.layer.borderColor = Theme.secondaryColor.cgColor
selectedRing.layer.borderWidth = 2
selectedRing.autoPinEdgesToSuperviewEdges()
selectedRing.isHidden = true
// Color Swatch
swatchView.backgroundColor = conversationColor.primaryColor
let swatchSize: CGFloat = 48
self.swatchView.layer.cornerRadius = swatchSize / 2
let swatchSize: CGFloat = ScaleFromIPhone5(46)
swatchView.autoSetDimensions(to: CGSize(width: swatchSize, height: swatchSize))
swatchView.autoCenterInSuperview()
// gestures
@ -240,7 +279,8 @@ class ColorPickerView: UIView, ColorViewDelegate {
private func buildPaletteView(colorViews: [ColorView]) -> UIView {
let paletteView = UIView()
paletteView.layoutMargins = UIEdgeInsets(top: 16, left: 16, bottom: 0, right: 16)
let paletteMargin = ScaleFromIPhone5(12)
paletteView.layoutMargins = UIEdgeInsets(top: paletteMargin, left: paletteMargin, bottom: 0, right: paletteMargin)
let kRowLength = 4
let rows: [UIView] = colorViews.chunked(by: kRowLength).map { colorViewsInRow in
@ -250,7 +290,7 @@ class ColorPickerView: UIView, ColorViewDelegate {
}
let rowsStackView = UIStackView(arrangedSubviews: rows)
rowsStackView.axis = .vertical
rowsStackView.spacing = ScaleFromIPhone5To7Plus(12, 50)
rowsStackView.spacing = ScaleFromIPhone5To7Plus(12, 30)
paletteView.addSubview(rowsStackView)
rowsStackView.ows_autoPinToSuperviewMargins()

View File

@ -3239,17 +3239,7 @@ typedef enum : NSUInteger {
if (self.isGroupConversation) {
[self.uiDatabaseConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
TSGroupThread *gThread = (TSGroupThread *)self.thread;
if (gThread.groupModel) {
TSGroupThread *_Nullable updatedThread =
[TSGroupThread threadWithGroupId:gThread.groupModel.groupId transaction:transaction];
if (updatedThread) {
self.thread = updatedThread;
} else {
OWSFailDebug(@"Could not reload thread.");
}
}
[self.thread reloadWithTransaction:transaction];
}];
[self updateNavigationTitle];
}
@ -3617,7 +3607,7 @@ typedef enum : NSUInteger {
[self.audioAttachmentPlayer stop];
self.audioAttachmentPlayer = nil;
NSString *temporaryDirectory = NSTemporaryDirectory();
NSString *temporaryDirectory = OWSTemporaryDirectory();
NSString *filename = [NSString stringWithFormat:@"%lld.m4a", [NSDate ows_millisecondTimeStamp]];
NSString *filepath = [temporaryDirectory stringByAppendingPathComponent:filename];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];

View File

@ -29,7 +29,7 @@
let titleLabel = UILabel()
titleLabel.text = "\(fileURL)"
titleLabel.sizeToFit()
titleLabel.textColor = UIColor.white
titleLabel.textColor = Theme.primaryColor
titleLabel.lineBreakMode = .byTruncatingHead
self.navigationItem.titleView = titleLabel
}

View File

@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN
}
// Use a predictable file path so that we reuse the cache between app launches.
NSString *temporaryDirectory = NSTemporaryDirectory();
NSString *temporaryDirectory = OWSTemporaryDirectory();
NSString *cacheDirectory = [temporaryDirectory stringByAppendingPathComponent:@"cached_random_files"];
[OWSFileSystem ensureDirectoryExists:cacheDirectory];
NSString *filePath = [cacheDirectory stringByAppendingPathComponent:self.filename];

View File

@ -105,7 +105,9 @@ NS_ASSUME_NONNULL_BEGIN
OWSTableItem *documentsFileBrowserItem = [OWSTableItem
disclosureItemWithText:@"📁 App Container"
actionBlock:^{
NSURL *baseURL = [NSURL URLWithString:[OWSFileSystem appLibraryDirectoryPath]];
NSString *libraryPath = [OWSFileSystem appLibraryDirectoryPath];
NSString *containerPath = [libraryPath stringByDeletingLastPathComponent];
NSURL *baseURL = [NSURL fileURLWithPath:containerPath];
DebugUIFileBrowser *fileBrowser = [[DebugUIFileBrowser alloc] initWithFileURL:baseURL];
[viewController.navigationController pushViewController:fileBrowser animated:YES];
}];

View File

@ -498,7 +498,7 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
// Settings button.
UIBarButtonItem *settingsButton;
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(10, 0)) {
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 0)) {
const NSUInteger kAvatarSize = 28;
UIImage *_Nullable localProfileAvatarImage = [OWSProfileManager.sharedManager localProfileAvatarImage];
UIImage *avatarImage = (localProfileAvatarImage
@ -1208,13 +1208,16 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
return;
}
// We do this synchronously if we're already on the main thread.
DispatchMainThreadSafe(^{
ConversationViewController *conversationVC = [ConversationViewController new];
[conversationVC configureForThread:thread action:action focusMessageId:focusMessageId];
self.lastThread = thread;
[self.navigationController setViewControllers:@[ self, conversationVC ] animated:isAnimated];
if (self.homeViewMode == HomeViewMode_Archive) {
[self.navigationController pushViewController:conversationVC animated:isAnimated];
} else {
[self.navigationController setViewControllers:@[ self, conversationVC ] animated:isAnimated];
}
});
}
@ -1512,7 +1515,12 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
// In Debug this pops up *every* time, which is helpful, but annoying.
// In Production this will pop up at most 3 times per 365 days.
#ifndef DEBUG
[SKStoreReviewController requestReview];
static dispatch_once_t onceToken;
// Despite `SKStoreReviewController` docs, some people have reported seeing the "request review" prompt
// repeatedly after first installation. Let's make sure it only happens at most once per launch.
dispatch_once(&onceToken, ^{
[SKStoreReviewController requestReview];
});
#endif
}
} else {

View File

@ -38,11 +38,15 @@
NS_ASSUME_NONNULL_BEGIN
//#define SHOW_COLOR_PICKER
const CGFloat kIconViewLength = 24;
@interface OWSConversationSettingsViewController () <ContactEditingDelegate,
ContactsViewHelperDelegate,
#ifdef SHOW_COLOR_PICKER
ColorPickerDelegate,
#endif
OWSSheetViewControllerDelegate>
@property (nonatomic) TSThread *thread;
@ -59,7 +63,9 @@ const CGFloat kIconViewLength = 24;
@property (nonatomic, readonly) ContactsViewHelper *contactsViewHelper;
@property (nonatomic, readonly) UIImageView *avatarView;
@property (nonatomic, readonly) UILabel *disappearingMessagesDurationLabel;
#ifdef SHOW_COLOR_PICKER
@property (nonatomic) OWSColorPicker *colorPicker;
#endif
@end
@ -250,8 +256,10 @@ const CGFloat kIconViewLength = 24;
[[OWSDisappearingMessagesConfiguration alloc] initDefaultWithThreadId:self.thread.uniqueId];
}
#ifdef SHOW_COLOR_PICKER
self.colorPicker = [[OWSColorPicker alloc] initWithThread:self.thread];
self.colorPicker.delegate = self;
#endif
[self updateTableContents];
}
@ -291,19 +299,6 @@ const CGFloat kIconViewLength = 24;
[weakSelf showMediaGallery];
}]];
[mainSection addItem:[OWSTableItem
itemWithCustomCellBlock:^{
NSString *colorName = self.thread.conversationColorName;
UIColor *currentColor =
[OWSConversationColor conversationColorOrDefaultForColorName:colorName].themeColor;
NSString *title = NSLocalizedString(@"CONVERSATION_SETTINGS_CONVERSATION_COLOR",
@"Label for table cell which leads to picking a new conversation color");
return [weakSelf disclosureCellWithName:title iconColor:currentColor];
}
actionBlock:^{
[weakSelf showColorPicker];
}]];
if ([self.thread isKindOfClass:[TSContactThread class]] && self.contactsManager.supportsContactEditing
&& !self.hasExistingContact) {
[mainSection addItem:[OWSTableItem itemWithCustomCellBlock:^{
@ -478,6 +473,22 @@ const CGFloat kIconViewLength = 24;
customRowHeight:UITableViewAutomaticDimension
actionBlock:nil]];
}
#ifdef SHOW_COLOR_PICKER
[mainSection
addItem:[OWSTableItem
itemWithCustomCellBlock:^{
ConversationColorName colorName = self.thread.conversationColorName;
UIColor *currentColor =
[OWSConversationColor conversationColorOrDefaultForColorName:colorName].themeColor;
NSString *title = NSLocalizedString(@"CONVERSATION_SETTINGS_CONVERSATION_COLOR",
@"Label for table cell which leads to picking a new conversation color");
return
[weakSelf cellWithName:title iconName:@"ic_color_palette" disclosureIconColor:currentColor];
}
actionBlock:^{
[weakSelf showColorPicker];
}]];
#endif
[contents addSection:mainSection];
@ -693,22 +704,17 @@ const CGFloat kIconViewLength = 24;
return 12.f;
}
- (UITableViewCell *)disclosureCellWithName:(NSString *)name iconColor:(UIColor *)iconColor
- (UITableViewCell *)cellWithName:(NSString *)name
iconName:(NSString *)iconName
disclosureIconColor:(UIColor *)disclosureIconColor
{
OWSAssertDebug(name.length > 0);
UITableViewCell *cell = [self cellWithName:name iconName:iconName];
OWSColorPickerAccessoryView *accessoryView =
[[OWSColorPickerAccessoryView alloc] initWithColor:disclosureIconColor];
[accessoryView sizeToFit];
cell.accessoryView = accessoryView;
UIView *iconView = [UIView containerView];
[iconView autoSetDimensionsToSize:CGSizeMake(kIconViewLength, kIconViewLength)];
UIView *swatchView = [NeverClearView new];
const CGFloat kSwatchWidth = 20;
[swatchView autoSetDimensionsToSize:CGSizeMake(kSwatchWidth, kSwatchWidth)];
swatchView.layer.cornerRadius = kSwatchWidth / 2;
swatchView.backgroundColor = iconColor;
[iconView addSubview:swatchView];
[swatchView autoCenterInSuperview];
return [self cellWithName:name iconView:iconView];
return cell;
}
- (UITableViewCell *)cellWithName:(NSString *)name iconName:(NSString *)iconName
@ -1301,6 +1307,8 @@ const CGFloat kIconViewLength = 24;
#pragma mark - ColorPickerDelegate
#ifdef SHOW_COLOR_PICKER
- (void)showColorPicker
{
OWSSheetViewController *sheetViewController = self.colorPicker.sheetViewController;
@ -1333,6 +1341,8 @@ const CGFloat kIconViewLength = 24;
});
}
#endif
#pragma mark - OWSSheetViewController
- (void)sheetViewControllerRequestedDismiss:(OWSSheetViewController *)sheetViewController

View File

@ -780,7 +780,7 @@ extension URLSessionTask {
// We write assets to the temporary directory so that iOS can clean them up.
// We try to eagerly clean up these assets when they are no longer in use.
let tempDirPath = NSTemporaryDirectory()
let tempDirPath = OWSTemporaryDirectory()
let dirPath = (tempDirPath as NSString).appendingPathComponent("GIFs")
do {
let fileManager = FileManager.default

View File

@ -79,7 +79,7 @@ NSString *const kOWSBackup_KeychainService = @"kOWSBackup_KeychainService";
// TODO: Exports should use a new directory each time, but imports
// might want to use a predictable directory so that repeated
// import attempts can reuse downloads from previous attempts.
NSString *temporaryDirectory = NSTemporaryDirectory();
NSString *temporaryDirectory = OWSTemporaryDirectory();
self.jobTempDirPath = [temporaryDirectory stringByAppendingPathComponent:[NSUUID UUID].UUIDString];
if (![OWSFileSystem ensureDirectoryExists:self.jobTempDirPath]) {

View File

@ -39,7 +39,7 @@ public class OWSBackupLazyRestoreJob: NSObject {
}
private func restoreAttachments() {
let temporaryDirectory = NSTemporaryDirectory()
let temporaryDirectory = OWSTemporaryDirectory()
let jobTempDirPath = (temporaryDirectory as NSString).appendingPathComponent(NSUUID().uuidString)
guard OWSFileSystem.ensureDirectoryExists(jobTempDirPath) else {

View File

@ -214,8 +214,7 @@ typedef void (^OrphanDataBlock)(OWSOrphanData *);
// a single launch of the app. Since our "date threshold"
// for deletion is relative to the current launch time,
// all temp files currently in use should be safe.
NSString *temporaryDirectory = NSTemporaryDirectory();
NSArray<NSString *> *_Nullable tempFilePaths = [self filePathsInDirectorySafe:temporaryDirectory].allObjects;
NSArray<NSString *> *_Nullable tempFilePaths = [self getTempFilePaths];
if (!tempFilePaths || !self.isMainAppAndActive) {
return nil;
}
@ -718,6 +717,21 @@ typedef void (^OrphanDataBlock)(OWSOrphanData *);
return YES;
}
+ (nullable NSArray<NSString *> *)getTempFilePaths
{
NSString *dir1 = OWSTemporaryDirectory();
NSArray<NSString *> *_Nullable paths1 = [[self filePathsInDirectorySafe:dir1].allObjects mutableCopy];
NSString *dir2 = OWSTemporaryDirectoryAccessibleAfterFirstAuth();
NSArray<NSString *> *_Nullable paths2 = [[self filePathsInDirectorySafe:dir2].allObjects mutableCopy];
if (paths1 && paths2) {
return [paths1 arrayByAddingObjectsFromArray:paths2];
} else {
return nil;
}
}
@end
NS_ASSUME_NONNULL_END

View File

@ -392,7 +392,7 @@ typedef void (^DebugLogUploadFailure)(DebugLogUploader *uploader, NSError *error
[dateFormatter setDateFormat:@"yyyy.MM.dd hh.mm.ss"];
NSString *dateString = [dateFormatter stringFromDate:[NSDate new]];
NSString *logsName = [[dateString stringByAppendingString:@" "] stringByAppendingString:NSUUID.UUID.UUIDString];
NSString *tempDirectory = NSTemporaryDirectory();
NSString *tempDirectory = OWSTemporaryDirectory();
NSString *zipFilePath =
[tempDirectory stringByAppendingPathComponent:[logsName stringByAppendingPathExtension:@"zip"]];
NSString *zipDirPath = [tempDirectory stringByAppendingPathComponent:logsName];

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "لم يتم السماح للتطبيق بالدخول على Icloud.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "المقارنة مع الحافظة";
@ -531,7 +540,7 @@
"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" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "معلومات المجموعة";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Clipboard-la müqayisə et";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Group Info";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal няма достъп до вашия iCloud акаунт за архиви.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Сравнете с копираното";
@ -531,7 +540,7 @@
"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" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Информация за групата";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Uporedi sa međuspremnikom";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informacije o kontaktu";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informacije o grupi";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal no ha pogut accedir al teu compte iCloud per la còpia de seguretat";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Compara'l amb el porta-retalls";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informació del contacte";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informació del grup";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Aplikace Signal nemá povolení přistupovat k zálohám účtu iCloud.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Porovnat se schránkou";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informace o kontaktu";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Barva";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informace o skupině";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal fik ikke adgang til din iCloud-konto til sikkerhedskopiering.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Sammenlign med Udklipsholder";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinformation";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Farve";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Gruppeinformation";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ in Gruppe %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal kann nicht starten. Bitte sende ein Diagnoseprotokoll an support@signal.org, damit wir dieses Problem beheben können.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Fehler";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Version %@ ist nun im App Store verfügbar.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Neue Signal-Version verfügbar";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Aktualisieren";
@ -114,10 +114,10 @@
"ATTACHMENT_DEFAULT_FILENAME" = "Anhang";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Herunterladen gescheitert. Für erneuten Versuch antippen.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Wird heruntergeladen …";
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Wird heruntergeladen …";
/* Status label when an attachment is enqueued, but hasn't yet started downloading */
"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "In Wartereihe";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "Fehler beim Senden des Anhangs";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Bild kann nicht konvertiert werden.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Verarbeiten des Videos nicht möglich.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Video kann nicht verarbeitet werden.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Bild kann nicht geparst werden.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Metadaten konnten nicht aus dem Bild entfernt werden.";
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Metadaten können nicht aus dem Bild entfernt werden.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Bildgröße kann nicht geändert werden.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Anhang ist zu groß.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Anhang besitzt ungültigen Inhalt.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Anhang besitzt ein ungültiges Dateiformat.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Anhang ist leer.";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Auswählen des Dokuments gescheitert.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Bitte erstelle ein komprimiertes Archiv von dieser Datei oder diesem Ordner und versuche stattdessen dieses zu versenden.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Datei nicht unterstützt";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "Erneut anrufen";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "Du kannst den Zugriff auf das Mikrofon in der iOS-App »Einstellungen« aktivieren, um Anrufe zu machen und Sprachnachrichten aufzuzeichnen.";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "Zugriff auf Mikrofon erforderlich";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Anrufen";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Keine Antwort";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "Stummschalten";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "Du kannst die iOS-Anrufintegration in Signals Datenschutzeinstellungen aktivieren, um eingehende Anrufe vom Sperrbildschirm aus anzunehmen.";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "Du kannst die iOS-Anrufintegration in Signals Datenschutzeinstellungen aktivieren, um für eingehende Anrufe Name und Rufnummer zu sehen.";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Nicht jetzt";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal wurde kein Zugriff auf dein iCloud-Benutzerkonto für Sicherungen gewährt.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Wähle die Farbe ausgehender Nachrichten für diese Unterhaltung.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Nur du wirst die gewählte Farbe sehen.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Unterhaltungsfarbe";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Mit Zwischenablage vergleichen";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "Einladen";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "Du kannst den Zugriff auf deine Kontakte in der iOS-App »Einstellungen« aktivieren, um zu sehen, welche deiner Kontakte Signal verwenden.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Dies setzt die App in ihren Ursprungszustand zurück. Dabei werden alle deine Nachrichten und dein Benutzerkonto auf dem Server gelöscht. Nach Abschluss des Vorgangs beendet sich die App automatisch.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Möchtest du dein Benutzerkonto wirklich löschen?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinformationen";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Farbe";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Unterhaltungsfarbe";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Gruppeninformationen";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Zu Kontakten hinzufügen";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Dein Profil mit diesem Benutzer teilen";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Dieser Benutzer befindet sich nicht in deinen Kontakten.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Mehr Nachrichten werden geladen …";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Antippen für mehr";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Diesen Benutzer blockieren";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Ort für Zensurumgehung";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "Du kannst den Zugriff in der App »Einstellungen« aktivieren.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal benötigt Zugriff auf die Kontakte, um Kontaktinformationen bearbeiten zu können";
@ -733,7 +742,7 @@
"EDIT_GROUP_DEFAULT_TITLE" = "Gruppe bearbeiten";
/* Label for the cell that lets you add a new member to a group. */
"EDIT_GROUP_MEMBERS_ADD_MEMBER" = "Hinzufügen …";
"EDIT_GROUP_MEMBERS_ADD_MEMBER" = "Hinzufügen …";
/* a title for the members section of the 'new/update group' view. */
"EDIT_GROUP_MEMBERS_SECTION_TITLE" = "Mitglieder";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Aktualisieren";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Möchtest du deine Änderungen an dieser Gruppe speichern?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Ungespeicherte Änderungen";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "Lass uns zu Signal wechseln";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "Du kannst inaktive Unterhaltungen aus dem Eingang archivieren.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "Räume deine Unterhaltungsliste auf";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "Keiner deiner Kontakte verwendet Signal.";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "Starte deine erste Signal-Unterhaltung!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "Nichts. Null. Nada. Niente.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "Leerer Eingang";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "Bestätige deine PIN.";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Senden der Nachricht gescheitert.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Senden nicht möglich aufgrund veralteter Sicherheitsdaten.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Nachrichtenversand gescheitert, da du den Benutzer blockiert hast.";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Speichern und Senden des Anhangs gescheitert.";
/* Generic error used whenever Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal konnte keine Verbindung zum Internet herstellen. Bitte erneut versuchen.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Nachrichtenversand gescheitert, da keine gültigen Empfänger vorhanden.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Ungültige Antwort des Dienstes.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Dieses Gerät ist für deine Rufnummer nicht mehr registriert. Bitte installiere Signal erneut.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "Serverfehler. Bitte versuche es später erneut.";
@ -868,10 +877,10 @@
"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "Kontakt ist kein Signal-Nutzer.";
/* Error message when unable to receive an attachment because the sending client is too old. */
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Anhangsfehler: Bitte diesen Kontakt, Signal zu aktualisieren und danach die Nachricht erneut zu senden.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Nachrichtenduplikat erhalten.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "Empfängerschlüssel ist ungültig.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "Empfangene Nachricht war fehlerhaft verschlüsselt.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "Mit dieser Signal-Version inkompatible Nachricht erhalten.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "Kein Schlüssel für diesen Kontakt vorhanden.";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "Unregistrierter Benutzer: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Zu viele Fehler mit diesem Kontakt. Bitte später erneut versuchen.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Deine Sicherheitsnummer mit %@ hat sich kürzlich geändert. Vielleicht möchtest du vor dem erneuten Senden deinen Kontakt verifizieren.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Verifizieren der Sicherheitsnummer gescheitert!";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "Diese Unterhaltung enthält keine Medieninhalte.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Neuere Medieninhalte werden geladen …";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Ältere Medieninhalte werden geladen …";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Anhang";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "Anrufen";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Verifikation für alle entfernen";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "Dies wird die Verifikation für alle Gruppenmitglieder entfernen, deren Sicherheitsnummern sich seit dem jeweils letzten Verifizieren geändert haben.";
@ -1030,25 +1039,25 @@
"HOME_VIEW_TITLE_INBOX" = "Signal";
/* Call setup status label */
"IN_CALL_CONNECTING" = "Verbinden …";
"IN_CALL_CONNECTING" = "Verbinden …";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Verbindung wird wiederhergestellt …";
/* Call setup status label */
"IN_CALL_RINGING" = "Klingeln …";
"IN_CALL_RINGING" = "Klingeln …";
/* Call setup status label */
"IN_CALL_SECURING" = "Angenommen. Absichern …";
"IN_CALL_SECURING" = "Angenommen. Absichern …";
/* Call setup status label */
"IN_CALL_TERMINATED" = "Anruf beendet.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Diese Unterhaltungen sind archiviert und werden nur dann im Eingang erscheinen, falls neue Nachrichten empfangen werden.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "Du kannst den Zugriff auf deine Kontakte in der iOS-App »Einstellungen« aktivieren, um Kontaktnamen in Signals Unterhaltungsliste zu sehen.";
/* notification body */
"INCOMING_CALL" = "Eingehender Anruf";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Ungültige Audiodatei.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "Du kannst den Zugriff auf deine Kontakte in der iOS-App »Einstellungen« aktivieren, um deine Freunde zu Signal einzuladen.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Zugriff auf Kontakte erlauben";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Freunde einladen";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Gleichzeitiges Einladen mehrerer Benutzer beginnt eine Gruppennachricht, deren Empfänger sich gegenseitig sehen können.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "Nachrichten verschwinden nach %@.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "Gruppe verlassen";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "Dieser QR-Code ist ungültig. Stelle bitte sicher, dass du den QR-Code einscannst, der auf dem zu koppelnden Gerät angezeigt wird.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "Koppeln des Geräts gescheitert";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Dieses Gerät wird in der Lage sein, deine Gruppen und Kontakte zu sehen, auf deine Unterhaltungen zuzugreifen und Nachrichten in deinem Namen zu versenden.";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Gerät koppeln?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "Erneut versuchen";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scanne den auf dem zu koppelnden Gerät angezeigten QR-Code ein.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "QR-Code einscannen";
@ -1168,16 +1177,16 @@
"MESSAGE_ACTION_COPY_TEXT" = "Nachrichtentext kopieren";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Diese Nachricht löschen";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Sie wird nur auf diesem Gerät gelöscht";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "Mehr Details";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to This Message";
"MESSAGE_ACTION_REPLY" = "Auf diese Nachricht antworten";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Medieninhalte speichern";
@ -1258,19 +1267,19 @@
"MESSAGE_STATUS_SEND_FAILED" = "Versand gescheitert";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Wird gesendet …";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Gesendet";
/* status message while attachment is uploading */
"MESSAGE_STATUS_UPLOADING" = "Wird hochgeladen …";
"MESSAGE_STATUS_UPLOADING" = "Wird hochgeladen …";
/* 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" = "%@ ist nicht mehr als verifiziert markiert. Für Optionen antippen.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Du hast diesen Benutzer blockiert";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ ist nicht mehr als verifiziert markiert. Für Optionen antippen.";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "Du kannst den Zugriff auf die Kamera in der iOS-App »Einstellungen« aktivieren, um in Signal Videoanrufe zu machen.";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal benötigt Zugriff auf deine Kamera.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Du kannst diese Berechtigung in der iOS-App »Einstellungen« aktivieren.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal benötigt für diese Funktion Zugriff auf deine Fotos.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Entgangener Anruf von %@.";
@ -1332,7 +1341,7 @@
"MULTIDEVICE_PAIRING_MAX_DESC" = "Du kannst keine weiteren Geräte koppeln.";
/* 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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Du hast die maximale Anzahl an Geräten erreicht, die du derzeit mit deinem Benutzerkonto koppeln kannst. Bitte entferne ein Gerät und versuche es erneut.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Du wirst keine Mitteilungen über stummgeschaltete Unterhaltungen erhalten.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "Überspringen";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Bitte überprüfe, ob du online bist, und versuche es erneut.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Zensurumgehung: An";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Via Rufnummer suchen";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Via Rufnummer hinzufügen";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Gruppenbild festlegen";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Dein Kontakt verwendet eine alte Version von Signal. Um den Kontakt verifizieren zu können, muss dieser die Signal-App aktualisieren.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Der eingescannte Code sieht nicht wie eine Sicherheitsnummer aus. Verwendet ihr beide die aktuelle Version von Signal?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Falls du die Sicherheit deiner Ende-zu-Ende-Verschlüsselung mit %@ verifizieren möchtest, vergleiche bitte die oben dargestellten Nummern mit den Nummern auf dem Gerät deines Kontakts.\n\nAlternativ kannst du den Code deines Kontakts einscannen oder ihn deinen eigenen Code einscannen lassen.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Speichern";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Wird gespeichert …";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profil";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Rufnummer";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Du musst dich registrieren, bevor du eine Nachricht senden kannst.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Deine Rufnummer";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Versenden der Einladung gescheitert. Bitte später erneut versuchen.";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Du hast deinen Freund eingeladen, Signal zu verwenden!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Via SMS einladen: %@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Anrufe immer umleiten";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Alle Anrufe über einen Signal-Server leiten, um deine IP-Adresse gegenüber Kontakten nicht offenzulegen. Bei Aktivierung wird sich die Anrufqualität verringern.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Unterhaltungsverlauf löschen";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Urheberrecht Signal Messenger \nLizensiert unter GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Benutzerkonto löschen";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Alle Daten löschen";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Möchtest du den gesamten Verlauf (Nachrichten, Anhänge, Anrufe usw.) wirklich löschen? Dieser Vorgang ist unwiderruflich.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Alles löschen";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Deine Sicherheitsnummer mit %@ hat sich kürzlich geändert. Vielleicht möchtest du sie vor dem erneuten Senden in der Haupt-App verifizieren.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Wird geladen …";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Starte zum Registrieren die Signal-App.";
@ -2115,10 +2124,10 @@
"SHARE_EXTENSION_NOT_YET_MIGRATED_TITLE" = "Nicht bereit";
/* Alert title */
"SHARE_EXTENSION_SENDING_FAILURE_TITLE" = "Senden des Anhangs nicht möglich";
"SHARE_EXTENSION_SENDING_FAILURE_TITLE" = "Anhang kann nicht versendet werden";
/* Alert title */
"SHARE_EXTENSION_SENDING_IN_PROGRESS_TITLE" = "Wird hochgeladen …";
"SHARE_EXTENSION_SENDING_IN_PROGRESS_TITLE" = "Wird hochgeladen …";
/* Shown when trying to share content to a Signal user for the share extension. Followed by failure details. */
"SHARE_EXTENSION_UNABLE_TO_BUILD_ATTACHMENT_ALERT_TITLE" = "Anhang kann nicht vorbereitet werden";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "Entkoppeln";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "Dieses Gerät wird keine Nachrichten mehr versenden oder empfangen können sobald es entkoppelt wird.";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "»%@« entkoppeln?";
@ -2241,7 +2250,7 @@
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Gruppenmitglieder können nicht entfernt werden. Entweder müssen diese die Gruppe selbst verlassen oder du kannst eine neue Gruppe ohne sie erstellen.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Nicht unterstützt";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Die iOS-Anrufintegration macht die Anrufannahme vom Sperrbildschirm aus einfach. Weiterhin ist sie vertraulich, denn mit der Standardeinstellung werden deine Anrufer anonymisiert.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Hallo, sichere Videoanrufe!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal erfordert iOS 9 oder neuer. Bitte benutze die Softwareaktualisierung in der iOS-App »Einstellungen«.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "iOS aktualisieren";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Signal wird aktualisiert …";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Zurück";

View File

@ -33,13 +33,13 @@
"ADD_GROUP_MEMBER_VIEW_TITLE" = "Προσθήκη Μέλους";
/* Message shown in conversation view that offers to share your profile with a group. */
"ADD_GROUP_TO_PROFILE_WHITELIST_OFFER" = "Θα θέλατε να μοιραστείτε το προφίλ σας με αυτή την ομάδα;";
"ADD_GROUP_TO_PROFILE_WHITELIST_OFFER" = "Θέλετε να μοιραστείτε το προφίλ σας με αυτή την ομάδα;";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"ADD_TO_CONTACTS_OFFER" = "Θα θέλατε να προσθέσετε αυτόν τον χρήστη στις επαφές σας;";
"ADD_TO_CONTACTS_OFFER" = "Θέλετε να προσθέσετε αυτόν τον χρήστη στις επαφές σας;";
/* Message shown in conversation view that offers to share your profile with a user. */
"ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Θα θέλατε να μοιραστείτε το προφίλ σας με αυτόν τον χρήστη;";
"ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Θέλετε να μοιραστείτε το προφίλ σας με αυτόν τον χρήστη;";
/* The label for the 'discard' button in alerts and action sheets. */
"ALERT_DISCARD_BUTTON" = "Απόρριψη";
@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ στην ομάδα %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Το Signal δεν μπορεί να εκκινηθεί. Παρακαλούμε να στείλετε ένα αρχείο καταγραφής σφαλμάτων στη διεύθυνση support@signal.org για να μπορέσουμε να επιλύσουμε το πρόβλημα.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Σφάλμα";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Η έκδοση %@ είναι τώρα διαθέσιμη στο App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Μια νέα έκδοση του Signal είναι διαθέσιμη";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Αναβάθμιση";
@ -114,40 +114,40 @@
"ATTACHMENT_DEFAULT_FILENAME" = "Συνημμένο";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Η λήψη απέτυχε. Πατήστε για επανάληψη.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Λήψη...";
/* Status label when an attachment is enqueued, but hasn't yet started downloading */
"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Σε σειρά προτεραιότητας";
"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Σε αναμονή";
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Σφάλμα αποστολής συννημένου";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Αδυναμία μετατροπής της εικόνας.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Αδυναμία επεξεργασίας βίντεο.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Αδυναμία ανάλυσης της εικόνας.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Αδυναμία κατάργησης μεταδεδομένων από την εικόνα.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Αδυναμία αλλαγής μεγέθους της εικόνας.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Το συνημμένο είναι πολύ μεγάλο.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Το συνημμένο περιλαμβάνει μη έγκυρο περιεχόμενο.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Το συνημμένο έχει μη έγκυρη μορφή αρχείου.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Το συννημένο είναι κενό.";
@ -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" = "Please create a compressed archive of this file or directory and try sending that instead.";
"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" = "Μη υποστηριζόμενο αρχείο";
@ -186,7 +186,7 @@
"BACKUP_EXPORT_ERROR_INVALID_CLOUDKIT_RESPONSE" = "Μη έγκυρη απόκριση υπηρεσίας";
/* Error indicating the backup export failed to save a file to the cloud. */
"BACKUP_EXPORT_ERROR_SAVE_FILE_TO_CLOUD_FAILED" = "Δεν ήταν δυνατή η μεταφόρτωση των δεδομένων του αντιγράφου ασφαλείας .";
"BACKUP_EXPORT_ERROR_SAVE_FILE_TO_CLOUD_FAILED" = "Δεν ήταν δυνατή η μεταφόρτωση των δεδομένων του αντιγράφου ασφαλείας.";
/* Indicates that the cloud is being cleaned up. */
"BACKUP_EXPORT_PHASE_CLEAN_UP" = "Εκκαθάριση Αντιγράφου Ασφαλείας";
@ -216,7 +216,7 @@
"BACKUP_IMPORT_PHASE_FINALIZING" = "Ολοκλήρωση δημιουργίας αντιγράφου ασφαλείας";
/* Indicates that the backup import data is being imported. */
"BACKUP_IMPORT_PHASE_IMPORT" = "Εισαγωγή Αντιγράφου Ασφαλείας.";
"BACKUP_IMPORT_PHASE_IMPORT" = "Εισαγωγή αντιγράφου ασφαλείας.";
/* Indicates that the backup database is being restored. */
"BACKUP_IMPORT_PHASE_RESTORING_DATABASE" = "Επαναφορά βάσης δεδομένων";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "Επανάκληση";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "Μπορείτε να ενεργοποιήσετε την πρόσβαση στο μικρόφωνο στην εφαρμογή Ρυθμίσεις του iOS για να πραγματοποιείτε κλήσεις και να εγγράφετε φωνητικά μηνύματα στο Signal.";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "Απαιτείται πρόσβαση στο μικρόφωνο";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Κλήση";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Δεν απαντάει";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Το Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "Σίγαση";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "Μπορείτε να ενεργοποιήσετε την ενσωμάτωση κλήσεων iOS στις ρυθμίσεις απορρήτου του Signal για να απαντάτε στις εισερχόμενες κλήσεις από την οθόνη κλειδώματος.";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "Μπορείτε να ενεργοποιήσετε την ενσωμάτωση κλήσεων iOS στις ρυθμίσεις απορρήτου του Signal για για να βλέπετε το όνομα και τον αριθμό τηλεφώνου για τις εισερχόμενες κλήσεις.";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Όχι Τώρα";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Δεν επετράπη στο Signal η πρόσβαση στο λογαριασμό σας iCloud για αντίγραφα ασφαλείας.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Επιλέξτε το χρώμα των εξερχόμενων μηνυμάτων σε αυτήν τη συνομιλία.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Μόνο εσείς θα βλέπετε το χρώμα που θα επιλέξετε.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Χρώμα Συνομιλίας";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Σύγκριση με Πρόχειρο";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "Πρόσκληση";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "Μπορείτε να ενεργοποιήσετε την πρόσβαση στις επαφές στην εφαρμογή Ρυθμίσεις του iOS για να δείτε ποιοι από τις επαφές σας είναι χρήστες του Signal.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Αυτό θα επαναφέρει την εφαρμογή στην αρχική κατάσταση, διαγράφοντας τα μηνύματα και το λογαριασμό σας από τον διακομιστή. Η εφαρμογή θα κλείσει μετά την ολοκλήρωση αυτής της διαδικασίας.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Είστε σίγουρος/η ότι θέλετε να διαγράψετε το λογαριασμό σας;";
@ -411,7 +420,7 @@
"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "Δε θα έχετε πια τη δυνατότητα αποστολής ή λήψης μηνυμάτων σε αυτήν την ομάδα.";
/* Alert title */
"CONFIRM_LEAVE_GROUP_TITLE" = "Θέλετε πραγματικά να φύγετε;";
"CONFIRM_LEAVE_GROUP_TITLE" = "Θέλετε πραγματικά να αποχωρήσετε;";
/* Button text */
"CONFIRM_LINK_NEW_DEVICE_ACTION" = "Σύνδεση Νέας Συσκευής";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Πληροφορίες Επαφής";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Χρώμα";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Χρώμα Συνομιλίας";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Πληροφορίες Ομάδας";
@ -591,22 +600,22 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Προσθήκη στις Επαφές";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Κοινή χρήση του προφίλ σας με αυτόν τον χρήστη";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Αυτός ο χρήστης δεν βρίσκεται στις επαφές σας.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Φόρτωση Περισσότερων Μηνυμάτων...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"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" = "Αποκλεισμός του χρήστη";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "Η επαναφορά της συνεδρίας θα επιτρέψει τη λήψη μελλοντικών μηνυμάτων από τον/την %@, αλλά θα ανακτήσει τα ήδη κατεστραμμένα μηνύματα.";
"CORRUPTED_SESSION_DESCRIPTION" = "Η επαναφορά της συνεδρίας θα επιτρέψει τη λήψη μελλοντικών μηνυμάτων από τον/την %@, αλλά δεν θα ανακτήσει τα ήδη κατεστραμμένα μηνύματα.";
/* No comment provided by engineer. */
"COUNTRYCODE_SELECT_TITLE" = "Επιλογή Κωδικού Χώρας";
@ -624,10 +633,10 @@
"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" = "%@ Ώρες Πρίν";
"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" = "%@ Λεπτά Πρίν";
"DATE_MINUTES_AGO_FORMAT" = "%@ Λεπ. Πρίν";
/* The present; the current time. */
"DATE_NOW" = "Τώρα";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Τοποθεσία παράκαμψης λογοκρισίας";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "Μπορείτε να ενεργοποιήσετε την πρόσβαση στην εφαρμογή \"Ρυθμίσεις\" του iOS.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Το Signal χρειάζεται πρόσβαση στις επαφές για να επεξεργαστεί πληροφορίες επαφών";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Ενημέρωση";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Θέλετε να αποθηκεύσετε τις αλλαγές που κάνατε σε αυτήν την ομάδα;";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Μη αποθηκευμένες αλλαγές";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "Ας χρησιμοποιήσουμε το Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "Μπορείτε να αρχειοθετήσετε τις ανενεργές συνομιλίες από τα εισερχόμενα σας.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "Εκκαθάριση λίστας συνομιλιών";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "Καμία απο τις επαφές σας δεν χρησιμοποιεί το Signal.";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "Αρχίστε την πρώτη συνομιλία σας στο Signal!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "Κανένα. Τίποτα. Μηδέν.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "Κανένα Εισερχόμενο";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "Επιβεβαιώστε το PIN σας.";
@ -808,13 +817,13 @@
"ENABLE_2FA_VIEW_PIN_DOES_NOT_MATCH" = "Τα PIN δεν ταιριάζουν.";
/* Indicates that user should select a 'two factor auth pin'. */
"ENABLE_2FA_VIEW_SELECT_PIN_INSTRUCTIONS" = "Πληκτρολογήστε ένα PIN κλειδώματος εγγραφής. Θα σας ζητηθεί να εισάγετε αυτό το ΡΙΝ την επόμενη φορά που θα καταχωρήσετε τον αριθμό του τηλεφώνου σας στο Signal.";
"ENABLE_2FA_VIEW_SELECT_PIN_INSTRUCTIONS" = "Πληκτρολογήστε ένα PIN κλειδώματος εγγραφής. Θα σας ζητηθεί να εισάγετε αυτό το ΡΙΝ την επόμενη φορά που θα καταχωρήσετε αυτον τον αριθμό τηλεφώνου στο Signal.";
/* Indicates that user has 'two factor auth pin' disabled. */
"ENABLE_2FA_VIEW_STATUS_DISABLED_INSTRUCTIONS" = "Για αυξημένη ασφάλεια, ενεργοποιήστε το PIN κλείδωματος εγγραφής που θα απαιτείται για να επανεγγράψετε αυτόν τον αριθμό τηλεφώνου στο Signal.";
/* Indicates that user has 'two factor auth pin' enabled. */
"ENABLE_2FA_VIEW_STATUS_ENABLED_INSTRUCTIONS" = "Το κλείδωμα εγγραφής είναι ενεργοποιημένο. Θα χρειαστεί να εισάγετε το PIN σας κατά την επανεγγραφή τού αριθμού τηλεφώνου σας με το Signal.";
"ENABLE_2FA_VIEW_STATUS_ENABLED_INSTRUCTIONS" = "Το κλείδωμα εγγραφής είναι ενεργοποιημένο. Θα χρειαστεί να εισάγετε το PIN σας κατά την επανεγγραφή τού αριθμού τηλεφώνου σας στο Signal.";
/* Title for the 'enable two factor auth PIN' views. */
"ENABLE_2FA_VIEW_TITLE" = "Κλείδωμα εγγραφής";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Η αποστολή του μηνύματος απέτυχε.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Αδυναμία αποστολής λόγω μη ενημερωμένων prekey δεδομένων.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Αποτυχία αποστολής μηνύματος στον χρήστη επειδή τον έχετε αποκλείσει.";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"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 was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Το Signal δεν μπόρεσε να συνδεθεί στο ίντερνετ. Παρακαλώ δοκιμάστε ξανά.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Αποτυχία αποστολής μηνύματος λόγω απουσίας έγκυρων παραληπτών.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Μη έγκυρη απάντηση από την υπηρεσία.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Αυτή η συσκευή δεν είναι πλέον εγγεγραμμένη με τον αριθμό τηλεφώνου σας. Παρακαλώ εγκαταστήστε ξανά το Signal.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "Σφάλμα διακομιστή. Παρακαλώ δοκιμάστε αργότερα.";
@ -868,10 +877,10 @@
"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "Η επαφή δεν χρησιμοποιεί Signal.";
/* Error message when unable to receive an attachment because the sending client is too old. */
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Αποτυχία συνημμένου: Ζητήστε από την επαφή να ξανά στείλει το μήνυμα αφού ενημερώσει το Signal στην τελευταία έκδοση.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Λάβατε διπλότυπο μήνυμα.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "Το κλειδί του παραλήπτη δεν είναι έγκυρο.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "Το μήνυμα που λάβατε ήταν εκτός συγχρονισμού.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "Λήψη μηνύματος που δεν είναι συμβατό με αυτή την έκδοση.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "Δεν υπάρχει διαθέσιμή συνεδρία για αυτή την επαφή.";
@ -901,16 +910,16 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "Μη Εγγεγραμμένος Χρήστης: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Πάρα πολλές αποτυχίες με αυτή την επαφή. Παρακαλώ δοκιμάστε ξανά αργότερα.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Ο αριθμός ασφαλείας με τον/την %@ άλλαξε πρόσφατα. Ίσως θέλετε να τον επιβεβαιώσετε πριν στείλετε ξανά αυτό το μήνυμα..";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Αποτυχία επιβεβαίωσης αριθμού ασφαλείας!";
/* Button that marks user as verified after a successful fingerprint scan. */
"FINGERPRINT_SCAN_VERIFY_BUTTON" = "Σημείωση ως επιβεβαιωμένο";
"FINGERPRINT_SCAN_VERIFY_BUTTON" = "Σημείωση ως Επιβεβαιωμένος/η";
/* No comment provided by engineer. */
"FINGERPRINT_SHRED_KEYMATERIAL_BUTTON" = "Επαναφορά συνεδρίας";
@ -919,13 +928,13 @@
"FINISH_GROUP_CREATION_LABEL" = "Ολοκλήρωση δημιουργίας ομάδας";
/* Label indicating media gallery is empty */
"GALLERY_TILES_EMPTY_GALLERY" = "Δεν έχετε μέσα σε αυτή τη συνομιλία.";
"GALLERY_TILES_EMPTY_GALLERY" = "Δεν έχετε πολυμέσα σε αυτή τη συνομιλία.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Φόρτωση Νεώτερων Πολυμέσων...";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Φόρτωση Παλαιότερων Πολυμέσων...";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Συνημμένο";
@ -940,7 +949,7 @@
"GIF_PICKER_FAILURE_ALERT_TITLE" = "Αδυναμία επιλογής GIF";
/* Alert message shown when user tries to search for GIFs without entering any search terms. */
"GIF_PICKER_VIEW_MISSING_QUERY" = "Παρακαλώ εισάγετε την αναζήτησή σας.";
"GIF_PICKER_VIEW_MISSING_QUERY" = "Παρακαλώ εισάγετε την αναζήτηση σας.";
/* Title for the 'GIF picker' dialog. */
"GIF_PICKER_VIEW_TITLE" = "Αναζήτηση GIF";
@ -952,7 +961,7 @@
"GIF_VIEW_SEARCH_NO_RESULTS" = "Δεν υπάρχουν αποτελέσματα.";
/* Placeholder text for the search field in GIF view */
"GIF_VIEW_SEARCH_PLACEHOLDER_TEXT" = "Παρακαλώ εισάγετε την αναζήτησή σας.";
"GIF_VIEW_SEARCH_PLACEHOLDER_TEXT" = "Εισάγετε την αναζήτηση σας";
/* No comment provided by engineer. */
"GROUP_AVATAR_CHANGED" = "Η εικόνα προφίλ άλλαξε.";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "Κλήση";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Εκκαθάριση επιβεβαίωσης για όλους";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "Αυτό θα αφαιρέσει την επιβεβαίωση όλων των μελών της ομάδας των οποίων οι αριθμοί ασφαλείας άλλαξαν από την τελευταία επιβεβαίωσή τους.";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "Συνδέεται...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Επανασύνδεση...";
/* Call setup status label */
"IN_CALL_RINGING" = "Καλεί...";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "Η Κλήση Τερματίστηκε.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Αυτές οι συνομιλίες είναι αρχειοθετημένες και θα εμφανιστούν στα εισερχόμενα μόνο αν ληφθούν νέα μηνύματα.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "Μπορείτε να ενεργοποιήσετε την πρόσβαση στις επαφές στην εφαρμογή Ρυθμίσεις του iOS για να βλέπετε τα ονόματα των επαφών στη λίστα συνομιλιών του Signal.";
/* notification body */
"INCOMING_CALL" = "Εισερχόμενη κλήση";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Μη έγκυρο αρχείο ήχου.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "Μπορείτε να ενεργοποιήσετε την πρόσβαση στις επαφές στην εφαρμογή Ρυθμίσεις του iOS για να προσκαλέσετε τους φίλους σας στο Signal.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Να Επιτρέπεται η Πρόσβαση στις Επαφές";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Πρόσκληση Φίλων";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Προσκαλώντας πολλαπλούς χρήστες την ίδια στιγμή θα ξεκινήσει ένα ομαδικό μήνυμα του οποίου οι παραλήπτες θα μπορούν να δουν ο ένας τον άλλον.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "Εξαφάνιση μηνυμάτων μετά από %@.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "Αποχώρηση από την Ομάδα";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "Αυτός ο κωδικός QR δεν είναι έγκυρος. Παρακαλώ βεβαιωθείτε ότι σαρώνετε τον κωδικό QR που εμφανίζεται στη συσκευή που θέλετε να συνδέσετε.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "Αποτυχία Σύνδεσης Συσκευής";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Αυτή η συσκευή θα μπορεί να βλέπει τις ομάδες και τις επαφές σας, να έχει πρόσβαση στις συνομιλίες σας και να στέλνει μηνύματα σαν να είναι εσείς.";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Σύνδεση της συσκευής αυτής;";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "Επανάληψη";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Σαρώστε τον κωδικό QR που εμφανίζεται στη συσκευή που θέλετε να συνδέσετε.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "Σάρωση Κωδικού QR";
@ -1138,7 +1147,7 @@
"LONG_TEXT_VIEW_TITLE" = "Μήνυμα";
/* nav bar button item */
"MEDIA_DETAIL_VIEW_ALL_MEDIA_BUTTON" = "Όλα τα Μέσα";
"MEDIA_DETAIL_VIEW_ALL_MEDIA_BUTTON" = "Όλα τα Πολυμέσα";
/* media picker option to take photo or video */
"MEDIA_FROM_CAMERA_BUTTON" = "Κάμερα";
@ -1162,25 +1171,25 @@
"MEDIA_GALLERY_THIS_MONTH_HEADER" = "Αυτόν τον Μήνα";
/* Action sheet button title */
"MESSAGE_ACTION_COPY_MEDIA" = "Αντιγραφή Μέσων ";
"MESSAGE_ACTION_COPY_MEDIA" = "Αντιγραφή Πολυμέσων ";
/* Action sheet button title */
"MESSAGE_ACTION_COPY_TEXT" = "Αντιγραφή Κειμένου Μηνύματος";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Διαγραφή αυτού του Mηνύματος";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Θα διαγραφεί μόνο από αυτήν τη συσκευή";
/* Action sheet button title */
"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" = "Αποθήκευση Μέσων";
"MESSAGE_ACTION_SAVE_MEDIA" = "Αποθήκευση Πολυμέσων";
/* Title for the 'message approval' dialog. */
"MESSAGE_APPROVAL_DIALOG_TITLE" = "Μήνυμα";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "Η Αποστολή Απέτυχε";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Αποστέλλεται...";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Στάλθηκε";
@ -1267,13 +1276,13 @@
"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" = "Ο/Η %@ δεν είναι πλέον σημειωμένος/η ως επιβεβαιωμένος. Πατήστε για επιλογές.";
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "Ο/Η %@ δεν είναι πλέον σημειωμένος/η ως επιβεβαιωμένος. Πατήστε για επιλογές.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"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" = "Ο/Η %@ δεν είναι πλέον σημειωμένος/η ως επιβεβαιωμένος. Πατήστε για επιλογές.";
"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 μέλος της ομάδας";
@ -1309,21 +1318,21 @@
"MISSED_CALL_WITH_CHANGED_IDENTITY_BODY_WITH_CALLER_NAME" = "Αναπάντητη κλήση από τον/την %@ επειδή ο αριθμός ασφαλείας του χρήστη άλλαξε.";
/* notification title */
"MISSED_CALL_WITH_CHANGED_IDENTITY_BODY_WITHOUT_CALLER_NAME" = "Αναπάντητη κλήση επειδή ο αριθμός ασφαλείας του καλούντα άλλαξε.";
"MISSED_CALL_WITH_CHANGED_IDENTITY_BODY_WITHOUT_CALLER_NAME" = "Αναπάντητη κλήση επειδή ο αριθμός ασφαλείας του καλούντος άλλαξε.";
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "Μπορείτε να ενεργοποιήσετε την πρόσβαση στην κάμερα στην εφαρμογή Ρυθμίσεις του iOS για να κάνετε βιντεοκλήσεις στο Signal.";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Το Signal χρειάζεται πρόσβαση στη κάμερα.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Μπορείτε να ενεργοποιήσετε αυτήν την άδεια στην εφαρμογή Ρυθμίσεις του iOS.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Το Signal χρειάζεται πρόσβαση στις φωτογραφίες σας για αυτήν τη λειτουργία.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Αναπάντητη κλήση απο τον/την %@.";
@ -1332,16 +1341,16 @@
"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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Έχετε φτάσει το μέγιστο αριθμό συσκευών που μπορείτε να συνδέσετε στο λογαριασμό σας. Καταργήστε μια συσκευή και δοκιμάστε ξανά.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Δεν θα λαμβάνετε ειδοποιήσεις για συνομιλίες με σίγαση.";
"MUTE_BEHAVIOR_EXPLANATION" = "Δεν θα λαμβάνετε ειδοποιήσεις για συνομιλίες σε σίγαση.";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Παράλειψη";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Παρακαλώ επιβεβαιώστε πως είστε συνδεδεμένος/η στο ίντερνετ και δοκιμάστε ξανά.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Παράκαμψη Λογοκρισίας: Ενεργή";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Εύρεση με αριθμό τηλεφώνου";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Προσθήκη με Αριθμό Τηλεφώνου";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Επιλογή Φωτογραφίας Ομάδας";
@ -1428,7 +1437,7 @@
"NOTIFICATIONS_SENDER_ONLY" = "Μόνο Όνομα";
/* No comment provided by engineer. */
"NOTIFICATIONS_SHOW" = "Εμφάνιση";
"NOTIFICATIONS_SHOW" = "Προβολή";
/* No comment provided by engineer. */
"OK" = "ΟΚ";
@ -1497,7 +1506,7 @@
"PHONE_NUMBER_TYPE_WORK_FAX" = "Φαξ Εργασίας";
/* Accessibility label for button to start media playback */
"PLAY_BUTTON_ACCESSABILITY_LABEL" = "Αναπαραγωγή πολυμέσων";
"PLAY_BUTTON_ACCESSABILITY_LABEL" = "Αναπαραγωγή Πολυμέσων";
/* Label indicating that the user is not verified. Embeds {{the user's name or phone number}}. */
"PRIVACY_IDENTITY_IS_NOT_VERIFIED_FORMAT" = "Δεν έχεις σημειώσει τον/την %@ ως επιβεβαιωμένο/η.";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Ο συνομιλητής σας χρησιμοποιεί μια παλιά έκδοση του Signal. Πρέπει να το αναβαθμίσει προτού να μπορέσετε να επιβεβαιώσετε.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Ο σαρωμένος κωδικός δεν μοιάζει με αριθμό ασφαλείας. Είστε και οι δύο σε μια ενημερωμένη έκδοση του Signal;";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Αν επιθυμείτε να επιβεβαιώσετε την ασφάλεια της κρυπτογράφησης από άκρο σε άκρο με τον/την %@, συγκρίνετε τους παραπάνω αριθμούς με τους αριθμούς στην συσκευή τους.\n\nΕναλλακτικά, μπορείτε να σαρώσετε τον κωδικό στο τηλέφωνό τους ή να τους ζητήσετε να σαρώσουν τον δικό σας.";
@ -1575,7 +1584,7 @@
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Εικόνα Προφίλ";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Το Προφίλ σας στο Signal θα είναι ορατό στις επαφές σας, όταν ξεκινάτε νέες συνομιλίες και όταν το μοιράζεστε με άλλους χρήστες και ομάδες.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Το προφίλ σας στο Signal θα είναι ορατό στις επαφές σας, όταν ξεκινάτε νέες συνομιλίες και όταν το μοιράζεστε με άλλους χρήστες και ομάδες.";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Πατήστε εδώ για να μάθετε περισσότερα.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Αποθήκευση";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Αποθηκεύεται...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Προφίλ";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Αριθμός Τηλεφώνου";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Θα πρέπει να εγγραφείτε πρώτα για να μπορέσετε στείλετε ένα μήνυμα.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Ο Αριθμός Σας";
@ -1740,7 +1749,7 @@
"REJECT_CALL_BUTTON_TITLE" = "Απόρριψη";
/* No comment provided by engineer. */
"RELAY_REGISTERED_ERROR_RECOVERY" = "Ο αριθμός που προσπαθείτε να καταχωρήσετε έχει ήδη καταχωρηθεί σε κάποιον άλλον server. παρακαλώ απεγγραφείτε από εκει και δοκιμάστε ξανά. ";
"RELAY_REGISTERED_ERROR_RECOVERY" = "Ο αριθμός που προσπαθείτε να καταχωρήσετε έχει ήδη καταχωρηθεί σε κάποιον άλλον διακομιστή. παρακαλώ απεγγραφείτε από εκει και δοκιμάστε ξανά. ";
/* Body text for when user is periodically prompted to enter their registration lock PIN */
"REMINDER_2FA_BODY" = "Το κλείδωμα εγγραφής είναι ενεργοποιημένο για τον αριθμό τηλεφώνου σας. Για να σας βοηθήσουμε να απομνημονεύσετε το PIN κλειδώματος εγγραφής, το Signal θα σας ζητάει περιοδικά να το επιβεβαιώσετε.";
@ -1752,13 +1761,13 @@
"REMINDER_2FA_FORGOT_PIN_ALERT_MESSAGE" = "Το κλείδωμα εγγραφής βοηθά στην προστασία του αριθμού τηλεφώνου σας από μη εξουσιοδοτημένες προσπάθειες εγγραφής. Αυτή η λειτουργία μπορεί να απενεργοποιηθεί ανά πάσα στιγμή μεσα απο τις ρυθμίσεις απορρήτου του Signal.";
/* Navbar title for when user is periodically prompted to enter their registration lock PIN */
"REMINDER_2FA_NAV_TITLE" = "Εισαγάγετε το PIN κλειδώματος εγγραφής";
"REMINDER_2FA_NAV_TITLE" = "Εισάγετε το PIN κλειδώματος εγγραφής";
/* Alert body after wrong guess for 'two-factor auth pin' reminder activity */
"REMINDER_2FA_WRONG_PIN_ALERT_BODY" = "Μπορείτε να ορίσετε ενα νέο ΡΙΝ μέσα απο τις ρυθμίσεις απορρήτου.";
/* Alert title after wrong guess for 'two-factor auth pin' reminder activity */
"REMINDER_2FA_WRONG_PIN_ALERT_TITLE" = "Αυτό το ΡΙΝ δεν είναι σωστό.";
"REMINDER_2FA_WRONG_PIN_ALERT_TITLE" = "Αυτό δεν είναι το σωστό ΡΙΝ.";
/* No comment provided by engineer. */
"REREGISTER_FOR_PUSH" = "Επανεγγραφή για λήψη ειδοποιήσεων";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Η αποστολή της πρόσκλησης απέτυχε, παρακαλώ δοκιμάστε ξανά αργότερα.";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Προσκαλέσατε τον/την φίλο/η σας στο Signal!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Πρόσκληση μέσω SMS: %@";
@ -1860,7 +1869,7 @@
"SEND_SMS_CONFIRM_TITLE" = "Πρόσκληση φίλου μέσω μη-ασφαλούς SMS;";
/* No comment provided by engineer. */
"SEND_SMS_INVITE_TITLE" = "Θέλεις να προσκαλέσεις τον ακόλουθο αριθμό στο Signal:";
"SEND_SMS_INVITE_TITLE" = "Θέλετε να προσκαλέσετε τον ακόλουθο αριθμό στο Signal:";
/* Navbar title */
"SETTINGS_ABOUT" = "Σχετικά";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Αναμετάδοση Όλων των Κλήσεων ";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Αναμετάδοση όλων των κλήσεων μέσω ενός διακομιστή Signal για να αποφύγετε την αποκάλυψη της IP διεύθυνσής σας στην επαφή σας. Η ενεργοποίηση θα μειώσει την ποιότητα των κλήσεων.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Εκκαθάριση Ιστορικού Συνομιλιών";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Πνευματική Ιδιοκτησία του Signal Messenger\nΥπό την άδεια GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Διαγραφή Λογαριασμού";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Διαγραφή Όλων των Δεδομένων";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Σίγουρα θέλετε να διαγράψετε όλο το ιστορικό (μηνύματα, συνημμένα, κλήσεις, κτλ); Αυτή η ενέργεια είναι μη αναστρέψιμη.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Διαγραφή Όλων";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Ο αριθμός ασφαλείας με τον/την %@ άλλαξε πρόσφατα. Ίσως θέλετε να τον επιβεβαιώσετε πριν κάνετε επαναποστολή.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Φόρτωση...";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Εκκινήστε την εφαρμογή Signal για να εγγραφείτε";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "Αποσύνδεση";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "Αυτή η συσκευή δεν θα είναι πλέον σε θέση να στέλνει ή να λαμβάνει μηνύματα αν είναι αποσυνδεδεμένη.";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "Αποσύνδεση του/της \"%@\";";
@ -2226,7 +2235,7 @@
"UNLINKING_FAILED_ALERT_TITLE" = "Το Signal δεν μπόρεσε να αποσυνδέσει τη συσκευή σας.";
/* Label text in device manager for a device with no name */
"UNNAMED_DEVICE" = "Ανώνυμη συσκευή";
"UNNAMED_DEVICE" = "Ανώνυμη Συσκευή";
/* No comment provided by engineer. */
"UNREGISTER_SIGNAL_FAIL" = "Αποτυχία απεγγραφής από το Signal.";
@ -2241,7 +2250,7 @@
"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" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Δεν υποστηρίζεται";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Η απάντηση στις κλήσεις από την οθόνη κλειδώματος είναι εύκολη με την ενσωμάτωση κλήσεων iOS. Ως προεπιλογή ανωνυμοποιούμε αυτόν που καλεί, οπότε είναι και ασφαλές για την ιδιωτικότητα.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Καλωσορίσατε, Ασφαλείς βιντεοκλησεις!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Το Signal χρειάζεται το iOS 9 ή μια νεότερη έκδοση. Χρησιμοποιήστε την επιλογή \"Ενημέρωση λογισμικού\" στην εφαρμογή \"Ρυθμίσεις\" του iOS.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "Ενημέρωση Λογισμικού iOS";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Το Signal ενημερώνεται...";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Πίσω";
@ -2313,16 +2322,16 @@
"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" = "Σημειώσατε τον/την %@ ως μη επιβεβαιωμένο.";
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_LOCAL" = "Σημειώσατε τον/την %@ ως μη επιβεβαιωμένο.";
/* Format for info message indicating that the verification state was unverified on another device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_OTHER_DEVICE" = "Σημειώσατε τον/την %@ ως μη επιβεβαιωμένο σε μία άλλη συσκευή.";
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_OTHER_DEVICE" = "Σημειώσατε τον/την %@ ως μη επιβεβαιωμένο σε μία άλλη συσκευή.";
/* Format for info message indicating that the verification state was verified on this device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_LOCAL" = "Σημειώσατε τον/την %@ ως επιβεβαιωμένο.";
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_LOCAL" = "Σημειώσατε τον/την %@ ως επιβεβαιωμένο.";
/* Format for info message indicating that the verification state was verified on another device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_OTHER_DEVICE" = "Σημειώσατε τον/την %@ ως επιβεβαιωμένο σε μία άλλη συσκευή.";
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_OTHER_DEVICE" = "Σημειώσατε τον/την %@ ως επιβεβαιωμένο σε μία άλλη συσκευή.";
/* Generic message indicating that verification state changed for a given user. */
"VERIFICATION_STATE_CHANGE_GENERIC" = "Η κατάσταση επαλήθευσης άλλαξε.";
@ -2340,7 +2349,7 @@
"VOICE_MESSAGE_FILE_NAME" = "Ηχητικό Μήνυμα";
/* Message for the alert indicating the 'voice message' needs to be held to be held down to record. */
"VOICE_MESSAGE_TOO_SHORT_ALERT_MESSAGE" = "Πατήστε παρατεταμένα για να ηχογραφήσετε ένα ηχητικό μήνυμα";
"VOICE_MESSAGE_TOO_SHORT_ALERT_MESSAGE" = "Πατήστε παρατεταμένα για να ηχογραφήσετε ένα ηχητικό μήνυμα.";
/* Title for the alert indicating the 'voice message' needs to be held to be held down to record. */
"VOICE_MESSAGE_TOO_SHORT_ALERT_TITLE" = "Ηχητικό Μήνυμα";

View File

@ -540,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Group Info";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal no puede acceder a tu cuenta de iCloud para manejar las copias de seguridad.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Comparar con portapapeles";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Detalles de contacto";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Detalles de grupo";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signalile ei antud ligipääsu iCloudi kontole varukoopiate tegemiseks.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Võrdle lõikepuhvriga";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontakti info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Värv";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Grupi info";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "سیگنال اجازه‌ی دسترسی به حساب iCloud شما برای نسخه پشتیبان را پیدا نکرد.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "مقایسه با کلیپ‌بورد";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "اطلاعات مخاطب";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "رنگ";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "اطلاعات گروه";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ ryhmässä %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal ei avaudu. Lähetä virheenkorjausloki osoitteeseen support@signal.org, jotta voimme selvittää tämä ongelma.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Virhe";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Versio %@ on nyt saatavilla App Storesta.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Uusi versio Signalista on saatavilla";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Päivitä";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "Liitetiedosto";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Lataaminen epäonnistui. Yritä uudelleen napauttamalla.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Ladataan...";
@ -138,16 +138,16 @@
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Metatietojen poistaminen kuvasta ei onnistunut.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Kuvan kokoa ei voitu muuttaa.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Liitetiedosto on liian suuri.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Liitetiedoston sisältö on virheellinen.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Liitetiedoston muoto on virheellinen.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Liitetiedosto on tyhjä.";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Soita";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Ei vastausta";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signalilta on evätty käyttöoikeus iCloudiin varmuuskopioita varten.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Vertaa leikepöytään";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Yhteystiedot";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Väri";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Ryhmän tiedot";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Lisää yhteystietoihin";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Jaa profiilisi tämän käyttäjän kanssa";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Tämä käyttäjä ei ole yhteystiedoissasi";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Ladataan lisää viestejä...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Näytä lisää napauttamalla";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Estä tämä käyttäjä";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "Aloita ensimmäinen Signal-keskustelusi!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "Postilaatikkosi on tyhjä. Hyvää päivänjatkoa!";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "Postilaatikko tyhjä";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "Vahvista PIN-koodisi.";
@ -871,7 +880,7 @@
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Vastaanotettiin viestin kaksoiskappale.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "Vastaanottajan avain ei ole kelvollinen.";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "Tässä keskustelussa ei ole vielä yhtään mediatiedostoa.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Ladataan uudempaa sisältöä...";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Ladataan vanhempaa sisältöä...";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Liitetiedosto";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "Yhdistetään...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Yhdistetään uudelleen...";
/* Call setup status label */
"IN_CALL_RINGING" = "Soi...";
@ -1168,16 +1177,16 @@
"MESSAGE_ACTION_COPY_TEXT" = "Kopioi viestin teksti";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Poista tämä viesti";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Se poistetaan vain tältä laitteelta";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "Lisätietoja";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to This Message";
"MESSAGE_ACTION_REPLY" = "Vastaa tähän viestiin";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Tallenna media";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "Lähettäminen epäonnistui.";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Lähetetään...";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Lähetetty";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ ei ole enää merkitty varmennetuksi. Lisätietoja napauttamalla.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Olet estänyt tämän käyttäjän";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ ei ole enää merkitty varmennetuksi. Lisätietoja napauttamalla.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "Ohita";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Tarkista että verkkoyhteytesi on päällä ja yritä uudelleen.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Sensuurin kiertäminen: päällä";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Etsi puhelinnumerolla";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Lisää puhelinnumerolla";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Aseta ryhmän kuva";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Vastapuolella on käytössä vanha versio Signalista. Hänen tulee ensin päivittää, jotta voit varmentaa.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Skannattu koodi ei näytä olevan turvanumero. Onko teillä kummallakin viimeisin versio Signalista käytössä?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Jos haluat varmentaa sinun ja yhteystiedon %@ välisen salauksen tietoturvan, vertaa ylläolevia numeroita hänen laitteessaan näkyviin vastaaviin numeroihin.\n\nVaihtoehtoisesti voit skannata koodin hänen puhelimestaan, tai pyytää häntä skannaamaan sinun koodisi.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Tallenna";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Tallennetaan...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profiili";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Puhelinnumero";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Sinun täytyy rekisteröityä, ennen kuin voit lähettää viestin.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Sinun puhelinnumerosi";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Kutsun lähettäminen epäonnistui. Yritä myöhemmin uudelleen.";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Olet kutsunut ystäväsi käyttämään Signalia!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Kutsu tekstiviestillä: %@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Välitä aina puhelut";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Välitä kaikki puhelut Signal-palvelimen kautta välttääksesi IP-osoitteesi paljastumista yhteystiedollesi. Tämä toiminto heikentää puhelun laatua.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Tyhjennä keskusteluhistoria";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Tekijänoikeus Signal Messenger\nLisensoitu GPLv3 -lisenssillä";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Poista tili";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Tuhoa kaikki tiedot";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Haluatko varmasti tuhota koko historiasi (viestit, liitteet, puhelut, jne.)? Tätä toimintoa ei voi jälkikäteen kumota.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Poista kaikki";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Turvanumerosi yhteystiedon %@ kanssa on vaihtunut hiljattain. Saatat halua varmentaa sen ohjelmassa ennen uudelleenlähettämistä.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Ladataan...";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Avaa Signal ohjelma rekisteröityäksesi.";
@ -2241,7 +2250,7 @@
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Et voi poistaa ryhmän jäseniä. Heidän tulee joko poistua tai sitten voit luoda uuden ryhmän ilman näitä henkilöitä.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Ei tuettu";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Puheluihin vastaaminen lukitusruudultasi on helppoa iOS-puheluintegraation avulla. Muutamme soittajan tiedot nimettömiksi oletuksena, joten se on myös yksityistä.";
@ -2292,7 +2301,7 @@
"UPGRADE_IOS_ALERT_TITLE" = "Päivitä iOS";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Päivitetään Signalia...";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Takaisin";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Compare with Clipboard";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Group Info";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ dans le groupe %@ : %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal ne peut pas démarrer. Veuillez envoyer un journal de débogage à support@signal.org afin que nous puissions résoudre ce problème.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Erreur";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "La version %@ est maintenant proposée dans la logithèque App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Une nouvelle version de Signal est disponible";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Mise à jour";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "Pièce jointe";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Le téléchargement a échoué. Appuyez pour réessayer.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Téléchargement…";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "Erreur denvoi de la pièce jointe";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Impossible de convertir limage.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Impossible de traiter la vidéo.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Impossible danalyser limage.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Impossible de supprimer les métadonnées de limage.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Impossible de redimensionner limage.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "La pièce jointe est trop volumineuse.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "La pièce jointe comporte du contenu non valide.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "La pièce jointe présente un format de fichier invalide.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "La pièce jointe est vide.";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Échec de sélection du document.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Veuillez créer un archive compressée de ce fichier ou dossier et essayez de lenvoyer à la place.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Fichier non pris en charge";
@ -273,10 +273,10 @@
"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Erreur";
/* Alert title after unblocking a group or 1:1 chat. Embeds the {{conversation title}}. */
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ a été débloqué";
"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE_FORMAT" = "%@ a été 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.";
"BLOCK_LIST_VIEW_UNBLOCKED_GROUP_ALERT_BODY" = "Les membres actuels peuvent désormais vous rajouter au groupe.";
/* Action sheet that will block an unknown user. */
"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloquer";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "Rappeler";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "Vous pouvez autoriser laccès à lappareil photo dans lapplication Réglages diOS pour passer des appels et enregistrer des messages vocaux avec Signal.";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "Laccès au microphone est exigé";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Appeller";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Pas de réponse";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "Couper le microphone";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "Vous pouvez autoriser lintégration des appels iOS dans vos paramètres de confidentialité Signal afin de répondre aux appels entrants depuis votre écran verrouillé.";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "Vous pouvez autoriser lintégration des appels iOS dans vos paramètres de confidentialité Signal afin de voir le nom et le numéro de téléphone pour les appels entrants.";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Pas maintenant";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal na pas été autorisé à accéder à votre compte iCloud pour les sauvegardes.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choisissez la couleur des messages sortants de cette conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Vous seul(e) verrez la couleur que vous avez choisie.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Couleur de la conversation";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Comparer avec le presse-papiers";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "Inviter";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "Vous pouvez autoriser laccès aux contacts dans lapplication Réglages diOS pour voir qui dans vos contacts utilise Signal.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Ceci va réinitialiser lapplication en supprimant vos messages et en vous désinscrivant du serveur. Lapplication se fermera une fois le processus terminé.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Voulez-vous vraiment supprimer votre compte?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "À propos du contact";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Couleur";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Couleur de la conversation";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Renseignements du groupe";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Ajouter aux contacts";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Partager votre profil avec cet utilisateur.";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Cet utilisateur nest pas dans vos contacts.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Chargement de plus de messages…";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Appuyez pour plus dinformations";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Bloquer cet utilisateur";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Lieu pour le contournement de la censure";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "Vous pouvez autoriser laccès dans lapplication Réglages diOS.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal a besoin daccéder aux contacts pour modifier les renseignements des contacts";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Mise à jour";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Souhaitez-vous enregistrer les changements apportés à ce groupe ?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Changements non enregistrés";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "Passons à Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "Vous pouvez archiver les conversations inactives depuis votre boîte de réception.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "Nettoyer votre liste de conversations";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "Aucun de vos contacts nutilise Signal.";
@ -781,7 +790,7 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "Lancez votre première conversation avec Signal!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "Rien. Zéro. Que dalle.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
@ -832,7 +841,7 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Échec denvoi du message.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Envoi impossible en raison de données de pré-clés obsolètes.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Échec denvoi du message, car vous avez bloqué cet utilisateur.";
@ -841,7 +850,7 @@
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
/* Generic error used whenever Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal na pas pu se connecter à Internet. Veuillez réessayer ultérieurement.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Échec denvoi du message en raison dabsence de destinataires valides.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Réponse invalide du service";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Cet appareil nest plus enregistré avec votre numéro de téléphone. Vous devez réinstaller Signal.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "Erreur serveur. Veuillez ressayer plus tard.";
@ -871,7 +880,7 @@
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Réception dun message en double.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "La clé du destinataire est invalide.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "Le message reçu était désynchronisé";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "Réception dun message qui nest pas compatible avec cette version.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "Aucune session pour ce contact.";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "Utilisateur non inscrit : %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Trop déchecs avec ce contacts. Veuillez réessayer plus tard.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Votre numéro de sécurité avec %@ a récemment changé. Vous pourriez peut-être le vérifier avant de renvoyer ce message.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Échec de vérification du numéro de sécurité!";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "Vous navez aucun média dans cette conversation.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Chargement de médias plus récents…";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Chargement de médias plus anciens…";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Pièce jointe";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "Connexion…";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Reconnexion…";
/* Call setup status label */
"IN_CALL_RINGING" = "Sonnerie…";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "Appel terminé";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Ces conversations sont archivées et apparaîtront dans la boîte de réception seulement si de nouveaux messages sont reçus.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "Vous pouvez autoriser laccès aux contacts dans lapplication Réglages diOS pour voir le nom de vos contacts dans la liste des conversations de Signal.";
/* notification body */
"INCOMING_CALL" = "Appel entrant";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Le fichier audio est invalide";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "Vous pouvez autoriser laccès aux contacts dans lapplication Réglages diOS pour inviter vos amis à rejoindre Signal.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Autoriser laccès aux contacts";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Inviter des amis";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Linvitation simultanée de plusieurs utilisateurs enverra un message de groupe dont les destinataires se verront les uns les autres.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "Les messages disparaîtront après %@.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "Quitter le groupe ";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "Ce code QR nest pas valide. Veillez à analyser le code QR affiché sur lappareil que vous voulez relier.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "Échec de liaison de lappareil";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Cet appareil pourra voir vos groupes et contacts, accéder à vos conversations et envoyer des messages en votre nom.";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Relier cet appareil?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "Ressayer";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Analysez le code QR affiché sur lappareil que vous voulez relier.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "Lire le code QR";
@ -1168,16 +1177,16 @@
"MESSAGE_ACTION_COPY_TEXT" = "Copier le texto";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Supprimer ce message.";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Il sera seulement supprimé sur cet appareil.";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "Plus dinfos";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to This Message";
"MESSAGE_ACTION_REPLY" = "Répondre à ce message";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Enregistrer le média";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "Échec denvoi";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Envoi…";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Envoyé";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ nest plus marqué comme vérifié. Touchez pour plus doptions.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Vous avez bloqué cet utilisateur.";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ nest plus marqué comme vérifié. Touchez pour plus doptions.";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "Vous pouvez autoriser laccès à lappareil photo dans lapplication Réglages diOS pour passer des appels vidéo avec Signal.";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal a besoin daccéder à votre appareil photo.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Vous pouvez accorder cette permission dans lapplication Réglages diOS.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal a besoin daccéder à vos photos pour cette fonctionnalité.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Appel manqué de %@";
@ -1332,7 +1341,7 @@
"MULTIDEVICE_PAIRING_MAX_DESC" = "Impossible de lier dautres appareils.";
/* 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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Vous avez atteint le nombre maximal dappareils que vous pouvez actuellement relier à votre compte. Veuillez supprimer un appareil et réessayer.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Vous ne recevrez pas de notifications pour les conversations en sourdine.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "Ignorer";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Veuillez vous assurer que vous êtes en ligne et réessayez.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Contournement de la censure : Activé";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Trouver par numéro de téléphone";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Ajouter par numéro de téléphone";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Définir la photo du groupe";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Votre partenaire utilise une ancienne version de Signal. Il doit la mettre à jour avant que vous puissiez vérifier son numéro de sécurité. ";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Le code analysé ne ressemble pas à un numéro de sécurité. Avez-vous tous les deux une version à jour de Signal ?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Si vous souhaitez vérifier la sécurité du chiffrement de bout en bout avec %@, comparez les numéros ci-dessus avec ceux sur son appareil.\n\nVous pouvez aussi lire le code sur son appareil ou lui demander de lire le vôtre.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Enregistrer";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Enregistrement…";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profil";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Numéro de téléphone";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Vous devez être inscrit(e) avant de pouvoir envoyer un message.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Votre numéro de téléphone";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Échec denvoi de linvitation. Veuillez ressayer plus tard. ";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Vous avez invité votre ami à utiliser Signal !";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Inviter par texto : %@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Toujours relayer les appels";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relayer tous les appels à travers le serveur de Signal pour éviter de révéler votre adresse IP à votre contact. Lactivation réduit la qualité de lappel.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Effacer lhistorique des conversations";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger\nSous licence GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Supprimer le compte";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Supprimer toutes les données";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Êtes-vous sûr(e) de vouloir supprimer tout lhistorique (messages, fichiers joints, appels, etc.) ? Cette action est irréversible.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Tout supprimer";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Votre numéro de sécurité avec %@ a changé récemment. Vous devriez peut-être le vérifier dans lappli principale avant deffectuer de nouveaux envois.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Chargement…";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Lancez lappli Signal pour vous inscrire.";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "Annuler le lien";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "Cet appareil ne pourra plus envoyer ni recevoir de messages sil nest plus relié.";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "Annuler le lien avec « %@ » ?";
@ -2241,7 +2250,7 @@
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Vous ne pouvez pas supprimer les membres dun groupe. Il devra quitter le groupe. Vous pouvez aussi créer un nouveau groupe sans ce membre.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Non compatible";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Il est facile de répondre aux appels à partir de votre écran de verrouillage grâce à lintégration des appels dans iOS. Par défaut, nous anonymisons lappelant, donc cette information est aussi confidentielle.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Bienvenue aux appels vidéo sécurisés!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal nécessite iOS 9 ou une version ultérieure. Veuillez utiliser la fonctionnalité Mise à jour logicielle située dans les Réglages diOS.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "Mettez iOS à niveau";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Mise à jour de Signal…";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Retour";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "A Signal non se lle permitiu acceder a iCloud para realizar copias de seguranza.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Comparar co Portapapeis";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Información do contacto";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Información do grupo";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ בקבוצה %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal אינו יכול להיות מופעל. אנא שלח יומן ניפוי תקלים אל support@signal.org כך שנוכל לפתור סוגייה זו.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "שגיאה";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "גרסה %@ זמינה כעת להורדה מחנות האפליקציות";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "גרסה חדשה של Signal זמינה";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "עדכן";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "צרופה";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "ההורדה נכשלה. הקש כדי לנסות מחדש.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "מוריד...";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "שגיאה בשליחת צרופה";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "לא היה ניתן להמיר תמונה.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "לא היה ניתן לעבד וידיאו.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "לא היה ניתן לעבד תמונה.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "לא היה ניתן להסיר מטא־נתונים מהתמונה.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "לא היה ניתן לשנות גודל תמונה.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "הצרופה גדולה מדי.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "הצרופה מכילה תוכן בלתי תקף.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "לצרופה יש תסדיר בלתי תקף של קובץ.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "הצרופה ריקה.";
@ -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" = "Please create a compressed archive of this file or directory and try sending that instead.";
"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" = "קובץ בלתי נתמך";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "חייג שוב";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "אתה יכול לאפשר גישה אל מיקרופון ביישום הגדרות של iOS כדי לבצע שיחות ולהקליט הודעות קוליות ב־Signal.";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "נדרשת גישה למיקרופון";
@ -309,7 +309,7 @@
"CALL_LABEL" = "חייג";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "אין מענה";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "השתק";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "אתה יכול לאפשר מיזוג שיחות iOS בהגדרות פְּרָטִיּוּת של Signal שלך כדי לענות לשיחות נכנסות מתוך מסך הנעילה שלך.";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "אתה יכול לאפשר מיזוג שיחות iOS בהגדרות פְּרָטִיּוּת של Signal שלך כדי לראות את השם ומספר הטלפון עבור שיחות נכנסות.";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "לא עכשיו";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal לא הותר לקבל גישה אל חשבון iCloud שלך עבור גיבויים.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "בחר את הצבע של הודעות יוצאות בשיחה זו.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "רק אתה תראה את הצבע שאתה בוחר.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "צבע שיחה";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "השווה עם לוח עריכה";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "הזמן";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "אתה יכול לאפשר גישה אל אנשי קשר ביישום הגדרות של iOS כדי לראות אילו מאנשי הקשר שלך הם משתמשי Signal.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "זה יאפס את היישום ע\"י מחיקת ההודעות שלך וביטול הרישום שלך עם השרת. היישום ייסגר לאחר שתהליך זה יושלם.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "האם אתה בטוח שאתה רוצה למחוק את החשבון שלך?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "פרטי איש קשר";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "צבע";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "צבע שיחה";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "פרטי קבוצה";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "הוסף לאנשי קשר";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "שתף את הפרופיל שלך עם משתמש זה";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "משתמש זה אינו באנשי הקשר שלך.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "טוען עוד הודעות...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"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" = "חסום משתמש זה";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "מיקום עקיפת צנזורה";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "אתה יכול לאפשר גישה ביישום הגדרות של iOS.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal צריך גישה לאנשי הקשר כדי לערוך מידע איש קשר";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "עדכן";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "האם תרצה לשמור את השינויים שעשית לקבוצה זו?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "שינויים בלתי שמורים";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "בוא נחליף אל Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "אתה יכול לארכב שיחות בלתי־פעילות מהתיבה הנכנסת שלך.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "נקה את רשימת השיחות שלך";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "לאף אחד מאנשי הקשר שלך אין Signal.";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "התחל את שיחת Signal הראשונה שלך!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "כלום. אפס. שום דבר.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "תיבה נכנסת אפס";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "אמת את ה־PIN שלך.";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "נכשל בשליחת הודעה.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "לא היה ניתן לשלוח עקב נתונים מיושנים.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "לא ניתן לשלוח הודעה מכיוון שהמשתמש חסום על ידך";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"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 was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal לא היה יכול להתחבר לאינטרנט. אנא נסה שוב.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "שליחת ההודעה נכשלה עקב העדר מקבלים תקפים.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "תגובה בלתי תקפה משירות.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "מכשיר זה אינו רשום יותר עם מספר הטלפון שלך. אנא התקן מחדש את Signal.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "שגיאת שרת. נסה שוב מאוחר יותר.";
@ -868,10 +877,10 @@
"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "איש הקשר הוא אינו משתמש Signal.";
/* Error message when unable to receive an attachment because the sending client is too old. */
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "כישלון צרופה: בקש מאיש קשר זה לשלוח את הודעתו שוב לאחר עדכון אל הגרסה האחרונה של Signal.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "התקבלה הודעה כפולה.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "המפתח של המקבל אינו תקין.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "ההודעה שהתקבלה לא הייתה מסונכרנת.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "התקבלה הודעה שאינה תואמת אל גרסה זו.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "אין שיח זמין עבור איש קשר.";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "משתמש בלתי רשום: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "יותר מדי כישלונות עם איש קשר זה. אנא נסה שוב מאוחר יותר.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "מספר הביטחון שלך עם %@ השתנה לאחרונה. מומלץ לוודא לפני שליחת הודעה זו שוב.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "נכשל בוידוא מספר ביטחון!";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "אין לך מדיה כלשהי בשיחה זו.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "טוען מדיה חדשה יותר...";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "טוען מדיה ישנה יותר...";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "צרופה";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "חייג";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "נקה וידואים עבור כולם";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "זה ינקה את הוידוא של כל חברי הקבוצה שמספרי הביטחון שלהם השתנו מאז שוודאו בפעם האחרונה.";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "מתחבר...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "מתחבר מחדש...";
/* Call setup status label */
"IN_CALL_RINGING" = "מצלצל...";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "השיחה הסתיימה.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "שיחות אלו מאורכבות ויופיעו בתיבה הנכנסת רק אם מתקבלות הודעות חדשות.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "אתה יכול לאפשר גישה אל אנשי קשר ביישום הגדרות של iOS כדי לראות שמות אנשי קשר ברשימת שיחות Signal שלך.";
/* notification body */
"INCOMING_CALL" = "שיחה נכנסת";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "קובץ שמע בלתי תקף.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "אתה יכול לאפשר גישה אל אנשי קשר ביישום הגדרות של iOS כדי להזמין את חבריך להצטרף אל Signal.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "אפשר גישה לאנשי קשר";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "הזמן חברים";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "הַזְמָנָת משתמשים רבים באותו הזמן תתחיל הודעת קבוצה והמקבלים יוכלו לראות אחד את השני.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "הודעות יעלמו לאחר %@.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "עזוב קבוצה";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "קוד QR זה אינו תקף. אנא וודא שאתה סורק את קוד ה-QR המוצג על המכשיר שאתה רוצה לקשר.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "קישור מכשיר נכשל";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "מכשיר זה יוכל לראות את הקבוצות ואנשי הקשר שלך, לקבל גישה אל השיחות שלך ולשלוח הודעות בשמך.";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "לקשר מכשיר זה?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "נסה שוב";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "סרוק את קוד ה-QR המוצג על המכשיר שאתה רוצה לקשר.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "סרוק קוד QR";
@ -1168,16 +1177,16 @@
"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 only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "זה יימחק רק במכשיר זה.";
/* Action sheet button title */
"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" = "שמור מדיה";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "שליחה נכשלה";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "שולח...";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "נשלח";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ אינו מסומן יותר כמוודא. הקשי לאפשרויות.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"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" = "%@ אינו מסומן יותר כמוודא. הקש לאפשרויות.";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "אתה יכול לאפשר גישה אל מצלמה ביישום הגדרות של iOS כדי לבצע שיחות וידיאו ב־Signal.";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal צריך לקבל גישה למצלמה שלך.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "אתה יכול לאפשר הרשאה זו ביישום הגדרות של iOS.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal דורש גישה אל התצלומים שלך עבור מאפיין זה.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "שיחה לא נענתה מאת %@.";
@ -1332,7 +1341,7 @@
"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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "הגעת למספר המרבי של מכשירים שאתה יכול כרגע לקשר אל החשבון שלך. אנא הסר מכשיר ונסה שוב.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "לא תקבל התראות עבור שיחות מושתקות.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "דלג";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "אנא בדוק אם אתה מקוון ונסה שוב.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "עקיפת צנזורה: פעילה";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "מצא לפי מספר טלפון";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "הוסף לפי מספר טלפון";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "הגדר תמונת קבוצה";
@ -1380,7 +1389,7 @@
"NEW_GROUP_MEMBER_LABEL" = "חבר קבוצה";
/* Placeholder text for group name field */
"NEW_GROUP_NAMEGROUP_REQUEST_DEFAULT" = "תן שם לשיחה קבוצתית זו";
"NEW_GROUP_NAMEGROUP_REQUEST_DEFAULT" = "תן שם לשיחת קבוצה זו";
/* a title for the non-contacts section of the 'new group' view. */
"NEW_GROUP_NON_CONTACTS_SECTION_TITLE" = "משתמשים אחרים";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "השותף שלך מריץ גרסה ישנה של Signal. הוא צריך לעדכן גרסה לפני שתוכל לוודא.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "הקוד הסרוק לא נראה כמו מספר ביטחון. האם שניכם על גרסה מעודכנת של Signal?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "אם אתה רוצה לוודא את האבטחה של הצפנת קצה-אל-הקצה שלך עם %@, השווה את המספרים למעלה עם המספרים במכשיר שלו.\n\nלחלופין, אתה יכול לסרוק את הקוד בטלפון שלו, או לבקש ממנו לסרוק את הקוד שלך.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "שמור";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "שומר...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "פרופיל";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "מספר טלפון";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "אתה צריך להירשם לפני שתוכל לשלוח הודעה.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "מספר הטלפון שלך";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "שליחת ההזמנה נכשלה, אנא נסה שוב מאוחר יותר.";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "הזמנת את חברך להשתמש ב־Signal!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "הזמן דרך מסרון: %@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "שדר מחדש שיחות תמיד";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "שדר מחדש את כל השיחות דרך שרת Signal כדי למנוע את חשיפת כתובת ה־IP שלך אל איש הקשר שלך. אפשור יפחית איכות שיחות.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "נקה היסטורית שיחות";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "זכויות יוצרים Signal Messenger \n ברשיון תחת GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "מחק חשבון";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "מחק את כל הנתונים";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "האם אתה בטוח שאתה רוצה למחוק את ההיסטוריה (הודעות, צרופות, שיחות וכד')? פעולה זו אינה ניתנת לביטול.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "מחק הכל";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "מספר הביטחון שלך עם %@ השתנה לאחרונה. מומלץ לוודא אותו ביישום הראשי לפני שליחה מחדש.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "טוען...";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "הפעל את היישום Signal כדי להירשם.";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "בטל קישור";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "מכשיר זה לא יוכל יותר לשלוח או לקבל הודעות אם הוא בלתי מקושר.";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "לבטל קישור \"%@\"?";
@ -2241,7 +2250,7 @@
"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" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "בלתי נתמך";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "מענה לשיחות ממסך הנעילה שלך הוא קל באמצעות מיזוג שיחות iOS. אנחנו הופכים לאלמוני כברירת מחדל את המתקשר שלך, כך שזה גם פרטי.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "שלום שיחות וידיאו מאובטחות!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal דורש iOS 9 ומעלה. אנא השתמש במאפיין עדכוני תוכנה ביישום הגדרות של iOS.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "שדרג את iOS";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "משדרג את Signal...";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "הקודם";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signalu nije dopušten pristupi vašem iCloud računu za sigurnosne kopije.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Uporedi sa međuspremnikom";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Detalji kontakta";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informacije o grupi";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "A Signal-nak nincs hozzáférése az iCloud fiókodhoz biztonsági mentések készítéséhez.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Összehasonlítás vágólappal";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontakt részletek";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Csoport részletek";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal tidak diperbolehkan untuk mengakses akun iCloud Anda untuk membuat cadangan.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Bandingkan dengan papan klip";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Info Kontak ";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Warna";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Info Kontak ";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ in gruppo %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal non riesce ad avviarsi. Invia il log di debug a support@signal.org così da permetterci di risolvere il problema.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Errore";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "La versione %@ è ora disponibile nell'App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "È disponibile una nuova versione di Signal";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Aggiorna";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "Allegato";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download fallito. Premi per riprovare.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Download in corso...";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "Errore invio allegato";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Impossibile convertire l'immagine.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Impossibile elaborare il video.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Impossibile analizzare l'immagine.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Impossibile rimuovere i metadati dall'immagine.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Impossibile ridimensionare l'immagine.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "L'allegato è troppo grande.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "L'allegato contiene un contenuto non valido.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Il formato dell'allegato non è valido.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "L'allegato è vuoto.";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Scelta del documento fallita.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Crea un archivio compresso di questo file o cartella e quindi prova a inviarlo.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Documento non supportato";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "Richiama";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "Puoi abilitare l'accesso al microfono nelle impostazioni di iOS per effettuare chiamate e registrare messaggi vocali in Signal.";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "Accesso microfono richiesto";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Chiama";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Nessuna risposta";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "Muto";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "Puoi abilitare le chiamate integrate iOS nelle impostazioni della privacy di Signal per rispondere alle chiamate in arrivo mentre il telefono è bloccato.";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "Puoi abilitare le chiamate integrate iOS nelle impostazioni della privacy di Signal per vedere il nome e il numero di telefono di chi ti sta chiamando.";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Non ora";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal non ha l'accesso al tuo account iCloud per i backup.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Confronta con gli appunti";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "Invita";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "Puoi abilitare l'accesso ai contatti nelle impostazioni di iOS per vedere quali dei tuoi contatti è un utente Signal.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Questo azzererà l'applicazione cancellando i messaggi e rimuovendo la tua registrazione dal server. L'applicazione si chiuderà una volta completato il processo.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Se sicuro di voler cancellare il tuo account?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Info contatto";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Colore";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Info gruppo";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Aggiungi nei contatti";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Condividi il tuo profilo con questo utente";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Questo utente non è presente nei tuoi contatti.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Caricamento di altri messaggi...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Mostra tutto";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Blocca questo utente";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Raggiro Luogo Censura";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "Puoi abilitare l'accesso nelle impostazioni di iOS.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal richiede l'accesso ai contatti per modificarne il contenuto.";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Aggiorna";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Vuoi salvare le modifiche apportate a questo gruppo?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Modifiche non salvate";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "Passiamo a Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "Puoi archiviare le conversazioni inattive dalla lista chat.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "Pulisci le tue conversazioni";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "Nessuno dei tuoi contatti ha Signal.";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "Inizia la tua prima conversazione su Signal!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "Nessun messaggio. Niente. Zero. Nada.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "Nessun messaggio";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "Conferma il tuo PIN";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Invio messaggio fallito.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Impossibile inviare a causa di dati prekey non aggiornati.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Impossibile inviare un messaggio ad un utente bloccato.";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Creazione e invio dell'allegato non riusciti.";
/* Generic error used whenever Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal non è in grado di connettersi ad Internet. Riprovare.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Invio messaggio fallito per mancanza di un valido destinatario.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Risposta del servizio non valida.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Il dispositivo non è più registrato con il tuo numero di telefono. Si pregad i reinstallare Signal.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "Errore del server. Si prega di riprovare.";
@ -868,10 +877,10 @@
"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "Il contatto non è un utente Signal";
/* Error message when unable to receive an attachment because the sending client is too old. */
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Errore con l'allegato: chiedi al tuo contatto di inviare nuovamente il messaggio dopo aver aggiornato Signal all'ultima versione.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Ricevuto un messaggio duplicato.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "La chiave del destinatario non è valida.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "Il messaggio ricevuto è disallineato.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "Ricevuto un messaggio non compatibile con questa versione.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "Nessuna sessione disponibile per il contatto";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "Utente non registrato: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Troppi tentativi falliti con questo contatto. Riprovare più tardi.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Il tuo codice di sicurezza con %@ è cambiato di recente. Ti consigliamo di fare una verifica prima di inviare nuovamente.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Verifica del codice di sicurezza fallita!";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "Non hai alcun contenuto multimediale in questa conversazione.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Caricamento media più recenti...";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Caricamento media più vecchi...";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Allegato";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "Chiama";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Rimuovi verifica per tutti";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "Questo rimuoverà la verifica a tutti i membri del gruppo ai quali è cambiato il codice di sicurezza dall'ultima verifica.";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "Connessione...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Riconnessione...";
/* Call setup status label */
"IN_CALL_RINGING" = "Squilla...";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "Chiamata terminata.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Queste conversazioni sono archiviate e compariranno nella lista di chat solo se verranno ricevuti nuovi messaggi.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "Puoi abilitare l'accesso ai contatti tramite le impostazioni iOS per vedere i nomi dei contatti nell'elenco delle chat.";
/* notification body */
"INCOMING_CALL" = "Chiamata in entrata";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Audio file non valido.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "Puoi abilitare l'accesso ai contatti nelle impostazioni iOS per invitare i tuoi amici ad unirsi a Signal.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Abilita accesso contatti";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Invita i tuoi amici";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "L'invito simultaneo di più utenti invierà un messaggio di gruppo e i destinatari potranno vedere tutti gli altri.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "I messaggi scompariranno dopo %@.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "Abbandona il gruppo";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "Questo codice QR non è valido. Assicurarati che stai effettuando la scansione del codice QR visualizzato sul dispositivo che desideri collegare.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "Collegamento con dispositivo fallito";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Questo dispositivo sarà in grado di vedere i tuoi gruppi e contatti, accedere alle conversazioni e inviare messaggi a tuo nome. ";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Associa questo dispositivo?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "Riprova";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scansiona il codice QR visualizzato sul dispositivo che vuoi associare.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "Scansiona il codice QR";
@ -1168,16 +1177,16 @@
"MESSAGE_ACTION_COPY_TEXT" = "Copia testo del messaggio";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Elimina questo messaggio";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Verrà eliminato solo da questo dispositivo.";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "Altre informazioni";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to This Message";
"MESSAGE_ACTION_REPLY" = "Rispondi a questo messaggio";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Salva media";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "Invio fallito";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Invio in corso...";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Inviato";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ non è più segnato come verificato. Tocca per le opzioni.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Hai bloccato questo utente";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ non è più segnato come verificato. Tocca per le opzioni.";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "Puoi abilitare l'accesso alla fotocamera nelle impostazioni iOS per effettuare videochiamate con Signal.";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal ha bisogno di accedere alla tua fotocamera.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Puoi abilitare questo permesso nelle impostazioni iOS.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal necessita dell'accesso alla tua libreria multimediale per questa funzione.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Chiamata persa da %@.";
@ -1332,7 +1341,7 @@
"MULTIDEVICE_PAIRING_MAX_DESC" = "Non è possibile associare ulteriori dispositivi.";
/* 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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Hai raggiunto il numero massimo di dispositivi attualmente associabili a questo account. Rimuovi un dispositivo e riprova l'associazione.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Non riceverai alcuna notifica dalle conversazioni silenziose.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "Salta";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Verifica di essere online e riprova.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Raggiro censura: attivo";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Cerca per numero";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Aggiungi da numero di telefono";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Imposta foto del gruppo";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "I tuoi compagni stanno usando una vecchia versione di Signal. Devono aggiornarla prima di poter verificare.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Il codice scansionato non sembra quello di un codice di sicurezza. State usando entrambi un versione aggiornata di Signal?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Se desideri verificare la sicurezza della tua codifica end-to-end con %@, confronta i numeri precedenti con quelli del suo dispositivo.\n\nIn alternativa puoi fare uno scan del codice sul suo telefono o chiedergli di fare una scansione del tuo.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Salva";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Salvataggio...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profilo";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Numero di telefono";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Devi iscriverti prima di poter inviare un messaggio.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Il tuo numero di telefono";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Invio dell'invito fallito, riprova più tardi";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Hai invitato il tuo amico ad usare Signal!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Invita %@ via SMS";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Inoltra sempre le chiamate";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Inoltra tutte le chiamate tramite il server Signal per evitare di rivelare il tuo indirizzo IP al tuo contatto. L'attivazione riduce la qualità delle chiamate.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Cancella storico conversazioni";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger\nLicenza secondo direttive GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Cancella account";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Cancella tutti i dati";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Sei sicuro di voler cancellare tutta la tua cronologia (messaggi, allegati, chiamate, ecc.)? Questa azione non può essere annullata.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Elimina tutto";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Il tuo codice di sicurezza con %@ è cambiato di recente. Potresti verificare nell'app principale prima di inviare nuovamente. ";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Caricamento...";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Apri l'app Signal per la registrazione";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "Dissocia";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "Questo dispositivo non sarà più in grado di inviare o ricevere messaggi una volta dissociato.";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "Dissociare \"%@\"?";
@ -2241,7 +2250,7 @@
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Non puoi rimuovere membri del gruppo. Devono lasciare loro il gruppo, oppure devi creare un nuovo gruppo senza questo membro.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Non consentito";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Rispondere alle chiamate dalla schermata di blocco è semplice con l'integrazione chiamate iOS. Il chiamante sarà reso anonimo e quindi privato di default.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Videochiamate sicure!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal richiede iOS 9 o successivo. Usa la funzione di aggiornamento sofware presente nelle impostazioni iOS.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "Aggiornare iOS";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Aggiornamento di Signal in corso...";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Indietro";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "SignalにiCloudアカウントへのアクセス権限がありません。";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "クリップボードと比較する";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "連絡先情報";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "グループ情報";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "ស៊ីហ្គណលមិនត្រូវបានអនុញ្ញាតឲ្យចូលប្រើប្រាស់គណនី iCloud សម្រាប់បម្រុងទុកទេ។";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "ប្រៀបធៀបជាមួយ ក្តាចុច";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "ព័ត៌មានលេខទំនាក់ទំនង";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "ពណ៌";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "ព័ត៌មានក្រុម";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "클립 보드와 비교하세요.";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Group Info";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal nebuvo leista gauti prieigą prie jūsų iCloud paskyros, skirtos atsarginėms kopijoms.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Palyginti su iškarpine";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinė informacija";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Spalva";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Grupės informacija";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Compare with Clipboard";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Group Info";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Споредете со Таблата со исечоци";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Group Info";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "အရံသိမ်းဆည်းမှုများပြုလုပ်ရန်အတွက် iCloud အကောင့်ကို ဝင်ရောက်ရန် Signal ကို ခွင့်မပြုထားပါ။";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "ကလစ်ဘုတ်နှင့် နှိုင်းယှဉ်ပါ ";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "ဆက်သွယ်သူအချက်အလက် ";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "အရောင်";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "အဖွဲ့အချက်အလက် ";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal fikk ikke lov til å koble seg til iCloud-kontoen din for sikkerhetskopiering.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Sammenlign med utklippstavlen";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinfo";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Farge";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Gruppeinfo";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal kon geen toegang verkrijgen tot je iCloud-account voor back-ups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Vergelijken met klembord";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contactinfo";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Kleur";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Groepsinfo";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal nie uzyskał dostępu do twojego konta iCloud w celu utworzenia kopii zapasowych.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Porównaj ze schowkiem";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informacje o kontakcie";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Kolor";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informacje o grupie";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "O Signal não tem permissão para acessar sua conta iCloud e guardar cópias de segurança.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Comparar com Área de Transferência";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informações do contato";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Cor";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informações do grupo";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "O Signal não tem autorização para aceder ao iCloud para efectuar backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Comparar com o copiado";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Info. Contacto";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Cor";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Grupo";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ în grupul %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal nu poate fi lansat. Te rog trimite jurnalul tău de depanare la support@signal.org ca să investigăm problema.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Eroare";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Versiunea %@ este disponibilă acum în App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "O nouă versiune de Signal este disponibilă";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Actualizează";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "Atașament";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Descărcarea a eșuat. Apasă pentru a reîncerca.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Se descarcă...";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "Eroare la trimiterea atașamentului";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Imagine nu a putut fi convertită.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Nu s-a putut procesa video-ul.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Imagine nu a putut fi procesată.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Nu s-au putut elimina metadatele din imagine.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Imagine nu a putut fi redimensionată.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Atașamentul este prea mare.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Atașamentul include conținut invalid.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Atașamentul are un format de fișier invalid.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Atașamentul este gol.";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Eroare la selectarea documentului.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Te rugăm să creezi o arhivă comprimată cu acest fișier sau director și să încerci să o trimiți pe aceasta.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Fișier nesuportat";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "Sună încă o dată";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "Poți activa accesul microfonului din aplicația iOS Setări pentru a putea realiza apeluri și a înregistra mesaje vocale în Signal. ";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "Accesul la microfon este necesar";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Sună";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Nici un răspuns";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal nu a primit accesul la contul tău iCloud pentru copiile de rezervă.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Compară cu Clipboard";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "Invită";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "Poți activa accesul la contacte din aplicația iOS Setări pentru a putea vedea care dintre contactele tale sunt utilizatori Signal.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Această acțiune va reseta aplicația prin șteregerea mesajelor tale și prin anularea înregistrării la server. Această aplicație se va închide după ce procesul s-a încheiat.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Ești sigur că vrei sa ștergi contul?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informații contact";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Culoare";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informații grup";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Adaugă la contacte";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Partajează profilul tău cu acest utilizator";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Acest utilizator nu se află în lista ta de contacte.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Se încarcă mai multe mesaje...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Apasă pentru detalii";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Blochează acest utilizator";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Locație ocolire cenzură";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "Poți permite accesul din aplicația iOS Setări.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal are nevoie de acces la contacte pentru a edita informațiile despre contact";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Actualizează";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Vrei să salvezi schimbările făcute pentru acest grup?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Schimbări nesalvate";
@ -763,7 +772,7 @@
"EMAIL_INVITE_SUBJECT" = "Hai să folosim Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "Poți arhiva conversațiile inactive din Inbox-ul tău.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "Începe prima ta conversație în Signal!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "Nimic. Zero. Nul. Gol.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "Inbox gol";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "Confirmă PIN-ul tău.";
@ -832,7 +841,7 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Trimiterea mesajului a eșuat.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Trimiterea a eșuat din cauza datelor vechi.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Mesajul nu a fost trimis deoarece ai blocat acest utilizator.";
@ -841,7 +850,7 @@
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
/* Generic error used whenever Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal nu s-a putut conecta la internet. Te rugăm să încerci din nou.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Mesajul nu a putut fi trimis deoarece nu există o listă validă de destinatari.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Răspuns invalid de la serviciu.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Acest dispozitiv nu mai este înregistrat pentru numărul tău de telefon. Te rugăm să reinstalezi Signal.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "Eroare de server. Te rog încearcă mai târziu.";
@ -871,7 +880,7 @@
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "A fost primit un mesaj duplicat.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "Cheia destinatarului nu este validă.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "Mesajul primit nu a fost sincronizat.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "A fost primit un mesaj care nu este compatibil cu această versiune.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "Nu există nici o sesiune pentru contact.";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "Utilizator neînregistrat: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Prea multe erori pentru acest contact. Te rog încearcă din nou mai târziu.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Numărul tău de siguranță pentru %@ s-a schimbat recent. S-ar putea să dorești să-l verifici înainte de trimite acest mesaj din nou.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Verificarea Numărului de Siguranță a eșuat!";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "Nu ai nici un fișier media în această conversație.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Se încarcă fișiere media recente…";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Se încarcă fișiere media mai vechi…";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Atașament";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "Apel";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Șterge verificarea pentru toți";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "Această opțiune va șterge verificarea pentru toți membrii grupului a căror numere de siguranță s-au schimbat de când au fost verificați ultima oară.";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "Se conectează...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Se reconectează…";
/* Call setup status label */
"IN_CALL_RINGING" = "Sună...";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "Apelul a fost terminat.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Conversațiile sunt arhivate și vor apărea doar în Inbox dacă sunt primite mesaje noi.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "Poți activa accesul la contacte din aplicația iOS Setări pentru a putea vedea numele contactelor în lista de conversații Signal.";
/* notification body */
"INCOMING_CALL" = "Apel de intrare";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Fișier audio invalid.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "Poți activa accesul la contacte din aplicația iOS Setări pentru a putea invita prietenii tăi la Signal.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Permite accesul la contacte";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Invită prieteni";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Invitarea mai multor utilizatori în același timp va porni un mesaj de grup și destinatarii se vor putea vedea reciproc.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "Mesajele dispar după %@.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "Părăsește grupul";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "Acest cod QR nu este valid. Te rugăm să te asiguri că scanezi codul QR afișat pe dispozitivul pe care vrei să-l conectezi.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "Conectarea dispozitivului a eșuat";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Acest dispozitiv va putea vedea grupurile și contactele tale, accesa conversațiile și să trimită mesaje în numele tău.";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Asociez acest dispozitiv?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "Re-încearcă";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scanează codul QR care este afișat pe dispozitivul care vrei sa-l asociezi.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "Scanează cod QR";
@ -1168,16 +1177,16 @@
"MESSAGE_ACTION_COPY_TEXT" = "Copiază textul mesajului";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Șterge acest mesaj";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Se va șterge numai de pe acest dispozitiv.";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "Mai multe informații";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to This Message";
"MESSAGE_ACTION_REPLY" = "Răspunde la acest mesaj";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Salvează fișierele media";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "Trimitere eșuata.";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Se trimite...";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Trimis";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ nu mai este marcat ca fiind verificat. Apasă pentru opțiuni.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Ai blocat acest utilizator";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ nu mai este marcat ca fiind verificat. Apasă pentru opțiuni.";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "Poți activa accesul camerei din aplicația iOS Setări pentru a putea realiza apeluri video în Signal. ";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal are nevoie de acces la camera ta.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Poți activa această permisiune din aplicația iOS Setări. ";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal are nevoie de acces la pozele tale pentru această funcționalitate.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Apel ratat de la %@.";
@ -1332,7 +1341,7 @@
"MULTIDEVICE_PAIRING_MAX_DESC" = "Nu mai poți asocia alte dispozitive.";
/* 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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Ai ajuns la numărul maxim de dispozitive pe care le poți conecta la contul tău. Te rog elimină un dispozitiv și încearcă din nou.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Nu vei primi notificări pentru conversațiile silențioase.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "Omite";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Te rog verifică dacă ești online și încearcă din nou.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Ocolire Cenzură: Activat";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Găsește după numărul de telefon";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Adaugă după numărul de telefon";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Setează Poza de Grup";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Partenerul tău folosește o versiune veche de Signal. Trebuie sa-și actualizeze aplicația pentru a realiza verificarea.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Codul scanat nu pare a fi un număr de siguranță. Folosiți amândoi o versiune actualizată de Signal?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Dacă dorești să verifici securitatea criptării integrale cu %@, compară numerele de deasupra cu numerele de pe dispozitivul lor.\n\nAlternativ, poți scana codul de pe telefonul lor sau îi poți ruga să scaneze codul tău.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Salvează";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Se salvează...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profil";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Număr de Telefon";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Trebuie să te înregistrezi înainte de a trimite un mesaj.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Numărul Tău de Telefon";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Invitația trimisă a eșuat, te rog încearcă din nou mai târziu.";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Ai invitat prietenul tău să folosească Signal!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Invită prin SMS: %@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Redirecționează întotdeauna apelurile";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Redirecționează toate apelurile către un server Signal pentru a evita aflarea adresei IP de către contact tău. Activarea va reduce calitatea apelului.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Șterge istoricul conversației";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Drepturi de autor Signal Messenger \n Sub licenţa GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Șterge Contul";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Șterge toate datele";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Ești sigur că vrei să ștergi tot istoricul (mesaje, atașamente, istoric apeluri,etc.) ? Această acțiune este ireversibilă.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Șterge tot";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Numărul tău de siguranță pentru %@ s-a schimbat recent. S-ar putea să dorești să-l verifici în aplicație înainte de a retrimite.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Se încarcă...";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Lansează aplicația Signal pentru a te înregistra.";
@ -2241,7 +2250,7 @@
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Nu poți elimina membrii grupului. Vor trebui fie să plece, sau poți crea un grup nou fără acest membru.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Funcționalitatea nu este suportată";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Preluarea apelurilor din ecranul de blocare este ușoară prin integrarea de apel iOS. Anonimizăm apelantul în mod implicit, asigurând confidențialitatea.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Bun venit la apeluri video securizate!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal necesită iOS 9 sau o versiune mai nouă. Te rog folosește funționalitatea Actualizări Software din aplicația iOS Setări.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "Actualizează-ți iOS-ul";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Se actualizează Signal...";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Înapoi";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal не разрешен доступ к вашей учетной записи iCloud для резервного копирования.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Сравнить с буфером";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Информация о контакте";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Цвет";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Информация о группе";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Aplikacija Signal ni dobila dovoljenja za dostop do strežnika iCloud.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Primerjaj z odložiščem";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Informacije o stiku";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Barva";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Informacije o skupini";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Enzanisa nezvakachengetwa mundangariro";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Ruzivo rwezve Kontakt";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Ruvara";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Ruzivo rwezve Chikwata";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal was not allowed to access your iCloud account for backups.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Krahaso me Memorien";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Contact Info";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Color";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Group Info";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal-i su lejua të hyjë në llogarinë tuaj iCloud për kopjeruajtje.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Krahasojeni me Të papastrën";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Të dhëna kontakti";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Ngjyrë";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Të dhëna Grupi";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ i grupp %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal kan inte startas. Skicka en felsökningslogg till support@signal.org så att vi kan felsöka problemet.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Fel";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Version %@ finns nu tillgänglig i App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "En ny version av Signal är tillgänglig";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Uppdatera";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "Bilaga";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Nedladdning misslyckad. Tryck för att försöka igen.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Hämtar hem...";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "Fel vid sändning av bifogad fil";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Kunde inte konvertera bilden.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Kunde inte använda videon.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Kunde inte tolka bilden.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Kunde inte ta bort metadata från bild.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Kunde inte ändra storlek på bilden.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Den bifogade filen är för stor.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Bilagan innehåller ogiltigt innehåll.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Bilagan har ett ogiltigt filformat.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Den bifogade filen är tom.";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Kunde inte välja dokument.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Vänligen skapa ett komprimerat arkiv av den här filen eller katalogen och försök att skicka den istället.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Filtypen stöds ej";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "Ring igen";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "Du kan aktivera mikrofonåtkomst i appen Inställningar för att ringa och spela in röstmeddelanden i Signal.";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "Åtkomst till mikrofon krävs";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Ring";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Inget svar";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "Mikrofon av";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "Du kan aktivera iOS Call Integration i dina Signal integritetsskydd inställningar för att svara inkommande samtal från din låsskärm.";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "Du kan aktivera iOS Call Integration i dina Signal integritetsskydd inställningar för att se namn och telefonnummer för inkommande samtal.";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Inte nu";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal hade inte tillåtelse att komma åt ditt iCloud-konto för säkerhetskopior.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Jämför med urklipp";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "Bjud in";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "Du kan aktivera kontaktåtkomst i appen Inställningar för att se vilka av dina kontakter som är Signalanvändare.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Det här kommer återställa appen, radera dina meddelanden och avregistrera dig från servern. Appen kommer stängas när allt är klart.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Är du säker på att du vill radera ditt konto?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kontaktinfo";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Färg";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Gruppinfo";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Lägg till i kontakter";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Dela din profil med användaren";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Användaren finns inte bland dina kontakter.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Hämtar fler meddelanden...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tryck för mer";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Blockera användaren";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Kringgå censur för platsen";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "Du kan ge åtkomst i appen för iOS-inställningar.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal behöver åtkomst för att ändra kontaktinformation";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Uppdatera";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Vill du spara ändringarna som du gjort för denna grupp?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Osparade förändringar";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "Låt oss byta till Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "Du kan arkivera inaktiva konversationer från din inbox.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "Rensa bland konversationerna";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "Inga av dina kontakter har Signal.";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "Starta din första konversation i Signal!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "Ingenting. Noll. Tomt. Nada.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "Inkorgen är tom";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "Bekräfta din PIN-kod.";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Kunde inte skicka meddelande.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Kunde inte skicka på grund av unken prekey-data.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Kunde inte skicka meddelande eftersom du blockerat användaren";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Kunde inte skriva och skicka bifogad fil.";
/* Generic error used whenever Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal kunde inte ansluta till internet. Var god försök igen.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Kunde inte skicka meddelandet, det saknas giltig mottagare.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Ogiltigt svar från tjänsten.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Den här enheten är inte längre registrerad med ditt telefonnummer. Installera om Signal igen.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "Serverfel. Försök igen senare.";
@ -868,10 +877,10 @@
"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "Kontakten är inte en Signal-användare.";
/* Error message when unable to receive an attachment because the sending client is too old. */
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Bilag misslyckades: Be den här kontakten om att skicka sitt meddelande igen efter uppdatering till den senaste versionen av Signal.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Fick ett duplicerat meddelande.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "Mottagarens nyckel är ogiltig.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "Mottaget meddelande var ur sync.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "Fick ett meddelande som inte är kompatibelt med den här versionen.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "Ingen tillgänglig session för kontakten.";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "Oregistrerad kontakt: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Får för många fel med den här kontakten. Försök igen senare.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Ditt säkerhetsnummer med %@ har nyligen ändrats. Du vill nog verifiera innan du skickar det här meddelandet igen.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Misslyckades med att bekräfta säkerhetsnumret!";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "Du har inga medier i denna konversation.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Hämtar nyare media...";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Hämtar äldre media...";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Bilaga";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "Ring";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Rensa verifiering för alla";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "Det här kommer rensa verifieringen av alla gruppmedlemmarna vars säkerhetsnummer har ändrats sen förra verifieringen.";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "Ansluter...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Kopplar upp igen...";
/* Call setup status label */
"IN_CALL_RINGING" = "Ringer...";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "Samtalet avslutades.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Konversationerna här är arkiverade och kommer bara visas i inkorgen ifall nya meddelanden tas emot.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "Du kan aktivera kontaktåtkomst i appen Inställningar för att se kontaktnamn i din Signal konversationslista.";
/* notification body */
"INCOMING_CALL" = "Inkommande samtal";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Ogiltig ljudfil.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "Du kan aktivera kontaktåtkomst i appen Inställningar för att bjuda in dina vänner till Signal.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Tillåt åtkomst till kontakter";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Bjud in vänner";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Inbjudan till flera användare på en gång kommer att starta ett gruppmeddelande och mottagarna kommer att kunna se varandra.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "Meddelanden försvinner efter %@.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "Lämna grupp";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "QR-koden stämmer inte. Se till att du läser av den QR-kod som visas på enheten som du vill länka.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "Kunde inte länka enheten";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Den här enheten kommer att se dina grupper och kontakter, få tillgång till dina konversationer och skicka meddelanden i ditt namn.";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Länka den här enheten?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "Försök igen";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Skanna QR-koden som visas på enheten som du vill länka.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "Läs av QR-kod";
@ -1168,16 +1177,16 @@
"MESSAGE_ACTION_COPY_TEXT" = "Kopiera meddelandetext";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Ta bort detta meddelande ";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Det kommer enbart tas bort från denna enhet.";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "Mer information";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to This Message";
"MESSAGE_ACTION_REPLY" = "Svara på detta meddelande";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Spara media";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "Kunde inte skicka";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Skickar...";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Skickat";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ är inte markerad som verifierad längre. Tryck för alternativ.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Du blockerade denna användare";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ är inte markerad som verifierad längre. Tryck för alternativ.";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "Du kan aktivera kameratillgänglighet i appen Inställningar för att ringa videosamtal i Signal.";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal behöver åtkomst till din kamera.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Du kan aktivera den här behörigheten i appen för iOS-inställningar.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "För den här funktionen behöver Signal åtkomst till dina foton.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Missat samtal från %@";
@ -1332,7 +1341,7 @@
"MULTIDEVICE_PAIRING_MAX_DESC" = "Du kan inte lägga till fler länkade enheter.";
/* 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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Du har nått max antal enheter som du just nu kan länka ihop med ditt konto. Ta bort en enhet och försök igen.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Du kommer inte få notiser för tystade konversationer.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "Hoppa över";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Kontrollera att du är online och försök igen.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Kringgå censur: På";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Hitta via telefonnummer";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Lägg till med telefonnummer";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Välj gruppbild";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Din partner kör en gammal version av Signal. De behöver uppdatera innan du kan bekräfta.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Koden som lästes in verkar inte vara ett säkerhetsnummer. Har ni båda två en uppdaterad version av Signal?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Om du vill vara säker på att din kommunikation med %@ är krypterad hela vägen, jämför numren ovan med numren på den andra enheten.\n\nEtt alternativ är att du läser av koden på deras telefon eller be dem läsa av din kod.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Spara";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Sparar...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profil";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Telefonnummer";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Du behöver registrera dig innan du kan skicka ett meddelande.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Ditt telefonnummer";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Kunde inte skicka inbjudan, vänligen försök senare.";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Du bjöd din vän att använda Signal!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Bjud in via SMS: %@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Vidarebefordra alltid samtal";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Vidarebefordra alla samtal genom en Signal-server för att undvika att avslöja ditt IP-nummer till din kontakt. Detta kommer att reducera samtalskvaliteten.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Rensa konversationshistorik";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \nLicenserad under GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Radera konto";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Radera all data";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Är du säker på att du vill radera all historik (meddelanden, bifogade filer, samtal, etc.)? Du kan inte ångra dig.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Radera allt";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "Ditt säkerhetsnummer med %@ har nyligen ändrats. Du vill nog verifiera det i appen innan du skickar igen.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Hämtar in...";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Starta appen Signal för att registrera.";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "Avlänka";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "Denna enhet kommer inte längre att kunna skicka eller ta emot meddelanden om den är frånkopplad.";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "Avlänka \"%@\"?";
@ -2241,7 +2250,7 @@
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Du kan inte ta bort gruppmedlemmar. De får antingen lämna gruppen, eller så får du skapa en ny grupp utan denna medlem.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Stöds inte";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Svara på samtal från din låsskärm är enkelt med iOS call integration. Vi anonymiserar alltid uppringaren, så det är privat också.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Hallå säkra videosamtal!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal kräver iOS 9 eller senare. Använd funktionen Programuppdatering i appen för iOS-inställningar.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "Uppgradera iOS";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Uppgraderar Signal...";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Tillbaka";

View File

@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal ไม่ได้รับอนุญาตให้เข้าถึงบัญชี iCloud ของคุณสำหรับการสำรองข้อมูล";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Choose the color of outgoing messages in this conversation.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Only you will see the color you choose.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Conversation Color";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "เปรียบเทียบกับคลิปบอร์ด";
@ -531,7 +540,7 @@
"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" = "Conversation Color";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "ข้อมูลกลุ่ม";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@, şu grupta %@: %@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal başlatılamıyor. Lütfen bu sorunu çözmemiz için hata ayıklama günlüğünüzü support@signal.org adresine gönderin.";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "Hata";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Sürüm %@ şimdi App Store'dan edinilebilir.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Signal'in Yeni Bir Sürümü Mevcut";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Güncelle";
@ -96,7 +96,7 @@
"ARCHIVE_ACTION" = "Arşivle";
/* No comment provided by engineer. */
"ATTACHMENT" = "Ek";
"ATTACHMENT" = "Eklenti";
/* One-line label indicating the user can add no more text to the attachment caption. */
"ATTACHMENT_APPROVAL_CAPTION_LENGTH_LIMIT_REACHED" = "Mesaj limitine ulaşıldı.";
@ -111,10 +111,10 @@
"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Gönder";
/* Generic filename for an attachment with no known name */
"ATTACHMENT_DEFAULT_FILENAME" = "Ek";
"ATTACHMENT_DEFAULT_FILENAME" = "Eklenti";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "İndirme başarısız. Yeniden denemek için dokunun.";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "İndiriliyor...";
@ -123,40 +123,40 @@
"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Sıraya eklendi";
/* The title of the 'attachment error' alert. */
"ATTACHMENT_ERROR_ALERT_TITLE" = "Ek Gönderilirken Hata";
"ATTACHMENT_ERROR_ALERT_TITLE" = "Eklenti Gönderilirken Hata";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Resim dönüştürülemedi.";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "Video işlenemedi.";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Resim işlenemedi.";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "Bu görüntüdeki metaveriler kaldırılamadı.";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Resim yeniden bouytlandırılamadı.";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Ek çok büyük.";
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Eklenti çok büyük.";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "Eklenti geçersiz içerik bulundurmakta.";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Eklenti geçersiz bir dosya biçimine sahip.";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "Ek boş.";
"ATTACHMENT_ERROR_MISSING_DATA" = "Eklenti boş.";
/* Accessibility hint describing what you can do with the attachment button */
"ATTACHMENT_HINT" = "Resim seçin ya da fotoğraf çekin, sonra gönderin";
/* Accessibility label for attaching photos */
"ATTACHMENT_LABEL" = "Ek";
"ATTACHMENT_LABEL" = "Eklenti";
/* attachment menu option to send contact */
"ATTACHMENT_MENU_CONTACT_BUTTON" = "Kişi";
@ -165,7 +165,7 @@
"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Doküman seçimi başarısız.";
/* Alert body when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Please create a compressed archive of this file or directory and try sending that instead.";
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Bu dosyanın veya dizinin sıkıştırılmış arşivini oluşturun ve onu göndermeyi deneyin.";
/* Alert title when picking a document fails because user picked a directory/bundle */
"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Desteklenmeyen dosya";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "Tekrar Ara";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal'de sesli mesajlar kaydetmek ve aramalar yapmak için iOS Ayarlar uygulamasından mikrofon erişimini etkinleştirebilirsiniz.";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "Mikrofon Erişimi Gerekiyor";
@ -309,7 +309,7 @@
"CALL_LABEL" = "Ara";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "Yanıt Yok";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "Sessize al";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "Gelen aramaları kilit ekranınızdan yanıtlamak için Signal'in gizlilik ayarlarından iOS Çağrı Entegrasyonu'nu etkinleştirebilirsiniz.";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "Gelen aramalarda isim ve telefon numarası görmek için Signal'in gizlilik ayarlarından iOS Çağrı Entegrasyonu'nu etkinleştirebilirsiniz.";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Şimdi Değil";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Yedekler için Signal'in iCloud hesabınıza erişmesine izin verilmedi.";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "Bu sohbete gönderilen mesajarın rengini seçin.";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "Seçtiğiniz rengi sadece siz göreceksiniz.";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "Sohbet Rengi";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "Panodaki ile Karşılaştır";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "Davet et";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "Hangi kişilerinizin Signal kullandığını görmek için iOS Ayarlar uygulamasından kişiler erişimini etkinleştirebilirsiniz.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Bu işlem mesajlarınızı silerek ve sunucu kaydınızı silerek uygulamayı sıfırlayacaktır. İşlem tamamlandıktan sonra uygulama kapanacaktır.";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Hesabınızı silmek istediğinizden emin misiniz?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "Kişi Bilgisi";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Renk";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "Sohbet Rengi";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "Grup Bilgisi";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Kişilere Ekle";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Profilinizi Bu Kullanıcı ile Paylaşın";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Bu kullanıcı rehberinizde değil.";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Daha Fazla Mesaj Yükleniyor…";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Dahası için Dokunun";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Bu Kullanıcıyı Engelle";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "Sansür Atlatma Lokasyonu";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "iOS Ayarlar uygulamasından erişimini etkinleştirebilirsiniz.";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal Kişi Bilgilerini Düzenlemek İçin Kişi Erişimine İhtiyacı Var";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Güncelle";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Bu gruba yaptığınız değişiklikleri kaydetmek ister misiniz?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Kaydedilmemiş Değişiklikler";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "Haydi Signal'e geçelim";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "Eski sohbetlerinizi gelen kutunuzdan arşivleyebilirsiniz.";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "Sohbet Listenizi Temizleyin.";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "Kişilerinizin hiçbirinde Signal yok.";
@ -784,7 +793,7 @@
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "Gelen Kutusu Bomboş";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "PIN kodunuzu doğrulayın.";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Mesaj gönderilemedi.";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Eski anahtar verilerinden dolayı gönderilemedi.";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Engellediğiniz için kullanıcıya mesaj gönderilemedi.";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Eklenti yazımı ve gönderimi başarısız oldu.";
/* Generic error used whenever Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal internete bağlanamadı. Lütfen tekrar deneyin.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Mesaj gönderimi geçerli alıcı olmadığından başarısız oldu.";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "Hizmetten geçersiz yanıt alındı.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Bu cihaz artık telefon numaranıza kayıtlı değil. Lütfen Signal'i yeniden başlatın.";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "Sunucu hatası. Lütfen daha sonra tekrar deneyiniz.";
@ -868,10 +877,10 @@
"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "Kişi bir Signal kullanıcısı değil.";
/* Error message when unable to receive an attachment because the sending client is too old. */
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Eklenti hatası: Bu kullanıcıdan Signal'in en son sürümüne güncelledikten sonra mesajı tekrar göndermelerini isteyin.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Tekrarlanan bir ileti alındı.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "Alıcının anahtarı geçerli değil.";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "Alınan mesaj senkronize edilemedi.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "Bu sürümle uyumsuz bir ileti alındı.";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "Kişi için oturum mevcut değil.";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "Kayıtlı Olmayan Kullanıcı: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Bu kullanıcıya çok fazla hatalı deneme yaptınız. Lütfen daha sonra tekrar deneyin.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "%@ ile olan güvenlik numaranız yakın zamanda değişti. Bu mesajı tekrar göndermeden önce doğrulamak isteyebilirsiniz.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Güvenlik Numarası Doğrulanamadı!";
@ -922,13 +931,13 @@
"GALLERY_TILES_EMPTY_GALLERY" = "Bu konuşmada hiç medyanız yok.";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Daha Yeni Medyalar Yükleniyor…";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Daha Eski Medyalar Yükleniyor…";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "Ek";
"GENERIC_ATTACHMENT_LABEL" = "Eklenti";
/* Error displayed when there is a failure fetching a GIF from the remote service. */
"GIF_PICKER_ERROR_FETCH_FAILURE" = "İstenen GIF alınamadı. Lütfen çevrimiçi olduğunuzu doğrulayın.";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "Ara";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Tüm Doğrulamaları Temizle";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "Bu seçenek son doğrulanmasından bu yana güvenlik numarası değişmiş olan grup üyelerinin doğrulanmasını kaldırır.";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "Bağlanıyor...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "Yeniden bağlanıyor…";
/* Call setup status label */
"IN_CALL_RINGING" = "Çalıyor...";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "Çağrı Sonlandı.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Bu sohbetler arşivlendi ve sadece yeni mesajlar alınırsa gelen kutusunda görünecekler.";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "Signal sohbet listesinde kişilerinizin adını görmek için iOS Ayarlar uygulamasından kişiler erişimini etkinleştirebilirsiniz.";
/* notification body */
"INCOMING_CALL" = "Gelen çağrı";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Geçersiz ses dosyası.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "Arkadaşlarınızı Signal'e davet etmek için iOS Ayarlar uygulamasından kişiler erişimini etkinleştirebilirsiniz.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Kişi Erişimine İzin Ver";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "Arkadaş Davet Et";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "Aynı anda birden fazla kullanıcıyı davet etmek bir grup mesajı gönderir ve alıcılar birbirini görebilir.";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "Mesajlar %@ geçtikten sonra kayboluyor.";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "Grupdan ayrıl";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "Bu karekod geçerli değil. Lütfen bağlamak istediğiniz cihazda görüntülenen karekodu taradığınızdan emin olun.";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "Cihaz Bağlanması Başarısız Oldu";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Bu cihaz, gruplarınızı ve kişilerinizi görebilecek, tüm iletilerinize erişebilecek ve adınıza mesaj gönderebilecektir.";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Bu cihazı bağla?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "Yeniden dene";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Bağlamak istediğiniz cihazda görüntülenen karekodu taratın.";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "Karekod taratın";
@ -1168,16 +1177,16 @@
"MESSAGE_ACTION_COPY_TEXT" = "Mesaj Metnini kopyala";
/* Action sheet button title */
"MESSAGE_ACTION_DELETE_MESSAGE" = "Delete This Message";
"MESSAGE_ACTION_DELETE_MESSAGE" = "Bu Mesajı Sil";
/* Action sheet button subtitle */
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "It will only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "Yalnızca bu cihazdan silinecektir.";
/* Action sheet button title */
"MESSAGE_ACTION_DETAILS" = "Daha Fazla Bilgi";
/* Action sheet button title */
"MESSAGE_ACTION_REPLY" = "Reply to This Message";
"MESSAGE_ACTION_REPLY" = "Bu Mesajı Yanıtla";
/* Action sheet button title */
"MESSAGE_ACTION_SAVE_MEDIA" = "Medyayı Kaydet";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "Gönderme Başarısız";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "Gönderiliyor…";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "Gönderildi";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ artık doğrulanmış olarak işaretlenmiyor. Seçenekler için dokunun. ";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Bu Kullanıcıyı Engellediniz";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ artık doğrulanmış olarak işaretlenmiyor. Seçenekler için dokunun. ";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "Signal'de görüntülü aramalar yapmak için iOS Ayarlar uygulamasından kamera erişimini etkinleştirebilirsiniz.";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal'in kamera erişimine ihtiyacı var.";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "Bu izni Ayarlar uygulamasından etkinleştirebilirsiniz.";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Bu özellik için Signal'in fotoğraflarınıza erişmeye ihtiyacı var.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "%@ tarafından cevapsız arama.";
@ -1332,7 +1341,7 @@
"MULTIDEVICE_PAIRING_MAX_DESC" = "Daha fazla cihaz bağlayamazsınız.";
/* 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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Hesabınıza bağlayabileceğiniz azami cihaz sayısına ulaştınız. Lütfen bir cihazı kaldırın ve tekrar deneyin.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "Sessize alınmış görüşmeler için bildirim almayacaksınız.";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "Atla";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "Çevrimiçi olduğunuzu kontrol edip tekrar deneyin.";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "Sansür Atlatma: Açık";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Telefon Numarası ile Bul";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "Telefon Numarası ile ekle";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "Grup Fotoğrafını Ayarla";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Karşıdaki kişi Signal'in eski bir sürümünü kullanıyor. Doğrulamadan önce güncelleme yapmaları gerekiyor.";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "Taranan kod güvenlik numarası gibi gözükmüyor. Signal'in güncel sürümünde olduğunuzdan emin misiniz?";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "%@ ile olan uçtan uca şifrelemenizin güvenliğini doğrulamak isterseniz, yukarıdaki numaraları cihazlarındaki numaralarla karşılaştırın.\n\nAlternatif olarak, telefonlarından kodu taratabilir, ya da kodunuzu taratmalarını rica edebilirsiniz.";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "Kaydet";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "Kaydediliyor…";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profil";
@ -1626,7 +1635,7 @@
"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";
"QUOTED_REPLY_TYPE_ATTACHMENT" = "Eklenti";
/* Indicates this message is a quoted reply to an audio file. */
"QUOTED_REPLY_TYPE_AUDIO" = "Ses";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "Telefon Numarası";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "Mesaj göndermeden önce kaydolmanız gerekiyor.";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "Telefon Numaranız";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "Davetiye gönderilemedi, lütfen daha sonra tekrar deneyin.";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "Arkadaşınızı Signal kullanmaya davet ettiniz!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "SMS ile davet et: %@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Çağrıları Daima Aktar";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "IP adresinizi kişinize göstermekten kaçınmak için tüm aramaları Signal sunucusundan aktarın. Etkinleştirildiğinde arama kalitesi düşecektir.";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "Sohbet Geçmişini Temizle";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Signal Mesajlaşma Uygulaması Telif Hakkı\nGPLv3'e göre lisanslıdır";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Hesabı Sil";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "Tüm Verileri Sil";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Tüm geçmişi silmek istediğinizden emin misiniz (mesajlar, eklentiler, aramalar, vb.)? Bu eylem geri alınamaz.";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Her Şeyi Sil";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "%@ ile olan güvenlik numaranız yakın zamanda değişti. Yeniden göndermeden önce ana uygulamadan doğrulamak isteyebilirsiniz.";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "Yükleniyor…";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "Kaydolmak için Signal uygulamasını başlatın";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "Bağlantısını kaldır";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "Bu cihazın bağlantısı kesildiğinde artık mesaj gönderemeyecek ve alamayacak.";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "\"%@\" bağlantısını kaldır?";
@ -2241,7 +2250,7 @@
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Grup üyelerini gruptan çıkaramazsınız. Çıkmalarını bekleyebilir veya yeni bir grup açabilirsiniz.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Desteklenmiyor";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "IOS çağrı entegrasyonu ile kilit ekranınızdan gelen aramaları cevaplamak kolaydır. Varsayılan olarak arayan bilgilerini saklarız.";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Merhaba Güvenli Görüntülü Aramalar!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal iOS 9 veya daha sonrasını gerektirir. Lütfen iOS Ayarlar uygulamasından Yazılım Güncelleştirme özeliğini kullanın.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "iOS'u Güncelle";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "Signal yükseltiliyor…";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "Geri";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ 在 %@ 群组中:%@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal 无法启动。恳请您将调试输出发送至 support@signal.org以助我们解决此问题。";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "错误";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "%@ 版已在 App Store 上线。";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Signal 有新版本啦";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "更新";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "附件";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "下载失败,点击重试。";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "下载中...";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "附件发送错误";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "无法转换图片。";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "无法解析该视频。";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "无法识别图片。";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "无法清除图片的元数据。";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "无法调整图像大小。";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "附件过大。";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "附件中存在无效内容。";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "附件的文件格式无效。";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "无附件。";
@ -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" = "Please create a compressed archive of this file or directory and try sending that instead.";
"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" = "不支持的文件";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "重拨";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "您可在 iOS 设置中启用麦克风权限,以允许 Signal 拨打电话或录制语音消息。";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "请求访问麦克风";
@ -309,7 +309,7 @@
"CALL_LABEL" = "打电话";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "无应答";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "静音";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "您可在 Signal 隐私设置中启用 iOS 呼叫整合,以便在锁屏时接听 Signal 来电。";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "您可在 Signal 隐私设置中启用 iOS 呼叫整合,以便查看 Signal 来电人的名称和号码。";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "以后";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal 没有访问您 iCloud 账户的权限。";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "选择此对话中发出消息的颜色。";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "只有您才能看到所选的颜色。";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "对话颜色";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "和剪切版比较";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "邀请";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "您可在 iOS 设置中启用联系人读取权限,以便查看哪些联系人使用了 Signal。";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "这个重置操作将删除您的消息,并从服务器上注销您的账户。应用将在操作完成后自动关闭。";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "您确定要删除您的账号吗?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "联系人信息";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "颜色";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "对话颜色";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "组信息";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "添加到联系人";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "分享您的资料给该用户";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "该用户不在您的联系人列表中。";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "正在载入更多消息...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"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" = "屏蔽该用户";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "执行审查规避的地点";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "您可在 iOS 设置中启用此权限。";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal 需要联系人访问权限来修改联系人信息";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "更新";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "需要保留对此群组的修改吗?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "未保存的修改";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "切换到 Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "您可以将收件箱中不活跃的会话移至存档。";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "清理您的对话列表";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "暂时没有联系人使用 Signal.";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "开始您的第一个 Signal 对话吧!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "空空如也。";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "收件箱空空如也";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "确认您的PIN码。";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "未能发送消息。";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Prekey 更新失败,无法发送消息。";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "无法向黑名单用户发送消息";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"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 was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal 无法连接网络,请重试。";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "缺少有效接收人,消息发送失败。";

View File

@ -69,7 +69,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@在群組%@%@";
/* Message for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal can't launch. Please send a debug log to support@signal.org so that we can troubleshoot this issue.";
"APP_LAUNCH_FAILURE_ALERT_MESSAGE" = "Signal 無法啟動。請將除錯日誌傳送到 support@signal.org ,以便我們解決這個問題。";
/* Title for the 'app launch failed' alert. */
"APP_LAUNCH_FAILURE_ALERT_TITLE" = "錯誤";
@ -84,7 +84,7 @@
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "第%@版已經在App Store 上架";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal Is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "有新版本的 Signal 提供下載";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "更新";
@ -114,7 +114,7 @@
"ATTACHMENT_DEFAULT_FILENAME" = "附件";
/* Status label when an attachment download has failed. */
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Download failed. Tap to retry.";
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "下載失敗。請點擊再試一次。";
/* Status label when an attachment is currently downloading */
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "下載中...";
@ -126,28 +126,28 @@
"ATTACHMENT_ERROR_ALERT_TITLE" = "附件傳送錯誤";
/* Attachment error message for image attachments which could not be converted to JPEG */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Unable to convert image.";
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "無法轉換照片。";
/* Attachment error message for video attachments which could not be converted to MP4 */
"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_MP4" = "無法處理此影片。";
/* Attachment error message for image attachments which cannot be parsed */
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Unable to parse image.";
"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "無法解析照片。";
/* Attachment error message for image attachments in which metadata could not be removed */
"ATTACHMENT_ERROR_COULD_NOT_REMOVE_METADATA" = "無法從影像檔中移除數據資料。";
/* Attachment error message for image attachments which could not be resized */
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "Unable to resize image.";
"ATTACHMENT_ERROR_COULD_NOT_RESIZE_IMAGE" = "無法調整照片尺寸。";
/* Attachment error message for attachments whose data exceed file size limits */
"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "附件太大。";
/* Attachment error message for attachments with invalid data */
"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment includes invalid content.";
"ATTACHMENT_ERROR_INVALID_DATA" = "附檔包含了無效的內容。";
/* Attachment error message for attachments with an invalid file format */
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has an invalid file format.";
"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "附檔含有一個無效的檔案格式。";
/* Attachment error message for attachments without any data */
"ATTACHMENT_ERROR_MISSING_DATA" = "附件是空白的。";
@ -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" = "Please create a compressed archive of this file or directory and try sending that instead.";
"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" = "不支援的檔案類型。";
@ -300,7 +300,7 @@
"CALL_AGAIN_BUTTON_TITLE" = "重撥電話";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "You can enable microphone access in the iOS Settings app to make calls and record voice messages in Signal.";
"CALL_AUDIO_PERMISSION_MESSAGE" = "你可以在iOS 設定中允許取用麥克風,以便在 Signal 中撥打電話及錄製語音訊息。";
/* Alert title when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_TITLE" = "須要使用麥克風";
@ -309,7 +309,7 @@
"CALL_LABEL" = "撥出";
/* Call setup status label after outgoing call times out */
"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer";
"CALL_SCREEN_STATUS_NO_ANSWER" = "沒有回應";
/* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */
"CALL_STATUS_FORMAT" = "Signal %@";
@ -339,10 +339,10 @@
"CALL_VIEW_MUTE_LABEL" = "靜音通知";
/* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can enable iOS Call Integration in your Signal privacy settings to answer incoming calls from your lock screen.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "你可以在 Signal 隱私權設定中啟動 iOS 通話整合,以便從鎖定螢幕中回覆來電。";
/* Reminder to the user of the benefits of disabling CallKit privacy. */
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can enable iOS Call Integration in your Signal privacy settings to see the name and phone number for incoming calls.";
"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "你可以在 Signal 隱私權設定中啟動 iOS 電話整合,以顯示來電者的名字與電話號碼。";
/* Label for button that dismiss the call view's settings nag. */
"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "稍後";
@ -386,6 +386,15 @@
/* Error indicating that the app was prevented from accessing the user's CloudKit account. */
"CLOUDKIT_STATUS_RESTRICTED" = "Signal 並不被允許連結你的 iCloud 帳號來備份。";
/* The first of two messages demonstrating the chosen conversation color, by rendering this message in an outgoing message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_1" = "選擇在此對話中要發出訊息的顏色。";
/* The second of two messages demonstrating the chosen conversation color, by rendering this message in an incoming message bubble. */
"COLOR_PICKER_DEMO_MESSAGE_2" = "只有你可看到你所選的顏色。";
/* Modal Sheet title when picking a conversation color. */
"COLOR_PICKER_SHEET_TITLE" = "對話的顏色";
/* Activity Sheet label */
"COMPARE_SAFETY_NUMBER_ACTION" = "和剪貼簿比對";
@ -399,10 +408,10 @@
"COMPOSE_MESSAGE_INVITE_SECTION_TITLE" = "邀請";
/* Multi-line label explaining why compose-screen contact picker is empty. */
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see which of your contacts are Signal users.";
"COMPOSE_SCREEN_MISSING_CONTACTS_PERMISSION" = "你可以在 iOS 設定中允許取用聯絡資訊,以確認哪位聯絡人是 Signal 的使用者。";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "This will reset the application by deleting your messages and unregistering you with the server. The app will close after this process is complete.";
"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "這將會透過刪除你的訊息及自伺服器取消註冊來重置應用程式。在這個過程完成後,本應用程式將關閉。";
/* No comment provided by engineer. */
"CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "你確定要刪除你的帳號嗎?";
@ -531,7 +540,7 @@
"CONVERSATION_SETTINGS_CONTACT_INFO_TITLE" = "使用者資訊";
/* Label for table cell which leads to picking a new conversation color */
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "顏色";
"CONVERSATION_SETTINGS_CONVERSATION_COLOR" = "對話顏色";
/* Navbar title when viewing settings for a group thread */
"CONVERSATION_SETTINGS_GROUP_INFO_TITLE" = "群組資訊";
@ -591,16 +600,16 @@
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "新增到聯絡資訊";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile with This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "與這個使用者分享你的個人資訊";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "此使用者不在聯絡資訊中";
/* Indicates that the app is loading more messages in this conversation. */
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "Loading More Messages…";
"CONVERSATION_VIEW_LOADING_MORE_MESSAGES" = "讀取更多的訊息中...";
/* Indicator on truncated text messages that they can be tapped to see the entire text message. */
"CONVERSATION_VIEW_OVERSIZE_TEXT_TAP_FOR_MORE" = "Tap for More";
"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" = "封鎖此使用者";
@ -718,7 +727,7 @@
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "審查規避";
/* Alert body for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "You can enable access in the iOS Settings app.";
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_BODY" = "你可以在 iOS 設定中允許取用。";
/* Alert title for when the user has just tried to edit a contacts after declining to give Signal contacts permissions */
"EDIT_CONTACT_WITHOUT_CONTACTS_PERMISSION_ALERT_TITLE" = "Signal 須要存取聯絡資訊以編輯聯絡人資訊";
@ -745,7 +754,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "更新";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to save the changes that you made to this group?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "你要儲存對這個群組的變更嗎?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "未儲存的變更";
@ -763,10 +772,10 @@
"EMAIL_INVITE_SUBJECT" = "讓我們改用 Signal";
/* Body text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TEXT" = "You can archive inactive conversations from your Inbox.";
"EMPTY_ARCHIVE_TEXT" = "您可以從收件箱中歸檔不再活動的對話。";
/* Header text an existing user sees when viewing an empty archive */
"EMPTY_ARCHIVE_TITLE" = "Clean Up Your Conversation List";
"EMPTY_ARCHIVE_TITLE" = "清除你的對話清單";
/* Full width label displayed when attempting to compose message */
"EMPTY_CONTACTS_LABEL_LINE1" = "你的聯絡資訊中沒有人使用 Signal。";
@ -781,10 +790,10 @@
"EMPTY_INBOX_NEW_USER_TITLE" = "開始你的第一個Signal 對話!";
/* Body text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TEXT" = "None. Zip. Zilch. Nada.";
"EMPTY_INBOX_TEXT" = "所有訊息已清除。";
/* Header text an existing user sees when viewing an empty inbox */
"EMPTY_INBOX_TITLE" = "Inbox Zero";
"EMPTY_INBOX_TITLE" = "沒有任何訊息!";
/* Indicates that user should confirm their 'two factor auth pin'. */
"ENABLE_2FA_VIEW_CONFIRM_PIN_INSTRUCTIONS" = "確認你的 PIN 碼。";
@ -832,16 +841,16 @@
"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "訊息傳送失敗。";
/* Error message indicating that message send is disabled due to prekey update failures */
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale prekey data.";
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "因過舊的密鑰資料而無法傳送。";
/* Error message indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "無法傳送訊息給此人,因為被你封鎖了。";
/* Error message indicating that message send failed due to failed attachment write */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_FAILED_ATTACHMENT_WRITE" = "Failed to write and send attachment.";
"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 was unable to connect to the internet. Please try again.";
"ERROR_DESCRIPTION_NO_INTERNET" = "Signal 無法連接網際網路,請再重試一遍。";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "訊息無法傳送,因為沒有有效的傳送對象。";
@ -856,7 +865,7 @@
"ERROR_DESCRIPTION_RESPONSE_FAILED" = "服務的無效回應。";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "This device is no longer registered with your phone number. Please reinstall Signal.";
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "你的電話號碼不再註冊於本裝置。請重新安裝 Signal。";
/* Generic server error */
"ERROR_DESCRIPTION_SERVER_FAILURE" = "伺服器錯誤。請稍候再試。";
@ -868,10 +877,10 @@
"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "此聯絡人不是 Signal 使用者。";
/* Error message when unable to receive an attachment because the sending client is too old. */
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "Attachment failure: Ask this contact to send their message again after updating to the latest version of Signal.";
"ERROR_MESSAGE_ATTACHMENT_FROM_OLD_CLIENT" = "附檔失敗請要求此聯絡人更新到Signal最新版本並再重傳一次。";
/* No comment provided by engineer. */
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Received a duplicate message.";
"ERROR_MESSAGE_DUPLICATE_MESSAGE" = "接收到重複的訊息。";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "接收者的金鑰無效。";
@ -880,7 +889,7 @@
"ERROR_MESSAGE_INVALID_MESSAGE" = "收到的訊息沒有被同步。";
/* No comment provided by engineer. */
"ERROR_MESSAGE_INVALID_VERSION" = "Received a message that is not compatible with this version.";
"ERROR_MESSAGE_INVALID_VERSION" = "接收到的訊息並不相容於此版本。";
/* No comment provided by engineer. */
"ERROR_MESSAGE_NO_SESSION" = "沒有對象的會話。";
@ -901,10 +910,10 @@
"ERROR_UNREGISTERED_USER_FORMAT" = "未註冊的使用者: %@";
/* action sheet header when re-sending message which failed because of too many attempts */
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again later.";
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "此聯繫人失敗太多次,請稍後再試。";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before sending this message again.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "你與%@的安全碼最近已改變。請與對方驗證後再重傳一次訊息。";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "驗證安全碼失敗!";
@ -922,10 +931,10 @@
"GALLERY_TILES_EMPTY_GALLERY" = "你在此對話中沒有任何多媒體檔案。";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "Loading Newer Media…";
"GALLERY_TILES_LOADING_MORE_RECENT_LABEL" = "讀取較新的媒體檔中...";
/* Label indicating loading is in progress */
"GALLERY_TILES_LOADING_OLDER_LABEL" = "Loading Older Media…";
"GALLERY_TILES_LOADING_OLDER_LABEL" = "讀取較舊的媒體檔中...";
/* A label for generic attachments. */
"GENERIC_ATTACHMENT_LABEL" = "附件";
@ -979,7 +988,7 @@
"GROUP_MEMBERS_CALL" = "撥打";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification for All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "清除所有人的驗證";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "這會清除群組中所有自最後一次驗證以來安全碼改變的組員的驗證。";
@ -1033,7 +1042,7 @@
"IN_CALL_CONNECTING" = "連接中...";
/* Call setup status label */
"IN_CALL_RECONNECTING" = "Reconnecting…";
"IN_CALL_RECONNECTING" = "重新連接中...";
/* Call setup status label */
"IN_CALL_RINGING" = "響鈴中...";
@ -1045,10 +1054,10 @@
"IN_CALL_TERMINATED" = "結束通話。";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "These conversations are archived and will only appear in the Inbox if new messages are received.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "這些對話已經歸檔,並只有在收到新訊息時才會顯示在收件箱中。";
/* Multi-line label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "You can enable contacts access in the iOS Settings app to see contact names in your Signal conversation list.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "你可以在 iOS設定中允許取用聯絡資訊以在你的 Signal 對話清單中見到聯絡人名稱。";
/* notification body */
"INCOMING_CALL" = "來電...";
@ -1069,7 +1078,7 @@
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "無效的音訊檔。";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "You can enable contacts access in the iOS Settings app to invite your friends to join Signal.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "你可以在 iOS設定中允許取用聯絡資訊來邀請你的朋友加入 Signal。";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "允許聯絡資訊存取";
@ -1084,7 +1093,7 @@
"INVITE_FRIENDS_PICKER_TITLE" = "邀請朋友";
/* 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 start a group message and the recipients will be able to see each other.";
"INVITE_WARNING_MULTIPLE_INVITES_BY_TEXT" = "同時邀請多個使用者降啟動群組訊息功能,接收者將因此可以見到對方。";
/* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */
"KEEP_MESSAGES_DURATION" = "訊息在%@後消毀。";
@ -1099,13 +1108,13 @@
"LEAVE_GROUP_ACTION" = "離開群組";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid. Please make sure you are scanning the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_INVALID_CODE_BODY" = "這個 QR 碼無效。請確定您正在掃描要連接的裝置上顯示的QR碼。";
/* report an invalid linking code */
"LINK_DEVICE_INVALID_CODE_TITLE" = "裝置連結失敗";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, access your conversations, and send messages in your name.";
"LINK_DEVICE_PERMISSION_ALERT_BODY" = "本裝置將可見到你的群組、聯絡人、連接你的對話及以你的名字傳送訊息。";
/* confirm the users intent to link a new device */
"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "連結裝置?";
@ -1114,7 +1123,7 @@
"LINK_DEVICE_RESTART" = "重試";
/* QR Scanning screen instructions, placed alongside a camera view for scanning QR Codes */
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code that is displayed on the device you want to link.";
"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "請掃描要連接的裝置上顯示的 QR 碼。";
/* Subheading for 'Link New Device' navigation */
"LINK_NEW_DEVICE_SUBTITLE" = "掃描 QR code";
@ -1168,16 +1177,16 @@
"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 only be deleted on this device.";
"MESSAGE_ACTION_DELETE_MESSAGE_SUBTITLE" = "這將只在本裝置上刪除。";
/* Action sheet button title */
"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" = "儲存媒體檔案";
@ -1258,7 +1267,7 @@
"MESSAGE_STATUS_SEND_FAILED" = "傳送失敗";
/* message status while message is sending. */
"MESSAGE_STATUS_SENDING" = "Sending…";
"MESSAGE_STATUS_SENDING" = "傳送中...";
/* status message for sent messages */
"MESSAGE_STATUS_SENT" = "已傳送";
@ -1270,7 +1279,7 @@
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@已不再標記為已驗證。點擊開啟選項。";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked This User";
"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" = "%@已不再標記為已驗證。點擊開啟選項。";
@ -1313,17 +1322,17 @@
/* Alert body
Alert body when camera is not authorized */
"MISSING_CAMERA_PERMISSION_MESSAGE" = "You can enable camera access in the iOS Settings app to make video calls in Signal.";
"MISSING_CAMERA_PERMISSION_MESSAGE" = "你可以在 iOS 設定中允許取用相機以在 Signal 中使用影像電話。";
/* Alert title
Alert title when camera is not authorized */
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal要求使用你的相機";
/* Alert body when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "You can enable this permission in the iOS Settings app.";
"MISSING_MEDIA_LIBRARY_PERMISSION_MESSAGE" = "你可以在 iOS 設定中允許此權限。";
/* Alert title when user has previously denied media library access */
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal requires access to your photos for this feature.";
"MISSING_MEDIA_LIBRARY_PERMISSION_TITLE" = "Signal 要求取用你的照片才能使用此功能。";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "來自%@的未接來電。";
@ -1332,7 +1341,7 @@
"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 and try again.";
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "你已達到目前可以與本帳戶連結的裝置最大數量。 請刪除一個裝置,然後重試。";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "你將無法自禁言的對話收到通知。";
@ -1341,7 +1350,7 @@
"NAVIGATION_ITEM_SKIP_BUTTON" = "跳過";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Please check if you are online and try again.";
"NETWORK_ERROR_RECOVERY" = "請確認是否在線上,並再重試。";
/* Indicates to the user that censorship circumvention has been activated. */
"NETWORK_STATUS_CENSORSHIP_CIRCUMVENTION_ACTIVE" = "審查規避:開啟";
@ -1365,7 +1374,7 @@
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "以電話號碼搜尋";
/* A label for the cell that lets you add a new non-contact member to a group. */
"NEW_GROUP_ADD_NON_CONTACT" = "Add by Phone Number";
"NEW_GROUP_ADD_NON_CONTACT" = "以電話號碼新增";
/* Action Sheet title prompting the user for a group avatar */
"NEW_GROUP_ADD_PHOTO_ACTION" = "設定群組照片";
@ -1536,7 +1545,7 @@
"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "你朋友使用的 Signal版本太舊。他們必須升級後才能驗證。";
/* alert body */
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number. Are you both on an up-to-date version of Signal?";
"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "你所掃描的碼似乎不是安全碼。請確認雙方都使用最新的版本。";
/* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */
"PRIVACY_VERIFICATION_INSTRUCTIONS" = "如須確認你和 %@點對點加密的安全性,請在雙方裝置上比較上述數字。\n\n或者可以透過掃描雙方的QR code進行驗證。";
@ -1587,7 +1596,7 @@
"PROFILE_VIEW_SAVE_BUTTON" = "儲存";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving…";
"PROFILE_VIEW_SAVING" = "儲存中...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "個人資訊";
@ -1707,7 +1716,7 @@
"REGISTRATION_PHONENUMBER_BUTTON" = "電話號碼";
/* No comment provided by engineer. */
"REGISTRATION_RESTRICTED_MESSAGE" = "You need to register before you can send a message.";
"REGISTRATION_RESTRICTED_MESSAGE" = "你必須先註冊才能傳送訊息。";
/* No comment provided by engineer. */
"REGISTRATION_TITLE_LABEL" = "你的電話號碼";
@ -1851,7 +1860,7 @@
"SEND_INVITE_FAILURE" = "邀請寄出失敗,稍後再試一次。";
/* Alert body after invite succeeded */
"SEND_INVITE_SUCCESS" = "You invited your friend to use Signal!";
"SEND_INVITE_SUCCESS" = "你已邀請你的朋友來使用 Signal";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the recipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "透過簡訊邀請:%@";
@ -1959,13 +1968,13 @@
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "永遠轉發通話";
/* User settings section footer, a detailed explanation */
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through a Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality.";
"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "透過 Signal 伺服器轉發通話,來避免透露你的 IP 位址給你的聯絡人。啟用時,會降低通話品質。";
/* No comment provided by engineer. */
"SETTINGS_CLEAR_HISTORY" = "清除對話紀錄";
/* No comment provided by engineer. */
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger \n Licensed under the GPLv3";
"SETTINGS_COPYRIGHT" = "Copyright Signal Messenger\n Licensed under the GPLv3";
/* No comment provided by engineer. */
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "刪除帳戶";
@ -1974,7 +1983,7 @@
"SETTINGS_DELETE_DATA_BUTTON" = "刪除所有資料";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all history (messages, attachments, calls, etc.)? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "你確定要刪除所有的歷史紀錄(包括訊息、附檔、電話等等?)此操作將無法被還原。";
/* Confirmation text for button which deletes all message, calling, attachments, etc. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "刪除所有內容記錄";
@ -2100,7 +2109,7 @@
"SHARE_EXTENSION_FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_FORMAT" = "您與 %@的安全碼已改變。建議您重新寄送前,在主程式中驗證新的安全碼。";
/* Indicates that the share extension is still loading. */
"SHARE_EXTENSION_LOADING" = "Loading…";
"SHARE_EXTENSION_LOADING" = "讀取中...";
/* Message indicating that the share extension cannot be used until the user has registered in the main app. */
"SHARE_EXTENSION_NOT_REGISTERED_MESSAGE" = "啟動 Signal 應用程式來註冊。";
@ -2217,7 +2226,7 @@
"UNLINK_ACTION" = "取消連結";
/* Alert message to confirm unlinking a device */
"UNLINK_CONFIRMATION_ALERT_BODY" = "This device will no longer be able to send or receive messages if it is unlinked.";
"UNLINK_CONFIRMATION_ALERT_BODY" = "如果取消連結,本裝置將無法傳送或接收訊息了。";
/* Alert title for confirming device deletion */
"UNLINK_CONFIRMATION_ALERT_TITLE" = "取消和「%@」的連結?";
@ -2241,7 +2250,7 @@
"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" = "Not Supported";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "不支援";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "iOS通話整合可以幫助你簡單的從鎖定螢幕回應來電。預設會隱藏來電者的訊息所以訊息也會保密。";
@ -2286,13 +2295,13 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "現推出安全的視訊通話!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal requires iOS 9 or later. Please use the Software Update feature in the iOS Settings app.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal 要求 iOS 9 或以後的版本。請在 iOS 設定中執行軟體更新。";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "更新 iOS";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Upgrading Signal…";
"Upgrading Signal ..." = "正在升級 Signal...";
/* button text for back button on verification view */
"VERIFICATION_BACK_BUTTON" = "退後";

View File

@ -55,7 +55,7 @@ public class SheetViewController: UIViewController {
sheetView.setCompressionResistanceHigh()
self.sheetViewVerticalConstraint = sheetView.autoPinEdge(.top, to: .bottom, of: self.view)
handleView.backgroundColor = Theme.backgroundColor
handleView.backgroundColor = Theme.isDarkThemeEnabled ? UIColor.ows_white : UIColor.ows_gray05
let kHandleViewHeight: CGFloat = 5
handleView.autoSetDimensions(to: CGSize(width: 40, height: kHandleViewHeight))
handleView.layer.cornerRadius = kHandleViewHeight / 2
@ -66,6 +66,10 @@ public class SheetViewController: UIViewController {
// Gestures
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(didTapBackground))
self.view.addGestureRecognizer(tapGesture)
let swipeDownGesture = UISwipeGestureRecognizer(target: self, action: #selector(didSwipeDown))
swipeDownGesture.direction = .down
self.view.addGestureRecognizer(swipeDownGesture)
}
// MARK: Present / Dismiss animations
@ -123,6 +127,12 @@ public class SheetViewController: UIViewController {
// inform delegate to
delegate?.sheetViewControllerRequestedDismiss(self)
}
@objc
func didSwipeDown() {
// inform delegate to
delegate?.sheetViewControllerRequestedDismiss(self)
}
}
extension SheetViewController: UIViewControllerTransitioningDelegate {

View File

@ -183,12 +183,12 @@ const CGFloat kContactCellAvatarTextMargin = 12;
return;
}
NSString *colorName = ^{
ConversationColorName colorName = ^{
if (self.thread) {
return self.thread.conversationColorName;
} else {
OWSAssertDebug(self.recipientId);
return [TSThread stableConversationColorNameForString:self.recipientId];
return [TSThread stableColorNameForNewConversationWithString:self.recipientId];
}
}();

View File

@ -2,20 +2,21 @@
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import <SignalServiceKit/TSThread.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface OWSConversationColor : NSObject
@property (nonatomic, readonly) NSString *name;
@property (nonatomic, readonly) ConversationColorName name;
@property (nonatomic, readonly) UIColor *primaryColor;
@property (nonatomic, readonly) UIColor *shadeColor;
@property (nonatomic, readonly) UIColor *tintColor;
@property (nonatomic, readonly) UIColor *themeColor;
+ (OWSConversationColor *)conversationColorWithName:(NSString *)name
+ (OWSConversationColor *)conversationColorWithName:(ConversationColorName)name
primaryColor:(UIColor *)primaryColor
shadeColor:(UIColor *)shadeColor
tintColor:(UIColor *)tintColor;
@ -66,18 +67,15 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Conversation Colors
+ (nullable OWSConversationColor *)conversationColorForColorName:(NSString *)colorName
+ (nullable OWSConversationColor *)conversationColorForColorName:(ConversationColorName)colorName
NS_SWIFT_NAME(conversationColor(colorName:));
// If the conversation color name is valid, return its colors.
// Otherwise return the "default" conversation colors.
+ (OWSConversationColor *)conversationColorOrDefaultForColorName:(NSString *)conversationColorName
+ (OWSConversationColor *)conversationColorOrDefaultForColorName:(ConversationColorName)conversationColorName
NS_SWIFT_NAME(conversationColorOrDefault(colorName:));
@property (class, readonly, nonatomic) NSArray<NSString *> *conversationColorNames;
+ (NSString *)defaultConversationColorName;
+ (OWSConversationColor *)defaultConversationColor;
@property (class, readonly, nonatomic) NSArray<ConversationColorName> *conversationColorNames;
@end

View File

@ -5,12 +5,13 @@
#import "OWSConversationColor.h"
#import "Theme.h"
#import "UIColor+OWS.h"
#import <SignalServiceKit/TSThread.h>
NS_ASSUME_NONNULL_BEGIN
@interface OWSConversationColor ()
@property (nonatomic) NSString *name;
@property (nonatomic) ConversationColorName name;
@property (nonatomic) UIColor *primaryColor;
@property (nonatomic) UIColor *shadeColor;
@property (nonatomic) UIColor *tintColor;
@ -21,7 +22,7 @@ NS_ASSUME_NONNULL_BEGIN
@implementation OWSConversationColor
+ (OWSConversationColor *)conversationColorWithName:(NSString *)name
+ (OWSConversationColor *)conversationColorWithName:(ConversationColorName)name
primaryColor:(UIColor *)primaryColor
shadeColor:(UIColor *)shadeColor
tintColor:(UIColor *)tintColor
@ -245,51 +246,51 @@ NS_ASSUME_NONNULL_BEGIN
dispatch_once(&onceToken, ^{
// Order here affects the order in the conversation color picker.
allConversationColors = @[
[OWSConversationColor conversationColorWithName:@"crimson"
[OWSConversationColor conversationColorWithName:ConversationColorNameCrimson
primaryColor:self.ows_crimsonColor
shadeColor:self.ows_crimsonShadeColor
tintColor:self.ows_crimsonTintColor],
[OWSConversationColor conversationColorWithName:@"vermilion"
[OWSConversationColor conversationColorWithName:ConversationColorNameVermilion
primaryColor:self.ows_vermilionColor
shadeColor:self.ows_vermilionShadeColor
tintColor:self.ows_vermilionTintColor],
[OWSConversationColor conversationColorWithName:@"burlap"
[OWSConversationColor conversationColorWithName:ConversationColorNameBurlap
primaryColor:self.ows_burlapColor
shadeColor:self.ows_burlapShadeColor
tintColor:self.ows_burlapTintColor],
[OWSConversationColor conversationColorWithName:@"forest"
[OWSConversationColor conversationColorWithName:ConversationColorNameForest
primaryColor:self.ows_forestColor
shadeColor:self.ows_forestShadeColor
tintColor:self.ows_forestTintColor],
[OWSConversationColor conversationColorWithName:@"wintergreen"
[OWSConversationColor conversationColorWithName:ConversationColorNameWintergreen
primaryColor:self.ows_wintergreenColor
shadeColor:self.ows_wintergreenShadeColor
tintColor:self.ows_wintergreenTintColor],
[OWSConversationColor conversationColorWithName:@"teal"
[OWSConversationColor conversationColorWithName:ConversationColorNameTeal
primaryColor:self.ows_tealColor
shadeColor:self.ows_tealShadeColor
tintColor:self.ows_tealTintColor],
[OWSConversationColor conversationColorWithName:@"blue"
[OWSConversationColor conversationColorWithName:ConversationColorNameBlue
primaryColor:self.ows_blueColor
shadeColor:self.ows_blueShadeColor
tintColor:self.ows_blueTintColor],
[OWSConversationColor conversationColorWithName:@"indigo"
[OWSConversationColor conversationColorWithName:ConversationColorNameIndigo
primaryColor:self.ows_indigoColor
shadeColor:self.ows_indigoShadeColor
tintColor:self.ows_indigoTintColor],
[OWSConversationColor conversationColorWithName:@"violet"
[OWSConversationColor conversationColorWithName:ConversationColorNameViolet
primaryColor:self.ows_violetColor
shadeColor:self.ows_violetShadeColor
tintColor:self.ows_violetTintColor],
[OWSConversationColor conversationColorWithName:@"plum"
[OWSConversationColor conversationColorWithName:ConversationColorNamePlum
primaryColor:self.ows_plumColor
shadeColor:self.ows_plumShadeColor
tintColor:self.ows_plumTintColor],
[OWSConversationColor conversationColorWithName:@"taupe"
[OWSConversationColor conversationColorWithName:ConversationColorNameTaupe
primaryColor:self.ows_taupeColor
shadeColor:self.ows_taupeShadeColor
tintColor:self.ows_taupeTintColor],
[OWSConversationColor conversationColorWithName:@"steel"
[OWSConversationColor conversationColorWithName:ConversationColorNameSteel
primaryColor:self.ows_steelColor
shadeColor:self.ows_steelShadeColor
tintColor:self.ows_steelTintColor],
@ -299,12 +300,12 @@ NS_ASSUME_NONNULL_BEGIN
return allConversationColors;
}
+ (NSDictionary<NSString *, OWSConversationColor *> *)conversationColorMap
+ (NSDictionary<ConversationColorName, OWSConversationColor *> *)conversationColorMap
{
static NSDictionary<NSString *, OWSConversationColor *> *colorMap;
static NSDictionary<ConversationColorName, OWSConversationColor *> *colorMap;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSMutableDictionary<NSString *, OWSConversationColor *> *mutableColorMap = [NSMutableDictionary new];
NSMutableDictionary<ConversationColorName, OWSConversationColor *> *mutableColorMap = [NSMutableDictionary new];
for (OWSConversationColor *conversationColor in self.allConversationColors) {
mutableColorMap[conversationColor.name] = conversationColor;
}
@ -314,59 +315,32 @@ NS_ASSUME_NONNULL_BEGIN
return colorMap;
}
+ (NSDictionary<NSString *, NSString *> *)ows_legacyConversationColorMap
+ (NSArray<ConversationColorName> *)conversationColorNames
{
static NSDictionary<NSString *, NSString *> *colorMap;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
colorMap = @{
@"red" : @"crimson",
@"deep_orange" : @"crimson",
@"orange" : @"vermilion",
@"amber" : @"vermilion",
@"brown" : @"burlap",
@"yellow" : @"burlap",
@"pink" : @"plum",
@"purple" : @"violet",
@"deep_purple" : @"violet",
@"indigo" : @"indigo",
@"blue" : @"blue",
@"light_blue" : @"blue",
@"cyan" : @"teal",
@"teal" : @"teal",
@"green" : @"forest",
@"light_green" : @"wintergreen",
@"lime" : @"wintergreen",
@"blue_grey" : @"taupe",
@"grey" : @"steel",
};
});
return colorMap;
}
+ (NSArray<NSString *> *)conversationColorNames
{
NSMutableArray<NSString *> *names = [NSMutableArray new];
NSMutableArray<ConversationColorName> *names = [NSMutableArray new];
for (OWSConversationColor *conversationColor in self.allConversationColors) {
[names addObject:conversationColor.name];
}
#ifdef DEBUG
NSSet<ConversationColorName> *colorNameSet = [NSSet setWithArray:names];
// These constants are duplicated in two places. So this canary exists to make sure they stay in sync.
NSSet<ConversationColorName> *threadColorNameSet = [NSSet setWithArray:TSThread.conversationColorNames];
OWSAssertDebug([colorNameSet isEqual:threadColorNameSet]);
#endif
return [names copy];
}
+ (nullable OWSConversationColor *)conversationColorForColorName:(NSString *)conversationColorName
+ (nullable OWSConversationColor *)conversationColorForColorName:(ConversationColorName)conversationColorName
{
NSString *_Nullable mappedColorName = self.ows_legacyConversationColorMap[conversationColorName.lowercaseString];
if (mappedColorName) {
conversationColorName = mappedColorName;
} else {
OWSAssertDebug(self.conversationColorMap[conversationColorName] != nil);
}
OWSConversationColor *_Nullable result = self.conversationColorMap[conversationColorName];
return self.conversationColorMap[conversationColorName];
// Any mapping to colorNames should be done in TSThread before this method is called.
OWSAssertDebug(result != nil);
return result;
}
+ (OWSConversationColor *)conversationColorOrDefaultForColorName:(NSString *)conversationColorName
+ (OWSConversationColor *)conversationColorOrDefaultForColorName:(ConversationColorName)conversationColorName
{
OWSConversationColor *_Nullable conversationColor = [self conversationColorForColorName:conversationColorName];
if (conversationColor) {
@ -375,16 +349,9 @@ NS_ASSUME_NONNULL_BEGIN
return [self defaultConversationColor];
}
+ (NSString *)defaultConversationColorName
{
NSString *conversationColorName = @"steel";
OWSAssert([self.conversationColorNames containsObject:conversationColorName]);
return conversationColorName;
}
+ (OWSConversationColor *)defaultConversationColor
{
return [self conversationColorForColorName:self.defaultConversationColorName];
return [self conversationColorForColorName:kConversationColorName_Default];
}
@end

View File

@ -943,7 +943,7 @@ public class SignalAttachment: NSObject {
}
private class var videoTempPath: URL {
let videoDir = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("video")
let videoDir = URL(fileURLWithPath: OWSTemporaryDirectory()).appendingPathComponent("video")
OWSFileSystem.ensureDirectoryExists(videoDir.path)
return videoDir
}

View File

@ -197,6 +197,7 @@ NS_ASSUME_NONNULL_BEGIN
// TODO: Remove
+ (UIColor *)ows_darkSkyBlueColor
{
// HEX 0xc2090EA
return [UIColor colorWithRed:32.f / 255.f green:144.f / 255.f blue:234.f / 255.f alpha:1.f];
}

View File

@ -49,6 +49,13 @@ NS_ASSUME_NONNULL_BEGIN
OWSPrimaryStorage *primaryStorage = [[OWSPrimaryStorage alloc] initStorage];
[OWSPrimaryStorage protectFiles];
// AFNetworking (via CFNetworking) spools it's attachments to NSTemporaryDirectory().
// If you receive a media message while the device is locked, the download will fail if the temporary directory
// is NSFileProtectionComplete
BOOL success = [OWSFileSystem protectFileOrFolderAtPath:NSTemporaryDirectory()
fileProtectionType:NSFileProtectionCompleteUntilFirstUserAuthentication];
OWSAssert(success);
OWSPreferences *preferences = [OWSPreferences new];
TSNetworkManager *networkManager = [[TSNetworkManager alloc] initDefault];

View File

@ -64,7 +64,7 @@ public class OWS106EnsureProfileComplete: OWSDatabaseMigration {
self.completionHandler(true)
}.catch { error in
let nserror = error as NSError
if nserror.domain == TSNetworkManagerDomain {
if nserror.domain == TSNetworkManagerErrorDomain {
// Don't retry if we had an unrecoverable error.
// In particular, 401 (invalid auth) is unrecoverable.
let isUnrecoverableError = nserror.code == 401

View File

@ -1054,7 +1054,7 @@ typedef void (^ProfileManagerFailureBlock)(NSError *error);
OWSLogVerbose(@"downloading profile avatar: %@", userProfile.uniqueId);
NSString *tempDirectory = NSTemporaryDirectory();
NSString *tempDirectory = OWSTemporaryDirectory();
NSString *tempFilePath = [tempDirectory stringByAppendingPathComponent:fileName];
void (^completionHandler)(NSURLResponse *_Nonnull, NSURL *_Nullable, NSError *_Nullable) = ^(

View File

@ -145,15 +145,34 @@ public class ConversationStyle: NSObject {
return Theme.isDarkThemeEnabled ? UIColor.ows_gray75 : UIColor.ows_messageBubbleLightGray
}
@objc
public let bubbleColorOutgoingFailed = UIColor.ows_darkSkyBlue
@objc
public let bubbleColorOutgoingSending = UIColor.ows_darkSkyBlue
@objc
public let bubbleColorOutgoingSent = UIColor.ows_darkSkyBlue
@objc
public let dateBreakTextColor = UIColor.ows_gray60
@objc
public func bubbleColor(message: TSMessage) -> UIColor {
if message is TSIncomingMessage {
return bubbleColor(isIncoming: true)
return ConversationStyle.defaultBubbleColorIncoming
} else if let outgoingMessage = message as? TSOutgoingMessage {
switch outgoingMessage.messageState {
case .failed:
return bubbleColorOutgoingFailed
case .sending:
return bubbleColorOutgoingSending
default:
return bubbleColorOutgoingSent
}
} else {
return bubbleColor(isIncoming: false)
owsFailDebug("Unexpected message type: \(message)")
return bubbleColorOutgoingSent
}
}
@ -162,7 +181,7 @@ public class ConversationStyle: NSObject {
if isIncoming {
return ConversationStyle.defaultBubbleColorIncoming
} else {
return conversationColor.primaryColor
return self.bubbleColorOutgoingSent
}
}
@ -197,37 +216,38 @@ public class ConversationStyle: NSObject {
}
}
// Note that the exception for outgoing text only applies
// to secondary text within bubbles.
@objc
public func bubbleSecondaryTextColor(isIncoming: Bool) -> UIColor {
if !isIncoming {
// All Outgoing
return UIColor.ows_white.withAlphaComponent(0.8)
} else if Theme.isDarkThemeEnabled {
// Incoming, dark.
return UIColor.ows_gray25
} else {
// Incoming, light.
return UIColor.ows_gray60
}
return bubbleTextColor(isIncoming: isIncoming).withAlphaComponent(0.7)
}
@objc
public func quotedReplyBubbleColor(isIncoming: Bool) -> UIColor {
if Theme.isDarkThemeEnabled {
return conversationColor.shadeColor
if isIncoming {
return UIColor(rgbHex: 0x1976D2).withAlphaComponent(0.75)
} else {
return UIColor.ows_black.withAlphaComponent(0.4)
}
} else if isIncoming {
return bubbleColorOutgoingSent.withAlphaComponent(0.25)
} else {
return conversationColor.tintColor
return ConversationStyle.defaultBubbleColorIncoming.withAlphaComponent(0.75)
}
}
@objc
public func quotedReplyStripeColor(isIncoming: Bool) -> UIColor {
if isIncoming {
return conversationColor.primaryColor
if Theme.isDarkThemeEnabled {
if isIncoming {
return UIColor(rgbHex: 0x1976D2)
} else {
return UIColor.ows_black
}
} else if isIncoming {
return bubbleColorOutgoingSent
} else {
return Theme.backgroundColor
return UIColor.white
}
}

View File

@ -29,7 +29,7 @@ typedef void (^OWSAvatarDrawBlock)(CGContextRef context);
OWSAvatarBuilder *avatarBuilder;
if ([thread isKindOfClass:[TSContactThread class]]) {
TSContactThread *contactThread = (TSContactThread *)thread;
NSString *colorName = thread.conversationColorName;
ConversationColorName colorName = thread.conversationColorName;
avatarBuilder = [[OWSContactAvatarBuilder alloc] initWithSignalId:contactThread.contactIdentifier
colorName:colorName
diameter:diameter];

View File

@ -3,6 +3,7 @@
//
#import "OWSAvatarBuilder.h"
#import <SignalServiceKit/TSThread.h>
NS_ASSUME_NONNULL_BEGIN
@ -13,7 +14,9 @@ NS_ASSUME_NONNULL_BEGIN
/**
* Build an avatar for a Signal recipient
*/
- (instancetype)initWithSignalId:(NSString *)signalId colorName:(NSString *)colorName diameter:(NSUInteger)diameter;
- (instancetype)initWithSignalId:(NSString *)signalId
colorName:(ConversationColorName)colorName
diameter:(NSUInteger)diameter;
/**
* Build an avatar for a non-Signal recipient

View File

@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) NSString *signalId;
@property (nonatomic, readonly) NSString *contactName;
@property (nonatomic, readonly) NSString *colorName;
@property (nonatomic, readonly) ConversationColorName colorName;
@property (nonatomic, readonly) NSUInteger diameter;
@end
@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithContactId:(NSString *)contactId
name:(NSString *)name
colorName:(NSString *)colorName
colorName:(ConversationColorName)colorName
diameter:(NSUInteger)diameter
{
self = [super init];
@ -48,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN
}
- (instancetype)initWithSignalId:(NSString *)signalId
colorName:(NSString *)colorName
colorName:(ConversationColorName)colorName
diameter:(NSUInteger)diameter
{
// Name for avatar initials.
@ -66,7 +66,7 @@ NS_ASSUME_NONNULL_BEGIN
colorSeed:(NSString *)colorSeed
diameter:(NSUInteger)diameter
{
NSString *colorName = [TSThread stableConversationColorNameForString:colorSeed];
ConversationColorName colorName = [TSThread stableColorNameForNewConversationWithString:colorSeed];
return [self initWithContactId:colorSeed name:nonSignalName colorName:(NSString *)colorName diameter:diameter];
}
@ -76,9 +76,7 @@ NS_ASSUME_NONNULL_BEGIN
OWSAssertDebug(localNumber.length > 0);
OWSAssertDebug(diameter > 0);
NSString *colorName = [OWSConversationColor defaultConversationColorName];
return [self initWithSignalId:localNumber colorName:colorName diameter:diameter];
return [self initWithSignalId:localNumber colorName:kConversationColorName_Default diameter:diameter];
}
#pragma mark - Dependencies

View File

@ -67,8 +67,12 @@ NS_ASSUME_NONNULL_BEGIN
return cachedAvatar;
}
#ifdef SHOW_COLOR_PICKER
UIColor *backgroundColor =
[OWSConversationColor conversationColorOrDefaultForColorName:conversationColorName].themeColor;
#else
UIColor *backgroundColor = UIColor.ows_darkSkyBlueColor;
#endif
UIImage *_Nullable image =
[OWSGroupAvatarBuilder groupAvatarImageWithBackgroundColor:backgroundColor diameter:diameter];
if (!image) {

View File

@ -371,7 +371,7 @@ NSString *const TSAccountManager_ManualMessageFetchKey = @"TSAccountManager_Manu
if (!IsNSErrorNetworkFailure(error)) {
OWSProdError([OWSAnalyticsEvents accountsErrorVerifyAccountRequestFailed]);
}
OWSAssertDebug([error.domain isEqualToString:TSNetworkManagerDomain]);
OWSAssertDebug([error.domain isEqualToString:TSNetworkManagerErrorDomain]);
OWSLogWarn(@"Error verifying code: %@", error.debugDescription);

View File

@ -4,6 +4,11 @@
NS_ASSUME_NONNULL_BEGIN
extern NSErrorDomain const ContactDiscoveryServiceErrorDomain;
typedef NS_ERROR_ENUM(ContactDiscoveryServiceErrorDomain, ContactDiscoveryServiceError){
ContactDiscoveryServiceErrorAttestationFailed = 100,
};
@class ECKeyPair;
@class OWSAES256Key;

View File

@ -5,6 +5,7 @@
#import "ContactDiscoveryService.h"
#import "CDSQuote.h"
#import "CDSSigningCertificate.h"
#import "NSError+MessageSending.h"
#import "OWSError.h"
#import "OWSRequestFactory.h"
#import "SSKEnvironment.h"
@ -17,6 +18,8 @@
NS_ASSUME_NONNULL_BEGIN
NSErrorDomain const ContactDiscoveryServiceErrorDomain = @"SignalServiceKit.ContactDiscoveryService";
@interface RemoteAttestationAuth ()
@property (nonatomic) NSString *username;
@ -354,7 +357,10 @@ NS_ASSUME_NONNULL_BEGIN
auth:auth];
if (!attestation) {
NSError *error = OWSErrorMakeUnableToProcessServerResponseError();
NSError *error = [NSError errorWithDomain:ContactDiscoveryServiceErrorDomain
code:ContactDiscoveryServiceErrorAttestationFailed
userInfo:nil];
error.isRetryable = NO;
failureHandler(error);
return;
}
@ -363,8 +369,6 @@ NS_ASSUME_NONNULL_BEGIN
});
}
failure:^(NSURLSessionDataTask *task, NSError *error) {
NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
OWSLogVerbose(@"remote attestation failure: %lu", (unsigned long)response.statusCode);
failureHandler(error);
}];
}

View File

@ -139,7 +139,6 @@ class LegacyContactDiscoveryBatchOperation: OWSOperation {
enum ContactDiscoveryError: Error {
case parseError(description: String)
case assertionError(description: String)
case attestationError(underlyingError: Error)
case clientError(underlyingError: Error)
case serverError(underlyingError: Error)
}
@ -234,13 +233,7 @@ class CDSBatchOperation: OWSOperation {
contactDiscoveryService.performRemoteAttestation(success: { (remoteAttestation: RemoteAttestation) in
self.makeContactDiscoveryRequest(remoteAttestation: remoteAttestation)
},
failure: self.attestationFailure)
}
private func attestationFailure(error: Error) {
let attestationError: NSError = ContactDiscoveryError.attestationError(underlyingError: error) as NSError
attestationError.isRetryable = false
self.reportError(attestationError)
failure: self.reportError)
}
private func makeContactDiscoveryRequest(remoteAttestation: RemoteAttestation) {
@ -456,10 +449,13 @@ class CDSFeedbackOperation: OWSOperation {
if let error = cdsOperation.failingError {
switch error {
case ContactDiscoveryError.serverError, ContactDiscoveryError.clientError:
// Server already has this information, no need to report.
case TSNetworkManagerError.failedConnection:
// Don't submit feedback for connectivity errors
self.reportSuccess()
case ContactDiscoveryError.attestationError:
case ContactDiscoveryError.serverError, ContactDiscoveryError.clientError:
// Server already has this information, no need submit feedback
self.reportSuccess()
case ContactDiscoveryServiceError.attestationFailed:
self.makeRequest(result: .attestationError)
default:
self.makeRequest(result: .unexpectedError)

View File

@ -10,10 +10,25 @@ NS_ASSUME_NONNULL_BEGIN
@class TSInteraction;
@class TSInvalidIdentityKeyReceivingErrorMessage;
typedef NSString *ConversationColorName NS_STRING_ENUM;
extern ConversationColorName const ConversationColorNameCrimson;
extern ConversationColorName const ConversationColorNameVermilion;
extern ConversationColorName const ConversationColorNameBurlap;
extern ConversationColorName const ConversationColorNameForest;
extern ConversationColorName const ConversationColorNameWintergreen;
extern ConversationColorName const ConversationColorNameTeal;
extern ConversationColorName const ConversationColorNameBlue;
extern ConversationColorName const ConversationColorNameIndigo;
extern ConversationColorName const ConversationColorNameViolet;
extern ConversationColorName const ConversationColorNamePlum;
extern ConversationColorName const ConversationColorNameTaupe;
extern ConversationColorName const ConversationColorNameSteel;
extern ConversationColorName const kConversationColorName_Default;
/**
* TSThread is the superclass of TSContactThread and TSGroupThread
*/
@interface TSThread : TSYapDatabaseObject
// YES IFF this thread has ever had a message.
@ -33,10 +48,12 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (NSString *)name;
@property (nonatomic, readonly) NSString *conversationColorName;
@property (nonatomic, readonly) ConversationColorName conversationColorName;
- (void)updateConversationColorName:(NSString *)colorName transaction:(YapDatabaseReadWriteTransaction *)transaction;
+ (NSString *)stableConversationColorNameForString:(NSString *)colorSeed;
- (void)updateConversationColorName:(ConversationColorName)colorName
transaction:(YapDatabaseReadWriteTransaction *)transaction;
+ (ConversationColorName)stableColorNameForNewConversationWithString:(NSString *)colorSeed;
@property (class, nonatomic, readonly) NSArray<ConversationColorName> *conversationColorNames;
/**
* @returns

View File

@ -19,6 +19,21 @@
NS_ASSUME_NONNULL_BEGIN
ConversationColorName const ConversationColorNameCrimson = @"red";
ConversationColorName const ConversationColorNameVermilion = @"orange";
ConversationColorName const ConversationColorNameBurlap = @"brown";
ConversationColorName const ConversationColorNameForest = @"green";
ConversationColorName const ConversationColorNameWintergreen = @"light_green";
ConversationColorName const ConversationColorNameTeal = @"teal";
ConversationColorName const ConversationColorNameBlue = @"blue";
ConversationColorName const ConversationColorNameIndigo = @"indigo";
ConversationColorName const ConversationColorNameViolet = @"purple";
ConversationColorName const ConversationColorNamePlum = @"pink";
ConversationColorName const ConversationColorNameTaupe = @"blue_grey";
ConversationColorName const ConversationColorNameSteel = @"grey";
ConversationColorName const kConversationColorName_Default = ConversationColorNameSteel;
@interface TSThread ()
@property (nonatomic) NSDate *creationDate;
@ -52,9 +67,9 @@ NS_ASSUME_NONNULL_BEGIN
NSString *_Nullable contactId = self.contactIdentifier;
if (contactId.length > 0) {
// To be consistent with colors synced to desktop
_conversationColorName = [self.class stableConversationColorNameForString:contactId];
_conversationColorName = [self.class stableColorNameForNewConversationWithString:contactId];
} else {
_conversationColorName = [self.class stableConversationColorNameForString:self.uniqueId];
_conversationColorName = [self.class stableColorNameForNewConversationWithString:self.uniqueId];
}
}
@ -69,15 +84,35 @@ NS_ASSUME_NONNULL_BEGIN
}
if (_conversationColorName.length == 0) {
NSString *_Nullable contactId = self.contactIdentifier;
if (contactId.length > 0) {
// To be consistent with colors synced to desktop
_conversationColorName = [self.class stableConversationColorNameForString:contactId];
} else {
_conversationColorName = [self.class stableConversationColorNameForString:self.uniqueId];
NSString *_Nullable colorSeed = self.contactIdentifier;
if (colorSeed.length > 0) {
// group threads
colorSeed = self.uniqueId;
}
// To be consistent with colors synced to desktop
ConversationColorName colorName = [self.class stableColorNameForLegacyConversationWithString:colorSeed];
OWSAssertDebug(colorName);
_conversationColorName = colorName;
} else if (![[[self class] conversationColorNames] containsObject:_conversationColorName]) {
// If we'd persisted a non-mapped color name
ConversationColorName _Nullable mappedColorName = self.class.legacyConversationColorMap[_conversationColorName];
if (!mappedColorName) {
// We previously used the wrong values for the new colors, it's possible we persited them.
// map them to the proper value
mappedColorName = self.class.legacyFixupConversationColorMap[_conversationColorName];
}
if (!mappedColorName) {
OWSFailDebug(@"failure: unexpected unmappable conversationColorName: %@", _conversationColorName);
mappedColorName = kConversationColorName_Default;
}
_conversationColorName = mappedColorName;
}
return self;
}
@ -441,14 +476,37 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Conversation Color
+ (NSString *)randomConversationColorName
- (ConversationColorName)conversationColorName
{
NSUInteger count = self.conversationColorNames.count;
NSUInteger index = arc4random_uniform((uint32_t)count);
return [self.conversationColorNames objectAtIndex:index];
OWSAssertDebug([self.class.conversationColorNames containsObject:_conversationColorName]);
return _conversationColorName;
}
+ (NSString *)stableConversationColorNameForString:(NSString *)colorSeed
+ (NSArray<ConversationColorName> *)colorNamesForNewConversation
{
// all conversation colors except "steel"
return @[
ConversationColorNameCrimson,
ConversationColorNameVermilion,
ConversationColorNameBurlap,
ConversationColorNameForest,
ConversationColorNameWintergreen,
ConversationColorNameTeal,
ConversationColorNameBlue,
ConversationColorNameIndigo,
ConversationColorNameViolet,
ConversationColorNamePlum,
ConversationColorNameTaupe,
];
}
+ (NSArray<ConversationColorName> *)conversationColorNames
{
return [self.colorNamesForNewConversation arrayByAddingObject:kConversationColorName_Default];
}
+ (ConversationColorName)stableConversationColorNameForString:(NSString *)colorSeed
colorNames:(NSArray<ConversationColorName> *)colorNames
{
NSData *contactData = [colorSeed dataUsingEncoding:NSUTF8StringEncoding];
@ -461,11 +519,32 @@ NS_ASSUME_NONNULL_BEGIN
OWSFailDebug(@"could not compute hash for color seed.");
}
NSUInteger index = (hash % [self.conversationColorNames count]);
return [self.conversationColorNames objectAtIndex:index];
NSUInteger index = (hash % colorNames.count);
return [colorNames objectAtIndex:index];
}
+ (NSArray<NSString *> *)conversationColorNames
+ (ConversationColorName)stableColorNameForNewConversationWithString:(NSString *)colorSeed
{
return [self stableConversationColorNameForString:colorSeed colorNames:self.colorNamesForNewConversation];
}
// After introducing new conversation colors, we want to try to maintain as close as possible to the old color for an
// existing thread.
+ (ConversationColorName)stableColorNameForLegacyConversationWithString:(NSString *)colorSeed
{
NSString *legacyColorName =
[self stableConversationColorNameForString:colorSeed colorNames:self.legacyConversationColorNames];
ConversationColorName _Nullable mappedColorName = self.class.legacyConversationColorMap[legacyColorName];
if (!mappedColorName) {
OWSFailDebug(@"failure: unexpected unmappable legacyColorName: %@", legacyColorName);
return kConversationColorName_Default;
}
return mappedColorName;
}
+ (NSArray<NSString *> *)legacyConversationColorNames
{
return @[
@"red",
@ -481,7 +560,64 @@ NS_ASSUME_NONNULL_BEGIN
];
}
- (void)updateConversationColorName:(NSString *)colorName transaction:(YapDatabaseReadWriteTransaction *)transaction
+ (NSDictionary<NSString *, ConversationColorName> *)legacyConversationColorMap
{
static NSDictionary<NSString *, ConversationColorName> *colorMap;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
colorMap = @{
@"red" : ConversationColorNameCrimson,
@"deep_orange" : ConversationColorNameCrimson,
@"orange" : ConversationColorNameVermilion,
@"amber" : ConversationColorNameVermilion,
@"brown" : ConversationColorNameBurlap,
@"yellow" : ConversationColorNameBurlap,
@"pink" : ConversationColorNamePlum,
@"purple" : ConversationColorNameViolet,
@"deep_purple" : ConversationColorNameViolet,
@"indigo" : ConversationColorNameIndigo,
@"blue" : ConversationColorNameBlue,
@"light_blue" : ConversationColorNameBlue,
@"cyan" : ConversationColorNameTeal,
@"teal" : ConversationColorNameTeal,
@"green" : ConversationColorNameForest,
@"light_green" : ConversationColorNameWintergreen,
@"lime" : ConversationColorNameWintergreen,
@"blue_grey" : ConversationColorNameTaupe,
@"grey" : ConversationColorNameSteel,
};
});
return colorMap;
}
// we temporarily used the wrong value for the new color names.
+ (NSDictionary<NSString *, ConversationColorName> *)legacyFixupConversationColorMap
{
static NSDictionary<NSString *, ConversationColorName> *colorMap;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
colorMap = @{
@"crimson" : ConversationColorNameCrimson,
@"vermilion" : ConversationColorNameVermilion,
@"burlap" : ConversationColorNameBurlap,
@"forest" : ConversationColorNameForest,
@"wintergreen" : ConversationColorNameWintergreen,
@"teal" : ConversationColorNameTeal,
@"blue" : ConversationColorNameBlue,
@"indigo" : ConversationColorNameIndigo,
@"violet" : ConversationColorNameViolet,
@"plum" : ConversationColorNamePlum,
@"taupe" : ConversationColorNameTaupe,
@"steel" : ConversationColorNameSteel,
};
});
return colorMap;
}
- (void)updateConversationColorName:(ConversationColorName)colorName
transaction:(YapDatabaseReadWriteTransaction *)transaction
{
[self applyChangeToSelfAndLatestCopy:transaction
changeBlock:^(TSThread *thread) {

View File

@ -101,7 +101,7 @@ NS_ASSUME_NONNULL_BEGIN
if (contactThread) {
return contactThread.conversationColorName;
}
return [self stableConversationColorNameForString:recipientId];
return [self stableColorNameForNewConversationWithString:recipientId];
}
@end

View File

@ -44,7 +44,7 @@ extern NSString *const TSGroupThread_NotificationKey_UniqueId;
- (void)fireAvatarChangedNotification;
+ (NSString *)defaultConversationColorNameForGroupId:(NSData *)groupId;
+ (ConversationColorName)defaultConversationColorNameForGroupId:(NSData *)groupId;
@end

View File

@ -242,11 +242,11 @@ NSString *const TSGroupThread_NotificationKey_UniqueId = @"TSGroupThread_Notific
userInfo:userInfo];
}
+ (NSString *)defaultConversationColorNameForGroupId:(NSData *)groupId
+ (ConversationColorName)defaultConversationColorNameForGroupId:(NSData *)groupId
{
OWSAssertDebug(groupId.length > 0);
return [self.class stableConversationColorNameForString:[self threadIdFromGroupId:groupId]];
return [self.class stableColorNameForNewConversationWithString:[self threadIdFromGroupId:groupId]];
}
@end

View File

@ -312,37 +312,21 @@ static const CGFloat kAttachmentDownloadProgressTheta = 0.001f;
const long kMaxDownloadSize = 150 * 1024 * 1024;
__block BOOL hasCheckedContentLength = NO;
NSString *tempSubdirPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSUUID UUID].UUIDString];
NSString *tempFilePath1 = [tempSubdirPath stringByAppendingPathComponent:[NSUUID UUID].UUIDString];
NSString *tempFilePath2 = [tempSubdirPath stringByAppendingPathComponent:[NSUUID UUID].UUIDString];
NSURL *tempFileURL1 = [NSURL fileURLWithPath:tempFilePath1];
NSString *tempFilePath =
[OWSTemporaryDirectoryAccessibleAfterFirstAuth() stringByAppendingPathComponent:[NSUUID UUID].UUIDString];
NSURL *tempFileURL = [NSURL fileURLWithPath:tempFilePath];
__block NSURLSessionDownloadTask *task;
void (^failureHandler)(NSError *) = ^(NSError *error) {
OWSLogError(@"Failed to download attachment with error: %@", error.description);
if (![OWSFileSystem deleteFileIfExists:tempFilePath1]) {
if (![OWSFileSystem deleteFileIfExists:tempFilePath]) {
OWSLogError(@"Could not delete temporary file #1.");
}
if (![OWSFileSystem deleteFileIfExists:tempFilePath2]) {
OWSLogError(@"Could not delete temporary file #2.");
}
failureHandlerParam(task, error);
};
// downloadTaskWithRequest's destination callback needs to
// return a path to a non-existent file path, and we can't apply
// file protection to a non-existent file path.
// By creating the temporary file inside a temporary subdirectory,
// we can apply file protection to that subdirectory.
if (![OWSFileSystem ensureDirectoryExists:tempSubdirPath]) {
OWSLogError(@"Could not create temporary subdirectory for attachment download.");
NSError *error = OWSErrorWithCodeDescription(
OWSErrorCodeInvalidMessage, NSLocalizedString(@"ERROR_MESSAGE_INVALID_MESSAGE", @""));
return failureHandler(error);
}
NSString *method = @"GET";
NSError *serializationError = nil;
NSMutableURLRequest *request = [manager.requestSerializer requestWithMethod:method
@ -428,29 +412,21 @@ static const CGFloat kAttachmentDownloadProgressTheta = 0.001f;
hasCheckedContentLength = YES;
}
destination:^(NSURL *targetPath, NSURLResponse *response) {
return tempFileURL1;
return tempFileURL;
}
completionHandler:^(NSURLResponse *response, NSURL *_Nullable filePath, NSError *_Nullable error) {
if (error) {
failureHandler(error);
return;
}
if (![tempFileURL1 isEqual:filePath]) {
if (![tempFileURL isEqual:filePath]) {
OWSLogError(@"Unexpected temp file path.");
NSError *error = OWSErrorWithCodeDescription(
OWSErrorCodeInvalidMessage, NSLocalizedString(@"ERROR_MESSAGE_INVALID_MESSAGE", @""));
return failureHandler(error);
}
// Move the temporary file to a second temporary location
// to ensure that it isn't deleted before we're done with it.
NSError *moveError;
if (![NSFileManager.defaultManager moveItemAtPath:tempFilePath1 toPath:tempFilePath2 error:&moveError]) {
OWSLogError(@"Could not move temporary file.");
return failureHandler(moveError);
}
NSNumber *_Nullable fileSize = [OWSFileSystem fileSizeOfPath:tempFilePath2];
NSNumber *_Nullable fileSize = [OWSFileSystem fileSizeOfPath:tempFilePath];
if (!fileSize) {
OWSLogError(@"Could not determine attachment file size.");
NSError *error = OWSErrorWithCodeDescription(
@ -463,7 +439,7 @@ static const CGFloat kAttachmentDownloadProgressTheta = 0.001f;
OWSErrorCodeInvalidMessage, NSLocalizedString(@"ERROR_MESSAGE_INVALID_MESSAGE", @""));
return failureHandler(error);
}
successHandler(tempFilePath2);
successHandler(tempFilePath);
}];
[task resume];
}

View File

@ -132,7 +132,7 @@ NS_ASSUME_NONNULL_BEGIN
conversationColorName = contactThread.conversationColorName;
disappearingMessagesConfiguration = [contactThread disappearingMessagesConfigurationWithTransaction:transaction];
} else {
conversationColorName = [TSThread stableConversationColorNameForString:signalAccount.recipientId];
conversationColorName = [TSThread stableColorNameForNewConversationWithString:signalAccount.recipientId];
}
[contactsOutputStream writeSignalAccount:signalAccount

View File

@ -6,7 +6,15 @@
NS_ASSUME_NONNULL_BEGIN
extern NSString *const TSNetworkManagerDomain;
extern NSErrorDomain const TSNetworkManagerErrorDomain;
typedef NS_ERROR_ENUM(TSNetworkManagerErrorDomain, TSNetworkManagerError){
// It's a shame to use 0 as an enum value for anything other than something like default or unknown, because it's
// indistinguishable from "not set" in Objc.
// However this value was existing behavior for connectivity errors, and since we might be using this in other
// places I didn't want to change it out of hand
TSNetworkManagerErrorFailedConnection = 0,
// Other TSNetworkManagerError's use HTTP status codes (e.g. 404, etc)
};
BOOL IsNSErrorNetworkFailure(NSError *_Nullable error);

View File

@ -6,6 +6,7 @@
#import "AppContext.h"
#import "NSError+messageSending.h"
#import "NSURLSessionDataTask+StatusCode.h"
#import "OWSError.h"
#import "OWSSignalService.h"
#import "SSKEnvironment.h"
#import "TSAccountManager.h"
@ -14,11 +15,12 @@
#import <SignalCoreKit/NSData+OWS.h>
#import <SignalServiceKit/SignalServiceKit-Swift.h>
NSString *const TSNetworkManagerDomain = @"org.whispersystems.signal.networkManager";
NSErrorDomain const TSNetworkManagerErrorDomain = @"SignalServiceKit.TSNetworkManager";
BOOL IsNSErrorNetworkFailure(NSError *_Nullable error)
{
return ([error.domain isEqualToString:TSNetworkManagerDomain] && error.code == 0);
return ([error.domain isEqualToString:TSNetworkManagerErrorDomain]
&& error.code == TSNetworkManagerErrorFailedConnection);
}
@interface TSNetworkManager ()
@ -205,16 +207,17 @@ typedef void (^failureBlock)(NSURLSessionDataTask *task, NSError *error);
switch (statusCode) {
case 0: {
error.isRetryable = YES;
OWSLogWarn(@"The network request failed because of a connectivity error: %@", request);
failureBlock(task,
[self errorWithHTTPCode:statusCode
NSError *connectivityError =
[self errorWithHTTPCode:TSNetworkManagerErrorFailedConnection
description:NSLocalizedString(@"ERROR_DESCRIPTION_NO_INTERNET",
@"Generic error used whenever Signal can't contact the server")
failureReason:networkError.localizedFailureReason
recoverySuggestion:NSLocalizedString(@"NETWORK_ERROR_RECOVERY", nil)
fallbackError:networkError]);
fallbackError:networkError];
connectivityError.isRetryable = YES;
OWSLogWarn(@"The network request failed because of a connectivity error: %@", request);
failureBlock(task, connectivityError);
break;
}
case 400: {
@ -314,7 +317,10 @@ typedef void (^failureBlock)(NSURLSessionDataTask *task, NSError *error);
description:(NSString *)description
failureReason:(NSString *)failureReason
recoverySuggestion:(NSString *)recoverySuggestion
fallbackError:(NSError *_Nonnull)fallbackError {
fallbackError:(NSError *)fallbackError
{
OWSAssertDebug(fallbackError);
if (!description) {
description = fallbackError.localizedDescription;
}
@ -343,7 +349,9 @@ typedef void (^failureBlock)(NSURLSessionDataTask *task, NSError *error);
[dict setObject:failureData forKey:AFNetworkingOperationFailingURLResponseDataErrorKey];
}
return [NSError errorWithDomain:TSNetworkManagerDomain code:code userInfo:dict];
dict[NSUnderlyingErrorKey] = fallbackError;
return [NSError errorWithDomain:TSNetworkManagerErrorDomain code:code userInfo:dict];
}
@end

Some files were not shown because too many files have changed in this diff Show More