local Translate_Model = {} local private = {} local EventSystem = require("Event/EventSystem") local chat_pb = require("Proto/chat_pb") local chat_operate_pb = require("Proto/chat_operate_pb") function Translate_Model.OnStartup() private.pureTextCacheDict = {} private.translateCacheDict = {} end function Translate_Model.GetPureText(uuid) return private.pureTextCacheDict[uuid] end function Translate_Model.GetTranslateText(uuid) return private.translateCacheDict[uuid] end function Translate_Model.GeneratePureText(chatMsgData) --储存在本地的之前的好友私聊消息中没有存储uuid if string.isNilOrEmpty(chatMsgData.uuid) then return end --日本越南永远屏蔽自动翻译 if GameAppInfo.IsJapanesePackage() or GameAppInfo.IsVietnamPackage() then return end --单语言包不开启翻译功能 if not Localization.IsSwitchLanguage() then return end local pureText = CTL.Translate.ConvertToPureText(chatMsgData) private.pureTextCacheDict[chatMsgData.uuid] = pureText end function Translate_Model.TranslateReq(uuid, index, pureText) local msg = chat_pb.TranslateReq() msg.target = Localization.GetLanguage2Server() msg.uuid = uuid msg.text = pureText or Translate_Model.GetPureText(uuid) msg.index = index AuxUtil.ChatMsg(chat_operate_pb.C2STranslate, msg:SerializeToString()) end --resp的调用在ChannelChat_Model.RecvChatMsgByCS中 function Translate_Model.TranslateResp(msgResp) if string.isNilOrEmpty(msgResp.result) then EventSystem.Dispatch(EventID.UI_ChannelChat_TranslateUpdate, false, msgResp.index) else private.translateCacheDict[msgResp.uuid] = msgResp.result EventSystem.Dispatch(EventID.UI_ChannelChat_TranslateUpdate, true, msgResp.index) end end return Translate_Model