Use strings from Localazy (#718)

* Adopt strings from Localazy.

* Remove all old Android strings.

* Disable german snapshot tests for now.

* Rebase and add latest strings.
This commit is contained in:
Doug
2023-03-27 18:18:59 +01:00
committed by GitHub
parent 8daa23b27a
commit 2b753b1135
215 changed files with 1911 additions and 118672 deletions
@@ -9,209 +9,82 @@ import Foundation
// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length
// swiftlint:disable nesting type_body_length type_name vertical_whitespace_opening_braces
extension ElementL10n {
/// User menu
public static let a11yAllChatsUserAvatarMenu = ElementL10n.tr("Untranslated", "a11y_all_chats_user_avatar_menu")
/// Confirm
public static let actionConfirm = ElementL10n.tr("Untranslated", "action_confirm")
/// Copy Link
public static let actionCopyLink = ElementL10n.tr("Untranslated", "action_copy_link")
/// Match
public static let actionMatch = ElementL10n.tr("Untranslated", "action_match")
/// Share Link
public static let actionShareLink = ElementL10n.tr("Untranslated", "action_share_link")
/// Attach Screenshot
public static let bugReportScreenAttachScreenshot = ElementL10n.tr("Untranslated", "bug_report_screen_attach_screenshot")
/// Please describe the bug. What did you do? What did you expect to happen? What actually happened. Please go into as much detail as you can.
public static let bugReportScreenDescription = ElementL10n.tr("Untranslated", "bug_report_screen_description")
/// Edit Screenshot
public static let bugReportScreenEditScreenshot = ElementL10n.tr("Untranslated", "bug_report_screen_edit_screenshot")
/// Describe the bug…
public static let bugReportScreenEditorPlaceholder = ElementL10n.tr("Untranslated", "bug_report_screen_editor_placeholder")
/// Send logs to help
public static let bugReportScreenIncludeLogs = ElementL10n.tr("Untranslated", "bug_report_screen_include_logs")
/// To check things work as intended, logs will be sent with your message. These will be private. To just send your message, turn off this setting.
public static let bugReportScreenLogsDescription = ElementL10n.tr("Untranslated", "bug_report_screen_logs_description")
/// Report a bug
public static let bugReportScreenTitle = ElementL10n.tr("Untranslated", "bug_report_screen_title")
/// %@ iOS
public static func defaultSessionDisplayName(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "default_session_display_name", String(describing: p1))
public enum UntranslatedL10n {
/// Help us identify issues and improve %@ by sharing anonymous usage data. To understand how people use multiple devices, we’ll generate a random identifier, shared by your devices.
///
/// You can read all our terms %@.
public static func analyticsOptInContent(_ p1: Any, _ p2: Any) -> String {
return UntranslatedL10n.tr("Untranslated", "analytics_opt_in_content", String(describing: p1), String(describing: p2))
}
/// Welcome to the %@ Beta. Supercharged, for speed and simplicity.
public static func ftueAuthCarouselWelcomeBody(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "ftue_auth_carousel_welcome_body", String(describing: p1))
/// here
public static var analyticsOptInContentLink: String { return UntranslatedL10n.tr("Untranslated", "analytics_opt_in_content_link") }
/// We <b>don't</b> record or profile any account data
public static var analyticsOptInListItem1: String { return UntranslatedL10n.tr("Untranslated", "analytics_opt_in_list_item_1") }
/// We <b>don't</b> share information with third parties
public static var analyticsOptInListItem2: String { return UntranslatedL10n.tr("Untranslated", "analytics_opt_in_list_item_2") }
/// You can turn this off anytime in settings
public static var analyticsOptInListItem3: String { return UntranslatedL10n.tr("Untranslated", "analytics_opt_in_list_item_3") }
/// Help improve %@
public static func analyticsOptInTitle(_ p1: Any) -> String {
return UntranslatedL10n.tr("Untranslated", "analytics_opt_in_title", String(describing: p1))
}
/// Be in your Element
public static let ftueAuthCarouselWelcomeTitle = ElementL10n.tr("Untranslated", "ftue_auth_carousel_welcome_title")
/// Enter your details
public static let ftueAuthSignInEnterDetails = ElementL10n.tr("Untranslated", "ftue_auth_sign_in_enter_details")
/// No
public static let iosNo = ElementL10n.tr("Untranslated", "ios_no")
/// Yes
public static let iosYes = ElementL10n.tr("Untranslated", "ios_yes")
/// Mobile
public static let loginMobileDevice = ElementL10n.tr("Untranslated", "login_mobile_device")
/// Tablet
public static let loginTabletDevice = ElementL10n.tr("Untranslated", "login_tablet_device")
/// Message
public static let message = ElementL10n.tr("Untranslated", "message")
/// %1$@ accepted the invite
public static func noticeRoomInviteAccepted(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomInviteAccepted", String(describing: p1))
/// Clear all data currently stored on this device?
/// Sign in again to access your account data and messages.
public static var softLogoutClearDataDialogContent: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_clear_data_dialog_content") }
/// Clear data
public static var softLogoutClearDataDialogTitle: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_clear_data_dialog_title") }
/// Warning: Your personal data (including encryption keys) is still stored on this device.
///
/// Clear it if you’re finished using this device, or want to sign in to another account.
public static var softLogoutClearDataNotice: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_clear_data_notice") }
/// Clear all data
public static var softLogoutClearDataSubmit: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_clear_data_submit") }
/// Clear personal data
public static var softLogoutClearDataTitle: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_clear_data_title") }
/// Forgot password
public static var softLogoutForgotPassword: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_forgot_password") }
/// Sign in to recover encryption keys stored exclusively on this device. You need them to read all of your secure messages on any device.
public static var softLogoutSigninE2eWarningNotice: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_signin_e2e_warning_notice") }
/// Your homeserver (%1$s) admin has signed you out of your account %2$s (%3$s).
public static func softLogoutSigninNotice(_ p1: UnsafePointer<CChar>, _ p2: UnsafePointer<CChar>, _ p3: UnsafePointer<CChar>) -> String {
return UntranslatedL10n.tr("Untranslated", "soft_logout_signin_notice", p1, p2, p3)
}
/// You accepted the invite
public static let noticeRoomInviteAcceptedByYou = ElementL10n.tr("Untranslated", "noticeRoomInviteAcceptedByYou")
/// %1$@ requested to join
public static func noticeRoomKnock(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomKnock", String(describing: p1))
}
/// %1$@ allowed %2$@ to join
public static func noticeRoomKnockAccepted(_ p1: Any, _ p2: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomKnockAccepted", String(describing: p1), String(describing: p2))
}
/// %1$@ allowed you to join
public static func noticeRoomKnockAcceptedByYou(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomKnockAcceptedByYou", String(describing: p1))
}
/// You requested to join
public static let noticeRoomKnockByYou = ElementL10n.tr("Untranslated", "noticeRoomKnockByYou")
/// %1$@ rejected %2$@'s request to join
public static func noticeRoomKnockDenied(_ p1: Any, _ p2: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomKnockDenied", String(describing: p1), String(describing: p2))
}
/// You rejected %1$@'s request to join
public static func noticeRoomKnockDeniedByYou(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomKnockDeniedByYou", String(describing: p1))
}
/// %1$@ rejected your request to join
public static func noticeRoomKnockDeniedYou(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomKnockDeniedYou", String(describing: p1))
}
/// %1$@ is no longer interested in joining
public static func noticeRoomKnockRetracted(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomKnockRetracted", String(describing: p1))
}
/// You cancelled your request to join
public static let noticeRoomKnockRetractedByYou = ElementL10n.tr("Untranslated", "noticeRoomKnockRetractedByYou")
/// %1$@ made an unknown change to their membership
public static func noticeRoomUnknownMembershipChange(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "noticeRoomUnknownMembershipChange", String(describing: p1))
}
/// Notification
public static let notification = ElementL10n.tr("Untranslated", "Notification")
/// Reporting this message will send it’s unique ‘event ID’ to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.
public static let reportContentInfo = ElementL10n.tr("Untranslated", "report_content_info")
/// Report Submitted
public static let reportContentSubmitted = ElementL10n.tr("Untranslated", "report_content_submitted")
/// An error occurred when trying to start a chat
public static let retrievingDirectRoomError = ElementL10n.tr("Untranslated", "retrieving_direct_room_error")
/// About
public static let roomDetailsAboutSectionTitle = ElementL10n.tr("Untranslated", "room_details_about_section_title")
/// Are you sure that you want to leave this room? You are the only person here. If you leave, no one will be able to join in the future, including you.
public static let roomDetailsLeaveEmptyRoomAlertSubtitle = ElementL10n.tr("Untranslated", "room_details_leave_empty_room_alert_subtitle")
/// Are you sure that you want to leave this room? This room is not public and you will not be able to rejoin without an invite.
public static let roomDetailsLeavePrivateRoomAlertSubtitle = ElementL10n.tr("Untranslated", "room_details_leave_private_room_alert_subtitle")
/// Are you sure that you want to leave the room?
public static let roomDetailsLeaveRoomAlertSubtitle = ElementL10n.tr("Untranslated", "room_details_leave_room_alert_subtitle")
/// Room left
public static let roomDetailsRoomLeftToast = ElementL10n.tr("Untranslated", "room_details_room_left_toast")
/// Info
public static let roomDetailsTitle = ElementL10n.tr("Untranslated", "room_details_title")
/// Block
public static let roomMemberDetailsBlockAlertAction = ElementL10n.tr("Untranslated", "room_member_details_block_alert_action")
/// Blocked users will not be able to send you messages and all message by them will be hidden. You can reverse this action anytime.
public static let roomMemberDetailsBlockAlertDescription = ElementL10n.tr("Untranslated", "room_member_details_block_alert_description")
/// Block user
public static let roomMemberDetailsBlockUser = ElementL10n.tr("Untranslated", "room_member_details_block_user")
/// Unblock
public static let roomMemberDetailsUnblockAlertAction = ElementL10n.tr("Untranslated", "room_member_details_unblock_alert_action")
/// On unblocking the user, you will be able to see all messages by them again.
public static let roomMemberDetailsUnblockAlertDescription = ElementL10n.tr("Untranslated", "room_member_details_unblock_alert_description")
/// Unblock user
public static let roomMemberDetailsUnblockUser = ElementL10n.tr("Untranslated", "room_member_details_unblock_user")
/// Failed loading messages
public static let roomTimelineBackpaginationFailure = ElementL10n.tr("Untranslated", "room_timeline_backpagination_failure")
/// Retry decryption
public static let roomTimelineContextMenuRetryDecryption = ElementL10n.tr("Untranslated", "room_timeline_context_menu_retry_decryption")
/// Editing
public static let roomTimelineEditing = ElementL10n.tr("Untranslated", "room_timeline_editing")
/// GIF
public static let roomTimelineImageGif = ElementL10n.tr("Untranslated", "room_timeline_image_gif")
/// Unsupported event
public static let roomTimelineItemUnsupported = ElementL10n.tr("Untranslated", "room_timeline_item_unsupported")
/// Failed creating the permalink
public static let roomTimelinePermalinkCreationFailure = ElementL10n.tr("Untranslated", "room_timeline_permalink_creation_failure")
/// New
public static let roomTimelineReadMarkerTitle = ElementL10n.tr("Untranslated", "room_timeline_read_marker_title")
/// Replying to %@
public static func roomTimelineReplyingTo(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "room_timeline_replying_to", String(describing: p1))
}
/// %d room changes
public static func roomTimelineStateChanges(_ p1: Int) -> String {
return ElementL10n.tr("Untranslated", "room_timeline_state_changes", p1)
}
/// Bubbles
public static let roomTimelineStyleBubbledLongDescription = ElementL10n.tr("Untranslated", "room_timeline_style_bubbled_long_description")
/// Modern
public static let roomTimelineStylePlainLongDescription = ElementL10n.tr("Untranslated", "room_timeline_style_plain_long_description")
/// Syncing
public static let roomTimelineSyncing = ElementL10n.tr("Untranslated", "room_timeline_syncing")
/// Unable to decrypt
public static let roomTimelineUnableToDecrypt = ElementL10n.tr("Untranslated", "room_timeline_unable_to_decrypt")
/// Would you like to submit a bug report?
public static let screenshotDetectedMessage = ElementL10n.tr("Untranslated", "screenshot_detected_message")
/// You took a screenshot
public static let screenshotDetectedTitle = ElementL10n.tr("Untranslated", "screenshot_detected_title")
/// Sending...
public static let sending = ElementL10n.tr("Untranslated", "sending")
/// You can only connect to an existing server that supports sliding sync. Your homeserver admin will need to configure it. %@
public static func serverSelectionServerFooter(_ p1: Any) -> String {
return ElementL10n.tr("Untranslated", "server_selection_server_footer", String(describing: p1))
}
/// This server currently doesn’t support sliding sync.
public static let serverSelectionSlidingSyncAlertMessage = ElementL10n.tr("Untranslated", "server_selection_sliding_sync_alert_message")
/// Server not supported
public static let serverSelectionSlidingSyncAlertTitle = ElementL10n.tr("Untranslated", "server_selection_sliding_sync_alert_title")
/// Looks like you’re using a new device. Verify it’s you to access your encrypted messages.
public static let sessionVerificationBannerMessage = ElementL10n.tr("Untranslated", "session_verification_banner_message")
/// Access your message history
public static let sessionVerificationBannerTitle = ElementL10n.tr("Untranslated", "session_verification_banner_title")
/// Start
public static let sessionVerificationStart = ElementL10n.tr("Untranslated", "session_verification_start")
/// Appearance
public static let settingsAppearance = ElementL10n.tr("Untranslated", "settings_appearance")
/// Developer options
public static let settingsDeveloperOptions = ElementL10n.tr("Untranslated", "settings_developer_options")
/// Complete verification
public static let settingsSessionVerification = ElementL10n.tr("Untranslated", "settings_session_verification")
/// Message layout
public static let settingsTimelineStyle = ElementL10n.tr("Untranslated", "settings_timeline_style")
/// Sign in
public static var softLogoutSigninTitle: String { return UntranslatedL10n.tr("Untranslated", "soft_logout_signin_title") }
/// Untranslated
public static let untranslated = ElementL10n.tr("Untranslated", "untranslated")
public static var untranslated: String { return UntranslatedL10n.tr("Untranslated", "untranslated") }
/// Plural format key: "%#@VARIABLE@"
public static func untranslatedPlural(_ p1: Int) -> String {
return ElementL10n.tr("Untranslated", "untranslated_plural", p1)
return UntranslatedL10n.tr("Untranslated", "untranslated_plural", p1)
}
/// Confirm that the emojis below match those shown on your other session.
public static let verificationCompareEmojisDetail = ElementL10n.tr("Untranslated", "verification_compare_emojis_detail")
/// Compare emojis
public static let verificationCompareEmojisTitle = ElementL10n.tr("Untranslated", "verification_compare_emojis_title")
/// Verification complete
public static let verificationConclusionOkSelfNoticeTitle = ElementL10n.tr("Untranslated", "verification_conclusion_ok_self_notice_title")
/// Prove it’s you in order to access your encrypted message history.
public static let verificationOpenOtherToVerifyDetail = ElementL10n.tr("Untranslated", "verification_open_other_to_verify_detail")
/// Open an existing session
public static let verificationOpenOtherToVerifyTitle = ElementL10n.tr("Untranslated", "verification_open_other_to_verify_title")
/// Something doesn’t seem right. Either the request timed out or the request was denied.
public static let verificationRequestCancelledDetail = ElementL10n.tr("Untranslated", "verification_request_cancelled_detail")
/// Verification cancelled
public static let verificationRequestCancelledTitle = ElementL10n.tr("Untranslated", "verification_request_cancelled_title")
/// Accept the request to start the verification process in your other session to continue.
public static let verificationRequestWaitingAcceptRequestDetail = ElementL10n.tr("Untranslated", "verification_request_waiting_accept_request_detail")
/// Waiting to accept request
public static let verificationRequestWaitingAcceptRequestTitle = ElementL10n.tr("Untranslated", "verification_request_waiting_accept_request_title")
}
// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length
// swiftlint:enable nesting type_body_length type_name vertical_whitespace_opening_braces
// MARK: - Implementation Details
extension UntranslatedL10n {
static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String {
let languages = Bundle.preferredLanguages
for language in languages {
let translation = trIn(language, table, key, args)
if translation != key {
return translation
}
}
return key
}
private static func trIn(_ language: String, _ table: String, _ key: String, _ args: CVarArg...) -> String {
guard let bundle = Bundle(for: BundleToken.self).lprojBundle(for: language) else {
// no translations for the desired language
return key
}
let format = NSLocalizedString(key, tableName: table, bundle: bundle, comment: "")
return String(format: format, locale: Locale(identifier: language), arguments: args)
}
}
private final class BundleToken {}