vector-im/element-ios/issues/4899 - Replaced (*almost*) all NSLocalizedString calls with newly generated ObjC methods.

This commit is contained in:
Stefan Ceriu
2021-09-28 08:40:01 +03:00
committed by Stefan Ceriu
parent 83db774313
commit 04bc95a85c
77 changed files with 1099 additions and 1108 deletions
@@ -121,7 +121,7 @@
[self.resendButton.layer setCornerRadius:5];
self.resendButton.clipsToBounds = YES;
[self.resendButton setTitle:NSLocalizedStringFromTable(@"retry", @"Vector", nil) forState:UIControlStateNormal];
[self.resendButton setTitle:[VectorL10n retry] forState:UIControlStateNormal];
self.resendButton.backgroundColor = ThemeService.shared.theme.tintColor;
UIImage *image = [[UIImage imageNamed:@"room_context_menu_delete"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
@@ -214,37 +214,32 @@
if (!onOngoingConferenceCallClosePressed)
{
onGoingConferenceCall = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_ongoing_conference_call", @"Vector", nil),
NSLocalizedStringFromTable(@"voice", @"Vector", nil),
NSLocalizedStringFromTable(@"video", @"Vector", nil)];
onGoingConferenceCall = [VectorL10n roomOngoingConferenceCall:[VectorL10n voice] :[VectorL10n video]];
}
else
{
// Display the banner with a "Close it" string
objc_setAssociatedObject(self.messageTextView, "onOngoingConferenceCallClosePressed", [onOngoingConferenceCallClosePressed copy], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
onGoingConferenceCall = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_ongoing_conference_call_with_close", @"Vector", nil),
NSLocalizedStringFromTable(@"voice", @"Vector", nil),
NSLocalizedStringFromTable(@"video", @"Vector", nil),
NSLocalizedStringFromTable(@"room_ongoing_conference_call_close", @"Vector", nil)];
onGoingConferenceCall = [VectorL10n roomOngoingConferenceCallWithClose:[VectorL10n voice] :[VectorL10n video] :[VectorL10n roomOngoingConferenceCallClose]];
}
NSMutableAttributedString *onGoingConferenceCallAttibutedString = [[NSMutableAttributedString alloc] initWithString:onGoingConferenceCall];
// Add a link on the "voice" string
NSRange voiceRange = [onGoingConferenceCall rangeOfString:NSLocalizedStringFromTable(@"voice", @"Vector", nil)];
NSRange voiceRange = [onGoingConferenceCall rangeOfString:[VectorL10n voice]];
[onGoingConferenceCallAttibutedString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:voiceRange];
[onGoingConferenceCallAttibutedString addAttribute:NSLinkAttributeName value:@"onOngoingConferenceCallWithVoicePressed" range:voiceRange];
// Add a link on the "video" string
NSRange videoRange = [onGoingConferenceCall rangeOfString:NSLocalizedStringFromTable(@"video", @"Vector", nil)];
NSRange videoRange = [onGoingConferenceCall rangeOfString:[VectorL10n video]];
[onGoingConferenceCallAttibutedString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:videoRange];
[onGoingConferenceCallAttibutedString addAttribute:NSLinkAttributeName value:@"onOngoingConferenceCallWithVideoPressed" range:videoRange];
// Add a link on the "Close" string
if (onOngoingConferenceCallClosePressed)
{
NSRange closeRange = [onGoingConferenceCall rangeOfString:NSLocalizedStringFromTable(@"room_ongoing_conference_call_close", @"Vector", nil)];
NSRange closeRange = [onGoingConferenceCall rangeOfString:[VectorL10n roomOngoingConferenceCallClose]];
[onGoingConferenceCallAttibutedString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:closeRange];
[onGoingConferenceCallAttibutedString addAttribute:NSLinkAttributeName value:@"onOngoingConferenceCallClosePressed" range:closeRange];
}
@@ -290,11 +285,11 @@
NSMutableAttributedString *roomReplacementAttributedString = [NSMutableAttributedString new];
NSString *roomReplacementReasonString = [NSString stringWithFormat:@"%@\n", NSLocalizedStringFromTable(@"room_replacement_information", @"Vector", nil)];
NSString *roomReplacementReasonString = [NSString stringWithFormat:@"%@\n", [VectorL10n roomReplacementInformation]];
NSAttributedString *roomReplacementReasonAttributedString = [[NSAttributedString alloc] initWithString:roomReplacementReasonString attributes:roomReplacementReasonAttributes];
NSString *roomLinkString = NSLocalizedStringFromTable(@"room_replacement_link", @"Vector", nil);
NSString *roomLinkString = [VectorL10n roomReplacementLink];
NSAttributedString *roomLinkAttributedString = [[NSAttributedString alloc] initWithString:roomLinkString attributes:roomLinkAttributes];
[roomReplacementAttributedString appendAttributedString:roomReplacementReasonAttributedString];
@@ -307,7 +302,7 @@
}
else
{
self.messageTextView.text = NSLocalizedStringFromTable(@"room_replacement_information", @"Vector", nil);
self.messageTextView.text = [VectorL10n roomReplacementInformation];
}
self.messageTextView.tintColor = ThemeService.shared.theme.textPrimaryColor;
@@ -357,29 +352,29 @@
// Reuse MatrixKit as is for the beginning of hardLimit
if ([limitType isEqualToString:kMXErrorResourceLimitExceededLimitTypeMonthlyActiveUserValue])
{
[message appendString:[NSBundle mxk_localizedStringForKey:@"login_error_resource_limit_exceeded_message_monthly_active_user"]];
[message appendString:[MatrixKitL10n loginErrorResourceLimitExceededMessageMonthlyActiveUser]];
}
else
{
[message appendString:[NSBundle mxk_localizedStringForKey:@"login_error_resource_limit_exceeded_message_default"]];
[message appendString:[MatrixKitL10n loginErrorResourceLimitExceededMessageDefault]];
}
}
else
{
if ([limitType isEqualToString:kMXErrorResourceLimitExceededLimitTypeMonthlyActiveUserValue])
{
[message appendString:NSLocalizedStringFromTable(@"room_resource_usage_limit_reached_message_1_monthly_active_user", @"Vector", nil)];
[message appendString:[VectorL10n roomResourceUsageLimitReachedMessage1MonthlyActiveUser]];
}
else
{
[message appendString:NSLocalizedStringFromTable(@"room_resource_usage_limit_reached_message_1_default", @"Vector", nil)];
[message appendString:[VectorL10n roomResourceUsageLimitReachedMessage1Default]];
}
message2 = [[NSAttributedString alloc] initWithString:NSLocalizedStringFromTable(@"room_resource_usage_limit_reached_message_2", @"Vector", nil)
message2 = [[NSAttributedString alloc] initWithString:[VectorL10n roomResourceUsageLimitReachedMessage2]
attributes:@{
NSFontAttributeName: [UIFont boldSystemFontOfSize:fontSize],
NSForegroundColorAttributeName: ThemeService.shared.theme.backgroundColor
}];
NSFontAttributeName: [UIFont boldSystemFontOfSize:fontSize],
NSForegroundColorAttributeName: ThemeService.shared.theme.backgroundColor
}];
}
NSDictionary *attributes = @{
@@ -406,16 +401,16 @@
messageContact2LinkAttributes = attributes;
}
NSAttributedString *messageContact1 = [[NSAttributedString alloc] initWithString:NSLocalizedStringFromTable(@"room_resource_limit_exceeded_message_contact_1", @"Vector", nil) attributes:attributes];
NSAttributedString *messageContact2Link = [[NSAttributedString alloc] initWithString:NSLocalizedStringFromTable(@"room_resource_limit_exceeded_message_contact_2_link", @"Vector", nil) attributes:messageContact2LinkAttributes];
NSAttributedString *messageContact1 = [[NSAttributedString alloc] initWithString:[VectorL10n roomResourceLimitExceededMessageContact1] attributes:attributes];
NSAttributedString *messageContact2Link = [[NSAttributedString alloc] initWithString:[VectorL10n roomResourceLimitExceededMessageContact2Link] attributes:messageContact2LinkAttributes];
NSAttributedString *messageContact3;
if (hardLimit)
{
messageContact3 = [[NSAttributedString alloc] initWithString:NSLocalizedStringFromTable(@"room_resource_limit_exceeded_message_contact_3", @"Vector", nil) attributes:attributes];
messageContact3 = [[NSAttributedString alloc] initWithString:[VectorL10n roomResourceLimitExceededMessageContact3] attributes:attributes];
}
else
{
messageContact3 = [[NSAttributedString alloc] initWithString:NSLocalizedStringFromTable(@"room_resource_usage_limit_reached_message_contact_3", @"Vector", nil) attributes:attributes];
messageContact3 = [[NSAttributedString alloc] initWithString:[VectorL10n roomResourceUsageLimitReachedMessageContact3] attributes:attributes];
}
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:message attributes:attributes];
@@ -29,7 +29,7 @@ NSString *const kRoomMembershipExpandedBubbleCellTapOnCollapseButton = @"kRoomMe
{
[super awakeFromNib];
NSString* title = NSLocalizedStringFromTable(@"collapse", @"Vector", nil);
NSString* title = [VectorL10n collapse];
[self.collapseButton setTitle:title forState:UIControlStateNormal];
[self.collapseButton setTitle:title forState:UIControlStateHighlighted];
}
@@ -119,7 +119,7 @@ const CGFloat kComposerContainerTrailingPadding = 12;
[growingTextView becomeFirstResponder];
}
self.attachMediaButton.accessibilityLabel = NSLocalizedStringFromTable(@"room_accessibility_upload", @"Vector", nil);
self.attachMediaButton.accessibilityLabel = [VectorL10n roomAccessibilityUpload];
UIImage *image = [UIImage imageNamed:@"input_text_background"];
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(9, 15, 10, 16)];
@@ -180,7 +180,7 @@ const CGFloat kComposerContainerTrailingPadding = 12;
case RoomInputToolbarViewSendModeReply:
buttonImage = [UIImage imageNamed:@"send_icon"];
self.inputContextImageView.image = [UIImage imageNamed:@"input_reply_icon"];
self.inputContextLabel.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_message_replying_to", @"Vector", nil), self.eventSenderDisplayName];
self.inputContextLabel.text = [VectorL10n roomMessageReplyingTo:self.eventSenderDisplayName];
self.inputContextViewHeightConstraint.constant = kContextBarHeight;
updatedHeight += kContextBarHeight;
@@ -189,7 +189,7 @@ const CGFloat kComposerContainerTrailingPadding = 12;
case RoomInputToolbarViewSendModeEdit:
buttonImage = [UIImage imageNamed:@"save_icon"];
self.inputContextImageView.image = [UIImage imageNamed:@"input_edit_icon"];
self.inputContextLabel.text = NSLocalizedStringFromTable(@"room_message_editing", @"Vector", nil);
self.inputContextLabel.text = [VectorL10n roomMessageEditing];
self.inputContextViewHeightConstraint.constant = kContextBarHeight;
updatedHeight += kContextBarHeight;
@@ -249,11 +249,11 @@ const CGFloat kComposerContainerTrailingPadding = 12;
switch (_sendMode)
{
case RoomInputToolbarViewSendModeReply:
placeholder = NSLocalizedStringFromTable(@"room_message_reply_to_short_placeholder", @"Vector", nil);
placeholder = [VectorL10n roomMessageReplyToShortPlaceholder];
break;
default:
placeholder = NSLocalizedStringFromTable(@"room_message_short_placeholder", @"Vector", nil);
placeholder = [VectorL10n roomMessageShortPlaceholder];
break;
}
}
@@ -264,11 +264,11 @@ const CGFloat kComposerContainerTrailingPadding = 12;
switch (_sendMode)
{
case RoomInputToolbarViewSendModeReply:
placeholder = NSLocalizedStringFromTable(@"encrypted_room_message_reply_to_placeholder", @"Vector", nil);
placeholder = [VectorL10n encryptedRoomMessageReplyToPlaceholder];
break;
default:
placeholder = NSLocalizedStringFromTable(@"encrypted_room_message_placeholder", @"Vector", nil);
placeholder = [VectorL10n encryptedRoomMessagePlaceholder];
break;
}
}
@@ -277,11 +277,11 @@ const CGFloat kComposerContainerTrailingPadding = 12;
switch (_sendMode)
{
case RoomInputToolbarViewSendModeReply:
placeholder = NSLocalizedStringFromTable(@"room_message_reply_to_placeholder", @"Vector", nil);
placeholder = [VectorL10n roomMessageReplyToPlaceholder];
break;
default:
placeholder = NSLocalizedStringFromTable(@"room_message_placeholder", @"Vector", nil);
placeholder = [VectorL10n roomMessagePlaceholder];
break;
}
}
@@ -69,23 +69,23 @@
activeCount ++;
}
}
if (memberCount)
{
// Check whether the logged in user is alone in this room
if (memberCount == 1 && self.mxRoom.summary.membership == MXMembershipJoin)
{
self.roomMembers.text = NSLocalizedStringFromTable(@"room_title_invite_members", @"Vector", nil);
self.roomMembers.text = [VectorL10n roomTitleInviteMembers];
}
else
{
if (activeCount > 1)
{
self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_multiple_active_members", @"Vector", nil), @(activeCount), @(memberCount)];
self.roomMembers.text = [VectorL10n roomTitleMultipleActiveMembers:@(activeCount).stringValue :@(memberCount).stringValue];
}
else
{
self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_one_active_member", @"Vector", nil), @(activeCount), @(memberCount)];
self.roomMembers.text = [VectorL10n roomTitleOneActiveMember:@(activeCount).stringValue :@(memberCount).stringValue];
}
}
}
@@ -38,8 +38,8 @@
self.previewLabel.text = nil;
self.subNoticeLabel.text = nil;
[self.leftButton setTitle:NSLocalizedStringFromTable(@"decline", @"Vector", nil) forState:UIControlStateNormal];
[self.leftButton setTitle:NSLocalizedStringFromTable(@"decline", @"Vector", nil) forState:UIControlStateHighlighted];
[self.leftButton setTitle:[VectorL10n decline] forState:UIControlStateNormal];
[self.leftButton setTitle:[VectorL10n decline] forState:UIControlStateHighlighted];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(reportTapGesture:)];
[tap setNumberOfTouchesRequired:1];
@@ -48,8 +48,8 @@
[self.leftButton addGestureRecognizer:tap];
self.leftButton.userInteractionEnabled = YES;
[self.rightButton setTitle:NSLocalizedStringFromTable(@"join", @"Vector", nil) forState:UIControlStateNormal];
[self.rightButton setTitle:NSLocalizedStringFromTable(@"join", @"Vector", nil) forState:UIControlStateHighlighted];
[self.rightButton setTitle:[VectorL10n join] forState:UIControlStateNormal];
[self.rightButton setTitle:[VectorL10n join] forState:UIControlStateHighlighted];
tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(reportTapGesture:)];
[tap setNumberOfTouchesRequired:1];
@@ -121,11 +121,11 @@
// Joined members count
if (self.roomPreviewData.numJoinedMembers > 1)
{
self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_members", @"Vector", nil), @(self.roomPreviewData.numJoinedMembers)];
self.roomMembers.text = [VectorL10n roomTitleMembers:@(self.roomPreviewData.numJoinedMembers)];
}
else if (self.roomPreviewData.numJoinedMembers == 1)
{
self.roomMembers.text = NSLocalizedStringFromTable(@"room_title_one_member", @"Vector", nil);
self.roomMembers.text = [VectorL10n roomTitleOneMember];
}
else
{
@@ -136,7 +136,7 @@
if (self.roomPreviewData.roomDataSource)
{
// Display the default preview subtitle in case of peeking
self.subNoticeLabel.text = NSLocalizedStringFromTable(@"room_preview_subtitle", @"Vector", nil);
self.subNoticeLabel.text = [VectorL10n roomPreviewSubtitle];
}
else
{
@@ -146,10 +146,10 @@
if (self.roomPreviewData.emailInvitation.email)
{
// The user has been invited to join this room by email
self.previewLabel.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_preview_invitation_format", @"Vector", nil), self.roomPreviewData.emailInvitation.inviterName];
self.previewLabel.text = [VectorL10n roomPreviewInvitationFormat:self.roomPreviewData.emailInvitation.inviterName];
// Warn the user that the email is not bound to his matrix account
self.subNoticeLabel.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_preview_unlinked_email_warning", @"Vector", nil), self.roomPreviewData.emailInvitation.email];
self.subNoticeLabel.text = [VectorL10n roomPreviewUnlinkedEmailWarning:self.roomPreviewData.emailInvitation.email];
}
else
{
@@ -157,7 +157,7 @@
NSString *roomName = self.roomPreviewData.roomName;
if (!roomName)
{
roomName = NSLocalizedStringFromTable(@"room_preview_try_join_an_unknown_room_default", @"Vector", nil);
roomName = [VectorL10n roomPreviewTryJoinAnUnknownRoomDefault];
}
else if (roomName.length > 20)
{
@@ -167,7 +167,7 @@
roomName = [NSString stringWithFormat:@"%@…",[roomName substringToIndex:20]];
}
self.previewLabel.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_preview_try_join_an_unknown_room", @"Vector", nil), roomName];
self.previewLabel.text = [VectorL10n roomPreviewTryJoinAnUnknownRoom:roomName];
}
}
else if (self.mxRoom)
@@ -204,11 +204,11 @@
// {
// if (activeCount > 1)
// {
// self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_multiple_active_members", @"Vector", nil), @(activeCount), @(memberCount)];
// self.roomMembers.text = [VectorL10n roomTitleMultipleActiveMembers:@(activeCount).stringValue :@(memberCount).stringValue];
// }
// else
// {
// self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_one_active_member", @"Vector", nil), @(activeCount), @(memberCount)];
// self.roomMembers.text = [VectorL10n roomTitleOneActiveMember:@(activeCount).stringValue :@(memberCount).stringValue];
// }
// }
// else
@@ -218,7 +218,7 @@
// }
NSString *displayName = [inviter isEqualToString:inviterUserId] ? inviter : [NSString stringWithFormat:@"%@ (%@)", inviter, inviterUserId];
self.previewLabel.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_preview_invitation_format", @"Vector", nil), displayName];
self.previewLabel.text = [VectorL10n roomPreviewInvitationFormat:displayName];
};
[self.mxRoom members:^(MXRoomMembers *roomMembers) {
@@ -112,7 +112,7 @@
self.displayNameTextField.text = self.mxRoom.summary.displayname;
if (!self.displayNameTextField.text.length)
{
self.displayNameTextField.text = [NSBundle mxk_localizedStringForKey:@"room_displayname_empty_room"];
self.displayNameTextField.text = [MatrixKitL10n roomDisplaynameEmptyRoom];
self.displayNameTextField.textColor = ThemeService.shared.theme.textSecondaryColor;
}
else