Version 11.9

This commit is contained in:
Kylmakalle
2024-07-02 19:58:37 +03:00
parent 587ac7bf00
commit 833ecbc777
797 changed files with 40411 additions and 2895 deletions

View File

@@ -1,3 +1,4 @@
import SGStrings
import Foundation
import UIKit
import Display
@@ -447,6 +448,7 @@ final class LocalizationListControllerNode: ViewControllerTracingNode {
return
}
// MARK: Swiftgram
let isPremium = peer?.isPremium ?? false
var entries: [LanguageListEntry] = []
@@ -461,7 +463,7 @@ final class LocalizationListControllerNode: ViewControllerTracingNode {
var ignoredLanguages: [String] = []
if let translationSettings = sharedData.entries[ApplicationSpecificSharedDataKeys.translationSettings]?.get(TranslationSettings.self) {
showTranslate = translationSettings.showTranslate
translateChats = isPremium ? translationSettings.translateChats : false
translateChats = translationSettings.translateChats
if let languages = translationSettings.ignoredLanguages {
ignoredLanguages = languages
} else {
@@ -483,7 +485,7 @@ final class LocalizationListControllerNode: ViewControllerTracingNode {
}
}
} else {
translateChats = isPremium
translateChats = isPremium || true
if let activeLanguage = activeLanguageCode, supportedTranslationLanguages.contains(activeLanguage) {
ignoredLanguages = [activeLanguage]
}
@@ -502,7 +504,7 @@ final class LocalizationListControllerNode: ViewControllerTracingNode {
entries.append(.translate(text: presentationData.strings.Localization_ShowTranslate, value: showTranslate))
entries.append(.translateEntire(text: presentationData.strings.Localization_TranslateEntireChat, value: translateChats, locked: !isPremium))
entries.append(.translateEntire(text: presentationData.strings.Localization_TranslateEntireChat, value: translateChats, locked: !(isPremium || true)))
var value = ""
if ignoredLanguages.count > 1 {
@@ -552,6 +554,17 @@ final class LocalizationListControllerNode: ViewControllerTracingNode {
} else {
entries.append(.localizationTitle(text: presentationData.strings.Localization_InterfaceLanguage.uppercased(), section: LanguageListSection.official.rawValue))
}
// MARK: Swiftrgam
for info in SGLocalizations {
if existingIds.contains(info.languageCode) {
continue
}
existingIds.insert(info.languageCode)
entries.append(.localization(index: entries.count, info: info, type: .official, selected: info.languageCode == activeLanguageCode, activity: applyingCode == info.languageCode, revealed: revealedCode == info.languageCode, editing: false))
}
//
for info in localizationListState.availableOfficialLocalizations {
if existingIds.contains(info.languageCode) {
continue
@@ -727,6 +740,13 @@ final class LocalizationListControllerNode: ViewControllerTracingNode {
self?.applyingCode.set(.single(nil))
self?.context.engine.messages.refreshAttachMenuBots()
// MARK: Swiftgram
// TODO(swiftgram): consider moving to downloadAndApplyLocalization for an app-wide strings update
if let baseLanguageCode = info.baseLanguageCode {
SGLocalizationManager.shared.downloadLocale(baseLanguageCode)
}
}))
}
if info.isOfficial {

View File

@@ -161,10 +161,13 @@ public func translationSettingsController(context: AccountContext) -> ViewContro
}
}
for code in supportedTranslationLanguages {
for code in supportedTranslationLanguages + ["zh-hans", "zh-hant"] {
if !addedLanguages.contains(code), let title = enLocale.localizedString(forLanguageCode: code) {
let languageLocale = Locale(identifier: code)
let subtitle = languageLocale.localizedString(forLanguageCode: code) ?? title
var subtitle = languageLocale.localizedString(forLanguageCode: code) ?? title
if code == "zh-hans" || code == "zh-hant" {
subtitle += " \(code)"
}
let value = (code, title.capitalized, subtitle.capitalized)
if code == interfaceLanguageCode {
languages.insert(value, at: 0)