本文部分参考了GitHub中wadereye的代码,在源代码基础上修改了部分针对tkk的筛选及使用逻辑。
由于谷歌的tkk值规则一直在变,且api的url也不是固定的,所以做了配置类,方便修改。
全部代码
GoogleTranslate主类:
public static class GoogleTranslate
{
public static string TranslateChinese2English(string text)
{
return Translate(text, "zh-CN", "en");
}
配置类
通过读取配置文件给主类传值,方便修改:
public class ConfigHelper
{
App.config配置:
<add key="GoogleTranslate_Url" value="https://translate.google.cn/">add>
<add key="GoogleTranslate_API" value="https://translate.google.cn/translate_a/single?client=webapp&sl={0}&tl={1}&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=sos&dt=ss&dt=t&otf=1&pc=1&ssel=3&tsel=0&xid=45662847&kc=2&tk={2}&q={3}">add>
<add key="GoogleTranslate_tkkRegex" value="(?<=tkk:')(.*?)(?=')">add>
gettk.js
本js文件保存在根目录(文件名:gettk.js),供GoogleTranslate类调用,获取tkk:
使用
直接调用主类的公用方法即可:
GoogleTranslate.TranslateChinese2English("需要翻译内容");
示例:
private void button1_Click(object sender, EventArgs e)
{
richTextBox2.Text = GoogleTranslate.TranslateChinese2English(richTextBox1.Text);
}
Original: https://www.cnblogs.com/waw/p/15635529.html
Author: 狼人:-)
Title: C#使用Google实现在线翻译
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/545674/
转载文章受原作者版权保护。转载请注明原作者出处!