mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-10 21:39:12 +00:00
Update permission alerts (#1953)
* Update system alerts * Update localisations * Update localizations
This commit is contained in:
parent
c885585b6b
commit
6e5680fc36
@ -50,7 +50,7 @@
|
||||
"action_no" = "No";
|
||||
"action_not_now" = "Not now";
|
||||
"action_ok" = "OK";
|
||||
"action_open_settings" = "Open settings";
|
||||
"action_open_settings" = "Settings";
|
||||
"action_open_with" = "Open with";
|
||||
"action_quick_reply" = "Quick reply";
|
||||
"action_quote" = "Quote";
|
||||
@ -167,12 +167,17 @@
|
||||
"common_video" = "Video";
|
||||
"common_voice_message" = "Voice message";
|
||||
"common_waiting" = "Waiting…";
|
||||
"common_waiting_for_decryption_key" = "Waiting for decryption key";
|
||||
"common_poll_end_confirmation" = "Are you sure you want to end this poll?";
|
||||
"common_poll_summary" = "Poll: %1$@";
|
||||
"crash_detection_dialog_content" = "%1$@ crashed the last time it was used. Would you like to share a crash report with us?";
|
||||
"dialog_permission_camera" = "In order to let the application use the camera, please grant the permission in the system settings.";
|
||||
"dialog_permission_generic" = "Please grant the permission in the system settings.";
|
||||
"dialog_permission_location_description_ios" = "Grant access in Settings -> Location.";
|
||||
"dialog_permission_location_title_ios" = "%1$@ does not have access to your location.";
|
||||
"dialog_permission_microphone" = "In order to let the application use the microphone, please grant the permission in the system settings.";
|
||||
"dialog_permission_microphone_description_ios" = "Grant access so you can record and send messages with audio.";
|
||||
"dialog_permission_microphone_title_ios" = "%1$@ needs permission to access your microphone.";
|
||||
"dialog_permission_notification" = "In order to let the application display notifications, please grant the permission in the system settings.";
|
||||
"dialog_title_confirmation" = "Confirmation";
|
||||
"dialog_title_warning" = "Warning";
|
||||
@ -414,6 +419,8 @@
|
||||
"screen_recovery_key_confirm_key_placeholder" = "Enter...";
|
||||
"screen_recovery_key_confirm_success" = "Recovery key confirmed";
|
||||
"screen_recovery_key_confirm_title" = "Confirm your recovery key";
|
||||
"screen_recovery_key_copied_to_clipboard" = "Copied recovery key";
|
||||
"screen_recovery_key_generating_key" = "Generating…";
|
||||
"screen_recovery_key_save_action" = "Save recovery key";
|
||||
"screen_recovery_key_save_description" = "Write down your recovery key somewhere safe or save it in a password manager.";
|
||||
"screen_recovery_key_save_key_description" = "Tap to copy recovery key";
|
||||
@ -452,7 +459,8 @@
|
||||
"screen_room_details_room_name_label" = "Room name";
|
||||
"screen_room_details_share_room_title" = "Share room";
|
||||
"screen_room_details_updating_room" = "Updating room…";
|
||||
"screen_room_encrypted_history_banner" = "Message history is currently unavailable in this room";
|
||||
"screen_room_encrypted_history_banner" = "Message history is currently unavailable.";
|
||||
"screen_room_encrypted_history_banner_unverified" = "Message history is unavailable in this room. Verify this device to see your message history.";
|
||||
"screen_room_error_failed_retrieving_user_details" = "Could not retrieve user details";
|
||||
"screen_room_invite_again_alert_message" = "Would you like to invite them back?";
|
||||
"screen_room_invite_again_alert_title" = "You are alone in this chat";
|
||||
@ -521,13 +529,19 @@
|
||||
"screen_signed_out_reason_3" = "Your server’s administrator has invalidated your access";
|
||||
"screen_signed_out_subtitle" = "You might have been signed out for one of the reasons listed below. Please sign in again to continue using %@.";
|
||||
"screen_signed_out_title" = "You’re signed out";
|
||||
"screen_signout_backing_up_subtitle" = "Please wait for this to complete before signing out.";
|
||||
"screen_signout_backing_up_title" = "Your keys are still being backed up";
|
||||
"screen_signout_confirmation_dialog_content" = "Are you sure you want to sign out?";
|
||||
"screen_signout_confirmation_dialog_title" = "Sign out";
|
||||
"screen_signout_in_progress_dialog_content" = "Signing out…";
|
||||
"screen_signout_last_session_subtitle" = "You are about to sign out of your last session. If you sign out now, you might lose access to your encrypted messages.";
|
||||
"screen_signout_last_session_title" = "Have you saved your recovery key?";
|
||||
"screen_signout_key_backup_disabled_subtitle" = "You are about to sign out of your last session. If you sign out now, you will lose access to your encrypted messages.";
|
||||
"screen_signout_key_backup_disabled_title" = "You have turned off backup";
|
||||
"screen_signout_key_backup_offline_subtitle" = "Your keys were still being backed up when you went offline. Reconnect so that your keys can be backed up before signing out.";
|
||||
"screen_signout_key_backup_offline_title" = "Your keys are still being backed up";
|
||||
"screen_signout_key_backup_ongoing_subtitle" = "Please wait for this to complete before signing out.";
|
||||
"screen_signout_key_backup_ongoing_title" = "Your keys are still being backed up";
|
||||
"screen_signout_recovery_disabled_subtitle" = "You are about to sign out of your last session. If you sign out now, you'll lose access to your encrypted messages.";
|
||||
"screen_signout_recovery_disabled_title" = "Recovery not set up";
|
||||
"screen_signout_save_recovery_key_subtitle" = "You are about to sign out of your last session. If you sign out now, you might lose access to your encrypted messages.";
|
||||
"screen_signout_save_recovery_key_title" = "Have you saved your recovery key?";
|
||||
"screen_start_chat_error_starting_chat" = "An error occurred when trying to start a chat";
|
||||
"screen_view_location_title" = "Location";
|
||||
"screen_waitlist_message" = "There's a high demand for %1$@ on %2$@ at the moment. Come back to the app in a few days and try again.\n\nThanks for your patience!";
|
||||
|
@ -120,7 +120,7 @@ public enum L10n {
|
||||
public static var actionNotNow: String { return L10n.tr("Localizable", "action_not_now") }
|
||||
/// OK
|
||||
public static var actionOk: String { return L10n.tr("Localizable", "action_ok") }
|
||||
/// Open settings
|
||||
/// Settings
|
||||
public static var actionOpenSettings: String { return L10n.tr("Localizable", "action_open_settings") }
|
||||
/// Open with
|
||||
public static var actionOpenWith: String { return L10n.tr("Localizable", "action_open_with") }
|
||||
@ -374,6 +374,8 @@ public enum L10n {
|
||||
public static var commonVoiceMessage: String { return L10n.tr("Localizable", "common_voice_message") }
|
||||
/// Waiting…
|
||||
public static var commonWaiting: String { return L10n.tr("Localizable", "common_waiting") }
|
||||
/// Waiting for decryption key
|
||||
public static var commonWaitingForDecryptionKey: String { return L10n.tr("Localizable", "common_waiting_for_decryption_key") }
|
||||
/// %1$@ crashed the last time it was used. Would you like to share a crash report with us?
|
||||
public static func crashDetectionDialogContent(_ p1: Any) -> String {
|
||||
return L10n.tr("Localizable", "crash_detection_dialog_content", String(describing: p1))
|
||||
@ -382,8 +384,20 @@ public enum L10n {
|
||||
public static var dialogPermissionCamera: String { return L10n.tr("Localizable", "dialog_permission_camera") }
|
||||
/// Please grant the permission in the system settings.
|
||||
public static var dialogPermissionGeneric: String { return L10n.tr("Localizable", "dialog_permission_generic") }
|
||||
/// Grant access in Settings -> Location.
|
||||
public static var dialogPermissionLocationDescriptionIos: String { return L10n.tr("Localizable", "dialog_permission_location_description_ios") }
|
||||
/// %1$@ does not have access to your location.
|
||||
public static func dialogPermissionLocationTitleIos(_ p1: Any) -> String {
|
||||
return L10n.tr("Localizable", "dialog_permission_location_title_ios", String(describing: p1))
|
||||
}
|
||||
/// In order to let the application use the microphone, please grant the permission in the system settings.
|
||||
public static var dialogPermissionMicrophone: String { return L10n.tr("Localizable", "dialog_permission_microphone") }
|
||||
/// Grant access so you can record and send messages with audio.
|
||||
public static var dialogPermissionMicrophoneDescriptionIos: String { return L10n.tr("Localizable", "dialog_permission_microphone_description_ios") }
|
||||
/// %1$@ needs permission to access your microphone.
|
||||
public static func dialogPermissionMicrophoneTitleIos(_ p1: Any) -> String {
|
||||
return L10n.tr("Localizable", "dialog_permission_microphone_title_ios", String(describing: p1))
|
||||
}
|
||||
/// In order to let the application display notifications, please grant the permission in the system settings.
|
||||
public static var dialogPermissionNotification: String { return L10n.tr("Localizable", "dialog_permission_notification") }
|
||||
/// Confirmation
|
||||
@ -1002,6 +1016,10 @@ public enum L10n {
|
||||
public static var screenRecoveryKeyConfirmSuccess: String { return L10n.tr("Localizable", "screen_recovery_key_confirm_success") }
|
||||
/// Confirm your recovery key
|
||||
public static var screenRecoveryKeyConfirmTitle: String { return L10n.tr("Localizable", "screen_recovery_key_confirm_title") }
|
||||
/// Copied recovery key
|
||||
public static var screenRecoveryKeyCopiedToClipboard: String { return L10n.tr("Localizable", "screen_recovery_key_copied_to_clipboard") }
|
||||
/// Generating…
|
||||
public static var screenRecoveryKeyGeneratingKey: String { return L10n.tr("Localizable", "screen_recovery_key_generating_key") }
|
||||
/// Save recovery key
|
||||
public static var screenRecoveryKeySaveAction: String { return L10n.tr("Localizable", "screen_recovery_key_save_action") }
|
||||
/// Write down your recovery key somewhere safe or save it in a password manager.
|
||||
@ -1086,8 +1104,10 @@ public enum L10n {
|
||||
public static var screenRoomDetailsTopicTitle: String { return L10n.tr("Localizable", "screen_room_details_topic_title") }
|
||||
/// Updating room…
|
||||
public static var screenRoomDetailsUpdatingRoom: String { return L10n.tr("Localizable", "screen_room_details_updating_room") }
|
||||
/// Message history is currently unavailable in this room
|
||||
/// Message history is currently unavailable.
|
||||
public static var screenRoomEncryptedHistoryBanner: String { return L10n.tr("Localizable", "screen_room_encrypted_history_banner") }
|
||||
/// Message history is unavailable in this room. Verify this device to see your message history.
|
||||
public static var screenRoomEncryptedHistoryBannerUnverified: String { return L10n.tr("Localizable", "screen_room_encrypted_history_banner_unverified") }
|
||||
/// Failed processing media to upload, please try again.
|
||||
public static var screenRoomErrorFailedProcessingMedia: String { return L10n.tr("Localizable", "screen_room_error_failed_processing_media") }
|
||||
/// Could not retrieve user details
|
||||
@ -1238,10 +1258,6 @@ public enum L10n {
|
||||
}
|
||||
/// You’re signed out
|
||||
public static var screenSignedOutTitle: String { return L10n.tr("Localizable", "screen_signed_out_title") }
|
||||
/// Please wait for this to complete before signing out.
|
||||
public static var screenSignoutBackingUpSubtitle: String { return L10n.tr("Localizable", "screen_signout_backing_up_subtitle") }
|
||||
/// Your keys are still being backed up
|
||||
public static var screenSignoutBackingUpTitle: String { return L10n.tr("Localizable", "screen_signout_backing_up_title") }
|
||||
/// Are you sure you want to sign out?
|
||||
public static var screenSignoutConfirmationDialogContent: String { return L10n.tr("Localizable", "screen_signout_confirmation_dialog_content") }
|
||||
/// Sign out
|
||||
@ -1250,12 +1266,28 @@ public enum L10n {
|
||||
public static var screenSignoutConfirmationDialogTitle: String { return L10n.tr("Localizable", "screen_signout_confirmation_dialog_title") }
|
||||
/// Signing out…
|
||||
public static var screenSignoutInProgressDialogContent: String { return L10n.tr("Localizable", "screen_signout_in_progress_dialog_content") }
|
||||
/// You are about to sign out of your last session. If you sign out now, you might lose access to your encrypted messages.
|
||||
public static var screenSignoutLastSessionSubtitle: String { return L10n.tr("Localizable", "screen_signout_last_session_subtitle") }
|
||||
/// Have you saved your recovery key?
|
||||
public static var screenSignoutLastSessionTitle: String { return L10n.tr("Localizable", "screen_signout_last_session_title") }
|
||||
/// You are about to sign out of your last session. If you sign out now, you will lose access to your encrypted messages.
|
||||
public static var screenSignoutKeyBackupDisabledSubtitle: String { return L10n.tr("Localizable", "screen_signout_key_backup_disabled_subtitle") }
|
||||
/// You have turned off backup
|
||||
public static var screenSignoutKeyBackupDisabledTitle: String { return L10n.tr("Localizable", "screen_signout_key_backup_disabled_title") }
|
||||
/// Your keys were still being backed up when you went offline. Reconnect so that your keys can be backed up before signing out.
|
||||
public static var screenSignoutKeyBackupOfflineSubtitle: String { return L10n.tr("Localizable", "screen_signout_key_backup_offline_subtitle") }
|
||||
/// Your keys are still being backed up
|
||||
public static var screenSignoutKeyBackupOfflineTitle: String { return L10n.tr("Localizable", "screen_signout_key_backup_offline_title") }
|
||||
/// Please wait for this to complete before signing out.
|
||||
public static var screenSignoutKeyBackupOngoingSubtitle: String { return L10n.tr("Localizable", "screen_signout_key_backup_ongoing_subtitle") }
|
||||
/// Your keys are still being backed up
|
||||
public static var screenSignoutKeyBackupOngoingTitle: String { return L10n.tr("Localizable", "screen_signout_key_backup_ongoing_title") }
|
||||
/// Sign out
|
||||
public static var screenSignoutPreferenceItem: String { return L10n.tr("Localizable", "screen_signout_preference_item") }
|
||||
/// You are about to sign out of your last session. If you sign out now, you'll lose access to your encrypted messages.
|
||||
public static var screenSignoutRecoveryDisabledSubtitle: String { return L10n.tr("Localizable", "screen_signout_recovery_disabled_subtitle") }
|
||||
/// Recovery not set up
|
||||
public static var screenSignoutRecoveryDisabledTitle: String { return L10n.tr("Localizable", "screen_signout_recovery_disabled_title") }
|
||||
/// You are about to sign out of your last session. If you sign out now, you might lose access to your encrypted messages.
|
||||
public static var screenSignoutSaveRecoveryKeySubtitle: String { return L10n.tr("Localizable", "screen_signout_save_recovery_key_subtitle") }
|
||||
/// Have you saved your recovery key?
|
||||
public static var screenSignoutSaveRecoveryKeyTitle: String { return L10n.tr("Localizable", "screen_signout_save_recovery_key_title") }
|
||||
/// An error occurred when trying to start a chat
|
||||
public static var screenStartChatErrorStartingChat: String { return L10n.tr("Localizable", "screen_start_chat_error_starting_chat") }
|
||||
/// Location
|
||||
|
@ -148,8 +148,8 @@ extension AlertInfo where T == LocationSharingViewError {
|
||||
switch error {
|
||||
case .missingAuthorization:
|
||||
self.init(id: error,
|
||||
title: "",
|
||||
message: L10n.errorMissingLocationAuthIos(InfoPlistReader.main.bundleDisplayName),
|
||||
title: L10n.dialogPermissionLocationTitleIos(InfoPlistReader.main.bundleDisplayName),
|
||||
message: L10n.dialogPermissionLocationDescriptionIos,
|
||||
primaryButton: primaryButton,
|
||||
secondaryButton: secondaryButton)
|
||||
case .mapError(.failedLoadingMap):
|
||||
|
@ -48,7 +48,7 @@ class StaticLocationScreenViewModel: StaticLocationScreenViewModelType, StaticLo
|
||||
let action: () -> Void = { [weak self] in self?.actionsSubject.send(.openSystemSettings) }
|
||||
state.bindings.alertInfo = .init(locationSharingViewError: .missingAuthorization,
|
||||
primaryButton: .init(title: L10n.actionNotNow, role: .cancel, action: nil),
|
||||
secondaryButton: .init(title: L10n.commonSettings, action: action))
|
||||
secondaryButton: .init(title: L10n.actionOpenSettings, action: action))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -954,8 +954,8 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
|
||||
switch error {
|
||||
case .audioRecorderError(.recordPermissionNotGranted):
|
||||
state.bindings.confirmationAlertInfo = .init(id: .init(),
|
||||
title: "",
|
||||
message: L10n.dialogPermissionMicrophone,
|
||||
title: L10n.dialogPermissionMicrophoneTitleIos(InfoPlistReader.main.bundleDisplayName),
|
||||
message: L10n.dialogPermissionMicrophoneDescriptionIos,
|
||||
primaryButton: .init(title: L10n.actionOpenSettings, action: { [weak self] in self?.openSystemSettings() }),
|
||||
secondaryButton: .init(title: L10n.actionNotNow, role: .cancel, action: nil))
|
||||
default:
|
||||
|
@ -67,9 +67,9 @@
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>To take pictures or videos and send them as a message $(APP_DISPLAY_NAME) needs access to the camera.</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>When you share your location to people, $(APP_DISPLAY_NAME) needs access to show them a map.</string>
|
||||
<string>Grant location access so that $(APP_DISPLAY_NAME) can share your location.</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>To take videos with audio and send them as a message $(APP_DISPLAY_NAME) needs access to the microphone.</string>
|
||||
<string>To record and send messages with audio, $(APP_DISPLAY_NAME) needs to access the microphone.</string>
|
||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||
<string>Allows saving photos and videos to your library.</string>
|
||||
<key>NSUserActivityTypes</key>
|
||||
|
@ -84,9 +84,9 @@ targets:
|
||||
INSendMessageIntent
|
||||
]
|
||||
NSCameraUsageDescription: To take pictures or videos and send them as a message $(APP_DISPLAY_NAME) needs access to the camera.
|
||||
NSMicrophoneUsageDescription: To take videos with audio and send them as a message $(APP_DISPLAY_NAME) needs access to the microphone.
|
||||
NSMicrophoneUsageDescription: To record and send messages with audio, $(APP_DISPLAY_NAME) needs to access the microphone.
|
||||
NSPhotoLibraryAddUsageDescription: Allows saving photos and videos to your library.
|
||||
NSLocationWhenInUseUsageDescription: When you share your location to people, $(APP_DISPLAY_NAME) needs access to show them a map.
|
||||
NSLocationWhenInUseUsageDescription: Grant location access so that $(APP_DISPLAY_NAME) can share your location.
|
||||
UIBackgroundModes: [
|
||||
fetch,
|
||||
audio,
|
||||
|
@ -75,7 +75,7 @@ class StaticLocationScreenViewModelTests: XCTestCase {
|
||||
let locationError = AlertInfo(locationSharingViewError: .mapError(.failedLocatingUser))
|
||||
XCTAssertEqual(locationError.message, L10n.errorFailedLocatingUser(InfoPlistReader.main.bundleDisplayName))
|
||||
let authorizationError = AlertInfo(locationSharingViewError: .missingAuthorization)
|
||||
XCTAssertEqual(authorizationError.message, L10n.errorMissingLocationAuthIos(InfoPlistReader.main.bundleDisplayName))
|
||||
XCTAssertEqual(authorizationError.message, L10n.dialogPermissionLocationDescriptionIos)
|
||||
}
|
||||
|
||||
func testSendUserLocation() async throws {
|
||||
|
BIN
UnitTests/__Snapshots__/PreviewTests/test_encryptedHistoryRoomTimelineView.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_encryptedHistoryRoomTimelineView.1.png
(Stored with Git LFS)
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user