From 4aa88d5f296331207971f96929647a3f1b006541 Mon Sep 17 00:00:00 2001 From: Gerson Noboa Date: Fri, 11 Aug 2023 16:07:18 +0300 Subject: [PATCH] Deprecate old strings resources Instead of trying to reuse some old strings, deprecate some other strings, and have them coexist in the same file, I have decided to deprecate the `L10n.swift` class altogether, and create a new one called `Localization.swift`. This allows me to remove that horrible abbreviated name, and also make a clear distinction between old and new. With this, all new strings will just go to the `Localizable.strings` as always, and the `Deprecated.strings` ones shouldn't be used anymore. This was done by adding two `.stencil` files: one that handles adding the `@deprecated` line to the old file, and a new one that handles ignoring all strings that start with `android`. This is because on the new way to do strings, the Android-specific ones will start with `android.`. We could remove these from the file, but this would be manual, some could be missed, and at the moment of this PR, we haven't yet determined how we are going to sync these strings with the strings in the Glia Hub. Finally, the new `Localization.swift` file is `internal`, as opposed to `L10n.swift` which is public. This is because these strings have changed from being the main way to show strings in the widgets, to being a fallback. Now, the Glia Hub will be the main way to pass strings to the widgets, so there's no need to shoot ourselves in the foot, making this public, and then have to worry about deprecations, as we have to do with `L10n.swift`. With this, there's no need to have `L10n+BackwardsCompatibility.swift`, as the new strings and the old ones are separated entities. However, I still need to do a layer that goes between the strings and the rest of the code, for when the strings have functionality that is not present anymore (example, placeholders for values that now just have the direct value in the string). In a year, we can easily remove `L10n.swift` and the associated `.stencil` file. MOB-2529 --- GliaWidgets.xcodeproj/project.pbxproj | 30 +- GliaWidgets/L10n.swift | 590 ++++++++---------- GliaWidgets/Localization.swift | 573 +++++++++++++++++ .../L10n+BackwardsCompatibility.swift | 364 ----------- .../Resources/en.lproj/Deprecated.strings | 273 ++++++++ .../Resources/en.lproj/Localizable.strings | 267 +++++--- swiftgen-strings.stencil | 113 ++++ swiftgen.yml | 14 +- 8 files changed, 1432 insertions(+), 792 deletions(-) create mode 100644 GliaWidgets/Localization.swift delete mode 100644 GliaWidgets/Resources/L10n+BackwardsCompatibility.swift create mode 100644 GliaWidgets/Resources/en.lproj/Deprecated.strings create mode 100644 swiftgen-strings.stencil diff --git a/GliaWidgets.xcodeproj/project.pbxproj b/GliaWidgets.xcodeproj/project.pbxproj index 357b1cf65..fd960d95b 100644 --- a/GliaWidgets.xcodeproj/project.pbxproj +++ b/GliaWidgets.xcodeproj/project.pbxproj @@ -98,7 +98,7 @@ 1A60AF93256674F900E53F53 /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A60AF92256674F900E53F53 /* Color.swift */; }; 1A60AF96256675C400E53F53 /* UIColor+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A60AF95256675C400E53F53 /* UIColor+Extensions.swift */; }; 1A60AFA325667EA300E53F53 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1A60AFA225667EA300E53F53 /* Assets.xcassets */; }; - 1A60AFAA2566806000E53F53 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1A60AFAC2566806000E53F53 /* Localizable.strings */; }; + 1A60AFAA2566806000E53F53 /* Deprecated.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1A60AFAC2566806000E53F53 /* Deprecated.strings */; }; 1A60AFAF256680EF00E53F53 /* L10n.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A60AFAE256680EF00E53F53 /* L10n.swift */; }; 1A60AFB22566821B00E53F53 /* Asset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A60AFB12566821B00E53F53 /* Asset.swift */; }; 1A60AFB62566825400E53F53 /* ViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A60AFB52566825400E53F53 /* ViewModel.swift */; }; @@ -196,9 +196,10 @@ 3197F7B829F7C318008EE9F7 /* SecureConversations.CommonEngagementModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3197F7B729F7C318008EE9F7 /* SecureConversations.CommonEngagementModel.swift */; }; 31D286AD2A00DD2C009192A6 /* SecureConversations.ConfirmationViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31D286AC2A00DD2C009192A6 /* SecureConversations.ConfirmationViewModelTests.swift */; }; 31D286AF2A00DE2B009192A6 /* SecureConversations.ConfirmationViewModel.Mock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31D286AE2A00DE2B009192A6 /* SecureConversations.ConfirmationViewModel.Mock.swift */; }; - 31D3AAEE2A77ED53004451CF /* L10n+BackwardsCompatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31D3AAED2A77ED53004451CF /* L10n+BackwardsCompatibility.swift */; }; 31DB0C01287C2EFC00FB288E /* StaticValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31DB0C00287C2EFC00FB288E /* StaticValues.swift */; }; 31DD41652A57105400F92612 /* SecureConversations.TranscriptModel.Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31DD41642A57105400F92612 /* SecureConversations.TranscriptModel.Environment.swift */; }; + 31E35AB82A852C09006EC7FB /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 31E35AB62A852C09006EC7FB /* Localizable.strings */; }; + 31E35ABA2A8648E9006EC7FB /* Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31E35AB92A8648E9006EC7FB /* Localization.swift */; }; 6B2BFCE2274297F100B68506 /* SettingsSwitchCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B2BFCE1274297F100B68506 /* SettingsSwitchCell.swift */; }; 6B48213E2735873300F2900A /* Feature.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B48213D2735873300F2900A /* Feature.swift */; }; 6E60DD5627146C9D001422EF /* AlertViewController+SingleAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E60DD5527146C9D001422EF /* AlertViewController+SingleAction.swift */; }; @@ -794,7 +795,7 @@ 1A60AF92256674F900E53F53 /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; }; 1A60AF95256675C400E53F53 /* UIColor+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Extensions.swift"; sourceTree = ""; }; 1A60AFA225667EA300E53F53 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 1A60AFAB2566806000E53F53 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 1A60AFAB2566806000E53F53 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Deprecated.strings; sourceTree = ""; }; 1A60AFAE256680EF00E53F53 /* L10n.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = L10n.swift; sourceTree = ""; }; 1A60AFB12566821B00E53F53 /* Asset.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Asset.swift; sourceTree = ""; }; 1A60AFB52566825400E53F53 /* ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModel.swift; sourceTree = ""; }; @@ -895,9 +896,10 @@ 3197F7B729F7C318008EE9F7 /* SecureConversations.CommonEngagementModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureConversations.CommonEngagementModel.swift; sourceTree = ""; }; 31D286AC2A00DD2C009192A6 /* SecureConversations.ConfirmationViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureConversations.ConfirmationViewModelTests.swift; sourceTree = ""; }; 31D286AE2A00DE2B009192A6 /* SecureConversations.ConfirmationViewModel.Mock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureConversations.ConfirmationViewModel.Mock.swift; sourceTree = ""; }; - 31D3AAED2A77ED53004451CF /* L10n+BackwardsCompatibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "L10n+BackwardsCompatibility.swift"; sourceTree = ""; }; 31DB0C00287C2EFC00FB288E /* StaticValues.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticValues.swift; sourceTree = ""; }; 31DD41642A57105400F92612 /* SecureConversations.TranscriptModel.Environment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureConversations.TranscriptModel.Environment.swift; sourceTree = ""; }; + 31E35AB72A852C09006EC7FB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 31E35AB92A8648E9006EC7FB /* Localization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Localization.swift; sourceTree = ""; }; 6304CD1CAD1108C78C7B11BF /* Pods-GliaWidgetsTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GliaWidgetsTests.release.xcconfig"; path = "Target Support Files/Pods-GliaWidgetsTests/Pods-GliaWidgetsTests.release.xcconfig"; sourceTree = ""; }; 6B2BFCE1274297F100B68506 /* SettingsSwitchCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsSwitchCell.swift; sourceTree = ""; }; 6B48213D2735873300F2900A /* Feature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Feature.swift; sourceTree = ""; }; @@ -1587,6 +1589,7 @@ 1A205D5B25655CB1003AA3CD /* GliaWidgets.h */, 1A205D5C25655CB1003AA3CD /* Info.plist */, 1A60AFAE256680EF00E53F53 /* L10n.swift */, + 31E35AB92A8648E9006EC7FB /* Localization.swift */, 31DB0C00287C2EFC00FB288E /* StaticValues.swift */, ); path = GliaWidgets; @@ -1925,8 +1928,8 @@ isa = PBXGroup; children = ( 1A60AFA225667EA300E53F53 /* Assets.xcassets */, - 1A60AFAC2566806000E53F53 /* Localizable.strings */, - 31D3AAED2A77ED53004451CF /* L10n+BackwardsCompatibility.swift */, + 31E35AB62A852C09006EC7FB /* Localizable.strings */, + 1A60AFAC2566806000E53F53 /* Deprecated.strings */, ); path = Resources; sourceTree = ""; @@ -3784,7 +3787,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1A60AFAA2566806000E53F53 /* Localizable.strings in Resources */, + 1A60AFAA2566806000E53F53 /* Deprecated.strings in Resources */, + 31E35AB82A852C09006EC7FB /* Localizable.strings in Resources */, 1A60AFA325667EA300E53F53 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -4191,7 +4195,6 @@ 1A4674A725E905AC0078FA1C /* AttachmentSourceListView.swift in Sources */, 75B7BD792A39D12B0060794D /* Button.swift in Sources */, 9A19926C27D3BA8700161AAE /* ViewFactory.Mock.swift in Sources */, - 31D3AAEE2A77ED53004451CF /* L10n+BackwardsCompatibility.swift in Sources */, 1A60B02D256BF7FF00E53F53 /* OperatorChatMessageView.swift in Sources */, C43C12F92694B14900C37E1B /* GliaPresenter.swift in Sources */, 1A0452F025DBE268000DA0C1 /* MessageButtonStyle.swift in Sources */, @@ -4371,6 +4374,7 @@ C0D2F06B29A4DAA000803B47 /* VideoCallViewMock.swift in Sources */, 1AFB1E6225F7AE1300CA460D /* ChatEngagementFile.swift in Sources */, 84681A9D2A669DB500DD7406 /* QuickReplyButtonCell.swift in Sources */, + 31E35ABA2A8648E9006EC7FB /* Localization.swift in Sources */, 3100EEF2293E214B00D57F71 /* SecureConversations.Coordinator.swift in Sources */, 1AA738AE2578E0D500E1120F /* ConnectAnimationView.swift in Sources */, 754CC61627E2816F005676E9 /* Survey.InputQuestionView.swift in Sources */, @@ -4725,11 +4729,19 @@ name = LaunchScreen.storyboard; sourceTree = ""; }; - 1A60AFAC2566806000E53F53 /* Localizable.strings */ = { + 1A60AFAC2566806000E53F53 /* Deprecated.strings */ = { isa = PBXVariantGroup; children = ( 1A60AFAB2566806000E53F53 /* en */, ); + name = Deprecated.strings; + sourceTree = ""; + }; + 31E35AB62A852C09006EC7FB /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 31E35AB72A852C09006EC7FB /* en */, + ); name = Localizable.strings; sourceTree = ""; }; diff --git a/GliaWidgets/L10n.swift b/GliaWidgets/L10n.swift index ff96893ee..84c860500 100644 --- a/GliaWidgets/L10n.swift +++ b/GliaWidgets/L10n.swift @@ -9,488 +9,490 @@ 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 + +@available(*, deprecated) public enum L10n { /// This action is not currently supported on mobile - public static let gvaNotSupported = L10n.tr("Localizable", "gva.error_unsupported", fallback: "This action is not currently supported on mobile") + public static let gvaNotSupported = L10n.tr("Deprecated", "gva.error_unsupported", fallback: "This action is not currently supported on mobile") /// Operator - public static let `operator` = L10n.tr("Localizable", "operator", fallback: "Operator") + public static let `operator` = L10n.tr("Deprecated", "operator", fallback: "Operator") /// Powered by - public static let poweredBy = L10n.tr("Localizable", "poweredBy", fallback: "Powered by") + public static let poweredBy = L10n.tr("Deprecated", "poweredBy", fallback: "Powered by") public enum Alert { public enum Accessibility { public enum Action { /// Accept - public static let accept = L10n.tr("Localizable", "alert.accessibility.action.accept", fallback: "Accept") + public static let accept = L10n.tr("Deprecated", "alert.accessibility.action.accept", fallback: "Accept") /// Cancel - public static let cancel = L10n.tr("Localizable", "alert.accessibility.action.cancel", fallback: "Cancel") + public static let cancel = L10n.tr("Deprecated", "alert.accessibility.action.cancel", fallback: "Cancel") /// Decline - public static let decline = L10n.tr("Localizable", "alert.accessibility.action.decline", fallback: "Decline") + public static let decline = L10n.tr("Deprecated", "alert.accessibility.action.decline", fallback: "Decline") /// No - public static let no = L10n.tr("Localizable", "alert.accessibility.action.no", fallback: "No") + public static let no = L10n.tr("Deprecated", "alert.accessibility.action.no", fallback: "No") /// OK - public static let ok = L10n.tr("Localizable", "alert.accessibility.action.ok", fallback: "OK") + public static let ok = L10n.tr("Deprecated", "alert.accessibility.action.ok", fallback: "OK") /// Settings - public static let settings = L10n.tr("Localizable", "alert.accessibility.action.settings", fallback: "Settings") + public static let settings = L10n.tr("Deprecated", "alert.accessibility.action.settings", fallback: "Settings") /// Yes - public static let yes = L10n.tr("Localizable", "alert.accessibility.action.yes", fallback: "Yes") + public static let yes = L10n.tr("Deprecated", "alert.accessibility.action.yes", fallback: "Yes") } } public enum Action { /// Accept - public static let accept = L10n.tr("Localizable", "alert.action.accept", fallback: "Accept") + public static let accept = L10n.tr("Deprecated", "alert.action.accept", fallback: "Accept") /// Cancel - public static let cancel = L10n.tr("Localizable", "alert.action.cancel", fallback: "Cancel") + public static let cancel = L10n.tr("Deprecated", "alert.action.cancel", fallback: "Cancel") /// Decline - public static let decline = L10n.tr("Localizable", "alert.action.decline", fallback: "Decline") + public static let decline = L10n.tr("Deprecated", "alert.action.decline", fallback: "Decline") /// No - public static let no = L10n.tr("Localizable", "alert.action.no", fallback: "No") + public static let no = L10n.tr("Deprecated", "alert.action.no", fallback: "No") /// OK - public static let ok = L10n.tr("Localizable", "alert.action.ok", fallback: "OK") + public static let ok = L10n.tr("Deprecated", "alert.action.ok", fallback: "OK") /// Settings - public static let settings = L10n.tr("Localizable", "alert.action.settings", fallback: "Settings") + public static let settings = L10n.tr("Deprecated", "alert.action.settings", fallback: "Settings") /// Yes - public static let yes = L10n.tr("Localizable", "alert.action.yes", fallback: "Yes") + public static let yes = L10n.tr("Deprecated", "alert.action.yes", fallback: "Yes") } public enum ApiError { /// {message} - public static let message = L10n.tr("Localizable", "alert.apiError.message", fallback: "{message}") + public static let message = L10n.tr("Deprecated", "alert.apiError.message", fallback: "{message}") /// We're sorry, there has been an error. - public static let title = L10n.tr("Localizable", "alert.apiError.title", fallback: "We're sorry, there has been an error.") + public static let title = L10n.tr("Deprecated", "alert.apiError.title", fallback: "We're sorry, there has been an error.") } public enum AudioUpgrade { /// {operatorName} has offered you to upgrade to audio - public static let title = L10n.tr("Localizable", "alert.audioUpgrade.title", fallback: "{operatorName} has offered you to upgrade to audio") + public static let title = L10n.tr("Deprecated", "alert.audioUpgrade.title", fallback: "{operatorName} has offered you to upgrade to audio") } public enum CameraPermission { /// Allow access to your camera from device menu: “Settings” - “Privacy” - “Camera” - public static let message = L10n.tr("Localizable", "alert.cameraPermission.message", fallback: "Allow access to your camera from device menu: “Settings” - “Privacy” - “Camera”") + public static let message = L10n.tr("Deprecated", "alert.cameraPermission.message", fallback: "Allow access to your camera from device menu: “Settings” - “Privacy” - “Camera”") /// Unable to access camera - public static let title = L10n.tr("Localizable", "alert.cameraPermission.title", fallback: "Unable to access camera") + public static let title = L10n.tr("Deprecated", "alert.cameraPermission.title", fallback: "Unable to access camera") } public enum EndEngagement { /// Are you sure you want to end engagement? - public static let message = L10n.tr("Localizable", "alert.endEngagement.message", fallback: "Are you sure you want to end engagement?") + public static let message = L10n.tr("Deprecated", "alert.endEngagement.message", fallback: "Are you sure you want to end engagement?") /// End Engagement? - public static let title = L10n.tr("Localizable", "alert.endEngagement.title", fallback: "End Engagement?") + public static let title = L10n.tr("Deprecated", "alert.endEngagement.title", fallback: "End Engagement?") } public enum LeaveQueue { /// You will lose your place in the queue. - public static let message = L10n.tr("Localizable", "alert.leaveQueue.message", fallback: "You will lose your place in the queue.") + public static let message = L10n.tr("Deprecated", "alert.leaveQueue.message", fallback: "You will lose your place in the queue.") /// Are you sure you want to leave? - public static let title = L10n.tr("Localizable", "alert.leaveQueue.title", fallback: "Are you sure you want to leave?") + public static let title = L10n.tr("Deprecated", "alert.leaveQueue.title", fallback: "Are you sure you want to leave?") } public enum MediaSourceNotAvailable { /// This media source is not available on your device - public static let message = L10n.tr("Localizable", "alert.mediaSourceNotAvailable.message", fallback: "This media source is not available on your device") + public static let message = L10n.tr("Deprecated", "alert.mediaSourceNotAvailable.message", fallback: "This media source is not available on your device") /// Unable to access media source - public static let title = L10n.tr("Localizable", "alert.mediaSourceNotAvailable.title", fallback: "Unable to access media source") + public static let title = L10n.tr("Deprecated", "alert.mediaSourceNotAvailable.title", fallback: "Unable to access media source") } public enum MediaUpgrade { /// {operatorName} has offered you to upgrade - public static let title = L10n.tr("Localizable", "alert.mediaUpgrade.title", fallback: "{operatorName} has offered you to upgrade") + public static let title = L10n.tr("Deprecated", "alert.mediaUpgrade.title", fallback: "{operatorName} has offered you to upgrade") public enum Audio { /// Speak through your device - public static let info = L10n.tr("Localizable", "alert.mediaUpgrade.audio.info", fallback: "Speak through your device") + public static let info = L10n.tr("Deprecated", "alert.mediaUpgrade.audio.info", fallback: "Speak through your device") /// Audio - public static let title = L10n.tr("Localizable", "alert.mediaUpgrade.audio.title", fallback: "Audio") + public static let title = L10n.tr("Deprecated", "alert.mediaUpgrade.audio.title", fallback: "Audio") } public enum Phone { /// Enter your number and we'll call you - public static let info = L10n.tr("Localizable", "alert.mediaUpgrade.phone.info", fallback: "Enter your number and we'll call you") + public static let info = L10n.tr("Deprecated", "alert.mediaUpgrade.phone.info", fallback: "Enter your number and we'll call you") /// Phone - public static let title = L10n.tr("Localizable", "alert.mediaUpgrade.phone.title", fallback: "Phone") + public static let title = L10n.tr("Deprecated", "alert.mediaUpgrade.phone.title", fallback: "Phone") } } public enum MicrophonePermission { /// Allow access to your microphone from device menu: “Settings” - “Privacy” - “Microphone” - public static let message = L10n.tr("Localizable", "alert.microphonePermission.message", fallback: "Allow access to your microphone from device menu: “Settings” - “Privacy” - “Microphone”") + public static let message = L10n.tr("Deprecated", "alert.microphonePermission.message", fallback: "Allow access to your microphone from device menu: “Settings” - “Privacy” - “Microphone”") /// Unable to access microphone - public static let title = L10n.tr("Localizable", "alert.microphonePermission.title", fallback: "Unable to access microphone") + public static let title = L10n.tr("Deprecated", "alert.microphonePermission.title", fallback: "Unable to access microphone") } public enum OperatorEndedEngagement { /// This engagement has ended. /// Thank you! - public static let message = L10n.tr("Localizable", "alert.operatorEndedEngagement.message", fallback: "This engagement has ended.\nThank you!") + public static let message = L10n.tr("Deprecated", "alert.operatorEndedEngagement.message", fallback: "This engagement has ended.\nThank you!") /// Engagement Ended - public static let title = L10n.tr("Localizable", "alert.operatorEndedEngagement.title", fallback: "Engagement Ended") + public static let title = L10n.tr("Deprecated", "alert.operatorEndedEngagement.title", fallback: "Engagement Ended") } public enum OperatorsUnavailable { /// Operators are no longer available. /// Please try again later. - public static let message = L10n.tr("Localizable", "alert.operatorsUnavailable.message", fallback: "Operators are no longer available.\nPlease try again later.") + public static let message = L10n.tr("Deprecated", "alert.operatorsUnavailable.message", fallback: "Operators are no longer available.\nPlease try again later.") /// We're sorry - public static let title = L10n.tr("Localizable", "alert.operatorsUnavailable.title", fallback: "We're sorry") + public static let title = L10n.tr("Deprecated", "alert.operatorsUnavailable.title", fallback: "We're sorry") } public enum ScreenSharing { public enum Start { /// {operatorName} would like to see the screen of your device - public static let message = L10n.tr("Localizable", "alert.screenSharing.start.message", fallback: "{operatorName} would like to see the screen of your device") + public static let message = L10n.tr("Deprecated", "alert.screenSharing.start.message", fallback: "{operatorName} would like to see the screen of your device") /// {operatorName} has asked you to share your screen - public static let title = L10n.tr("Localizable", "alert.screenSharing.start.title", fallback: "{operatorName} has asked you to share your screen") + public static let title = L10n.tr("Deprecated", "alert.screenSharing.start.title", fallback: "{operatorName} has asked you to share your screen") } public enum Stop { /// Are you sure you want to stop sharing your screen? - public static let message = L10n.tr("Localizable", "alert.screenSharing.stop.message", fallback: "Are you sure you want to stop sharing your screen?") + public static let message = L10n.tr("Deprecated", "alert.screenSharing.stop.message", fallback: "Are you sure you want to stop sharing your screen?") /// Stop screen sharing? - public static let title = L10n.tr("Localizable", "alert.screenSharing.stop.title", fallback: "Stop screen sharing?") + public static let title = L10n.tr("Deprecated", "alert.screenSharing.stop.title", fallback: "Stop screen sharing?") } } public enum UnavailableMessageCenter { /// The Message Center is currently unavailable. Please try again later. - public static let message = L10n.tr("Localizable", "alert.unavailableMessageCenter.message", fallback: "The Message Center is currently unavailable. Please try again later.") + public static let message = L10n.tr("Deprecated", "alert.unavailableMessageCenter.message", fallback: "The Message Center is currently unavailable. Please try again later.") /// We could not verify your authentication status. - public static let notAuthenticatedMessage = L10n.tr("Localizable", "alert.unavailableMessageCenter.notAuthenticatedMessage", fallback: "We could not verify your authentication status.") + public static let notAuthenticatedMessage = L10n.tr("Deprecated", "alert.unavailableMessageCenter.notAuthenticatedMessage", fallback: "We could not verify your authentication status.") /// Message Center Unavailable - public static let title = L10n.tr("Localizable", "alert.unavailableMessageCenter.title", fallback: "Message Center Unavailable") + public static let title = L10n.tr("Deprecated", "alert.unavailableMessageCenter.title", fallback: "Message Center Unavailable") } public enum Unexpected { /// Please try again later. - public static let message = L10n.tr("Localizable", "alert.unexpected.message", fallback: "Please try again later.") + public static let message = L10n.tr("Deprecated", "alert.unexpected.message", fallback: "Please try again later.") /// We're sorry, there has been an unexpected error. - public static let title = L10n.tr("Localizable", "alert.unexpected.title", fallback: "We're sorry, there has been an unexpected error.") + public static let title = L10n.tr("Deprecated", "alert.unexpected.title", fallback: "We're sorry, there has been an unexpected error.") } public enum VideoUpgrade { public enum OneWay { /// {operatorName} has offered you to see their video - public static let title = L10n.tr("Localizable", "alert.videoUpgrade.oneWay.title", fallback: "{operatorName} has offered you to see their video") + public static let title = L10n.tr("Deprecated", "alert.videoUpgrade.oneWay.title", fallback: "{operatorName} has offered you to see their video") } public enum TwoWay { /// {operatorName} has offered you to upgrade to video - public static let title = L10n.tr("Localizable", "alert.videoUpgrade.twoWay.title", fallback: "{operatorName} has offered you to upgrade to video") + public static let title = L10n.tr("Deprecated", "alert.videoUpgrade.twoWay.title", fallback: "{operatorName} has offered you to upgrade to video") } } public enum VisitorCode { /// Your Visitor Code - public static let title = L10n.tr("Localizable", "alert.visitorCode.title", fallback: "Your Visitor Code") + public static let title = L10n.tr("Deprecated", "alert.visitorCode.title", fallback: "Your Visitor Code") } } public enum Call { /// You can continue browsing and we’ll connect you automatically. - public static let bottomText = L10n.tr("Localizable", "call.bottomText", fallback: "You can continue browsing and we’ll connect you automatically.") + public static let bottomText = L10n.tr("Deprecated", "call.bottomText", fallback: "You can continue browsing and we’ll connect you automatically.") /// (By default your video will be off) - public static let topText = L10n.tr("Localizable", "call.topText", fallback: "(By default your video will be off)") + public static let topText = L10n.tr("Deprecated", "call.topText", fallback: "(By default your video will be off)") public enum Accessibility { public enum Bubble { /// Deactivates minimize. - public static let hint = L10n.tr("Localizable", "call.accessibility.bubble.hint", fallback: "Deactivates minimize.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.bubble.hint", fallback: "Deactivates minimize.") /// Operator Avatar - public static let label = L10n.tr("Localizable", "call.accessibility.bubble.label", fallback: "Operator Avatar") + public static let label = L10n.tr("Deprecated", "call.accessibility.bubble.label", fallback: "Operator Avatar") } public enum Buttons { public enum Chat { /// {buttonTitle}, {badgeValue} - public static let titleAndBadgeValue = L10n.tr("Localizable", "call.accessibility.buttons.chat.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") + public static let titleAndBadgeValue = L10n.tr("Deprecated", "call.accessibility.buttons.chat.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") public enum Active { /// Selected - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.chat.active.label", fallback: "Selected") + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.chat.active.label", fallback: "Selected") } public enum BadgeValue { /// {badgeValue} unread messages - public static let multipleItems = L10n.tr("Localizable", "call.accessibility.buttons.chat.badgeValue.multipleItems", fallback: "{badgeValue} unread messages") + public static let multipleItems = L10n.tr("Deprecated", "call.accessibility.buttons.chat.badgeValue.multipleItems", fallback: "{badgeValue} unread messages") /// {badgeValue} unread message - public static let singleItem = L10n.tr("Localizable", "call.accessibility.buttons.chat.badgeValue.singleItem", fallback: "{badgeValue} unread message") + public static let singleItem = L10n.tr("Deprecated", "call.accessibility.buttons.chat.badgeValue.singleItem", fallback: "{badgeValue} unread message") } public enum Inactive { - /// - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.chat.inactive.label", fallback: "") + /// + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.chat.inactive.label", fallback: "") } } public enum Minimize { /// {buttonTitle}, {badgeValue} - public static let titleAndBadgeValue = L10n.tr("Localizable", "call.accessibility.buttons.minimize.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") + public static let titleAndBadgeValue = L10n.tr("Deprecated", "call.accessibility.buttons.minimize.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") public enum Active { /// Selected - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.minimize.active.label", fallback: "Selected") + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.minimize.active.label", fallback: "Selected") } public enum BadgeValue { - /// - public static let multipleItems = L10n.tr("Localizable", "call.accessibility.buttons.minimize.badgeValue.multipleItems", fallback: "") - /// - public static let singleItem = L10n.tr("Localizable", "call.accessibility.buttons.minimize.badgeValue.singleItem", fallback: "") + /// + public static let multipleItems = L10n.tr("Deprecated", "call.accessibility.buttons.minimize.badgeValue.multipleItems", fallback: "") + /// + public static let singleItem = L10n.tr("Deprecated", "call.accessibility.buttons.minimize.badgeValue.singleItem", fallback: "") } public enum Inactive { - /// - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.minimize.inactive.label", fallback: "") + /// + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.minimize.inactive.label", fallback: "") } } public enum Mute { /// {buttonTitle}, {badgeValue} - public static let titleAndBadgeValue = L10n.tr("Localizable", "call.accessibility.buttons.mute.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") + public static let titleAndBadgeValue = L10n.tr("Deprecated", "call.accessibility.buttons.mute.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") public enum Active { /// Selected - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.mute.active.label", fallback: "Selected") + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.mute.active.label", fallback: "Selected") } public enum BadgeValue { - /// - public static let multipleItems = L10n.tr("Localizable", "call.accessibility.buttons.mute.badgeValue.multipleItems", fallback: "") - /// - public static let singleItem = L10n.tr("Localizable", "call.accessibility.buttons.mute.badgeValue.singleItem", fallback: "") + /// + public static let multipleItems = L10n.tr("Deprecated", "call.accessibility.buttons.mute.badgeValue.multipleItems", fallback: "") + /// + public static let singleItem = L10n.tr("Deprecated", "call.accessibility.buttons.mute.badgeValue.singleItem", fallback: "") } public enum Inactive { - /// - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.mute.inactive.label", fallback: "") + /// + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.mute.inactive.label", fallback: "") } } public enum Speaker { /// {buttonTitle}, {badgeValue} - public static let titleAndBadgeValue = L10n.tr("Localizable", "call.accessibility.buttons.speaker.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") + public static let titleAndBadgeValue = L10n.tr("Deprecated", "call.accessibility.buttons.speaker.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") public enum Active { /// Selected - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.speaker.active.label", fallback: "Selected") + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.speaker.active.label", fallback: "Selected") } public enum BadgeValue { - /// - public static let multipleItems = L10n.tr("Localizable", "call.accessibility.buttons.speaker.badgeValue.multipleItems", fallback: "") - /// - public static let singleItem = L10n.tr("Localizable", "call.accessibility.buttons.speaker.badgeValue.singleItem", fallback: "") + /// + public static let multipleItems = L10n.tr("Deprecated", "call.accessibility.buttons.speaker.badgeValue.multipleItems", fallback: "") + /// + public static let singleItem = L10n.tr("Deprecated", "call.accessibility.buttons.speaker.badgeValue.singleItem", fallback: "") } public enum Inactive { - /// - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.speaker.inactive.label", fallback: "") + /// + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.speaker.inactive.label", fallback: "") } } public enum Video { /// {buttonTitle}, {badgeValue} - public static let titleAndBadgeValue = L10n.tr("Localizable", "call.accessibility.buttons.video.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") + public static let titleAndBadgeValue = L10n.tr("Deprecated", "call.accessibility.buttons.video.titleAndBadgeValue", fallback: "{buttonTitle}, {badgeValue}") public enum Active { /// Selected - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.video.active.label", fallback: "Selected") + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.video.active.label", fallback: "Selected") } public enum BadgeValue { - /// - public static let multipleItems = L10n.tr("Localizable", "call.accessibility.buttons.video.badgeValue.multipleItems", fallback: "") - /// - public static let singleItem = L10n.tr("Localizable", "call.accessibility.buttons.video.badgeValue.singleItem", fallback: "") + /// + public static let multipleItems = L10n.tr("Deprecated", "call.accessibility.buttons.video.badgeValue.multipleItems", fallback: "") + /// + public static let singleItem = L10n.tr("Deprecated", "call.accessibility.buttons.video.badgeValue.singleItem", fallback: "") } public enum Inactive { - /// - public static let label = L10n.tr("Localizable", "call.accessibility.buttons.video.inactive.label", fallback: "") + /// + public static let label = L10n.tr("Deprecated", "call.accessibility.buttons.video.inactive.label", fallback: "") } } } public enum CallDuration { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "call.accessibility.callDuration.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.callDuration.hint", fallback: "Displays call duration.") } public enum Connect { public enum Connected { public enum FirstText { /// Displays operator name. - public static let hint = L10n.tr("Localizable", "call.accessibility.connect.connected.firstText.hint", fallback: "Displays operator name.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.connect.connected.firstText.hint", fallback: "Displays operator name.") } public enum SecondText { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "call.accessibility.connect.connected.secondText.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.connect.connected.secondText.hint", fallback: "Displays call duration.") } } public enum Connecting { public enum FirstText { /// Displays operator name. - public static let hint = L10n.tr("Localizable", "call.accessibility.connect.connecting.firstText.hint", fallback: "Displays operator name.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.connect.connecting.firstText.hint", fallback: "Displays operator name.") } public enum SecondText { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "call.accessibility.connect.connecting.secondText.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.connect.connecting.secondText.hint", fallback: "Displays call duration.") } } public enum Queue { public enum FirstText { /// Displays operator name. - public static let hint = L10n.tr("Localizable", "call.accessibility.connect.queue.firstText.hint", fallback: "Displays operator name.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.connect.queue.firstText.hint", fallback: "Displays operator name.") } public enum SecondText { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "call.accessibility.connect.queue.secondText.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.connect.queue.secondText.hint", fallback: "Displays call duration.") } } } public enum Header { public enum BackButton { /// Activates minimize. - public static let hint = L10n.tr("Localizable", "call.accessibility.header.backButton.hint", fallback: "Activates minimize.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.header.backButton.hint", fallback: "Activates minimize.") /// Back - public static let label = L10n.tr("Localizable", "call.accessibility.header.backButton.label", fallback: "Back") + public static let label = L10n.tr("Deprecated", "call.accessibility.header.backButton.label", fallback: "Back") } public enum CloseButton { - /// - public static let hint = L10n.tr("Localizable", "call.accessibility.header.closeButton.hint", fallback: "") + /// + public static let hint = L10n.tr("Deprecated", "call.accessibility.header.closeButton.hint", fallback: "") /// Close - public static let label = L10n.tr("Localizable", "call.accessibility.header.closeButton.label", fallback: "Close") + public static let label = L10n.tr("Deprecated", "call.accessibility.header.closeButton.label", fallback: "Close") } public enum EndButton { /// End - public static let label = L10n.tr("Localizable", "call.accessibility.header.endButton.label", fallback: "End") + public static let label = L10n.tr("Deprecated", "call.accessibility.header.endButton.label", fallback: "End") } public enum EndScreenShareButton { - /// - public static let hint = L10n.tr("Localizable", "call.accessibility.header.endScreenShareButton.hint", fallback: "") + /// + public static let hint = L10n.tr("Deprecated", "call.accessibility.header.endScreenShareButton.hint", fallback: "") /// End - public static let label = L10n.tr("Localizable", "call.accessibility.header.endScreenShareButton.label", fallback: "End") + public static let label = L10n.tr("Deprecated", "call.accessibility.header.endScreenShareButton.label", fallback: "End") } } public enum Operator { public enum Avatar { /// Displays operator avatar or placeholder. - public static let hint = L10n.tr("Localizable", "call.accessibility.operator.avatar.hint", fallback: "Displays operator avatar or placeholder.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.operator.avatar.hint", fallback: "Displays operator avatar or placeholder.") /// Operator Avatar - public static let label = L10n.tr("Localizable", "call.accessibility.operator.avatar.label", fallback: "Operator Avatar") + public static let label = L10n.tr("Deprecated", "call.accessibility.operator.avatar.label", fallback: "Operator Avatar") } } public enum OperatorName { /// Displays operator name. - public static let hint = L10n.tr("Localizable", "call.accessibility.operatorName.hint", fallback: "Displays operator name.") + public static let hint = L10n.tr("Deprecated", "call.accessibility.operatorName.hint", fallback: "Displays operator name.") } public enum Video { public enum Operator { /// Operator's Video - public static let label = L10n.tr("Localizable", "call.accessibility.video.operator.label", fallback: "Operator's Video") + public static let label = L10n.tr("Deprecated", "call.accessibility.video.operator.label", fallback: "Operator's Video") } public enum Visitor { /// Your Video - public static let label = L10n.tr("Localizable", "call.accessibility.video.visitor.label", fallback: "Your Video") + public static let label = L10n.tr("Deprecated", "call.accessibility.video.visitor.label", fallback: "Your Video") } } } public enum Audio { /// Audio - public static let title = L10n.tr("Localizable", "call.audio.title", fallback: "Audio") + public static let title = L10n.tr("Deprecated", "call.audio.title", fallback: "Audio") } public enum Buttons { public enum Chat { /// Chat - public static let title = L10n.tr("Localizable", "call.buttons.chat.title", fallback: "Chat") + public static let title = L10n.tr("Deprecated", "call.buttons.chat.title", fallback: "Chat") } public enum Minimize { /// Minimize - public static let title = L10n.tr("Localizable", "call.buttons.minimize.title", fallback: "Minimize") + public static let title = L10n.tr("Deprecated", "call.buttons.minimize.title", fallback: "Minimize") } public enum Mute { public enum Active { /// Unmute - public static let title = L10n.tr("Localizable", "call.buttons.mute.active.title", fallback: "Unmute") + public static let title = L10n.tr("Deprecated", "call.buttons.mute.active.title", fallback: "Unmute") } public enum Inactive { /// Mute - public static let title = L10n.tr("Localizable", "call.buttons.mute.inactive.title", fallback: "Mute") + public static let title = L10n.tr("Deprecated", "call.buttons.mute.inactive.title", fallback: "Mute") } } public enum Speaker { /// Speaker - public static let title = L10n.tr("Localizable", "call.buttons.speaker.title", fallback: "Speaker") + public static let title = L10n.tr("Deprecated", "call.buttons.speaker.title", fallback: "Speaker") } public enum Video { /// Video - public static let title = L10n.tr("Localizable", "call.buttons.video.title", fallback: "Video") + public static let title = L10n.tr("Deprecated", "call.buttons.video.title", fallback: "Video") } } public enum Connect { public enum Connected { /// {operatorName} - public static let firstText = L10n.tr("Localizable", "call.connect.connected.firstText", fallback: "{operatorName}") + public static let firstText = L10n.tr("Deprecated", "call.connect.connected.firstText", fallback: "{operatorName}") /// {callDuration} - public static let secondText = L10n.tr("Localizable", "call.connect.connected.secondText", fallback: "{callDuration}") + public static let secondText = L10n.tr("Deprecated", "call.connect.connected.secondText", fallback: "{callDuration}") } public enum Connecting { /// Connecting with {operatorName} - public static let firstText = L10n.tr("Localizable", "call.connect.connecting.firstText", fallback: "Connecting with {operatorName}") - /// - public static let secondText = L10n.tr("Localizable", "call.connect.connecting.secondText", fallback: "") + public static let firstText = L10n.tr("Deprecated", "call.connect.connecting.firstText", fallback: "Connecting with {operatorName}") + /// + public static let secondText = L10n.tr("Deprecated", "call.connect.connecting.secondText", fallback: "") } public enum Queue { /// CompanyName - public static let firstText = L10n.tr("Localizable", "call.connect.queue.firstText", fallback: "CompanyName") + public static let firstText = L10n.tr("Deprecated", "call.connect.queue.firstText", fallback: "CompanyName") /// We're here to help! - public static let secondText = L10n.tr("Localizable", "call.connect.queue.secondText", fallback: "We're here to help!") + public static let secondText = L10n.tr("Deprecated", "call.connect.queue.secondText", fallback: "We're here to help!") } public enum Transferring { /// Transferring - public static let firstText = L10n.tr("Localizable", "call.connect.transferring.firstText", fallback: "Transferring") + public static let firstText = L10n.tr("Deprecated", "call.connect.transferring.firstText", fallback: "Transferring") } } public enum EndButton { /// End - public static let title = L10n.tr("Localizable", "call.endButton.title", fallback: "End") + public static let title = L10n.tr("Deprecated", "call.endButton.title", fallback: "End") } public enum OnHold { /// You can continue browsing while you are on hold - public static let bottomText = L10n.tr("Localizable", "call.onHold.bottomText", fallback: "You can continue browsing while you are on hold") + public static let bottomText = L10n.tr("Deprecated", "call.onHold.bottomText", fallback: "You can continue browsing while you are on hold") /// You - public static let localVideoStreamLabelText = L10n.tr("Localizable", "call.onHold.localVideoStreamLabelText", fallback: "You") + public static let localVideoStreamLabelText = L10n.tr("Deprecated", "call.onHold.localVideoStreamLabelText", fallback: "You") /// On Hold - public static let topText = L10n.tr("Localizable", "call.onHold.topText", fallback: "On Hold") + public static let topText = L10n.tr("Deprecated", "call.onHold.topText", fallback: "On Hold") } public enum Operator { /// {operatorName} - public static let name = L10n.tr("Localizable", "call.operator.name", fallback: "{operatorName}") + public static let name = L10n.tr("Deprecated", "call.operator.name", fallback: "{operatorName}") } public enum Video { /// Video - public static let title = L10n.tr("Localizable", "call.video.title", fallback: "Video") + public static let title = L10n.tr("Deprecated", "call.video.title", fallback: "Video") } } public enum CallVisualizer { public enum ScreenSharing { /// Your Screen is Being Shared - public static let message = L10n.tr("Localizable", "callVisualizer.screenSharing.message", fallback: "Your Screen is Being Shared") + public static let message = L10n.tr("Deprecated", "callVisualizer.screenSharing.message", fallback: "Your Screen is Being Shared") /// Screen Sharing - public static let title = L10n.tr("Localizable", "callVisualizer.screenSharing.title", fallback: "Screen Sharing") + public static let title = L10n.tr("Deprecated", "callVisualizer.screenSharing.title", fallback: "Screen Sharing") public enum Accessibility { /// Ends screen sharing - public static let buttonHint = L10n.tr("Localizable", "callVisualizer.screenSharing.accessibility.buttonHint", fallback: "Ends screen sharing") + public static let buttonHint = L10n.tr("Deprecated", "callVisualizer.screenSharing.accessibility.buttonHint", fallback: "Ends screen sharing") /// End screen sharing - public static let buttonLabel = L10n.tr("Localizable", "callVisualizer.screenSharing.accessibility.buttonLabel", fallback: "End screen sharing") + public static let buttonLabel = L10n.tr("Deprecated", "callVisualizer.screenSharing.accessibility.buttonLabel", fallback: "End screen sharing") /// Message label - public static let messageHint = L10n.tr("Localizable", "callVisualizer.screenSharing.accessibility.messageHint", fallback: "Message label") + public static let messageHint = L10n.tr("Deprecated", "callVisualizer.screenSharing.accessibility.messageHint", fallback: "Message label") } public enum Button { /// End Screen Sharing - public static let title = L10n.tr("Localizable", "callVisualizer.screenSharing.button.title", fallback: "End Screen Sharing") + public static let title = L10n.tr("Deprecated", "callVisualizer.screenSharing.button.title", fallback: "End Screen Sharing") } } public enum VisitorCode { public enum Accessibility { /// Closes visitor code - public static let closeHint = L10n.tr("Localizable", "callVisualizer.visitorCode.accessibility.closeHint", fallback: "Closes visitor code") + public static let closeHint = L10n.tr("Deprecated", "callVisualizer.visitorCode.accessibility.closeHint", fallback: "Closes visitor code") /// Close Button - public static let closeLabel = L10n.tr("Localizable", "callVisualizer.visitorCode.accessibility.closeLabel", fallback: "Close Button") + public static let closeLabel = L10n.tr("Deprecated", "callVisualizer.visitorCode.accessibility.closeLabel", fallback: "Close Button") /// Generates new visitor code - public static let refreshHint = L10n.tr("Localizable", "callVisualizer.visitorCode.accessibility.refreshHint", fallback: "Generates new visitor code") + public static let refreshHint = L10n.tr("Deprecated", "callVisualizer.visitorCode.accessibility.refreshHint", fallback: "Generates new visitor code") /// Refresh Button - public static let refreshLabel = L10n.tr("Localizable", "callVisualizer.visitorCode.accessibility.refreshLabel", fallback: "Refresh Button") + public static let refreshLabel = L10n.tr("Deprecated", "callVisualizer.visitorCode.accessibility.refreshLabel", fallback: "Refresh Button") /// Your five-digit visitor code is - public static let titleHint = L10n.tr("Localizable", "callVisualizer.visitorCode.accessibility.titleHint", fallback: "Your five-digit visitor code is") + public static let titleHint = L10n.tr("Deprecated", "callVisualizer.visitorCode.accessibility.titleHint", fallback: "Your five-digit visitor code is") } public enum Action { /// Close - public static let close = L10n.tr("Localizable", "callVisualizer.visitorCode.action.close", fallback: "Close") + public static let close = L10n.tr("Deprecated", "callVisualizer.visitorCode.action.close", fallback: "Close") /// Refresh - public static let refresh = L10n.tr("Localizable", "callVisualizer.visitorCode.action.refresh", fallback: "Refresh") + public static let refresh = L10n.tr("Deprecated", "callVisualizer.visitorCode.action.refresh", fallback: "Refresh") } public enum Title { /// Could not load the visitor code. Please try refreshing. - public static let error = L10n.tr("Localizable", "callVisualizer.visitorCode.title.error", fallback: "Could not load the visitor code. Please try refreshing.") + public static let error = L10n.tr("Deprecated", "callVisualizer.visitorCode.title.error", fallback: "Could not load the visitor code. Please try refreshing.") /// Your Visitor Code - public static let standard = L10n.tr("Localizable", "callVisualizer.visitorCode.title.standard", fallback: "Your Visitor Code") + public static let standard = L10n.tr("Deprecated", "callVisualizer.visitorCode.title.standard", fallback: "Your Visitor Code") } } } public enum Chat { /// Chat - public static let title = L10n.tr("Localizable", "chat.title", fallback: "Chat") + public static let title = L10n.tr("Deprecated", "chat.title", fallback: "Chat") public enum Accessibility { /// You - public static let visitorName = L10n.tr("Localizable", "chat.accessibility.visitorName", fallback: "You") + public static let visitorName = L10n.tr("Deprecated", "chat.accessibility.visitorName", fallback: "You") public enum ChatCallUpgrade { public enum Audio { public enum Duration { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "chat.accessibility.chatCallUpgrade.audio.duration.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.chatCallUpgrade.audio.duration.hint", fallback: "Displays call duration.") } } public enum Video { public enum Duration { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "chat.accessibility.chatCallUpgrade.video.duration.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.chatCallUpgrade.video.duration.hint", fallback: "Displays call duration.") } } } @@ -498,355 +500,305 @@ public enum L10n { public enum Connected { public enum FirstText { /// Displays operator name. - public static let hint = L10n.tr("Localizable", "chat.accessibility.connect.connected.firstText.hint", fallback: "Displays operator name.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.connect.connected.firstText.hint", fallback: "Displays operator name.") } public enum SecondText { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "chat.accessibility.connect.connected.secondText.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.connect.connected.secondText.hint", fallback: "Displays call duration.") } } public enum Connecting { public enum FirstText { /// Displays operator name. - public static let hint = L10n.tr("Localizable", "chat.accessibility.connect.connecting.firstText.hint", fallback: "Displays operator name.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.connect.connecting.firstText.hint", fallback: "Displays operator name.") } public enum SecondText { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "chat.accessibility.connect.connecting.secondText.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.connect.connecting.secondText.hint", fallback: "Displays call duration.") } } public enum Queue { public enum FirstText { /// Displays operator name. - public static let hint = L10n.tr("Localizable", "chat.accessibility.connect.queue.firstText.hint", fallback: "Displays operator name.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.connect.queue.firstText.hint", fallback: "Displays operator name.") } public enum SecondText { /// Displays call duration. - public static let hint = L10n.tr("Localizable", "chat.accessibility.connect.queue.secondText.hint", fallback: "Displays call duration.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.connect.queue.secondText.hint", fallback: "Displays call duration.") } } } public enum Download { public enum State { /// {downloadedFileName}, {downloadedFileState} - public static let downloaded = L10n.tr("Localizable", "chat.accessibility.download.state.downloaded", fallback: "{downloadedFileName}, {downloadedFileState}") + public static let downloaded = L10n.tr("Deprecated", "chat.accessibility.download.state.downloaded", fallback: "{downloadedFileName}, {downloadedFileState}") /// {downloadedFileName}, {downloadedFileState} {downloadPercentValue}%% - public static let downloading = L10n.tr("Localizable", "chat.accessibility.download.state.downloading", fallback: "{downloadedFileName}, {downloadedFileState} {downloadPercentValue}%%") + public static let downloading = L10n.tr("Deprecated", "chat.accessibility.download.state.downloading", fallback: "{downloadedFileName}, {downloadedFileState} {downloadPercentValue}%%") /// {downloadedFileName}, {downloadedFileState} - public static let error = L10n.tr("Localizable", "chat.accessibility.download.state.error", fallback: "{downloadedFileName}, {downloadedFileState}") + public static let error = L10n.tr("Deprecated", "chat.accessibility.download.state.error", fallback: "{downloadedFileName}, {downloadedFileState}") /// {downloadedFileName}, {downloadedFileState} - public static let `none` = L10n.tr("Localizable", "chat.accessibility.download.state.none", fallback: "{downloadedFileName}, {downloadedFileState}") + public static let `none` = L10n.tr("Deprecated", "chat.accessibility.download.state.none", fallback: "{downloadedFileName}, {downloadedFileState}") } } public enum Header { public enum BackButton { - /// - public static let hint = L10n.tr("Localizable", "chat.accessibility.header.backButton.hint", fallback: "") + /// + public static let hint = L10n.tr("Deprecated", "chat.accessibility.header.backButton.hint", fallback: "") /// back - public static let label = L10n.tr("Localizable", "chat.accessibility.header.backButton.label", fallback: "back") + public static let label = L10n.tr("Deprecated", "chat.accessibility.header.backButton.label", fallback: "back") } public enum CloseButton { - /// - public static let hint = L10n.tr("Localizable", "chat.accessibility.header.closeButton.hint", fallback: "") + /// + public static let hint = L10n.tr("Deprecated", "chat.accessibility.header.closeButton.hint", fallback: "") /// Close - public static let label = L10n.tr("Localizable", "chat.accessibility.header.closeButton.label", fallback: "Close") + public static let label = L10n.tr("Deprecated", "chat.accessibility.header.closeButton.label", fallback: "Close") } public enum EndButton { /// End - public static let label = L10n.tr("Localizable", "chat.accessibility.header.endButton.label", fallback: "End") + public static let label = L10n.tr("Deprecated", "chat.accessibility.header.endButton.label", fallback: "End") } public enum EndScreenShareButton { - /// - public static let hint = L10n.tr("Localizable", "chat.accessibility.header.endScreenShareButton.hint", fallback: "") + /// + public static let hint = L10n.tr("Deprecated", "chat.accessibility.header.endScreenShareButton.hint", fallback: "") /// End screen share - public static let label = L10n.tr("Localizable", "chat.accessibility.header.endScreenShareButton.label", fallback: "End screen share") + public static let label = L10n.tr("Deprecated", "chat.accessibility.header.endScreenShareButton.label", fallback: "End screen share") } } public enum Message { /// Attachment from {fileSender} - public static let attachmentMessageLabel = L10n.tr("Localizable", "chat.accessibility.message.attachmentMessageLabel", fallback: "Attachment from {fileSender}") + public static let attachmentMessageLabel = L10n.tr("Deprecated", "chat.accessibility.message.attachmentMessageLabel", fallback: "Attachment from {fileSender}") /// You - public static let you = L10n.tr("Localizable", "chat.accessibility.message.you", fallback: "You") + public static let you = L10n.tr("Deprecated", "chat.accessibility.message.you", fallback: "You") public enum ChoiceCard { public enum ButtonState { /// Disabled - public static let disabled = L10n.tr("Localizable", "chat.accessibility.message.choiceCard.buttonState.disabled", fallback: "Disabled") - /// - public static let normal = L10n.tr("Localizable", "chat.accessibility.message.choiceCard.buttonState.normal", fallback: "") + public static let disabled = L10n.tr("Deprecated", "chat.accessibility.message.choiceCard.buttonState.disabled", fallback: "Disabled") + /// + public static let normal = L10n.tr("Deprecated", "chat.accessibility.message.choiceCard.buttonState.normal", fallback: "") /// Selected - public static let selected = L10n.tr("Localizable", "chat.accessibility.message.choiceCard.buttonState.selected", fallback: "Selected") + public static let selected = L10n.tr("Deprecated", "chat.accessibility.message.choiceCard.buttonState.selected", fallback: "Selected") } public enum Image { /// Choice card - public static let label = L10n.tr("Localizable", "chat.accessibility.message.choiceCard.image.label", fallback: "Choice card") + public static let label = L10n.tr("Deprecated", "chat.accessibility.message.choiceCard.image.label", fallback: "Choice card") } } public enum MessageInput { /// Message - public static let label = L10n.tr("Localizable", "chat.accessibility.message.messageInput.label", fallback: "Message") + public static let label = L10n.tr("Deprecated", "chat.accessibility.message.messageInput.label", fallback: "Message") } public enum Operator { public enum TypingIndicator { /// {operatorName} is typing - public static let label = L10n.tr("Localizable", "chat.accessibility.message.operator.typingIndicator.label", fallback: "{operatorName} is typing") + public static let label = L10n.tr("Deprecated", "chat.accessibility.message.operator.typingIndicator.label", fallback: "{operatorName} is typing") } } public enum SendButton { /// Send - public static let label = L10n.tr("Localizable", "chat.accessibility.message.sendButton.label", fallback: "Send") + public static let label = L10n.tr("Deprecated", "chat.accessibility.message.sendButton.label", fallback: "Send") } public enum UnreadMessagesIndicator { /// Unread messages - public static let label = L10n.tr("Localizable", "chat.accessibility.message.unreadMessagesIndicator.label", fallback: "Unread messages") + public static let label = L10n.tr("Deprecated", "chat.accessibility.message.unreadMessagesIndicator.label", fallback: "Unread messages") } } public enum Operator { public enum Avatar { /// Displays operator avatar or placeholder. - public static let hint = L10n.tr("Localizable", "chat.accessibility.operator.avatar.hint", fallback: "Displays operator avatar or placeholder.") + public static let hint = L10n.tr("Deprecated", "chat.accessibility.operator.avatar.hint", fallback: "Displays operator avatar or placeholder.") /// Avatar - public static let label = L10n.tr("Localizable", "chat.accessibility.operator.avatar.label", fallback: "Avatar") + public static let label = L10n.tr("Deprecated", "chat.accessibility.operator.avatar.label", fallback: "Avatar") } } public enum PickMedia { public enum PickAttachmentButton { /// Pick attachment - public static let label = L10n.tr("Localizable", "chat.accessibility.pickMedia.pickAttachmentButton.label", fallback: "Pick attachment") + public static let label = L10n.tr("Deprecated", "chat.accessibility.pickMedia.pickAttachmentButton.label", fallback: "Pick attachment") } } public enum Upload { public enum Progress { /// {uploadedFileName}, {uploadPercentValue}%% - public static let fileNameWithProgressValue = L10n.tr("Localizable", "chat.accessibility.upload.progress.fileNameWithProgressValue", fallback: "{uploadedFileName}, {uploadPercentValue}%%") + public static let fileNameWithProgressValue = L10n.tr("Deprecated", "chat.accessibility.upload.progress.fileNameWithProgressValue", fallback: "{uploadedFileName}, {uploadPercentValue}%%") /// {uploadPercentValue}%% - public static let percentValue = L10n.tr("Localizable", "chat.accessibility.upload.progress.percentValue", fallback: "{uploadPercentValue}%%") + public static let percentValue = L10n.tr("Deprecated", "chat.accessibility.upload.progress.percentValue", fallback: "{uploadPercentValue}%%") } public enum RemoveUpload { /// Remove upload - public static let label = L10n.tr("Localizable", "chat.accessibility.upload.removeUpload.label", fallback: "Remove upload") + public static let label = L10n.tr("Deprecated", "chat.accessibility.upload.removeUpload.label", fallback: "Remove upload") } } } public enum Connect { public enum Connected { /// {operatorName} - public static let firstText = L10n.tr("Localizable", "chat.connect.connected.firstText", fallback: "{operatorName}") + public static let firstText = L10n.tr("Deprecated", "chat.connect.connected.firstText", fallback: "{operatorName}") /// {operatorName} has joined the conversation. - public static let secondText = L10n.tr("Localizable", "chat.connect.connected.secondText", fallback: "{operatorName} has joined the conversation.") + public static let secondText = L10n.tr("Deprecated", "chat.connect.connected.secondText", fallback: "{operatorName} has joined the conversation.") } public enum Connecting { /// Connecting with {operatorName} - public static let firstText = L10n.tr("Localizable", "chat.connect.connecting.firstText", fallback: "Connecting with {operatorName}") - /// - public static let secondText = L10n.tr("Localizable", "chat.connect.connecting.secondText", fallback: "") + public static let firstText = L10n.tr("Deprecated", "chat.connect.connecting.firstText", fallback: "Connecting with {operatorName}") + /// + public static let secondText = L10n.tr("Deprecated", "chat.connect.connecting.secondText", fallback: "") } public enum Queue { /// CompanyName - public static let firstText = L10n.tr("Localizable", "chat.connect.queue.firstText", fallback: "CompanyName") + public static let firstText = L10n.tr("Deprecated", "chat.connect.queue.firstText", fallback: "CompanyName") /// We're here to help! - public static let secondText = L10n.tr("Localizable", "chat.connect.queue.secondText", fallback: "We're here to help!") + public static let secondText = L10n.tr("Deprecated", "chat.connect.queue.secondText", fallback: "We're here to help!") } public enum Transferring { /// Transferring - public static let firstText = L10n.tr("Localizable", "chat.connect.transferring.firstText", fallback: "Transferring") + public static let firstText = L10n.tr("Deprecated", "chat.connect.transferring.firstText", fallback: "Transferring") } } public enum Download { /// Download - public static let download = L10n.tr("Localizable", "chat.download.download", fallback: "Download") + public static let download = L10n.tr("Deprecated", "chat.download.download", fallback: "Download") /// Downloading file… - public static let downloading = L10n.tr("Localizable", "chat.download.downloading", fallback: "Downloading file…") + public static let downloading = L10n.tr("Deprecated", "chat.download.downloading", fallback: "Downloading file…") /// Download failed - public static let failed = L10n.tr("Localizable", "chat.download.failed", fallback: "Download failed") + public static let failed = L10n.tr("Deprecated", "chat.download.failed", fallback: "Download failed") /// Open - public static let `open` = L10n.tr("Localizable", "chat.download.open", fallback: "Open") + public static let `open` = L10n.tr("Deprecated", "chat.download.open", fallback: "Open") public enum Failed { /// Retry - public static let retry = L10n.tr("Localizable", "chat.download.failed.retry", fallback: "Retry") - /// | - public static let separator = L10n.tr("Localizable", "chat.download.failed.separator", fallback: " | ") + public static let retry = L10n.tr("Deprecated", "chat.download.failed.retry", fallback: "Retry") + /// | + public static let separator = L10n.tr("Deprecated", "chat.download.failed.separator", fallback: " | ") } } public enum EndButton { /// End - public static let title = L10n.tr("Localizable", "chat.endButton.title", fallback: "End") + public static let title = L10n.tr("Deprecated", "chat.endButton.title", fallback: "End") } public enum File { public enum Upload { /// Checking safety of the file… - public static let scanning = L10n.tr("Localizable", "chat.file.upload.scanning", fallback: "Checking safety of the file…") + public static let scanning = L10n.tr("Deprecated", "chat.file.upload.scanning", fallback: "Checking safety of the file…") } } public enum Input { /// Send - public static let send = L10n.tr("Localizable", "chat.input.send", fallback: "Send") + public static let send = L10n.tr("Deprecated", "chat.input.send", fallback: "Send") } public enum Message { /// Tap on the answer above - public static let choiceCardPlaceholder = L10n.tr("Localizable", "chat.message.choiceCardPlaceholder", fallback: "Tap on the answer above") + public static let choiceCardPlaceholder = L10n.tr("Deprecated", "chat.message.choiceCardPlaceholder", fallback: "Tap on the answer above") /// Enter Message - public static let enterMessagePlaceholder = L10n.tr("Localizable", "chat.message.enterMessagePlaceholder", fallback: "Enter Message") + public static let enterMessagePlaceholder = L10n.tr("Deprecated", "chat.message.enterMessagePlaceholder", fallback: "Enter Message") /// Send a message to start chatting - public static let startEngagementPlaceholder = L10n.tr("Localizable", "chat.message.startEngagementPlaceholder", fallback: "Send a message to start chatting") + public static let startEngagementPlaceholder = L10n.tr("Deprecated", "chat.message.startEngagementPlaceholder", fallback: "Send a message to start chatting") public enum Status { /// Delivered - public static let delivered = L10n.tr("Localizable", "chat.message.status.delivered", fallback: "Delivered") + public static let delivered = L10n.tr("Deprecated", "chat.message.status.delivered", fallback: "Delivered") } } public enum PickMedia { /// Browse - public static let browse = L10n.tr("Localizable", "chat.pickMedia.browse", fallback: "Browse") + public static let browse = L10n.tr("Deprecated", "chat.pickMedia.browse", fallback: "Browse") /// Photo Library - public static let photo = L10n.tr("Localizable", "chat.pickMedia.photo", fallback: "Photo Library") + public static let photo = L10n.tr("Deprecated", "chat.pickMedia.photo", fallback: "Photo Library") /// Take Photo or Video - public static let takePhoto = L10n.tr("Localizable", "chat.pickMedia.takePhoto", fallback: "Take Photo or Video") + public static let takePhoto = L10n.tr("Deprecated", "chat.pickMedia.takePhoto", fallback: "Take Photo or Video") } public enum SecureTranscript { /// Messaging - public static let headerTitle = L10n.tr("Localizable", "chat.secureTranscript.headerTitle", fallback: "Messaging") + public static let headerTitle = L10n.tr("Deprecated", "chat.secureTranscript.headerTitle", fallback: "Messaging") /// New Messages - public static let unreadMessageDividerTitle = L10n.tr("Localizable", "chat.secureTranscript.unreadMessageDividerTitle", fallback: "New Messages") + public static let unreadMessageDividerTitle = L10n.tr("Deprecated", "chat.secureTranscript.unreadMessageDividerTitle", fallback: "New Messages") } public enum Status { /// Operator typing - public static let typing = L10n.tr("Localizable", "chat.status.typing", fallback: "Operator typing") + public static let typing = L10n.tr("Deprecated", "chat.status.typing", fallback: "Operator typing") } public enum Upgrade { public enum Audio { /// Upgraded to Audio Call - public static let text = L10n.tr("Localizable", "chat.upgrade.audio.text", fallback: "Upgraded to Audio Call") + public static let text = L10n.tr("Deprecated", "chat.upgrade.audio.text", fallback: "Upgraded to Audio Call") } public enum Video { /// Upgraded to Video Call - public static let text = L10n.tr("Localizable", "chat.upgrade.video.text", fallback: "Upgraded to Video Call") + public static let text = L10n.tr("Deprecated", "chat.upgrade.video.text", fallback: "Upgraded to Video Call") } } public enum Upload { /// Uploading failed - public static let failed = L10n.tr("Localizable", "chat.upload.failed", fallback: "Uploading failed") + public static let failed = L10n.tr("Deprecated", "chat.upload.failed", fallback: "Uploading failed") /// Ready to send - public static let uploaded = L10n.tr("Localizable", "chat.upload.uploaded", fallback: "Ready to send") + public static let uploaded = L10n.tr("Deprecated", "chat.upload.uploaded", fallback: "Ready to send") /// Uploading file… - public static let uploading = L10n.tr("Localizable", "chat.upload.uploading", fallback: "Uploading file…") + public static let uploading = L10n.tr("Deprecated", "chat.upload.uploading", fallback: "Uploading file…") public enum Error { /// File size over 25MB limit! - public static let fileTooBig = L10n.tr("Localizable", "chat.upload.error.fileTooBig", fallback: "File size over 25MB limit!") + public static let fileTooBig = L10n.tr("Deprecated", "chat.upload.error.fileTooBig", fallback: "File size over 25MB limit!") /// Failed to upload. - public static let generic = L10n.tr("Localizable", "chat.upload.error.generic", fallback: "Failed to upload.") + public static let generic = L10n.tr("Deprecated", "chat.upload.error.generic", fallback: "Failed to upload.") /// Network error. - public static let network = L10n.tr("Localizable", "chat.upload.error.network", fallback: "Network error.") + public static let network = L10n.tr("Deprecated", "chat.upload.error.network", fallback: "Network error.") /// Failed to confirm the safety of the file. - public static let safetyCheckFailed = L10n.tr("Localizable", "chat.upload.error.safetyCheckFailed", fallback: "Failed to confirm the safety of the file.") + public static let safetyCheckFailed = L10n.tr("Deprecated", "chat.upload.error.safetyCheckFailed", fallback: "Failed to confirm the safety of the file.") /// Invalid file type! - public static let unsupportedFileType = L10n.tr("Localizable", "chat.upload.error.unsupportedFileType", fallback: "Invalid file type!") + public static let unsupportedFileType = L10n.tr("Deprecated", "chat.upload.error.unsupportedFileType", fallback: "Invalid file type!") } } } - public enum Error { - /// Something went wrong - public static let general = L10n.tr("Localizable", "error.general", fallback: "Something went wrong") - /// Internal error - public static let `internal` = L10n.tr("Localizable", "error.internal", fallback: "Internal error") - } - public enum General { - /// Accept - public static let accept = L10n.tr("Localizable", "general.accept", fallback: "Accept") - /// Back - public static let back = L10n.tr("Localizable", "general.back", fallback: "Back") - /// Browse - public static let browse = L10n.tr("Localizable", "general.browse", fallback: "Browse") - /// Cancel - public static let cancel = L10n.tr("Localizable", "general.cancel", fallback: "Cancel") - /// Close - public static let close = L10n.tr("Localizable", "general.close", fallback: "Close") - /// Comment - public static let comment = L10n.tr("Localizable", "general.comment", fallback: "Comment") - /// CompanyName - public static let companyName = L10n.tr("Localizable", "general.company_name", fallback: "CompanyName") - /// Decline - public static let decline = L10n.tr("Localizable", "general.decline", fallback: "Decline") - /// Download - public static let download = L10n.tr("Localizable", "general.download", fallback: "Download") - /// End - public static let end = L10n.tr("Localizable", "general.end", fallback: "End") - /// Message - public static let message = L10n.tr("Localizable", "general.message", fallback: "Message") - /// No - public static let no = L10n.tr("Localizable", "general.no", fallback: "No") - /// Ok - public static let ok = L10n.tr("Localizable", "general.ok", fallback: "Ok") - /// Open - public static let `open` = L10n.tr("Localizable", "general.open", fallback: "Open") - /// Powered by Glia - public static let poweredBy = L10n.tr("Localizable", "general.powered_by", fallback: "Powered by Glia") - /// Retry - public static let retry = L10n.tr("Localizable", "general.retry", fallback: "Retry") - /// Selected - public static let selected = L10n.tr("Localizable", "general.selected", fallback: "Selected") - /// Submit - public static let submit = L10n.tr("Localizable", "general.submit", fallback: "Submit") - /// Thank you! - public static let thankYou = L10n.tr("Localizable", "general.thank_you", fallback: "Thank you!") - /// Yes - public static let yes = L10n.tr("Localizable", "general.yes", fallback: "Yes") - /// You - public static let you = L10n.tr("Localizable", "general.you", fallback: "You") - } public enum MessageCenter { public enum Confirmation { /// Check messages - public static let checkMessages = L10n.tr("Localizable", "messageCenter.confirmation.checkMessages", fallback: "Check messages") + public static let checkMessages = L10n.tr("Deprecated", "messageCenter.confirmation.checkMessages", fallback: "Check messages") /// Messaging - public static let header = L10n.tr("Localizable", "messageCenter.confirmation.header", fallback: "Messaging") + public static let header = L10n.tr("Deprecated", "messageCenter.confirmation.header", fallback: "Messaging") /// Your message has been sent. We will get back to you within 48 hours. - public static let subtitle = L10n.tr("Localizable", "messageCenter.confirmation.subtitle", fallback: "Your message has been sent. We will get back to you within 48 hours.") + public static let subtitle = L10n.tr("Deprecated", "messageCenter.confirmation.subtitle", fallback: "Your message has been sent. We will get back to you within 48 hours.") /// Thank you! - public static let title = L10n.tr("Localizable", "messageCenter.confirmation.title", fallback: "Thank you!") + public static let title = L10n.tr("Deprecated", "messageCenter.confirmation.title", fallback: "Thank you!") public enum Accessibility { /// Navigates you to the chat transcript. - public static let checkMessagesHint = L10n.tr("Localizable", "messageCenter.confirmation.accessibility.checkMessagesHint", fallback: "Navigates you to the chat transcript.") + public static let checkMessagesHint = L10n.tr("Deprecated", "messageCenter.confirmation.accessibility.checkMessagesHint", fallback: "Navigates you to the chat transcript.") /// Check messages - public static let checkMessagesLabel = L10n.tr("Localizable", "messageCenter.confirmation.accessibility.checkMessagesLabel", fallback: "Check messages") + public static let checkMessagesLabel = L10n.tr("Deprecated", "messageCenter.confirmation.accessibility.checkMessagesLabel", fallback: "Check messages") } } public enum Welcome { /// Check messages - public static let checkMessages = L10n.tr("Localizable", "messageCenter.welcome.checkMessages", fallback: "Check messages") + public static let checkMessages = L10n.tr("Deprecated", "messageCenter.welcome.checkMessages", fallback: "Check messages") /// Messaging - public static let header = L10n.tr("Localizable", "messageCenter.welcome.header", fallback: "Messaging") + public static let header = L10n.tr("Deprecated", "messageCenter.welcome.header", fallback: "Messaging") /// The message cannot exceed 10000 characters. - public static let messageLengthWarning = L10n.tr("Localizable", "messageCenter.welcome.messageLengthWarning", fallback: "The message cannot exceed 10000 characters.") + public static let messageLengthWarning = L10n.tr("Deprecated", "messageCenter.welcome.messageLengthWarning", fallback: "The message cannot exceed 10000 characters.") /// Enter your message - public static let messageTextViewActive = L10n.tr("Localizable", "messageCenter.welcome.messageTextViewActive", fallback: "Enter your message") + public static let messageTextViewActive = L10n.tr("Deprecated", "messageCenter.welcome.messageTextViewActive", fallback: "Enter your message") /// Enter your message - public static let messageTextViewDisabled = L10n.tr("Localizable", "messageCenter.welcome.messageTextViewDisabled", fallback: "Enter your message") + public static let messageTextViewDisabled = L10n.tr("Deprecated", "messageCenter.welcome.messageTextViewDisabled", fallback: "Enter your message") /// Enter your message - public static let messageTextViewNormal = L10n.tr("Localizable", "messageCenter.welcome.messageTextViewNormal", fallback: "Enter your message") + public static let messageTextViewNormal = L10n.tr("Deprecated", "messageCenter.welcome.messageTextViewNormal", fallback: "Enter your message") /// Your message - public static let messageTitle = L10n.tr("Localizable", "messageCenter.welcome.messageTitle", fallback: "Your message") + public static let messageTitle = L10n.tr("Deprecated", "messageCenter.welcome.messageTitle", fallback: "Your message") /// Send - public static let sendDisabled = L10n.tr("Localizable", "messageCenter.welcome.sendDisabled", fallback: "Send") + public static let sendDisabled = L10n.tr("Deprecated", "messageCenter.welcome.sendDisabled", fallback: "Send") /// Send - public static let sendEnabled = L10n.tr("Localizable", "messageCenter.welcome.sendEnabled", fallback: "Send") + public static let sendEnabled = L10n.tr("Deprecated", "messageCenter.welcome.sendEnabled", fallback: "Send") /// Send - public static let sendLoading = L10n.tr("Localizable", "messageCenter.welcome.sendLoading", fallback: "Send") + public static let sendLoading = L10n.tr("Deprecated", "messageCenter.welcome.sendLoading", fallback: "Send") /// Send a message and we’ll get back to you within 48 hours - public static let subtitle = L10n.tr("Localizable", "messageCenter.welcome.subtitle", fallback: "Send a message and we’ll get back to you within 48 hours") + public static let subtitle = L10n.tr("Deprecated", "messageCenter.welcome.subtitle", fallback: "Send a message and we’ll get back to you within 48 hours") /// Welcome to Message Center - public static let title = L10n.tr("Localizable", "messageCenter.welcome.title", fallback: "Welcome to Message Center") + public static let title = L10n.tr("Deprecated", "messageCenter.welcome.title", fallback: "Welcome to Message Center") public enum Accessibility { /// Navigates you to the chat transcript. - public static let checkMessagesHint = L10n.tr("Localizable", "messageCenter.welcome.accessibility.checkMessagesHint", fallback: "Navigates you to the chat transcript.") + public static let checkMessagesHint = L10n.tr("Deprecated", "messageCenter.welcome.accessibility.checkMessagesHint", fallback: "Navigates you to the chat transcript.") /// Check messages - public static let checkMessagesLabel = L10n.tr("Localizable", "messageCenter.welcome.accessibility.checkMessagesLabel", fallback: "Check messages") + public static let checkMessagesLabel = L10n.tr("Deprecated", "messageCenter.welcome.accessibility.checkMessagesLabel", fallback: "Check messages") /// Opens the file picker to attach media. - public static let filePickerHint = L10n.tr("Localizable", "messageCenter.welcome.accessibility.filePickerHint", fallback: "Opens the file picker to attach media.") + public static let filePickerHint = L10n.tr("Deprecated", "messageCenter.welcome.accessibility.filePickerHint", fallback: "Opens the file picker to attach media.") /// File picker - public static let filePickerLabel = L10n.tr("Localizable", "messageCenter.welcome.accessibility.filePickerLabel", fallback: "File picker") + public static let filePickerLabel = L10n.tr("Deprecated", "messageCenter.welcome.accessibility.filePickerLabel", fallback: "File picker") /// Sends a secure message. - public static let sendHint = L10n.tr("Localizable", "messageCenter.welcome.accessibility.sendHint", fallback: "Sends a secure message.") + public static let sendHint = L10n.tr("Deprecated", "messageCenter.welcome.accessibility.sendHint", fallback: "Sends a secure message.") /// Send - public static let sendLabel = L10n.tr("Localizable", "messageCenter.welcome.accessibility.sendLabel", fallback: "Send") + public static let sendLabel = L10n.tr("Deprecated", "messageCenter.welcome.accessibility.sendLabel", fallback: "Send") } } } @@ -854,71 +806,71 @@ public enum L10n { public enum VisitorScreen { public enum Disclaimer { /// Depending on your selection, your entire screen might be shared with the operator, not just the application window. - public static let info = L10n.tr("Localizable", "screensharing.visitor_screen.disclaimer.info", fallback: "Depending on your selection, your entire screen might be shared with the operator, not just the application window.") + public static let info = L10n.tr("Deprecated", "screensharing.visitor_screen.disclaimer.info", fallback: "Depending on your selection, your entire screen might be shared with the operator, not just the application window.") } } } public enum SendMessage { /// Send message - public static let send = L10n.tr("Localizable", "send_message.send", fallback: "Send message") + public static let send = L10n.tr("Deprecated", "send_message.send", fallback: "Send message") /// Sending… - public static let sending = L10n.tr("Localizable", "send_message.sending", fallback: "Sending…") + public static let sending = L10n.tr("Deprecated", "send_message.sending", fallback: "Sending…") } public enum Survey { public enum Accessibility { public enum Footer { public enum CancelButton { /// Cancel - public static let label = L10n.tr("Localizable", "survey.accessibility.footer.cancelButton.label", fallback: "Cancel") + public static let label = L10n.tr("Deprecated", "survey.accessibility.footer.cancelButton.label", fallback: "Cancel") } public enum SubmitButton { /// Submit - public static let label = L10n.tr("Localizable", "survey.accessibility.footer.submitButton.label", fallback: "Submit") + public static let label = L10n.tr("Deprecated", "survey.accessibility.footer.submitButton.label", fallback: "Submit") } } public enum Question { public enum OptionButton { public enum Selected { /// Selected: {buttonTitle} - public static let label = L10n.tr("Localizable", "survey.accessibility.question.optionButton.selected.label", fallback: "Selected: {buttonTitle}") + public static let label = L10n.tr("Deprecated", "survey.accessibility.question.optionButton.selected.label", fallback: "Selected: {buttonTitle}") } public enum Unselected { /// Unselected: {buttonTitle} - public static let label = L10n.tr("Localizable", "survey.accessibility.question.optionButton.unselected.label", fallback: "Unselected: {buttonTitle}") + public static let label = L10n.tr("Deprecated", "survey.accessibility.question.optionButton.unselected.label", fallback: "Unselected: {buttonTitle}") } } public enum TextField { /// Enter the answer - public static let hint = L10n.tr("Localizable", "survey.accessibility.question.textField.hint", fallback: "Enter the answer") + public static let hint = L10n.tr("Deprecated", "survey.accessibility.question.textField.hint", fallback: "Enter the answer") } public enum Title { /// Required - public static let value = L10n.tr("Localizable", "survey.accessibility.question.title.value", fallback: "Required") + public static let value = L10n.tr("Deprecated", "survey.accessibility.question.title.value", fallback: "Required") } } public enum Validation { public enum Title { /// Please provide an answer for question above - public static let label = L10n.tr("Localizable", "survey.accessibility.validation.title.label", fallback: "Please provide an answer for question above") + public static let label = L10n.tr("Deprecated", "survey.accessibility.validation.title.label", fallback: "Please provide an answer for question above") } } } public enum Action { /// Cancel - public static let cancel = L10n.tr("Localizable", "survey.action.cancel", fallback: "Cancel") + public static let cancel = L10n.tr("Deprecated", "survey.action.cancel", fallback: "Cancel") /// No - public static let no = L10n.tr("Localizable", "survey.action.no", fallback: "No") + public static let no = L10n.tr("Deprecated", "survey.action.no", fallback: "No") /// Submit - public static let submit = L10n.tr("Localizable", "survey.action.submit", fallback: "Submit") + public static let submit = L10n.tr("Deprecated", "survey.action.submit", fallback: "Submit") /// Please provide an answer. - public static let validationError = L10n.tr("Localizable", "survey.action.validationError", fallback: "Please provide an answer.") + public static let validationError = L10n.tr("Deprecated", "survey.action.validationError", fallback: "Please provide an answer.") /// Yes - public static let yes = L10n.tr("Localizable", "survey.action.yes", fallback: "Yes") + public static let yes = L10n.tr("Deprecated", "survey.action.yes", fallback: "Yes") } public enum Question { public enum Title { /// * - public static let asterisk = L10n.tr("Localizable", "survey.question.title.asterisk", fallback: " *") + public static let asterisk = L10n.tr("Deprecated", "survey.question.title.asterisk", fallback: " *") } } } diff --git a/GliaWidgets/Localization.swift b/GliaWidgets/Localization.swift new file mode 100644 index 000000000..127718092 --- /dev/null +++ b/GliaWidgets/Localization.swift @@ -0,0 +1,573 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +import Foundation + +// swiftlint:disable superfluous_disable_command file_length implicit_return prefer_self_in_static_references + +// MARK: - Strings + +// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length +// swiftlint:disable nesting type_body_length type_name vertical_whitespace_opening_braces +internal enum Localization { + internal enum Alert { + internal enum Action { + /// Settings + internal static let settings = Localization.tr("Localizable", "alert.action.settings", fallback: "Settings") + } + } + internal enum Call { + /// On Hold + internal static let onHold = Localization.tr("Localizable", "call.on_hold", fallback: "On Hold") + internal enum Bubble { + internal enum Accessibility { + /// Deactivates minimize. + internal static let hint = Localization.tr("Localizable", "call.bubble.accessibility.hint", fallback: "Deactivates minimize.") + /// Operator Avatar + internal static let label = Localization.tr("Localizable", "call.bubble.accessibility.label", fallback: "Operator Avatar") + } + } + internal enum Button { + /// Mute + internal static let mute = Localization.tr("Localizable", "call.button.mute", fallback: "Mute") + /// Speaker + internal static let speaker = Localization.tr("Localizable", "call.button.speaker", fallback: "Speaker") + /// Unmute + internal static let unmute = Localization.tr("Localizable", "call.button.unmute", fallback: "Unmute") + } + internal enum Buttons { + internal enum Chat { + internal enum BadgeValue { + internal enum MultipleItems { + internal enum Accessibility { + /// {badgeValue} unread messages + internal static let label = Localization.tr("Localizable", "call.buttons.chat.badge_value.multiple_items.accessibility.label", fallback: "{badgeValue} unread messages") + } + } + internal enum SingleItem { + internal enum Accessibility { + /// {badgeValue} unread message + internal static let label = Localization.tr("Localizable", "call.buttons.chat.badge_value.single_item.accessibility.label", fallback: "{badgeValue} unread message") + } + } + } + } + } + internal enum Connect { + internal enum FirstText { + internal enum Accessibility { + /// Displays operator name. + internal static let hint = Localization.tr("Localizable", "call.connect.first_text.accessibility.hint", fallback: "Displays operator name.") + } + } + internal enum SecondText { + internal enum Accessibility { + /// Displays call duration. + internal static let hint = Localization.tr("Localizable", "call.connect.second_text.accessibility.hint", fallback: "Displays call duration.") + } + } + } + internal enum Header { + internal enum Close { + internal enum Button { + internal enum Accessibility { + /// Activates minimize. + internal static let hint = Localization.tr("Localizable", "call.header.close.button.accessibility.hint", fallback: "Activates minimize.") + } + } + } + } + internal enum OnHold { + /// You can continue browsing while you are on hold + internal static let bottomText = Localization.tr("Localizable", "call.onHold.bottom_text", fallback: "You can continue browsing while you are on hold") + } + internal enum Operator { + internal enum Avatar { + internal enum Accessibility { + /// Displays operator avatar or placeholder. + internal static let hint = Localization.tr("Localizable", "call.operator.avatar.accessibility.hint", fallback: "Displays operator avatar or placeholder.") + /// Operator Avatar + internal static let label = Localization.tr("Localizable", "call.operator.avatar.accessibility.label", fallback: "Operator Avatar") + } + } + } + internal enum OperatorName { + internal enum Accessibility { + /// Displays operator name. + internal static let hint = Localization.tr("Localizable", "call.operator_name.accessibility.hint", fallback: "Displays operator name.") + } + } + internal enum Video { + internal enum Operator { + internal enum Accessibility { + /// Operator's Video + internal static let label = Localization.tr("Localizable", "call.video.operator.accessibility.label", fallback: "Operator's Video") + } + } + internal enum Visitor { + internal enum Accessibility { + /// Your Video + internal static let label = Localization.tr("Localizable", "call.video.visitor.accessibility.label", fallback: "Your Video") + } + } + } + } + internal enum CallVisualizer { + internal enum ScreenSharing { + /// Your Screen is Being Shared + internal static let message = Localization.tr("Localizable", "call_visualizer.screen_sharing.message", fallback: "Your Screen is Being Shared") + /// Screen Sharing + internal static let title = Localization.tr("Localizable", "call_visualizer.screen_sharing.title", fallback: "Screen Sharing") + internal enum Message { + internal enum Accessibility { + /// Message label + internal static let hint = Localization.tr("Localizable", "call_visualizer.screen_sharing.message.accessibility.hint", fallback: "Message label") + } + } + } + internal enum VisitorCode { + /// Your Visitor Code + internal static let title = Localization.tr("Localizable", "call_visualizer.visitor_code.title", fallback: "Your Visitor Code") + internal enum Action { + /// Close + internal static let close = Localization.tr("Localizable", "call_visualizer.visitor_code.action.close", fallback: "Close") + /// Refresh + internal static let refresh = Localization.tr("Localizable", "call_visualizer.visitor_code.action.refresh", fallback: "Refresh") + } + internal enum Close { + internal enum Accessibility { + /// Closes visitor code + internal static let hint = Localization.tr("Localizable", "call_visualizer.visitor_code.close.accessibility.hint", fallback: "Closes visitor code") + /// Close Button + internal static let label = Localization.tr("Localizable", "call_visualizer.visitor_code.close.accessibility.label", fallback: "Close Button") + } + } + internal enum Refresh { + internal enum Accessibility { + /// Generates new visitor code + internal static let hint = Localization.tr("Localizable", "call_visualizer.visitor_code.refresh.accessibility.hint", fallback: "Generates new visitor code") + /// Refresh Button + internal static let label = Localization.tr("Localizable", "call_visualizer.visitor_code.refresh.accessibility.label", fallback: "Refresh Button") + } + } + internal enum Title { + internal enum Accessibility { + /// Your five-digit visitor code is + internal static let hint = Localization.tr("Localizable", "call_visualizer.visitor_code.title.accessibility.hint", fallback: "Your five-digit visitor code is") + } + } + } + } + internal enum Chat { + /// Pick attachment + internal static let attachFiles = Localization.tr("Localizable", "chat.attach_files", fallback: "Pick attachment") + /// {operatorName} has joined the conversation. + internal static let operatorJoined = Localization.tr("Localizable", "chat.operator_joined", fallback: "{operatorName} has joined the conversation.") + /// New Messages + internal static let unreadMessageDivider = Localization.tr("Localizable", "chat.unread_message_divider", fallback: "New Messages") + internal enum Attachement { + /// Photo Library + internal static let photoLibrary = Localization.tr("Localizable", "chat.attachement.photo_library", fallback: "Photo Library") + /// Take Photo or Video + internal static let takePhoto = Localization.tr("Localizable", "chat.attachement.take_photo", fallback: "Take Photo or Video") + internal enum Upload { + /// Invalid file type! + internal static let unsupportedFile = Localization.tr("Localizable", "chat.attachement.upload.unsupported_file", fallback: "Invalid file type!") + } + } + internal enum Download { + /// Downloading file… + internal static let downloading = Localization.tr("Localizable", "chat.download.downloading", fallback: "Downloading file…") + } + internal enum Duration { + internal enum Accessibility { + /// Displays call duration. + internal static let label = Localization.tr("Localizable", "chat.duration.accessibility.label", fallback: "Displays call duration.") + } + } + internal enum File { + /// Failed to confirm the safety of the file. + internal static let infectedError = Localization.tr("Localizable", "chat.file.infected_error", fallback: "Failed to confirm the safety of the file.") + /// File size over 25MB limit! + internal static let tooLargeError = Localization.tr("Localizable", "chat.file.too_large_error", fallback: "File size over 25MB limit!") + internal enum Upload { + /// Uploading failed + internal static let failed = Localization.tr("Localizable", "chat.file.upload.failed", fallback: "Uploading failed") + /// Uploading file… + internal static let inProgress = Localization.tr("Localizable", "chat.file.upload.in_progress", fallback: "Uploading file…") + /// Checking safety of the file… + internal static let scanning = Localization.tr("Localizable", "chat.file.upload.scanning", fallback: "Checking safety of the file…") + /// Ready to send + internal static let success = Localization.tr("Localizable", "chat.file.upload.success", fallback: "Ready to send") + } + } + internal enum Input { + /// Enter Message + internal static let placeholder = Localization.tr("Localizable", "chat.input.placeholder", fallback: "Enter Message") + /// Send + internal static let send = Localization.tr("Localizable", "chat.input.send", fallback: "Send") + } + internal enum Message { + /// Send a message to start chatting + internal static let startEngagementPlaceholder = Localization.tr("Localizable", "chat.message.start_engagement_placeholder", fallback: "Send a message to start chatting") + internal enum Unread { + internal enum Accessibility { + /// Unread messages + internal static let label = Localization.tr("Localizable", "chat.message.unread.accessibility.label", fallback: "Unread messages") + } + } + } + internal enum Operator { + internal enum Avatar { + internal enum Accessibility { + /// Avatar + internal static let label = Localization.tr("Localizable", "chat.operator.avatar.accessibility.label", fallback: "Avatar") + } + } + internal enum Name { + internal enum Accessibility { + /// Displays operator name. + internal static let label = Localization.tr("Localizable", "chat.operator.name.accessibility.label", fallback: "Displays operator name.") + } + } + } + internal enum Status { + /// Delivered + internal static let delivered = Localization.tr("Localizable", "chat.status.delivered", fallback: "Delivered") + /// Operator typing + internal static let typing = Localization.tr("Localizable", "chat.status.typing", fallback: "Operator typing") + } + internal enum Upgrade { + internal enum Audio { + /// Upgraded to Audio Call + internal static let text = Localization.tr("Localizable", "chat.upgrade.audio.text", fallback: "Upgraded to Audio Call") + } + internal enum Video { + /// Upgraded to Video Call + internal static let text = Localization.tr("Localizable", "chat.upgrade.video.text", fallback: "Upgraded to Video Call") + } + } + internal enum Upload { + internal enum Remove { + internal enum Accessibility { + /// Remove upload + internal static let label = Localization.tr("Localizable", "chat.upload.remove.accessibility.label", fallback: "Remove upload") + } + } + } + } + internal enum Engagement { + /// Operator + internal static let defaultOperatorName = Localization.tr("Localizable", "engagement.default_operator_name", fallback: "Operator") + /// Minimize + internal static let minimizeVideoButton = Localization.tr("Localizable", "engagement.minimize_video_button", fallback: "Minimize") + /// {operatorName} has offered you to upgrade + internal static let offerUpgrade = Localization.tr("Localizable", "engagement.offer_upgrade", fallback: "{operatorName} has offered you to upgrade") + internal enum Connect { + /// We are here to help + internal static let placeholder = Localization.tr("Localizable", "engagement.connect.placeholder", fallback: "We are here to help") + /// Connecting with {operatorName} + internal static let with = Localization.tr("Localizable", "engagement.connect.with", fallback: "Connecting with {operatorName}") + } + internal enum End { + /// Are you sure you want to end engagement? + internal static let message = Localization.tr("Localizable", "engagement.end.message", fallback: "Are you sure you want to end engagement?") + internal enum Confirmation { + /// End Engagement? + internal static let header = Localization.tr("Localizable", "engagement.end.confirmation.header", fallback: "End Engagement?") + } + } + internal enum Ended { + /// Engagement Ended + internal static let header = Localization.tr("Localizable", "engagement.ended.header", fallback: "Engagement Ended") + /// This engagement has ended. + /// Thank you! + internal static let message = Localization.tr("Localizable", "engagement.ended.message", fallback: "This engagement has ended.\nThank you!") + } + internal enum QueueClosed { + /// We're sorry + internal static let header = Localization.tr("Localizable", "engagement.queue_closed.header", fallback: "We're sorry") + /// Operators are no longer available. + /// Please try again later. + internal static let message = Localization.tr("Localizable", "engagement.queue_closed.message", fallback: "Operators are no longer available. \nPlease try again later.") + } + internal enum QueueLeave { + /// Are you sure you want to leave? + internal static let header = Localization.tr("Localizable", "engagement.queue_leave.header", fallback: "Are you sure you want to leave?") + /// You will lose your place in the queue. + internal static let message = Localization.tr("Localizable", "engagement.queue_leave.message", fallback: "You will lose your place in the queue.") + } + internal enum QueueReconnectionFailed { + /// Please try again. + internal static let tryAgain = Localization.tr("Localizable", "engagement.queue_reconnection_failed.try_again", fallback: "Please try again.") + } + internal enum QueueTransferring { + /// Transferring + internal static let message = Localization.tr("Localizable", "engagement.queue_transferring.message", fallback: "Transferring") + } + internal enum QueueWait { + /// You can continue browsing and we will connect you automatically. + internal static let message = Localization.tr("Localizable", "engagement.queue_wait.message", fallback: "You can continue browsing and we will connect you automatically.") + } + internal enum SecureMessaging { + /// Messaging + internal static let title = Localization.tr("Localizable", "engagement.secure_messaging.title", fallback: "Messaging") + } + } + internal enum Error { + /// Something went wrong + internal static let general = Localization.tr("Localizable", "error.general", fallback: "Something went wrong") + /// Internal error + internal static let `internal` = Localization.tr("Localizable", "error.internal", fallback: "Internal error") + internal enum Unexpected { + /// We're sorry, there has been an unexpected error. + internal static let title = Localization.tr("Localizable", "error.unexpected.title", fallback: "We're sorry, there has been an unexpected error.") + } + } + internal enum General { + /// Accept + internal static let accept = Localization.tr("Localizable", "general.accept", fallback: "Accept") + /// Back + internal static let back = Localization.tr("Localizable", "general.back", fallback: "Back") + /// Browse + internal static let browse = Localization.tr("Localizable", "general.browse", fallback: "Browse") + /// Cancel + internal static let cancel = Localization.tr("Localizable", "general.cancel", fallback: "Cancel") + /// Close + internal static let close = Localization.tr("Localizable", "general.close", fallback: "Close") + /// Comment + internal static let comment = Localization.tr("Localizable", "general.comment", fallback: "Comment") + /// CompanyName + internal static let companyName = Localization.tr("Localizable", "general.company_name", fallback: "CompanyName") + /// Decline + internal static let decline = Localization.tr("Localizable", "general.decline", fallback: "Decline") + /// Download + internal static let download = Localization.tr("Localizable", "general.download", fallback: "Download") + /// End + internal static let end = Localization.tr("Localizable", "general.end", fallback: "End") + /// Message + internal static let message = Localization.tr("Localizable", "general.message", fallback: "Message") + /// No + internal static let no = Localization.tr("Localizable", "general.no", fallback: "No") + /// Ok + internal static let ok = Localization.tr("Localizable", "general.ok", fallback: "Ok") + /// Open + internal static let `open` = Localization.tr("Localizable", "general.open", fallback: "Open") + /// Powered by Glia + internal static let poweredBy = Localization.tr("Localizable", "general.powered_by", fallback: "Powered by Glia") + /// Retry + internal static let retry = Localization.tr("Localizable", "general.retry", fallback: "Retry") + /// Selected + internal static let selected = Localization.tr("Localizable", "general.selected", fallback: "Selected") + /// Submit + internal static let submit = Localization.tr("Localizable", "general.submit", fallback: "Submit") + /// Thank you! + internal static let thankYou = Localization.tr("Localizable", "general.thank_you", fallback: "Thank you!") + /// Yes + internal static let yes = Localization.tr("Localizable", "general.yes", fallback: "Yes") + /// You + internal static let you = Localization.tr("Localizable", "general.you", fallback: "You") + } + internal enum Gva { + /// This action is not currently supported on mobile. + internal static let errorUnsupported = Localization.tr("Localizable", "gva.error_unsupported", fallback: "This action is not currently supported on mobile.") + } + internal enum Media { + internal enum Audio { + /// Audio + internal static let name = Localization.tr("Localizable", "media.audio.name", fallback: "Audio") + } + internal enum Messaging { + /// Send a message and we’ll get back to you + /// within 48 hours + internal static let description = Localization.tr("Localizable", "media.messaging.description", fallback: "Send a message and we’ll get back to you \nwithin 48 hours") + } + internal enum Phone { + /// Phone + internal static let name = Localization.tr("Localizable", "media.phone.name", fallback: "Phone") + } + internal enum Text { + /// Chat + internal static let name = Localization.tr("Localizable", "media.text.name", fallback: "Chat") + } + internal enum Video { + /// Video + internal static let name = Localization.tr("Localizable", "media.video.name", fallback: "Video") + } + } + internal enum MessageCenter { + /// Check messages + internal static let checkMessages = Localization.tr("Localizable", "message_center.check_messages", fallback: "Check messages") + /// Messaging + internal static let header = Localization.tr("Localizable", "message_center.header", fallback: "Messaging") + internal enum Confirmation { + /// Your message has been sent. We will get back to you within 48 hours. + internal static let subtitle = Localization.tr("Localizable", "message_center.confirmation.subtitle", fallback: "Your message has been sent. We will get back to you within 48 hours.") + internal enum CheckMessages { + internal enum Accessibility { + /// Navigates you to the chat transcript. + internal static let hint = Localization.tr("Localizable", "message_center.confirmation.check_messages.accessibility.hint", fallback: "Navigates you to the chat transcript.") + /// Check messages + internal static let label = Localization.tr("Localizable", "message_center.confirmation.check_messages.accessibility.label", fallback: "Check messages") + } + } + } + internal enum NotAuthenticated { + /// We could not verify your authentication status. + internal static let message = Localization.tr("Localizable", "message_center.not_authenticated.message", fallback: "We could not verify your authentication status.") + } + internal enum Unavailable { + /// The Message Center is currently unavailable. Please try again later. + internal static let message = Localization.tr("Localizable", "message_center.unavailable.message", fallback: "The Message Center is currently unavailable. Please try again later.") + /// Message Center Unavailable + internal static let title = Localization.tr("Localizable", "message_center.unavailable.title", fallback: "Message Center Unavailable") + } + internal enum Welcome { + /// The message cannot exceed 10000 characters. + internal static let messageLengthWarning = Localization.tr("Localizable", "message_center.welcome.message_length_warning", fallback: "The message cannot exceed 10000 characters.") + /// Your message + internal static let messageTitle = Localization.tr("Localizable", "message_center.welcome.message_title", fallback: "Your message") + /// Welcome to Message Center + internal static let title = Localization.tr("Localizable", "message_center.welcome.title", fallback: "Welcome to Message Center") + internal enum CheckMessages { + internal enum Accessibility { + /// Navigates you to the chat transcript. + internal static let hint = Localization.tr("Localizable", "message_center.welcome.check_messages.accessibility.hint", fallback: "Navigates you to the chat transcript.") + } + } + internal enum FilePicker { + internal enum Accessibility { + /// Opens the file picker to attach media. + internal static let hint = Localization.tr("Localizable", "message_center.welcome.file_picker.accessibility.hint", fallback: "Opens the file picker to attach media.") + } + } + internal enum FilePickerLabel { + internal enum Accessibility { + /// File picker + internal static let label = Localization.tr("Localizable", "message_center.welcome.file_picker_label.accessibility.label", fallback: "File picker") + } + } + internal enum MessageTextView { + /// Enter your message + internal static let placeholder = Localization.tr("Localizable", "message_center.welcome.message_text_view.placeholder", fallback: "Enter your message") + } + internal enum Send { + internal enum Accessibility { + /// Sends a secure message. + internal static let hint = Localization.tr("Localizable", "message_center.welcome.send.accessibility.hint", fallback: "Sends a secure message.") + } + } + } + } + internal enum ScreenSharing { + internal enum VisitorScreen { + /// End screen sharing + internal static let end = Localization.tr("Localizable", "screen_sharing.visitor_screen.end", fallback: "End screen sharing") + internal enum Disclaimer { + /// You are about to share your screen + internal static let title = Localization.tr("Localizable", "screen_sharing.visitor_screen.disclaimer.title", fallback: "You are about to share your screen") + } + } + } + internal enum Screensharing { + internal enum VisitorScreen { + internal enum Disclaimer { + /// Depending on your selection, your entire screen might be shared with the operator, not just the application window. + internal static let info = Localization.tr("Localizable", "screensharing.visitor_screen.disclaimer.info", fallback: "Depending on your selection, your entire screen might be shared with the operator, not just the application window.") + } + } + } + internal enum SendMessage { + /// Send message + internal static let send = Localization.tr("Localizable", "send_message.send", fallback: "Send message") + /// Sending… + internal static let sending = Localization.tr("Localizable", "send_message.sending", fallback: "Sending…") + } + internal enum Survey { + internal enum Action { + /// Please provide an answer. + internal static let validationError = Localization.tr("Localizable", "survey.action.validation_error", fallback: "Please provide an answer.") + } + internal enum Question { + internal enum OptionButton { + internal enum Selected { + internal enum Accessibility { + /// Selected: {buttonTitle} + internal static let label = Localization.tr("Localizable", "survey.question.option_button.selected.accessibility.label", fallback: "Selected: {buttonTitle}") + } + } + internal enum Unselected { + internal enum Accessibility { + /// Unselected: {buttonTitle} + internal static let label = Localization.tr("Localizable", "survey.question.option_button.unselected.accessibility.label", fallback: "Unselected: {buttonTitle}") + } + } + } + internal enum TextField { + internal enum Accessibility { + /// Enter the answer + internal static let hint = Localization.tr("Localizable", "survey.question.text_field.accessibility.hint", fallback: "Enter the answer") + } + } + internal enum Title { + internal enum Accessibility { + /// Required + internal static let label = Localization.tr("Localizable", "survey.question.title.accessibility.label", fallback: "Required") + } + } + } + internal enum Validation { + internal enum Title { + internal enum Accessibility { + /// Please provide an answer for question above + internal static let label = Localization.tr("Localizable", "survey.validation.title.accessibility.label", fallback: "Please provide an answer for question above") + } + } + } + } + internal enum Upgrade { + internal enum Audio { + /// {operatorName} has offered you to upgrade to audio + internal static let title = Localization.tr("Localizable", "upgrade.audio.title", fallback: "{operatorName} has offered you to upgrade to audio") + } + internal enum Video { + internal enum OneWay { + /// {operatorName} has offered you to see their video + internal static let title = Localization.tr("Localizable", "upgrade.video.one_way.title", fallback: "{operatorName} has offered you to see their video") + } + internal enum TwoWay { + /// {operatorName} has offered you to upgrade to video + internal static let title = Localization.tr("Localizable", "upgrade.video.two_way.title", fallback: "{operatorName} has offered you to upgrade to video") + } + } + } + internal enum VisitorCode { + /// Could not load the visitor code. Please try refreshing. + internal static let failed = Localization.tr("Localizable", "visitor_code.failed", fallback: "Could not load the visitor code. Please try refreshing.") + } +} +// 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 Localization { + private static func tr(_ table: String, _ key: String, _ args: CVarArg..., fallback value: String) -> String { + let format = BundleToken.bundle.localizedString(forKey: key, value: value, table: table) + return String(format: format, locale: Locale.current, arguments: args) + } +} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + #if SWIFT_PACKAGE + return Bundle.module + #else + return Bundle(for: BundleToken.self) + #endif + }() +} +// swiftlint:enable convenience_type + +// swiftlint:enable all diff --git a/GliaWidgets/Resources/L10n+BackwardsCompatibility.swift b/GliaWidgets/Resources/L10n+BackwardsCompatibility.swift deleted file mode 100644 index 3ba9c7f37..000000000 --- a/GliaWidgets/Resources/L10n+BackwardsCompatibility.swift +++ /dev/null @@ -1,364 +0,0 @@ -import Foundation - -extension L10n.Call { - static let onHold = L10n.Call.OnHold.topText - - struct Bubble { - struct Accessibility { - static let hint = L10n.Call.Accessibility.Bubble.hint - static let label = L10n.Call.Accessibility.Bubble.label - } - } - - struct Button { - static let mute = L10n.Call.Buttons.Mute.Inactive.title - static let speaker = L10n.Call.Buttons.Speaker.title - static let unmute = L10n.Call.Buttons.Mute.Active.title - } - - struct Header { - struct CloseButton { - struct Accessibility { - static let hint = L10n.Call.Accessibility.Header.BackButton.hint - } - } - } - - struct OperatorName { - struct Accessibility { - static let hint = L10n.Call.Accessibility.OperatorName.hint - } - } -} - -extension L10n.Call.Buttons.Chat { - struct BadgeValue { - struct MultipleItems { - struct Accessibility { - static let label = L10n.Call.Accessibility.Buttons.Chat.BadgeValue.multipleItems - } - } - - struct SingleItem { - struct Accessibility { - static let label = L10n.Call.Accessibility.Buttons.Chat.BadgeValue.singleItem - } - } - } -} - -extension L10n.Call.Connect { - struct FirstText { - struct Accessibility { - static let hint = L10n.Call.Accessibility.Connect.Queue.FirstText.hint - } - } - - struct SecondText { - struct Accessibility { - static let hint = L10n.Call.Accessibility.Connect.Queue.SecondText.hint - } - } -} - -extension L10n.Call.Operator { - struct Avatar { - struct Accessibility { - static let label = L10n.Call.Accessibility.Operator.Avatar.label - static let hint = L10n.Call.Accessibility.Operator.Avatar.hint - } - } -} - -extension L10n.Call.Video { - struct Operator { - struct Accessiblity { - static let label = L10n.Call.Accessibility.Video.Operator.label - } - } - - struct Visitor { - struct Accessibility { - static let label = L10n.Call.Accessibility.Video.Visitor.label - } - } -} - -extension L10n.CallVisualizer.ScreenSharing { - struct Message { - struct Accessibility { - static let hint = L10n.CallVisualizer.ScreenSharing.Accessibility.messageHint - } - } -} - -extension L10n.CallVisualizer.VisitorCode { - static let title = L10n.CallVisualizer.VisitorCode.Title.standard - - struct Close { - struct Accessibility { - static let hint = L10n.CallVisualizer.VisitorCode.Accessibility.closeHint - static let label = L10n.CallVisualizer.VisitorCode.Accessibility.closeLabel - } - } - - struct Refresh { - struct Accessibility { - static let hint = L10n.CallVisualizer.VisitorCode.Accessibility.refreshHint - static let label = L10n.CallVisualizer.VisitorCode.Accessibility.refreshLabel - } - } -} - -extension L10n.CallVisualizer.VisitorCode.Title { - struct Accessibility { - static let label = L10n.CallVisualizer.VisitorCode.Accessibility.titleHint - } -} - -extension L10n.Chat { - static let attachFiles = L10n.Chat.Accessibility.PickMedia.PickAttachmentButton.label - static let operatorJoined = L10n.Chat.Connect.Connected.secondText - static let unreadMessageDivider = L10n.Chat.SecureTranscript.unreadMessageDividerTitle - - struct Attachment { - static let photoLibrary = L10n.Chat.PickMedia.photo - static let takePhoto = L10n.Chat.PickMedia.takePhoto - - struct Upload { - static let unsupportedFile = L10n.Chat.Upload.Error.unsupportedFileType - } - } - - struct Operator { - struct Avatar { - struct Accessibility { - static let label = L10n.Chat.Accessibility.Operator.Avatar.label - } - } - - struct Name { - struct Accessibility { - static let label = L10n.Chat.Accessibility.Connect.Queue.FirstText.hint - } - } - } -} - -extension L10n.Chat.File { - static let infectedError = L10n.Chat.Upload.Error.safetyCheckFailed - static let tooLargeError = L10n.Chat.Upload.Error.fileTooBig -} - -extension L10n.Chat.File.Upload { - static let failed = L10n.Chat.Upload.Error.generic - static let inProgress = L10n.Chat.Upload.uploading - static let success = L10n.Chat.Upload.uploaded -} - -extension L10n.Chat.Input { - static let placeholder = L10n.Chat.Message.enterMessagePlaceholder -} - -extension L10n.Chat.Upload { - struct Remove { - struct Accessibility { - static let label = L10n.Chat.Accessibility.Upload.RemoveUpload.label - } - } -} - -extension L10n.Chat.Message { - struct Unread { - struct Accessibility { - static let label = L10n.Chat.Accessibility.Message.UnreadMessagesIndicator.label - } - } -} - -extension L10n { - struct Engagement { - static let defaultOperatorName = L10n.operator - static let minimizeVideoButton = L10n.Call.Buttons.Minimize.title - static let offerUpgrade = L10n.Alert.MediaUpgrade.title - - struct Connect { - static let placeholder = L10n.Call.Connect.Queue.secondText - static let with = L10n.Call.Connect.Connecting.firstText - } - - struct End { - static let message = L10n.Alert.EndEngagement.message - - struct Confirmation { - static let header = L10n.Alert.EndEngagement.title - } - } - - struct Ended { - static let header = L10n.Alert.OperatorEndedEngagement.title - static let message = L10n.Alert.OperatorEndedEngagement.message - } - - struct QueueClosed { - static let header = L10n.Alert.OperatorsUnavailable.title - static let message = L10n.Alert.OperatorsUnavailable.message - } - - struct QueueLeave { - static let header = L10n.Alert.LeaveQueue.title - static let message = L10n.Alert.LeaveQueue.message - } - - struct QueueReconnectionFailed { - static let tryAgain = L10n.Alert.Unexpected.message - } - - struct QueueTransferring { - static let message = L10n.Chat.Connect.Transferring.firstText - } - - struct QueueWait { - static let message = L10n.Call.bottomText - } - - struct SecureMessaging { - static let title = L10n.MessageCenter.Welcome.header - } - } - - struct Media { - struct Audio { - static let name = L10n.Call.Audio.title - } - - struct Phone { - static let name = L10n.Alert.MediaUpgrade.Phone.title - } - - struct Text { - static let name = L10n.Chat.title - } - - struct Video { - static let name = L10n.Call.Video.title - } - } -} - -extension L10n.MessageCenter { - static let checkMessages = L10n.MessageCenter.Welcome.checkMessages - static let header = L10n.MessageCenter.Welcome.header - - struct NotAuthenticated { - static let message = L10n.Alert.UnavailableMessageCenter.notAuthenticatedMessage - } - - struct Unavailable { - static let message = L10n.Alert.UnavailableMessageCenter.message - static let title = L10n.Alert.UnavailableMessageCenter.title - } -} - -extension L10n.MessageCenter.Welcome { - struct CheckMessages { - struct Accessibility { - static let hint = L10n.MessageCenter.Welcome.Accessibility.checkMessagesHint - } - } - - struct FilePicker { - struct Acccessibility { - static let hint = L10n.MessageCenter.Welcome.Accessibility.filePickerHint - static let label = L10n.MessageCenter.Welcome.Accessibility.filePickerLabel - } - } - - struct MessageTextView { - static let placeholder = L10n.MessageCenter.Welcome.messageTextViewNormal - } - - struct Send { - struct Accessibility { - static let hint = L10n.MessageCenter.Welcome.Accessibility.sendHint - } - } -} -extension L10n.MessageCenter.Confirmation { - struct CheckMessages { - struct Accessibility { - static let hint = L10n.MessageCenter.Welcome.Accessibility.checkMessagesHint - static let label = L10n.MessageCenter.Welcome.Accessibility.checkMessagesLabel - } - } -} - -extension L10n { - struct ScreenSharing { - struct VisitorScreen { - static let end = L10n.CallVisualizer.ScreenSharing.Button.title - } - } -} - -extension L10n.Survey.Question { - struct OptionButton { - struct Selected { - struct Accessibility { - static let label = L10n.Survey.Accessibility.Question.OptionButton.Selected.label - } - } - - struct Unselected { - struct Accessibility { - static let label = L10n.Survey.Accessibility.Question.OptionButton.Unselected.label - } - } - } - - struct TextField { - struct Accessibility { - static let hint = L10n.Survey.Accessibility.Question.TextField.hint - } - } -} - -extension L10n.Survey.Question.Title { - struct Accessibility { - static let label = L10n.Survey.Accessibility.Question.Title.value - } -} - -extension L10n.Survey { - struct Validation { - struct Title { - struct Accessibility { - static let label = L10n.Survey.Accessibility.Validation.Title.label - } - } - } -} - -extension L10n { - struct Upgrade { - struct Audio { - static let title = L10n.Alert.AudioUpgrade.title - } - - struct Video { - struct OneWay { - static let title = L10n.Alert.VideoUpgrade.OneWay.title - } - - struct TwoWay { - static let title = L10n.Alert.VideoUpgrade.TwoWay.title - } - } - } -} - -extension L10n { - struct VisitorCode { - static let failed = L10n.CallVisualizer.VisitorCode.Title.error - } -} diff --git a/GliaWidgets/Resources/en.lproj/Deprecated.strings b/GliaWidgets/Resources/en.lproj/Deprecated.strings new file mode 100644 index 000000000..1b7714a1e --- /dev/null +++ b/GliaWidgets/Resources/en.lproj/Deprecated.strings @@ -0,0 +1,273 @@ +"poweredBy" = "Powered by"; +"operator" = "Operator"; + +"alert.action.yes" = "Yes"; +"alert.action.no" = "No"; +"alert.action.decline" = "Decline"; +"alert.action.accept" = "Accept"; +"alert.action.ok" = "OK"; +"alert.action.settings" = "Settings"; +"alert.action.cancel" = "Cancel"; + +"alert.accessibility.action.yes" = "Yes"; +"alert.accessibility.action.no" = "No"; +"alert.accessibility.action.decline" = "Decline"; +"alert.accessibility.action.accept" = "Accept"; +"alert.accessibility.action.ok" = "OK"; +"alert.accessibility.action.settings" = "Settings"; +"alert.accessibility.action.cancel" = "Cancel"; + +"alert.leaveQueue.title" = "Are you sure you want to leave?"; +"alert.leaveQueue.message" = "You will lose your place in the queue."; + +"alert.endEngagement.title" = "End Engagement?"; +"alert.endEngagement.message" = "Are you sure you want to end engagement?"; + +"alert.operatorEndedEngagement.title" = "Engagement Ended"; +"alert.operatorEndedEngagement.message" = "This engagement has ended.\nThank you!"; + +"alert.operatorsUnavailable.title" = "We're sorry"; +"alert.operatorsUnavailable.message" = "Operators are no longer available.\nPlease try again later."; + +"alert.unexpected.title" = "We're sorry, there has been an unexpected error."; +"alert.unexpected.message" = "Please try again later."; + +"alert.unavailableMessageCenter.title" = "Message Center Unavailable"; +"alert.unavailableMessageCenter.message" = "The Message Center is currently unavailable. Please try again later."; +"alert.unavailableMessageCenter.notAuthenticatedMessage" = "We could not verify your authentication status."; + +"alert.apiError.title" = "We're sorry, there has been an error."; +"alert.apiError.message" = "{message}"; + +"alert.mediaUpgrade.title" = "{operatorName} has offered you to upgrade"; +"alert.mediaUpgrade.audio.title" = "Audio"; +"alert.mediaUpgrade.audio.info" = "Speak through your device"; +"alert.mediaUpgrade.phone.title" = "Phone"; +"alert.mediaUpgrade.phone.info" = "Enter your number and we'll call you"; + +"alert.audioUpgrade.title" = "{operatorName} has offered you to upgrade to audio"; +"alert.videoUpgrade.oneWay.title" = "{operatorName} has offered you to see their video"; +"alert.videoUpgrade.twoWay.title" = "{operatorName} has offered you to upgrade to video"; + +"alert.microphonePermission.title" = "Unable to access microphone"; +"alert.microphonePermission.message" = "Allow access to your microphone from device menu: “Settings” - “Privacy” - “Microphone”"; +"alert.cameraPermission.title" = "Unable to access camera"; +"alert.cameraPermission.message" = "Allow access to your camera from device menu: “Settings” - “Privacy” - “Camera”"; + +"alert.mediaSourceNotAvailable.title" = "Unable to access media source"; +"alert.mediaSourceNotAvailable.message" = "This media source is not available on your device"; + +"alert.screenSharing.start.title" = "{operatorName} has asked you to share your screen"; +"alert.screenSharing.start.message" = "{operatorName} would like to see the screen of your device"; +"alert.screenSharing.stop.title" = "Stop screen sharing?"; +"alert.screenSharing.stop.message" = "Are you sure you want to stop sharing your screen?"; + +"alert.visitorCode.title" = "Your Visitor Code"; + +"chat.title" = "Chat"; +"chat.endButton.title" = "End"; +"chat.connect.queue.firstText" = "CompanyName"; +"chat.connect.queue.secondText" = "We're here to help!"; +"chat.connect.connecting.firstText" = "Connecting with {operatorName}"; +"chat.connect.connecting.secondText" = ""; +"chat.connect.connected.firstText" = "{operatorName}"; +"chat.connect.connected.secondText" = "{operatorName} has joined the conversation."; +"chat.connect.transferring.firstText" = "Transferring"; +"chat.message.enterMessagePlaceholder" = "Enter Message"; +"chat.message.startEngagementPlaceholder" = "Send a message to start chatting"; +"chat.message.choiceCardPlaceholder" = "Tap on the answer above"; +"chat.message.status.delivered" = "Delivered"; +"chat.upgrade.audio.text" = "Upgraded to Audio Call"; +"chat.upgrade.video.text" = "Upgraded to Video Call"; +"chat.pickMedia.photo" = "Photo Library"; +"chat.pickMedia.takePhoto" = "Take Photo or Video"; +"chat.pickMedia.browse" = "Browse"; +"chat.upload.uploading" = "Uploading file…"; +"chat.upload.uploaded" = "Ready to send"; +"chat.upload.failed" = "Uploading failed"; +"chat.upload.error.fileTooBig" = "File size over 25MB limit!"; +"chat.upload.error.unsupportedFileType" = "Invalid file type!"; +"chat.upload.error.safetyCheckFailed" = "Failed to confirm the safety of the file."; +"chat.file.upload.scanning" = "Checking safety of the file…"; +"chat.upload.error.network" = "Network error."; +"chat.upload.error.generic" = "Failed to upload."; +"chat.download.download" = "Download"; +"chat.download.downloading" = "Downloading file…"; +"chat.download.open" = "Open"; +"chat.download.failed" = "Download failed"; +"chat.download.failed.separator" = " | "; +"chat.download.failed.retry" = "Retry"; +"chat.secureTranscript.headerTitle" = "Messaging"; +"chat.secureTranscript.unreadMessageDividerTitle" = "New Messages"; + +"chat.accessibility.upload.removeUpload.label" = "Remove upload"; +"chat.accessibility.upload.progress.percentValue" = "{uploadPercentValue}%%"; +"chat.accessibility.upload.progress.fileNameWithProgressValue" = "{uploadedFileName}, {uploadPercentValue}%%"; + +"chat.accessibility.download.state.none" = "{downloadedFileName}, {downloadedFileState}"; +"chat.accessibility.download.state.downloading" = "{downloadedFileName}, {downloadedFileState} {downloadPercentValue}%%"; +"chat.accessibility.download.state.downloaded" = "{downloadedFileName}, {downloadedFileState}"; +"chat.accessibility.download.state.error" = "{downloadedFileName}, {downloadedFileState}"; + +"chat.accessibility.message.messageInput.label" = "Message"; +"chat.accessibility.pickMedia.pickAttachmentButton.label" = "Pick attachment"; +"chat.accessibility.message.sendButton.label" = "Send"; +"chat.accessibility.message.attachmentMessageLabel" = "Attachment from {fileSender}"; +"chat.accessibility.message.you" = "You"; +"chat.accessibility.message.choiceCard.buttonState.normal" = ""; +"chat.accessibility.message.choiceCard.buttonState.selected" = "Selected"; +"chat.accessibility.message.choiceCard.buttonState.disabled" = "Disabled"; +"chat.accessibility.header.backButton.label" = "back"; +"chat.accessibility.header.backButton.hint" = ""; +"chat.accessibility.header.endButton.label" = "End"; +"chat.accessibility.header.closeButton.label" = "Close"; +"chat.accessibility.header.closeButton.hint" = ""; +"chat.accessibility.header.endScreenShareButton.label" = "End screen share"; +"chat.accessibility.header.endScreenShareButton.hint" = ""; +"chat.accessibility.message.choiceCard.image.label" = "Choice card"; +"chat.accessibility.message.unreadMessagesIndicator.label" = "Unread messages"; +"chat.accessibility.message.operator.typingIndicator.label" = "{operatorName} is typing"; +"chat.accessibility.operator.avatar.label" = "Avatar"; +"chat.accessibility.operator.avatar.hint" = "Displays operator avatar or placeholder."; +"chat.accessibility.connect.queue.firstText.hint" = "Displays operator name."; +"chat.accessibility.connect.queue.secondText.hint" = "Displays call duration."; +"chat.accessibility.connect.connecting.firstText.hint" = "Displays operator name."; +"chat.accessibility.connect.connecting.secondText.hint" = "Displays call duration."; +"chat.accessibility.connect.connected.firstText.hint" = "Displays operator name."; +"chat.accessibility.connect.connected.secondText.hint" = "Displays call duration."; +"chat.accessibility.visitorName" = "You"; +"chat.accessibility.chatCallUpgrade.audio.duration.hint" = "Displays call duration."; +"chat.accessibility.chatCallUpgrade.video.duration.hint" = "Displays call duration."; + +"call.audio.title" = "Audio"; +"call.video.title" = "Video"; +"call.endButton.title" = "End"; +"call.connect.queue.firstText" = "CompanyName"; +"call.connect.queue.secondText" = "We're here to help!"; +"call.connect.connecting.firstText" = "Connecting with {operatorName}"; +"call.connect.connecting.secondText" = ""; +"call.connect.connected.firstText" = "{operatorName}"; +"call.connect.connected.secondText" = "{callDuration}"; +"call.connect.transferring.firstText" = "Transferring"; +"call.operator.name" = "{operatorName}"; +"call.topText" = "(By default your video will be off)"; +"call.bottomText" = "You can continue browsing and we’ll connect you automatically."; +"call.buttons.chat.title" = "Chat"; +"call.buttons.video.title" = "Video"; +"call.buttons.mute.inactive.title" = "Mute"; +"call.buttons.mute.active.title" = "Unmute"; +"call.buttons.speaker.title" = "Speaker"; +"call.buttons.minimize.title" = "Minimize"; +"call.onHold.topText" = "On Hold"; +"call.onHold.bottomText" = "You can continue browsing while you are on hold"; +"call.onHold.localVideoStreamLabelText" = "You"; + +"call.accessibility.header.backButton.label" = "Back"; +"call.accessibility.header.backButton.hint" = "Activates minimize."; +"call.accessibility.header.endButton.label" = "End"; +"call.accessibility.header.closeButton.label" = "Close"; +"call.accessibility.header.closeButton.hint" = ""; +"call.accessibility.header.endScreenShareButton.label" = "End"; +"call.accessibility.header.endScreenShareButton.hint" = ""; +"call.accessibility.bubble.label" = "Operator Avatar"; +"call.accessibility.bubble.hint" = "Deactivates minimize."; +"call.accessibility.operatorName.hint" = "Displays operator name."; +"call.accessibility.callDuration.hint" = "Displays call duration."; +"call.accessibility.video.operator.label" = "Operator's Video"; +"call.accessibility.video.visitor.label" = "Your Video"; +"call.accessibility.operator.avatar.label" = "Operator Avatar"; +"call.accessibility.operator.avatar.hint" = "Displays operator avatar or placeholder."; +"call.accessibility.connect.queue.firstText.hint" = "Displays operator name."; +"call.accessibility.connect.queue.secondText.hint" = "Displays call duration."; +"call.accessibility.connect.connecting.firstText.hint" = "Displays operator name."; +"call.accessibility.connect.connecting.secondText.hint" = "Displays call duration."; +"call.accessibility.connect.connected.firstText.hint" = "Displays operator name."; +"call.accessibility.connect.connected.secondText.hint" = "Displays call duration."; +"call.accessibility.buttons.chat.active.label" = "Selected"; +"call.accessibility.buttons.chat.inactive.label" = ""; +"call.accessibility.buttons.chat.badgeValue.singleItem" = "{badgeValue} unread message"; +"call.accessibility.buttons.chat.badgeValue.multipleItems" = "{badgeValue} unread messages"; +"call.accessibility.buttons.chat.titleAndBadgeValue" = "{buttonTitle}, {badgeValue}"; +"call.accessibility.buttons.video.active.label" = "Selected"; +"call.accessibility.buttons.video.inactive.label" = ""; +"call.accessibility.buttons.video.badgeValue.singleItem" = ""; +"call.accessibility.buttons.video.badgeValue.multipleItems" = ""; +"call.accessibility.buttons.video.titleAndBadgeValue" = "{buttonTitle}, {badgeValue}"; +"call.accessibility.buttons.mute.active.label" = "Selected"; +"call.accessibility.buttons.mute.inactive.label" = ""; +"call.accessibility.buttons.mute.badgeValue.singleItem" = ""; +"call.accessibility.buttons.mute.badgeValue.multipleItems" = ""; +"call.accessibility.buttons.mute.titleAndBadgeValue" = "{buttonTitle}, {badgeValue}"; +"call.accessibility.buttons.speaker.active.label" = "Selected"; +"call.accessibility.buttons.speaker.inactive.label" = ""; +"call.accessibility.buttons.speaker.badgeValue.singleItem" = ""; +"call.accessibility.buttons.speaker.badgeValue.multipleItems" = ""; +"call.accessibility.buttons.speaker.titleAndBadgeValue" = "{buttonTitle}, {badgeValue}"; +"call.accessibility.buttons.minimize.active.label" = "Selected"; +"call.accessibility.buttons.minimize.inactive.label" = ""; +"call.accessibility.buttons.minimize.badgeValue.singleItem" = ""; +"call.accessibility.buttons.minimize.badgeValue.multipleItems" = ""; +"call.accessibility.buttons.minimize.titleAndBadgeValue" = "{buttonTitle}, {badgeValue}"; + +"survey.action.cancel" = "Cancel"; +"survey.action.submit" = "Submit"; +"survey.action.yes" = "Yes"; +"survey.action.no" = "No"; +"survey.action.validationError" = "Please provide an answer."; +"survey.question.title.asterisk" = " *"; + +"survey.accessibility.footer.cancelButton.label" = "Cancel"; +"survey.accessibility.footer.submitButton.label" = "Submit"; +"survey.accessibility.question.title.value" = "Required"; +"survey.accessibility.question.textField.hint" = "Enter the answer"; +"survey.accessibility.question.optionButton.selected.label" = "Selected: {buttonTitle}"; +"survey.accessibility.question.optionButton.unselected.label" = "Unselected: {buttonTitle}"; +"survey.accessibility.validation.title.label" = "Please provide an answer for question above"; + +"messageCenter.welcome.messageLengthWarning" = "The message cannot exceed 10000 characters."; +"messageCenter.welcome.header" = "Messaging"; +"messageCenter.welcome.title" = "Welcome to Message Center"; +"messageCenter.welcome.subtitle" = "Send a message and we’ll get back to you within 48 hours"; +"messageCenter.welcome.checkMessages" = "Check messages"; +"messageCenter.welcome.messageTitle" = "Your message"; +"messageCenter.welcome.messageTextViewNormal" = "Enter your message"; +"messageCenter.welcome.messageTextViewActive" = "Enter your message"; +"messageCenter.welcome.messageTextViewDisabled" = "Enter your message"; +"messageCenter.welcome.sendEnabled" = "Send"; +"messageCenter.welcome.sendDisabled" = "Send"; +"messageCenter.welcome.sendLoading" = "Send"; +"messageCenter.welcome.accessibility.checkMessagesLabel" = "Check messages"; +"messageCenter.welcome.accessibility.checkMessagesHint" = "Navigates you to the chat transcript."; +"messageCenter.welcome.accessibility.filePickerLabel" = "File picker"; +"messageCenter.welcome.accessibility.filePickerHint" = "Opens the file picker to attach media."; +"messageCenter.welcome.accessibility.sendLabel" = "Send"; +"messageCenter.welcome.accessibility.sendHint" = "Sends a secure message."; +"messageCenter.confirmation.header" = "Messaging"; +"messageCenter.confirmation.title" = "Thank you!"; +"messageCenter.confirmation.subtitle" = "Your message has been sent. We will get back to you within 48 hours."; +"messageCenter.confirmation.checkMessages" = "Check messages"; +"messageCenter.confirmation.accessibility.checkMessagesLabel" = "Check messages"; +"messageCenter.confirmation.accessibility.checkMessagesHint" = "Navigates you to the chat transcript."; + +"callVisualizer.visitorCode.title.standard" = "Your Visitor Code"; +"callVisualizer.visitorCode.title.error" = "Could not load the visitor code. Please try refreshing."; +"callVisualizer.visitorCode.action.refresh" = "Refresh"; +"callVisualizer.visitorCode.action.close" = "Close"; +"callVisualizer.visitorCode.accessibility.titleHint" = "Your five-digit visitor code is"; +"callVisualizer.visitorCode.accessibility.refreshLabel" = "Refresh Button"; +"callVisualizer.visitorCode.accessibility.refreshHint" = "Generates new visitor code"; +"callVisualizer.visitorCode.accessibility.closeLabel" = "Close Button"; +"callVisualizer.visitorCode.accessibility.closeHint" = "Closes visitor code"; +"callVisualizer.screenSharing.title" = "Screen Sharing"; +"callVisualizer.screenSharing.message" = "Your Screen is Being Shared"; +"callVisualizer.screenSharing.button.title" = "End Screen Sharing"; +"callVisualizer.screenSharing.accessibility.messageHint" = "Message label"; +"callVisualizer.screenSharing.accessibility.buttonLabel" = "End screen sharing"; +"callVisualizer.screenSharing.accessibility.buttonHint" = "Ends screen sharing"; + +"gva.error_unsupported" = "This action is not currently supported on mobile"; +"chat.input.send" = "Send"; +"chat.status.typing" = "Operator typing"; +"screensharing.visitor_screen.disclaimer.info" = "Depending on your selection, your entire screen might be shared with the operator, not just the application window."; +"send_message.send" = "Send message"; +"send_message.sending" = "Sending…"; diff --git a/GliaWidgets/Resources/en.lproj/Localizable.strings b/GliaWidgets/Resources/en.lproj/Localizable.strings index 61b250079..539ed3bcc 100644 --- a/GliaWidgets/Resources/en.lproj/Localizable.strings +++ b/GliaWidgets/Resources/en.lproj/Localizable.strings @@ -1,93 +1,114 @@ -"poweredBy" = "Powered by"; -"operator" = "Operator"; - -"alert.action.yes" = "Yes"; -"alert.action.no" = "No"; -"alert.action.decline" = "Decline"; -"alert.action.accept" = "Accept"; -"alert.action.ok" = "OK"; -"alert.action.settings" = "Settings"; -"alert.action.cancel" = "Cancel"; - -"alert.accessibility.action.yes" = "Yes"; -"alert.accessibility.action.no" = "No"; -"alert.accessibility.action.decline" = "Decline"; -"alert.accessibility.action.accept" = "Accept"; -"alert.accessibility.action.ok" = "OK"; -"alert.accessibility.action.settings" = "Settings"; -"alert.accessibility.action.cancel" = "Cancel"; - -"alert.leaveQueue.title" = "Are you sure you want to leave?"; -"alert.leaveQueue.message" = "You will lose your place in the queue."; - -"alert.endEngagement.title" = "End Engagement?"; -"alert.endEngagement.message" = "Are you sure you want to end engagement?"; - -"alert.operatorEndedEngagement.title" = "Engagement Ended"; -"alert.operatorEndedEngagement.message" = "This engagement has ended.\nThank you!"; - -"alert.operatorsUnavailable.title" = "We're sorry"; -"alert.operatorsUnavailable.message" = "Operators are no longer available.\nPlease try again later."; - -"alert.unexpected.title" = "We're sorry, there has been an unexpected error."; -"alert.unexpected.message" = "Please try again later."; - -"alert.unavailableMessageCenter.title" = "Message Center Unavailable"; -"alert.unavailableMessageCenter.message" = "The Message Center is currently unavailable. Please try again later."; -"alert.unavailableMessageCenter.notAuthenticatedMessage" = "We could not verify your authentication status."; - -"alert.apiError.title" = "We're sorry, there has been an error."; -"alert.apiError.message" = "{message}"; - -"alert.mediaUpgrade.title" = "{operatorName} has offered you to upgrade"; -"alert.mediaUpgrade.audio.title" = "Audio"; -"alert.mediaUpgrade.audio.info" = "Speak through your device"; -"alert.mediaUpgrade.phone.title" = "Phone"; -"alert.mediaUpgrade.phone.info" = "Enter your number and we'll call you"; - -"alert.audioUpgrade.title" = "{operatorName} has offered you to upgrade to audio"; -"alert.videoUpgrade.oneWay.title" = "{operatorName} has offered you to see their video"; -"alert.videoUpgrade.twoWay.title" = "{operatorName} has offered you to upgrade to video"; - -"alert.microphonePermission.title" = "Unable to access microphone"; -"alert.microphonePermission.message" = "Allow access to your microphone from device menu: “Settings” - “Privacy” - “Microphone”"; -"alert.cameraPermission.title" = "Unable to access camera"; -"alert.cameraPermission.message" = "Allow access to your camera from device menu: “Settings” - “Privacy” - “Camera”"; - -"alert.mediaSourceNotAvailable.title" = "Unable to access media source"; -"alert.mediaSourceNotAvailable.message" = "This media source is not available on your device"; - -"alert.screenSharing.start.title" = "{operatorName} has asked you to share your screen"; -"alert.screenSharing.start.message" = "{operatorName} would like to see the screen of your device"; -"alert.screenSharing.stop.title" = "Stop screen sharing?"; -"alert.screenSharing.stop.message" = "Are you sure you want to stop sharing your screen?"; - -"alert.visitorCode.title" = "Your Visitor Code"; - -"chat.title" = "Chat"; -"chat.endButton.title" = "End"; -"chat.connect.queue.firstText" = "CompanyName"; -"chat.connect.queue.secondText" = "We're here to help!"; -"chat.connect.connecting.firstText" = "Connecting with {operatorName}"; -"chat.connect.connecting.secondText" = ""; -"chat.connect.connected.firstText" = "{operatorName}"; -"chat.connect.connected.secondText" = "{operatorName} has joined the conversation."; -"chat.connect.transferring.firstText" = "Transferring"; -"chat.message.enterMessagePlaceholder" = "Enter Message"; -"chat.message.startEngagementPlaceholder" = "Send a message to start chatting"; -"chat.message.choiceCardPlaceholder" = "Tap on the answer above"; -"chat.message.status.delivered" = "Delivered"; -"chat.upgrade.audio.text" = "Upgraded to Audio Call"; -"chat.upgrade.video.text" = "Upgraded to Video Call"; -"chat.pickMedia.photo" = "Photo Library"; -"chat.pickMedia.takePhoto" = "Take Photo or Video"; -"chat.pickMedia.browse" = "Browse"; -"chat.upload.uploading" = "Uploading file…"; -"chat.upload.uploaded" = "Ready to send"; -"chat.upload.failed" = "Uploading failed"; -"chat.upload.error.fileTooBig" = "File size over 25MB limit!"; -"chat.upload.error.unsupportedFileType" = "Invalid file type!"; -"chat.upload.error.safetyCheckFailed" = "Failed to confirm the safety of the file."; +"android_app_bar_end_engagement_accessibility_label" = "End engagement"; +"android_app_bar_nav_up_accessibility" = "Navigate Up"; +"android_bubble_accessibility" = "Back to the Engagement. Floating Button."; +"android_call_mute_accessibility" = "Unmute microphone"; +"android_call_on_hold_accessibility" = "Operator on hold"; +"android_call_speaker_off_accessibility" = "Turn on speaker"; +"android_call_speaker_on_accessibility" = "Turn off speaker"; +"android_call_unmute_accessibility" = "Mute microphone"; +"android_call_video_off_accessibility" = "Turn on video"; +"android_call_video_on_accessibility" = "Turn off video"; +"android_call_queue_message" = "An operator will be with you shortly."; +"android_chat_audio_accessibility_icon" = "Audio icon"; +"android_chat_file_accessibility" = "Attachment %1$s, size %2$s. %3$s"; +"android_chat_file_operator_accessibility" = "Operator\'s attached file %1$s, size %2$s"; +"android_chat_accesandroid_chat_file_visitor_accessibilitysibility_file_visitor" = "Your attached file %1$s, size %2$s"; +"android_chat_file_visitor_delivered_accessibility" = "Your attached file %1$s, size %2$s. \n Delivered"; +"android_chat_accessibility_message" = "Operator\'s message: %1$s"; +"android_chat_operator_accessibility_image" = "Operator\'s attached image"; +"android_chat_operator_name_accessibility_message" = "Operator %1$s, Message: %2$s"; +"android_chat_queue_accessibility_label" = "%1$s. \n An MSR will be with you shortly."; +"android_chat_video_accessibility_icon" = "Video icon"; +"android_chat_visitor_accessibility_image" = "Your attached image"; +"android_chat_visitor_delivered_accessibility_image" = "Your attached image. \n Delivered"; +"android_chat_visitor_accessibility_message" = "Your message: %1$s"; +"android_chat_visitor_delivered_accessibility_message" = "Your message: %1$s \n Delivered"; +"android_chat_download_complete" = "The file has been downloaded."; +"android_chat_download_failed" = "Could not download the file. Please try again."; +"android_file_not_ready_for_preview" = "The image is not ready for preview. Please try again later."; +"android_file_select_title" = "Select Picture"; +"android_file_view_error" = "Can\'t open file"; +"android_notification_audio_call_channel_name" = "Call notification channel"; +"android_notification_audio_call_message" = "Your microphone is now on, and the operator can hear you."; +"android_notification_audio_call_title" = "Audio Call Started"; +"android_notification_end_sharing" = "End Sharing"; +"android_notification_one_way_video_call_message" = "The operator’s camera is on. You can now see and hear them."; +"android_notification_one_way_video_call_title" = "One-Way Video Started"; +"android_notification_one_way_video_no_audio" = "The operator’s camera is on. You can now see them."; +"android_notification_screen_sharing_channel_name" = "Screen sharing notification channel"; +"android_notification_screen_sharing_message" = "You are currently sharing your screen.\nSelect \'End Sharing\' to stop."; +"android_notification_screen_sharing_title" = "Screen Sharing Started"; +"android_notification_two_way_video_call_message" = "The video exchange is on. You and the operator can see and hear each other."; +"android_notification_two_way_video_call_title" = "Two-Way Video Started"; +"android_notification_two_way_video_no_audio" = "The video exchange is on. You and the operator can see each other."; +"android_notifications_allow_message" = "We would like to show you notifications in the status bar. Please enable notifications in Settings."; +"android_notifications_allow_title" = "Allow Notifications?"; +"android_overlay_message" = "Allow screen overlay for the proper functioning of the app"; +"android_overlay_title" = "Screen Overlay Permissions Required"; +"android_permissions_message" = "Please make sure all required permissions are enabled."; +"android_permissions_title" = "Additional Permissions Required"; +"android_preview_accessibility_image" = "Preview content"; +"android_preview_error_fetch" = "Could not fetch the image. Please try again."; +"android_preview_failed_message" = "Could not load the image preview. Please try again."; +"android_preview_menu_save" = "Save"; +"android_preview_menu_share" = "Share"; +"android_preview_save_error_message" = "Could not save the image."; +"android_preview_save_success_message" = "The image was saved successfully."; +"android_preview_share_error_message" = "Could not share the image. Please try again."; +"android_preview_share_title" = "Share Image"; +"android_preview_title" = "Preview"; +"android_screen_sharing_accessibility_icon" = "Screen sharing icon"; +"android_screen_sharing_offer_with_notifications_message" = "The operator has requested to share your screen. To do this, you need to turn on app\'s notifications. Do this now?"; +"android_screen_sharing_offer_with_notifications_title" = "Start Screen Sharing?"; +"android_survey_error_network" = "The survey could not be submitted due to a network error. Please try again."; +"android_upload_error_engagement_missing" = "Engagement missing"; +"android_upload_error_file_limit" = "Cannot upload more than 25 files"; +"android_upload_error_forbidden" = "File uploading disabled"; +"android_upload_error_invalid_input" = "Invalid input"; +"android_upload_error_network" = "Network timed out."; +"android_upload_error_permissions" = "File read access permission denied"; +"android_upload_menu_take_photo" = "Take photo"; +"android_visitor_code_accessibility" = "Your visitor code is %1$s"; +"android_visitor_code_loading" = "Loading your visitor code"; +"android_visitor_code_refresh" = "Refresh"; +"call.bubble.accessibility.hint" = "Deactivates minimize."; +"call.bubble.accessibility.label" = "Operator Avatar"; +"call.button.mute" = "Mute"; +"call.button.speaker" = "Speaker"; +"call.button.unmute" = "Unmute"; +"call.buttons.chat.badge_value.multiple_items.accessibility.label" = "{badgeValue} unread messages"; +"call.buttons.chat.badge_value.single_item.accessibility.label" = "{badgeValue} unread message"; +"call.connect.first_text.accessibility.hint" = "Displays operator name."; +"call.connect.second_text.accessibility.hint" = "Displays call duration."; +"call.header.close.button.accessibility.hint" = "Activates minimize."; +"call.onHold.bottom_text" = "You can continue browsing while you are on hold"; +"call.on_hold" = "On Hold"; +"call.operator.avatar.accessibility.hint" = "Displays operator avatar or placeholder."; +"call.operator.avatar.accessibility.label" = "Operator Avatar"; +"call.operator_name.accessibility.hint" = "Displays operator name."; +"call.video.operator.accessibility.label" = "Operator's Video"; +"call.video.visitor.accessibility.label" = "Your Video"; +"call_visualizer.screen_sharing.message" = "Your Screen is Being Shared"; +"call_visualizer.screen_sharing.message.accessibility.hint" = "Message label"; +"call_visualizer.screen_sharing.title" = "Screen Sharing"; +"call_visualizer.visitor_code.action.close" = "Close"; +"call_visualizer.visitor_code.action.refresh" = "Refresh"; +"call_visualizer.visitor_code.close.accessibility.hint" = "Closes visitor code"; +"call_visualizer.visitor_code.close.accessibility.label" = "Close Button"; +"call_visualizer.visitor_code.refresh.accessibility.hint" = "Generates new visitor code"; +"call_visualizer.visitor_code.refresh.accessibility.label" = "Refresh Button"; +"call_visualizer.visitor_code.title" = "Your Visitor Code"; +"call_visualizer.visitor_code.title.accessibility.hint" = "Your five-digit visitor code is"; +"chat.duration.accessibility.label" = "Displays call duration."; +"chat.attach_files" = "Pick attachment"; +"chat.attachement.photo_library" = "Photo Library"; +"chat.attachement.take_photo" = "Take Photo or Video"; +"chat.attachement.upload.unsupported_file" = "Invalid file type!"; +"chat.download.downloading" = "Downloading file…"; +"chat.file.infected_error" = "Failed to confirm the safety of the file."; +"chat.file.too_large_error" = "File size over 25MB limit!"; +"chat.file.upload.failed" = "Uploading failed"; +"chat.file.upload.in_progress" = "Uploading file…"; "chat.file.upload.scanning" = "Checking safety of the file…"; "chat.upload.error.network" = "Network error."; "chat.upload.error.generic" = "Failed to upload."; @@ -265,12 +286,39 @@ "callVisualizer.screenSharing.accessibility.buttonLabel" = "End screen sharing"; "callVisualizer.screenSharing.accessibility.buttonHint" = "Ends screen sharing"; -"gva.error_unsupported" = "This action is not currently supported on mobile"; +"gva_not_supported" = "This action is not currently supported on mobile"; "chat.input.send" = "Send"; +"chat.message.unread.accessibility.label" = "Unread messages"; +"chat.message.start_engagement_placeholder" = "Send a message to start chatting"; +"chat.operator.avatar.accessibility.label" = "Avatar"; +"chat.operator.name.accessibility.label" = "Displays operator name."; +"chat.operator_joined" = "{operatorName} has joined the conversation."; +"chat.status.delivered" = "Delivered"; "chat.status.typing" = "Operator typing"; +"chat.unread_message_divider" = "New Messages"; +"chat.upgrade.audio.text" = "Upgraded to Audio Call"; +"chat.upgrade.video.text" = "Upgraded to Video Call"; +"chat.upload.remove.accessibility.label" = "Remove upload"; +"engagement.connect.placeholder" = "We are here to help"; +"engagement.connect.with" = "Connecting with {operatorName}"; +"engagement.default_operator_name" = "Operator"; +"engagement.end.confirmation.header" = "End Engagement?"; +"engagement.end.message" = "Are you sure you want to end engagement?"; +"engagement.ended.header" = "Engagement Ended"; +"engagement.ended.message" = "This engagement has ended.\nThank you!"; +"engagement.minimize_video_button" = "Minimize"; +"engagement.offer_upgrade" = "{operatorName} has offered you to upgrade"; +"engagement.queue_closed.header" = "We're sorry"; +"engagement.queue_closed.message" = "Operators are no longer available. \nPlease try again later."; +"engagement.queue_leave.header" = "Are you sure you want to leave?"; +"engagement.queue_leave.message" = "You will lose your place in the queue."; +"engagement.queue_reconnection_failed.try_again" = "Please try again."; +"engagement.queue_transferring.message" = "Transferring"; +"engagement.queue_wait.message" = "You can continue browsing and we will connect you automatically."; +"engagement.secure_messaging.title" = "Messaging"; "error.general" = "Something went wrong"; "error.internal" = "Internal error"; - +"error.unexpected.title" = "We're sorry, there has been an unexpected error."; "general.accept" = "Accept"; "general.back" = "Back"; "general.browse" = "Browse"; @@ -292,7 +340,40 @@ "general.thank_you" = "Thank you!"; "general.yes" = "Yes"; "general.you" = "You"; - +"gva.error_unsupported" = "This action is not currently supported on mobile."; +"media.audio.name" = "Audio"; +"media.messaging.description" = "Send a message and we’ll get back to you \nwithin 48 hours"; +"media.phone.name" = "Phone"; +"media.text.name" = "Chat"; +"media.video.name" = "Video"; +"message_center.check_messages" = "Check messages"; +"message_center.confirmation.check_messages.accessibility.hint" = "Navigates you to the chat transcript."; +"message_center.confirmation.check_messages.accessibility.label" = "Check messages"; +"message_center.confirmation.subtitle" = "Your message has been sent. We will get back to you within 48 hours."; +"message_center.header" = "Messaging"; +"message_center.not_authenticated.message" = "We could not verify your authentication status."; +"message_center.unavailable.message" = "The Message Center is currently unavailable. Please try again later."; +"message_center.unavailable.title" = "Message Center Unavailable"; +"message_center.welcome.check_messages.accessibility.hint" = "Navigates you to the chat transcript."; +"message_center.welcome.file_picker.accessibility.hint" = "Opens the file picker to attach media."; +"message_center.welcome.file_picker_label.accessibility.label" = "File picker"; +"message_center.welcome.message_length_warning" = "The message cannot exceed 10000 characters."; +"message_center.welcome.message_text_view.placeholder" = "Enter your message"; +"message_center.welcome.message_title" = "Your message"; +"message_center.welcome.send.accessibility.hint" = "Sends a secure message."; +"message_center.welcome.title" = "Welcome to Message Center"; +"screen_sharing.visitor_screen.disclaimer.title" = "You are about to share your screen"; +"screen_sharing.visitor_screen.end" = "End screen sharing"; "screensharing.visitor_screen.disclaimer.info" = "Depending on your selection, your entire screen might be shared with the operator, not just the application window."; "send_message.send" = "Send message"; "send_message.sending" = "Sending…"; +"survey.action.validation_error" = "Please provide an answer."; +"survey.question.option_button.selected.accessibility.label" = "Selected: {buttonTitle}"; +"survey.question.option_button.unselected.accessibility.label" = "Unselected: {buttonTitle}"; +"survey.question.text_field.accessibility.hint" = "Enter the answer"; +"survey.question.title.accessibility.label" = "Required"; +"survey.validation.title.accessibility.label" = "Please provide an answer for question above"; +"upgrade.audio.title" = "{operatorName} has offered you to upgrade to audio"; +"upgrade.video.one_way.title" = "{operatorName} has offered you to see their video"; +"upgrade.video.two_way.title" = "{operatorName} has offered you to upgrade to video"; +"visitor_code.failed" = "Could not load the visitor code. Please try refreshing."; diff --git a/swiftgen-strings.stencil b/swiftgen-strings.stencil new file mode 100644 index 000000000..62c97052d --- /dev/null +++ b/swiftgen-strings.stencil @@ -0,0 +1,113 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +{% if tables.count > 0 %} +{% set accessModifier %}{% if param.publicAccess %}public{% else %}internal{% endif %}{% endset %} +import Foundation + +// swiftlint:disable superfluous_disable_command file_length implicit_return prefer_self_in_static_references + +// MARK: - Strings + +{% macro parametersBlock types %} + {%- for type in types -%} + {%- if type == "String" -%} + _ p{{forloop.counter}}: Any + {%- else -%} + _ p{{forloop.counter}}: {{type}} + {%- endif -%} + {{ ", " if not forloop.last }} + {%- endfor -%} +{% endmacro %} +{% macro argumentsBlock types %} + {%- for type in types -%} + {%- if type == "String" -%} + String(describing: p{{forloop.counter}}) + {%- elif type == "UnsafeRawPointer" -%} + Int(bitPattern: p{{forloop.counter}}) + {%- else -%} + p{{forloop.counter}} + {%- endif -%} + {{ ", " if not forloop.last }} + {%- endfor -%} +{% endmacro %} +{% macro recursiveBlock table item %} + {% outer: for string in item.strings %} + {% for splitElement in string.name|split:"android" %} + {% if splitElement != string.name %} + {% continue outer %} + {% else %} + {% break %} + {% endif %} + {% endfor %} + + {% if not param.noComments %} + {% for line in string.comment|default:string.translation|split:"\n" %} + /// {{line}} + {% endfor %} + {% endif %} + {% set translation string.translation|replace:'"','\"'|replace:' ','\t' %} + {% if string.types %} + {{accessModifier}} static func {{string.name|swiftIdentifier:"pretty"|lowerFirstWord|escapeReservedKeywords}}({% call parametersBlock string.types %}) -> String { + return {{enumName}}.tr("{{table}}", "{{string.key}}", {%+ call argumentsBlock string.types %}, fallback: "{{translation}}") + } + {% elif param.lookupFunction %} + {{accessModifier}} static var {{string.name|swiftIdentifier:"pretty"|lowerFirstWord|escapeReservedKeywords}}: String { return {{enumName}}.tr("{{table}}", "{{string.key}}", fallback: "{{translation}}") } + {% else %} + {{accessModifier}} static let {{string.name|swiftIdentifier:"pretty"|lowerFirstWord|escapeReservedKeywords}} = {{enumName}}.tr("{{table}}", "{{string.key}}", fallback: "{{translation}}") + {% endif %} + {% endfor %} + {% for child in item.children %} + {{accessModifier}} enum {{child.name|swiftIdentifier:"pretty"|escapeReservedKeywords}} { + {% filter indent:2," ",true %}{% call recursiveBlock table child %}{% endfilter %} + } + {% endfor %} +{% endmacro %} +// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length +// swiftlint:disable nesting type_body_length type_name vertical_whitespace_opening_braces +{% set enumName %}{{param.enumName|default:"L10n"}}{% endset %} +{{accessModifier}} enum {{enumName}} { + {% if tables.count > 1 or param.forceFileNameEnum %} + {% for table in tables %} + {{accessModifier}} enum {{table.name|swiftIdentifier:"pretty"|escapeReservedKeywords}} { + {% filter indent:2," ",true %}{% call recursiveBlock table.name table.levels %}{% endfilter %} + } + {% endfor %} + {% else %} + {% call recursiveBlock tables.first.name tables.first.levels %} + {% endif %} +} +// 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 {{enumName}} { + private static func tr(_ table: String, _ key: String, _ args: CVarArg..., fallback value: String) -> String { + {% if param.lookupFunction %} + let format = {{ param.lookupFunction }}(key, table, value) + {% else %} + let format = {{param.bundle|default:"BundleToken.bundle"}}.localizedString(forKey: key, value: value, table: table) + {% endif %} + return String(format: format, locale: Locale.current, arguments: args) + } +} +{% if not param.bundle and not param.lookupFunction %} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + #if SWIFT_PACKAGE + return Bundle.module + #else + return Bundle(for: BundleToken.self) + #endif + }() +} +// swiftlint:enable convenience_type +{% endif %} +{% else %} +// No string found +{% endif %} + +// swiftlint:enable all diff --git a/swiftgen.yml b/swiftgen.yml index eed0eea97..3acf9dc9e 100644 --- a/swiftgen.yml +++ b/swiftgen.yml @@ -1,11 +1,11 @@ strings: - inputs: GliaWidgets/Resources/en.lproj/Localizable.strings - outputs: - - templateName: structured-swift4 - output: GliaWidgets/L10n.swift - params: - publicAccess: true - enumName: L10n + - inputs: GliaWidgets/Resources/en.lproj/Localizable.strings + outputs: + - templatePath: swiftgen-strings.stencil + output: GliaWidgets/Localization.swift + params: + publicAccess: false + enumName: Localization xcassets: inputs: