c# 有什么办法可以将包含html标签的字符串分段,字符不超过5000,翻译用的,太多Google不给你翻译

浪里个浪17 2017-11-25 01:45:01
目前的问题是 调用Google在线翻译翻译数据库的一个字段,里面是用HTML编辑器弄的一段代码,现在要翻译成其他语言,但是太多了,Google直接返回错误代码,现在是想把字符串再不影响翻译的前提下分段,html标签要完整,因为后面还有要处理html标签的,有什么好的方法,拜托各位了
...全文
404 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
特别 2017-11-27
  • 打赏
  • 举报
回复
google不是有翻译的API
小大飞 2017-11-27
  • 打赏
  • 举报
回复
把5000长度的字符串分割开来。字符串分为可翻译字符串和html字符串。 创建一个对象,对象有三个属性:原始字符,翻译后字符,bool是否可翻译; 遍历list集合进行翻译,翻译后再遍历list集合进行拼接。
帅猪儿 2017-11-27
  • 打赏
  • 举报
回复
接着上一个问题,之所以要截取/r/n这个换行标志,是为了保证翻译的整体性。即按照段落进行翻译,保证翻译能够整段翻译,使得翻译连贯。
帅猪儿 2017-11-27
  • 打赏
  • 举报
回复
我有个想法, 1、将html文档读取出来,存放到一个string内 2、截取这个string前5000字符内(string.length)最后一个换行字符/r/n,从这个字符开始截取之前的字段进行翻译。 3、对于剩下的字段,再次进行截取并翻译,并将各个翻译的内容组合。 4、这样就可以保证字符在不拆分的情况下完成翻译。 具体的代码如下: string f = "";//文件路径 StreamReader sr = new StreamReader(f, Encoding.Default); string strHTML = sr.ReadLine();//将文件内容读取到strHTML中 string strFY = "";//最终的翻译字符串组合 while (strHTML.Length>0) { string str1 = strHTML.Substring(0, 5000);//html临时值 str1 = str1.Substring(0,str1.LastIndexOf(@"/r/n")); str1 = fy();//执行翻译函数 strFY += str1; strHTML = strHTML.Substring(str1.LastIndexOf(@"/r/n")); } //strFY就是最终的翻译字符串组合 没有调试过,可能中间还有些 问题需要你自己解决。
秋的红果实 2017-11-27
  • 打赏
  • 举报
回复
正则表达式取出如1000个标签,进行翻译
闭包客 2017-11-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/closurer/article/details/73466685 你可以使用一个 html 解析器拆分,翻译后再合并。
圣殿骑士18 2017-11-25
  • 打赏
  • 举报
回复
没什么办法把,你自己根据html标记解析,先把数据拆分好,送给google解析,回头再拼装。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧