From b005b9295ceb8e1d07e73077d1d57c389658ce12 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 31 Jan 2023 18:03:43 +0400 Subject: [PATCH] Translation improvements --- .../Sources/ChatTranslationPanelNode.swift | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/submodules/TelegramUI/Sources/ChatTranslationPanelNode.swift b/submodules/TelegramUI/Sources/ChatTranslationPanelNode.swift index d6c5fe1802..03287cc954 100644 --- a/submodules/TelegramUI/Sources/ChatTranslationPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatTranslationPanelNode.swift @@ -173,9 +173,17 @@ final class ChatTranslationPanelNode: ASDisplayNode { if languageCode.hasSuffix(rawSuffix) { languageCode = String(languageCode.dropLast(rawSuffix.count)) } - let locale = Locale(identifier: languageCode) - let fromLanguage: String = locale.localizedString(forLanguageCode: translationState.fromLang) ?? "" - + + let fromLang = translationState.fromLang + let key = "Translation.Language.\(fromLang)" + let fromLanguage: String + if let string = presentationData.strings.primaryComponent.dict[key] { + fromLanguage = string + } else { + let languageLocale = Locale(identifier: languageCode) + fromLanguage = languageLocale.localizedString(forLanguageCode: fromLang) ?? "" + } + var items: [ContextMenuItem] = [] items.append(.action(ContextMenuActionItem(text: presentationData.strings.Conversation_Translation_ChooseLanguage, icon: { theme in return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Translate"), color: theme.contextMenu.primaryColor) @@ -204,24 +212,16 @@ final class ChatTranslationPanelNode: ASDisplayNode { topLanguages.append(contentsOf: popularTranslationLanguages) for code in topLanguages { - if !addedLanguages.contains(code) { - let key = "Translation.Language.\(code)" - var title: String? - if let string = presentationData.strings.primaryComponent.dict[key] { - title = string - } else if let engTitle = enLocale.localizedString(forLanguageCode: code) { - let languageLocale = Locale(identifier: code) - title = languageLocale.localizedString(forLanguageCode: code) ?? engTitle - } - if let title { - let value = (code, title.capitalized) - if code == languageCode { - languages.insert(value, at: 0) - } else { - languages.append(value) - } - addedLanguages.insert(code) + if !addedLanguages.contains(code), let title = enLocale.localizedString(forLanguageCode: code) { + let languageLocale = Locale(identifier: code) + let subtitle = languageLocale.localizedString(forLanguageCode: code) ?? title + let value = (code, subtitle.capitalized) + if code == languageCode { + languages.insert(value, at: 0) + } else { + languages.append(value) } + addedLanguages.insert(code) } }