diff --git a/NotificationServiceExtension/NotificationService.m b/NotificationServiceExtension/NotificationService.m index c926a193..6e153fc5 100644 --- a/NotificationServiceExtension/NotificationService.m +++ b/NotificationServiceExtension/NotificationService.m @@ -28,7 +28,7 @@ self.bestAttemptContent = [request.content mutableCopy]; self.bestAttemptContent.title = @""; - self.bestAttemptContent.body = @"You received a new notification"; + self.bestAttemptContent.body = NSLocalizedString(@"You received a new notification", nil); // Configure database NSString *path = [[[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.nextcloud.Talk"] URLByAppendingPathComponent:kTalkDatabaseFolder] path]; @@ -110,7 +110,7 @@ // Called just before the extension will be terminated by the system. // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used. self.bestAttemptContent.title = @""; - self.bestAttemptContent.body = @"You received a new notification"; + self.bestAttemptContent.body = NSLocalizedString(@"You received a new notification", nil); self.contentHandler(self.bestAttemptContent); } diff --git a/ShareExtension/ShareConfirmationViewController.m b/ShareExtension/ShareConfirmationViewController.m index a1ef43ff..e35f0372 100644 --- a/ShareExtension/ShareConfirmationViewController.m +++ b/ShareExtension/ShareConfirmationViewController.m @@ -63,13 +63,13 @@ if (_isModal) { UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed)]; - cancelButton.accessibilityHint = @"Double tap to dismiss sharing options"; + cancelButton.accessibilityHint = NSLocalizedString(@"Double tap to dismiss sharing options", nil); self.navigationController.navigationBar.topItem.leftBarButtonItem = cancelButton; } - _sendButton = [[UIBarButtonItem alloc] initWithTitle:@"Send" style:UIBarButtonItemStyleDone + _sendButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Send", nil) style:UIBarButtonItemStyleDone target:self action:@selector(sendButtonPressed)]; - _sendButton.accessibilityHint = @"Double tap to share with selected conversations"; + _sendButton.accessibilityHint = NSLocalizedString(@"Double tap to share with selected conversations", nil); self.navigationItem.rightBarButtonItem = _sendButton; _sharingIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; @@ -85,7 +85,7 @@ NSForegroundColorAttributeName:[UIColor darkTextColor]}; NSDictionary *subAttribute = @{NSFontAttributeName:[UIFont boldSystemFontOfSize:15], NSForegroundColorAttributeName:[UIColor lightGrayColor]}; - NSMutableAttributedString *toString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"To: %@", _room.displayName] attributes:attributes]; + NSMutableAttributedString *toString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:NSLocalizedString(@"To: %@", nil), _room.displayName] attributes:attributes]; [toString addAttributes:subAttribute range:NSMakeRange(0, 3)]; self.toTextView.attributedText = toString; @@ -191,9 +191,9 @@ _hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; _hud.mode = MBProgressHUDModeAnnularDeterminate; - _hud.label.text = @"Uploading file"; + _hud.label.text = NSLocalizedString(@"Uploading file", nil); if (_type == ShareConfirmationTypeImage || _type == ShareConfirmationTypeImageFile) { - _hud.label.text = @"Uploading image"; + _hud.label.text = NSLocalizedString(@"Uploading image", nil); } [self checkForUniqueNameAndUploadFileWithName:fileName withOriginalName:YES]; diff --git a/ShareExtension/ShareViewController.m b/ShareExtension/ShareViewController.m index 9075834e..cf3a8a1e 100644 --- a/ShareExtension/ShareViewController.m +++ b/ShareExtension/ShareViewController.m @@ -80,7 +80,7 @@ [_searchController.searchBar sizeToFit]; // Configure navigation bar - self.navigationItem.title = @"Share with"; + self.navigationItem.title = NSLocalizedString(@"Share with", nil); [self.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; @@ -89,7 +89,7 @@ UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed)]; - cancelButton.accessibilityHint = @"Double tap to dismiss sharing options"; + cancelButton.accessibilityHint = NSLocalizedString(@"Double tap to dismiss sharing options", nil); self.navigationController.navigationBar.topItem.leftBarButtonItem = cancelButton; if (@available(iOS 13.0, *)) { @@ -134,14 +134,14 @@ // Rooms placeholder view _roomsBackgroundView = [[PlaceholderView alloc] init]; [_roomsBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"conversations-placeholder"]]; - [_roomsBackgroundView.placeholderText setText:@"You are not part of any conversation."]; + [_roomsBackgroundView.placeholderText setText:NSLocalizedString(@"You are not part of any conversation", nil)]; [_roomsBackgroundView.placeholderView setHidden:(_rooms.count > 0)]; [_roomsBackgroundView.loadingView setHidden:YES]; self.tableView.backgroundView = _roomsBackgroundView; _roomSearchBackgroundView = [[PlaceholderView alloc] init]; [_roomSearchBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"conversations-placeholder"]]; - [_roomSearchBackgroundView.placeholderText setText:@"No results found."]; + [_roomSearchBackgroundView.placeholderText setText:NSLocalizedString(@"No results found", nil)]; [_roomSearchBackgroundView.placeholderView setHidden:YES]; [_roomSearchBackgroundView.loadingView setHidden:YES]; _resultTableViewController.tableView.backgroundView = _roomSearchBackgroundView; diff --git a/ThirdParty/AppRTC/ARDSettingsModel.m b/ThirdParty/AppRTC/ARDSettingsModel.m index dde62759..70686e8f 100644 --- a/ThirdParty/AppRTC/ARDSettingsModel.m +++ b/ThirdParty/AppRTC/ARDSettingsModel.m @@ -43,15 +43,15 @@ static NSArray *videoCodecsStaticValues() { } - (NSString *)readableResolution:(NSString *)resolution { - NSString *readableResolution = @"Unknown"; + NSString *readableResolution = NSLocalizedString(@"Unknown", nil); if ([resolution isEqualToString:videoResolutionsStaticValues()[0]]) { - readableResolution = @"Low"; + readableResolution = NSLocalizedString(@"Low", nil); } else if ([resolution isEqualToString:videoResolutionsStaticValues()[1]]) { - readableResolution = @"Normal"; + readableResolution = NSLocalizedString(@"Normal", nil); } else if ([resolution isEqualToString:videoResolutionsStaticValues()[2]]) { - readableResolution = @"High"; + readableResolution = NSLocalizedString(@"High", nil); } else if ([resolution isEqualToString:videoResolutionsStaticValues()[3]]) { - readableResolution = @"HD"; + readableResolution = NSLocalizedString(@"HD", nil); } return readableResolution; } diff --git a/VideoCalls/AddParticipantsTableViewController.m b/VideoCalls/AddParticipantsTableViewController.m index 28f200e8..3cc51da6 100644 --- a/VideoCalls/AddParticipantsTableViewController.m +++ b/VideoCalls/AddParticipantsTableViewController.m @@ -101,7 +101,7 @@ // Contacts placeholder view _participantsBackgroundView = [[PlaceholderView alloc] init]; [_participantsBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"contacts-placeholder"]]; - [_participantsBackgroundView.placeholderText setText:@"No participants found."]; + [_participantsBackgroundView.placeholderText setText:NSLocalizedString(@"No participants found", nil)]; [_participantsBackgroundView.placeholderView setHidden:YES]; [_participantsBackgroundView.loadingView startAnimating]; self.tableView.backgroundView = _participantsBackgroundView; @@ -118,7 +118,7 @@ UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed)]; self.navigationController.navigationBar.topItem.leftBarButtonItem = cancelButton; - self.navigationItem.title = @"Add participants"; + self.navigationItem.title = NSLocalizedString(@"Add participants", nil); [self.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; @@ -189,12 +189,12 @@ [[NCAPIController sharedInstance] addParticipant:participant.userId ofType:participant.source toRoom:_room.token forAccount:[[NCDatabaseManager sharedInstance] activeAccount] withCompletionBlock:^(NSError *error) { if (error) { UIAlertController * alert = [UIAlertController - alertControllerWithTitle:@"Could not add participant" - message:[NSString stringWithFormat:@"An error occurred while adding %@ to the room", participant.name] + alertControllerWithTitle:NSLocalizedString(@"Could not add participant", nil) + message:[NSString stringWithFormat:NSLocalizedString(@"An error occurred while adding %@ to the room", nil), participant.name] preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* okButton = [UIAlertAction - actionWithTitle:@"OK" + actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; @@ -208,7 +208,7 @@ - (void)updateCounter { if (_selectedParticipants.count > 0) { - UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:[NSString stringWithFormat:@"Add (%lu)", (unsigned long)_selectedParticipants.count] + UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Add (%lu)", nil), (unsigned long)_selectedParticipants.count] style:UIBarButtonItemStylePlain target:self action:@selector(addButtonPressed)]; self.navigationController.navigationBar.topItem.rightBarButtonItem = addButton; } else { diff --git a/VideoCalls/CallParticipantViewCell.m b/VideoCalls/CallParticipantViewCell.m index c4ffad8c..cc345513 100644 --- a/VideoCalls/CallParticipantViewCell.m +++ b/VideoCalls/CallParticipantViewCell.m @@ -110,7 +110,7 @@ NSString *const kCallParticipantCellNibName = @"CallParticipantViewCell"; { _displayName = displayName; if (!displayName || [displayName isKindOfClass:[NSNull class]] || [displayName isEqualToString:@""]) { - _displayName = @"Guest"; + _displayName = NSLocalizedString(@"Guest", nil); } dispatch_async(dispatch_get_main_queue(), ^{ self.peerNameLabel.text = _displayName; @@ -162,7 +162,7 @@ NSString *const kCallParticipantCellNibName = @"CallParticipantViewCell"; { if (_connectionState == RTCIceConnectionStateDisconnected) { dispatch_async(dispatch_get_main_queue(), ^{ - self.peerNameLabel.text = [NSString stringWithFormat:@"Connecting to %@…", _displayName]; + self.peerNameLabel.text = [NSString stringWithFormat:NSLocalizedString(@"Connecting to %@…", nil), _displayName]; self.peerAvatarImageView.alpha = 0.3; }); } @@ -171,7 +171,7 @@ NSString *const kCallParticipantCellNibName = @"CallParticipantViewCell"; - (void)setFailedConnectionUI { dispatch_async(dispatch_get_main_queue(), ^{ - self.peerNameLabel.text = [NSString stringWithFormat:@"Failed to connect to %@", _displayName]; + self.peerNameLabel.text = [NSString stringWithFormat:NSLocalizedString(@"Failed to connect to %@", nil), _displayName]; self.peerAvatarImageView.alpha = 0.3; }); } diff --git a/VideoCalls/CallViewController.m b/VideoCalls/CallViewController.m index f993646a..ceb773ed 100644 --- a/VideoCalls/CallViewController.m +++ b/VideoCalls/CallViewController.m @@ -129,21 +129,21 @@ typedef NS_ENUM(NSInteger, CallState) { [self.chatButton.layer setCornerRadius:30.0f]; [self.closeScreensharingButton.layer setCornerRadius:16.0f]; - self.audioMuteButton.accessibilityLabel = @"Microphone"; - self.audioMuteButton.accessibilityValue = @"Microphone enabled"; - self.audioMuteButton.accessibilityHint = @"Doble tap to enable or disable the microphone"; - self.speakerButton.accessibilityLabel = @"Speaker"; - self.speakerButton.accessibilityValue = @"Speaker disabled"; - self.speakerButton.accessibilityHint = @"Doble tap to enable or disable the speaker"; - self.videoDisableButton.accessibilityLabel = @"Camera"; - self.videoDisableButton.accessibilityValue = @"Camera enabled"; - self.videoDisableButton.accessibilityHint = @"Doble tap to enable or disable the camera"; - self.hangUpButton.accessibilityLabel = @"Hang up"; - self.hangUpButton.accessibilityHint = @"Doble tap to hang up the call"; - self.videoCallButton.accessibilityLabel = @"Camera"; - self.videoCallButton.accessibilityHint = @"Doble tap to upgrade this voice call to a video call"; - self.chatButton.accessibilityLabel = @"Chat"; - self.chatButton.accessibilityHint = @"Doble tap to show call's chat"; + self.audioMuteButton.accessibilityLabel = NSLocalizedString(@"Microphone", nil); + self.audioMuteButton.accessibilityValue = NSLocalizedString(@"Microphone enabled", nil); + self.audioMuteButton.accessibilityHint = NSLocalizedString(@"Doble tap to enable or disable the microphone", nil); + self.speakerButton.accessibilityLabel = NSLocalizedString(@"Speaker", nil); + self.speakerButton.accessibilityValue = NSLocalizedString(@"Speaker disabled", nil); + self.speakerButton.accessibilityHint = NSLocalizedString(@"Doble tap to enable or disable the speaker", nil); + self.videoDisableButton.accessibilityLabel = NSLocalizedString(@"Camera", nil); + self.videoDisableButton.accessibilityValue = NSLocalizedString(@"Camera enabled", nil); + self.videoDisableButton.accessibilityHint = NSLocalizedString(@"Doble tap to enable or disable the camera", nil); + self.hangUpButton.accessibilityLabel = NSLocalizedString(@"Hang up", nil); + self.hangUpButton.accessibilityHint = NSLocalizedString(@"Doble tap to hang up the call", nil); + self.videoCallButton.accessibilityLabel = NSLocalizedString(@"Camera", nil); + self.videoCallButton.accessibilityHint = NSLocalizedString(@"Doble tap to upgrade this voice call to a video call", nil); + self.chatButton.accessibilityLabel = NSLocalizedString(@"Chat", nil); + self.chatButton.accessibilityHint = NSLocalizedString(@"Doble tap to show call's chat", nil); [self adjustButtonsConainer]; @@ -392,13 +392,13 @@ typedef NS_ENUM(NSInteger, CallState) { - (void)setWaitingScreenText { - NSString *waitingMessage = @"Waiting for others to join call…"; + NSString *waitingMessage = NSLocalizedString(@"Waiting for others to join call…", nil); if (_room.type == kNCRoomTypeOneToOne) { - waitingMessage = [NSString stringWithFormat:@"Waiting for %@ to join call…", _room.displayName]; + waitingMessage = [NSString stringWithFormat:NSLocalizedString(@"Waiting for %@ to join call…", nil), _room.displayName]; } if (_callState == CallStateReconnecting) { - waitingMessage = @"Connecting to the call…"; + waitingMessage = NSLocalizedString(@"Connecting to the call…", nil); } dispatch_async(dispatch_get_main_queue(), ^{ @@ -520,14 +520,14 @@ typedef NS_ENUM(NSInteger, CallState) { - (void)presentJoinCallError { - NSString *alertTitle = [NSString stringWithFormat:@"Could not join %@ call", _room.displayName]; + NSString *alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Could not join %@ call", nil), _room.displayName]; if (_room.type == kNCRoomTypeOneToOne) { - alertTitle = [NSString stringWithFormat:@"Could not join call with %@", _room.displayName]; + alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Could not join call with %@", nil), _room.displayName]; } UIAlertController * alert = [UIAlertController alertControllerWithTitle:alertTitle - message:@"An error occurred while joining the call" + message:NSLocalizedString(@"An error occurred while joining the call", nil) preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* okButton = [UIAlertAction actionWithTitle:@"OK" + UIAlertAction* okButton = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self hangup]; @@ -562,10 +562,10 @@ typedef NS_ENUM(NSInteger, CallState) { - (void)showForceMutedWarning { UIAlertController *confirmDialog = - [UIAlertController alertControllerWithTitle:@"You have been muted by a moderator" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"You have been muted by a moderator", nil) message:nil preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleCancel handler:nil]; [confirmDialog addAction:confirmAction]; dispatch_async(dispatch_get_main_queue(), ^{ [self presentViewController:confirmDialog animated:YES completion:nil]; @@ -577,8 +577,9 @@ typedef NS_ENUM(NSInteger, CallState) { [_callController enableAudio:NO]; dispatch_async(dispatch_get_main_queue(), ^{ [_audioMuteButton setImage:[UIImage imageNamed:@"audio-off"] forState:UIControlStateNormal]; - _audioMuteButton.accessibilityValue = @"Microphone disabled"; - [self.view makeToast:@"Microphone disabled" duration:1.5 position:CSToastPositionCenter]; + NSString *micDisabledString = NSLocalizedString(@"Microphone disabled", nil); + _audioMuteButton.accessibilityValue = micDisabledString; + [self.view makeToast:micDisabledString duration:1.5 position:CSToastPositionCenter]; }); } @@ -587,8 +588,9 @@ typedef NS_ENUM(NSInteger, CallState) { [_callController enableAudio:YES]; dispatch_async(dispatch_get_main_queue(), ^{ [_audioMuteButton setImage:[UIImage imageNamed:@"audio"] forState:UIControlStateNormal]; - _audioMuteButton.accessibilityValue = @"Microphone enabled"; - [self.view makeToast:@"Microphone enabled" duration:1.5 position:CSToastPositionCenter]; + NSString *micEnabledString = NSLocalizedString(@"Microphone enabled", nil); + _audioMuteButton.accessibilityValue = micEnabledString; + [self.view makeToast:micEnabledString duration:1.5 position:CSToastPositionCenter]; }); } @@ -611,9 +613,10 @@ typedef NS_ENUM(NSInteger, CallState) { [_captureController stopCapture]; [_localVideoView setHidden:YES]; [_videoDisableButton setImage:[UIImage imageNamed:@"video-off"] forState:UIControlStateNormal]; - _videoDisableButton.accessibilityValue = @"Camera disabled"; + NSString *cameraDisabledString = NSLocalizedString(@"Camera disabled", nil); + _videoDisableButton.accessibilityValue = cameraDisabledString; if (!_isAudioOnly) { - [self.view makeToast:@"Camera disabled" duration:1.5 position:CSToastPositionCenter]; + [self.view makeToast:cameraDisabledString duration:1.5 position:CSToastPositionCenter]; } } @@ -623,7 +626,7 @@ typedef NS_ENUM(NSInteger, CallState) { [_captureController startCapture]; [_localVideoView setHidden:NO]; [_videoDisableButton setImage:[UIImage imageNamed:@"video"] forState:UIControlStateNormal]; - _videoDisableButton.accessibilityValue = @"Camera enabled"; + _videoDisableButton.accessibilityValue = NSLocalizedString(@"Camera enabled", nil); } - (IBAction)switchCameraButtonPressed:(id)sender @@ -661,16 +664,18 @@ typedef NS_ENUM(NSInteger, CallState) { { [[NCAudioController sharedInstance] setAudioSessionToVoiceChatMode]; [_speakerButton setImage:[UIImage imageNamed:@"speaker-off"] forState:UIControlStateNormal]; - _speakerButton.accessibilityValue = @"Speaker disabled"; - [self.view makeToast:@"Speaker disabled" duration:1.5 position:CSToastPositionCenter]; + NSString *speakerDisabledString = NSLocalizedString(@"Speaker disabled", nil); + _speakerButton.accessibilityValue = speakerDisabledString; + [self.view makeToast:speakerDisabledString duration:1.5 position:CSToastPositionCenter]; } - (void)enableSpeaker { [[NCAudioController sharedInstance] setAudioSessionToVideoChatMode]; [_speakerButton setImage:[UIImage imageNamed:@"speaker"] forState:UIControlStateNormal]; - _speakerButton.accessibilityValue = @"Speaker enabled"; - [self.view makeToast:@"Speaker enabled" duration:1.5 position:CSToastPositionCenter]; + NSString *speakerEnabledString = NSLocalizedString(@"Speaker enabled", nil); + _speakerButton.accessibilityValue = speakerEnabledString; + [self.view makeToast:speakerEnabledString duration:1.5 position:CSToastPositionCenter]; } - (IBAction)hangupButtonPressed:(id)sender @@ -720,14 +725,14 @@ typedef NS_ENUM(NSInteger, CallState) { - (void)showUpgradeToVideoCallDialog { UIAlertController *confirmDialog = - [UIAlertController alertControllerWithTitle:@"Do you want to enable your video?" - message:@"If you enable your video, this call will be interrupted for a few seconds." + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Do you want to enable your video?", nil) + message:NSLocalizedString(@"If you enable your video, this call will be interrupted for a few seconds.", nil) preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"Enable" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Enable", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self upgradeToVideoCall]; }]; [confirmDialog addAction:confirmAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; [confirmDialog addAction:cancelAction]; [self presentViewController:confirmDialog animated:YES completion:nil]; } diff --git a/VideoCalls/DirectoryTableViewController.m b/VideoCalls/DirectoryTableViewController.m index 1417cfe0..92088bfb 100644 --- a/VideoCalls/DirectoryTableViewController.m +++ b/VideoCalls/DirectoryTableViewController.m @@ -56,7 +56,7 @@ // Directory placeholder view _directoryBackgroundView = [[PlaceholderView alloc] init]; [_directoryBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"folder-placeholder"]]; - [_directoryBackgroundView.placeholderText setText:@"No files in here"]; + [_directoryBackgroundView.placeholderText setText:NSLocalizedString(@"No files in here", nil)]; [_directoryBackgroundView.placeholderView setHidden:YES]; [_directoryBackgroundView.loadingView startAnimating]; self.tableView.backgroundView = _directoryBackgroundView; @@ -96,21 +96,21 @@ [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *alphabetical = [UIAlertAction actionWithTitle:@"Alphabetical order" + UIAlertAction *alphabetical = [UIAlertAction actionWithTitle:NSLocalizedString(@"Alphabetical order", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [[NCSettingsController sharedInstance] setPreferredFileSorting:NCAlphabeticalSorting]; [self sortItemsInDirectory]; }]; [optionsActionSheet addAction:alphabetical]; - UIAlertAction *modificationDate = [UIAlertAction actionWithTitle:@"Modification date" + UIAlertAction *modificationDate = [UIAlertAction actionWithTitle:NSLocalizedString(@"Modification date", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [[NCSettingsController sharedInstance] setPreferredFileSorting:NCModificationDateSorting]; [self sortItemsInDirectory]; }]; [optionsActionSheet addAction:modificationDate]; - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; UIAlertAction *selectedAction = modificationDate; switch ([[NCSettingsController sharedInstance] getPreferredFileSorting]) { @@ -241,13 +241,13 @@ { UIAlertController *confirmDialog = [UIAlertController alertControllerWithTitle:name - message:[NSString stringWithFormat:@"Do you want to share '%@' in the conversation?", name] + message:[NSString stringWithFormat:NSLocalizedString(@"Do you want to share '%@' in the conversation?", nil), name] preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"Share" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Share", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self shareFileWithPath:path]; }]; [confirmDialog addAction:confirmAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; [confirmDialog addAction:cancelAction]; [self presentViewController:confirmDialog animated:YES completion:nil]; } @@ -255,10 +255,10 @@ - (void)showErrorSharingItem { UIAlertController *confirmDialog = - [UIAlertController alertControllerWithTitle:@"Could not share file" - message:@"An error occurred while sharing the file" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Could not share file", nil) + message:NSLocalizedString(@"An error occurred while sharing the file", nil) preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; + UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; [confirmDialog addAction:confirmAction]; [self presentViewController:confirmDialog animated:YES completion:nil]; } @@ -270,19 +270,19 @@ ti = ti * -1; if (ti < 60) { // This minute - return @"less than a minute ago"; + return NSLocalizedString(@"less than a minute ago", nil); } else if (ti < 3600) { // This hour int diff = round(ti / 60); - return [NSString stringWithFormat:@"%d minutes ago", diff]; + return [NSString stringWithFormat:NSLocalizedString(@"%d minutes ago", nil), diff]; } else if (ti < 86400) { // This day int diff = round(ti / 60 / 60); - return[NSString stringWithFormat:@"%d hours ago", diff]; + return[NSString stringWithFormat:NSLocalizedString(@"%d hours ago", nil), diff]; } else if (ti < 86400 * 30) { // This month int diff = round(ti / 60 / 60 / 24); - return[NSString stringWithFormat:@"%d days ago", diff]; + return[NSString stringWithFormat:NSLocalizedString(@"%d days ago", nil), diff]; } else { // Older than one month NSDateFormatter *df = [[NSDateFormatter alloc] init]; diff --git a/VideoCalls/LoginViewController.m b/VideoCalls/LoginViewController.m index 9cf34e9c..8eb0946d 100644 --- a/VideoCalls/LoginViewController.m +++ b/VideoCalls/LoginViewController.m @@ -34,7 +34,7 @@ self.appLogo.image = [UIImage imageNamed:@"loginLogo"]; self.view.backgroundColor = [UIColor colorWithRed:0.00 green:0.51 blue:0.79 alpha:1.0]; //#0082C9 - NSString *serverUrlPlaceholderText = @"Server address https://…"; + NSString *serverUrlPlaceholderText = NSLocalizedString(@"Server address https://…", nil); self.serverUrl.textColor = [UIColor whiteColor]; self.serverUrl.tintColor = [UIColor whiteColor]; self.serverUrl.attributedPlaceholder = [[NSAttributedString alloc] initWithString:serverUrlPlaceholderText @@ -47,7 +47,7 @@ self.activityIndicatorView.hidden = YES; self.cancel.hidden = !(multiAccountEnabled && [[NCDatabaseManager sharedInstance] numberOfAccounts] > 0); - [self.cancel setTitle:@"Cancel" forState:UIControlStateNormal]; + [self.cancel setTitle:NSLocalizedString(@"Cancel", nil) forState:UIControlStateNormal]; } - (void)didReceiveMemoryWarning @@ -87,7 +87,7 @@ if (serverURL) { [self startLoginProcess]; } else { - [self showAlertWithTitle:@"Invalid server address" andMessage:@"Please check that you entered a valid server address."]; + [self showAlertWithTitle:NSLocalizedString(@"Invalid server address", nil) andMessage:NSLocalizedString(@"Please check that you entered a valid server address.", nil)]; } } @@ -122,9 +122,9 @@ if ([talkFeatures containsObject:kMinimumRequiredTalkCapability]) { [self presentAuthenticationView]; } else if (talkFeatures.count == 0) { - [self showAlertWithTitle:@"Nextcloud Talk not installed" andMessage:@"It seems that Nextcloud Talk is not installed in your server."]; + [self showAlertWithTitle:NSLocalizedString(@"Nextcloud Talk not installed", nil) andMessage:NSLocalizedString(@"It seems that Nextcloud Talk is not installed in your server.", nil)]; } else { - [self showAlertWithTitle:@"Nextcloud Talk version not supported" andMessage:@"Please update your server with the latest Nextcloud Talk version available."]; + [self showAlertWithTitle:NSLocalizedString(@"Nextcloud Talk version not supported", nil) andMessage:NSLocalizedString(@"Please update your server with the latest Nextcloud Talk version available.", nil)]; } } else { // Self signed certificate @@ -133,7 +133,7 @@ [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:self delegate:self]; }); } else { - [self showAlertWithTitle:@"Nextcloud server not found" andMessage:@"Please check that you entered the correct Nextcloud server address."]; + [self showAlertWithTitle:NSLocalizedString(@"Nextcloud server not found", nil) andMessage:NSLocalizedString(@"Please check that you entered the correct Nextcloud server address.", nil)]; } } }]; @@ -156,7 +156,7 @@ preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* okButton = [UIAlertAction - actionWithTitle:@"OK" + actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [_serverUrl becomeFirstResponder]; diff --git a/VideoCalls/MessageSeparatorTableViewCell.m b/VideoCalls/MessageSeparatorTableViewCell.m index f0b3cb89..fd4d3b91 100644 --- a/VideoCalls/MessageSeparatorTableViewCell.m +++ b/VideoCalls/MessageSeparatorTableViewCell.m @@ -56,7 +56,7 @@ _separatorLabel.numberOfLines = 1; _separatorLabel.textColor = [UIColor lightGrayColor]; _separatorLabel.font = [UIFont systemFontOfSize:12.0]; - _separatorLabel.text = @"Unread messages"; + _separatorLabel.text = NSLocalizedString(@"Unread messages", nil); } return _separatorLabel; } diff --git a/VideoCalls/NCChatViewController.m b/VideoCalls/NCChatViewController.m index 96dd560a..cc403494 100644 --- a/VideoCalls/NCChatViewController.m +++ b/VideoCalls/NCChatViewController.m @@ -152,11 +152,11 @@ typedef enum NCChatMessageAction { [self.rightButton setTitle:@"" forState:UIControlStateNormal]; [self.rightButton setImage:[UIImage imageNamed:@"send"] forState:UIControlStateNormal]; - self.rightButton.accessibilityLabel = @"Send message"; - self.rightButton.accessibilityHint = @"Double tap to send message"; + self.rightButton.accessibilityLabel = NSLocalizedString(@"Send message", nil); + self.rightButton.accessibilityHint = NSLocalizedString(@"Double tap to send message", nil); [self.leftButton setImage:[UIImage imageNamed:@"attachment"] forState:UIControlStateNormal]; - self.leftButton.accessibilityLabel = @"Share a file from your Nextcloud"; - self.leftButton.accessibilityHint = @"Double tap to open file browser"; + self.leftButton.accessibilityLabel = NSLocalizedString(@"Share a file from your Nextcloud", nil); + self.leftButton.accessibilityHint = NSLocalizedString(@"Double tap to open file browser", nil); self.textInputbar.autoHideRightButton = NO; NSInteger chatMaxLength = [[NCSettingsController sharedInstance] chatMaxLengthConfigCapability]; @@ -220,7 +220,7 @@ typedef enum NCChatMessageAction { _unreadMessageButton.hidden = YES; _unreadMessageButton.translatesAutoresizingMaskIntoConstraints = NO; [_unreadMessageButton addTarget:self action:@selector(unreadMessagesButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; - [_unreadMessageButton setTitle:@"↓ New messages" forState:UIControlStateNormal]; + [_unreadMessageButton setTitle:NSLocalizedString(@"↓ New messages", nil) forState:UIControlStateNormal]; // Unread messages separator _unreadMessagesSeparator = [[NCChatMessage alloc] init]; @@ -366,7 +366,7 @@ typedef enum NCChatMessageAction { [_titleView.image setImage:[UIImage imageNamed:@"password-bg"]]; } - _titleView.title.accessibilityHint = @"Double tap to go to conversation information"; + _titleView.title.accessibilityHint = NSLocalizedString(@"Double tap to go to conversation information", nil); } - (void)configureActionItems @@ -375,15 +375,15 @@ typedef enum NCChatMessageAction { style:UIBarButtonItemStylePlain target:self action:@selector(videoCallButtonPressed:)]; - _videoCallButton.accessibilityLabel = @"Video call"; - _videoCallButton.accessibilityHint = @"Double tap to start a video call"; + _videoCallButton.accessibilityLabel = NSLocalizedString(@"Video call", nil); + _videoCallButton.accessibilityHint = NSLocalizedString(@"Double tap to start a video call", nil); _voiceCallButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"call-action"] style:UIBarButtonItemStylePlain target:self action:@selector(voiceCallButtonPressed:)]; - _voiceCallButton.accessibilityLabel = @"Voice call"; - _voiceCallButton.accessibilityHint = @"Double tap to start a voice call"; + _voiceCallButton.accessibilityLabel = NSLocalizedString(@"Voice call", nil); + _voiceCallButton.accessibilityHint = NSLocalizedString(@"Double tap to start a voice call", nil); self.navigationItem.rightBarButtonItems = @[_videoCallButton, _voiceCallButton]; } @@ -421,12 +421,12 @@ typedef enum NCChatMessageAction { - (void)checkLobbyState { if ([self shouldPresentLobbyView]) { - [_chatBackgroundView.placeholderText setText:@"You are currently waiting in the lobby."]; + [_chatBackgroundView.placeholderText setText:NSLocalizedString(@"You are currently waiting in the lobby", nil)]; [_chatBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"lobby-placeholder"]]; if (_room.lobbyTimer > 0) { NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:_room.lobbyTimer]; NSString *meetingStart = [NCUtils readableDateFromDate:date]; - NSString *placeHolderText = [NSString stringWithFormat:@"You are currently waiting in the lobby.\nThis meeting is scheduled for\n%@", meetingStart]; + NSString *placeHolderText = [NSString stringWithFormat:NSLocalizedString(@"You are currently waiting in the lobby.\nThis meeting is scheduled for\n%@", nil), meetingStart]; [_chatBackgroundView.placeholderText setText:placeHolderText]; [_chatBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"lobby-placeholder"]]; } @@ -436,7 +436,7 @@ typedef enum NCChatMessageAction { // Clear current chat since chat history will be retrieve when lobby is disabled [self cleanChat]; } else { - [_chatBackgroundView.placeholderText setText:@"No messages yet, start the conversation!"]; + [_chatBackgroundView.placeholderText setText:NSLocalizedString(@"No messages yet, start the conversation!", nil)]; [_chatBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"chat-placeholder"]]; [_chatBackgroundView.placeholderView setHidden:YES]; [_chatBackgroundView.loadingView startAnimating]; @@ -459,7 +459,7 @@ typedef enum NCChatMessageAction { footerLabel.textColor = [UIColor lightGrayColor]; footerLabel.font = [UIFont systemFontOfSize:12.0]; footerLabel.backgroundColor = [UIColor clearColor]; - footerLabel.text = @"Offline, only showing downloaded messages"; + footerLabel.text = NSLocalizedString(@"Offline, only showing downloaded messages", nil); self.tableView.tableFooterView = footerLabel; self.tableView.tableFooterView.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1]; } @@ -501,14 +501,14 @@ typedef enum NCChatMessageAction { - (void)presentJoinRoomError { - NSString *alertTitle = [NSString stringWithFormat:@"Could not join %@", _room.displayName]; + NSString *alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Could not join %@", nil), _room.displayName]; if (_room.type == kNCRoomTypeOneToOne) { - alertTitle = [NSString stringWithFormat:@"Could not join conversation with %@", _room.displayName]; + alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Could not join conversation with %@", nil), _room.displayName]; } UIAlertController * alert = [UIAlertController alertControllerWithTitle:alertTitle - message:@"An error occurred while joining the conversation" + message:NSLocalizedString(@"An error occurred while joining the conversation", nil) preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* okButton = [UIAlertAction actionWithTitle:@"OK" + UIAlertAction* okButton = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; [alert addAction:okButton]; @@ -669,21 +669,21 @@ typedef enum NCChatMessageAction { message:nil preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *photoLibraryAction = [UIAlertAction actionWithTitle:@"Photo Library" + UIAlertAction *photoLibraryAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Photo Library", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self presentPhotoLibrary]; }]; [photoLibraryAction setValue:[[UIImage imageNamed:@"photos"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forKey:@"image"]; - UIAlertAction *filesAction = [UIAlertAction actionWithTitle:@"Files" + UIAlertAction *filesAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Files", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self presentDocumentPicker]; }]; [filesAction setValue:[[UIImage imageNamed:@"files"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forKey:@"image"]; - UIAlertAction *ncFilesAction = [UIAlertAction actionWithTitle:@"Nextcloud Files" + UIAlertAction *ncFilesAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Nextcloud Files", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self presentNextcloudFilesBrowser]; @@ -693,7 +693,7 @@ typedef enum NCChatMessageAction { [optionsActionSheet addAction:photoLibraryAction]; [optionsActionSheet addAction:filesAction]; [optionsActionSheet addAction:ncFilesAction]; - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.leftButton; @@ -855,23 +855,23 @@ typedef enum NCChatMessageAction { // Reply option if (message.isReplyable) { NSDictionary *replyInfo = [NSDictionary dictionaryWithObject:@(kNCChatMessageActionReply) forKey:@"action"]; - FTPopOverMenuModel *replyModel = [[FTPopOverMenuModel alloc] initWithTitle:@"Reply" image:[UIImage imageNamed:@"reply"] userInfo:replyInfo]; + FTPopOverMenuModel *replyModel = [[FTPopOverMenuModel alloc] initWithTitle:NSLocalizedString(@"Reply", nil) image:[UIImage imageNamed:@"reply"] userInfo:replyInfo]; [menuArray addObject:replyModel]; } // Re-send option if (message.sendingFailed) { NSDictionary *replyInfo = [NSDictionary dictionaryWithObject:@(kNCChatMessageActionResend) forKey:@"action"]; - FTPopOverMenuModel *replyModel = [[FTPopOverMenuModel alloc] initWithTitle:@"Resend" image:[UIImage imageNamed:@"refresh"] userInfo:replyInfo]; + FTPopOverMenuModel *replyModel = [[FTPopOverMenuModel alloc] initWithTitle:NSLocalizedString(@"Resend", nil) image:[UIImage imageNamed:@"refresh"] userInfo:replyInfo]; [menuArray addObject:replyModel]; } // Copy option NSDictionary *copyInfo = [NSDictionary dictionaryWithObject:@(kNCChatMessageActionCopy) forKey:@"action"]; - FTPopOverMenuModel *copyModel = [[FTPopOverMenuModel alloc] initWithTitle:@"Copy" image:[UIImage imageNamed:@"clippy"] userInfo:copyInfo]; + FTPopOverMenuModel *copyModel = [[FTPopOverMenuModel alloc] initWithTitle:NSLocalizedString(@"Copy", nil) image:[UIImage imageNamed:@"clippy"] userInfo:copyInfo]; [menuArray addObject:copyModel]; // Delete option if (message.sendingFailed) { NSDictionary *replyInfo = [NSDictionary dictionaryWithObject:@(kNCChatMessageActionDelete) forKey:@"action"]; - FTPopOverMenuModel *replyModel = [[FTPopOverMenuModel alloc] initWithTitle:@"Delete" image:[UIImage imageNamed:@"delete"] userInfo:replyInfo]; + FTPopOverMenuModel *replyModel = [[FTPopOverMenuModel alloc] initWithTitle:NSLocalizedString(@"Delete", nil) image:[UIImage imageNamed:@"delete"] userInfo:replyInfo]; [menuArray addObject:replyModel]; } @@ -1218,12 +1218,12 @@ typedef enum NCChatMessageAction { } else { self.textView.text = message; UIAlertController * alert = [UIAlertController - alertControllerWithTitle:@"Could not send the message" - message:@"An error occurred while sending the message" + alertControllerWithTitle:NSLocalizedString(@"Could not send the message", nil) + message:NSLocalizedString(@"An error occurred while sending the message", nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* okButton = [UIAlertAction - actionWithTitle:@"OK" + actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; @@ -1689,13 +1689,13 @@ typedef enum NCChatMessageAction { if (message.messageId == kUnreadMessagesSeparatorIdentifier) { MessageSeparatorTableViewCell *separatorCell = (MessageSeparatorTableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:MessageSeparatorCellIdentifier]; separatorCell.messageId = message.messageId; - separatorCell.separatorLabel.text = @"Unread messages"; + separatorCell.separatorLabel.text = NSLocalizedString(@"Unread messages", nil); return separatorCell; } if (message.messageId == kChatBlockSeparatorIdentifier) { MessageSeparatorTableViewCell *separatorCell = (MessageSeparatorTableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:MessageSeparatorCellIdentifier]; separatorCell.messageId = message.messageId; - separatorCell.separatorLabel.text = @"Some messages not shown, will be downloaded when online"; + separatorCell.separatorLabel.text = NSLocalizedString(@"Some messages not shown, will be downloaded when online", nil); return separatorCell; } if (message.isSystemMessage) { diff --git a/VideoCalls/NCNotification.m b/VideoCalls/NCNotification.m index 5a0303e9..cbbe6019 100644 --- a/VideoCalls/NCNotification.m +++ b/VideoCalls/NCNotification.m @@ -54,9 +54,9 @@ NSString *author = [[_subjectRichParameters objectForKey:@"user"] objectForKey:@"name"]; NSString *guest = [[_subjectRichParameters objectForKey:@"guest"] objectForKey:@"name"]; if (guest) { - author = [NSString stringWithFormat:@"%@ (%@)", guest, @"guest"]; + author = [NSString stringWithFormat:@"%@ (%@)", guest, NSLocalizedString(@"guest", nil)]; } - return author ? author : @"Guest"; + return author ? author : NSLocalizedString(@"Guest", nil); } - (NSString *)chatMessageTitle @@ -70,7 +70,8 @@ NSString *parameterKey = [[parameter stringByReplacingOccurrencesOfString:@"{" withString:@""] stringByReplacingOccurrencesOfString:@"}" withString:@""]; if ([parameterKey isEqualToString:@"call"]) { - title = [title stringByAppendingString:[NSString stringWithFormat:@" in %@", [[_subjectRichParameters objectForKey:@"call"] objectForKey:@"name"]]]; + NSString *inString = NSLocalizedString(@"in", nil); + title = [title stringByAppendingString:[NSString stringWithFormat:@" %@ %@", inString, [[_subjectRichParameters objectForKey:@"call"] objectForKey:@"name"]]]; } } return title; @@ -84,7 +85,7 @@ displayName = [[_subjectRichParameters objectForKey:@"user"] objectForKey:@"name"]; } if (!displayName || [displayName isEqualToString:@"a conversation"]) { - displayName = @"Incoming call"; + displayName = NSLocalizedString(@"Incoming call", nil); } return displayName; } diff --git a/VideoCalls/NCNotificationController.m b/VideoCalls/NCNotificationController.m index 0d533622..391660ed 100644 --- a/VideoCalls/NCNotificationController.m +++ b/VideoCalls/NCNotificationController.m @@ -84,14 +84,16 @@ NSString * const NCLocalNotificationJoinChatNotification = @"NCLocalN switch (type) { case kNCLocalNotificationTypeMissedCall: { - content.body = [NSString stringWithFormat:@"☎️ Missed call from %@", [userInfo objectForKey:@"displayName"]]; + NSString *missedCallString = NSLocalizedString(@"Missed call from", nil); + content.body = [NSString stringWithFormat:@"☎️ %@ %@", missedCallString, [userInfo objectForKey:@"displayName"]]; content.userInfo = userInfo; } break; case kNCLocalNotificationTypeCancelledCall: { - content.body = [NSString stringWithFormat:@"☎️ Cancelled call from another account"]; + NSString *cancelledCallString = NSLocalizedString(@"Cancelled call from another account", nil); + content.body = [NSString stringWithFormat:@"☎️ %@", cancelledCallString]; content.userInfo = userInfo; } break; diff --git a/VideoCalls/NCRoom.m b/VideoCalls/NCRoom.m index 99ff2c2d..91e6ed8c 100644 --- a/VideoCalls/NCRoom.m +++ b/VideoCalls/NCRoom.m @@ -150,11 +150,11 @@ NSString * const NCRoomObjectTypeSharePassword = @"share:password"; - (NSString *)deletionMessage { - NSString *message = @"Do you really want to delete this conversation?"; + NSString *message = NSLocalizedString(@"Do you really want to delete this conversation?", nil); if (self.type == kNCRoomTypeOneToOne) { - message = [NSString stringWithFormat:@"If you delete the conversation, it will also be deleted for %@", self.displayName]; + message = [NSString stringWithFormat:NSLocalizedString(@"If you delete the conversation, it will also be deleted for %@", nil), self.displayName]; } else if ([self.participants count] > 1) { - message = @"If you delete the conversation, it will also be deleted for all other participants."; + message = NSLocalizedString(@"If you delete the conversation, it will also be deleted for all other participants.", nil); } return message; @@ -167,16 +167,16 @@ NSString * const NCRoomObjectTypeSharePassword = @"share:password"; - (NSString *)stringForNotificationLevel:(NCRoomNotificationLevel)level { - NSString *levelString = @"Default"; + NSString *levelString = NSLocalizedString(@"Default", nil); switch (level) { case kNCRoomNotificationLevelAlways: - levelString = @"All messages"; + levelString = NSLocalizedString(@"All messages", nil); break; case kNCRoomNotificationLevelMention: - levelString = @"@-mentions only"; + levelString = NSLocalizedString(@"@-mentions only", nil); break; case kNCRoomNotificationLevelNever: - levelString = @"Off"; + levelString = NSLocalizedString(@"Off", nil); break; default: break; @@ -191,11 +191,11 @@ NSString * const NCRoomObjectTypeSharePassword = @"share:password"; NSString *actorName = [[self.lastMessage.actorDisplayName componentsSeparatedByString:@" "] objectAtIndex:0]; // For own messages if (ownMessage) { - actorName = @"You"; + actorName = NSLocalizedString(@"You", nil); } // For guests if ([self.lastMessage.actorDisplayName isEqualToString:@""]) { - actorName = @"Guest"; + actorName = NSLocalizedString(@"Guest", nil); } // No actor name cases if (self.lastMessage.isSystemMessage || (self.type == kNCRoomTypeOneToOne && !ownMessage) || self.type == kNCRoomTypeChangelog) { diff --git a/VideoCalls/NCRoomParticipants.m b/VideoCalls/NCRoomParticipants.m index f876c771..00577aa3 100644 --- a/VideoCalls/NCRoomParticipants.m +++ b/VideoCalls/NCRoomParticipants.m @@ -53,7 +53,8 @@ - (NSString *)displayName { if (self.canModerate) { - return [NSString stringWithFormat:@"%@ %@", _displayName, @"(moderator)"]; + NSString *moderatorString = NSLocalizedString(@"moderator", nil); + return [NSString stringWithFormat:@"%@ (%@)", _displayName, moderatorString]; } return _displayName; } diff --git a/VideoCalls/NCUserInterfaceController.m b/VideoCalls/NCUserInterfaceController.m index fdadaaef..83ac2125 100644 --- a/VideoCalls/NCUserInterfaceController.m +++ b/VideoCalls/NCUserInterfaceController.m @@ -89,12 +89,12 @@ - (void)presentOfflineWarningAlert { UIAlertController * alert = [UIAlertController - alertControllerWithTitle:@"Disconnected" - message:@"It seems that there is no Internet connection." + alertControllerWithTitle:NSLocalizedString(@"Disconnected", nil) + message:NSLocalizedString(@"It seems that there is no Internet connection.", nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* okButton = [UIAlertAction - actionWithTitle:@"OK" + actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; @@ -106,12 +106,12 @@ - (void)presentTalkNotInstalledWarningAlert { UIAlertController * alert = [UIAlertController - alertControllerWithTitle:@"Nextcloud Talk not installed" - message:@"It seems that Nextcloud Talk is not installed in your server." + alertControllerWithTitle:NSLocalizedString(@"Nextcloud Talk not installed", nil) + message:NSLocalizedString(@"It seems that Nextcloud Talk is not installed in your server.", nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* okButton = [UIAlertAction - actionWithTitle:@"OK" + actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self logOutCurrentUser]; @@ -125,12 +125,12 @@ - (void)presentTalkOutdatedWarningAlert { UIAlertController * alert = [UIAlertController - alertControllerWithTitle:@"Nextcloud Talk version not supported" - message:@"Please update your server with the latest Nextcloud Talk version available." + alertControllerWithTitle:NSLocalizedString(@"Nextcloud Talk version not supported", nil) + message:NSLocalizedString(@"Please update your server with the latest Nextcloud Talk version available.", nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* okButton = [UIAlertAction - actionWithTitle:@"OK" + actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self logOutCurrentUser]; @@ -183,11 +183,11 @@ } UIAlertController * alert = [UIAlertController alertControllerWithTitle:[pushNotification bodyForRemoteAlerts] - message:@"Do you want to join this call?" + message:NSLocalizedString(@"Do you want to join this call?", nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *joinAudioButton = [UIAlertAction - actionWithTitle:@"Join call (audio only)" + actionWithTitle:NSLocalizedString(@"Join call (audio only)", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSDictionary *userInfo = [NSDictionary dictionaryWithObject:pushNotification forKey:@"pushNotification"]; @@ -197,7 +197,7 @@ }]; UIAlertAction *joinVideoButton = [UIAlertAction - actionWithTitle:@"Join call with video" + actionWithTitle:NSLocalizedString(@"Join call with video", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSDictionary *userInfo = [NSDictionary dictionaryWithObject:pushNotification forKey:@"pushNotification"]; @@ -207,7 +207,7 @@ }]; UIAlertAction* cancelButton = [UIAlertAction - actionWithTitle:@"Cancel" + actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; diff --git a/VideoCalls/NCUserStatus.m b/VideoCalls/NCUserStatus.m index 0ea2068b..ea604b3c 100644 --- a/VideoCalls/NCUserStatus.m +++ b/VideoCalls/NCUserStatus.m @@ -46,15 +46,15 @@ NSString * const kUserStatusOffline = @"offline"; NSString *readableUserStatus = nil; if ([userStatus isEqualToString:kUserStatusOnline]) { - readableUserStatus = @"Online"; + readableUserStatus = NSLocalizedString(@"Online", nil); } else if ([userStatus isEqualToString:kUserStatusAway]) { - readableUserStatus = @"Away"; + readableUserStatus = NSLocalizedString(@"Away", nil); } else if ([userStatus isEqualToString:kUserStatusDND]) { - readableUserStatus = @"Do not disturb"; + readableUserStatus = NSLocalizedString(@"Do not disturb", nil); } else if ([userStatus isEqualToString:kUserStatusInvisible]) { - readableUserStatus = @"Invisible"; + readableUserStatus = NSLocalizedString(@"Invisible", nil); } else if ([userStatus isEqualToString:kUserStatusOffline]) { - readableUserStatus = @"Offline"; + readableUserStatus = NSLocalizedString(@"Offline", nil); } return readableUserStatus; diff --git a/VideoCalls/NewRoomTableViewController.m b/VideoCalls/NewRoomTableViewController.m index 8d6d5630..3940aa1f 100644 --- a/VideoCalls/NewRoomTableViewController.m +++ b/VideoCalls/NewRoomTableViewController.m @@ -113,13 +113,13 @@ NSString * const NCSelectedContactForChatNotification = @"NCSelectedContactForCh UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed)]; self.navigationController.navigationBar.topItem.leftBarButtonItem = cancelButton; - self.navigationController.navigationBar.topItem.leftBarButtonItem.accessibilityHint = @"Cancel conversation creation"; + self.navigationController.navigationBar.topItem.leftBarButtonItem.accessibilityHint = NSLocalizedString(@"Cancel conversation creation", nil); - UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain + UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil) style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem = backButton; - self.navigationItem.title = @"New conversation"; + self.navigationItem.title = NSLocalizedString(@"New conversation", nil); [self.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; @@ -290,17 +290,17 @@ NSString * const NCSelectedContactForChatNotification = @"NCSelectedContactForCh } switch (indexPath.row) { case kHeaderSectionNewGroup: - cell.labelTitle.text = @"Group conversation"; - cell.labelTitle.accessibilityLabel = @"Create a new group conversation"; - cell.labelTitle.accessibilityHint = @"Double tap to start creating a new group conversation"; + cell.labelTitle.text = NSLocalizedString(@"Group conversation", nil); + cell.labelTitle.accessibilityLabel = NSLocalizedString(@"Create a new group conversation", nil); + cell.labelTitle.accessibilityHint = NSLocalizedString(@"Double tap to start creating a new group conversation", nil); cell.labelTitle.textColor = [UIColor colorWithRed:0.00 green:0.48 blue:1.00 alpha:1.0]; //#007AFF [cell.contactImage setImage:[UIImage imageNamed:@"group-bg"]]; break; case kHeaderSectionNewPublic: - cell.labelTitle.text = @"Public conversation"; - cell.labelTitle.accessibilityLabel = @"Create a new public conversation"; - cell.labelTitle.accessibilityHint = @"Double tap to start creating a new public conversation"; + cell.labelTitle.text = NSLocalizedString(@"Public conversation", nil); + cell.labelTitle.accessibilityLabel = NSLocalizedString(@"Create a new public conversation", nil); + cell.labelTitle.accessibilityHint = NSLocalizedString(@"Double tap to start creating a new public conversation", nil); cell.labelTitle.textColor = [UIColor colorWithRed:0.00 green:0.48 blue:1.00 alpha:1.0]; //#007AFF [cell.contactImage setImage:[UIImage imageNamed:@"public-bg"]]; break; @@ -319,8 +319,8 @@ NSString * const NCSelectedContactForChatNotification = @"NCSelectedContactForCh } cell.labelTitle.text = contact.name; - cell.labelTitle.accessibilityLabel = [NSString stringWithFormat:@"Create a conversation with %@", contact.name]; - cell.labelTitle.accessibilityHint = [NSString stringWithFormat:@"Double tap to create a conversation with %@", contact.name]; + cell.labelTitle.accessibilityLabel = [NSString stringWithFormat:NSLocalizedString(@"Create a conversation with %@", nil), contact.name]; + cell.labelTitle.accessibilityHint = [NSString stringWithFormat:NSLocalizedString(@"Double tap to create a conversation with %@", nil), contact.name]; [cell.contactImage setImageWithURLRequest:[[NCAPIController sharedInstance] createAvatarRequestForUser:contact.userId andSize:96 usingAccount:[[NCDatabaseManager sharedInstance] activeAccount]] placeholderImage:nil success:nil failure:nil]; diff --git a/VideoCalls/ResultMultiSelectionTableViewController.m b/VideoCalls/ResultMultiSelectionTableViewController.m index 01f1ddc0..1b42fd02 100644 --- a/VideoCalls/ResultMultiSelectionTableViewController.m +++ b/VideoCalls/ResultMultiSelectionTableViewController.m @@ -31,7 +31,7 @@ // Contacts placeholder view _contactsBackgroundView = [[PlaceholderView alloc] init]; [_contactsBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"contacts-placeholder"]]; - [_contactsBackgroundView.placeholderText setText:@"No results found."]; + [_contactsBackgroundView.placeholderText setText:NSLocalizedString(@"No results found", nil)]; [self showSearchingUI]; self.tableView.backgroundView = _contactsBackgroundView; } diff --git a/VideoCalls/RoomCreation2TableViewController.m b/VideoCalls/RoomCreation2TableViewController.m index 927328eb..34491056 100644 --- a/VideoCalls/RoomCreation2TableViewController.m +++ b/VideoCalls/RoomCreation2TableViewController.m @@ -64,7 +64,7 @@ NSString * const NCRoomCreatedNotification = @"NCRoomCreatedNotification"; { [super viewDidLoad]; - self.navigationItem.title = (_publicRoom) ? @"New public conversation" : @"New group conversation"; + self.navigationItem.title = (_publicRoom) ? NSLocalizedString(@"New public conversation", nil) : NSLocalizedString(@"New group conversation", nil); [self.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; @@ -84,17 +84,17 @@ NSString * const NCRoomCreatedNotification = @"NCRoomCreatedNotification"; _passwordTextField = [[UITextField alloc] initWithFrame:CGRectMake(180, 10, 115, 30)]; _passwordTextField.textAlignment = NSTextAlignmentRight; - _passwordTextField.placeholder = @"No password"; + _passwordTextField.placeholder = NSLocalizedString(@"No password", nil); _passwordTextField.adjustsFontSizeToFitWidth = YES; _passwordTextField.textColor = [UIColor blackColor]; _passwordTextField.secureTextEntry = YES; - _passwordTextField.accessibilityLabel = @"Password field for public conversation"; + _passwordTextField.accessibilityLabel = NSLocalizedString(@"Password field for public conversation", nil); _creatingRoomView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; - _createRoomButton = [[UIBarButtonItem alloc] initWithTitle:@"Create" style:UIBarButtonItemStyleDone + _createRoomButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Create", nil) style:UIBarButtonItemStyleDone target:self action:@selector(createButtonPressed)]; _createRoomButton.enabled = NO; - _createRoomButton.accessibilityHint = @"Double tap to create the conversation"; + _createRoomButton.accessibilityHint = NSLocalizedString(@"Double tap to create the conversation", nil); self.navigationItem.rightBarButtonItem = _createRoomButton; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)]; @@ -221,11 +221,11 @@ NSString * const NCRoomCreatedNotification = @"NCRoomCreatedNotification"; self.navigationItem.rightBarButtonItem = _createRoomButton; UIAlertController * alert = [UIAlertController - alertControllerWithTitle:@"Could not create conversation" - message:[NSString stringWithFormat:@"An error occurred while creating the conversation"] + alertControllerWithTitle:NSLocalizedString(@"Could not create conversation", nil) + message:NSLocalizedString(@"An error occurred while creating the conversation", nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* okButton = [UIAlertAction - actionWithTitle:@"OK" + actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; [alert addAction:okButton]; @@ -300,9 +300,9 @@ NSString * const NCRoomCreatedNotification = @"NCRoomCreatedNotification"; if (_participants.count == 0) { return @""; } else if (_participants.count == 1) { - return @"1 participant"; + return NSLocalizedString(@"1 participant", nil); } - return [NSString stringWithFormat:@"%ld participants", _participants.count]; + return [NSString stringWithFormat:NSLocalizedString(@"%ld participants", nil), _participants.count]; } return nil; @@ -311,9 +311,9 @@ NSString * const NCRoomCreatedNotification = @"NCRoomCreatedNotification"; - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { if (section == kCreationSectionName) { - return @"Please, set a name for this conversation."; + return NSLocalizedString(@"Please, set a name for this conversation.", nil); } else if (section == kCreationSectionParticipantsOrPassword && _publicRoom ) { - return @"Anyone who knows the link to this conversation will be able to access it. You can protect it by setting a password."; + return NSLocalizedString(@"Anyone who knows the link to this conversation will be able to access it. You can protect it by setting a password.", nil); } return nil; @@ -364,7 +364,7 @@ NSString * const NCRoomCreatedNotification = @"NCRoomCreatedNotification"; cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:publicCellIdentifier]; } - cell.textLabel.text = @"Password"; + cell.textLabel.text = NSLocalizedString(@"Password", nil); cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.accessoryView = _passwordTextField; [cell.imageView setImage:[UIImage imageNamed:@"password-settings"]]; diff --git a/VideoCalls/RoomCreationTableViewController.m b/VideoCalls/RoomCreationTableViewController.m index d6d1e7c0..ae94d591 100644 --- a/VideoCalls/RoomCreationTableViewController.m +++ b/VideoCalls/RoomCreationTableViewController.m @@ -107,17 +107,17 @@ // Room creation placeholder view _roomCreationBackgroundView = [[PlaceholderView alloc] init]; [_roomCreationBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"contacts-placeholder"]]; - [_roomCreationBackgroundView.placeholderText setText:@"No participants found."]; + [_roomCreationBackgroundView.placeholderText setText:NSLocalizedString(@"No participants found", nil)]; [_roomCreationBackgroundView.placeholderView setHidden:YES]; [_roomCreationBackgroundView.loadingView startAnimating]; self.tableView.backgroundView = _roomCreationBackgroundView; self.definesPresentationContext = YES; - UIBarButtonItem *nextButton = [[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStylePlain + UIBarButtonItem *nextButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Next", nil) style:UIBarButtonItemStylePlain target:self action:@selector(nextButtonPressed)]; self.navigationItem.rightBarButtonItem = nextButton; - self.navigationItem.rightBarButtonItem.accessibilityHint = @"Continue to next step of conversation creation"; + self.navigationItem.rightBarButtonItem.accessibilityHint = NSLocalizedString(@"Continue to next step of conversation creation", nil); self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; self.navigationController.navigationBar.translucent = NO; self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0.00 green:0.51 blue:0.79 alpha:1.0]; //#0082C9 @@ -182,16 +182,16 @@ titleLabel.backgroundColor = [UIColor clearColor]; titleLabel.textColor = [UIColor whiteColor]; titleLabel.font = [UIFont boldSystemFontOfSize:16]; - titleLabel.text = @"New group conversation"; - titleLabel.accessibilityLabel = @"Add participants to new group conversation"; + titleLabel.text = NSLocalizedString(@"New group conversation", nil); + titleLabel.accessibilityLabel = NSLocalizedString(@"Add participants to new group conversation", nil); [titleLabel sizeToFit]; UILabel *subTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 18, 0, 0)]; subTitleLabel.backgroundColor = [UIColor clearColor]; subTitleLabel.textColor = [UIColor whiteColor]; subTitleLabel.font = [UIFont systemFontOfSize:12]; - subTitleLabel.text = (_selectedParticipants.count == 1) ? @"1 participant" : [NSString stringWithFormat:@"%ld participants", _selectedParticipants.count]; - subTitleLabel.accessibilityLabel = [NSString stringWithFormat:@"%@ added to this new group conversation", subTitleLabel.text]; + subTitleLabel.text = (_selectedParticipants.count == 1) ? NSLocalizedString(@"1 participant", nil) : [NSString stringWithFormat:NSLocalizedString(@"%ld participants", nil), _selectedParticipants.count]; + subTitleLabel.accessibilityLabel = [NSString stringWithFormat:NSLocalizedString(@"%@ added to this new group conversation", nil), subTitleLabel.text]; [subTitleLabel sizeToFit]; UIView *twoLineTitleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, MAX(subTitleLabel.frame.size.width, titleLabel.frame.size.width), 30)]; diff --git a/VideoCalls/RoomInfoTableViewController.m b/VideoCalls/RoomInfoTableViewController.m index f5783dac..fea17ad5 100644 --- a/VideoCalls/RoomInfoTableViewController.m +++ b/VideoCalls/RoomInfoTableViewController.m @@ -107,7 +107,7 @@ typedef enum ModificationError { { [super viewDidLoad]; - self.navigationItem.title = @"Conversation info"; + self.navigationItem.title = NSLocalizedString(@"Conversation info", nil); [self.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; @@ -137,7 +137,7 @@ typedef enum ModificationError { _lobbyDatePicker.datePickerMode = UIDatePickerModeDateAndTime; _lobbyDateTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 00, 200, 30)]; _lobbyDateTextField.textAlignment = NSTextAlignmentRight; - _lobbyDateTextField.placeholder = @"Manual"; + _lobbyDateTextField.placeholder = NSLocalizedString(@"Manual", nil); _lobbyDateTextField.adjustsFontSizeToFitWidth = YES; [_lobbyDateTextField setInputView:_lobbyDatePicker]; [self setupLobbyDatePicker]; @@ -145,7 +145,7 @@ typedef enum ModificationError { _modifyingRoomView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; _headerView = [[HeaderWithButton alloc] init]; - [_headerView.button setTitle:@"Add" forState:UIControlStateNormal]; + [_headerView.button setTitle:NSLocalizedString(@"Add", nil) forState:UIControlStateNormal]; [_headerView.button addTarget:self action:@selector(addParticipantsButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [self.tableView registerNib:[UINib nibWithNibName:kContactsTableCellNibName bundle:nil] forCellReuseIdentifier:kContactCellIdentifier]; @@ -327,47 +327,47 @@ typedef enum ModificationError { NSString *errorDescription = @""; switch (error) { case kModificationErrorRename: - errorDescription = @"Could not rename the conversation"; + errorDescription = NSLocalizedString(@"Could not rename the conversation", nil); break; case kModificationErrorFavorite: - errorDescription = @"Could not change favorite setting"; + errorDescription = NSLocalizedString(@"Could not change favorite setting", nil); break; case kModificationErrorNotifications: - errorDescription = @"Could not change notifications setting"; + errorDescription = NSLocalizedString(@"Could not change notifications setting", nil); break; case kModificationErrorShare: - errorDescription = @"Could not change sharing permissions of the conversation"; + errorDescription = NSLocalizedString(@"Could not change sharing permissions of the conversation", nil); break; case kModificationErrorPassword: - errorDescription = @"Could not change password protection settings"; + errorDescription = NSLocalizedString(@"Could not change password protection settings", nil); break; case kModificationErrorLobby: - errorDescription = @"Could not change lobby state of the conversation"; + errorDescription = NSLocalizedString(@"Could not change lobby state of the conversation", nil); break; case kModificationErrorModeration: - errorDescription = @"Could not change moderation permissions of the participant"; + errorDescription = NSLocalizedString(@"Could not change moderation permissions of the participant", nil); break; case kModificationErrorRemove: - errorDescription = @"Could not remove participant"; + errorDescription = NSLocalizedString(@"Could not remove participant", nil); break; case kModificationErrorLeave: - errorDescription = @"Could not leave conversation"; + errorDescription = NSLocalizedString(@"Could not leave conversation", nil); break; case kModificationErrorLeaveModeration: - errorDescription = @"You need to promote a new moderator before you can leave this conversation"; + errorDescription = NSLocalizedString(@"You need to promote a new moderator before you can leave this conversation", nil); break; case kModificationErrorDelete: - errorDescription = @"Could not delete conversation"; + errorDescription = NSLocalizedString(@"Could not delete conversation", nil); break; default: @@ -378,7 +378,7 @@ typedef enum ModificationError { [UIAlertController alertControllerWithTitle:errorDescription message:nil preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; + UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; [renameDialog addAction:okAction]; [self presentViewController:renameDialog animated:YES completion:nil]; } @@ -392,18 +392,18 @@ typedef enum ModificationError { switch (action) { case kDestructiveActionLeave: { - title = @"Leave conversation"; - message = @"Do you really want to leave this conversation?"; - confirmAction = [UIAlertAction actionWithTitle:@"Leave" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { + title = NSLocalizedString(@"Leave conversation", nil); + message = NSLocalizedString(@"Do you really want to leave this conversation?", nil); + confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Leave", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [self leaveRoom]; }]; } break; case kDestructiveActionDelete: { - title = @"Delete conversation"; + title = NSLocalizedString(@"Delete conversation", nil); message = _room.deletionMessage; - confirmAction = [UIAlertAction actionWithTitle:@"Delete" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { + confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Delete", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [self deleteRoom]; }]; } @@ -415,7 +415,7 @@ typedef enum ModificationError { message:message preferredStyle:UIAlertControllerStyleAlert]; [confirmDialog addAction:confirmAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; [confirmDialog addAction:cancelAction]; [self presentViewController:confirmDialog animated:YES completion:nil]; } @@ -423,13 +423,13 @@ typedef enum ModificationError { - (void)presentNotificationLevelSelector { UIAlertController *optionsActionSheet = - [UIAlertController alertControllerWithTitle:@"Notifications" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Notifications", nil) message:nil preferredStyle:UIAlertControllerStyleActionSheet]; [optionsActionSheet addAction:[self actionForNotificationLevel:kNCRoomNotificationLevelAlways]]; [optionsActionSheet addAction:[self actionForNotificationLevel:kNCRoomNotificationLevelMention]]; [optionsActionSheet addAction:[self actionForNotificationLevel:kNCRoomNotificationLevelNever]]; - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -538,7 +538,7 @@ typedef enum ModificationError { - (void)showPasswordOptions { - NSString *alertTitle = _room.hasPassword ? @"Set new password:" : @"Set password:"; + NSString *alertTitle = _room.hasPassword ? NSLocalizedString(@"Set new password:", nil) : NSLocalizedString(@"Set password:", nil); UIAlertController *passwordDialog = [UIAlertController alertControllerWithTitle:alertTitle message:nil @@ -546,13 +546,13 @@ typedef enum ModificationError { __weak typeof(self) weakSelf = self; [passwordDialog addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { - textField.placeholder = @"Password"; + textField.placeholder = NSLocalizedString(@"Password", nil); textField.secureTextEntry = YES; textField.delegate = weakSelf; textField.tag = k_set_password_textfield_tag; }]; - NSString *actionTitle = _room.hasPassword ? @"Change password" : @"OK"; + NSString *actionTitle = _room.hasPassword ? NSLocalizedString(@"Change password", nil) : NSLocalizedString(@"OK", nil); _setPasswordAction = [UIAlertAction actionWithTitle:actionTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSString *password = [[passwordDialog textFields][0] text]; NSString *trimmedPassword = [password stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; @@ -571,7 +571,7 @@ typedef enum ModificationError { [passwordDialog addAction:_setPasswordAction]; if (_room.hasPassword) { - UIAlertAction *removePasswordAction = [UIAlertAction actionWithTitle:@"Remove password" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { + UIAlertAction *removePasswordAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Remove password", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [self setModifyingRoomUI]; [[NCAPIController sharedInstance] setPassword:@"" toRoom:_room.token forAccount:[[NCDatabaseManager sharedInstance] activeAccount] withCompletionBlock:^(NSError *error) { if (!error) { @@ -586,7 +586,7 @@ typedef enum ModificationError { [passwordDialog addAction:removePasswordAction]; } - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; [passwordDialog addAction:cancelAction]; [self presentViewController:passwordDialog animated:YES completion:nil]; @@ -627,17 +627,16 @@ typedef enum ModificationError { - (void)shareRoomLinkFromIndexPath:(NSIndexPath *)indexPath { TalkAccount *activeAccount = [[NCDatabaseManager sharedInstance] activeAccount]; - NSString *shareMessage = [NSString stringWithFormat:@"Join the conversation at %@/index.php/call/%@", - activeAccount.server, _room.token]; + NSString *joinConversationString = NSLocalizedString(@"Join the conversation at", nil); if (_room.name && ![_room.name isEqualToString:@""]) { - shareMessage = [NSString stringWithFormat:@"Join the conversation%@ at %@/index.php/call/%@", - [NSString stringWithFormat:@" \"%@\"", _room.name], activeAccount.server, _room.token]; + joinConversationString = [NSString stringWithFormat:NSLocalizedString(@"Join the conversation %@ at", nil), [NSString stringWithFormat:@"\"%@\"", _room.name]]; } + NSString *shareMessage = [NSString stringWithFormat:@"%@ %@/index.php/call/%@", joinConversationString, activeAccount.server, _room.token]; NSArray *items = @[shareMessage]; UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil]; NSString *appDisplayName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]; - NSString *emailSubject = [NSString stringWithFormat:@"%@ invitation", appDisplayName]; + NSString *emailSubject = [NSString stringWithFormat:NSLocalizedString(@"%@ invitation", nil), appDisplayName]; [controller setValue:emailSubject forKey:@"subject"]; // Presentation on iPads @@ -754,7 +753,7 @@ typedef enum ModificationError { if (_room.lobbyTimer > 0) { NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:_room.lobbyTimer]; - UIBarButtonItem *clearButton = [[UIBarButtonItem alloc] initWithTitle:@"Remove" style:UIBarButtonItemStylePlain target:self action:@selector(removeLobbyDate)]; + UIBarButtonItem *clearButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Remove", nil) style:UIBarButtonItemStylePlain target:self action:@selector(removeLobbyDate)]; [clearButton setTintColor:[UIColor redColor]]; [toolBar setItems:[NSArray arrayWithObjects:clearButton, space, doneButton, nil]]; [_lobbyDatePicker setDate:date]; @@ -786,7 +785,7 @@ typedef enum ModificationError { preferredStyle:UIAlertControllerStyleActionSheet]; if (participant.participantType == kNCParticipantTypeModerator) { - UIAlertAction *demoteFromModerator = [UIAlertAction actionWithTitle:@"Demote from moderator" + UIAlertAction *demoteFromModerator = [UIAlertAction actionWithTitle:NSLocalizedString(@"Demote from moderator", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self demoteFromModerator:participant]; @@ -794,7 +793,7 @@ typedef enum ModificationError { [demoteFromModerator setValue:[[UIImage imageNamed:@"rename-action"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forKey:@"image"]; [optionsActionSheet addAction:demoteFromModerator]; } else if (participant.participantType == kNCParticipantTypeUser) { - UIAlertAction *promoteToModerator = [UIAlertAction actionWithTitle:@"Promote to moderator" + UIAlertAction *promoteToModerator = [UIAlertAction actionWithTitle:NSLocalizedString(@"Promote to moderator", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self promoteToModerator:participant]; @@ -804,7 +803,7 @@ typedef enum ModificationError { } // Remove participant - UIAlertAction *removeParticipant = [UIAlertAction actionWithTitle:@"Remove participant" + UIAlertAction *removeParticipant = [UIAlertAction actionWithTitle:NSLocalizedString(@"Remove participant", nil) style:UIAlertActionStyleDestructive handler:^void (UIAlertAction *action) { [self removeParticipant:participant]; @@ -813,7 +812,7 @@ typedef enum ModificationError { [optionsActionSheet addAction:removeParticipant]; - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -1007,10 +1006,10 @@ typedef enum ModificationError { RoomInfoSection infoSection = [[sections objectAtIndex:section] intValue]; switch (infoSection) { case kRoomInfoSectionPublic: - return @"Guests"; + return NSLocalizedString(@"Guests", nil); break; case kRoomInfoSectionWebinar: - return @"Webinar"; + return NSLocalizedString(@"Webinar", nil); break; default: break; @@ -1026,9 +1025,9 @@ typedef enum ModificationError { switch (infoSection) { case kRoomInfoSectionParticipants: { - NSString *title = [NSString stringWithFormat:@"%lu participants", (unsigned long)_roomParticipants.count]; + NSString *title = [NSString stringWithFormat:NSLocalizedString(@"%lu participants", nil), (unsigned long)_roomParticipants.count]; if (_roomParticipants.count == 1) { - title = @"1 participant"; + title = NSLocalizedString(@"1 participant", nil); } _headerView.label.text = [title uppercaseString]; _headerView.button.hidden = (_room.canModerate) ? NO : YES; @@ -1163,7 +1162,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:notificationLevelCellIdentifier]; } - cell.textLabel.text = @"Notifications"; + cell.textLabel.text = NSLocalizedString(@"Notifications", nil); cell.detailTextLabel.text = _room.notificationLevelString; [cell.imageView setImage:[UIImage imageNamed:@"notifications-settings"]]; @@ -1177,7 +1176,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:sendLinkCellIdentifier]; } - cell.textLabel.text = @"Send conversation link"; + cell.textLabel.text = NSLocalizedString(@"Send conversation link", nil); [cell.imageView setImage:[UIImage imageNamed:@"share-settings"]]; return cell; @@ -1198,7 +1197,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:shareLinkCellIdentifier]; } - cell.textLabel.text = @"Share link"; + cell.textLabel.text = NSLocalizedString(@"Share link", nil); cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.accessoryView = _publicSwtich; _publicSwtich.on = (_room.type == kNCRoomTypePublic) ? YES : NO; @@ -1215,7 +1214,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:passwordCellIdentifier]; } - cell.textLabel.text = (_room.hasPassword) ? @"Change password" : @"Set password"; + cell.textLabel.text = (_room.hasPassword) ? NSLocalizedString(@"Change password", nil) : NSLocalizedString(@"Set password", nil); [cell.imageView setImage:(_room.hasPassword) ? [UIImage imageNamed:@"password-settings"] : [UIImage imageNamed:@"no-password-settings"]]; return cell; @@ -1236,7 +1235,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:lobbyCellIdentifier]; } - cell.textLabel.text = @"Lobby"; + cell.textLabel.text = NSLocalizedString(@"Lobby", nil); cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.accessoryView = _lobbySwtich; _lobbySwtich.on = (_room.lobbyState == NCRoomLobbyStateModeratorsOnly) ? YES : NO; @@ -1252,7 +1251,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:lobbyTimerCellIdentifier]; } - cell.textLabel.text = @"Start time"; + cell.textLabel.text = NSLocalizedString(@"Start time", nil); cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.accessoryView = _lobbyDateTextField; NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:_room.lobbyTimer]; @@ -1280,7 +1279,7 @@ typedef enum ModificationError { if (participant.participantType == kNCParticipantTypeGuest) { UIColor *guestAvatarColor = [UIColor colorWithRed:0.84 green:0.84 blue:0.84 alpha:1.0]; /*#d5d5d5*/ NSString *avatarName = ([participant.displayName isEqualToString:@""]) ? @"?" : participant.displayName; - NSString *guestName = ([participant.displayName isEqualToString:@""]) ? @"Guest" : participant.displayName; + NSString *guestName = ([participant.displayName isEqualToString:@""]) ? NSLocalizedString(@"Guest", nil) : participant.displayName; cell.labelTitle.text = guestName; [cell.contactImage setImageWithString:avatarName color:guestAvatarColor circular:true]; } else { @@ -1323,7 +1322,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:leaveRoomCellIdentifier]; } - cell.textLabel.text = @"Leave conversation"; + cell.textLabel.text = NSLocalizedString(@"Leave conversation", nil); cell.textLabel.textColor = [UIColor colorWithRed:1.00 green:0.23 blue:0.19 alpha:1.0]; //#FF3B30 [cell.imageView setImage:[UIImage imageNamed:@"exit-action"]]; @@ -1337,7 +1336,7 @@ typedef enum ModificationError { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:deleteRoomCellIdentifier]; } - cell.textLabel.text = @"Delete conversation"; + cell.textLabel.text = NSLocalizedString(@"Delete conversation", nil); cell.textLabel.textColor = [UIColor colorWithRed:1.00 green:0.23 blue:0.19 alpha:1.0]; //#FF3B30 [cell.imageView setImage:[UIImage imageNamed:@"delete-action"]]; diff --git a/VideoCalls/RoomSearchTableViewController.m b/VideoCalls/RoomSearchTableViewController.m index 451c0764..96e7ed3b 100644 --- a/VideoCalls/RoomSearchTableViewController.m +++ b/VideoCalls/RoomSearchTableViewController.m @@ -34,7 +34,7 @@ // Contacts placeholder view _roomSearchBackgroundView = [[PlaceholderView alloc] init]; [_roomSearchBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"conversations-placeholder"]]; - [_roomSearchBackgroundView.placeholderText setText:@"No results found."]; + [_roomSearchBackgroundView.placeholderText setText:NSLocalizedString(@"No results found", nil)]; [_roomSearchBackgroundView.placeholderView setHidden:YES]; [_roomSearchBackgroundView.loadingView startAnimating]; self.tableView.backgroundView = _roomSearchBackgroundView; @@ -61,7 +61,7 @@ if ([date isToday]) { [formatter setDateFormat:@"HH:mm"]; } else if ([date isYesterday]) { - return @"Yesterday"; + return NSLocalizedString(@"Yesterday", nil); } else { [formatter setDateFormat:@"dd/MM/yy"]; } diff --git a/VideoCalls/RoomsTableViewController.m b/VideoCalls/RoomsTableViewController.m index f18d8baf..8d2798cf 100644 --- a/VideoCalls/RoomsTableViewController.m +++ b/VideoCalls/RoomsTableViewController.m @@ -68,8 +68,8 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); // Align header's title to ContactsTableViewCell's label self.tableView.separatorInset = UIEdgeInsetsMake(0, 72, 0, 0); - self.addButton.accessibilityLabel = @"Create a new conversation"; - self.addButton.accessibilityHint = @"Double tap to create group, public or one to one conversations."; + self.addButton.accessibilityLabel = NSLocalizedString(@"Create a new conversation", nil); + self.addButton.accessibilityHint = NSLocalizedString(@"Double tap to create group, public or one to one conversations.", nil); [self createRefreshControl]; [self setNavigationLogoButton]; @@ -132,7 +132,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); // Rooms placeholder view _roomsBackgroundView = [[PlaceholderView alloc] init]; [_roomsBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"conversations-placeholder"]]; - [_roomsBackgroundView.placeholderText setText:@"You are not part of any conversation. Press + to start a new one."]; + [_roomsBackgroundView.placeholderText setText:NSLocalizedString(@"You are not part of any conversation. Press + to start a new one.", nil)]; [_roomsBackgroundView.placeholderView setHidden:YES]; [_roomsBackgroundView.loadingView startAnimating]; self.tableView.backgroundView = _roomsBackgroundView; @@ -276,7 +276,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); self.navigationItem.titleView = [[UIImageView alloc] initWithImage:logoImage]; } self.navigationItem.titleView.accessibilityLabel = @"Nextcloud Talk"; - self.navigationItem.titleView.accessibilityHint = @"Double tap to change accounts or add a new one."; + self.navigationItem.titleView.accessibilityHint = NSLocalizedString(@"Double tap to change accounts or add a new one.", nil); } -(void)showAccountsMenu:(UIButton*)sender @@ -292,7 +292,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); [menuArray addObject:accountModel]; [actionsArray addObject:account]; } - FTPopOverMenuModel *addAccountModel = [[FTPopOverMenuModel alloc] initWithTitle:@"Add account" image:[UIImage imageNamed:@"add-settings"] selected:NO accessoryView:nil]; + FTPopOverMenuModel *addAccountModel = [[FTPopOverMenuModel alloc] initWithTitle:NSLocalizedString(@"Add account", nil) image:[UIImage imageNamed:@"add-settings"] selected:NO accessoryView:nil]; [menuArray addObject:addAccountModel]; [actionsArray addObject:@"AddAccountAction"]; @@ -431,8 +431,8 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); UIButton *profileButton = [UIButton buttonWithType:UIButtonTypeCustom]; [profileButton addTarget:self action:@selector(showUserProfile) forControlEvents:UIControlEventTouchUpInside]; profileButton.frame = CGRectMake(0, 0, 30, 30); - profileButton.accessibilityLabel = @"User profile and settings"; - profileButton.accessibilityHint = @"Double tap to go to user profile and application settings"; + profileButton.accessibilityLabel = NSLocalizedString(@"User profile and settings", nil); + profileButton.accessibilityHint = NSLocalizedString(@"Double tap to go to user profile and application settings", nil); TalkAccount *activeAccount = [[NCDatabaseManager sharedInstance] activeAccount]; UIImage *profileImage = [[NCAPIController sharedInstance] userProfileImageForAccount:activeAccount withSize:CGSizeMake(90, 90)]; @@ -493,13 +493,13 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); } UIAlertController *optionsActionSheet = - [UIAlertController alertControllerWithTitle:@"Notifications" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Notifications", nil) message:nil preferredStyle:UIAlertControllerStyleActionSheet]; [optionsActionSheet addAction:[self actionForNotificationLevel:kNCRoomNotificationLevelAlways forRoom:room]]; [optionsActionSheet addAction:[self actionForNotificationLevel:kNCRoomNotificationLevelMention forRoom:room]]; [optionsActionSheet addAction:[self actionForNotificationLevel:kNCRoomNotificationLevelNever forRoom:room]]; - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -537,17 +537,16 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); } TalkAccount *activeAccount = [[NCDatabaseManager sharedInstance] activeAccount]; - NSString *shareMessage = [NSString stringWithFormat:@"Join the conversation at %@/index.php/call/%@", - activeAccount.server, room.token]; + NSString *joinConversationString = NSLocalizedString(@"Join the conversation at", nil); if (room.name && ![room.name isEqualToString:@""]) { - shareMessage = [NSString stringWithFormat:@"Join the conversation%@ at %@/index.php/call/%@", - [NSString stringWithFormat:@" \"%@\"", room.name], activeAccount.server, room.token]; + joinConversationString = [NSString stringWithFormat:NSLocalizedString(@"Join the conversation %@ at", nil), [NSString stringWithFormat:@"\"%@\"", room.name]]; } + NSString *shareMessage = [NSString stringWithFormat:@"%@ %@/index.php/call/%@", joinConversationString, activeAccount.server, room.token]; NSArray *items = @[shareMessage]; UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil]; NSString *appDisplayName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]; - NSString *emailSubject = [NSString stringWithFormat:@"%@ invitation", appDisplayName]; + NSString *emailSubject = [NSString stringWithFormat:NSLocalizedString(@"%@ invitation", nil), appDisplayName]; [controller setValue:emailSubject forKey:@"subject"]; // Presentation on iPads @@ -616,10 +615,10 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); } UIAlertController *confirmDialog = - [UIAlertController alertControllerWithTitle:@"Leave conversation" - message:@"Do you really want to leave this conversation?" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Leave conversation", nil) + message:NSLocalizedString(@"Do you really want to leave this conversation?", nil) preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"Leave" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { + UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Leave", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [_rooms removeObjectAtIndex:indexPath.row]; [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; [[NCAPIController sharedInstance] removeSelfFromRoom:room.token forAccount:[[NCDatabaseManager sharedInstance] activeAccount] withCompletionBlock:^(NSInteger errorCode, NSError *error) { @@ -632,7 +631,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); }]; }]; [confirmDialog addAction:confirmAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; [confirmDialog addAction:cancelAction]; [self presentViewController:confirmDialog animated:YES completion:nil]; } @@ -645,10 +644,10 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); } UIAlertController *confirmDialog = - [UIAlertController alertControllerWithTitle:@"Delete conversation" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Delete conversation", nil) message:room.deletionMessage preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"Delete" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { + UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Delete", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [_rooms removeObjectAtIndex:indexPath.row]; [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; [[NCAPIController sharedInstance] deleteRoom:room.token forAccount:[[NCDatabaseManager sharedInstance] activeAccount] withCompletionBlock:^(NSError *error) { @@ -659,7 +658,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); }]; }]; [confirmDialog addAction:confirmAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; [confirmDialog addAction:cancelAction]; [self presentViewController:confirmDialog animated:YES completion:nil]; } @@ -677,7 +676,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); preferredStyle:UIAlertControllerStyleActionSheet]; // Add/Remove room to/from favorites - UIAlertAction *favoriteAction = [UIAlertAction actionWithTitle:(room.isFavorite) ? @"Remove from favorites" : @"Add to favorites" + UIAlertAction *favoriteAction = [UIAlertAction actionWithTitle:(room.isFavorite) ? NSLocalizedString(@"Remove from favorites", nil) : NSLocalizedString(@"Add to favorites", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { if (room.isFavorite) { @@ -691,7 +690,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); [optionsActionSheet addAction:favoriteAction]; // Notification levels if ([[NCSettingsController sharedInstance] serverHasTalkCapability:kCapabilityNotificationLevels]) { - UIAlertAction *notificationsAction = [UIAlertAction actionWithTitle:[NSString stringWithFormat:@"Notifications: %@", room.notificationLevelString] + UIAlertAction *notificationsAction = [UIAlertAction actionWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Notifications: %@", nil), room.notificationLevelString] style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self setNotificationLevelForRoomAtIndexPath:indexPath]; @@ -702,7 +701,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); // Share link if (room.isPublic) { // Share Link - UIAlertAction *shareLinkAction = [UIAlertAction actionWithTitle:@"Share conversation link" + UIAlertAction *shareLinkAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Share conversation link", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self shareLinkFromRoomAtIndexPath:indexPath]; @@ -711,7 +710,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); [optionsActionSheet addAction:shareLinkAction]; } // Room info - UIAlertAction *roomInfoAction = [UIAlertAction actionWithTitle:@"Conversation info" + UIAlertAction *roomInfoAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Conversation info", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self presentRoomInfoForRoomAtIndexPath:indexPath]; @@ -719,7 +718,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); [roomInfoAction setValue:[[UIImage imageNamed:@"room-info-action"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forKey:@"image"]; [optionsActionSheet addAction:roomInfoAction]; - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -747,7 +746,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); if ([date isToday]) { [formatter setDateFormat:@"HH:mm"]; } else if ([date isYesterday]) { - return @"Yesterday"; + return NSLocalizedString(@"Yesterday", nil); } else { [formatter setDateFormat:@"dd/MM/yy"]; } @@ -757,11 +756,11 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); - (void)showLeaveRoomLastModeratorErrorForRoom:(NCRoom *)room { UIAlertController *leaveRoomFailedDialog = - [UIAlertController alertControllerWithTitle:@"Could not leave conversation" - message:[NSString stringWithFormat:@"You need to promote a new moderator before you can leave %@.", room.displayName] + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Could not leave conversation", nil) + message:[NSString stringWithFormat:NSLocalizedString(@"You need to promote a new moderator before you can leave %@.", nil), room.displayName] preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; + UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]; [leaveRoomFailedDialog addAction:okAction]; [self presentViewController:leaveRoomFailedDialog animated:YES completion:nil]; @@ -791,7 +790,7 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); - (NSString *)tableView:(UITableView *)tableView titleForSwipeAccessoryButtonForRowAtIndexPath:(NSIndexPath *)indexPath { - return @"More"; + return NSLocalizedString(@"More", nil); } - (void)tableView:(UITableView *)tableView swipeAccessoryButtonPushedForRowAtIndexPath:(NSIndexPath *)indexPath @@ -806,9 +805,9 @@ typedef void (^FetchRoomsCompletionBlock)(BOOL success); room = [_resultTableViewController.rooms objectAtIndex:indexPath.row]; } - NSString *deleteButtonText = @"Delete"; + NSString *deleteButtonText = NSLocalizedString(@"Delete", nil); if (room.isLeavable) { - deleteButtonText = @"Leave"; + deleteButtonText = NSLocalizedString(@"Leave", nil); } return deleteButtonText; } diff --git a/VideoCalls/SearchTableViewController.m b/VideoCalls/SearchTableViewController.m index 74683187..c7e3abb0 100644 --- a/VideoCalls/SearchTableViewController.m +++ b/VideoCalls/SearchTableViewController.m @@ -31,7 +31,7 @@ // Contacts placeholder view _contactsBackgroundView = [[PlaceholderView alloc] init]; [_contactsBackgroundView.placeholderImage setImage:[UIImage imageNamed:@"contacts-placeholder"]]; - [_contactsBackgroundView.placeholderText setText:@"No results found."]; + [_contactsBackgroundView.placeholderText setText:NSLocalizedString(@"No results found", nil)]; [self showSearchingUI]; self.tableView.backgroundView = _contactsBackgroundView; } diff --git a/VideoCalls/SettingsViewController.m b/VideoCalls/SettingsViewController.m index 19827d07..a3479869 100644 --- a/VideoCalls/SettingsViewController.m +++ b/VideoCalls/SettingsViewController.m @@ -65,7 +65,7 @@ typedef enum AboutSection { { [super viewDidLoad]; - self.navigationItem.title = @"Profile"; + self.navigationItem.title = NSLocalizedString(@"Profile", nil); [self.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; @@ -202,11 +202,11 @@ typedef enum AboutSection { message:nil preferredStyle:UIAlertControllerStyleActionSheet]; - NSString *actionTitle = (multiAccountEnabled) ? @"Remove account" : @"Log out"; + NSString *actionTitle = (multiAccountEnabled) ? NSLocalizedString(@"Remove account", nil) : NSLocalizedString(@"Log out", nil); UIImage *actionImage = (multiAccountEnabled) ? [UIImage imageNamed:@"delete-action"] : [UIImage imageNamed:@"logout"]; if (multiAccountEnabled) { - UIAlertAction *addAccountAction = [UIAlertAction actionWithTitle:@"Add account" + UIAlertAction *addAccountAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Add account", nil) style:UIAlertActionStyleDefault handler:^void (UIAlertAction *action) { [self addNewAccount]; @@ -222,7 +222,7 @@ typedef enum AboutSection { }]; [logOutAction setValue:[actionImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forKey:@"image"]; [optionsActionSheet addAction:logOutAction]; - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -240,9 +240,9 @@ typedef enum AboutSection { - (void)showLogoutConfirmationDialog { - NSString *alertTitle = (multiAccountEnabled) ? @"Remove account" : @"Log out"; - NSString *alertMessage = (multiAccountEnabled) ? @"Do you really want to remove this account?" : @"Do you really want to log out from this account?"; - NSString *actionTitle = (multiAccountEnabled) ? @"Remove" : @"Log out"; + NSString *alertTitle = (multiAccountEnabled) ? NSLocalizedString(@"Remove account", nil) : NSLocalizedString(@"Log out", nil); + NSString *alertMessage = (multiAccountEnabled) ? NSLocalizedString(@"Do you really want to remove this account?", nil) : NSLocalizedString(@"Do you really want to log out from this account?", nil); + NSString *actionTitle = (multiAccountEnabled) ? NSLocalizedString(@"Remove", nil) : NSLocalizedString(@"Log out", nil); UIAlertController *confirmDialog = [UIAlertController alertControllerWithTitle:alertTitle @@ -252,7 +252,7 @@ typedef enum AboutSection { [self logout]; }]; [confirmDialog addAction:confirmAction]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]; [confirmDialog addAction:cancelAction]; [self presentViewController:confirmDialog animated:YES completion:nil]; } @@ -308,7 +308,7 @@ typedef enum AboutSection { - [userStatusActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [userStatusActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads userStatusActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -333,7 +333,7 @@ typedef enum AboutSection { NSArray *videoResolutions = [[[NCSettingsController sharedInstance] videoSettingsModel] availableVideoResolutions]; NSString *storedResolution = [[[NCSettingsController sharedInstance] videoSettingsModel] currentVideoResolutionSettingFromStore]; UIAlertController *optionsActionSheet = - [UIAlertController alertControllerWithTitle:@"Video quality" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Video quality", nil) message:nil preferredStyle:UIAlertControllerStyleActionSheet]; @@ -355,7 +355,7 @@ typedef enum AboutSection { [optionsActionSheet addAction:action]; } - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -370,7 +370,7 @@ typedef enum AboutSection { NSArray *supportedBrowsers = [[NCSettingsController sharedInstance] supportedBrowsers]; NSString *defaultBrowser = [[NCSettingsController sharedInstance] defaultBrowser]; UIAlertController *optionsActionSheet = - [UIAlertController alertControllerWithTitle:@"Open links in" + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Open links in", nil) message:nil preferredStyle:UIAlertControllerStyleActionSheet]; @@ -391,7 +391,7 @@ typedef enum AboutSection { [optionsActionSheet addAction:action]; } - [optionsActionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; + [optionsActionSheet addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]]; // Presentation on iPads optionsActionSheet.popoverPresentationController.sourceView = self.tableView; @@ -461,23 +461,23 @@ typedef enum AboutSection { SettingsSection settingsSection = [[sections objectAtIndex:section] intValue]; switch (settingsSection) { case kSettingsSectionUserStatus: - return @"Status"; + return NSLocalizedString(@"Status", nil); break; case kSettingsSectionAccounts: - return @"Accounts"; + return NSLocalizedString(@"Accounts", nil); break; case kSettingsSectionConfiguration: - return @"Configuration"; + return NSLocalizedString(@"Configuration", nil); break; case kSettingsSectionLock: - return @"Lock"; + return NSLocalizedString(@"Lock", nil); break; case kSettingsSectionAbout: - return @"About"; + return NSLocalizedString(@"About", nil); break; default: @@ -498,7 +498,7 @@ typedef enum AboutSection { return [NSString stringWithFormat:@"%@ %@ %@", appName, appVersion, copyright]; } if (settingsSection == kSettingsSectionUserStatus && [_activeUserStatus.status isEqualToString:kUserStatusDND]) { - return @"All notifications are muted"; + return NSLocalizedString(@"All notifications are muted", nil); } return nil; @@ -542,7 +542,7 @@ typedef enum AboutSection { cell.textLabel.text = [_activeUserStatus readableUserStatus]; [cell.imageView setImage:[UIImage imageNamed:[_activeUserStatus userStatusImageNameOfSize:24]]]; } else { - cell.textLabel.text = @"Fetching status…"; + cell.textLabel.text = NSLocalizedString(@"Fetching status…", nil); } } break; @@ -576,7 +576,7 @@ typedef enum AboutSection { cell = [tableView dequeueReusableCellWithIdentifier:videoConfigurationCellIdentifier]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:videoConfigurationCellIdentifier]; - cell.textLabel.text = @"Video quality"; + cell.textLabel.text = NSLocalizedString(@"Video quality", nil); [cell.imageView setImage:[UIImage imageNamed:@"videocall-settings"]]; } NSString *resolution = [[[NCSettingsController sharedInstance] videoSettingsModel] currentVideoResolutionSettingFromStore]; @@ -588,7 +588,7 @@ typedef enum AboutSection { cell = [tableView dequeueReusableCellWithIdentifier:browserConfigurationCellIdentifier]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:browserConfigurationCellIdentifier]; - cell.textLabel.text = @"Open links in"; + cell.textLabel.text = NSLocalizedString(@"Open links in", nil); cell.imageView.contentMode = UIViewContentModeCenter; [cell.imageView setImage:[UIImage imageNamed:@"browser-settings"]]; } @@ -609,15 +609,15 @@ typedef enum AboutSection { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:lockOnCellIdentifier]; } - cell.textLabel.text = @"Lock screen"; + cell.textLabel.text = NSLocalizedString(@"Lock screen", nil); if ([[[NCSettingsController sharedInstance] lockScreenPasscode] length] > 0) { cell.imageView.image = [UIImage imageNamed:@"password-settings"]; - cell.detailTextLabel.text = @"On"; + cell.detailTextLabel.text = NSLocalizedString(@"On", nil); } else { cell.imageView.image = [UIImage imageNamed:@"no-password-settings"]; - cell.detailTextLabel.text = @"Off"; + cell.detailTextLabel.text = NSLocalizedString(@"Off", nil); } } break; @@ -626,14 +626,14 @@ typedef enum AboutSection { cell = [tableView dequeueReusableCellWithIdentifier:lockUseSimplyCellIdentifier]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:lockUseSimplyCellIdentifier]; - cell.textLabel.text = @"Password type"; + cell.textLabel.text = NSLocalizedString(@"Password type", nil); cell.imageView.image = [UIImage imageNamed:@"key"]; } if ([[NCSettingsController sharedInstance] lockScreenPasscodeType] == NCPasscodeTypeSimple) { - cell.detailTextLabel.text = @"Simple"; + cell.detailTextLabel.text = NSLocalizedString(@"Simple", nil); } else { - cell.detailTextLabel.text = @"Strong"; + cell.detailTextLabel.text = NSLocalizedString(@"Strong", nil); } } @@ -650,7 +650,7 @@ typedef enum AboutSection { cell = [tableView dequeueReusableCellWithIdentifier:privacyCellIdentifier]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:privacyCellIdentifier]; - cell.textLabel.text = @"Privacy"; + cell.textLabel.text = NSLocalizedString(@"Privacy", nil); [cell.imageView setImage:[UIImage imageNamed:@"privacy"]]; } } @@ -660,7 +660,7 @@ typedef enum AboutSection { cell = [tableView dequeueReusableCellWithIdentifier:sourceCodeCellIdentifier]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:sourceCodeCellIdentifier]; - cell.textLabel.text = @"Get source code"; + cell.textLabel.text = NSLocalizedString(@"Get source code", nil); [cell.imageView setImage:[UIImage imageNamed:@"github"]]; } } @@ -859,10 +859,10 @@ typedef enum AboutSection { } BKTouchIDManager *touchIDManager = [[BKTouchIDManager alloc] initWithKeychainServiceName:@"com.nextcloud.Talk"]; - touchIDManager.promptText = @"Scan fingerprint to authenticate"; + touchIDManager.promptText = NSLocalizedString(@"Scan fingerprint to authenticate", nil); viewController.touchIDManager = touchIDManager; - viewController.title = @"Activating lock screen"; + viewController.title = NSLocalizedString(@"Activating lock screen", nil); viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(passcodeViewCloseButtonPressed:)]; @@ -886,10 +886,10 @@ typedef enum AboutSection { } BKTouchIDManager *touchIDManager = [[BKTouchIDManager alloc] initWithKeychainServiceName:@"com.nextcloud.Talk"]; - touchIDManager.promptText = @"Scan fingerprint to authenticate"; + touchIDManager.promptText = NSLocalizedString(@"Scan fingerprint to authenticate", nil); viewController.touchIDManager = touchIDManager; - viewController.title = @"Removing lock screen"; + viewController.title = NSLocalizedString(@"Removing lock screen", nil); viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(passcodeViewCloseButtonPressed:)]; diff --git a/VideoCalls/VideoResolutionsViewController.m b/VideoCalls/VideoResolutionsViewController.m index 530d12e9..762485f1 100644 --- a/VideoCalls/VideoResolutionsViewController.m +++ b/VideoCalls/VideoResolutionsViewController.m @@ -27,7 +27,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.navigationItem.title = @"Resolutions"; + self.navigationItem.title = NSLocalizedString(@"Resolutions", nil); _videoResolutions = [[[NCSettingsController sharedInstance] videoSettingsModel] availableVideoResolutions]; } diff --git a/VideoCalls/VideoSettingsViewController.m b/VideoCalls/VideoSettingsViewController.m index ef88b115..c75c5177 100644 --- a/VideoCalls/VideoSettingsViewController.m +++ b/VideoCalls/VideoSettingsViewController.m @@ -36,7 +36,7 @@ typedef enum VideoSettingsSection { { [super viewDidLoad]; - self.navigationItem.title = @"Video calls"; + self.navigationItem.title = NSLocalizedString(@"Video calls", nil); [self.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; @@ -74,11 +74,11 @@ typedef enum VideoSettingsSection { { switch (section) { case kVideoSettingsSectionResolution: - return @"Quality"; + return NSLocalizedString(@"Quality", nil); break; case kVideoSettingsSectionDefaultVideo: - return @"Settings"; + return NSLocalizedString(@"Settings", nil); break; } @@ -98,7 +98,7 @@ typedef enum VideoSettingsSection { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kVideoResolutionCellIdentifier]; } - cell.textLabel.text = @"Video resolution"; + cell.textLabel.text = NSLocalizedString(@"Video resolution", nil); NSString *resolution = [[[NCSettingsController sharedInstance] videoSettingsModel] currentVideoResolutionSettingFromStore]; cell.detailTextLabel.text = [[[NCSettingsController sharedInstance] videoSettingsModel] readableResolution:resolution]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; @@ -111,7 +111,7 @@ typedef enum VideoSettingsSection { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kDefaultVideoToggleCellIdentifier]; } - cell.textLabel.text = @"Video disabled on start"; + cell.textLabel.text = NSLocalizedString(@"Video disabled on start", nil); cell.selectionStyle = UITableViewCellSelectionStyleNone; BOOL videoDisabled = [[[NCSettingsController sharedInstance] videoSettingsModel] videoDisabledSettingFromStore]; [_videoDisabledSwitch setOn:videoDisabled];