阅读一个翻译器客户端结构笔记

举报
Amrf 发表于 2020/06/09 17:23:26 2020/06/09
【摘要】 BaseParser | |_TXTParser --List<string> | |_WordParser --- List<Aspose.Words.Node> | |_PDFParser ---PDF =>Doc,List<Aspose.Words.Node> --Paragraph | |_PPTParser ---List...

   BaseParser

    |

    |_TXTParser --List<string>

    |

    |_WordParser  --- List<Aspose.Words.Node>

    |

    |_PDFParser  ---PDF =>Doc,List<Aspose.Words.Node> --Paragraph

    |

    |_PPTParser  ---List<Aspose.slides.Paragraph>

    |

    |_ExcelParser  ---Aspose.cells.Workbook


    

BaseParser

--GetTranslateText(调用服务向后端api发送翻译请求)

--IsSupportBatchTranslate(全局开启分批翻译的开关,分批的好处是减少请求数),

如果开启则调用BatchTranslate分批组合翻译,否则调用singleTranslate一段段翻译

--BatchSetParagraphContent输出并替换word节点中翻译后的内容


TXTParser-----TranslateTXT \

WordParser----TranslateDoc   \

PDFParser-----TranslatePDF    参数为Task

PPTParser-----TranslatePPT    /

ExcelParser---TranslateExcel /


Task为单个翻译任务对应的数据其继承了INotifyPropertyChanged,

TaskViewModel为一个翻译任务界面对应的数据可以当成任务数据集合ObservableCollection<Task>,当点击开始翻译时,

从其中过滤出需要跑的翻译任务,构造TaskThread任务执行包裹结构并添加到待启动集合,包裹执行StartTranslate(task),通过任务中的文件名

后缀(Dictionary<string, Action<Task>>)映射到对应的Action从而执行具体调用;遍历集合启动所有task;


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。