From 6c5a7dbcfe3c91b64451ee953658838f5fd107dd Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sun, 31 Mar 2019 19:36:54 +0200 Subject: [PATCH 1/2] Added prettier localized number formatting --- ...uthorizationSequenceSplashController.swift | 2 +- .../ChatMessageAnimatedStickerItemNode.swift | 2 +- .../ChatMessageAttachedContentNode.swift | 2 +- TelegramUI/ChatMessageBubbleItemNode.swift | 3 +- .../ChatMessageContactBubbleContentNode.swift | 2 +- TelegramUI/ChatMessageDateAndStatusNode.swift | 34 +- .../ChatMessageInteractiveFileNode.swift | 2 +- ...atMessageInteractiveInstantVideoNode.swift | 2 +- .../ChatMessageMapBubbleContentNode.swift | 2 +- .../ChatMessageMediaBubbleContentNode.swift | 2 +- .../ChatMessagePollBubbleContentNode.swift | 2 +- TelegramUI/ChatMessageStickerItemNode.swift | 2 +- .../ChatMessageTextBubbleContentNode.swift | 2 +- TelegramUI/DefaultPresentationStrings.swift | 2 +- TelegramUI/NumericFormat.swift | 23 +- TelegramUI/PresentationData.swift | 17 +- TelegramUI/PresentationStrings.swift | 3906 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 110147 -> 110155 bytes TelegramUI/SettingsController.swift | 2 +- 19 files changed, 2060 insertions(+), 1949 deletions(-) diff --git a/TelegramUI/AuthorizationSequenceSplashController.swift b/TelegramUI/AuthorizationSequenceSplashController.swift index cca29c5f0f..cf46cbfe49 100644 --- a/TelegramUI/AuthorizationSequenceSplashController.swift +++ b/TelegramUI/AuthorizationSequenceSplashController.swift @@ -187,7 +187,7 @@ final class AuthorizationSequenceSplashController: ViewController { } let stringsValue: PresentationStrings if let localizationSettings = localizationSettings { - stringsValue = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: localizationSettings.primaryComponent.languageCode, localizedName: localizationSettings.primaryComponent.localizedName, pluralizationRulesCode: localizationSettings.primaryComponent.customPluralizationCode, dict: dictFromLocalization(localizationSettings.primaryComponent.localization)), secondaryComponent: localizationSettings.secondaryComponent.flatMap({ PresentationStringsComponent(languageCode: $0.languageCode, localizedName: $0.localizedName, pluralizationRulesCode: $0.customPluralizationCode, dict: dictFromLocalization($0.localization)) })) + stringsValue = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: localizationSettings.primaryComponent.languageCode, localizedName: localizationSettings.primaryComponent.localizedName, pluralizationRulesCode: localizationSettings.primaryComponent.customPluralizationCode, dict: dictFromLocalization(localizationSettings.primaryComponent.localization)), secondaryComponent: localizationSettings.secondaryComponent.flatMap({ PresentationStringsComponent(languageCode: $0.languageCode, localizedName: $0.localizedName, pluralizationRulesCode: $0.customPluralizationCode, dict: dictFromLocalization($0.localization)) }), groupingSeparator: "") } else { stringsValue = defaultPresentationStrings } diff --git a/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/TelegramUI/ChatMessageAnimatedStickerItemNode.swift index d956dc16ae..428fbfa353 100644 --- a/TelegramUI/ChatMessageAnimatedStickerItemNode.swift +++ b/TelegramUI/ChatMessageAnimatedStickerItemNode.swift @@ -297,7 +297,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { let dateText = stringForMessageTimestampStatus(message: item.message, dateTimeFormat: item.presentationData.dateTimeFormat, nameDisplayOrder: item.presentationData.nameDisplayOrder, strings: item.presentationData.strings, format: .minimal) - let (dateAndStatusSize, dateAndStatusApply) = makeDateAndStatusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: params.width, height: CGFloat.greatestFiniteMagnitude)) + let (dateAndStatusSize, dateAndStatusApply) = makeDateAndStatusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: params.width, height: CGFloat.greatestFiniteMagnitude)) var replyInfoApply: (CGSize, () -> ChatMessageReplyInfoNode)? var updatedReplyBackgroundNode: ASImageNode? diff --git a/TelegramUI/ChatMessageAttachedContentNode.swift b/TelegramUI/ChatMessageAttachedContentNode.swift index 3d18ace883..41d49c96cf 100644 --- a/TelegramUI/ChatMessageAttachedContentNode.swift +++ b/TelegramUI/ChatMessageAttachedContentNode.swift @@ -531,7 +531,7 @@ final class ChatMessageAttachedContentNode: ASDisplayNode { } } - statusSizeAndApply = statusLayout(presentationData.theme, presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, textConstrainedSize) + statusSizeAndApply = statusLayout(presentationData, edited && !sentViaBot, viewCount, dateText, statusType, textConstrainedSize) } default: break diff --git a/TelegramUI/ChatMessageBubbleItemNode.swift b/TelegramUI/ChatMessageBubbleItemNode.swift index 7b9cafcf1c..cbf9fd9814 100644 --- a/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/TelegramUI/ChatMessageBubbleItemNode.swift @@ -751,7 +751,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView { } } - mosaicStatusSizeAndApply = mosaicStatusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: 200.0, height: CGFloat.greatestFiniteMagnitude)) + mosaicStatusSizeAndApply = mosaicStatusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: 200.0, height: CGFloat.greatestFiniteMagnitude)) } } @@ -1620,7 +1620,6 @@ class ChatMessageBubbleItemNode: ChatMessageItemView { mediaMessage = item.message } } - var forceOpen = false if mediaMessage == nil { for attribute in item.message.attributes { if let attribute = attribute as? ReplyMessageAttribute { diff --git a/TelegramUI/ChatMessageContactBubbleContentNode.swift b/TelegramUI/ChatMessageContactBubbleContentNode.swift index 3a62f8fbf5..9820243332 100644 --- a/TelegramUI/ChatMessageContactBubbleContentNode.swift +++ b/TelegramUI/ChatMessageContactBubbleContentNode.swift @@ -175,7 +175,7 @@ class ChatMessageContactBubbleContentNode: ChatMessageBubbleContentNode { var statusApply: ((Bool) -> Void)? if let statusType = statusType { - let (size, apply) = statusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: constrainedSize.width, height: CGFloat.greatestFiniteMagnitude)) + let (size, apply) = statusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: constrainedSize.width, height: CGFloat.greatestFiniteMagnitude)) statusSize = size statusApply = apply } diff --git a/TelegramUI/ChatMessageDateAndStatusNode.swift b/TelegramUI/ChatMessageDateAndStatusNode.swift index f9562c4a1a..c7b26fb119 100644 --- a/TelegramUI/ChatMessageDateAndStatusNode.swift +++ b/TelegramUI/ChatMessageDateAndStatusNode.swift @@ -125,7 +125,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { self.addSubnode(self.dateNode) } - func asyncLayout() -> (_ theme: ChatPresentationThemeData, _ strings: PresentationStrings, _ edited: Bool, _ impressionCount: Int?, _ dateText: String, _ type: ChatMessageDateAndStatusType, _ constrainedSize: CGSize) -> (CGSize, (Bool) -> Void) { + func asyncLayout() -> (_ presentationData: ChatPresentationData, _ edited: Bool, _ impressionCount: Int?, _ dateText: String, _ type: ChatMessageDateAndStatusType, _ constrainedSize: CGSize) -> (CGSize, (Bool) -> Void) { let dateLayout = TextNode.asyncLayout(self.dateNode) var checkReadNode = self.checkReadNode @@ -139,7 +139,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { let currentType = self.type let currentTheme = self.theme - return { theme, strings, edited, impressionCount, dateText, type, constrainedSize in + return { presentationData, edited, impressionCount, dateText, type, constrainedSize in let dateColor: UIColor var backgroundImage: UIImage? var outgoingStatus: ChatMessageDateAndStatusOutgoingType? @@ -151,14 +151,14 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { let clockMinImage: UIImage? var impressionImage: UIImage? - let themeUpdated = theme != currentTheme || type != currentType + let themeUpdated = presentationData.theme != currentTheme || type != currentType - let graphics = PresentationResourcesChat.principalGraphics(theme.theme, wallpaper: theme.wallpaper) + let graphics = PresentationResourcesChat.principalGraphics(presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) let offset: CGFloat = -UIScreenPixel switch type { case .BubbleIncoming: - dateColor = theme.theme.chat.bubble.incomingSecondaryTextColor + dateColor = presentationData.theme.theme.chat.bubble.incomingSecondaryTextColor leftInset = 10.0 loadedCheckFullImage = graphics.checkBubbleFullImage loadedCheckPartialImage = graphics.checkBubblePartialImage @@ -168,7 +168,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { impressionImage = graphics.incomingDateAndStatusImpressionIcon } case let .BubbleOutgoing(status): - dateColor = theme.theme.chat.bubble.outgoingSecondaryTextColor + dateColor = presentationData.theme.theme.chat.bubble.outgoingSecondaryTextColor outgoingStatus = status leftInset = 10.0 loadedCheckFullImage = graphics.checkBubbleFullImage @@ -179,7 +179,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { impressionImage = graphics.outgoingDateAndStatusImpressionIcon } case .ImageIncoming: - dateColor = theme.theme.chat.bubble.mediaDateAndStatusTextColor + dateColor = presentationData.theme.theme.chat.bubble.mediaDateAndStatusTextColor backgroundImage = graphics.dateAndStatusMediaBackground leftInset = 0.0 loadedCheckFullImage = graphics.checkMediaFullImage @@ -190,7 +190,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { impressionImage = graphics.mediaImpressionIcon } case let .ImageOutgoing(status): - dateColor = theme.theme.chat.bubble.mediaDateAndStatusTextColor + dateColor = presentationData.theme.theme.chat.bubble.mediaDateAndStatusTextColor outgoingStatus = status backgroundImage = graphics.dateAndStatusMediaBackground leftInset = 0.0 @@ -202,7 +202,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { impressionImage = graphics.mediaImpressionIcon } case .FreeIncoming: - let serviceColor = serviceMessageColorComponents(theme: theme.theme, wallpaper: theme.wallpaper) + let serviceColor = serviceMessageColorComponents(theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) dateColor = serviceColor.primaryText backgroundImage = graphics.dateAndStatusFreeBackground leftInset = 0.0 @@ -214,7 +214,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { impressionImage = graphics.freeImpressionIcon } case let .FreeOutgoing(status): - let serviceColor = serviceMessageColorComponents(theme: theme.theme, wallpaper: theme.wallpaper) + let serviceColor = serviceMessageColorComponents(theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) dateColor = serviceColor.primaryText outgoingStatus = status backgroundImage = graphics.dateAndStatusFreeBackground @@ -230,10 +230,10 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { var updatedDateText = dateText if edited { - updatedDateText = "\(strings.Conversation_MessageEditedLabel) \(updatedDateText)" + updatedDateText = "\(presentationData.strings.Conversation_MessageEditedLabel) \(updatedDateText)" } if let impressionCount = impressionCount { - updatedDateText = compactNumericCountString(impressionCount) + " " + updatedDateText + updatedDateText = compactNumericCountString(impressionCount, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator) + " " + updatedDateText } let (date, dateApply) = dateLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: updatedDateText, font: dateFont, textColor: dateColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .middle, constrainedSize: constrainedSize, alignment: .natural, cutout: nil, insets: UIEdgeInsets())) @@ -373,7 +373,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { return (layoutSize, { [weak self] animated in if let strongSelf = self { - strongSelf.theme = theme + strongSelf.theme = presentationData.theme strongSelf.type = type if backgroundImage != nil { @@ -504,17 +504,17 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { } } - static func asyncLayout(_ node: ChatMessageDateAndStatusNode?) -> (_ theme: ChatPresentationThemeData, _ strings: PresentationStrings, _ edited: Bool, _ impressionCount: Int?, _ dateText: String, _ type: ChatMessageDateAndStatusType, _ constrainedSize: CGSize) -> (CGSize, (Bool) -> ChatMessageDateAndStatusNode) { + static func asyncLayout(_ node: ChatMessageDateAndStatusNode?) -> (_ presentationData: ChatPresentationData, _ edited: Bool, _ impressionCount: Int?, _ dateText: String, _ type: ChatMessageDateAndStatusType, _ constrainedSize: CGSize) -> (CGSize, (Bool) -> ChatMessageDateAndStatusNode) { let currentLayout = node?.asyncLayout() - return { theme, strings, edited, impressionCount, dateText, type, constrainedSize in + return { presentationData, edited, impressionCount, dateText, type, constrainedSize in let resultNode: ChatMessageDateAndStatusNode let resultSizeAndApply: (CGSize, (Bool) -> Void) if let node = node, let currentLayout = currentLayout { resultNode = node - resultSizeAndApply = currentLayout(theme, strings, edited, impressionCount, dateText, type, constrainedSize) + resultSizeAndApply = currentLayout(presentationData, edited, impressionCount, dateText, type, constrainedSize) } else { resultNode = ChatMessageDateAndStatusNode() - resultSizeAndApply = resultNode.asyncLayout()(theme, strings, edited, impressionCount, dateText, type, constrainedSize) + resultSizeAndApply = resultNode.asyncLayout()(presentationData, edited, impressionCount, dateText, type, constrainedSize) } return (resultSizeAndApply.0, { animated in diff --git a/TelegramUI/ChatMessageInteractiveFileNode.swift b/TelegramUI/ChatMessageInteractiveFileNode.swift index 46a530bca5..3dbe46dde9 100644 --- a/TelegramUI/ChatMessageInteractiveFileNode.swift +++ b/TelegramUI/ChatMessageInteractiveFileNode.swift @@ -267,7 +267,7 @@ final class ChatMessageInteractiveFileNode: ASDisplayNode { let dateText = stringForMessageTimestampStatus(message: message, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, strings: presentationData.strings) - let (size, apply) = statusLayout(presentationData.theme, presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, constrainedSize) + let (size, apply) = statusLayout(presentationData, edited && !sentViaBot, viewCount, dateText, statusType, constrainedSize) statusSize = size statusApply = apply } diff --git a/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift b/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift index cc997ae4d6..11295fd98a 100644 --- a/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift +++ b/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift @@ -261,7 +261,7 @@ class ChatMessageInteractiveInstantVideoNode: ASDisplayNode { } else { maxDateAndStatusWidth = width - videoFrame.midX - 85.0 } - let (dateAndStatusSize, dateAndStatusApply) = makeDateAndStatusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: max(1.0, maxDateAndStatusWidth), height: CGFloat.greatestFiniteMagnitude)) + let (dateAndStatusSize, dateAndStatusApply) = makeDateAndStatusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: max(1.0, maxDateAndStatusWidth), height: CGFloat.greatestFiniteMagnitude)) var contentSize = imageSize var dateAndStatusOverflow = false diff --git a/TelegramUI/ChatMessageMapBubbleContentNode.swift b/TelegramUI/ChatMessageMapBubbleContentNode.swift index f9479c3b5b..098201b2e9 100644 --- a/TelegramUI/ChatMessageMapBubbleContentNode.swift +++ b/TelegramUI/ChatMessageMapBubbleContentNode.swift @@ -226,7 +226,7 @@ class ChatMessageMapBubbleContentNode: ChatMessageBubbleContentNode { var statusApply: ((Bool) -> Void)? if let statusType = statusType { - let (size, apply) = statusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: constrainedSize.width, height: CGFloat.greatestFiniteMagnitude)) + let (size, apply) = statusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: constrainedSize.width, height: CGFloat.greatestFiniteMagnitude)) statusSize = size statusApply = apply } diff --git a/TelegramUI/ChatMessageMediaBubbleContentNode.swift b/TelegramUI/ChatMessageMediaBubbleContentNode.swift index ed0f76a20b..04d47dcef2 100644 --- a/TelegramUI/ChatMessageMediaBubbleContentNode.swift +++ b/TelegramUI/ChatMessageMediaBubbleContentNode.swift @@ -195,7 +195,7 @@ class ChatMessageMediaBubbleContentNode: ChatMessageBubbleContentNode { var statusApply: ((Bool) -> Void)? if let statusType = statusType { - let (size, apply) = statusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: imageSize.width - 30.0, height: CGFloat.greatestFiniteMagnitude)) + let (size, apply) = statusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, CGSize(width: imageSize.width - 30.0, height: CGFloat.greatestFiniteMagnitude)) statusSize = size statusApply = apply } diff --git a/TelegramUI/ChatMessagePollBubbleContentNode.swift b/TelegramUI/ChatMessagePollBubbleContentNode.swift index 86a2a1b3ae..98a53b0bc5 100644 --- a/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -617,7 +617,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { var statusApply: ((Bool) -> Void)? if let statusType = statusType { - let (size, apply) = statusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, textConstrainedSize) + let (size, apply) = statusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, textConstrainedSize) statusSize = size statusApply = apply } diff --git a/TelegramUI/ChatMessageStickerItemNode.swift b/TelegramUI/ChatMessageStickerItemNode.swift index f404e9d1d7..a00374210b 100644 --- a/TelegramUI/ChatMessageStickerItemNode.swift +++ b/TelegramUI/ChatMessageStickerItemNode.swift @@ -241,7 +241,7 @@ class ChatMessageStickerItemNode: ChatMessageItemView { let dateText = stringForMessageTimestampStatus(message: item.message, dateTimeFormat: item.presentationData.dateTimeFormat, nameDisplayOrder: item.presentationData.nameDisplayOrder, strings: item.presentationData.strings, format: .regular) - let (dateAndStatusSize, dateAndStatusApply) = makeDateAndStatusLayout(item.presentationData.theme, item.presentationData.strings, edited, viewCount, dateText, statusType, CGSize(width: params.width, height: CGFloat.greatestFiniteMagnitude)) + let (dateAndStatusSize, dateAndStatusApply) = makeDateAndStatusLayout(item.presentationData, edited, viewCount, dateText, statusType, CGSize(width: params.width, height: CGFloat.greatestFiniteMagnitude)) var viaBotApply: (TextNodeLayout, () -> TextNode)? var replyInfoApply: (CGSize, () -> ChatMessageReplyInfoNode)? diff --git a/TelegramUI/ChatMessageTextBubbleContentNode.swift b/TelegramUI/ChatMessageTextBubbleContentNode.swift index 9cc37c777b..2491a7d1c0 100644 --- a/TelegramUI/ChatMessageTextBubbleContentNode.swift +++ b/TelegramUI/ChatMessageTextBubbleContentNode.swift @@ -130,7 +130,7 @@ class ChatMessageTextBubbleContentNode: ChatMessageBubbleContentNode { var statusApply: ((Bool) -> Void)? if let statusType = statusType { - let (size, apply) = statusLayout(item.presentationData.theme, item.presentationData.strings, edited && !sentViaBot, viewCount, dateText, statusType, textConstrainedSize) + let (size, apply) = statusLayout(item.presentationData, edited && !sentViaBot, viewCount, dateText, statusType, textConstrainedSize) statusSize = size statusApply = apply } diff --git a/TelegramUI/DefaultPresentationStrings.swift b/TelegramUI/DefaultPresentationStrings.swift index 419dc00f04..2a2ecabdc8 100644 --- a/TelegramUI/DefaultPresentationStrings.swift +++ b/TelegramUI/DefaultPresentationStrings.swift @@ -1,3 +1,3 @@ import Foundation -public let defaultPresentationStrings = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: "en", localizedName: "English", pluralizationRulesCode: nil, dict: NSDictionary(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "Localizable", ofType: "strings", inDirectory: nil, forLocalization: "en")!)) as! [String : String]), secondaryComponent: nil) +public let defaultPresentationStrings = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: "en", localizedName: "English", pluralizationRulesCode: nil, dict: NSDictionary(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "Localizable", ofType: "strings", inDirectory: nil, forLocalization: "en")!)) as! [String : String]), secondaryComponent: nil, groupingSeparator: "") diff --git a/TelegramUI/NumericFormat.swift b/TelegramUI/NumericFormat.swift index 62f92eb7f8..0c6a871717 100644 --- a/TelegramUI/NumericFormat.swift +++ b/TelegramUI/NumericFormat.swift @@ -1,17 +1,17 @@ import Foundation -public func compactNumericCountString(_ count: Int) -> String { +public func compactNumericCountString(_ count: Int, decimalSeparator: String = ".") -> String { if count >= 1000 * 1000 { let remainder = (count % (1000 * 1000)) / (1000 * 100) if remainder != 0 { - return "\(count / (1000 * 1000)),\(remainder)M" + return "\(count / (1000 * 1000))\(decimalSeparator)\(remainder)M" } else { return "\(count / (1000 * 1000))M" } } else if count >= 1000 { let remainder = (count % (1000)) / (100) if remainder != 0 { - return "\(count / 1000),\(remainder)K" + return "\(count / 1000)\(decimalSeparator)\(remainder)K" } else { return "\(count / 1000)K" } @@ -20,6 +20,23 @@ public func compactNumericCountString(_ count: Int) -> String { } } +public func presentationStringsFormattedNumber(_ count: Int32, _ groupingSeparator: String = "") -> String { + let string = "\(count)" + if groupingSeparator.isEmpty || abs(count) < 1000 { + return string + } else { + var groupedString: String = "" + for i in 0 ..< Int(ceil(Double(string.count) / 3.0)) { + let index = string.count - Int(i + 1) * 3 + if !groupedString.isEmpty { + groupedString = groupingSeparator + groupedString + } + groupedString = String(string[string.index(string.startIndex, offsetBy: max(0, index)) ..< string.index(string.startIndex, offsetBy: index + 3)]) + groupedString + } + return groupedString + } +} + func timeIntervalString(strings: PresentationStrings, value: Int32) -> String { if value < 60 { return strings.MessageTimer_Seconds(max(1, value)) diff --git a/TelegramUI/PresentationData.swift b/TelegramUI/PresentationData.swift index edb55243fc..233c91b8d3 100644 --- a/TelegramUI/PresentationData.swift +++ b/TelegramUI/PresentationData.swift @@ -10,6 +10,7 @@ public struct PresentationDateTimeFormat: Equatable { let dateFormat: PresentationDateFormat let dateSeparator: String let decimalSeparator: String + let groupingSeparator: String } public struct PresentationVolumeControlStatusBarIcons: Equatable { @@ -103,7 +104,7 @@ private func volumeControlStatusBarIcons() -> PresentationVolumeControlStatusBar return PresentationVolumeControlStatusBarIcons(offIcon: UIImage(bundleImageName: "Components/Volume/VolumeOff")!, halfIcon: UIImage(bundleImageName: "Components/Volume/VolumeHalf")!, fullIcon: UIImage(bundleImageName: "Components/Volume/VolumeFull")!) } -private func currentDateTimeFormat(strings: PresentationStrings) -> PresentationDateTimeFormat { +private func currentDateTimeFormat() -> PresentationDateTimeFormat { let locale = Locale.current let dateFormatter = DateFormatter() dateFormatter.locale = locale @@ -137,7 +138,8 @@ private func currentDateTimeFormat(strings: PresentationStrings) -> Presentation } let decimalSeparator = locale.decimalSeparator ?? "." - return PresentationDateTimeFormat(timeFormat: timeFormat, dateFormat: dateFormat, dateSeparator: dateSeparator, decimalSeparator: decimalSeparator) + let groupingSeparator = locale.groupingSeparator ?? "" + return PresentationDateTimeFormat(timeFormat: timeFormat, dateFormat: dateFormat, dateSeparator: dateSeparator, decimalSeparator: decimalSeparator, groupingSeparator: groupingSeparator) } private func currentPersonNameSortOrder() -> PresentationPersonNameOrder { @@ -260,13 +262,13 @@ public func currentPresentationDataAndSettings(accountManager: AccountManager) - themeValue = makeDefaultDayPresentationTheme(accentColor: themeSettings.themeAccentColor ?? defaultDayAccentColor, serviceBackgroundColor: defaultServiceBackgroundColor) } } + let dateTimeFormat = currentDateTimeFormat() let stringsValue: PresentationStrings if let localizationSettings = localizationSettings { - stringsValue = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: localizationSettings.primaryComponent.languageCode, localizedName: localizationSettings.primaryComponent.localizedName, pluralizationRulesCode: localizationSettings.primaryComponent.customPluralizationCode, dict: dictFromLocalization(localizationSettings.primaryComponent.localization)), secondaryComponent: localizationSettings.secondaryComponent.flatMap({ PresentationStringsComponent(languageCode: $0.languageCode, localizedName: $0.localizedName, pluralizationRulesCode: $0.customPluralizationCode, dict: dictFromLocalization($0.localization)) })) + stringsValue = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: localizationSettings.primaryComponent.languageCode, localizedName: localizationSettings.primaryComponent.localizedName, pluralizationRulesCode: localizationSettings.primaryComponent.customPluralizationCode, dict: dictFromLocalization(localizationSettings.primaryComponent.localization)), secondaryComponent: localizationSettings.secondaryComponent.flatMap({ PresentationStringsComponent(languageCode: $0.languageCode, localizedName: $0.localizedName, pluralizationRulesCode: $0.customPluralizationCode, dict: dictFromLocalization($0.localization)) }), groupingSeparator: dateTimeFormat.groupingSeparator) } else { stringsValue = defaultPresentationStrings } - let dateTimeFormat = currentDateTimeFormat(strings: stringsValue) let nameDisplayOrder = contactSettings.nameDisplayOrder let nameSortOrder = currentPersonNameSortOrder() return InitialPresentationDataAndSettings(presentationData: PresentationData(strings: stringsValue, theme: themeValue, chatWallpaper: effectiveChatWallpaper, volumeControlStatusBarIcons: volumeControlStatusBarIcons(), fontSize: themeSettings.fontSize, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, nameSortOrder: nameSortOrder, disableAnimations: themeSettings.disableAnimations), automaticMediaDownloadSettings: automaticMediaDownloadSettings, callListSettings: callListSettings, inAppNotificationSettings: inAppNotificationSettings, mediaInputSettings: mediaInputSettings, experimentalUISettings: experimentalUISettings) @@ -415,14 +417,13 @@ public func updatedPresentationData(accountManager: AccountManager, applicationB localizationSettings = nil } + let dateTimeFormat = currentDateTimeFormat() let stringsValue: PresentationStrings if let localizationSettings = localizationSettings { - stringsValue = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: localizationSettings.primaryComponent.languageCode, localizedName: localizationSettings.primaryComponent.localizedName, pluralizationRulesCode: localizationSettings.primaryComponent.customPluralizationCode, dict: dictFromLocalization(localizationSettings.primaryComponent.localization)), secondaryComponent: localizationSettings.secondaryComponent.flatMap({ PresentationStringsComponent(languageCode: $0.languageCode, localizedName: $0.localizedName, pluralizationRulesCode: $0.customPluralizationCode, dict: dictFromLocalization($0.localization)) })) + stringsValue = PresentationStrings(primaryComponent: PresentationStringsComponent(languageCode: localizationSettings.primaryComponent.languageCode, localizedName: localizationSettings.primaryComponent.localizedName, pluralizationRulesCode: localizationSettings.primaryComponent.customPluralizationCode, dict: dictFromLocalization(localizationSettings.primaryComponent.localization)), secondaryComponent: localizationSettings.secondaryComponent.flatMap({ PresentationStringsComponent(languageCode: $0.languageCode, localizedName: $0.localizedName, pluralizationRulesCode: $0.customPluralizationCode, dict: dictFromLocalization($0.localization)) }), groupingSeparator: dateTimeFormat.groupingSeparator) } else { stringsValue = defaultPresentationStrings } - - let dateTimeFormat = currentDateTimeFormat(strings: stringsValue) let nameDisplayOrder = contactSettings.nameDisplayOrder let nameSortOrder = currentPersonNameSortOrder() @@ -437,7 +438,7 @@ public func updatedPresentationData(accountManager: AccountManager, applicationB } public func defaultPresentationData() -> PresentationData { - let dateTimeFormat = currentDateTimeFormat(strings: defaultPresentationStrings) + let dateTimeFormat = currentDateTimeFormat() let nameDisplayOrder: PresentationPersonNameOrder = .firstLast let nameSortOrder = currentPersonNameSortOrder() diff --git a/TelegramUI/PresentationStrings.swift b/TelegramUI/PresentationStrings.swift index c9afe612b0..8b358a2fa7 100644 --- a/TelegramUI/PresentationStrings.swift +++ b/TelegramUI/PresentationStrings.swift @@ -180,6 +180,7 @@ public final class PresentationStrings { public let primaryComponent: PresentationStringsComponent public let secondaryComponent: PresentationStringsComponent? public let baseLanguageCode: String + public let groupingSeparator: String private let _s: [Int: String] private let _r: [Int: [(Int, NSRange)]] @@ -610,1896 +611,1896 @@ public final class PresentationStrings { } public var ReportPeer_ReasonViolence: String { return self._s[399]! } public var Map_Locating: String { return self._s[400]! } - public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[401]!, self._r[401]!, [_1]) - } - public var AutoDownloadSettings_GroupChats: String { return self._s[403]! } - public var CheckoutInfo_SaveInfo: String { return self._s[404]! } - public var SharedMedia_EmptyLinksText: String { return self._s[406]! } - public var Passport_Address_CityPlaceholder: String { return self._s[407]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[408]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[409]! } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[411]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[402]! } + public var CheckoutInfo_SaveInfo: String { return self._s[403]! } + public var SharedMedia_EmptyLinksText: String { return self._s[405]! } + public var Passport_Address_CityPlaceholder: String { return self._s[406]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[407]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[408]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[410]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[412]!, self._r[412]!, [_1]) + return formatWithArgumentRanges(self._s[411]!, self._r[411]!, [_1]) } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[413]!, self._r[413]!, [_0]) + return formatWithArgumentRanges(self._s[412]!, self._r[412]!, [_0]) } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[414]! } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[415]! } - public var ChangePhoneNumberCode_Code: String { return self._s[416]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[413]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[414]! } + public var ChangePhoneNumberCode_Code: String { return self._s[415]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[417]!, self._r[417]!, [_0]) + return formatWithArgumentRanges(self._s[416]!, self._r[416]!, [_0]) } - public var TwoStepAuth_SetupEmail: String { return self._s[418]! } - public var HashtagSearch_AllChats: String { return self._s[419]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[421]! } + public var TwoStepAuth_SetupEmail: String { return self._s[417]! } + public var HashtagSearch_AllChats: String { return self._s[418]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[420]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[422]!, self._r[422]!, [_0]) + return formatWithArgumentRanges(self._s[421]!, self._r[421]!, [_0]) } - public var PhotoEditor_QualityHigh: String { return self._s[424]! } + public var PhotoEditor_QualityHigh: String { return self._s[423]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[425]!, self._r[425]!, [_0]) + return formatWithArgumentRanges(self._s[424]!, self._r[424]!, [_0]) } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[426]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[427]! } - public var Message_LiveLocation: String { return self._s[428]! } - public var Cache_LowDiskSpaceText: String { return self._s[429]! } - public var Conversation_SendMessage: String { return self._s[430]! } - public var AuthSessions_EmptyTitle: String { return self._s[431]! } - public var CallSettings_UseLessData: String { return self._s[432]! } - public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[433]! } - public var Stickers_AddToFavorites: String { return self._s[434]! } - public var PhotoEditor_QualityLow: String { return self._s[435]! } - public var Watch_UserInfo_Unblock: String { return self._s[436]! } - public var Settings_Logout: String { return self._s[437]! } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[425]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[426]! } + public var Message_LiveLocation: String { return self._s[427]! } + public var Cache_LowDiskSpaceText: String { return self._s[428]! } + public var Conversation_SendMessage: String { return self._s[429]! } + public var AuthSessions_EmptyTitle: String { return self._s[430]! } + public var CallSettings_UseLessData: String { return self._s[431]! } + public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[432]! } + public var Stickers_AddToFavorites: String { return self._s[433]! } + public var PhotoEditor_QualityLow: String { return self._s[434]! } + public var Watch_UserInfo_Unblock: String { return self._s[435]! } + public var Settings_Logout: String { return self._s[436]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[438]!, self._r[438]!, [_1]) + return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_1]) } - public var ContactInfo_PhoneLabelWork: String { return self._s[439]! } - public var ChannelInfo_Stats: String { return self._s[440]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[438]! } + public var ChannelInfo_Stats: String { return self._s[439]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[441]!, self._r[441]!, [_1, _2]) + return formatWithArgumentRanges(self._s[440]!, self._r[440]!, [_1, _2]) } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[442]!, self._r[442]!, [_0]) + return formatWithArgumentRanges(self._s[441]!, self._r[441]!, [_0]) } - public var Watch_Notification_Joined: String { return self._s[443]! } - public var Group_Setup_TypePublicHelp: String { return self._s[444]! } - public var Passport_Scans_UploadNew: String { return self._s[445]! } - public var Checkout_LiabilityAlertTitle: String { return self._s[446]! } - public var DialogList_Title: String { return self._s[449]! } - public var NotificationSettings_ContactJoined: String { return self._s[450]! } - public var GroupInfo_LabelAdmin: String { return self._s[451]! } - public var KeyCommand_ChatInfo: String { return self._s[452]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[453]! } - public var Call_ReportIncludeLog: String { return self._s[454]! } + public var Watch_Notification_Joined: String { return self._s[442]! } + public var Group_Setup_TypePublicHelp: String { return self._s[443]! } + public var Passport_Scans_UploadNew: String { return self._s[444]! } + public var Checkout_LiabilityAlertTitle: String { return self._s[445]! } + public var DialogList_Title: String { return self._s[448]! } + public var NotificationSettings_ContactJoined: String { return self._s[449]! } + public var GroupInfo_LabelAdmin: String { return self._s[450]! } + public var KeyCommand_ChatInfo: String { return self._s[451]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[452]! } + public var Call_ReportIncludeLog: String { return self._s[453]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[457]!, self._r[457]!, [_0]) + return formatWithArgumentRanges(self._s[456]!, self._r[456]!, [_0]) } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[458]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[459]! } - public var Message_Sticker: String { return self._s[460]! } - public var LastSeen_JustNow: String { return self._s[462]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[464]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[465]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[466]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[467]! } - public var TwoStepAuth_Email: String { return self._s[468]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[469]! } - public var PhotoEditor_BlurToolOff: String { return self._s[470]! } - public var Message_PinnedStickerMessage: String { return self._s[471]! } - public var ContactInfo_PhoneLabelPager: String { return self._s[472]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[473]! } - public var Passport_DiscardMessageTitle: String { return self._s[474]! } - public var Privacy_PaymentsTitle: String { return self._s[475]! } - public var Appearance_ColorTheme: String { return self._s[477]! } - public var UserInfo_ShareContact: String { return self._s[478]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[479]! } - public var Common_More: String { return self._s[480]! } - public var Watch_Message_Call: String { return self._s[481]! } - public var Profile_EncryptionKey: String { return self._s[484]! } - public var Privacy_TopPeers: String { return self._s[485]! } - public var Conversation_StopPollConfirmation: String { return self._s[486]! } - public var Privacy_TopPeersWarning: String { return self._s[488]! } - public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[489]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[490]! } - public var DialogList_SearchSectionMessages: String { return self._s[493]! } - public var Notifications_ChannelNotifications: String { return self._s[494]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[495]! } - public var Passport_Language_sk: String { return self._s[496]! } - public var Notification_MessageLifetime1h: String { return self._s[497]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[498]! } - public var Call_ReportSkip: String { return self._s[500]! } - public var Cache_ServiceFiles: String { return self._s[501]! } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[502]! } - public var Map_Hybrid: String { return self._s[503]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[506]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[507]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[508]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[511]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[457]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[458]! } + public var Message_Sticker: String { return self._s[459]! } + public var LastSeen_JustNow: String { return self._s[461]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[463]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[464]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[465]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[466]! } + public var TwoStepAuth_Email: String { return self._s[467]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[468]! } + public var PhotoEditor_BlurToolOff: String { return self._s[469]! } + public var Message_PinnedStickerMessage: String { return self._s[470]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[471]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[472]! } + public var Passport_DiscardMessageTitle: String { return self._s[473]! } + public var Privacy_PaymentsTitle: String { return self._s[474]! } + public var Appearance_ColorTheme: String { return self._s[476]! } + public var UserInfo_ShareContact: String { return self._s[477]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[478]! } + public var Common_More: String { return self._s[479]! } + public var Watch_Message_Call: String { return self._s[480]! } + public var Profile_EncryptionKey: String { return self._s[483]! } + public var Privacy_TopPeers: String { return self._s[484]! } + public var Conversation_StopPollConfirmation: String { return self._s[485]! } + public var Privacy_TopPeersWarning: String { return self._s[487]! } + public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[488]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[489]! } + public var DialogList_SearchSectionMessages: String { return self._s[492]! } + public var Notifications_ChannelNotifications: String { return self._s[493]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[494]! } + public var Passport_Language_sk: String { return self._s[495]! } + public var Notification_MessageLifetime1h: String { return self._s[496]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[497]! } + public var Call_ReportSkip: String { return self._s[499]! } + public var Cache_ServiceFiles: String { return self._s[500]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[501]! } + public var Map_Hybrid: String { return self._s[502]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[505]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[506]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[507]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[510]! } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[512]!, self._r[512]!, [_1]) + return formatWithArgumentRanges(self._s[511]!, self._r[511]!, [_1]) } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[514]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[513]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[515]!, self._r[515]!, [_1, _2]) + return formatWithArgumentRanges(self._s[514]!, self._r[514]!, [_1, _2]) } - public var Conversation_LiveLocationYou: String { return self._s[516]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[517]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[518]! } - public var UserInfo_ShareBot: String { return self._s[521]! } + public var Conversation_LiveLocationYou: String { return self._s[515]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[516]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[517]! } + public var UserInfo_ShareBot: String { return self._s[520]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[522]!, self._r[522]!, [_1, _2]) + return formatWithArgumentRanges(self._s[521]!, self._r[521]!, [_1, _2]) } - public var PhotoEditor_ShadowsTint: String { return self._s[523]! } - public var Message_Audio: String { return self._s[524]! } - public var Passport_Language_lt: String { return self._s[525]! } + public var PhotoEditor_ShadowsTint: String { return self._s[522]! } + public var Message_Audio: String { return self._s[523]! } + public var Passport_Language_lt: String { return self._s[524]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[526]!, self._r[526]!, [_0]) + return formatWithArgumentRanges(self._s[525]!, self._r[525]!, [_0]) } - public var Permissions_SiriText_v0: String { return self._s[527]! } - public var Conversation_FileICloudDrive: String { return self._s[528]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[529]! } + public var Permissions_SiriText_v0: String { return self._s[526]! } + public var Conversation_FileICloudDrive: String { return self._s[527]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[528]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[530]!, self._r[530]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[529]!, self._r[529]!, [_1, _2, _3, _4, _5, _6]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[531]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[530]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[532]!, self._r[532]!, [_0]) + return formatWithArgumentRanges(self._s[531]!, self._r[531]!, [_0]) } - public var Channel_SignMessages: String { return self._s[533]! } + public var Channel_SignMessages: String { return self._s[532]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[534]!, self._r[534]!, [_1]) + return formatWithArgumentRanges(self._s[533]!, self._r[533]!, [_1]) } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[535]! } - public var Passport_ScanPassport: String { return self._s[536]! } - public var Watch_Suggestion_Thanks: String { return self._s[537]! } - public var BlockedUsers_AddNew: String { return self._s[538]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[534]! } + public var Passport_ScanPassport: String { return self._s[535]! } + public var Watch_Suggestion_Thanks: String { return self._s[536]! } + public var BlockedUsers_AddNew: String { return self._s[537]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[539]!, self._r[539]!, [_1, _2]) + return formatWithArgumentRanges(self._s[538]!, self._r[538]!, [_1, _2]) } - public var Watch_Message_Invoice: String { return self._s[540]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[541]! } - public var Month_GenJuly: String { return self._s[542]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[543]! } - public var Notification_ChannelInviterSelf: String { return self._s[545]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[546]! } + public var Watch_Message_Invoice: String { return self._s[539]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[540]! } + public var Month_GenJuly: String { return self._s[541]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[542]! } + public var Notification_ChannelInviterSelf: String { return self._s[544]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[545]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[547]!, self._r[547]!, [_1, _2]) + return formatWithArgumentRanges(self._s[546]!, self._r[546]!, [_1, _2]) } - public var CheckoutInfo_Title: String { return self._s[548]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[549]! } + public var CheckoutInfo_Title: String { return self._s[547]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[548]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[550]!, self._r[550]!, [_0]) + return formatWithArgumentRanges(self._s[549]!, self._r[549]!, [_0]) } - public var Passport_Identity_MainPage: String { return self._s[551]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[552]! } - public var Passport_Language_de: String { return self._s[553]! } - public var Update_Title: String { return self._s[554]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[555]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[556]! } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[557]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[558]! } - public var NotificationsSound_Telegraph: String { return self._s[559]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[560]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[561]! } + public var Passport_Identity_MainPage: String { return self._s[550]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[551]! } + public var Passport_Language_de: String { return self._s[552]! } + public var Update_Title: String { return self._s[553]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[554]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[555]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[556]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[557]! } + public var NotificationsSound_Telegraph: String { return self._s[558]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[559]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[560]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[562]!, self._r[562]!, [_0]) + return formatWithArgumentRanges(self._s[561]!, self._r[561]!, [_0]) } - public var Stickers_SuggestAll: String { return self._s[563]! } - public var Conversation_ForwardTitle: String { return self._s[564]! } + public var Stickers_SuggestAll: String { return self._s[562]! } + public var Conversation_ForwardTitle: String { return self._s[563]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[565]!, self._r[565]!, [_0]) + return formatWithArgumentRanges(self._s[564]!, self._r[564]!, [_0]) } - public var Calls_NewCall: String { return self._s[566]! } - public var Call_StatusEnded: String { return self._s[567]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[568]! } - public var Settings_ProxyConnected: String { return self._s[569]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[570]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[571]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[572]! } - public var Passport_PasswordPlaceholder: String { return self._s[573]! } - public var Message_PinnedInvoice: String { return self._s[574]! } - public var Passport_Identity_IssueDate: String { return self._s[575]! } - public var Passport_Language_pl: String { return self._s[576]! } + public var Calls_NewCall: String { return self._s[565]! } + public var Call_StatusEnded: String { return self._s[566]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[567]! } + public var Settings_ProxyConnected: String { return self._s[568]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[569]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[570]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[571]! } + public var Passport_PasswordPlaceholder: String { return self._s[572]! } + public var Message_PinnedInvoice: String { return self._s[573]! } + public var Passport_Identity_IssueDate: String { return self._s[574]! } + public var Passport_Language_pl: String { return self._s[575]! } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[577]!, self._r[577]!, [_0]) + return formatWithArgumentRanges(self._s[576]!, self._r[576]!, [_0]) } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[578]! } - public var Call_StatusConnecting: String { return self._s[579]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[577]! } + public var Call_StatusConnecting: String { return self._s[578]! } public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[580]!, self._r[580]!, [_0]) + return formatWithArgumentRanges(self._s[579]!, self._r[579]!, [_0]) } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[582]! } - public var Common_Edit: String { return self._s[583]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[584]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[581]! } + public var Common_Edit: String { return self._s[582]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[583]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[585]!, self._r[585]!, [_0]) + return formatWithArgumentRanges(self._s[584]!, self._r[584]!, [_0]) } - public var GroupInfo_ChatAdmins: String { return self._s[586]! } - public var PrivateDataSettings_Title: String { return self._s[587]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[588]! } - public var ChatList_Read: String { return self._s[589]! } - public var Undo_ChatClearedForBothSides: String { return self._s[590]! } - public var GroupPermission_SectionTitle: String { return self._s[591]! } + public var GroupInfo_ChatAdmins: String { return self._s[585]! } + public var PrivateDataSettings_Title: String { return self._s[586]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[587]! } + public var ChatList_Read: String { return self._s[588]! } + public var Undo_ChatClearedForBothSides: String { return self._s[589]! } + public var GroupPermission_SectionTitle: String { return self._s[590]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[593]!, self._r[593]!, [_1, _2]) + return formatWithArgumentRanges(self._s[592]!, self._r[592]!, [_1, _2]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[594]! } - public var Update_UpdateApp: String { return self._s[595]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[596]! } - public var Settings_Appearance: String { return self._s[597]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[599]! } - public var Watch_Location_Access: String { return self._s[600]! } - public var ShareMenu_CopyShareLink: String { return self._s[602]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[603]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[593]! } + public var Update_UpdateApp: String { return self._s[594]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[595]! } + public var Settings_Appearance: String { return self._s[596]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[598]! } + public var Watch_Location_Access: String { return self._s[599]! } + public var ShareMenu_CopyShareLink: String { return self._s[601]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[602]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[605]!, self._r[605]!, [_0]) + return formatWithArgumentRanges(self._s[604]!, self._r[604]!, [_0]) } - public var Notifications_ClassicTones: String { return self._s[606]! } - public var Weekday_ShortWednesday: String { return self._s[607]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[608]! } - public var Undo_LeftGroup: String { return self._s[611]! } - public var Conversation_LinkDialogCopy: String { return self._s[612]! } - public var KeyCommand_FocusOnInputField: String { return self._s[614]! } - public var Contacts_SelectAll: String { return self._s[615]! } - public var Preview_SaveToCameraRoll: String { return self._s[616]! } - public var Wallpaper_Title: String { return self._s[617]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[618]! } - public var AccessDenied_Camera: String { return self._s[619]! } - public var Watch_Compose_CurrentLocation: String { return self._s[620]! } + public var Notifications_ClassicTones: String { return self._s[605]! } + public var Weekday_ShortWednesday: String { return self._s[606]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[607]! } + public var Undo_LeftGroup: String { return self._s[610]! } + public var Conversation_LinkDialogCopy: String { return self._s[611]! } + public var KeyCommand_FocusOnInputField: String { return self._s[613]! } + public var Contacts_SelectAll: String { return self._s[614]! } + public var Preview_SaveToCameraRoll: String { return self._s[615]! } + public var Wallpaper_Title: String { return self._s[616]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[617]! } + public var AccessDenied_Camera: String { return self._s[618]! } + public var Watch_Compose_CurrentLocation: String { return self._s[619]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[622]!, self._r[622]!, [_0]) + return formatWithArgumentRanges(self._s[621]!, self._r[621]!, [_0]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[623]! } - public var Passport_Language_ro: String { return self._s[624]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[625]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[622]! } + public var Passport_Language_ro: String { return self._s[623]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[624]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[626]!, self._r[626]!, [_0]) + return formatWithArgumentRanges(self._s[625]!, self._r[625]!, [_0]) } - public var Login_CancelPhoneVerification: String { return self._s[627]! } - public var State_ConnectingToProxy: String { return self._s[628]! } - public var Calls_RatingTitle: String { return self._s[629]! } - public var Generic_ErrorMoreInfo: String { return self._s[630]! } - public var Appearance_PreviewReplyText: String { return self._s[631]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[632]! } - public var SharedMedia_CategoryLinks: String { return self._s[633]! } - public var Calls_Missed: String { return self._s[634]! } - public var Cache_Photos: String { return self._s[638]! } - public var GroupPermission_NoAddMembers: String { return self._s[639]! } + public var Login_CancelPhoneVerification: String { return self._s[626]! } + public var State_ConnectingToProxy: String { return self._s[627]! } + public var Calls_RatingTitle: String { return self._s[628]! } + public var Generic_ErrorMoreInfo: String { return self._s[629]! } + public var Appearance_PreviewReplyText: String { return self._s[630]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[631]! } + public var SharedMedia_CategoryLinks: String { return self._s[632]! } + public var Calls_Missed: String { return self._s[633]! } + public var Cache_Photos: String { return self._s[637]! } + public var GroupPermission_NoAddMembers: String { return self._s[638]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[640]!, self._r[640]!, [_0]) + return formatWithArgumentRanges(self._s[639]!, self._r[639]!, [_0]) } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[641]! } - public var Settings_ProxyDisabled: String { return self._s[642]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[640]! } + public var Settings_ProxyDisabled: String { return self._s[641]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[643]!, self._r[643]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[642]!, self._r[642]!, [_1, _2, _3, _4]) } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[644]!, self._r[644]!, [_0]) + return formatWithArgumentRanges(self._s[643]!, self._r[643]!, [_0]) } - public var Appearance_Title: String { return self._s[645]! } + public var Appearance_Title: String { return self._s[644]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[647]!, self._r[647]!, [_0]) + return formatWithArgumentRanges(self._s[646]!, self._r[646]!, [_0]) } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[648]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[649]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[650]! } - public var Preview_DeletePhoto: String { return self._s[651]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[652]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[647]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[648]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[649]! } + public var Preview_DeletePhoto: String { return self._s[650]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[651]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[653]!, self._r[653]!, [_0]) + return formatWithArgumentRanges(self._s[652]!, self._r[652]!, [_0]) } - public var Coub_TapForSound: String { return self._s[655]! } - public var Map_LocatingError: String { return self._s[656]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[658]! } - public var Passport_ForgottenPassword: String { return self._s[659]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[660]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[661]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[663]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[664]! } - public var Message_Location: String { return self._s[665]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[666]! } - public var Channel_Management_Title: String { return self._s[667]! } - public var DialogList_SearchSectionDialogs: String { return self._s[669]! } - public var Compose_NewChannel_Members: String { return self._s[670]! } + public var Coub_TapForSound: String { return self._s[654]! } + public var Map_LocatingError: String { return self._s[655]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[657]! } + public var Passport_ForgottenPassword: String { return self._s[658]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[659]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[660]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[662]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[663]! } + public var Message_Location: String { return self._s[664]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[665]! } + public var Channel_Management_Title: String { return self._s[666]! } + public var DialogList_SearchSectionDialogs: String { return self._s[668]! } + public var Compose_NewChannel_Members: String { return self._s[669]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[671]!, self._r[671]!, [_0]) + return formatWithArgumentRanges(self._s[670]!, self._r[670]!, [_0]) } - public var AutoNightTheme_ScheduledFrom: String { return self._s[672]! } - public var PhotoEditor_WarmthTool: String { return self._s[673]! } - public var Passport_Language_tr: String { return self._s[674]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[671]! } + public var PhotoEditor_WarmthTool: String { return self._s[672]! } + public var Passport_Language_tr: String { return self._s[673]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[675]!, self._r[675]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[674]!, self._r[674]!, [_1, _2, _3]) } - public var Login_ResetAccountProtected_Reset: String { return self._s[677]! } - public var Watch_PhotoView_Title: String { return self._s[678]! } - public var Passport_Phone_Delete: String { return self._s[679]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[680]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[681]! } - public var GroupInfo_Permissions: String { return self._s[682]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[683]! } - public var Profile_ShareContactButton: String { return self._s[684]! } - public var ChatSettings_Other: String { return self._s[685]! } - public var UserInfo_NotificationsDisabled: String { return self._s[686]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[687]! } - public var LastSeen_WithinAMonth: String { return self._s[688]! } - public var Conversation_EncryptionCanceled: String { return self._s[689]! } - public var MediaPicker_GroupDescription: String { return self._s[690]! } - public var WebSearch_Images: String { return self._s[691]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[676]! } + public var Watch_PhotoView_Title: String { return self._s[677]! } + public var Passport_Phone_Delete: String { return self._s[678]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[679]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[680]! } + public var GroupInfo_Permissions: String { return self._s[681]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[682]! } + public var Profile_ShareContactButton: String { return self._s[683]! } + public var ChatSettings_Other: String { return self._s[684]! } + public var UserInfo_NotificationsDisabled: String { return self._s[685]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[686]! } + public var LastSeen_WithinAMonth: String { return self._s[687]! } + public var Conversation_EncryptionCanceled: String { return self._s[688]! } + public var MediaPicker_GroupDescription: String { return self._s[689]! } + public var WebSearch_Images: String { return self._s[690]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[692]!, self._r[692]!, [_0]) + return formatWithArgumentRanges(self._s[691]!, self._r[691]!, [_0]) } - public var Message_Photo: String { return self._s[693]! } - public var PasscodeSettings_HelpBottom: String { return self._s[694]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[695]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[696]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[697]! } - public var NotificationsSound_Calypso: String { return self._s[698]! } - public var Map_Map: String { return self._s[699]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[701]! } - public var ChatSettings_TextSizeUnits: String { return self._s[702]! } - public var Common_of: String { return self._s[703]! } - public var Conversation_ForwardContacts: String { return self._s[705]! } + public var Message_Photo: String { return self._s[692]! } + public var PasscodeSettings_HelpBottom: String { return self._s[693]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[694]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[695]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[696]! } + public var NotificationsSound_Calypso: String { return self._s[697]! } + public var Map_Map: String { return self._s[698]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[700]! } + public var ChatSettings_TextSizeUnits: String { return self._s[701]! } + public var Common_of: String { return self._s[702]! } + public var Conversation_ForwardContacts: String { return self._s[704]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[707]!, self._r[707]!, [_0]) + return formatWithArgumentRanges(self._s[706]!, self._r[706]!, [_0]) } - public var Passport_Language_hy: String { return self._s[708]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[709]! } - public var AutoDownloadSettings_Reset: String { return self._s[710]! } - public var Paint_ClearConfirm: String { return self._s[711]! } - public var Camera_VideoMode: String { return self._s[712]! } + public var Passport_Language_hy: String { return self._s[707]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[708]! } + public var AutoDownloadSettings_Reset: String { return self._s[709]! } + public var Paint_ClearConfirm: String { return self._s[710]! } + public var Camera_VideoMode: String { return self._s[711]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[713]!, self._r[713]!, [_0]) + return formatWithArgumentRanges(self._s[712]!, self._r[712]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[714]! } - public var Conversation_ViewBackground: String { return self._s[715]! } - public var Passport_Language_el: String { return self._s[716]! } - public var PhotoEditor_Original: String { return self._s[717]! } - public var Settings_FAQ_Button: String { return self._s[719]! } - public var Channel_Setup_PublicNoLink: String { return self._s[721]! } - public var Conversation_UnsupportedMedia: String { return self._s[722]! } - public var Conversation_SlideToCancel: String { return self._s[723]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[724]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[725]! } - public var AutoNightTheme_NotAvailable: String { return self._s[726]! } - public var Common_Create: String { return self._s[727]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[728]! } - public var Localization_ChooseLanguage: String { return self._s[730]! } - public var Settings_Proxy: String { return self._s[733]! } - public var Privacy_TopPeersHelp: String { return self._s[734]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[735]! } - public var Chat_UnsendMyMessages: String { return self._s[736]! } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[737]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[713]! } + public var Conversation_ViewBackground: String { return self._s[714]! } + public var Passport_Language_el: String { return self._s[715]! } + public var PhotoEditor_Original: String { return self._s[716]! } + public var Settings_FAQ_Button: String { return self._s[718]! } + public var Channel_Setup_PublicNoLink: String { return self._s[720]! } + public var Conversation_UnsupportedMedia: String { return self._s[721]! } + public var Conversation_SlideToCancel: String { return self._s[722]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[723]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[724]! } + public var AutoNightTheme_NotAvailable: String { return self._s[725]! } + public var Common_Create: String { return self._s[726]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[727]! } + public var Localization_ChooseLanguage: String { return self._s[729]! } + public var Settings_Proxy: String { return self._s[732]! } + public var Privacy_TopPeersHelp: String { return self._s[733]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[734]! } + public var Chat_UnsendMyMessages: String { return self._s[735]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[736]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[739]!, self._r[739]!, [_0]) + return formatWithArgumentRanges(self._s[738]!, self._r[738]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[740]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[741]! } - public var Cache_Title: String { return self._s[742]! } + public var Contacts_SortedByPresence: String { return self._s[739]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[740]! } + public var Cache_Title: String { return self._s[741]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[743]!, self._r[743]!, [_0]) + return formatWithArgumentRanges(self._s[742]!, self._r[742]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[744]! } - public var Channel_Moderator_Title: String { return self._s[745]! } - public var InstantPage_AutoNightTheme: String { return self._s[747]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[743]! } + public var Channel_Moderator_Title: String { return self._s[744]! } + public var InstantPage_AutoNightTheme: String { return self._s[746]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[750]!, self._r[750]!, [_1]) + return formatWithArgumentRanges(self._s[749]!, self._r[749]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[751]! } - public var Undo_Undo: String { return self._s[753]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[754]! } - public var TwoStepAuth_RemovePassword: String { return self._s[755]! } - public var Common_Delete: String { return self._s[756]! } - public var Conversation_ContextMenuDelete: String { return self._s[758]! } - public var SocksProxySetup_Credentials: String { return self._s[759]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[761]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[764]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[765]! } - public var Passport_Language_id: String { return self._s[767]! } - public var WallpaperSearch_ColorTeal: String { return self._s[768]! } - public var ChannelIntro_Title: String { return self._s[769]! } + public var Passport_Scans_Upload: String { return self._s[750]! } + public var Undo_Undo: String { return self._s[752]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[753]! } + public var TwoStepAuth_RemovePassword: String { return self._s[754]! } + public var Common_Delete: String { return self._s[755]! } + public var Conversation_ContextMenuDelete: String { return self._s[757]! } + public var SocksProxySetup_Credentials: String { return self._s[758]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[760]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[763]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[764]! } + public var Passport_Language_id: String { return self._s[766]! } + public var WallpaperSearch_ColorTeal: String { return self._s[767]! } + public var ChannelIntro_Title: String { return self._s[768]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[770]!, self._r[770]!, [_0]) + return formatWithArgumentRanges(self._s[769]!, self._r[769]!, [_0]) } - public var Channel_Info_Description: String { return self._s[772]! } - public var Stickers_FavoriteStickers: String { return self._s[773]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[774]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[775]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[776]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[777]! } + public var Channel_Info_Description: String { return self._s[771]! } + public var Stickers_FavoriteStickers: String { return self._s[772]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[773]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[774]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[775]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[776]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[778]!, self._r[778]!, [_1]) + return formatWithArgumentRanges(self._s[777]!, self._r[777]!, [_1]) } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[779]!, self._r[779]!, [_1, _2]) + return formatWithArgumentRanges(self._s[778]!, self._r[778]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[780]!, self._r[780]!, [_0]) + return formatWithArgumentRanges(self._s[779]!, self._r[779]!, [_0]) } - public var GroupPermission_Delete: String { return self._s[781]! } - public var Passport_Language_uk: String { return self._s[782]! } - public var StickerPack_HideStickers: String { return self._s[784]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[785]! } + public var GroupPermission_Delete: String { return self._s[780]! } + public var Passport_Language_uk: String { return self._s[781]! } + public var StickerPack_HideStickers: String { return self._s[783]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[784]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[786]!, self._r[786]!, [_1, _2]) + return formatWithArgumentRanges(self._s[785]!, self._r[785]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[787]! } + public var Activity_UploadingVideoMessage: String { return self._s[786]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[788]!, self._r[788]!, [_0]) + return formatWithArgumentRanges(self._s[787]!, self._r[787]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[789]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[790]! } - public var Settings_CallSettings: String { return self._s[791]! } - public var Camera_SquareMode: String { return self._s[792]! } - public var GroupInfo_SharedMediaNone: String { return self._s[793]! } + public var Channel_TitleInfo: String { return self._s[788]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[789]! } + public var Settings_CallSettings: String { return self._s[790]! } + public var Camera_SquareMode: String { return self._s[791]! } + public var GroupInfo_SharedMediaNone: String { return self._s[792]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[794]!, self._r[794]!, [_1]) + return formatWithArgumentRanges(self._s[793]!, self._r[793]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[795]! } - public var Application_Update: String { return self._s[797]! } - public var Month_ShortJanuary: String { return self._s[798]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[799]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[800]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[801]! } - public var Passport_Address_Street2Placeholder: String { return self._s[802]! } + public var Bot_GenericBotStatus: String { return self._s[794]! } + public var Application_Update: String { return self._s[796]! } + public var Month_ShortJanuary: String { return self._s[797]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[798]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[799]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[800]! } + public var Passport_Address_Street2Placeholder: String { return self._s[801]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[803]!, self._r[803]!, [_0]) + return formatWithArgumentRanges(self._s[802]!, self._r[802]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[804]! } - public var Appearance_PreviewOutgoingText: String { return self._s[805]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[806]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[808]! } - public var Map_Directions: String { return self._s[809]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[811]! } - public var Appearance_ThemeDay: String { return self._s[812]! } - public var LogoutOptions_LogOut: String { return self._s[813]! } - public var Passport_Identity_AddPassport: String { return self._s[815]! } - public var Call_Message: String { return self._s[816]! } - public var PhotoEditor_ExposureTool: String { return self._s[817]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[819]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[821]! } - public var Appearance_Preview: String { return self._s[822]! } - public var Compose_ChannelMembers: String { return self._s[823]! } - public var Conversation_DeleteManyMessages: String { return self._s[824]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[825]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[826]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[827]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[830]! } - public var Conversation_UpdateTelegram: String { return self._s[831]! } + public var NetworkUsageSettings_Cellular: String { return self._s[803]! } + public var Appearance_PreviewOutgoingText: String { return self._s[804]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[805]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[807]! } + public var Map_Directions: String { return self._s[808]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[810]! } + public var Appearance_ThemeDay: String { return self._s[811]! } + public var LogoutOptions_LogOut: String { return self._s[812]! } + public var Passport_Identity_AddPassport: String { return self._s[814]! } + public var Call_Message: String { return self._s[815]! } + public var PhotoEditor_ExposureTool: String { return self._s[816]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[818]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[820]! } + public var Appearance_Preview: String { return self._s[821]! } + public var Compose_ChannelMembers: String { return self._s[822]! } + public var Conversation_DeleteManyMessages: String { return self._s[823]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[824]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[825]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[826]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[829]! } + public var Conversation_UpdateTelegram: String { return self._s[830]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[832]!, self._r[832]!, [_0]) + return formatWithArgumentRanges(self._s[831]!, self._r[831]!, [_0]) } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[833]!, self._r[833]!, [_1]) + return formatWithArgumentRanges(self._s[832]!, self._r[832]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[834]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[835]! } + public var GroupInfo_Administrators_Title: String { return self._s[833]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[834]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_0]) + return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) } - public var Tour_Title3: String { return self._s[837]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[838]! } - public var Clipboard_SendPhoto: String { return self._s[842]! } - public var MediaPicker_Videos: String { return self._s[843]! } - public var Passport_Email_Title: String { return self._s[844]! } + public var Tour_Title3: String { return self._s[836]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[837]! } + public var Clipboard_SendPhoto: String { return self._s[841]! } + public var MediaPicker_Videos: String { return self._s[842]! } + public var Passport_Email_Title: String { return self._s[843]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[845]!, self._r[845]!, [_0]) + return formatWithArgumentRanges(self._s[844]!, self._r[844]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[846]! } - public var Conversation_MessageDialogDelete: String { return self._s[847]! } - public var Privacy_Calls_CustomHelp: String { return self._s[849]! } - public var Message_Wallpaper: String { return self._s[850]! } - public var MemberSearch_BotSection: String { return self._s[851]! } - public var GroupInfo_SetSound: String { return self._s[852]! } - public var Core_ServiceUserStatus: String { return self._s[853]! } - public var LiveLocationUpdated_JustNow: String { return self._s[854]! } - public var Call_StatusFailed: String { return self._s[855]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[856]! } - public var TwoStepAuth_SetPassword: String { return self._s[857]! } + public var StickerPacksSettings_Title: String { return self._s[845]! } + public var Conversation_MessageDialogDelete: String { return self._s[846]! } + public var Privacy_Calls_CustomHelp: String { return self._s[848]! } + public var Message_Wallpaper: String { return self._s[849]! } + public var MemberSearch_BotSection: String { return self._s[850]! } + public var GroupInfo_SetSound: String { return self._s[851]! } + public var Core_ServiceUserStatus: String { return self._s[852]! } + public var LiveLocationUpdated_JustNow: String { return self._s[853]! } + public var Call_StatusFailed: String { return self._s[854]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[855]! } + public var TwoStepAuth_SetPassword: String { return self._s[856]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[859]!, self._r[859]!, [_0]) + return formatWithArgumentRanges(self._s[858]!, self._r[858]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[860]! } - public var Profile_Username: String { return self._s[861]! } - public var Bot_DescriptionTitle: String { return self._s[862]! } - public var MaskStickerSettings_Title: String { return self._s[863]! } - public var SharedMedia_CategoryOther: String { return self._s[864]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[865]! } - public var Common_NotNow: String { return self._s[866]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[867]! } - public var Map_Location: String { return self._s[868]! } - public var Invitation_JoinGroup: String { return self._s[869]! } - public var AutoDownloadSettings_Title: String { return self._s[871]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[872]! } - public var Channel_ErrorAddBlocked: String { return self._s[873]! } - public var Conversation_UnblockUser: String { return self._s[874]! } - public var Watch_Bot_Restart: String { return self._s[875]! } - public var TwoStepAuth_Title: String { return self._s[876]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[877]! } - public var Checkout_ShippingMethod: String { return self._s[878]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[879]! } + public var Calls_SubmitRating: String { return self._s[859]! } + public var Profile_Username: String { return self._s[860]! } + public var Bot_DescriptionTitle: String { return self._s[861]! } + public var MaskStickerSettings_Title: String { return self._s[862]! } + public var SharedMedia_CategoryOther: String { return self._s[863]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[864]! } + public var Common_NotNow: String { return self._s[865]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[866]! } + public var Map_Location: String { return self._s[867]! } + public var Invitation_JoinGroup: String { return self._s[868]! } + public var AutoDownloadSettings_Title: String { return self._s[870]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[871]! } + public var Channel_ErrorAddBlocked: String { return self._s[872]! } + public var Conversation_UnblockUser: String { return self._s[873]! } + public var Watch_Bot_Restart: String { return self._s[874]! } + public var TwoStepAuth_Title: String { return self._s[875]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[876]! } + public var Checkout_ShippingMethod: String { return self._s[877]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[878]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[880]!, self._r[880]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[879]!, self._r[879]!, [_1, _2, _3]) } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_0]) + return formatWithArgumentRanges(self._s[881]!, self._r[881]!, [_0]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[883]!, self._r[883]!, [_0]) + return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_0]) } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[884]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[885]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[886]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[887]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[888]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[889]! } - public var Checkout_PaymentMethod_Title: String { return self._s[890]! } - public var SocksProxySetup_Connection: String { return self._s[891]! } - public var Group_MessagePhotoRemoved: String { return self._s[892]! } - public var Channel_Stickers_NotFound: String { return self._s[894]! } - public var Group_About_Help: String { return self._s[895]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[896]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[883]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[884]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[885]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[886]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[887]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[888]! } + public var Checkout_PaymentMethod_Title: String { return self._s[889]! } + public var SocksProxySetup_Connection: String { return self._s[890]! } + public var Group_MessagePhotoRemoved: String { return self._s[891]! } + public var Channel_Stickers_NotFound: String { return self._s[893]! } + public var Group_About_Help: String { return self._s[894]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[895]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[898]!, self._r[898]!, [_1]) + return formatWithArgumentRanges(self._s[897]!, self._r[897]!, [_1]) } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[900]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[901]! } - public var SocksProxySetup_Password: String { return self._s[902]! } - public var Notifications_PermissionsEnable: String { return self._s[903]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[905]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[899]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[900]! } + public var SocksProxySetup_Password: String { return self._s[901]! } + public var Notifications_PermissionsEnable: String { return self._s[902]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[904]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[906]!, self._r[906]!, [_1]) + return formatWithArgumentRanges(self._s[905]!, self._r[905]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[908]!, self._r[908]!, [_0]) + return formatWithArgumentRanges(self._s[907]!, self._r[907]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[909]! } - public var ArchivedPacksAlert_Title: String { return self._s[910]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[908]! } + public var ArchivedPacksAlert_Title: String { return self._s[909]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[911]!, self._r[911]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[910]!, self._r[910]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[912]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[914]! } - public var Conversation_StatusTyping: String { return self._s[915]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[916]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[917]! } - public var UserInfo_CreateNewContact: String { return self._s[918]! } - public var Passport_Identity_FrontSide: String { return self._s[919]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[920]! } - public var Calls_CallTabTitle: String { return self._s[921]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[922]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[911]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[913]! } + public var Conversation_StatusTyping: String { return self._s[914]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[915]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[916]! } + public var UserInfo_CreateNewContact: String { return self._s[917]! } + public var Passport_Identity_FrontSide: String { return self._s[918]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[919]! } + public var Calls_CallTabTitle: String { return self._s[920]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[921]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[923]!, self._r[923]!, [_0]) + return formatWithArgumentRanges(self._s[922]!, self._r[922]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[924]! } - public var SharedMedia_EmptyMusicText: String { return self._s[925]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[926]! } - public var Paint_Stickers: String { return self._s[927]! } - public var Privacy_GroupsAndChannels: String { return self._s[928]! } - public var UserInfo_AddContact: String { return self._s[930]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[923]! } + public var SharedMedia_EmptyMusicText: String { return self._s[924]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[925]! } + public var Paint_Stickers: String { return self._s[926]! } + public var Privacy_GroupsAndChannels: String { return self._s[927]! } + public var UserInfo_AddContact: String { return self._s[929]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[931]!, self._r[931]!, [_0]) + return formatWithArgumentRanges(self._s[930]!, self._r[930]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[933]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[932]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[935]!, self._r[935]!, [_0]) + return formatWithArgumentRanges(self._s[934]!, self._r[934]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[936]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[937]! } - public var BlockedUsers_BlockUser: String { return self._s[938]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[939]! } - public var MediaPicker_UngroupDescription: String { return self._s[940]! } - public var Watch_NoConnection: String { return self._s[941]! } - public var Month_GenSeptember: String { return self._s[942]! } - public var Conversation_ViewGroup: String { return self._s[943]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[946]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[947]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[948]! } - public var MediaPicker_CameraRoll: String { return self._s[950]! } - public var Month_GenAugust: String { return self._s[951]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[952]! } - public var SharedMedia_EmptyText: String { return self._s[953]! } - public var Map_ShareLiveLocation: String { return self._s[954]! } - public var Calls_All: String { return self._s[955]! } - public var Appearance_ThemeNight: String { return self._s[958]! } - public var Conversation_HoldForAudio: String { return self._s[959]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[962]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[963]! } - public var SocksProxySetup_Secret: String { return self._s[964]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[966]! } - public var Conversation_Location: String { return self._s[967]! } + public var DialogList_NoMessagesTitle: String { return self._s[935]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[936]! } + public var BlockedUsers_BlockUser: String { return self._s[937]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[938]! } + public var MediaPicker_UngroupDescription: String { return self._s[939]! } + public var Watch_NoConnection: String { return self._s[940]! } + public var Month_GenSeptember: String { return self._s[941]! } + public var Conversation_ViewGroup: String { return self._s[942]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[945]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[946]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[947]! } + public var MediaPicker_CameraRoll: String { return self._s[949]! } + public var Month_GenAugust: String { return self._s[950]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[951]! } + public var SharedMedia_EmptyText: String { return self._s[952]! } + public var Map_ShareLiveLocation: String { return self._s[953]! } + public var Calls_All: String { return self._s[954]! } + public var Appearance_ThemeNight: String { return self._s[957]! } + public var Conversation_HoldForAudio: String { return self._s[958]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[961]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[962]! } + public var SocksProxySetup_Secret: String { return self._s[963]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[965]! } + public var Conversation_Location: String { return self._s[966]! } public func AutoDownloadSettings_UpToFor(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[968]!, self._r[968]!, [_0, _1]) + return formatWithArgumentRanges(self._s[967]!, self._r[967]!, [_0, _1]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[970]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[971]! } - public var Notifications_PermissionsText: String { return self._s[972]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[973]! } - public var Call_Flip: String { return self._s[974]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[975]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[977]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[979]! } - public var Passport_DeletePassportConfirmation: String { return self._s[981]! } - public var Login_InvalidCodeError: String { return self._s[982]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[983]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[969]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[970]! } + public var Notifications_PermissionsText: String { return self._s[971]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[972]! } + public var Call_Flip: String { return self._s[973]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[974]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[976]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[978]! } + public var Passport_DeletePassportConfirmation: String { return self._s[980]! } + public var Login_InvalidCodeError: String { return self._s[981]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[982]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[984]!, self._r[984]!, [_0]) + return formatWithArgumentRanges(self._s[983]!, self._r[983]!, [_0]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_0]) + return formatWithArgumentRanges(self._s[984]!, self._r[984]!, [_0]) } - public var Call_CallInProgressTitle: String { return self._s[986]! } - public var Month_ShortSeptember: String { return self._s[987]! } - public var Watch_ChannelInfo_Title: String { return self._s[988]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[991]! } - public var DialogList_PasscodeLockHelp: String { return self._s[992]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[993]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[994]! } - public var PhotoEditor_CropReset: String { return self._s[995]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[997]! } - public var Channel_Management_LabelEditor: String { return self._s[998]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1000]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1001]! } - public var UserInfo_Title: String { return self._s[1002]! } - public var AccessDenied_Title: String { return self._s[1003]! } - public var DialogList_SearchLabel: String { return self._s[1004]! } - public var Group_Setup_HistoryHidden: String { return self._s[1005]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1006]! } - public var State_Updating: String { return self._s[1008]! } - public var Contacts_TabTitle: String { return self._s[1009]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1011]! } - public var GroupInfo_GroupHistory: String { return self._s[1012]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1013]! } - public var Wallpaper_SetColor: String { return self._s[1014]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1015]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1016]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1017]! } - public var Contacts_NotRegisteredSection: String { return self._s[1018]! } + public var Call_CallInProgressTitle: String { return self._s[985]! } + public var Month_ShortSeptember: String { return self._s[986]! } + public var Watch_ChannelInfo_Title: String { return self._s[987]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[990]! } + public var DialogList_PasscodeLockHelp: String { return self._s[991]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[992]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[993]! } + public var PhotoEditor_CropReset: String { return self._s[994]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[996]! } + public var Channel_Management_LabelEditor: String { return self._s[997]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[999]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1000]! } + public var UserInfo_Title: String { return self._s[1001]! } + public var AccessDenied_Title: String { return self._s[1002]! } + public var DialogList_SearchLabel: String { return self._s[1003]! } + public var Group_Setup_HistoryHidden: String { return self._s[1004]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1005]! } + public var State_Updating: String { return self._s[1007]! } + public var Contacts_TabTitle: String { return self._s[1008]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1010]! } + public var GroupInfo_GroupHistory: String { return self._s[1011]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1012]! } + public var Wallpaper_SetColor: String { return self._s[1013]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1014]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1015]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1016]! } + public var Contacts_NotRegisteredSection: String { return self._s[1017]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1019]!, self._r[1019]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1018]!, self._r[1018]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1020]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1021]! } - public var SocksProxySetup_Connecting: String { return self._s[1022]! } - public var ExplicitContent_AlertChannel: String { return self._s[1023]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1024]! } - public var Conversation_Contact: String { return self._s[1025]! } - public var Login_CodeExpired: String { return self._s[1026]! } - public var Passport_DiscardMessageAction: String { return self._s[1027]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1028]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1029]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1030]! } - public var Month_ShortApril: String { return self._s[1031]! } - public var AuthSessions_CurrentSession: String { return self._s[1032]! } - public var WallpaperPreview_CropTopText: String { return self._s[1036]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1037]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1038]! } - public var Channel_Setup_TypePrivate: String { return self._s[1040]! } - public var Forward_ChannelReadOnly: String { return self._s[1043]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1044]! } - public var UserInfo_BotPrivacy: String { return self._s[1045]! } - public var Notification_PassportValueEmail: String { return self._s[1046]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1047]! } - public var GroupPermission_NewTitle: String { return self._s[1048]! } - public var CallFeedback_ReasonDropped: String { return self._s[1049]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1050]! } - public var Channel_SignMessages_Help: String { return self._s[1052]! } - public var Undo_ChatDeleted: String { return self._s[1054]! } - public var Conversation_ChatBackground: String { return self._s[1055]! } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1056]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1057]! } - public var Passport_Language_pt: String { return self._s[1058]! } - public var NotificationsSound_Popcorn: String { return self._s[1061]! } - public var AutoNightTheme_Disabled: String { return self._s[1062]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1063]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1064]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1065]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1066]! } + public var Paint_Clear: String { return self._s[1019]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1020]! } + public var SocksProxySetup_Connecting: String { return self._s[1021]! } + public var ExplicitContent_AlertChannel: String { return self._s[1022]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1023]! } + public var Conversation_Contact: String { return self._s[1024]! } + public var Login_CodeExpired: String { return self._s[1025]! } + public var Passport_DiscardMessageAction: String { return self._s[1026]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1027]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1028]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1029]! } + public var Month_ShortApril: String { return self._s[1030]! } + public var AuthSessions_CurrentSession: String { return self._s[1031]! } + public var WallpaperPreview_CropTopText: String { return self._s[1035]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1036]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1037]! } + public var Channel_Setup_TypePrivate: String { return self._s[1039]! } + public var Forward_ChannelReadOnly: String { return self._s[1042]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1043]! } + public var UserInfo_BotPrivacy: String { return self._s[1044]! } + public var Notification_PassportValueEmail: String { return self._s[1045]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1046]! } + public var GroupPermission_NewTitle: String { return self._s[1047]! } + public var CallFeedback_ReasonDropped: String { return self._s[1048]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1049]! } + public var Channel_SignMessages_Help: String { return self._s[1051]! } + public var Undo_ChatDeleted: String { return self._s[1053]! } + public var Conversation_ChatBackground: String { return self._s[1054]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1055]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1056]! } + public var Passport_Language_pt: String { return self._s[1057]! } + public var NotificationsSound_Popcorn: String { return self._s[1060]! } + public var AutoNightTheme_Disabled: String { return self._s[1061]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1062]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1063]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1064]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1065]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1067]!, self._r[1067]!, [_0]) + return formatWithArgumentRanges(self._s[1066]!, self._r[1066]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1068]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1069]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1071]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1067]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1068]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1070]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1072]!, self._r[1072]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1071]!, self._r[1071]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1075]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1076]! } - public var Compose_NewEncryptedChat: String { return self._s[1077]! } - public var Login_CodeFloodError: String { return self._s[1078]! } - public var Calls_TabTitle: String { return self._s[1079]! } - public var Privacy_ProfilePhoto: String { return self._s[1080]! } - public var Passport_Language_he: String { return self._s[1081]! } - public var GroupPermission_Title: String { return self._s[1082]! } + public var SocksProxySetup_Hostname: String { return self._s[1074]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1075]! } + public var Compose_NewEncryptedChat: String { return self._s[1076]! } + public var Login_CodeFloodError: String { return self._s[1077]! } + public var Calls_TabTitle: String { return self._s[1078]! } + public var Privacy_ProfilePhoto: String { return self._s[1079]! } + public var Passport_Language_he: String { return self._s[1080]! } + public var GroupPermission_Title: String { return self._s[1081]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1083]!, self._r[1083]!, [_0]) + return formatWithArgumentRanges(self._s[1082]!, self._r[1082]!, [_0]) } - public var GroupPermission_NoChangeInfo: String { return self._s[1084]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1085]! } - public var Tour_Text1: String { return self._s[1086]! } - public var Month_ShortFebruary: String { return self._s[1087]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1088]! } - public var NotificationsSound_Glass: String { return self._s[1089]! } - public var Appearance_ThemeNightBlue: String { return self._s[1090]! } - public var CheckoutInfo_Pay: String { return self._s[1091]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1093]! } - public var Call_CallAgain: String { return self._s[1095]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1096]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1097]! } - public var Passport_InvalidPasswordError: String { return self._s[1098]! } - public var Watch_Message_Game: String { return self._s[1099]! } - public var Stickers_Install: String { return self._s[1100]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1101]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1103]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1104]! } - public var AuthSessions_OtherSessions: String { return self._s[1105]! } - public var Channel_Username_Help: String { return self._s[1106]! } - public var Camera_Title: String { return self._s[1107]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1109]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1110]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1111]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1112]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1113]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1114]! } - public var Conversation_RestrictedStickers: String { return self._s[1115]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1117]! } - public var UserInfo_TelegramCall: String { return self._s[1119]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1120]! } - public var CreatePoll_OptionsHeader: String { return self._s[1121]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1122]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1123]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1124]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1083]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1084]! } + public var Tour_Text1: String { return self._s[1085]! } + public var Month_ShortFebruary: String { return self._s[1086]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1087]! } + public var NotificationsSound_Glass: String { return self._s[1088]! } + public var Appearance_ThemeNightBlue: String { return self._s[1089]! } + public var CheckoutInfo_Pay: String { return self._s[1090]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1092]! } + public var Call_CallAgain: String { return self._s[1094]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1095]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1096]! } + public var Passport_InvalidPasswordError: String { return self._s[1097]! } + public var Watch_Message_Game: String { return self._s[1098]! } + public var Stickers_Install: String { return self._s[1099]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1100]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1102]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1103]! } + public var AuthSessions_OtherSessions: String { return self._s[1104]! } + public var Channel_Username_Help: String { return self._s[1105]! } + public var Camera_Title: String { return self._s[1106]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1108]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1109]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1110]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1111]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1112]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1113]! } + public var Conversation_RestrictedStickers: String { return self._s[1114]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1116]! } + public var UserInfo_TelegramCall: String { return self._s[1118]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1119]! } + public var CreatePoll_OptionsHeader: String { return self._s[1120]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1121]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1122]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1123]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1125]!, self._r[1125]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1124]!, self._r[1124]!, [_1, _2, _3]) } - public var Settings_SaveEditedPhotos: String { return self._s[1126]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1127]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1128]! } - public var Conversation_MessageDialogRetry: String { return self._s[1129]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1130]! } - public var Group_Setup_TypeHeader: String { return self._s[1131]! } - public var Paint_RecentStickers: String { return self._s[1132]! } - public var PhotoEditor_GrainTool: String { return self._s[1133]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1134]! } - public var EmptyGroupInfo_Line4: String { return self._s[1135]! } - public var Watch_AuthRequired: String { return self._s[1137]! } + public var Settings_SaveEditedPhotos: String { return self._s[1125]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1126]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1127]! } + public var Conversation_MessageDialogRetry: String { return self._s[1128]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1129]! } + public var Group_Setup_TypeHeader: String { return self._s[1130]! } + public var Paint_RecentStickers: String { return self._s[1131]! } + public var PhotoEditor_GrainTool: String { return self._s[1132]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1133]! } + public var EmptyGroupInfo_Line4: String { return self._s[1134]! } + public var Watch_AuthRequired: String { return self._s[1136]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1138]!, self._r[1138]!, [_0]) + return formatWithArgumentRanges(self._s[1137]!, self._r[1137]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1139]! } - public var ChannelIntro_Text: String { return self._s[1140]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1141]! } - public var GroupPermission_NoSendMedia: String { return self._s[1142]! } - public var Calls_AddTab: String { return self._s[1143]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1144]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1145]! } - public var Notification_MessageLifetime1d: String { return self._s[1146]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1147]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1148]! } - public var Passport_Identity_GenderFemale: String { return self._s[1149]! } - public var BlockedUsers_BlockTitle: String { return self._s[1150]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1138]! } + public var ChannelIntro_Text: String { return self._s[1139]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1140]! } + public var GroupPermission_NoSendMedia: String { return self._s[1141]! } + public var Calls_AddTab: String { return self._s[1142]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1143]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1144]! } + public var Notification_MessageLifetime1d: String { return self._s[1145]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1146]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1147]! } + public var Passport_Identity_GenderFemale: String { return self._s[1148]! } + public var BlockedUsers_BlockTitle: String { return self._s[1149]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1151]!, self._r[1151]!, [_1]) + return formatWithArgumentRanges(self._s[1150]!, self._r[1150]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1152]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1153]! } - public var AutoNightTheme_Scheduled: String { return self._s[1154]! } + public var Weekday_Yesterday: String { return self._s[1151]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1152]! } + public var AutoNightTheme_Scheduled: String { return self._s[1153]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1155]!, self._r[1155]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1154]!, self._r[1154]!, [_1, _2, _3, _4, _5, _6]) } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1156]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1155]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1157]!, self._r[1157]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1156]!, self._r[1156]!, [_1, _2]) } - public var CreatePoll_Create: String { return self._s[1158]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1159]! } + public var CreatePoll_Create: String { return self._s[1157]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1158]! } public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1160]!, self._r[1160]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1159]!, self._r[1159]!, [_1, _2]) } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1161]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1163]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1160]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1162]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1164]!, self._r[1164]!, [_1]) + return formatWithArgumentRanges(self._s[1163]!, self._r[1163]!, [_1]) } - public var Preview_OpenInInstagram: String { return self._s[1165]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1166]! } + public var Preview_OpenInInstagram: String { return self._s[1164]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1165]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1167]!, self._r[1167]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1166]!, self._r[1166]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1168]!, self._r[1168]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1167]!, self._r[1167]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1169]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1170]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1171]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1168]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1169]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1170]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1172]!, self._r[1172]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1171]!, self._r[1171]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1174]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1175]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1176]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1177]! } - public var Gif_NoGifsFound: String { return self._s[1178]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1179]! } - public var GroupInfo_ActionPromote: String { return self._s[1180]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1181]! } - public var GroupInfo_Permissions_Title: String { return self._s[1182]! } - public var Permissions_ContactsText_v0: String { return self._s[1183]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1184]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1187]! } - public var Passport_FieldEmailHelp: String { return self._s[1188]! } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1189]! } - public var Weekday_ShortSaturday: String { return self._s[1190]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1191]! } - public var Watch_Conversation_UserInfo: String { return self._s[1192]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1193]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1194]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1195]! } - public var PhotoEditor_VignetteTool: String { return self._s[1196]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1197]! } - public var Passport_Language_et: String { return self._s[1198]! } - public var Passport_Language_bg: String { return self._s[1200]! } - public var Stickers_NoStickersFound: String { return self._s[1202]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1173]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1174]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1175]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1176]! } + public var Gif_NoGifsFound: String { return self._s[1177]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1178]! } + public var GroupInfo_ActionPromote: String { return self._s[1179]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1180]! } + public var GroupInfo_Permissions_Title: String { return self._s[1181]! } + public var Permissions_ContactsText_v0: String { return self._s[1182]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1183]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1186]! } + public var Passport_FieldEmailHelp: String { return self._s[1187]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1188]! } + public var Weekday_ShortSaturday: String { return self._s[1189]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1190]! } + public var Watch_Conversation_UserInfo: String { return self._s[1191]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1192]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1193]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1194]! } + public var PhotoEditor_VignetteTool: String { return self._s[1195]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1196]! } + public var Passport_Language_et: String { return self._s[1197]! } + public var Passport_Language_bg: String { return self._s[1199]! } + public var Stickers_NoStickersFound: String { return self._s[1201]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1204]!, self._r[1204]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1203]!, self._r[1203]!, [_1, _2]) } - public var Settings_About: String { return self._s[1205]! } + public var Settings_About: String { return self._s[1204]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1205]!, self._r[1205]!, [_0, _1, _2]) } - public var KeyCommand_NewMessage: String { return self._s[1208]! } - public var Group_ErrorAddBlocked: String { return self._s[1209]! } + public var KeyCommand_NewMessage: String { return self._s[1207]! } + public var Group_ErrorAddBlocked: String { return self._s[1208]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1210]!, self._r[1210]!, [_0]) + return formatWithArgumentRanges(self._s[1209]!, self._r[1209]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1211]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1212]! } - public var Cache_ClearProgress: String { return self._s[1213]! } + public var Map_LocationTitle: String { return self._s[1210]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1211]! } + public var Cache_ClearProgress: String { return self._s[1212]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1214]!, self._r[1214]!, [_0]) + return formatWithArgumentRanges(self._s[1213]!, self._r[1213]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1215]! } - public var Passport_UpdateRequiredError: String { return self._s[1216]! } + public var GroupRemoved_AddToGroup: String { return self._s[1214]! } + public var Passport_UpdateRequiredError: String { return self._s[1215]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1217]!, self._r[1217]!, [_1]) + return formatWithArgumentRanges(self._s[1216]!, self._r[1216]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1219]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1220]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1221]! } - public var Passport_Language_ka: String { return self._s[1222]! } - public var Call_Decline: String { return self._s[1223]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1224]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1218]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1219]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1220]! } + public var Passport_Language_ka: String { return self._s[1221]! } + public var Call_Decline: String { return self._s[1222]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1223]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1227]!, self._r[1227]!, [_0]) + return formatWithArgumentRanges(self._s[1226]!, self._r[1226]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1228]! } + public var CallFeedback_Send: String { return self._s[1227]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1229]!, self._r[1229]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1228]!, self._r[1228]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1230]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1232]! } - public var Passport_DeletePassport: String { return self._s[1233]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1234]! } - public var Month_ShortDecember: String { return self._s[1235]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1237]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1229]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1231]! } + public var Passport_DeletePassport: String { return self._s[1232]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1233]! } + public var Month_ShortDecember: String { return self._s[1234]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1236]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1238]!, self._r[1238]!, [_0]) + return formatWithArgumentRanges(self._s[1237]!, self._r[1237]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1239]! } - public var Conversation_EncryptedDescription1: String { return self._s[1240]! } - public var Conversation_EncryptedDescription2: String { return self._s[1241]! } - public var Conversation_EncryptedDescription3: String { return self._s[1242]! } - public var PhotoEditor_SharpenTool: String { return self._s[1243]! } - public var Conversation_EncryptedDescription4: String { return self._s[1245]! } - public var Channel_Members_AddMembers: String { return self._s[1246]! } - public var Wallpaper_Search: String { return self._s[1247]! } - public var Weekday_Friday: String { return self._s[1248]! } - public var Privacy_ContactsSync: String { return self._s[1249]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1250]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1251]! } + public var Channel_Stickers_Searching: String { return self._s[1238]! } + public var Conversation_EncryptedDescription1: String { return self._s[1239]! } + public var Conversation_EncryptedDescription2: String { return self._s[1240]! } + public var Conversation_EncryptedDescription3: String { return self._s[1241]! } + public var PhotoEditor_SharpenTool: String { return self._s[1242]! } + public var Conversation_EncryptedDescription4: String { return self._s[1244]! } + public var Channel_Members_AddMembers: String { return self._s[1245]! } + public var Wallpaper_Search: String { return self._s[1246]! } + public var Weekday_Friday: String { return self._s[1247]! } + public var Privacy_ContactsSync: String { return self._s[1248]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1249]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1250]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1252]!, self._r[1252]!, [_0]) + return formatWithArgumentRanges(self._s[1251]!, self._r[1251]!, [_0]) } - public var GroupInfo_Permissions_Removed: String { return self._s[1253]! } - public var Passport_Identity_GenderMale: String { return self._s[1254]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1252]! } + public var Passport_Identity_GenderMale: String { return self._s[1253]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1255]!, self._r[1255]!, [_0]) + return formatWithArgumentRanges(self._s[1254]!, self._r[1254]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1256]! } - public var Conversation_JumpToDate: String { return self._s[1257]! } - public var Contacts_GlobalSearch: String { return self._s[1258]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1259]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1260]! } - public var Profile_MessageLifetime1d: String { return self._s[1261]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1255]! } + public var Conversation_JumpToDate: String { return self._s[1256]! } + public var Contacts_GlobalSearch: String { return self._s[1257]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1258]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1259]! } + public var Profile_MessageLifetime1d: String { return self._s[1260]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1262]!, self._r[1262]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1261]!, self._r[1261]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1265]! } + public var StickerPack_BuiltinPackName: String { return self._s[1264]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1266]!, self._r[1266]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1265]!, self._r[1265]!, [_1, _2]) } - public var Passport_InfoTitle: String { return self._s[1268]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1269]! } + public var Passport_InfoTitle: String { return self._s[1267]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1268]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1273]!, self._r[1273]!, [_0]) + return formatWithArgumentRanges(self._s[1272]!, self._r[1272]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1274]!, self._r[1274]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1273]!, self._r[1273]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1275]! } - public var Profile_BotInfo: String { return self._s[1276]! } - public var Watch_Compose_CreateMessage: String { return self._s[1277]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1278]! } - public var Month_ShortNovember: String { return self._s[1279]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1280]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1281]! } - public var NotificationsSound_Chime: String { return self._s[1282]! } - public var Passport_Language_ko: String { return self._s[1284]! } - public var InviteText_URL: String { return self._s[1285]! } - public var TextFormat_Monospace: String { return self._s[1286]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1274]! } + public var Profile_BotInfo: String { return self._s[1275]! } + public var Watch_Compose_CreateMessage: String { return self._s[1276]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1277]! } + public var Month_ShortNovember: String { return self._s[1278]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1279]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1280]! } + public var NotificationsSound_Chime: String { return self._s[1281]! } + public var Passport_Language_ko: String { return self._s[1283]! } + public var InviteText_URL: String { return self._s[1284]! } + public var TextFormat_Monospace: String { return self._s[1285]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1287]!, self._r[1287]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1286]!, self._r[1286]!, [_1, _2, _3]) } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1288]!, self._r[1288]!, [_0]) + return formatWithArgumentRanges(self._s[1287]!, self._r[1287]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1289]!, self._r[1289]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1288]!, self._r[1288]!, [_1, _2]) } - public var Passport_InfoLearnMore: String { return self._s[1291]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1292]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1293]! } - public var Your_card_has_expired: String { return self._s[1294]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1295]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1296]! } - public var Conversation_Report: String { return self._s[1300]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1301]! } - public var Notification_MessageLifetime1m: String { return self._s[1302]! } - public var Privacy_ContactsTitle: String { return self._s[1303]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1304]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1305]! } - public var Channel_Members_Title: String { return self._s[1306]! } - public var Map_OpenInWaze: String { return self._s[1307]! } - public var Login_PhoneBannedError: String { return self._s[1308]! } + public var Passport_InfoLearnMore: String { return self._s[1290]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1291]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1292]! } + public var Your_card_has_expired: String { return self._s[1293]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1294]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1295]! } + public var Conversation_Report: String { return self._s[1299]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1300]! } + public var Notification_MessageLifetime1m: String { return self._s[1301]! } + public var Privacy_ContactsTitle: String { return self._s[1302]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1303]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1304]! } + public var Channel_Members_Title: String { return self._s[1305]! } + public var Map_OpenInWaze: String { return self._s[1306]! } + public var Login_PhoneBannedError: String { return self._s[1307]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1309]!, self._r[1309]!, [_0]) + return formatWithArgumentRanges(self._s[1308]!, self._r[1308]!, [_0]) } - public var Group_Management_AddModeratorHelp: String { return self._s[1310]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1311]! } - public var Common_OK: String { return self._s[1312]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1313]! } - public var Cache_Music: String { return self._s[1314]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1315]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1316]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1317]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1309]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1310]! } + public var Common_OK: String { return self._s[1311]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1312]! } + public var Cache_Music: String { return self._s[1313]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1314]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1315]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1316]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1318]!, self._r[1318]!, [_1]) + return formatWithArgumentRanges(self._s[1317]!, self._r[1317]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1319]!, self._r[1319]!, [_0]) + return formatWithArgumentRanges(self._s[1318]!, self._r[1318]!, [_0]) } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1321]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1322]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1324]! } - public var State_ConnectingToProxyInfo: String { return self._s[1325]! } - public var Message_VideoMessage: String { return self._s[1327]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1328]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1329]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1330]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1331]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1332]! } - public var Activity_RecordingAudio: String { return self._s[1333]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1334]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1335]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1320]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1321]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1323]! } + public var State_ConnectingToProxyInfo: String { return self._s[1324]! } + public var Message_VideoMessage: String { return self._s[1326]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1327]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1328]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1329]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1330]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1331]! } + public var Activity_RecordingAudio: String { return self._s[1332]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1333]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1334]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1337]!, self._r[1337]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1336]!, self._r[1336]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1341]!, self._r[1341]!, [_0]) + return formatWithArgumentRanges(self._s[1340]!, self._r[1340]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1342]! } - public var UserInfo_AddPhone: String { return self._s[1343]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1344]! } + public var Conversation_ApplyLocalization: String { return self._s[1341]! } + public var UserInfo_AddPhone: String { return self._s[1342]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1343]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_0]) + return formatWithArgumentRanges(self._s[1344]!, self._r[1344]!, [_0]) } - public var Passport_Scans: String { return self._s[1347]! } - public var BlockedUsers_Unblock: String { return self._s[1348]! } + public var Passport_Scans: String { return self._s[1346]! } + public var BlockedUsers_Unblock: String { return self._s[1347]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1349]!, self._r[1349]!, [_1]) + return formatWithArgumentRanges(self._s[1348]!, self._r[1348]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1350]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1351]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1352]! } + public var Channel_Management_LabelCreator: String { return self._s[1349]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1350]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1351]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1353]!, self._r[1353]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1352]!, self._r[1352]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1354]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1355]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1356]! } - public var ChannelIntro_CreateChannel: String { return self._s[1357]! } - public var Conversation_UnreadMessages: String { return self._s[1358]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1359]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1360]! } - public var Notification_GroupActivated: String { return self._s[1361]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1362]! } + public var Login_PhoneNumberHelp: String { return self._s[1353]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1354]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1355]! } + public var ChannelIntro_CreateChannel: String { return self._s[1356]! } + public var Conversation_UnreadMessages: String { return self._s[1357]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1358]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1359]! } + public var Notification_GroupActivated: String { return self._s[1360]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1361]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1363]!, self._r[1363]!, [_0]) + return formatWithArgumentRanges(self._s[1362]!, self._r[1362]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1364]!, self._r[1364]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1363]!, self._r[1363]!, [_0, _1]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1366]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1365]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1367]!, self._r[1367]!, [_0]) + return formatWithArgumentRanges(self._s[1366]!, self._r[1366]!, [_0]) } - public var Undo_DeletedChannel: String { return self._s[1368]! } - public var CallFeedback_AddComment: String { return self._s[1369]! } - public var Document_TargetConfirmationFormat: String { return self._s[1370]! } + public var Undo_DeletedChannel: String { return self._s[1367]! } + public var CallFeedback_AddComment: String { return self._s[1368]! } + public var Document_TargetConfirmationFormat: String { return self._s[1369]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1371]!, self._r[1371]!, [_0]) + return formatWithArgumentRanges(self._s[1370]!, self._r[1370]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1372]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1371]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1373]!, self._r[1373]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1372]!, self._r[1372]!, [_1, _2, _3, _4]) } - public var Contacts_SortByName: String { return self._s[1374]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1375]! } + public var Contacts_SortByName: String { return self._s[1373]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1374]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1377]!, self._r[1377]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1376]!, self._r[1376]!, [_1, _2, _3]) } - public var Conversation_ClearSelfHistory: String { return self._s[1378]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1379]! } - public var Stickers_SuggestNone: String { return self._s[1380]! } - public var ChatSettings_Cache: String { return self._s[1381]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1382]! } - public var Media_ShareThisPhoto: String { return self._s[1383]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1384]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1385]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1386]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1387]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1388]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[1389]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1391]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1392]! } - public var Map_OpenIn: String { return self._s[1393]! } + public var Conversation_ClearSelfHistory: String { return self._s[1377]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1378]! } + public var Stickers_SuggestNone: String { return self._s[1379]! } + public var ChatSettings_Cache: String { return self._s[1380]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1381]! } + public var Media_ShareThisPhoto: String { return self._s[1382]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1383]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1384]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1385]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1386]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1387]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1388]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1390]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1391]! } + public var Map_OpenIn: String { return self._s[1392]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_1]) + return formatWithArgumentRanges(self._s[1395]!, self._r[1395]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1397]!, self._r[1397]!, [_0]) + return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_0]) } - public var MessagePoll_LabelClosed: String { return self._s[1398]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1400]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1401]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1402]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1403]! } - public var Login_SelectCountry_Title: String { return self._s[1404]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1405]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1406]! } - public var Watch_Suggestion_BRB: String { return self._s[1407]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1408]! } - public var Contacts_PermissionsTitle: String { return self._s[1409]! } - public var Conversation_RestrictedInline: String { return self._s[1410]! } - public var StickerPack_ViewPack: String { return self._s[1412]! } + public var MessagePoll_LabelClosed: String { return self._s[1397]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1399]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1400]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1401]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1402]! } + public var Login_SelectCountry_Title: String { return self._s[1403]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1404]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1405]! } + public var Watch_Suggestion_BRB: String { return self._s[1406]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1407]! } + public var Contacts_PermissionsTitle: String { return self._s[1408]! } + public var Conversation_RestrictedInline: String { return self._s[1409]! } + public var StickerPack_ViewPack: String { return self._s[1411]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1413]!, self._r[1413]!, [_0]) + return formatWithArgumentRanges(self._s[1412]!, self._r[1412]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1415]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1418]! } - public var Channel_Info_Stickers: String { return self._s[1420]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1421]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1422]! } - public var Passport_DeletePersonalDetails: String { return self._s[1423]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1424]! } - public var Conversation_SearchNoResults: String { return self._s[1426]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1427]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1428]! } - public var Login_Code: String { return self._s[1429]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1430]! } - public var Weekday_ShortThursday: String { return self._s[1431]! } - public var Resolve_ErrorNotFound: String { return self._s[1433]! } - public var LastSeen_Offline: String { return self._s[1434]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1435]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1436]! } - public var GroupInfo_Title: String { return self._s[1437]! } - public var NotificationsSound_Note: String { return self._s[1438]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1439]! } - public var Watch_Message_Poll: String { return self._s[1440]! } - public var Privacy_Calls: String { return self._s[1441]! } - public var Month_ShortAugust: String { return self._s[1442]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1443]! } - public var Notifications_Reset: String { return self._s[1444]! } - public var Conversation_Pin: String { return self._s[1445]! } - public var Passport_Language_lv: String { return self._s[1446]! } - public var BlockedUsers_Info: String { return self._s[1447]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1449]! } - public var Watch_Conversation_Unblock: String { return self._s[1451]! } + public var Compose_NewChannel: String { return self._s[1414]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1417]! } + public var Channel_Info_Stickers: String { return self._s[1419]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1420]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1421]! } + public var Passport_DeletePersonalDetails: String { return self._s[1422]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1423]! } + public var Conversation_SearchNoResults: String { return self._s[1425]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1426]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1427]! } + public var Login_Code: String { return self._s[1428]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1429]! } + public var Weekday_ShortThursday: String { return self._s[1430]! } + public var Resolve_ErrorNotFound: String { return self._s[1432]! } + public var LastSeen_Offline: String { return self._s[1433]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1434]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1435]! } + public var GroupInfo_Title: String { return self._s[1436]! } + public var NotificationsSound_Note: String { return self._s[1437]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1438]! } + public var Watch_Message_Poll: String { return self._s[1439]! } + public var Privacy_Calls: String { return self._s[1440]! } + public var Month_ShortAugust: String { return self._s[1441]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1442]! } + public var Notifications_Reset: String { return self._s[1443]! } + public var Conversation_Pin: String { return self._s[1444]! } + public var Passport_Language_lv: String { return self._s[1445]! } + public var BlockedUsers_Info: String { return self._s[1446]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1448]! } + public var Watch_Conversation_Unblock: String { return self._s[1450]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_0]) + return formatWithArgumentRanges(self._s[1451]!, self._r[1451]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1453]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1454]! } + public var CloudStorage_Title: String { return self._s[1452]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1453]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1455]!, self._r[1455]!, [_0]) + return formatWithArgumentRanges(self._s[1454]!, self._r[1454]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1456]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1457]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1458]! } - public var Passport_Address_EditBankStatement: String { return self._s[1459]! } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1460]! } - public var ShareMenu_Comment: String { return self._s[1461]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1462]! } - public var Notifications_PermissionsTitle: String { return self._s[1463]! } - public var GroupPermission_NoSendLinks: String { return self._s[1464]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1465]! } - public var Settings_Support: String { return self._s[1466]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1467]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1468]! } - public var Privacy_Forwards_Preview: String { return self._s[1469]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1470]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1471]! } - public var Common_Select: String { return self._s[1473]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1474]! } - public var WallpaperSearch_ColorGray: String { return self._s[1476]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1477]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1478]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1479]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1480]! } - public var Widget_AuthRequired: String { return self._s[1481]! } - public var Camera_FlashOn: String { return self._s[1482]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1483]! } - public var Watch_Suggestion_OK: String { return self._s[1484]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1455]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1456]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1457]! } + public var Passport_Address_EditBankStatement: String { return self._s[1458]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1459]! } + public var ShareMenu_Comment: String { return self._s[1460]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1461]! } + public var Notifications_PermissionsTitle: String { return self._s[1462]! } + public var GroupPermission_NoSendLinks: String { return self._s[1463]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1464]! } + public var Settings_Support: String { return self._s[1465]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1466]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1467]! } + public var Privacy_Forwards_Preview: String { return self._s[1468]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1469]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1470]! } + public var Common_Select: String { return self._s[1472]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1473]! } + public var WallpaperSearch_ColorGray: String { return self._s[1475]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1476]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1477]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1478]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1479]! } + public var Widget_AuthRequired: String { return self._s[1480]! } + public var Camera_FlashOn: String { return self._s[1481]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1482]! } + public var Watch_Suggestion_OK: String { return self._s[1483]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1486]!, self._r[1486]!, [_0]) + return formatWithArgumentRanges(self._s[1485]!, self._r[1485]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1488]!, self._r[1488]!, [_0]) + return formatWithArgumentRanges(self._s[1487]!, self._r[1487]!, [_0]) } - public var DialogList_AdLabel: String { return self._s[1489]! } - public var WatchRemote_NotificationText: String { return self._s[1490]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1491]! } - public var Conversation_ReportSpam: String { return self._s[1492]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1493]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1495]! } - public var PhoneLabel_Title: String { return self._s[1496]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1497]! } - public var Settings_ChangePhoneNumber: String { return self._s[1498]! } - public var Notifications_ExceptionsTitle: String { return self._s[1499]! } - public var Notifications_AlertTones: String { return self._s[1500]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1501]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1502]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1503]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1505]! } - public var ReportPeer_ReasonOther: String { return self._s[1506]! } - public var KeyCommand_ScrollDown: String { return self._s[1508]! } + public var DialogList_AdLabel: String { return self._s[1488]! } + public var WatchRemote_NotificationText: String { return self._s[1489]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1490]! } + public var Conversation_ReportSpam: String { return self._s[1491]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1492]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1494]! } + public var PhoneLabel_Title: String { return self._s[1495]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1496]! } + public var Settings_ChangePhoneNumber: String { return self._s[1497]! } + public var Notifications_ExceptionsTitle: String { return self._s[1498]! } + public var Notifications_AlertTones: String { return self._s[1499]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1500]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1501]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1502]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1504]! } + public var ReportPeer_ReasonOther: String { return self._s[1505]! } + public var KeyCommand_ScrollDown: String { return self._s[1507]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1509]!, self._r[1509]!, [_0]) + return formatWithArgumentRanges(self._s[1508]!, self._r[1508]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1510]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1511]! } - public var AuthSessions_LogOut: String { return self._s[1512]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1513]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1514]! } - public var Passport_Phone_Title: String { return self._s[1515]! } - public var Settings_PhoneNumber: String { return self._s[1516]! } - public var NotificationsSound_Alert: String { return self._s[1517]! } - public var WebSearch_SearchNoResults: String { return self._s[1518]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1520]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1521]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1522]! } - public var PhotoEditor_CurvesTool: String { return self._s[1523]! } - public var Checkout_PaymentMethod: String { return self._s[1525]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1509]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1510]! } + public var AuthSessions_LogOut: String { return self._s[1511]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1512]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1513]! } + public var Passport_Phone_Title: String { return self._s[1514]! } + public var Settings_PhoneNumber: String { return self._s[1515]! } + public var NotificationsSound_Alert: String { return self._s[1516]! } + public var WebSearch_SearchNoResults: String { return self._s[1517]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1519]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1520]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1521]! } + public var PhotoEditor_CurvesTool: String { return self._s[1522]! } + public var Checkout_PaymentMethod: String { return self._s[1524]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1526]!, self._r[1526]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1527]! } - public var Camera_PhotoMode: String { return self._s[1530]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1531]! } - public var CallSettings_OnMobile: String { return self._s[1532]! } - public var Tour_Text2: String { return self._s[1533]! } + public var Contacts_AccessDeniedError: String { return self._s[1526]! } + public var Camera_PhotoMode: String { return self._s[1529]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1530]! } + public var CallSettings_OnMobile: String { return self._s[1531]! } + public var Tour_Text2: String { return self._s[1532]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1534]!, self._r[1534]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1533]!, self._r[1533]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1536]! } - public var Permissions_Skip: String { return self._s[1537]! } - public var SecretImage_Title: String { return self._s[1538]! } - public var Watch_MessageView_Title: String { return self._s[1539]! } - public var AttachmentMenu_Poll: String { return self._s[1540]! } + public var DialogList_EncryptionProcessing: String { return self._s[1535]! } + public var Permissions_Skip: String { return self._s[1536]! } + public var SecretImage_Title: String { return self._s[1537]! } + public var Watch_MessageView_Title: String { return self._s[1538]! } + public var AttachmentMenu_Poll: String { return self._s[1539]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1541]!, self._r[1541]!, [_0]) + return formatWithArgumentRanges(self._s[1540]!, self._r[1540]!, [_0]) } - public var Notification_CallCanceled: String { return self._s[1542]! } - public var WallpaperPreview_Title: String { return self._s[1543]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1544]! } - public var Settings_ProxyConnecting: String { return self._s[1545]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1547]! } - public var Profile_MessageLifetime5s: String { return self._s[1548]! } - public var Username_InvalidCharacters: String { return self._s[1549]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1550]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1551]! } - public var Settings_AddAccount: String { return self._s[1552]! } - public var Notification_CreatedChannel: String { return self._s[1555]! } + public var Notification_CallCanceled: String { return self._s[1541]! } + public var WallpaperPreview_Title: String { return self._s[1542]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1543]! } + public var Settings_ProxyConnecting: String { return self._s[1544]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1546]! } + public var Profile_MessageLifetime5s: String { return self._s[1547]! } + public var Username_InvalidCharacters: String { return self._s[1548]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1549]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1550]! } + public var Settings_AddAccount: String { return self._s[1551]! } + public var Notification_CreatedChannel: String { return self._s[1554]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1556]!, self._r[1556]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1555]!, self._r[1555]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1558]! } - public var Contacts_TopSection: String { return self._s[1559]! } + public var Passcode_AppLockedAlert: String { return self._s[1557]! } + public var Contacts_TopSection: String { return self._s[1558]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_0]) + return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1561]! } - public var UserInfo_TapToCall: String { return self._s[1562]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1564]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1565]! } - public var Common_Search: String { return self._s[1566]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1567]! } - public var Message_InvoiceLabel: String { return self._s[1568]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1569]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1570]! } + public var ReportPeer_ReasonSpam: String { return self._s[1560]! } + public var UserInfo_TapToCall: String { return self._s[1561]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1563]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1564]! } + public var Common_Search: String { return self._s[1565]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1566]! } + public var Message_InvoiceLabel: String { return self._s[1567]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1568]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1569]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1571]!, self._r[1571]!, [_0]) + return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, [_0]) } - public var Conversation_Info: String { return self._s[1572]! } - public var Login_InfoDeletePhoto: String { return self._s[1573]! } - public var Passport_Language_vi: String { return self._s[1575]! } - public var Conversation_Search: String { return self._s[1576]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1577]! } - public var ReportPeer_ReasonPornography: String { return self._s[1578]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1579]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1580]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1581]! } - public var Channel_Setup_TypeHeader: String { return self._s[1582]! } - public var AuthSessions_LoggedIn: String { return self._s[1583]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1584]! } - public var Login_SmsRequestState3: String { return self._s[1585]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1586]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1587]! } - public var Channel_Edit_LinkItem: String { return self._s[1588]! } - public var Privacy_Calls_P2PNever: String { return self._s[1589]! } - public var Conversation_AddToReadingList: String { return self._s[1591]! } - public var Message_Animation: String { return self._s[1592]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[1593]! } - public var Map_Unknown: String { return self._s[1594]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[1595]! } + public var Conversation_Info: String { return self._s[1571]! } + public var Login_InfoDeletePhoto: String { return self._s[1572]! } + public var Passport_Language_vi: String { return self._s[1574]! } + public var Conversation_Search: String { return self._s[1575]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1576]! } + public var ReportPeer_ReasonPornography: String { return self._s[1577]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1578]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1579]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1580]! } + public var Channel_Setup_TypeHeader: String { return self._s[1581]! } + public var AuthSessions_LoggedIn: String { return self._s[1582]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1583]! } + public var Login_SmsRequestState3: String { return self._s[1584]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1585]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1586]! } + public var Channel_Edit_LinkItem: String { return self._s[1587]! } + public var Privacy_Calls_P2PNever: String { return self._s[1588]! } + public var Conversation_AddToReadingList: String { return self._s[1590]! } + public var Message_Animation: String { return self._s[1591]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[1592]! } + public var Map_Unknown: String { return self._s[1593]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[1594]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1596]!, self._r[1596]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1595]!, self._r[1595]!, [_1, _2]) } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1597]!, self._r[1597]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1596]!, self._r[1596]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[1598]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[1599]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1600]! } + public var Call_StatusRequesting: String { return self._s[1597]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[1598]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1599]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1600]!, self._r[1600]!, [_1, _2]) } - public var Weekday_Monday: String { return self._s[1602]! } - public var Update_Skip: String { return self._s[1603]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1604]! } - public var Message_PinnedPollMessage: String { return self._s[1605]! } - public var BlockedUsers_Title: String { return self._s[1606]! } + public var Weekday_Monday: String { return self._s[1601]! } + public var Update_Skip: String { return self._s[1602]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1603]! } + public var Message_PinnedPollMessage: String { return self._s[1604]! } + public var BlockedUsers_Title: String { return self._s[1605]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_1]) + return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[1608]! } - public var NotificationsSound_Bell: String { return self._s[1609]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[1610]! } + public var Username_CheckingUsername: String { return self._s[1607]! } + public var NotificationsSound_Bell: String { return self._s[1608]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[1609]! } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1611]!, self._r[1611]!, [_0]) + return formatWithArgumentRanges(self._s[1610]!, self._r[1610]!, [_0]) } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1612]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1613]! } - public var ChatSettings_Groups: String { return self._s[1614]! } - public var Your_card_was_declined: String { return self._s[1615]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1617]! } - public var ChatList_Unmute: String { return self._s[1618]! } - public var PhotoEditor_CurvesAll: String { return self._s[1619]! } - public var Weekday_ShortTuesday: String { return self._s[1620]! } - public var DialogList_Read: String { return self._s[1621]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1622]! } - public var Passport_Identity_Gender: String { return self._s[1623]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1611]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1612]! } + public var ChatSettings_Groups: String { return self._s[1613]! } + public var Your_card_was_declined: String { return self._s[1614]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1616]! } + public var ChatList_Unmute: String { return self._s[1617]! } + public var PhotoEditor_CurvesAll: String { return self._s[1618]! } + public var Weekday_ShortTuesday: String { return self._s[1619]! } + public var DialogList_Read: String { return self._s[1620]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1621]! } + public var Passport_Identity_Gender: String { return self._s[1622]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1624]!, self._r[1624]!, [_0]) + return formatWithArgumentRanges(self._s[1623]!, self._r[1623]!, [_0]) } - public var Target_SelectGroup: String { return self._s[1625]! } + public var Target_SelectGroup: String { return self._s[1624]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1627]!, self._r[1627]!, [_0]) + return formatWithArgumentRanges(self._s[1626]!, self._r[1626]!, [_0]) } - public var Passport_Language_en: String { return self._s[1628]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1629]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1630]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1631]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[1633]! } - public var Login_InfoHelp: String { return self._s[1634]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1635]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1636]! } - public var SocksProxySetup_AddProxy: String { return self._s[1639]! } - public var CreatePoll_Title: String { return self._s[1640]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1641]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1642]! } - public var UserInfo_GroupsInCommon: String { return self._s[1643]! } - public var Call_AudioRouteHide: String { return self._s[1644]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1646]! } + public var Passport_Language_en: String { return self._s[1627]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1628]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1629]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1630]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[1632]! } + public var Login_InfoHelp: String { return self._s[1633]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1634]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1635]! } + public var SocksProxySetup_AddProxy: String { return self._s[1638]! } + public var CreatePoll_Title: String { return self._s[1639]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1640]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1641]! } + public var UserInfo_GroupsInCommon: String { return self._s[1642]! } + public var Call_AudioRouteHide: String { return self._s[1643]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1645]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_0]) + return formatWithArgumentRanges(self._s[1646]!, self._r[1646]!, [_0]) } - public var TextFormat_Bold: String { return self._s[1648]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[1649]! } - public var Notifications_Title: String { return self._s[1650]! } - public var Group_Username_InvalidTooShort: String { return self._s[1651]! } - public var Channel_ErrorAddTooMuch: String { return self._s[1652]! } + public var TextFormat_Bold: String { return self._s[1647]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[1648]! } + public var Notifications_Title: String { return self._s[1649]! } + public var Group_Username_InvalidTooShort: String { return self._s[1650]! } + public var Channel_ErrorAddTooMuch: String { return self._s[1651]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1653]!, self._r[1653]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1652]!, self._r[1652]!, ["\(_0)"]) } - public var Stickers_SuggestAdded: String { return self._s[1655]! } - public var Login_CountryCode: String { return self._s[1656]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1657]! } - public var Map_GetDirections: String { return self._s[1658]! } - public var Login_PhoneFloodError: String { return self._s[1659]! } + public var Stickers_SuggestAdded: String { return self._s[1654]! } + public var Login_CountryCode: String { return self._s[1655]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1656]! } + public var Map_GetDirections: String { return self._s[1657]! } + public var Login_PhoneFloodError: String { return self._s[1658]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1660]!, self._r[1660]!, [_0]) + return formatWithArgumentRanges(self._s[1659]!, self._r[1659]!, [_0]) } - public var Settings_SetUsername: String { return self._s[1662]! } - public var Notification_GroupInviterSelf: String { return self._s[1663]! } - public var InstantPage_TapToOpenLink: String { return self._s[1664]! } + public var Settings_SetUsername: String { return self._s[1661]! } + public var Notification_GroupInviterSelf: String { return self._s[1662]! } + public var InstantPage_TapToOpenLink: String { return self._s[1663]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1665]!, self._r[1665]!, [_0]) + return formatWithArgumentRanges(self._s[1664]!, self._r[1664]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[1666]! } - public var SecretChat_Title: String { return self._s[1667]! } - public var Group_UpgradeNoticeText1: String { return self._s[1668]! } - public var AuthSessions_Title: String { return self._s[1669]! } - public var PhotoEditor_CropAuto: String { return self._s[1670]! } - public var Channel_About_Title: String { return self._s[1671]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[1672]! } + public var Watch_Suggestion_TalkLater: String { return self._s[1665]! } + public var SecretChat_Title: String { return self._s[1666]! } + public var Group_UpgradeNoticeText1: String { return self._s[1667]! } + public var AuthSessions_Title: String { return self._s[1668]! } + public var PhotoEditor_CropAuto: String { return self._s[1669]! } + public var Channel_About_Title: String { return self._s[1670]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[1671]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, ["\(_0)"]) } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1676]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[1677]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1675]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[1676]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1678]!, self._r[1678]!, [_1]) + return formatWithArgumentRanges(self._s[1677]!, self._r[1677]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_0]) + return formatWithArgumentRanges(self._s[1679]!, self._r[1679]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1681]!, self._r[1681]!, [_0]) + return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[1682]! } - public var Presence_online: String { return self._s[1684]! } - public var PasscodeSettings_Title: String { return self._s[1685]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1686]! } - public var Web_OpenExternal: String { return self._s[1687]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[1689]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[1681]! } + public var Presence_online: String { return self._s[1683]! } + public var PasscodeSettings_Title: String { return self._s[1684]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1685]! } + public var Web_OpenExternal: String { return self._s[1686]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[1688]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1690]!, self._r[1690]!, [_0]) + return formatWithArgumentRanges(self._s[1689]!, self._r[1689]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[1691]! } - public var Map_YouAreHere: String { return self._s[1692]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[1690]! } + public var Map_YouAreHere: String { return self._s[1691]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1693]!, self._r[1693]!, [_0]) + return formatWithArgumentRanges(self._s[1692]!, self._r[1692]!, [_0]) } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1694]!, self._r[1694]!, [_0]) + return formatWithArgumentRanges(self._s[1693]!, self._r[1693]!, [_0]) } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[1695]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[1696]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[1694]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[1695]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1697]!, self._r[1697]!, [_0]) + return formatWithArgumentRanges(self._s[1696]!, self._r[1696]!, [_0]) } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1698]!, self._r[1698]!, [_0]) + return formatWithArgumentRanges(self._s[1697]!, self._r[1697]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[1699]! } - public var Bot_Start: String { return self._s[1700]! } + public var SocksProxySetup_Username: String { return self._s[1698]! } + public var Bot_Start: String { return self._s[1699]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0]) + return formatWithArgumentRanges(self._s[1700]!, self._r[1700]!, [_0]) } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1702]!, self._r[1702]!, [_0]) + return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[1703]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[1705]! } + public var Contacts_SortByPresence: String { return self._s[1702]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[1704]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1706]!, self._r[1706]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1705]!, self._r[1705]!, [_1, _2]) } public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_0]) + return formatWithArgumentRanges(self._s[1706]!, self._r[1706]!, [_0]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[1708]! } - public var Login_InfoAvatarPhoto: String { return self._s[1709]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[1710]! } - public var Tour_Title4: String { return self._s[1711]! } - public var Passport_Identity_Translation: String { return self._s[1712]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1713]! } - public var Login_TermsOfServiceLabel: String { return self._s[1715]! } - public var Passport_Language_it: String { return self._s[1716]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1717]! } - public var Passport_Identity_SelfieHelp: String { return self._s[1718]! } - public var Conversation_ClearAll: String { return self._s[1720]! } - public var TwoStepAuth_FloodError: String { return self._s[1722]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[1707]! } + public var Login_InfoAvatarPhoto: String { return self._s[1708]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[1709]! } + public var Tour_Title4: String { return self._s[1710]! } + public var Passport_Identity_Translation: String { return self._s[1711]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1712]! } + public var Login_TermsOfServiceLabel: String { return self._s[1714]! } + public var Passport_Language_it: String { return self._s[1715]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1716]! } + public var Passport_Identity_SelfieHelp: String { return self._s[1717]! } + public var Conversation_ClearAll: String { return self._s[1719]! } + public var TwoStepAuth_FloodError: String { return self._s[1721]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1723]!, self._r[1723]!, [_1]) + return formatWithArgumentRanges(self._s[1722]!, self._r[1722]!, [_1]) } - public var Paint_Delete: String { return self._s[1724]! } - public var LogoutOptions_SetPasscodeText: String { return self._s[1725]! } + public var Paint_Delete: String { return self._s[1723]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[1724]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1726]!, self._r[1726]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1725]!, self._r[1725]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[1727]! } + public var Message_PinnedAudioMessage: String { return self._s[1726]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1728]!, self._r[1728]!, [_0]) + return formatWithArgumentRanges(self._s[1727]!, self._r[1727]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[1729]! } - public var Notifications_GroupNotificationsSound: String { return self._s[1730]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[1731]! } - public var Conversation_MessageEditedLabel: String { return self._s[1732]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[1733]! } + public var Notification_Mute1hMin: String { return self._s[1728]! } + public var Notifications_GroupNotificationsSound: String { return self._s[1729]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1730]! } + public var Conversation_MessageEditedLabel: String { return self._s[1731]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[1732]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1734]!, self._r[1734]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1733]!, self._r[1733]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[1735]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1734]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1736]!, self._r[1736]!, [_1]) + return formatWithArgumentRanges(self._s[1735]!, self._r[1735]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[1737]! } - public var DataUpgrade_Running: String { return self._s[1738]! } - public var Month_GenOctober: String { return self._s[1739]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1740]! } - public var EnterPasscode_EnterPasscode: String { return self._s[1741]! } - public var MediaPicker_TimerTooltip: String { return self._s[1743]! } - public var SharedMedia_TitleAll: String { return self._s[1744]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[1747]! } - public var Conversation_RestrictedMedia: String { return self._s[1748]! } - public var AccessDenied_PhotosRestricted: String { return self._s[1749]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[1751]! } - public var ChangePhoneNumberCode_Called: String { return self._s[1752]! } + public var AccessDenied_LocationTracking: String { return self._s[1736]! } + public var DataUpgrade_Running: String { return self._s[1737]! } + public var Month_GenOctober: String { return self._s[1738]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1739]! } + public var EnterPasscode_EnterPasscode: String { return self._s[1740]! } + public var MediaPicker_TimerTooltip: String { return self._s[1742]! } + public var SharedMedia_TitleAll: String { return self._s[1743]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[1746]! } + public var Conversation_RestrictedMedia: String { return self._s[1747]! } + public var AccessDenied_PhotosRestricted: String { return self._s[1748]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[1750]! } + public var ChangePhoneNumberCode_Called: String { return self._s[1751]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1753]!, self._r[1753]!, [_0]) + return formatWithArgumentRanges(self._s[1752]!, self._r[1752]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[1756]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[1758]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1759]! } + public var Conversation_SavedMessages: String { return self._s[1755]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[1757]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1758]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1761]!, self._r[1761]!, [_0]) + return formatWithArgumentRanges(self._s[1760]!, self._r[1760]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[1762]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1763]! } + public var ReportPeer_AlertSuccess: String { return self._s[1761]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1762]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1764]!, self._r[1764]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1763]!, self._r[1763]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[1765]! } - public var PhotoEditor_FadeTool: String { return self._s[1766]! } - public var Privacy_ContactsReset: String { return self._s[1767]! } + public var Checkout_PasswordEntry_Title: String { return self._s[1764]! } + public var PhotoEditor_FadeTool: String { return self._s[1765]! } + public var Privacy_ContactsReset: String { return self._s[1766]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1769]!, self._r[1769]!, [_0]) + return formatWithArgumentRanges(self._s[1768]!, self._r[1768]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[1770]! } - public var ChatList_Mute: String { return self._s[1771]! } - public var Permissions_CellularDataText_v0: String { return self._s[1772]! } - public var ShareMenu_SelectChats: String { return self._s[1774]! } - public var MusicPlayer_VoiceNote: String { return self._s[1775]! } - public var Conversation_RestrictedText: String { return self._s[1776]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[1777]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[1778]! } - public var Cache_Videos: String { return self._s[1779]! } - public var FeatureDisabled_Oops: String { return self._s[1781]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1782]! } - public var Stickers_GroupStickersHelp: String { return self._s[1783]! } - public var GroupPermission_NoSendPolls: String { return self._s[1784]! } - public var Message_VideoExpired: String { return self._s[1786]! } - public var Notifications_Badge: String { return self._s[1787]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1788]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[1789]! } - public var Username_InvalidTooShort: String { return self._s[1790]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[1791]! } - public var Channel_AdminLog_PinMessages: String { return self._s[1792]! } + public var Message_PinnedVideoMessage: String { return self._s[1769]! } + public var ChatList_Mute: String { return self._s[1770]! } + public var Permissions_CellularDataText_v0: String { return self._s[1771]! } + public var ShareMenu_SelectChats: String { return self._s[1773]! } + public var MusicPlayer_VoiceNote: String { return self._s[1774]! } + public var Conversation_RestrictedText: String { return self._s[1775]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[1776]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[1777]! } + public var Cache_Videos: String { return self._s[1778]! } + public var FeatureDisabled_Oops: String { return self._s[1780]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1781]! } + public var Stickers_GroupStickersHelp: String { return self._s[1782]! } + public var GroupPermission_NoSendPolls: String { return self._s[1783]! } + public var Message_VideoExpired: String { return self._s[1785]! } + public var Notifications_Badge: String { return self._s[1786]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1787]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[1788]! } + public var Username_InvalidTooShort: String { return self._s[1789]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[1790]! } + public var Channel_AdminLog_PinMessages: String { return self._s[1791]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1793]!, self._r[1793]!, [_1]) + return formatWithArgumentRanges(self._s[1792]!, self._r[1792]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[1794]! } - public var Conversation_DefaultRestrictedText: String { return self._s[1795]! } - public var SharedMedia_CategoryDocs: String { return self._s[1798]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[1793]! } + public var Conversation_DefaultRestrictedText: String { return self._s[1794]! } + public var SharedMedia_CategoryDocs: String { return self._s[1797]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1799]!, self._r[1799]!, [_1]) + return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_1]) } - public var Privacy_Forwards_NeverLink: String { return self._s[1801]! } + public var Privacy_Forwards_NeverLink: String { return self._s[1800]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1802]!, self._r[1802]!, [_1]) + return formatWithArgumentRanges(self._s[1801]!, self._r[1801]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[1803]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[1802]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1804]!, self._r[1804]!, [_0]) + return formatWithArgumentRanges(self._s[1803]!, self._r[1803]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[1805]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[1806]! } - public var Channel_UpdatePhotoItem: String { return self._s[1807]! } - public var GroupInfo_LeftStatus: String { return self._s[1808]! } - public var Watch_MessageView_Forward: String { return self._s[1810]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[1811]! } - public var Cache_ClearEmpty: String { return self._s[1813]! } - public var Localization_LanguageName: String { return self._s[1814]! } - public var WebSearch_GIFs: String { return self._s[1815]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1816]! } - public var Username_InvalidStartsWithNumber: String { return self._s[1817]! } - public var Common_Back: String { return self._s[1818]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[1819]! } + public var ChatSettings_PrivateChats: String { return self._s[1804]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[1805]! } + public var Channel_UpdatePhotoItem: String { return self._s[1806]! } + public var GroupInfo_LeftStatus: String { return self._s[1807]! } + public var Watch_MessageView_Forward: String { return self._s[1809]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[1810]! } + public var Cache_ClearEmpty: String { return self._s[1812]! } + public var Localization_LanguageName: String { return self._s[1813]! } + public var WebSearch_GIFs: String { return self._s[1814]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1815]! } + public var Username_InvalidStartsWithNumber: String { return self._s[1816]! } + public var Common_Back: String { return self._s[1817]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[1818]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1820]!, self._r[1820]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_1, _2]) } - public var Passport_Email_Help: String { return self._s[1821]! } - public var Watch_Conversation_Reply: String { return self._s[1823]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[1825]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[1826]! } - public var Channel_BanUser_Unban: String { return self._s[1828]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1829]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[1830]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1832]! } - public var Passport_Identity_Name: String { return self._s[1833]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[1834]! } - public var Conversation_BlockUser: String { return self._s[1835]! } - public var Month_GenJanuary: String { return self._s[1836]! } - public var ChatSettings_TextSize: String { return self._s[1837]! } - public var Notification_PassportValuePhone: String { return self._s[1838]! } - public var Passport_Language_ne: String { return self._s[1839]! } - public var Notification_CallBack: String { return self._s[1840]! } - public var TwoStepAuth_EmailHelp: String { return self._s[1841]! } + public var Passport_Email_Help: String { return self._s[1820]! } + public var Watch_Conversation_Reply: String { return self._s[1822]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[1824]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[1825]! } + public var Channel_BanUser_Unban: String { return self._s[1827]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1828]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[1829]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1831]! } + public var Passport_Identity_Name: String { return self._s[1832]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[1833]! } + public var Conversation_BlockUser: String { return self._s[1834]! } + public var Month_GenJanuary: String { return self._s[1835]! } + public var ChatSettings_TextSize: String { return self._s[1836]! } + public var Notification_PassportValuePhone: String { return self._s[1837]! } + public var Passport_Language_ne: String { return self._s[1838]! } + public var Notification_CallBack: String { return self._s[1839]! } + public var TwoStepAuth_EmailHelp: String { return self._s[1840]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1842]!, self._r[1842]!, [_0]) + return formatWithArgumentRanges(self._s[1841]!, self._r[1841]!, [_0]) } - public var Channel_Info_Management: String { return self._s[1843]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[1844]! } - public var Stickers_FrequentlyUsed: String { return self._s[1845]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[1846]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1848]! } + public var Channel_Info_Management: String { return self._s[1842]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[1843]! } + public var Stickers_FrequentlyUsed: String { return self._s[1844]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[1845]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1847]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1849]!, self._r[1849]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[1848]!, self._r[1848]!, [_1, "\(_2)"]) } - public var Passport_Address_EditResidentialAddress: String { return self._s[1850]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[1851]! } - public var CreatePoll_TextHeader: String { return self._s[1852]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[1849]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[1850]! } + public var CreatePoll_TextHeader: String { return self._s[1851]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1853]!, self._r[1853]!, [_0]) + return formatWithArgumentRanges(self._s[1852]!, self._r[1852]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[1854]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1855]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1857]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1858]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[1859]! } + public var PhotoEditor_QualityMedium: String { return self._s[1853]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1854]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1856]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1857]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[1858]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1860]!, self._r[1860]!, [_0]) + return formatWithArgumentRanges(self._s[1859]!, self._r[1859]!, [_0]) } - public var Conversation_LinkDialogOpen: String { return self._s[1862]! } - public var Settings_Username: String { return self._s[1863]! } - public var Wallpaper_Wallpaper: String { return self._s[1865]! } - public var SocksProxySetup_UseProxy: String { return self._s[1867]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[1868]! } - public var MessageTimer_Forever: String { return self._s[1869]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[1870]! } - public var PhotoEditor_DiscardChanges: String { return self._s[1871]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1872]! } - public var Passport_Language_da: String { return self._s[1873]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[1874]! } + public var Conversation_LinkDialogOpen: String { return self._s[1861]! } + public var Settings_Username: String { return self._s[1862]! } + public var Wallpaper_Wallpaper: String { return self._s[1864]! } + public var SocksProxySetup_UseProxy: String { return self._s[1866]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[1867]! } + public var MessageTimer_Forever: String { return self._s[1868]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[1869]! } + public var PhotoEditor_DiscardChanges: String { return self._s[1870]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1871]! } + public var Passport_Language_da: String { return self._s[1872]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[1873]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1875]!, self._r[1875]!, [_0]) + return formatWithArgumentRanges(self._s[1874]!, self._r[1874]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[1876]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[1875]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1878]!, self._r[1878]!, [_0]) + return formatWithArgumentRanges(self._s[1877]!, self._r[1877]!, [_0]) } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1880]! } - public var Conversation_SearchByName_Prefix: String { return self._s[1881]! } - public var Conversation_PinnedPoll: String { return self._s[1882]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[1883]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1879]! } + public var Conversation_SearchByName_Prefix: String { return self._s[1880]! } + public var Conversation_PinnedPoll: String { return self._s[1881]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[1882]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1884]!, self._r[1884]!, [_1]) + return formatWithArgumentRanges(self._s[1883]!, self._r[1883]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[1885]! } - public var Cache_ByPeerHeader: String { return self._s[1886]! } + public var WallpaperSearch_ColorPurple: String { return self._s[1884]! } + public var Cache_ByPeerHeader: String { return self._s[1885]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1887]!, self._r[1887]!, [_0]) + return formatWithArgumentRanges(self._s[1886]!, self._r[1886]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[1888]! } - public var Notification_PinnedMessage: String { return self._s[1891]! } - public var Contacts_SortBy: String { return self._s[1893]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[1887]! } + public var Notification_PinnedMessage: String { return self._s[1890]! } + public var Contacts_SortBy: String { return self._s[1892]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1894]!, self._r[1894]!, [_1]) + return formatWithArgumentRanges(self._s[1893]!, self._r[1893]!, [_1]) } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1896]!, self._r[1896]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1895]!, self._r[1895]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[1897]! } - public var Watch_UserInfo_Service: String { return self._s[1898]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[1900]! } - public var Conversation_Unpin: String { return self._s[1902]! } - public var CancelResetAccount_Title: String { return self._s[1903]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[1904]! } + public var Call_EncryptionKey_Title: String { return self._s[1896]! } + public var Watch_UserInfo_Service: String { return self._s[1897]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[1899]! } + public var Conversation_Unpin: String { return self._s[1901]! } + public var CancelResetAccount_Title: String { return self._s[1902]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[1903]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1906]!, self._r[1906]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1905]!, self._r[1905]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1907]! } - public var CallSettings_Title: String { return self._s[1908]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1909]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[1911]! } - public var AutoDownloadSettings_Contacts: String { return self._s[1912]! } - public var Passport_Identity_DocumentDetails: String { return self._s[1913]! } - public var LoginPassword_PasswordHelp: String { return self._s[1914]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1915]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[1916]! } - public var Checkout_TotalPaidAmount: String { return self._s[1917]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1906]! } + public var CallSettings_Title: String { return self._s[1907]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1908]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[1910]! } + public var AutoDownloadSettings_Contacts: String { return self._s[1911]! } + public var Passport_Identity_DocumentDetails: String { return self._s[1912]! } + public var LoginPassword_PasswordHelp: String { return self._s[1913]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1914]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[1915]! } + public var Checkout_TotalPaidAmount: String { return self._s[1916]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1918]!, self._r[1918]!, [_0]) + return formatWithArgumentRanges(self._s[1917]!, self._r[1917]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[1919]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[1921]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[1922]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[1918]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[1920]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[1921]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1923]!, self._r[1923]!, [_1]) + return formatWithArgumentRanges(self._s[1922]!, self._r[1922]!, [_1]) } - public var Contacts_InviteFriends: String { return self._s[1925]! } - public var Map_ChooseLocationTitle: String { return self._s[1926]! } - public var Conversation_StopPoll: String { return self._s[1928]! } + public var Contacts_InviteFriends: String { return self._s[1924]! } + public var Map_ChooseLocationTitle: String { return self._s[1925]! } + public var Conversation_StopPoll: String { return self._s[1927]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1929]!, self._r[1929]!, [_0]) + return formatWithArgumentRanges(self._s[1928]!, self._r[1928]!, [_0]) } - public var Call_Camera: String { return self._s[1930]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[1931]! } - public var Calls_RatingFeedback: String { return self._s[1932]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[1933]! } - public var NotificationsSound_Pulse: String { return self._s[1934]! } - public var Watch_LastSeen_Lately: String { return self._s[1935]! } - public var Widget_NoUsers: String { return self._s[1938]! } - public var Conversation_UnvotePoll: String { return self._s[1939]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[1941]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[1942]! } - public var NotificationsSound_Circles: String { return self._s[1943]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[1945]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[1946]! } - public var Proxy_TooltipUnavailable: String { return self._s[1947]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[1949]! } - public var Conversation_FileDropbox: String { return self._s[1951]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[1952]! } - public var Tour_Text3: String { return self._s[1954]! } - public var Login_ResetAccountProtected_Title: String { return self._s[1956]! } - public var GroupPermission_NoSendMessages: String { return self._s[1957]! } - public var WallpaperSearch_ColorTitle: String { return self._s[1958]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[1959]! } + public var Call_Camera: String { return self._s[1929]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[1930]! } + public var Calls_RatingFeedback: String { return self._s[1931]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[1932]! } + public var NotificationsSound_Pulse: String { return self._s[1933]! } + public var Watch_LastSeen_Lately: String { return self._s[1934]! } + public var Widget_NoUsers: String { return self._s[1937]! } + public var Conversation_UnvotePoll: String { return self._s[1938]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[1940]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[1941]! } + public var NotificationsSound_Circles: String { return self._s[1942]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[1944]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[1945]! } + public var Proxy_TooltipUnavailable: String { return self._s[1946]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[1948]! } + public var Conversation_FileDropbox: String { return self._s[1950]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[1951]! } + public var Tour_Text3: String { return self._s[1953]! } + public var Login_ResetAccountProtected_Title: String { return self._s[1955]! } + public var GroupPermission_NoSendMessages: String { return self._s[1956]! } + public var WallpaperSearch_ColorTitle: String { return self._s[1957]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[1958]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1961]!, self._r[1961]!, [_0]) + return formatWithArgumentRanges(self._s[1960]!, self._r[1960]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[1962]! } - public var Checkout_ShippingOption_Title: String { return self._s[1963]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[1964]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[1961]! } + public var Checkout_ShippingOption_Title: String { return self._s[1962]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[1963]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1965]!, self._r[1965]!, [_0]) + return formatWithArgumentRanges(self._s[1964]!, self._r[1964]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1966]!, self._r[1966]!, [_0]) + return formatWithArgumentRanges(self._s[1965]!, self._r[1965]!, [_0]) } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1967]! } - public var AutoDownloadSettings_Photos: String { return self._s[1969]! } - public var Appearance_PreviewIncomingText: String { return self._s[1970]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[1971]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[1972]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[1973]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[1974]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[1975]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[1976]! } - public var Notification_SecretChatScreenshot: String { return self._s[1977]! } - public var AccessDenied_Wallpapers: String { return self._s[1978]! } - public var Passport_Address_City: String { return self._s[1980]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1981]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[1982]! } - public var AccessDenied_LocationDisabled: String { return self._s[1983]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1985]! } - public var GroupInfo_Sound: String { return self._s[1986]! } - public var Stickers_RemoveFromFavorites: String { return self._s[1987]! } - public var Contacts_Title: String { return self._s[1988]! } - public var Passport_Language_fr: String { return self._s[1989]! } - public var Notifications_ResetAllNotifications: String { return self._s[1990]! } - public var PrivacySettings_SecurityTitle: String { return self._s[1993]! } - public var Checkout_NewCard_Title: String { return self._s[1994]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[1995]! } - public var Conversation_ForwardChats: String { return self._s[1996]! } - public var Settings_FAQ: String { return self._s[1999]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2000]! } - public var Conversation_ContextMenuForward: String { return self._s[2001]! } - public var PrivacyPolicy_Title: String { return self._s[2006]! } - public var Notifications_TextTone: String { return self._s[2007]! } - public var Profile_CreateNewContact: String { return self._s[2008]! } - public var Call_Speaker: String { return self._s[2010]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2011]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2013]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1966]! } + public var AutoDownloadSettings_Photos: String { return self._s[1968]! } + public var Appearance_PreviewIncomingText: String { return self._s[1969]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[1970]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[1971]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[1972]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[1973]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[1974]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[1975]! } + public var Notification_SecretChatScreenshot: String { return self._s[1976]! } + public var AccessDenied_Wallpapers: String { return self._s[1977]! } + public var Passport_Address_City: String { return self._s[1979]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1980]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[1981]! } + public var AccessDenied_LocationDisabled: String { return self._s[1982]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1984]! } + public var GroupInfo_Sound: String { return self._s[1985]! } + public var Stickers_RemoveFromFavorites: String { return self._s[1986]! } + public var Contacts_Title: String { return self._s[1987]! } + public var Passport_Language_fr: String { return self._s[1988]! } + public var Notifications_ResetAllNotifications: String { return self._s[1989]! } + public var PrivacySettings_SecurityTitle: String { return self._s[1992]! } + public var Checkout_NewCard_Title: String { return self._s[1993]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[1994]! } + public var Conversation_ForwardChats: String { return self._s[1995]! } + public var Settings_FAQ: String { return self._s[1998]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[1999]! } + public var Conversation_ContextMenuForward: String { return self._s[2000]! } + public var PrivacyPolicy_Title: String { return self._s[2005]! } + public var Notifications_TextTone: String { return self._s[2006]! } + public var Profile_CreateNewContact: String { return self._s[2007]! } + public var Call_Speaker: String { return self._s[2009]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2010]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2012]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2014]!, self._r[2014]!, [_0]) + return formatWithArgumentRanges(self._s[2013]!, self._r[2013]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2015]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2016]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2017]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2018]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2019]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2020]! } - public var Bot_Unblock: String { return self._s[2021]! } - public var TextFormat_Italic: String { return self._s[2022]! } - public var WallpaperSearch_ColorPink: String { return self._s[2023]! } - public var Weekday_Wednesday: String { return self._s[2024]! } - public var Settings_About_Help: String { return self._s[2025]! } - public var SearchImages_Title: String { return self._s[2026]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2027]! } - public var ExplicitContent_AlertTitle: String { return self._s[2028]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2014]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2015]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2016]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2017]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2018]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2019]! } + public var Bot_Unblock: String { return self._s[2020]! } + public var TextFormat_Italic: String { return self._s[2021]! } + public var WallpaperSearch_ColorPink: String { return self._s[2022]! } + public var Weekday_Wednesday: String { return self._s[2023]! } + public var Settings_About_Help: String { return self._s[2024]! } + public var SearchImages_Title: String { return self._s[2025]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2026]! } + public var ExplicitContent_AlertTitle: String { return self._s[2027]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2029]!, self._r[2029]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2028]!, self._r[2028]!, [_1, _2, _3]) } - public var Weekday_Thursday: String { return self._s[2030]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2031]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2032]! } + public var Weekday_Thursday: String { return self._s[2029]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2030]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2031]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2033]!, self._r[2033]!, [_0]) + return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_0]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2034]! } - public var Passport_RequestedInformation: String { return self._s[2035]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2036]! } - public var Conversation_EncryptionProcessing: String { return self._s[2038]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2039]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2041]! } - public var Channel_Setup_Title: String { return self._s[2042]! } - public var Conversation_SearchPlaceholder: String { return self._s[2043]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2044]! } - public var Checkout_ErrorGeneric: String { return self._s[2045]! } - public var Passport_Language_hu: String { return self._s[2046]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2033]! } + public var Passport_RequestedInformation: String { return self._s[2034]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2035]! } + public var Conversation_EncryptionProcessing: String { return self._s[2037]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2038]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2040]! } + public var Channel_Setup_Title: String { return self._s[2041]! } + public var Conversation_SearchPlaceholder: String { return self._s[2042]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2043]! } + public var Checkout_ErrorGeneric: String { return self._s[2044]! } + public var Passport_Language_hu: String { return self._s[2045]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2048]!, self._r[2048]!, [_0]) + return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2051]!, self._r[2051]!, [_1]) + return formatWithArgumentRanges(self._s[2050]!, self._r[2050]!, [_1]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2052]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2053]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2051]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2052]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2054]!, self._r[2054]!, [_0]) + return formatWithArgumentRanges(self._s[2053]!, self._r[2053]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2055]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2056]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2057]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2054]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2055]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2056]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2058]!, self._r[2058]!, [_0]) + return formatWithArgumentRanges(self._s[2057]!, self._r[2057]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2059]! } - public var Message_PinnedAnimationMessage: String { return self._s[2061]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2063]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2064]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2066]! } - public var Embed_PlayingInPIP: String { return self._s[2067]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2068]! } + public var Passport_Language_cs: String { return self._s[2058]! } + public var Message_PinnedAnimationMessage: String { return self._s[2060]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2062]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2063]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2065]! } + public var Embed_PlayingInPIP: String { return self._s[2066]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2067]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2069]!, self._r[2069]!, [_0]) + return formatWithArgumentRanges(self._s[2068]!, self._r[2068]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2070]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2069]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2071]!, self._r[2071]!, [_1]) + return formatWithArgumentRanges(self._s[2070]!, self._r[2070]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2072]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2073]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2074]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2075]! } + public var Notification_PaymentSent: String { return self._s[2071]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2072]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2073]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2074]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, [_1]) + return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2079]!, self._r[2079]!, [_1]) + return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2080]!, self._r[2080]!, [_1]) + return formatWithArgumentRanges(self._s[2079]!, self._r[2079]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2082]! } - public var PasscodeSettings_HelpTop: String { return self._s[2083]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2084]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2085]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2086]! } - public var Call_Accept: String { return self._s[2088]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2089]! } - public var Month_GenMarch: String { return self._s[2091]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2092]! } - public var LoginPassword_Title: String { return self._s[2093]! } - public var Call_End: String { return self._s[2094]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2095]! } - public var CallSettings_Always: String { return self._s[2096]! } - public var CallFeedback_Success: String { return self._s[2097]! } - public var TwoStepAuth_SetupHint: String { return self._s[2098]! } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2099]! } - public var Login_PhoneTitle: String { return self._s[2100]! } - public var Passport_FieldPhoneHelp: String { return self._s[2101]! } - public var Weekday_ShortSunday: String { return self._s[2102]! } - public var Passport_InfoFAQ_URL: String { return self._s[2103]! } - public var ContactInfo_Job: String { return self._s[2105]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2106]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2107]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2108]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2109]! } - public var CallFeedback_ReasonNoise: String { return self._s[2110]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2112]! } - public var MediaPicker_AddCaption: String { return self._s[2113]! } - public var CallSettings_TabIconDescription: String { return self._s[2114]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2115]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2116]! } - public var DialogList_SearchSectionRecent: String { return self._s[2117]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2118]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2121]! } - public var LastSeen_WithinAWeek: String { return self._s[2122]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2123]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2125]! } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2126]! } - public var Conversation_StatusLeftGroup: String { return self._s[2127]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2128]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2130]! } - public var GroupPermission_AddSuccess: String { return self._s[2131]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2133]! } - public var Conversation_ContextMenuCopy: String { return self._s[2134]! } - public var AccessDenied_CallMicrophone: String { return self._s[2135]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2081]! } + public var PasscodeSettings_HelpTop: String { return self._s[2082]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2083]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2084]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2085]! } + public var Call_Accept: String { return self._s[2087]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2088]! } + public var Month_GenMarch: String { return self._s[2090]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2091]! } + public var LoginPassword_Title: String { return self._s[2092]! } + public var Call_End: String { return self._s[2093]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2094]! } + public var CallSettings_Always: String { return self._s[2095]! } + public var CallFeedback_Success: String { return self._s[2096]! } + public var TwoStepAuth_SetupHint: String { return self._s[2097]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2098]! } + public var Login_PhoneTitle: String { return self._s[2099]! } + public var Passport_FieldPhoneHelp: String { return self._s[2100]! } + public var Weekday_ShortSunday: String { return self._s[2101]! } + public var Passport_InfoFAQ_URL: String { return self._s[2102]! } + public var ContactInfo_Job: String { return self._s[2104]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2105]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2106]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2107]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2108]! } + public var CallFeedback_ReasonNoise: String { return self._s[2109]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2111]! } + public var MediaPicker_AddCaption: String { return self._s[2112]! } + public var CallSettings_TabIconDescription: String { return self._s[2113]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2114]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2115]! } + public var DialogList_SearchSectionRecent: String { return self._s[2116]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2117]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2120]! } + public var LastSeen_WithinAWeek: String { return self._s[2121]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2122]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2124]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2125]! } + public var Conversation_StatusLeftGroup: String { return self._s[2126]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2127]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2129]! } + public var GroupPermission_AddSuccess: String { return self._s[2130]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2132]! } + public var Conversation_ContextMenuCopy: String { return self._s[2133]! } + public var AccessDenied_CallMicrophone: String { return self._s[2134]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2137]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2138]! } - public var Checkout_PaymentMethod_New: String { return self._s[2139]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2140]! } - public var PhotoEditor_QualityTool: String { return self._s[2141]! } - public var Login_SendCodeViaSms: String { return self._s[2142]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2143]! } - public var Login_EmailNotConfiguredError: String { return self._s[2144]! } - public var SocksProxySetup_Status: String { return self._s[2145]! } - public var PrivacyPolicy_Accept: String { return self._s[2146]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2147]! } + public var Login_InvalidFirstNameError: String { return self._s[2136]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2137]! } + public var Checkout_PaymentMethod_New: String { return self._s[2138]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2139]! } + public var PhotoEditor_QualityTool: String { return self._s[2140]! } + public var Login_SendCodeViaSms: String { return self._s[2141]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2142]! } + public var Login_EmailNotConfiguredError: String { return self._s[2143]! } + public var SocksProxySetup_Status: String { return self._s[2144]! } + public var PrivacyPolicy_Accept: String { return self._s[2145]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2146]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2148]!, self._r[2148]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_1, _2, _3]) } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2149]! } - public var AutoNightTheme_Automatic: String { return self._s[2150]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2151]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2152]! } - public var Cache_Help: String { return self._s[2153]! } - public var Passport_Language_fa: String { return self._s[2154]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2155]! } - public var PrivacySettings_LastSeen: String { return self._s[2156]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2148]! } + public var AutoNightTheme_Automatic: String { return self._s[2149]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2150]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2151]! } + public var Cache_Help: String { return self._s[2152]! } + public var Passport_Language_fa: String { return self._s[2153]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2154]! } + public var PrivacySettings_LastSeen: String { return self._s[2155]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2157]!, self._r[2157]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2156]!, self._r[2156]!, [_0, _1]) } - public var Preview_SaveGif: String { return self._s[2161]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2162]! } - public var Profile_About: String { return self._s[2163]! } - public var Channel_About_Placeholder: String { return self._s[2164]! } - public var Login_InfoTitle: String { return self._s[2165]! } + public var Preview_SaveGif: String { return self._s[2160]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2161]! } + public var Profile_About: String { return self._s[2162]! } + public var Channel_About_Placeholder: String { return self._s[2163]! } + public var Login_InfoTitle: String { return self._s[2164]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2166]!, self._r[2166]!, [_0]) + return formatWithArgumentRanges(self._s[2165]!, self._r[2165]!, [_0]) + } + public var Watch_Suggestion_CantTalk: String { return self._s[2167]! } + public var ContactInfo_Title: String { return self._s[2168]! } + public var Media_ShareThisVideo: String { return self._s[2169]! } + public var Weekday_ShortFriday: String { return self._s[2170]! } + public var AccessDenied_Contacts: String { return self._s[2171]! } + public var Notification_CallIncomingShort: String { return self._s[2172]! } + public var Group_Setup_TypePublic: String { return self._s[2173]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2174]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2175]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2178]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2179]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2180]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2181]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2182]! } + public var DialogList_Typing: String { return self._s[2183]! } + public var CallFeedback_IncludeLogs: String { return self._s[2185]! } + public var Checkout_Phone: String { return self._s[2187]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2190]! } + public var Privacy_Calls_Integration: String { return self._s[2191]! } + public var Notifications_PermissionsAllow: String { return self._s[2192]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2196]! } + public var Settings_ChatSettings: String { return self._s[2197]! } + public func PUSH_MESSAGE_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2198]!, self._r[2198]!, [_1]) } - public var Watch_Suggestion_CantTalk: String { return self._s[2168]! } - public var ContactInfo_Title: String { return self._s[2169]! } - public var Media_ShareThisVideo: String { return self._s[2170]! } - public var Weekday_ShortFriday: String { return self._s[2171]! } - public var AccessDenied_Contacts: String { return self._s[2172]! } - public var Notification_CallIncomingShort: String { return self._s[2173]! } - public var Group_Setup_TypePublic: String { return self._s[2174]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2175]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2176]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2179]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2180]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2181]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2182]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2183]! } - public var DialogList_Typing: String { return self._s[2184]! } - public var CallFeedback_IncludeLogs: String { return self._s[2186]! } - public var Checkout_Phone: String { return self._s[2188]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2191]! } - public var Privacy_Calls_Integration: String { return self._s[2192]! } - public var Notifications_PermissionsAllow: String { return self._s[2193]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2197]! } - public var Settings_ChatSettings: String { return self._s[2198]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2199]!, self._r[2199]!, [_1, _2]) } @@ -3675,442 +3676,535 @@ public final class PresentationStrings { public var Channel_Setup_TypePublicHelp: String { return self._s[3283]! } public var Passport_Identity_EditInternalPassport: String { return self._s[3284]! } public var PhotoEditor_Skip: String { return self._s[3285]! } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { + public func ForwardedMessages(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Call_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Call_Seconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Call_ShortMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Passport_Scans(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, "\(value)") + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } public func Conversation_StatusMembers(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, "\(value)") + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedMessages(_ value: Int32) -> String { + public func Passport_Scans(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Invitation_Members(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_ShortDays(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, "\(value)") + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } public func MessageTimer_Weeks(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, _2, _1, _3) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, "\(value)") + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func MuteExpires_Minutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, "\(value)") + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortSeconds(_ value: Int32) -> String { + public func MessageTimer_Hours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedPolls(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func UserCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, "\(value)") - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, "\(value)") + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) } public func AttachmentMenu_SendVideo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, "\(value)") + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } - init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?) { + init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { self.primaryComponent = primaryComponent self.secondaryComponent = secondaryComponent + self.groupingSeparator = groupingSeparator self.baseLanguageCode = secondaryComponent?.languageCode ?? primaryComponent.languageCode diff --git a/TelegramUI/Resources/PresentationStrings.mapping b/TelegramUI/Resources/PresentationStrings.mapping index 4d97b6a1227c2a4950e6b53c9d3a894b05e9ff66..537b5c1b5995024f9d0aa65568b9812046145aaa 100644 GIT binary patch delta 19153 zcmZX62Y8gl_I~C|X4Cs_vYTwSWz&;QLhmFHIwXMv5Tz~20)dbXDIg%tE+XxSqbMZ; zN-s7P0l|w`1r)Gc8whwUSZMZ!{NI_~1n%$uJl9-i&YAh9o_XgzXZBxbbjQ!=_G~WX zt5`sQl}?W~(#M5SjOd#}8()pQq*Zt7$<{7XdyG-cu|(?ME?yIiVoTzwuAPBDu8NgD zkVxy>MYA=uyIrRCB%`vG$szqmmp~Zs6#d=K!q?)TdE!DGOQcTiQ}{Y0GwIq03+?(` zM|ZUk=j)M^B%((#Q)pjrwFdF>T~jLsPt!l`?Q9d-Iu!HG zvK+-cXrOr=BKWgNCDQm#384dPrc9N(TWEWS9KIF#cDi6sNF3^}o6_u_;wi3bs`1uI zjct$>iz9ckELy%_Pm%q@*>)P<(aLtv%#L=x6JjHceJ7bqJMQdzKk=_*cM7jF>Qoj`lW8m-XzU>z&N( zWlHL7;jhRqi0BfQ%%$dj8rRv$UZuM`r?CUHrE@AfNGCdHq#TAY2J(^`cdd8I(3-|3 zS7l98ts1H$6w@V-y-vNlSlPd5d>4y$l+lq-;%Q|UGkb$}b+NIx=wufcdz=30lEsgq zDktTe>@=)vSeN5SMWfV4)!1V zv|EPu5u+hn%w+8z%0I?Oa%k_IWbxNj79LsYxwEOFX0GbjCp58p2K$sA>~3RcXe<7n zrDNS~{Bsn^qS!z^)wdW$Q8f!<=g8J0ft{z$JyO_zX=D!@|57%d++*X_%zZ_xdgQWi z=(QdWei4#F+PmLIx}HY%Em?bZWk1lEo;myyBo11zKTRjQc$v|PGAq5`Gm%}P^EsyA zMm2d?sVE;`rf72Y((!93k|KuBX6DdAb(6ia+)p&VR}%Y~=JZNozmVvaZu}KWVUP@S z*SiMJnbc5IE%p9jw9AqxR#dZ)@KH6@9&e+}{gZC=%4dI3e(z%T56$eIsoh}oWN$NP zT0lTL^*ohK`SatLM&I?eYk?YFdm)}|Me$mYM!V*u(;Y>joI}&Mrp1B;X0?PM9gC_* zHhLOlBV83!-3^{T-X{6IP&!$Z%);pVA_ohnsA8iQq0xmLBNY|vSR@T7cCsj{Ep}+p zzHeSJR@y4J_x zH2Dkksr6!!R?7}Gx{9l-OFe2)CdrP93!9i;?WJTY?`vabn%TE~QVK+osB@UNu4$@k zfTwP7bL||Y11xl?Z#uU@Y^9l7^>n>&9J5nQNfvWZw~~%5mFi1Un3I;3!5Gj+g%IuB~l!Vcg_DWWi3< zeL%9-Srgt7EZI=vZgP*5_F$-QyLUmcM0)M0kv0s_@vcav(h;+bjt>aq-H=L>W|yuG z2-mu6w8#iU5J|Ry@w^9QW>J3+)6>v_(X1zp9ca^fX(DC?W^~B6p=zV`R)ZH@ui8;W zM+au`Vw7`;#lr34SW$=CwImO&Nm?N#c!F#8g#Qw+&m%Z}NnBlE+ z^{cK?YkL5)EfhN4bed48pQbJSXoyFaW;s48DwRH$uQW-hETV`xk*Ez zpvGvbyGdEv5gxbNvBPN5;0#_0u~`(xuy}fHa11M_Q-e)xIDI!bosFQ_A<3+Q@`iMD zRzgiK?g~#+Q%&6ztke2>kGsKLSEY>GD2NNB-J^ojp|ovCJR41ihS=B`Iyc0@Z-+EV zo_mxuG?I;_%%PpxIGQ*#jg6=KhuZlB$kVAHPEUu2n#_}sio&Nx)>V65Lp_t51~hn^ z)jF!usPNu+D!3emgSB3bm4}jtWmqSpNSqq6x+Zs3Q=_W_E32xh*tZy_kb79Fc`9_| z(J&fIq~2ZcX}GzRYiPr;Og4?)9%f%$jLHnT^jv;bba2kQ6FU0em=MHZ3pf%9bUNtxf4Up3X^Dxd0Y@)^*{M@ovNk9Sw!{aUD;yVR&Hl^(}{8yyNCWN&$Zl(y5#A5a|&+`#r?|Q zg|(CAAAnvCv1vwHI6R3xNNa{?^M{a^BCaOlglOH}OX%`&3wxL%M`UPAHF1PvDGeHt zl(NkKnZDlUNv=wFeSdF5g}1p*b#pl_8ewKDY3+zCwu;^ykp`G{X+*a6s7Adp+-Jf< zs7FO8e+*UFX>U|woHVx0^(CIF+L}7G;siBTxGazRztMW$5A{~LTfxv1ny6oZjrmbU zJYNGnBb{285Y~n>o}%c=Y_^uVRi?3ZG_f+Dt)~^08EgZ+Txr)@e7m?wL5HX5&q@bC zTFS^=wwVTxw6SMsI{rROOGjq#EvUPI7I#UclgQgjSMhfn#g57W_Ubt*&AJ0}wK%Z> z+qO?x(^MZU*-48>Wof%`9NmWrvX^Y5 zGwjbnDCcpsXHo_BV%1dFpcyc7YEe87S&Hm1Ef^gI8289%BYzQj$#nV|JslbyrM;xl z!Z(t|RWIXod32bzPouq$87b~I1AiHcc3P}A)4*QX1(}m>lmj#09?RcG zDvf%-lp?+w!J@TeK3g&6_BidhZ!SH`BA=i&w_Dk}wEuPs0N*FKr?J!6{dx*r7^AS& zdz5)c8USDE9i8|Gs1oBa)=az0LX`AFdhU*N%YTrsOsda7_igatWR%_e2m%Y8Do+mY zSLdGO!?T}|d2D*}8Azm2Yg+(q*8VJw8*62s)BLfW_&I19Xh9v8>ewKD9;p;sk)1$? zAK_uele`VejC?`=jLiiu%o*ooUsCzFeD)PB8kfMnCNVA(sPOQ(40e$&j&rc@D13Yx zyF`WK&FnIOhn@~}4zb9FUPaY%a+Hmge`Mx0WG2%qPnmHV>+Y{W8;O)NAzJ%gqoS>e6n!9+#!iUfe?ePeT4Bj$p|oT|Jo}s0P3WTi zG?T+E0NSVaM9?Te4UN&^7tS2mxVk(XF zygQbKubQ1G3aVHLtusc@Rd+OtST)J6MFvW&7~HIoaWwUrl*(gJPnO8(!jkE}Nd_%8 zkXCF!l>^Hv%VeE#bZAl*kB5>)o}v0xRk2n*QWBuH;zVU}TH&-IkdB0<4l8$8O>cCy zW+tG7-12RUL!Jt)3FHSPwpQue1r;-!0eM@u0Z>eplbPrZ{7s_os;mHsVbv)tg)*yC zxCKRRbm3HD+z^kazNDs6u1jTut%2&?pe5Du%tq^~v$-9*skn+5=!(8VE=-*# zTQyf8o%+;B^^>DnJ}sJ@$O`E3$*I6}2PS7~9RkG#BM{7WNIO#GloZy9a;Df>XBsvo zn|DE_W-%;`CEc{%U1`IVeAbOl;cw4XQ?s;QfeIV+ni|J?)9|U;tcdQKn#77pOw9t~ zIx^J-#C3IQ9xEYBO#<(SI`f46ar9+;O*CLrU5y2>>5-Zgz^3grRz4I8>1}B1yP7yQ zjIP(D@lxd5XyVyKvMtlyvKPv!Y+9;iIHYp!ThF65upwu01g)6nuvS1t9tR55_%1M> zrnZBzl1@*v^O4X=rahYzDQbE+8%0Ue&3rWSoB&Z~8a+Ll--c8o6z(K-S0qBoj6!Vz(UQFX4Eu|z`0mAMK)tBq|&6q0!^-|^|<7{qYev8%Er-^=~ke! z=vpV6KpkqGe4_f$`6Wrp{<-O{S|gi8t7|h@6&sy?UO<|$o z>ME~JwHb5+wbh|uhPtvGTo_6vb%17pA|?Z!ud53ODw|uE4OF(d&dD30nT5--ldkRy z3LQ{0S=G`+H|ktKX)dpe&7yJMbUqt;nSigUwA~w_-HAO4zTt$|%;wOy-V8REV(Zh` zJnCHUWbq>0@I^wh~^I?sbAIJ zK=}OB`oS(%G{mt-XmUfUwhY@ygT?DCP1ADd=h3x?lIg7m6JLpxQ%qce z%C08NGetJwdRc+Hyj&TA&Na5T zK8|W`t}JP$D&3RXChZ9-Y{~_5HonQmo}`6Msr)JEE86YVrbxaPi5ziyEXxd^QB&9K zJ44p3YBurpkeF!kqh__pTBvukMSI$}q3h2E)12mTps)LyGl08xHfI5Mebk)Bw$SzF z489db6DWVBfqKmf(Y6K3yFBfh8BSAX#Q=caIV;P$11hr7quouwNTuGsULfQ)&TJS!IPMr_WBi})XCnwVU z*>UVeS~1&hehGPsermm!7dKA<%OuBdAH6f%1(xjZ*)|}mlsj#m_d{6$B(+P6eRq|E z$dpIHt=N33XNIQ~9H6S_5H;QDM3xv!hlSiV6~ zbFzV@y3VojHz6@ggB>}tzS0XgE|b+cEMGB9Idc<| z-a)Fh)vo@vH3|W~i_A2i{YlhE(xSP+{1mb>q=B{4_PNpE(O#WfsC|I5{eA-l&NG5Q zGtaYwK12P<#7t21Ocju+rKSf1)G}Om+R7^!@D?Ig0 z>i&c5fX^uIE(h>a$Gh5tIIFoU9mLs+yV_|Nu!~<#p$(eu=Be=oUAqfp8ftXX!Ea5H zd*WXq1ZAE7?0foUzFqqv zP>f%LGpVM!+N0RlOVndQZkH>lPa(Y~NtY=(*fn8JTWQ5%qGs+!c_Fgwam9*MbzO&Tvj+Q4hJR@3q73auAicQA$peBg?h^6o zL(o_`(v1FGWCmB4xHuCat!Qy4EhtFr$!7`V-J#R_The;jL-H zwOYjoEbUzBGWStM_GUxk2<=-vlbSKbpCy=zf=$ALKJw!#q>mljbye z8s!AHqm}okYVCvQ%JZ4@`Tdcg$$q#$6_6_C0V^O?!2>2hs=*IfwJt$aJjN8JKGPK+ zHmLE6YP00skeBB>dyYL|;@y$-lSF?#5W{*<#DkfMJ&`GS;7V^ZxD;?4g|gATXvl*W z-dom5EhF?{71Mntq9}+`elvv)sC750L%5iBKj=*913h)Uo9d~W?rm;Tc&Oa1sGSnJ z`d}XGPnL&Fd;s)JqP{=#oe%?Q+(WqlZA%`?v<`;orgd)xUIYAqW(b{rD47kVOAi&Y zQnD_|V`VgKNj`Y4`AgEe4VTSCqg$bRD-?3IavLL{;G=2O^|Nh!D(TFUOg<9QERr50 z+ruV43aKQzwnraT;i;=G_X2y#0U1pbAI{cp3lf&cS!Tp7yv-Oo{BR+^9i^=X#gJ|5@Bp}#mRzn5L3bkn{XJ83A z1HldYc!}vKCe3cSyQZ$mHNsQn0T%FiQ&hKVY11;BHsj`ot&sLkcDRnNEVF_li(a0h z%?zRyT@7@+UySk`H3Sj+RxiqfU=S9q#X+$=6wKL@aX8J$ zPWJERKSFHPHE#KZS;+Oxio~~I!(d2d{%nd{k+0nuJRt-u+dha|`*Lp*)I!ocn#wlWK7FK49#Xs>i-s%0VM(tMBhc&1mo z=eWjr8k;-~_?N6}5iMVt#ur1yDBisn?k|~nH+`})o!zr)RTjIKvR5Tr?(j?x(6%F8%;i5-H|;J#AYRrac%$EmKnIlU3o`5*U{;dT}xkwlIRi_`^_4py7q_ z@j-f(F`W&!lQQnICRn!`J24jXnq1IiI9NBfy5*t@88M^uA#Ek>A;P%Ry+7p zP=gB>RMoeqqtq2=Epn2@(mBj@^JrK{->**R>mljub9(lE%+8)B_hUKQ#voyjVEQQK zXl>oin`qBtE--lK9s`57N~G~;Wu!LV;(|VT|Y0-tB;$s7lY`C%_5eD zFdx0T4~o+G4Drm79GSbWT6!@21`PQDFZ&e~9;Jyh^gUlePCO*7Rt}bOhTNCb<-WDx4RH^g(f}BNf&m91wkt4n>4`XYXw@1A zdyP`pWU#|DWKA-E9pYSZwG$YINA61mdB;|o;5Q1P!)rqLQ3xHPWi#-=f7iroZ^&^n zS=EO9H$<%))^!Vs`zGu`ZUXgxGA8*LR3vPY*FfntcNN!q8dR^2)66H$+KC`|Vl1@t zNh5y;s!rP7A(bvY8NyG>&q|iObad7I=S_eOKYi6Xb zgB;JZ^yS(#fYY#b$;sy+mpyE?AN}Du^%;-zRJ6{@F3`kvJ=qtuZe1SOy%X!Q`Ijh> zqSk!G2+s^J;GV4WE3&Q6Fn{f@P2R!a=5{wVH}-KWME^}t>m4Ze|582|iPk&dBz|eV zP5UlL#I9kDmuLVt9L&66`aRmuT3ABzBdiZb)a>X!!<*^(TB= z9=YW>%jM-m5m{{u?Pof*p*{Z{IvFq>Hp*;?(*6h{+X*9;w*>P)A!zUScc+{GLQ2|$ zRx$#9+*VfXZ+fmJonMDSIxa0H`n5$5A9DE97VSn5os&A?mFo8ZD3^2-VI?k1b`({0M;Mkr=UKPMG!j>1K}Y_kpIUHxVgFzJ%bc5JX6 zo3laTeY81Ovv4(2WP2tu$%=C7`sJgZ%ZA8`ZOF{^4`~ohcqZ9wM~-qKs%<{3xv{27 zDmsvzPZzdj(7|V-LGAV4Y7}`j==7Cm!kLr)dM4eL1{G;yloz{vP-$tuk_m%KN0klg z+fSO9bSi$<4zjQ6*-QkPEPXbU=b%7}Vn}Zq=3M&x*>nI^zQxM(AvcL1`uL$+0S(@g z&I)PfmJHqwB8Mm%i~hf~C5E?0(&l#q@_4L-Chv^a>qH005=H%O%s>%aLwQFeQ{??O zOkL__-#Vc;d8`Y~*qW*J;BbEUA zxeroup|q{#iYj-VvW0!gyUhx^aQQZe){oOW>r8ZFTMPi{*=_CE0E*e(K5ZZh%ae7e zcS;Q$wKAv&cj!7qBUI0kqcsR}gP8dst}J(L4+$A8lgOsh{w8e*C-=jNbZC1V;OXh@ zY1%NZ7|ie;aat)>c28VA;7jelBbJw;oI;jVzavsB=hX5+JgwRh$A?3ZE@C=?`pWGR zN$>6m(MDhoXeN>QB#Uy$CR9L0o(U!1*>$yEcQr79&ss>~NV4zD1iv_VXFeRZb9Y*_ z+qiJ|!98o|&L}u<5A4ikx6`*fQ`j98yekW?+rnKLaNUmCW#Qvdv5zxbzbgXhbjL2M z=0?+oVIS<$^GOgp#c6q4i`<tm=KidDF~KgEYO(={$B%D4&j;EMSeS5Pu9sEj_s>N2}wsVr6pp z=&3LT@gf3G*Y*{c6f8g?kxmQxNNV3&8EG3JMufB zt(eDE&zZmtCOwy_&E>Q>#6pvvGlC$T_nZ^Jal>=@0FI}gOXmxqucr$K^c4Mku(r@= zuL_>m^F3Bdvci9Kde-i#GN+oxtBG=+cYHd<|+z zmk2$9QeR30eCz&Fw)rV!DwHQZ_v%j9b~>!3#VlD4kz)k z?CAzbrMs=Xp=Or5YK}`Dd1{BYP{ckn0AJR=bheSo_gTOadiN!3o8>uR46dCeOFu)~ z_nG+?)PcY(#RNwI-QC!irfugkxF@r#9Ize!7WA$4Hdj|Pc^hQ(SX-laLYgWf3Spub zy&S`K(aM)yh@3n8avmb*F29`0_d>xU*kFkp(s+1V!RK&#tVU+#D+WZ=O?#yPuGlAE zG4mIpZ>B4&jS-SAcg-r0Eq#g3zmmoGLDY8T(S=F6QFZoZD%_t7>Tvx2WVRm%j6ues zX|GC4kxHlc8~6bfG)kh9ZtM@|2a&SLd4W$VlyYAUV~42otLXr8<6kvuN4O$d9)8sT z5ZCgmlOKh88Xf<`K|j12#@|3HTQap7;T@;qdaoMrZ^}E6$=`&?qCY0;s4 z@P~U2rSVVI$Ke;e+1}597W6Sbgjor5t-5!HQeVqKOkUY*{k6}zFK|e$xF(O}gp|&C z)MXUCjackwUkl|IkW7${DIeGRUkW{JgG)C1a4KA~rH4DhC428-m;D>4#iOMX+ExH) zV~;ihpHIOZ4Y>gqxv;k|Kbe2!u%3Sleb_aNUPaT9^GGas$4*DA;2lTd?+<8w60JBA z3eWDEBTj_#y>_G{@Yyd%+VN{BYJ*8MNBE(c{J@V?`MRC|EE`LgyuP;nLXW?0X1~&l zucv`2{Ot8){wL&CaSZ@v;K-($+M1?0eQJFB?=MIcOM-pZ>Xmer)eZAbg8N8*;BP4W z4-?c*=3a-@-Cz{wpJqH%Zm}Ec1AFJAt7C##RJQ&9 z4W1?y)^KxnH9G$>4x2qMQ(xPy-x$o4%j(a{K|quQf( z7EH^I<^t@!dNdWd=iJduEnMeAyB*aOM^N4yX*?2@TS3$r$@@kWLIxMSkprZ+?F|bq z-y1$K(C2T&;*h-hh68vc{@)I)hfe>tXo)&$P;{MSZ;jOSZ=2PGdZb~K#FEbrx)6{#FLdMwiT_dpnxv z;Dfmc3bs+Vx8vcgEqyzO<}m0|KEW6JkWa6@od>t=rMKfkOLw$KC2EQIV!S0;3*9)D zWbBGMBxaSj*O7J8>i}3}$!=75Jdbs!3CELp52zp-Vsc_|nY!xqq_xKpfv2OwW%2ah z@f0AutH)h%{aR1h;QB2(VKVmd*XlneTNhYgnt7rlz}>SaoU9+6IFX|D*NNyxmK;_* zvSg6*?E~VyK2~_q@2q?$f-pS*Gk>`*Wi#EIyuMN?O)2SFZ8HzBJ{&^=C zp5mN$Eub3*ziZdZb+kZlqetEiHV;QJc`8bCq9XA|*3IyH!A8)YcWnr@JN>SeRnoP0 zlh{a#IN4Dfr4tjD0o~nkG7JE1@<~_fZKy=9s7iOk6i<^s(5=m5bvvXP0(;CL&MlDf ztS2M1JJd>`8z*&qtQ4=_izVVZ6$TvF^;7{k#%ZSt_(Vv|Lc+CdKdI2y-B2yZ-wla0 z>pqMt7jf%laT1+9)gH($_H)d^&{jV)z&qAK`a1&XDa;QKb{!3uARO?Y(TX7kP5rE3kvEKHgf@ zxO&?2UM5_=g{+vbi z@7nbeA#&v}?KEbg$^VJgR_N&T6g?H`F>7g@9{W!;UkQyATK1_i^42LPI{BX@ z{wQP#l8w8Gy;mbEL$s`hLCXIq8o03cN6FgbI(2M{q-GWYc|gDuI$Bw2SY5zERkWaN z$r{@8QFp+^A3id%r%3m)m9K@WRkW1Ah!%YugIK)bAGbp+-o5y{f%biz##-p?$2r>5 za)p^v+d>sKqL{o1eB+yf4x7=!rO_OPi<@`E%`LhxC`}58|CwPNbJ@D zses*d^3zPd2g3F~A~Nl>SpFQ6CKFn8T_9lgVZsl*GwiFS|nK81m0k;xA-TXEU|J=fk zQT^x1{5VuH{EuT|*a>>=^K``Cef@bVJ4s>Zto%L5OWGc+NFF{+9IjzO+WR{779e_f zG*Cl8zz6j7xlH~aXj>G*{qMP0{t;4U^~@$*9;iNY>|;tfpT|C{WmXfxTgi#kzY_J`jpa+l0sglgaV=b`%-F#vBvzcBLeQLmNO?=go< zGRlYeFVTuGYzWQU`-M%rf>R8^&A0^8)h|N$RjA`#hq9Xn@NS*{o7U||6cGx^`pG*in`eN1_+yUH^a#@FX0x=t-$rh=4vyAKXzkcliGBbT+#k-BJ-#E3n zU>csANVC3)O3|a7G>E?8Qe1bx8TC!dUjyglH_qe)XvnkeW&|zlr5dtCI{!^i^u}^A z$7q60ceTVq`DP}r&(E>|*=3*+dt@^f5vj;1L zk0$~~Ej5^S84_sTx1rpLdNX|?5?j8NQFX6;>*5*6%s|j*G6jDZ&ohz2!;!qiU|)Pz z7WMqjsbvQ%-*2{hI3f=gbRi%Is?1uJ0ai=xh_ zi0^H{bb0t&NTuH=1J6zS-l4S*rU|iT+V*`ET*$8=qhqk>-50p?`u8z_Zc#rJfNAUf zLmKa@nk!!~&Ho{ZcS9;k?2bYVQrlguJ01GL2AA=<9|}Rn#a?o{wD~x9;pLq;$<1YxA1Z* z0{AvwP6re_cG(Ij_TA+)K(UxBY4H4Zy3$T7SN#vKcFREI6j?4$f(?Ab+U}6qN`o_Z4leY`&I(c)mRW{o3A>w+k+L? zaptNSEZQGe?O@T8ucceZK~(}d-|Fl$r`+Rdxaoc!PZO_o_#{glCGiu0P}q<`XwqZ|2C2kE2zDTO!T)6yiV$88bx z{!g)d7P4&0Pj~&Nc%Z4+pEI>PgMEy7#n174j%@8?L*TS)1&woq$-U0kf|3rgp`&Xi zs~gHZ`sYt8efP5k{8{KPspk18DEC}{TruSfI@gdsa_=udw$Cp(_Ln$q5%vMcJ?x%e zlJLx7-7neN-NEX;W=UCJseLb9`o#|H6#c6s{Q;CzHxzH(EbwH?!wlTut#7?BJ_rRT ztvh0t2+91A|NHV}0pTPW4OAGgL@J5Xbu6`wG<%qi{b~gS`|j65&}-)3QbDg3{bs}C z2KR3!kZJRNbAU!$_giPa8imtTxWKjF4BBHD2o)@%i|AX^P*v+=As(l^-@9l}1dD$L zF-t_hJL`c$71CWpD}PVbo`Q87XQX$3PXJE(>i1OOq$A%U;$&$=s_!zPbX)MD|GAI1 zmu=q|OqP)jn(;>{-vk8}upCdz{)mG|wB?U9#MZs}M?T*I5guR_StE+;)GLy$$Vj1` z)?4_KZ8YT1Ouk)K(zZBnZulLv?$1nZXE1_La>G=>zMP9)nBbm#56a*P!f0c(I$o8j z-K*-6vBh`&6@%BOkNlMiu59mL-Lw}ln|B!Lx1^}p|Fbn;43>wkdYCof?oG* zRb)qBXrZckA1(VkU3(cDUW=zgrD4$(U=uubjX2rmfV@Iq{O#bcqO3t2c?dUo%k^M> z0LdH?fk1cacRdlPYTWf)eh8U9q!ZP8xXKC+!)6^%pkvn)%}1c|zl>*FNbl=({d$J^ zUr>-o4T2B-!C$R`vPXRed9t$NZ_tE)TxUUDi*bR z1MXa(uinWD**WweQ#+3}{xBdUL+tB?V6u0x(2Bkx@+K%IFlOLi$ckk!wO9ca{$KT- zM}{y*2r!cD%a`IbV+rglago7)^flx%M9LK6kHP##WNXaKE{Xvfv)I0cSXxvcXX1Mc zbCWgtE?C?(i{<-#y5B<;9NMB=&Z!@y(X+5i;)aIsjmuC#_!@#iatgylk3bgBu88tL zmc_1$xq&Q0yB4e-1Iu`f6!xRI6v#5!Pa+|RIoU6wdl1XzzoLq~R%dxko4xp5v;;AS z^AAYl(b(3|Bg|rR{ms_?39&^UB;tAyi)Md`NX~NE-=Z65Htl+_jNS@vmLqh-XKlr! zFoY&8#D7D$>s> z1GXk!oCsr4EL(gA7Ff#xm@P^YG2twj~m8P3^mqNpS(h@?s)u>hJMXPm&&?isq^+f9ysfBUEG)T4NM^;kJ0R=L=Nm1hH&Fo3m6l z9cE{O-?!cca>a1@jGUCZ276U(R#&k$f;o9NXdr-bL83St!7N($khWbEC(d_b;k*YF zvZ>_-yQqz1F|4PUABjotEm|U3L240%3Hbgn4mUSo|ExvRNNt zjl#{kuPkN~2$SccE{esm60tZ6d$^z29>p^FKvZWIhfA2b)!qyee?>98pB2f`sAZ_= zkJl=E7}PRa-RojiGz?Oyz)NzyI2eruQzlMFvs`U>$f^R1NQuF29U<}n=e5cZIu(;7 z>S9r?lrfGZ;;2vh^ScBmEVq!CV{R`YISAaA?jjT zIvIg-#G!bmPmWOTnTy=n-=X0z&!VrOBHO0X(b+^di@Q zQ|V68)qs;?ju>UY{LU4#46ya{#A*Y~%v~bZ2o!1ko{M)4ESAj|=MBsrvH&&Yq9)pN z&~Xbhu@JM`Mg3fWiQO$~5?BXzk64$$y0Cl2M+sQs_n};tI6Vk-{IkzSvin70BJ1dQ z0J-w^a_diC%)wjTDaZ?W2tp%0QJZX)sfUqLP{AJ*E1v=Tu4~K0>xnS8%R@vEQ8YWrMFmUeZt*Zo&Iby`R9W31>_0`>3 z+7;gqN+^69Ck&f$0L6>B+pta$e7TinndL1)*+})Aq|LJ9Zp}NUVbw*N7W!s?mZW3LPC6~Jj`10NE{IS+u zk?RmqJ1`NaHo+8h6AQNDTiu0w8~V~iyxPK2^Lj!_4t49|P)+TH4EZT_-1wG-^k?-J zk8Nc(W07Cl))3#%o)nAI+puK&K$L4V)rH`Sni=)Ao1a+jE*u~HQ5z^IQD=P>GQlx%8} zPPJjQnD8tX^KIgeP1p}(0%Y)Ljav}VY@}}7Us|<1t_YB0`$#Q2V;%HPO4!^f9WhzSjAH$+LTZ4RyBEQ7a V7NFs2a(kLW{MAkub>fkN9wZ~ErL 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 Date: Sat, 6 Apr 2019 23:48:24 +0400 Subject: [PATCH 2/2] Added votes tooltips on polls Added track switching on panel swipes --- TelegramUI/ChatBotInfoItem.swift | 2 +- .../ChatItemGalleryFooterContentNode.swift | 40 +- TelegramUI/ChatMessageBubbleContentNode.swift | 1 + TelegramUI/ChatMessageBubbleItemNode.swift | 10 +- .../ChatMessageInstantVideoItemNode.swift | 2 +- .../ChatMessagePollBubbleContentNode.swift | 63 +- TelegramUI/ChatMessageStickerItemNode.swift | 2 +- .../MediaNavigationAccessoryHeaderNode.swift | 295 ++++-- .../MediaNavigationAccessoryPanel.swift | 20 +- TelegramUI/OpenUrl.swift | 47 +- TelegramUI/PresentationStrings.swift | 880 +++++++++--------- .../Resources/PresentationStrings.mapping | Bin 110155 -> 110155 bytes TelegramUI/SharedMediaPlayer.swift | 15 +- TelegramUI/TelegramController.swift | 36 +- TelegramUI/TelegramRootController.swift | 38 - TelegramUI/UniversalVideoGalleryItem.swift | 1 + 16 files changed, 754 insertions(+), 698 deletions(-) diff --git a/TelegramUI/ChatBotInfoItem.swift b/TelegramUI/ChatBotInfoItem.swift index 3eddb44573..5797c05411 100644 --- a/TelegramUI/ChatBotInfoItem.swift +++ b/TelegramUI/ChatBotInfoItem.swift @@ -108,7 +108,7 @@ final class ChatBotInfoItemNode: ListViewItemNode { break case .ignore: return .fail - case .url, .peerMention, .textMention, .botCommand, .hashtag, .instantPage, .wallpaper, .call, .openMessage, .timecode: + case .url, .peerMention, .textMention, .botCommand, .hashtag, .instantPage, .wallpaper, .call, .openMessage, .timecode, .tooltip: return .waitForSingleTap } } diff --git a/TelegramUI/ChatItemGalleryFooterContentNode.swift b/TelegramUI/ChatItemGalleryFooterContentNode.swift index e914c1c2cb..b118d5bfc3 100644 --- a/TelegramUI/ChatItemGalleryFooterContentNode.swift +++ b/TelegramUI/ChatItemGalleryFooterContentNode.swift @@ -115,6 +115,17 @@ enum ChatItemGalleryFooterContentTapAction { case ignore } +class CaptionScrollWrapperNode: ASDisplayNode { + override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { + let result = super.hitTest(point, with: event) + if result == self.view, let subnode = self.subnodes?.first { + return subnode.hitTest(self.view.convert(point, to: subnode.view), with: event) + } else { + return result + } + } +} + final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScrollViewDelegate { private let context: AccountContext private var theme: PresentationTheme @@ -124,7 +135,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll private let deleteButton: UIButton private let actionButton: UIButton private let maskNode: ASDisplayNode - private let scrollWrapperNode: ASDisplayNode + private let scrollWrapperNode: CaptionScrollWrapperNode private let scrollNode: ASScrollNode private let textNode: ImmediateTextNode @@ -230,7 +241,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll self.deleteButton.setImage(deleteImage, for: [.normal]) self.actionButton.setImage(actionImage, for: [.normal]) - self.scrollWrapperNode = ASDisplayNode() + self.scrollWrapperNode = CaptionScrollWrapperNode() self.scrollWrapperNode.clipsToBounds = true self.scrollNode = ASScrollNode() @@ -338,16 +349,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll override func didLoad() { super.didLoad() self.scrollNode.view.delegate = self - - if let maskImage = captionMaskImage { - let mask = CALayer() - mask.contents = maskImage.cgImage - mask.contentsScale = maskImage.scale - //mask.contentsCenter = CGRect(x: max(corners.topLeft.radius, corners.bottomLeft.radius) / maskImage.size.width, y: max(corners.topLeft.radius, corners.topRight.radius) / maskImage.size.height, width: (maskImage.size.width - max(corners.topLeft.radius, corners.bottomLeft.radius) - max(corners.topRight.radius, corners.bottomRight.radius)) / maskImage.size.width, height: (maskImage.size.height - max(corners.topLeft.radius, corners.topRight.radius) - max(corners.bottomLeft.radius, corners.bottomRight.radius)) / maskImage.size.height) - - //self.scrollWrapperNode.layer.mask = mask - //self.scrollWrapperNode.layer.mask?.frame = self.scrollWrapperNode.bounds - } + self.scrollNode.view.showsVerticalScrollIndicator = false } private func actionForAttributes(_ attributes: [NSAttributedStringKey: Any]) -> GalleryControllerInteractionTapAction? { @@ -488,19 +490,10 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll self.requestLayout?(.immediate) } - override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { - let result = super.hitTest(point, with: event) - if self.scrollWrapperNode.frame.contains(point) { - return self.scrollNode.view - } else { - return result - } - } - override func updateLayout(size: CGSize, metrics: LayoutMetrics, leftInset: CGFloat, rightInset: CGFloat, bottomInset: CGFloat, contentInset: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat { let width = size.width var bottomInset = bottomInset - if bottomInset < 30.0 { + if !bottomInset.isZero && bottomInset < 30.0 { bottomInset -= 7.0 } var panelHeight: CGFloat = 44.0 + bottomInset @@ -546,8 +539,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll panelHeight = max(0.0, panelHeight + visibleTextPanelHeight + textOffset) if self.scrollNode.view.isScrollEnabled { - if self.scrollWrapperNode.layer.mask == nil { - let maskImage = captionMaskImage! + if self.scrollWrapperNode.layer.mask == nil, let maskImage = captionMaskImage { let maskLayer = CALayer() maskLayer.contents = maskImage.cgImage maskLayer.contentsScale = maskImage.scale diff --git a/TelegramUI/ChatMessageBubbleContentNode.swift b/TelegramUI/ChatMessageBubbleContentNode.swift index 11f091bb31..f3415aab12 100644 --- a/TelegramUI/ChatMessageBubbleContentNode.swift +++ b/TelegramUI/ChatMessageBubbleContentNode.swift @@ -74,6 +74,7 @@ enum ChatMessageBubbleContentTapAction { case call(PeerId) case openMessage case timecode(Double, String) + case tooltip(String, ASDisplayNode?, CGRect?) case ignore } diff --git a/TelegramUI/ChatMessageBubbleItemNode.swift b/TelegramUI/ChatMessageBubbleItemNode.swift index cbf9fd9814..010db0fe4a 100644 --- a/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/TelegramUI/ChatMessageBubbleItemNode.swift @@ -257,7 +257,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView { break case .ignore: return .fail - case .url, .peerMention, .textMention, .botCommand, .hashtag, .instantPage, .wallpaper, .call, .openMessage, .timecode: + case .url, .peerMention, .textMention, .botCommand, .hashtag, .instantPage, .wallpaper, .call, .openMessage, .timecode, .tooltip: return .waitForSingleTap } } @@ -1761,6 +1761,12 @@ class ChatMessageBubbleItemNode: ChatMessageItemView { item.controllerInteraction.seekToTimecode(mediaMessage, timecode, forceOpen) } break loop + case let .tooltip(text, node, rect): + foundTapAction = true + if let item = self.item { + let _ = item.controllerInteraction.displayMessageTooltip(item.message.id, text, node, rect) + } + break loop } } if !foundTapAction { @@ -1819,6 +1825,8 @@ class ChatMessageBubbleItemNode: ChatMessageItemView { item.controllerInteraction.longTap(.timecode(timecode, text), mediaMessage) } break loop + case .tooltip: + break } } if !foundTapAction, let tapMessage = tapMessage { diff --git a/TelegramUI/ChatMessageInstantVideoItemNode.swift b/TelegramUI/ChatMessageInstantVideoItemNode.swift index 14e3929758..6b91fe8021 100644 --- a/TelegramUI/ChatMessageInstantVideoItemNode.swift +++ b/TelegramUI/ChatMessageInstantVideoItemNode.swift @@ -681,7 +681,7 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { let offset: CGFloat = incoming ? 42.0 : 0.0 if let selectionNode = self.selectionNode { - selectionNode.updateSelected(selected, animated: false) + selectionNode.updateSelected(selected, animated: animated) selectionNode.frame = CGRect(origin: CGPoint(x: -offset, y: 0.0), size: CGSize(width: self.contentBounds.size.width, height: self.contentBounds.size.height)) self.subnodeTransform = CATransform3DMakeTranslation(offset, 0.0, 0.0); } else { diff --git a/TelegramUI/ChatMessagePollBubbleContentNode.swift b/TelegramUI/ChatMessagePollBubbleContentNode.swift index 98a53b0bc5..8aa13c7272 100644 --- a/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -301,6 +301,7 @@ private func generatePercentageAnimationImages(presentationData: ChatPresentatio private struct ChatMessagePollOptionResult: Equatable { let normalized: CGFloat let percent: Int + let count: Int32 } private final class ChatMessagePollOptionNode: ASDisplayNode { @@ -314,7 +315,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { private let resultBarNode: ASImageNode var option: TelegramMediaPollOption? - private var currentResult: ChatMessagePollOptionResult? + public private(set) var currentResult: ChatMessagePollOptionResult? var pressed: (() -> Void)? override init() { @@ -727,12 +728,12 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { var optionResult: ChatMessagePollOptionResult? if let count = optionVoterCount[i] { if maxOptionVoterCount != 0 && totalVoterCount != 0 { - optionResult = ChatMessagePollOptionResult(normalized: CGFloat(count) / CGFloat(maxOptionVoterCount), percent: optionVoterCounts[i]) + optionResult = ChatMessagePollOptionResult(normalized: CGFloat(count) / CGFloat(maxOptionVoterCount), percent: optionVoterCounts[i], count: count) } else if poll.isClosed { - optionResult = ChatMessagePollOptionResult(normalized: 0, percent: 0) + optionResult = ChatMessagePollOptionResult(normalized: 0, percent: 0, count: 0) } } else if poll.isClosed { - optionResult = ChatMessagePollOptionResult(normalized: 0, percent: 0) + optionResult = ChatMessagePollOptionResult(normalized: 0, percent: 0, count: 0) } let result = makeLayout(item.context.account.peerId, item.presentationData, item.message, option, optionResult, constrainedSize.width - layoutConstants.bubble.borderInset * 2.0) boundingSize.width = max(boundingSize.width, result.minimumWidth + layoutConstants.bubble.borderInset * 2.0) @@ -922,55 +923,21 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } else { for optionNode in self.optionNodes { - if optionNode.isUserInteractionEnabled { - if optionNode.frame.contains(point) { + if optionNode.frame.contains(point) { + if optionNode.isUserInteractionEnabled { return .ignore + } else if let result = optionNode.currentResult, let item = self.item { + let string: String + if result.count == 0 { + string = item.presentationData.strings.MessagePoll_NoVotes + } else { + string = item.presentationData.strings.MessagePoll_VotedCount(result.count) + } + return .tooltip(string, optionNode, optionNode.bounds.offsetBy(dx: 0.0, dy: 10.0)) } } } return .none } } - - override func updateTouchesAtPoint(_ point: CGPoint?) { - if let item = self.item { - /*var rects: [CGRect]? - if let point = point { - let textNodeFrame = self.textNode.frame - if let (index, attributes) = self.textNode.attributesAtPoint(CGPoint(x: point.x - textNodeFrame.minX, y: point.y - textNodeFrame.minY)) { - let possibleNames: [String] = [ - TelegramTextAttributes.URL, - TelegramTextAttributes.PeerMention, - TelegramTextAttributes.PeerTextMention, - TelegramTextAttributes.BotCommand, - TelegramTextAttributes.Hashtag - ] - for name in possibleNames { - if let _ = attributes[NSAttributedStringKey(rawValue: name)] { - rects = self.textNode.attributeRects(name: name, at: index) - break - } - } - } - } - - if let rects = rects { - let linkHighlightingNode: LinkHighlightingNode - if let current = self.linkHighlightingNode { - linkHighlightingNode = current - } else { - linkHighlightingNode = LinkHighlightingNode(color: item.message.effectivelyIncoming(item.account.peerId) ? item.presentationData.theme.theme.chat.bubble.incomingLinkHighlightColor : item.presentationData.theme.theme.chat.bubble.outgoingLinkHighlightColor) - self.linkHighlightingNode = linkHighlightingNode - self.insertSubnode(linkHighlightingNode, belowSubnode: self.textNode) - } - linkHighlightingNode.frame = self.textNode.frame - linkHighlightingNode.updateRects(rects) - } else if let linkHighlightingNode = self.linkHighlightingNode { - self.linkHighlightingNode = nil - linkHighlightingNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.18, removeOnCompletion: false, completion: { [weak linkHighlightingNode] _ in - linkHighlightingNode?.removeFromSupernode() - }) - }*/ - } - } } diff --git a/TelegramUI/ChatMessageStickerItemNode.swift b/TelegramUI/ChatMessageStickerItemNode.swift index a00374210b..1a8f956ad3 100644 --- a/TelegramUI/ChatMessageStickerItemNode.swift +++ b/TelegramUI/ChatMessageStickerItemNode.swift @@ -674,7 +674,7 @@ class ChatMessageStickerItemNode: ChatMessageItemView { let offset: CGFloat = incoming ? 42.0 : 0.0 if let selectionNode = self.selectionNode { - selectionNode.updateSelected(selected, animated: false) + selectionNode.updateSelected(selected, animated: animated) selectionNode.frame = CGRect(origin: CGPoint(x: -offset, y: 0.0), size: CGSize(width: self.contentBounds.size.width, height: self.contentBounds.size.height)) self.subnodeTransform = CATransform3DMakeTranslation(offset, 0.0, 0.0); } else { diff --git a/TelegramUI/MediaNavigationAccessoryHeaderNode.swift b/TelegramUI/MediaNavigationAccessoryHeaderNode.swift index ae44401bd0..604009c2a3 100644 --- a/TelegramUI/MediaNavigationAccessoryHeaderNode.swift +++ b/TelegramUI/MediaNavigationAccessoryHeaderNode.swift @@ -7,15 +7,135 @@ import TelegramCore private let titleFont = Font.regular(12.0) private let subtitleFont = Font.regular(10.0) -final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { +private class MediaHeaderItemNode: ASDisplayNode { + private let titleNode: TextNode + private let subtitleNode: TextNode + + override init() { + self.titleNode = TextNode() + self.titleNode.isUserInteractionEnabled = false + self.titleNode.displaysAsynchronously = false + self.subtitleNode = TextNode() + self.subtitleNode.isUserInteractionEnabled = false + self.subtitleNode.displaysAsynchronously = false + + super.init() + + self.isUserInteractionEnabled = false + + self.addSubnode(self.titleNode) + self.addSubnode(self.subtitleNode) + } + + func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, playbackItem: SharedMediaPlaylistItem?, transition: ContainedViewLayoutTransition) -> (NSAttributedString?, NSAttributedString?, Bool) { + var rateButtonHidden = false + var titleString: NSAttributedString? + var subtitleString: NSAttributedString? + if let playbackItem = playbackItem, let displayData = playbackItem.displayData { + switch displayData { + case let .music(title, performer, _): + rateButtonHidden = true + let titleText: String = title ?? "Unknown Track" + let subtitleText: String = performer ?? "Unknown Artist" + + titleString = NSAttributedString(string: titleText, font: titleFont, textColor: theme.rootController.navigationBar.primaryTextColor) + subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: theme.rootController.navigationBar.secondaryTextColor) + case let .voice(author, peer): + rateButtonHidden = false + let titleText: String = author?.displayTitle ?? "" + let subtitleText: String + if let peer = peer { + if peer is TelegramGroup || peer is TelegramChannel { + subtitleText = peer.displayTitle + } else { + subtitleText = strings.MusicPlayer_VoiceNote + } + } else { + subtitleText = strings.MusicPlayer_VoiceNote + } + + titleString = NSAttributedString(string: titleText, font: titleFont, textColor: theme.rootController.navigationBar.primaryTextColor) + subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: theme.rootController.navigationBar.secondaryTextColor) + case let .instantVideo(author, peer, timestamp): + rateButtonHidden = false + let titleText: String = author?.displayTitle ?? "" + var subtitleText: String + + if let peer = peer { + if peer is TelegramGroup || peer is TelegramChannel { + subtitleText = peer.displayTitle + } else { + subtitleText = strings.Message_VideoMessage + } + } else { + subtitleText = strings.Message_VideoMessage + } + + if titleText == subtitleText { + subtitleText = humanReadableStringForTimestamp(strings: strings, dateTimeFormat: dateTimeFormat, timestamp: timestamp) + } + + titleString = NSAttributedString(string: titleText, font: titleFont, textColor: theme.rootController.navigationBar.primaryTextColor) + subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: theme.rootController.navigationBar.secondaryTextColor) + } + } + let makeTitleLayout = TextNode.asyncLayout(self.titleNode) + let makeSubtitleLayout = TextNode.asyncLayout(self.subtitleNode) + + var titleSideInset: CGFloat = 12.0 + if !rateButtonHidden { + titleSideInset += 52.0 + } + + let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: titleString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .middle, constrainedSize: CGSize(width: size.width - titleSideInset, height: 100.0), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + let (subtitleLayout, subtitleApply) = makeSubtitleLayout(TextNodeLayoutArguments(attributedString: subtitleString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .middle, constrainedSize: CGSize(width: size.width - titleSideInset, height: 100.0), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + + let _ = titleApply() + let _ = subtitleApply() + + let minimizedTitleOffset: CGFloat = subtitleString == nil ? 6.0 : 0.0 + + let minimizedTitleFrame = CGRect(origin: CGPoint(x: floor((size.width - titleLayout.size.width) / 2.0), y: 4.0 + minimizedTitleOffset), size: titleLayout.size) + let minimizedSubtitleFrame = CGRect(origin: CGPoint(x: floor((size.width - subtitleLayout.size.width) / 2.0), y: 20.0), size: subtitleLayout.size) + + transition.updateFrame(node: self.titleNode, frame: minimizedTitleFrame) + transition.updateFrame(node: self.subtitleNode, frame: minimizedSubtitleFrame) + + return (titleString, subtitleString, rateButtonHidden) + } +} + +private func generateMaskImage(color: UIColor) -> UIImage? { + return generateImage(CGSize(width: 12.0, height: 2.0), opaque: false, rotatedContext: { size, context in + let bounds = CGRect(origin: CGPoint(), size: size) + context.clear(bounds) + + let gradientColors = [color.cgColor, color.withAlphaComponent(0.0).cgColor] as CFArray + + var locations: [CGFloat] = [0.0, 1.0] + let colorSpace = CGColorSpaceCreateDeviceRGB() + let gradient = CGGradient(colorsSpace: colorSpace, colors: gradientColors, locations: &locations)! + + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 12.0, y: 0.0), options: CGGradientDrawingOptions()) + }) +} + +final class MediaNavigationAccessoryHeaderNode: ASDisplayNode, UIScrollViewDelegate { static let minimizedHeight: CGFloat = 37.0 private var theme: PresentationTheme private var strings: PresentationStrings private var dateTimeFormat: PresentationDateTimeFormat - private let titleNode: TextNode - private let subtitleNode: TextNode + private let scrollNode: ASScrollNode + private var initialContentOffset: CGFloat? + + private let leftMaskNode: ASImageNode + private let rightMaskNode: ASImageNode + + private let currentItemNode: MediaHeaderItemNode + private let previousItemNode: MediaHeaderItemNode + private let nextItemNode: MediaHeaderItemNode private let closeButton: HighlightableButtonNode private let actionButton: HighlightTrackingButtonNode @@ -42,6 +162,8 @@ final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { var close: (() -> Void)? var toggleRate: (() -> Void)? var togglePlayPause: (() -> Void)? + var playPrevious: (() -> Void)? + var playNext: (() -> Void)? var voiceBaseRate: AudioPlaybackRate? = nil { didSet { @@ -69,9 +191,9 @@ final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { } } - var playbackItem: SharedMediaPlaylistItem? { + var playbackItems: (SharedMediaPlaylistItem?, SharedMediaPlaylistItem?, SharedMediaPlaylistItem?)? { didSet { - if !arePlaylistItemsEqual(self.playbackItem, oldValue), let layout = validLayout { + if !arePlaylistItemsEqual(self.playbackItems?.0, oldValue?.0) || !arePlaylistItemsEqual(self.playbackItems?.1, oldValue?.1) || !arePlaylistItemsEqual(self.playbackItems?.2, oldValue?.2), let layout = validLayout { self.updateLayout(size: layout.0, leftInset: layout.1, rightInset: layout.2, transition: .immediate) } } @@ -82,12 +204,20 @@ final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { self.strings = presentationData.strings self.dateTimeFormat = presentationData.dateTimeFormat - self.titleNode = TextNode() - self.titleNode.isUserInteractionEnabled = false - self.titleNode.displaysAsynchronously = false - self.subtitleNode = TextNode() - self.subtitleNode.isUserInteractionEnabled = false - self.subtitleNode.displaysAsynchronously = false + self.scrollNode = ASScrollNode() + + self.currentItemNode = MediaHeaderItemNode() + self.previousItemNode = MediaHeaderItemNode() + self.nextItemNode = MediaHeaderItemNode() + + self.leftMaskNode = ASImageNode() + self.leftMaskNode.contentMode = .scaleToFill + self.rightMaskNode = ASImageNode() + self.rightMaskNode.contentMode = .scaleToFill + + let maskImage = generateMaskImage(color: self.theme.rootController.navigationBar.backgroundColor) + self.leftMaskNode.image = maskImage + self.rightMaskNode.image = maskImage self.closeButton = HighlightableButtonNode() self.closeButton.accessibilityLabel = "Stop playback" @@ -132,8 +262,13 @@ final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { self.clipsToBounds = true - self.addSubnode(self.titleNode) - self.addSubnode(self.subtitleNode) + self.addSubnode(self.scrollNode) + self.scrollNode.addSubnode(self.currentItemNode) + self.scrollNode.addSubnode(self.previousItemNode) + self.scrollNode.addSubnode(self.nextItemNode) + + self.addSubnode(self.leftMaskNode) + self.addSubnode(self.rightMaskNode) self.addSubnode(self.closeButton) self.addSubnode(self.rateButton) @@ -205,6 +340,13 @@ final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { override func didLoad() { super.didLoad() + self.view.disablesInteractiveTransitionGestureRecognizer = true + self.scrollNode.view.alwaysBounceHorizontal = true + self.scrollNode.view.delegate = self + self.scrollNode.view.isPagingEnabled = true + self.scrollNode.view.showsHorizontalScrollIndicator = false + self.scrollNode.view.showsVerticalScrollIndicator = false + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.tapGesture(_:))) self.tapRecognizer = tapRecognizer self.view.addGestureRecognizer(tapRecognizer) @@ -215,6 +357,10 @@ final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { self.strings = presentationData.strings self.dateTimeFormat = presentationData.dateTimeFormat + let maskImage = generateMaskImage(color: self.theme.rootController.navigationBar.backgroundColor) + self.leftMaskNode.image = maskImage + self.rightMaskNode.image = maskImage + self.closeButton.setImage(PresentationResourcesRootController.navigationPlayerCloseButton(self.theme), for: []) self.actionPlayNode.image = PresentationResourcesRootController.navigationPlayerPlayIcon(self.theme) self.actionPauseNode.image = PresentationResourcesRootController.navigationPlayerPauseIcon(self.theme) @@ -234,94 +380,77 @@ final class MediaNavigationAccessoryHeaderNode: ASDisplayNode { } } + func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { + self.changeTrack() + } + + func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { + guard !decelerate else { + return + } + self.changeTrack() + } + + private func changeTrack() { + guard let initialContentOffset = self.initialContentOffset else { + return + } + if self.scrollNode.view.contentOffset.x < initialContentOffset { + self.playPrevious?() + } else if self.scrollNode.view.contentOffset.x > initialContentOffset { + self.playNext?() + } + } + func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat, transition: ContainedViewLayoutTransition) { self.validLayout = (size, leftInset, rightInset) let minHeight = MediaNavigationAccessoryHeaderNode.minimizedHeight - var titleString: NSAttributedString? - var subtitleString: NSAttributedString? - if let playbackItem = self.playbackItem, let displayData = playbackItem.displayData { - switch displayData { - case let .music(title, performer, _): - self.rateButton.isHidden = true - let titleText: String = title ?? "Unknown Track" - let subtitleText: String = performer ?? "Unknown Artist" - - titleString = NSAttributedString(string: titleText, font: titleFont, textColor: self.theme.rootController.navigationBar.primaryTextColor) - subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: self.theme.rootController.navigationBar.secondaryTextColor) - case let .voice(author, peer): - self.rateButton.isHidden = false - let titleText: String = author?.displayTitle ?? "" - let subtitleText: String - if let peer = peer { - if peer is TelegramGroup || peer is TelegramChannel { - subtitleText = peer.displayTitle - } else { - subtitleText = self.strings.MusicPlayer_VoiceNote - } - } else { - subtitleText = self.strings.MusicPlayer_VoiceNote - } - - titleString = NSAttributedString(string: titleText, font: titleFont, textColor: self.theme.rootController.navigationBar.primaryTextColor) - subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: self.theme.rootController.navigationBar.secondaryTextColor) - case let .instantVideo(author, peer, timestamp): - self.rateButton.isHidden = false - let titleText: String = author?.displayTitle ?? "" - var subtitleText: String - - if let peer = peer { - if peer is TelegramGroup || peer is TelegramChannel { - subtitleText = peer.displayTitle - } else { - subtitleText = self.strings.Message_VideoMessage - } - } else { - subtitleText = self.strings.Message_VideoMessage - } - - if titleText == subtitleText { - subtitleText = humanReadableStringForTimestamp(strings: self.strings, dateTimeFormat: self.dateTimeFormat, timestamp: timestamp) - } - - titleString = NSAttributedString(string: titleText, font: titleFont, textColor: self.theme.rootController.navigationBar.primaryTextColor) - subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: self.theme.rootController.navigationBar.secondaryTextColor) - } - } - let makeTitleLayout = TextNode.asyncLayout(self.titleNode) - let makeSubtitleLayout = TextNode.asyncLayout(self.subtitleNode) - - var titleSideInset: CGFloat = 80.0 - if !self.rateButton.isHidden { - titleSideInset += 52.0 - } - - let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: titleString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .middle, constrainedSize: CGSize(width: size.width - titleSideInset, height: 100.0), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) - let (subtitleLayout, subtitleApply) = makeSubtitleLayout(TextNodeLayoutArguments(attributedString: subtitleString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .middle, constrainedSize: CGSize(width: size.width - titleSideInset, height: 100.0), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) - + let inset: CGFloat = 40.0 + leftInset + let constrainedSize = CGSize(width: size.width - inset * 2.0, height: size.height) + let (titleString, subtitleString, rateButtonHidden) = self.currentItemNode.updateLayout(size: constrainedSize, leftInset: leftInset, rightInset: rightInset, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, playbackItem: self.playbackItems?.0, transition: transition) self.accessibilityAreaNode.accessibilityLabel = "\(titleString?.string ?? ""). \(subtitleString?.string ?? "")" + self.rateButton.isHidden = rateButtonHidden - let _ = titleApply() - let _ = subtitleApply() + let _ = self.previousItemNode.updateLayout(size: constrainedSize, leftInset: 0.0, rightInset: 0.0, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, playbackItem: self.playbackItems?.1, transition: transition) + let _ = self.nextItemNode.updateLayout(size: constrainedSize, leftInset: 0.0, rightInset: 0.0, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, playbackItem: self.playbackItems?.2, transition: transition) - let minimizedTitleOffset: CGFloat = subtitleString == nil ? 6.0 : 0.0 + let constrainedBounds = CGRect(origin: CGPoint(), size: constrainedSize) + transition.updateFrame(node: self.scrollNode, frame: constrainedBounds.offsetBy(dx: inset, dy: 0.0)) - let minimizedTitleFrame = CGRect(origin: CGPoint(x: floor((size.width - titleLayout.size.width) / 2.0), y: 4.0 + minimizedTitleOffset), size: titleLayout.size) - let minimizedSubtitleFrame = CGRect(origin: CGPoint(x: floor((size.width - subtitleLayout.size.width) / 2.0), y: 20.0), size: subtitleLayout.size) + var contentSize = constrainedSize + var contentOffset: CGFloat = 0.0 + if self.playbackItems?.1 != nil { + contentSize.width += constrainedSize.width + contentOffset = constrainedSize.width + } + if self.playbackItems?.2 != nil { + contentSize.width += constrainedSize.width + } - transition.updateFrame(node: self.titleNode, frame: minimizedTitleFrame) - transition.updateFrame(node: self.subtitleNode, frame: minimizedSubtitleFrame) + self.previousItemNode.frame = constrainedBounds.offsetBy(dx: contentOffset - constrainedSize.width, dy: 0.0) + self.currentItemNode.frame = constrainedBounds.offsetBy(dx: contentOffset, dy: 0.0) + self.nextItemNode.frame = constrainedBounds.offsetBy(dx: contentOffset + constrainedSize.width, dy: 0.0) + self.leftMaskNode.frame = CGRect(x: inset, y: 0.0, width: 12.0, height: minHeight) + self.rightMaskNode.transform = CATransform3DMakeScale(-1.0, 1.0, 1.0) + self.rightMaskNode.frame = CGRect(x: size.width - inset - 12.0, y: 0.0, width: 12.0, height: minHeight) + + self.scrollNode.view.contentSize = contentSize + self.scrollNode.view.contentOffset = CGPoint(x: contentOffset, y: 0.0) + self.initialContentOffset = contentOffset + + let bounds = CGRect(origin: CGPoint(), size: size) let closeButtonSize = self.closeButton.measure(CGSize(width: 100.0, height: 100.0)) transition.updateFrame(node: self.closeButton, frame: CGRect(origin: CGPoint(x: bounds.size.width - 44.0 - rightInset, y: 0.0), size: CGSize(width: 44.0, height: minHeight))) let rateButtonSize = CGSize(width: 24.0, height: minHeight) transition.updateFrame(node: self.rateButton, frame: CGRect(origin: CGPoint(x: bounds.size.width - 18.0 - closeButtonSize.width - 18.0 - rateButtonSize.width - rightInset, y: 0.0), size: rateButtonSize)) transition.updateFrame(node: self.actionPlayNode, frame: CGRect(origin: CGPoint(x: leftInset, y: 0.0), size: CGSize(width: 40.0, height: 37.0))) transition.updateFrame(node: self.actionPauseNode, frame: CGRect(origin: CGPoint(x: leftInset, y: 0.0), size: CGSize(width: 40.0, height: 37.0))) - transition.updateFrame(node: self.actionButton, frame: CGRect(origin: CGPoint(x: leftInset, y: minimizedTitleFrame.minY - 4.0), size: CGSize(width: 40.0, height: 37.0))) + transition.updateFrame(node: self.actionButton, frame: CGRect(origin: CGPoint(x: leftInset, y: 0.0), size: CGSize(width: 40.0, height: 37.0))) transition.updateFrame(node: self.scrubbingNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 37.0 - 2.0), size: CGSize(width: size.width, height: 2.0))) - + transition.updateFrame(node: self.separatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: minHeight - UIScreenPixel), size: CGSize(width: size.width, height: UIScreenPixel))) self.accessibilityAreaNode.frame = CGRect(origin: CGPoint(x: self.actionButton.frame.maxX, y: 0.0), size: CGSize(width: self.rateButton.frame.minX - self.actionButton.frame.maxX, height: minHeight)) diff --git a/TelegramUI/MediaNavigationAccessoryPanel.swift b/TelegramUI/MediaNavigationAccessoryPanel.swift index 16beb08089..f4afad5026 100644 --- a/TelegramUI/MediaNavigationAccessoryPanel.swift +++ b/TelegramUI/MediaNavigationAccessoryPanel.swift @@ -10,6 +10,8 @@ final class MediaNavigationAccessoryPanel: ASDisplayNode { var toggleRate: (() -> Void)? var togglePlayPause: (() -> Void)? var tapAction: (() -> Void)? + var playPrevious: (() -> Void)? + var playNext: (() -> Void)? init(context: AccountContext) { self.containerNode = MediaNavigationAccessoryContainerNode(context: context) @@ -18,24 +20,34 @@ final class MediaNavigationAccessoryPanel: ASDisplayNode { self.addSubnode(self.containerNode) - containerNode.headerNode.close = { [weak self] in + self.containerNode.headerNode.close = { [weak self] in if let strongSelf = self, let close = strongSelf.close { close() } } - containerNode.headerNode.toggleRate = { [weak self] in + self.containerNode.headerNode.toggleRate = { [weak self] in self?.toggleRate?() } - containerNode.headerNode.togglePlayPause = { [weak self] in + self.containerNode.headerNode.togglePlayPause = { [weak self] in if let strongSelf = self, let togglePlayPause = strongSelf.togglePlayPause { togglePlayPause() } } - containerNode.headerNode.tapAction = { [weak self] in + self.containerNode.headerNode.tapAction = { [weak self] in if let strongSelf = self, let tapAction = strongSelf.tapAction { tapAction() } } + self.containerNode.headerNode.playPrevious = { [weak self] in + if let strongSelf = self, let playPrevious = strongSelf.playPrevious { + playPrevious() + } + } + self.containerNode.headerNode.playNext = { [weak self] in + if let strongSelf = self, let playNext = strongSelf.playNext { + playNext() + } + } } func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat, transition: ContainedViewLayoutTransition) { diff --git a/TelegramUI/OpenUrl.swift b/TelegramUI/OpenUrl.swift index 0298fc4f8b..9dae6a884f 100644 --- a/TelegramUI/OpenUrl.swift +++ b/TelegramUI/OpenUrl.swift @@ -16,51 +16,14 @@ public struct ParsedSecureIdUrl { } public func parseProxyUrl(_ url: URL) -> ProxyServerSettings? { - guard let query = url.query, url.scheme == "tg" else { + guard let proxy = parseProxyUrl(url.absoluteString) else { return nil } - if url.host == "socks" || url.host == "proxy" { - if let components = URLComponents(string: "/?" + query) { - var server: String? - var port: String? - var user: String? - var pass: String? - var secret: String? - if let queryItems = components.queryItems { - for queryItem in queryItems { - if let value = queryItem.value { - if queryItem.name == "server" || queryItem.name == "proxy" { - server = value - } else if queryItem.name == "port" { - port = value - } else if queryItem.name == "user" { - user = value - } else if queryItem.name == "pass" { - pass = value - } else if queryItem.name == "secret" { - secret = value - } - } - } - } - - if let server = server, !server.isEmpty, let port = port, let portValue = Int32(port), let _ = Int32(port) { - let connection: ProxyServerConnection - if let secret = secret { - let data = dataWithHexString(secret) - if data.count == 16 || (data.count == 17 && MTSocksProxySettings.secretSupportsExtendedPadding(data)) { - connection = .mtp(secret: data) - } else { - return nil - } - } else { - connection = .socks5(username: user, password: pass) - } - return ProxyServerSettings(host: server, port: portValue, connection: connection) - } - } + if let secret = proxy.secret, secret.count == 16 || (secret.count == 17 && MTSocksProxySettings.secretSupportsExtendedPadding(secret)) { + return ProxyServerSettings(host: proxy.host, port: proxy.port, connection: .mtp(secret: secret)) + } else { + return ProxyServerSettings(host: proxy.host, port: proxy.port, connection: .socks5(username: proxy.username, password: proxy.password)) } - return nil } public func parseSecureIdUrl(_ url: URL) -> ParsedSecureIdUrl? { diff --git a/TelegramUI/PresentationStrings.swift b/TelegramUI/PresentationStrings.swift index 8b358a2fa7..5825a2ecb6 100644 --- a/TelegramUI/PresentationStrings.swift +++ b/TelegramUI/PresentationStrings.swift @@ -3676,526 +3676,526 @@ public final class PresentationStrings { public var Channel_Setup_TypePublicHelp: String { return self._s[3283]! } public var Passport_Identity_EditInternalPassport: String { return self._s[3284]! } public var PhotoEditor_Skip: String { return self._s[3285]! } - public func ForwardedMessages(_ value: Int32) -> String { + public func LastSeen_HoursAgo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public func Notifications_Exceptions(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func Passport_Scans(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func SharedMedia_Generic(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Minutes(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, _1, _2) } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2) } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortDays(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2) } public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Call_Seconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Invitation_Members(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } public func ForwardedLocations(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func SharedMedia_Video(_ value: Int32) -> String { + public func Watch_UserInfo_Mute(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func UserCount(_ value: Int32) -> String { + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Generic(_ value: Int32) -> String { + public func SharedMedia_Link(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } public func ForwardedVideoMessages(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_VotedCount(_ value: Int32) -> String { + public func Contacts_ImportersCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_Exceptions(_ value: Int32) -> String { + public func InviteText_ContactsCountText(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Minutes(_ value: Int32) -> String { + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedContacts(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) } public func Media_ShareVideo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, _1, _2) } public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Passport_Scans(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedMessages(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/TelegramUI/Resources/PresentationStrings.mapping b/TelegramUI/Resources/PresentationStrings.mapping index 537b5c1b5995024f9d0aa65568b9812046145aaa..35596ffbe4c0bc2d22e5b3b1e6d29eab696d8699 100644 GIT binary patch delta 1600 zcmZWpOKcle6rG!3r%BT`KgVN_<2X&*&<{=mlwWCyahy+y6Vu6u7SeR$c}b>DJYn8M z1hIhb*dQUz;v!WDoWyBT+d@KY*dV%&kje(JsHnPy4J;5+#qYj}Ym&0Ki+4ZooqO)N zZ|9zO=brb2ui!=wKg>g86-bVDrx`!qgu1i5N|K~{vZS^gO^nBe%oU4Q)47>UUC=D1 zCz)<&(Lt7FmXUsf++pXzb^pPnkzKJFkIkDN=c=!@PGwnr($Jad#Xr{|=&2Ex;I&%t zRjUUi=f)?BXJD#dt;POzIHA;0w25rMwBFGyo#`WHTC)u^%MaqibqH3~OZa^sG~?+l zIMl8hOUsMw5alw^G(u?`V6NcjTrE`u&?mm!6G;>Fa2Iy93^sA_C5F(b$ckyAX9 zWSndBY}{C4R#aUuExXKi8}=5V#p_NfjJXX6v`sOV;q6p(n5@!+0LUYf)BU?28wzk3 zI`EG?gsYD3_T>C?z*D7m;>~S1?m0$<5vTV{rItFH;LPI3vE~-EUpzqpp^dmk-Ift_ z(OD)_Z6lpwR!U1}Tp~1{iJL1~`$>w`l8Jj<$4NRgIUVtqYW0+acZWcBb#S^On$&`6 zn`clfLIj=?V>#-JQjIH0QW&)q?bqJr-R{IXQbS|oV`>j22nJnbEHf1!L| zh2}wHj=v~5eYaaCUZPkl+5cxJ(4V8o5jQH9$(6#e&6Zv!m)NusjoT_?*+(qXR-Gqz zhqLoz5I?7<PEn}9{F^K2#(B>JUsxE{g1aY(k^%3#F zF!@A3Ng7;Yb=j~Of7H@N{AmNa;Wb>P3Bw2$io|{rrwW976o1C3_O;w5S1F+2XWQVzzjILAJ5FaYeE~+O$laO=atMTbB{6epY+|%u zoy4!j2Qq~pmB8-q8hbWC4ql})w}(9p z2xev^C)VAJzZ9SmuDM%`_jBM0X=Ob7W|gELXo1h7OjOBf%Gft~mlLkz`85c67)68l zpaiX0%0Z21j?R93zW}WsA+UM;^ft(_fJ+2UHXgq!wxSy*zmDH-&_FX3J?4Iy^(tGO LORU=Tr8E6s3?jrt delta 1565 zcmZWpT~HfU6y6h?&`?ky5JCdsuRwojP;0GKvBV_&C~0UHsMWS~Np8uOuuJ!b5ua?I zb;cR?;W*A{2WTJ(PLxP=^}0u ztvKUcSzy!Z5;H>M`ijA8DB7}i(Ap^b9sZt!fr)zB=b<$wwfj}QOOL+_b38@CQkl@eHI`w0*&RE;Q3wWfIh+jG!X zYt5^jC|>+-54_GX^=5~J-zT60>x)o#+QNf`i)obGB^K|bfas?(>7=SHcH!d!4Y3;o zn=o*;hZv&tNrh)+# zxlr3BRBDLAmZ-{dC^j9oMlwV(;evQ6W|Ln<=N5E2Un3x}cHpa-8c$3oK6dXxk269f58iM?i$jj$;0|;{4AmlC%TfF>2Yt>lB8cYk*%r89 z9ODJ(bxu$)Xg;~sivO%bt@i`^6~$GGFMnuWZ}H;(9vtenTAn0=xZmY+CiSF}RdtQW z?b+?;z;*QkQH1Q3KC}u?P|!_lhBG6guV~pR`VkUWGRK(43^jR?!a~k+t|>i};g|4Y z4*EeBS0(75CfxED-R;=wvT871a`O!4i_i1?;#VXy zJY?zVu6?fO$C9Z$^x(4y92xzD4k#PlcG*>m{qNzs!W4sFBc!U0Q8mN(b;@g*r*Z#2v^rGDTrXJF)X6LJJZY%np}&Ps$bybV2_KKp JTS)%){0CJ4w#5Jd diff --git a/TelegramUI/SharedMediaPlayer.swift b/TelegramUI/SharedMediaPlayer.swift index a4443befd0..fc5270a8b1 100644 --- a/TelegramUI/SharedMediaPlayer.swift +++ b/TelegramUI/SharedMediaPlayer.swift @@ -207,15 +207,19 @@ final class SharedMediaPlayerItemPlaybackState: Equatable { let playlistId: SharedMediaPlaylistId let playlistLocation: SharedMediaPlaylistLocation let item: SharedMediaPlaylistItem + let previousItem: SharedMediaPlaylistItem? + let nextItem: SharedMediaPlaylistItem? let status: MediaPlayerStatus let order: MusicPlaybackSettingsOrder let looping: MusicPlaybackSettingsLooping let playerIndex: Int32 - init(playlistId: SharedMediaPlaylistId, playlistLocation: SharedMediaPlaylistLocation, item: SharedMediaPlaylistItem, status: MediaPlayerStatus, order: MusicPlaybackSettingsOrder, looping: MusicPlaybackSettingsLooping, playerIndex: Int32) { + init(playlistId: SharedMediaPlaylistId, playlistLocation: SharedMediaPlaylistLocation, item: SharedMediaPlaylistItem, previousItem: SharedMediaPlaylistItem?, nextItem: SharedMediaPlaylistItem?, status: MediaPlayerStatus, order: MusicPlaybackSettingsOrder, looping: MusicPlaybackSettingsLooping, playerIndex: Int32) { self.playlistId = playlistId self.playlistLocation = playlistLocation self.item = item + self.previousItem = previousItem + self.nextItem = nextItem self.status = status self.order = order self.looping = looping @@ -229,6 +233,12 @@ final class SharedMediaPlayerItemPlaybackState: Equatable { if !arePlaylistItemsEqual(lhs.item, rhs.item) { return false } + if !arePlaylistItemsEqual(lhs.previousItem, rhs.previousItem) { + return false + } + if !arePlaylistItemsEqual(lhs.nextItem, rhs.nextItem) { + return false + } if lhs.status != rhs.status { return false } @@ -544,7 +554,6 @@ final class SharedMediaPlayer { node.setSoundEnabled(false) } } - //strongSelf.playbackItem?.seek(0.0) strongSelf.playedToEnd?() } } @@ -559,7 +568,7 @@ final class SharedMediaPlayer { if let playbackItem = strongSelf.playbackItem, let item = state.item { strongSelf.playbackStateValue.set(playbackItem.playbackStatus |> map { itemStatus in - return .item(SharedMediaPlayerItemPlaybackState(playlistId: playlistId, playlistLocation: playlistLocation, item: item, status: itemStatus, order: state.order, looping: state.looping, playerIndex: playerIndex)) + return .item(SharedMediaPlayerItemPlaybackState(playlistId: playlistId, playlistLocation: playlistLocation, item: item, previousItem: state.previousItem, nextItem: state.nextItem, status: itemStatus, order: state.order, looping: state.looping, playerIndex: playerIndex)) }) strongSelf.markItemAsPlayedDisposable.set((playbackItem.playbackStatus |> filter { status in diff --git a/TelegramUI/TelegramController.swift b/TelegramUI/TelegramController.swift index 775274308c..c756238399 100644 --- a/TelegramUI/TelegramController.swift +++ b/TelegramUI/TelegramController.swift @@ -55,7 +55,7 @@ public class TelegramController: ViewController { private var mediaStatusDisposable: Disposable? private var locationBroadcastDisposable: Disposable? - private(set) var playlistStateAndType: (SharedMediaPlaylistItem, MusicPlaybackSettingsOrder, MediaManagerPlayerType, Account)? + private(set) var playlistStateAndType: (SharedMediaPlaylistItem, SharedMediaPlaylistItem?, SharedMediaPlaylistItem?, MusicPlaybackSettingsOrder, MediaManagerPlayerType, Account)? var tempVoicePlaylistEnded: (() -> Void)? var tempVoicePlaylistItemChanged: ((SharedMediaPlaylistItem?, SharedMediaPlaylistItem?) -> Void)? @@ -124,9 +124,11 @@ public class TelegramController: ViewController { return } if !arePlaylistItemsEqual(strongSelf.playlistStateAndType?.0, playlistStateAndType?.1.item) || - strongSelf.playlistStateAndType?.1 != playlistStateAndType?.1.order || strongSelf.playlistStateAndType?.2 != playlistStateAndType?.2 { + !arePlaylistItemsEqual(strongSelf.playlistStateAndType?.1, playlistStateAndType?.1.previousItem) || + !arePlaylistItemsEqual(strongSelf.playlistStateAndType?.2, playlistStateAndType?.1.nextItem) || + strongSelf.playlistStateAndType?.3 != playlistStateAndType?.1.order || strongSelf.playlistStateAndType?.4 != playlistStateAndType?.2 { var previousVoiceItem: SharedMediaPlaylistItem? - if let playlistStateAndType = strongSelf.playlistStateAndType, playlistStateAndType.2 == .voice { + if let playlistStateAndType = strongSelf.playlistStateAndType, playlistStateAndType.4 == .voice { previousVoiceItem = playlistStateAndType.0 } @@ -137,10 +139,10 @@ public class TelegramController: ViewController { strongSelf.tempVoicePlaylistItemChanged?(previousVoiceItem, updatedVoiceItem) if let playlistStateAndType = playlistStateAndType { - strongSelf.playlistStateAndType = (playlistStateAndType.1.item, playlistStateAndType.1.order, playlistStateAndType.2, playlistStateAndType.0) + strongSelf.playlistStateAndType = (playlistStateAndType.1.item, playlistStateAndType.1.previousItem, playlistStateAndType.1.nextItem, playlistStateAndType.1.order, playlistStateAndType.2, playlistStateAndType.0) } else { var voiceEnded = false - if strongSelf.playlistStateAndType?.2 == .voice { + if strongSelf.playlistStateAndType?.4 == .voice { voiceEnded = true } strongSelf.playlistStateAndType = nil @@ -417,13 +419,13 @@ public class TelegramController: ViewController { mediaAccessoryPanelHidden = size != layout.metrics.widthClass } - if let (item, _, type, _) = self.playlistStateAndType, !mediaAccessoryPanelHidden { + if let (item, previousItem, nextItem, _, type, _) = self.playlistStateAndType, !mediaAccessoryPanelHidden { let panelHeight = MediaNavigationAccessoryHeaderNode.minimizedHeight let panelFrame = CGRect(origin: CGPoint(x: 0.0, y: navigationHeight.isZero ? -panelHeight : (navigationHeight + additionalHeight + UIScreenPixel)), size: CGSize(width: layout.size.width, height: panelHeight)) if let (mediaAccessoryPanel, mediaType) = self.mediaAccessoryPanel, mediaType == type { transition.updateFrame(layer: mediaAccessoryPanel.layer, frame: panelFrame) mediaAccessoryPanel.updateLayout(size: panelFrame.size, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, transition: transition) - mediaAccessoryPanel.containerNode.headerNode.playbackItem = item + mediaAccessoryPanel.containerNode.headerNode.playbackItems = (item, previousItem, nextItem) let delayedStatus = self.context.sharedContext.mediaManager.globalMediaPlayerState |> mapToSignal { value -> Signal<(Account, SharedMediaPlayerItemPlaybackStateOrLoading, MediaManagerPlayerType)?, NoError> in @@ -461,7 +463,7 @@ public class TelegramController: ViewController { let mediaAccessoryPanel = MediaNavigationAccessoryPanel(context: self.context) mediaAccessoryPanel.containerNode.headerNode.displayScrubber = type != .voice mediaAccessoryPanel.close = { [weak self] in - if let strongSelf = self, let (_, _, type, _) = strongSelf.playlistStateAndType { + if let strongSelf = self, let (_, _, _, _, type, _) = strongSelf.playlistStateAndType { strongSelf.context.sharedContext.mediaManager.setPlaylist(nil, type: type) } } @@ -486,19 +488,29 @@ public class TelegramController: ViewController { return nextRate } |> deliverOnMainQueue).start(next: { baseRate in - guard let strongSelf = self, let (_, _, type, _) = strongSelf.playlistStateAndType else { + guard let strongSelf = self, let (_, _, _, _, type, _) = strongSelf.playlistStateAndType else { return } strongSelf.context.sharedContext.mediaManager.playlistControl(.setBaseRate(baseRate), type: type) }) } mediaAccessoryPanel.togglePlayPause = { [weak self] in - if let strongSelf = self, let (_, _, type, _) = strongSelf.playlistStateAndType { + if let strongSelf = self, let (_, _, _, _, type, _) = strongSelf.playlistStateAndType { strongSelf.context.sharedContext.mediaManager.playlistControl(.playback(.togglePlayPause), type: type) } } + mediaAccessoryPanel.playPrevious = { [weak self] in + if let strongSelf = self, let (_, _, _, _, type, _) = strongSelf.playlistStateAndType { + strongSelf.context.sharedContext.mediaManager.playlistControl(.next, type: type) + } + } + mediaAccessoryPanel.playNext = { [weak self] in + if let strongSelf = self, let (_, _, _, _, type, _) = strongSelf.playlistStateAndType { + strongSelf.context.sharedContext.mediaManager.playlistControl(.previous, type: type) + } + } mediaAccessoryPanel.tapAction = { [weak self] in - guard let strongSelf = self, let navigationController = strongSelf.navigationController as? NavigationController, let (state, order, type, account) = strongSelf.playlistStateAndType else { + guard let strongSelf = self, let _ = strongSelf.navigationController as? NavigationController, let (state, _, _, order, type, account) = strongSelf.playlistStateAndType else { return } if let id = state.id as? PeerMessagesMediaPlaylistItemId { @@ -580,7 +592,7 @@ public class TelegramController: ViewController { } self.mediaAccessoryPanel = (mediaAccessoryPanel, type) mediaAccessoryPanel.updateLayout(size: panelFrame.size, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, transition: .immediate) - mediaAccessoryPanel.containerNode.headerNode.playbackItem = item + mediaAccessoryPanel.containerNode.headerNode.playbackItems = (item, previousItem, nextItem) mediaAccessoryPanel.containerNode.headerNode.playbackStatus = self.context.sharedContext.mediaManager.globalMediaPlayerState |> map { state -> MediaPlayerStatus in if let stateOrLoading = state?.1, case let .state(state) = stateOrLoading { diff --git a/TelegramUI/TelegramRootController.swift b/TelegramUI/TelegramRootController.swift index a4fb707bb0..eccb7c61ef 100644 --- a/TelegramUI/TelegramRootController.swift +++ b/TelegramUI/TelegramRootController.swift @@ -83,44 +83,6 @@ public final class TelegramRootController: NavigationController { self.accountSettingsController = accountSettingsController self.rootTabController = tabBarController self.pushViewController(tabBarController, animated: false) - - - - -// guard let controller = self.viewControllers.last as? ViewController else { -// return -// } -// -// DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) { -// let wrapperNode = ASDisplayNode() -// let bounds = controller.displayNode.bounds -// wrapperNode.frame = bounds -// wrapperNode.backgroundColor = .gray -// //controller.displayNode.addSubnode(wrapperNode) -// -// let label = TGMarqLabel(frame: CGRect()) -// label.textColor = .white -// label.font = Font.regular(28.0) -// label.scrollDuration = 15.0 -// label.fadeLength = 25.0 -// label.trailingBuffer = 60.0 -// label.animationDelay = 2.0 -// label.text = "Lorem ipsum dolor sir amet, consecteur" -// label.sizeToFit() -// label.frame = CGRect(x: bounds.width / 2.0 - 100.0, y: 100.0, width: 200.0, height: label.frame.height) -// //wrapperNode.view.addSubview(label) -// -// let data = testLineChartData() -// let node = LineChartContainerNode(data: data) -// node.frame = CGRect(x: 0.0, y: 100.0, width: bounds.width, height: 280.0) -// node.updateLayout(size: node.frame.size) -// wrapperNode.addSubnode(node) -// -// self.wNode = wrapperNode -// -// let gesture = UITapGestureRecognizer(target: self, action: #selector(self.closeIt)) -// wrapperNode.view.addGestureRecognizer(gesture) -// } } @objc func closeIt() { diff --git a/TelegramUI/UniversalVideoGalleryItem.swift b/TelegramUI/UniversalVideoGalleryItem.swift index 8a48bd5390..8475a3ee2f 100644 --- a/TelegramUI/UniversalVideoGalleryItem.swift +++ b/TelegramUI/UniversalVideoGalleryItem.swift @@ -641,6 +641,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { videoNode.seek(0.0) videoNode.play() } else { + self.hideStatusNodeUntilCentrality = false videoNode.playOnceWithSound(playAndRecord: false, seek: seek, actionAtEnd: .stop) } }