mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix message translation in comments
This commit is contained in:
parent
e236672d01
commit
6a9ce9ab6e
@ -512,7 +512,7 @@ public extension TelegramEngine {
|
|||||||
return _internal_translate_texts(network: self.account.network, texts: texts, toLang: toLang)
|
return _internal_translate_texts(network: self.account.network, texts: texts, toLang: toLang)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func translateMessages(messageIds: [EngineMessage.Id], toLang: String) -> Signal<Void, TranslationError> {
|
public func translateMessages(messageIds: [EngineMessage.Id], toLang: String) -> Signal<Never, TranslationError> {
|
||||||
return _internal_translateMessages(account: self.account, messageIds: messageIds, toLang: toLang)
|
return _internal_translateMessages(account: self.account, messageIds: messageIds, toLang: toLang)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,13 +84,18 @@ func _internal_translate_texts(network: Network, texts: [(String, [MessageTextEn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _internal_translateMessages(account: Account, messageIds: [EngineMessage.Id], toLang: String) -> Signal<Never, TranslationError> {
|
||||||
func _internal_translateMessages(account: Account, messageIds: [EngineMessage.Id], toLang: String) -> Signal<Void, TranslationError> {
|
var signals: [Signal<Void, TranslationError>] = []
|
||||||
guard let peerId = messageIds.first?.peerId else {
|
for (peerId, messageIds) in messagesIdsGroupedByPeerId(messageIds) {
|
||||||
return .never()
|
signals.append(_internal_translateMessagesByPeerId(account: account, peerId: peerId, messageIds: messageIds, toLang: toLang))
|
||||||
}
|
}
|
||||||
|
return combineLatest(signals)
|
||||||
|
|> ignoreValues
|
||||||
|
}
|
||||||
|
|
||||||
|
private func _internal_translateMessagesByPeerId(account: Account, peerId: EnginePeer.Id, messageIds: [EngineMessage.Id], toLang: String) -> Signal<Void, TranslationError> {
|
||||||
return account.postbox.transaction { transaction -> (Api.InputPeer?, [Message]) in
|
return account.postbox.transaction { transaction -> (Api.InputPeer?, [Message]) in
|
||||||
return (transaction.getPeer(peerId).flatMap(apiInputPeer), messageIds.compactMap({ transaction.getMessage($0) }))
|
return (transaction.getPeer(peerId).flatMap(apiInputPeer), messageIds.compactMap({ transaction.getMessage($0) }))
|
||||||
}
|
}
|
||||||
|> castError(TranslationError.self)
|
|> castError(TranslationError.self)
|
||||||
|> mapToSignal { (inputPeer, messages) -> Signal<Void, TranslationError> in
|
|> mapToSignal { (inputPeer, messages) -> Signal<Void, TranslationError> in
|
||||||
|
@ -109,8 +109,8 @@ public func updateChatTranslationStateInteractively(engine: TelegramEngine, peer
|
|||||||
@available(iOS 12.0, *)
|
@available(iOS 12.0, *)
|
||||||
private let languageRecognizer = NLLanguageRecognizer()
|
private let languageRecognizer = NLLanguageRecognizer()
|
||||||
|
|
||||||
public func translateMessageIds(context: AccountContext, messageIds: [EngineMessage.Id], toLang: String) -> Signal<Void, NoError> {
|
public func translateMessageIds(context: AccountContext, messageIds: [EngineMessage.Id], toLang: String) -> Signal<Never, NoError> {
|
||||||
return context.account.postbox.transaction { transaction -> Signal<Void, NoError> in
|
return context.account.postbox.transaction { transaction -> Signal<Never, NoError> in
|
||||||
var messageIdsToTranslate: [EngineMessage.Id] = []
|
var messageIdsToTranslate: [EngineMessage.Id] = []
|
||||||
var messageIdsSet = Set<EngineMessage.Id>()
|
var messageIdsSet = Set<EngineMessage.Id>()
|
||||||
for messageId in messageIds {
|
for messageId in messageIds {
|
||||||
@ -152,7 +152,7 @@ public func translateMessageIds(context: AccountContext, messageIds: [EngineMess
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return context.engine.messages.translateMessages(messageIds: messageIdsToTranslate, toLang: toLang)
|
return context.engine.messages.translateMessages(messageIds: messageIdsToTranslate, toLang: toLang)
|
||||||
|> `catch` { _ -> Signal<Void, NoError> in
|
|> `catch` { _ -> Signal<Never, NoError> in
|
||||||
return .complete()
|
return .complete()
|
||||||
}
|
}
|
||||||
} |> switchToLatest
|
} |> switchToLatest
|
||||||
|
Loading…
x
Reference in New Issue
Block a user