Translation fixes

This commit is contained in:
Ilya Laktyushin 2023-01-23 00:25:09 +04:00
parent bb536aec28
commit 443d0293f6
8 changed files with 33 additions and 13 deletions

View File

@ -8716,6 +8716,7 @@ Sorry for the inconvenience.";
"AvatarEditor.SwitchToEmoji" = "SWITCH TO EMOJI"; "AvatarEditor.SwitchToEmoji" = "SWITCH TO EMOJI";
"AvatarEditor.SwitchToStickers" = "SWITCH TO STICKERS"; "AvatarEditor.SwitchToStickers" = "SWITCH TO STICKERS";
"AvatarEditor.SetProfilePhoto" = "Set as Profile Photo"; "AvatarEditor.SetProfilePhoto" = "Set as Profile Photo";
"AvatarEditor.SuggestProfilePhoto" = "Suggest as Profile Photo";
"AvatarEditor.SetGroupPhoto" = "Set as Group Photo"; "AvatarEditor.SetGroupPhoto" = "Set as Group Photo";
"AvatarEditor.SetChannelPhoto" = "Set as Group Photo"; "AvatarEditor.SetChannelPhoto" = "Set as Group Photo";
"AvatarEditor.Set" = "Set"; "AvatarEditor.Set" = "Set";

View File

@ -425,7 +425,7 @@ public final class ListMessageSnippetItemNode: ListMessageNode {
if messageTextUrl != rawUrlString, !item.isGlobalSearchResult { if messageTextUrl != rawUrlString, !item.isGlobalSearchResult {
var messageText = message.text var messageText = message.text
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, !translation.text.isEmpty, item.translateToLanguage == translation.toLang { if !messageText.isEmpty, let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, !translation.text.isEmpty, item.translateToLanguage == translation.toLang {
messageText = translation.text messageText = translation.text
} }

View File

@ -22,7 +22,7 @@ public func fetchMediaData(context: AccountContext, postbox: Postbox, userLocati
var userContentType: MediaResourceUserContentType = .other var userContentType: MediaResourceUserContentType = .other
if let image = mediaReference.media as? TelegramMediaImage { if let image = mediaReference.media as? TelegramMediaImage {
userContentType = .image userContentType = .image
if let video = image.videoRepresentations.first, forceVideo { if let video = image.videoRepresentations.last, forceVideo {
resource = video.resource resource = video.resource
isImage = false isImage = false
} else if let representation = largestImageRepresentation(image.representations) { } else if let representation = largestImageRepresentation(image.representations) {

View File

@ -749,6 +749,13 @@ final class AvatarEditorScreenComponent: Component {
}) })
self.addSubview(snapshotView) self.addSubview(snapshotView)
} }
if let navigationDoneButton = self.navigationDoneButton.view, !navigationDoneButton.alpha.isZero, let snapshotView = self.navigationDoneButton.view?.snapshotContentTree() {
snapshotView.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false, completion: { [weak snapshotView] _ in
snapshotView?.removeFromSuperview()
})
self.addSubview(snapshotView)
}
} }
let backgroundIsBright = UIColor(rgb: state.selectedBackground.colors.first ?? 0).lightness > 0.8 let backgroundIsBright = UIColor(rgb: state.selectedBackground.colors.first ?? 0).lightness > 0.8
@ -1184,6 +1191,8 @@ final class AvatarEditorScreenComponent: Component {
let buttonText: String let buttonText: String
switch component.peerType { switch component.peerType {
case .suggest:
buttonText = strings.AvatarEditor_SuggestProfilePhoto
case .user: case .user:
buttonText = strings.AvatarEditor_SetProfilePhoto buttonText = strings.AvatarEditor_SetProfilePhoto
case .group, .forum: case .group, .forum:
@ -1335,6 +1344,7 @@ final class AvatarEditorScreenComponent: Component {
public final class AvatarEditorScreen: ViewControllerComponentContainer { public final class AvatarEditorScreen: ViewControllerComponentContainer {
public enum PeerType { public enum PeerType {
case suggest
case user case user
case group case group
case channel case channel

View File

@ -2006,6 +2006,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
var isTopReplyThreadMessageShownValue = false var isTopReplyThreadMessageShownValue = false
var topVisibleMessageRange: ChatTopVisibleMessageRange? var topVisibleMessageRange: ChatTopVisibleMessageRange?
let isLoading = historyView.originalView.isLoading let isLoading = historyView.originalView.isLoading
let translateToLanguage = transactionState.historyView.associatedData.translateToLanguage
if let visible = displayedRange.visibleRange { if let visible = displayedRange.visibleRange {
let indexRange = (historyView.filteredEntries.count - 1 - visible.lastIndex, historyView.filteredEntries.count - 1 - visible.firstIndex) let indexRange = (historyView.filteredEntries.count - 1 - visible.lastIndex, historyView.filteredEntries.count - 1 - visible.firstIndex)
@ -2070,6 +2071,14 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
} }
} }
} }
if let translateToLanguage {
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == translateToLanguage {
} else if !message.text.isEmpty {
messageIdsToTranslate.append(message.id)
}
}
for media in message.media { for media in message.media {
if let _ = media as? TelegramMediaUnsupported { if let _ = media as? TelegramMediaUnsupported {
contentRequiredValidation = true contentRequiredValidation = true
@ -2144,6 +2153,12 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
} }
} }
} }
if let translateToLanguage {
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == translateToLanguage {
} else if !message.text.isEmpty {
messageIdsToTranslate.append(message.id)
}
}
for media in message.media { for media in message.media {
if let telegramFile = media as? TelegramMediaFile { if let telegramFile = media as? TelegramMediaFile {
downloadableResourceIds.append((message.id, telegramFile.resource.id.stringRepresentation)) downloadableResourceIds.append((message.id, telegramFile.resource.id.stringRepresentation))
@ -2194,7 +2209,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
} }
} }
let translateToLanguage = transactionState.historyView.associatedData.translateToLanguage
var messageIdsWithPossibleReactions: [MessageId] = [] var messageIdsWithPossibleReactions: [MessageId] = []
for entry in historyView.filteredEntries { for entry in historyView.filteredEntries {
switch entry { switch entry {
@ -2212,13 +2226,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
default: default:
break break
} }
if let translateToLanguage {
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == translateToLanguage {
} else {
messageIdsToTranslate.append(message.id)
}
}
} }
case let .MessageGroupEntry(_, messages, _): case let .MessageGroupEntry(_, messages, _):
for (message, _, _, _, _) in messages { for (message, _, _, _, _) in messages {

View File

@ -261,7 +261,7 @@ class ChatMessageTextBubbleContentNode: ChatMessageBubbleContentNode {
messageEntities = updatingMedia.entities?.entities ?? [] messageEntities = updatingMedia.entities?.entities ?? []
} }
if let translateToLanguage = item.associatedData.translateToLanguage { if let translateToLanguage = item.associatedData.translateToLanguage, !item.message.text.isEmpty {
isTranslating = true isTranslating = true
for attribute in item.message.attributes { for attribute in item.message.attributes {
if let attribute = attribute as? TranslationMessageAttribute, !attribute.text.isEmpty, attribute.toLang == translateToLanguage { if let attribute = attribute as? TranslationMessageAttribute, !attribute.text.isEmpty, attribute.toLang == translateToLanguage {

View File

@ -7273,7 +7273,9 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate
return return
} }
let peerType: AvatarEditorScreen.PeerType let peerType: AvatarEditorScreen.PeerType
if case .legacyGroup = peer { if mode == .suggest {
peerType = .suggest
} else if case .legacyGroup = peer {
peerType = .group peerType = .group
} else if case let .channel(channel) = peer { } else if case let .channel(channel) = peer {
if case .group = channel.info { if case .group = channel.info {

View File

@ -114,7 +114,7 @@ public func translateMessageIds(context: AccountContext, messageIds: [EngineMess
return context.account.postbox.transaction { transaction -> Signal<Void, NoError> in return context.account.postbox.transaction { transaction -> Signal<Void, NoError> in
var messageIdsToTranslate: [EngineMessage.Id] = [] var messageIdsToTranslate: [EngineMessage.Id] = []
for messageId in messageIds { for messageId in messageIds {
if let message = transaction.getMessage(messageId), let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == toLang { if let message = transaction.getMessage(messageId), !message.text.isEmpty, let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == toLang {
} else { } else {
messageIdsToTranslate.append(messageId) messageIdsToTranslate.append(messageId)
} }