excel实现谷歌自动翻译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel实现谷歌自动翻译相关的知识,希望对你有一定的参考价值。

词条太多了,能不能直接批量谷歌翻译,之前用的内置的excel api,翻出来很蠢、。。。。

    Excel 网络函数库

    第一步,访问Excel API 网站,获取Excel 网络函数库安装工具

    第二步,下载并安装Excel网络函数库。访问网站,找到“安装指南”页面,下载安装工具,检查更新,然后安装。

    第三步,添加Excel API net加载项。依次点击菜单Excel-->文件-->选项-->加载项,勾选“Excel API net 加载项”。

    第四步,使用公式Fanyi(text, [from_lanaguage], [to_lanaguage])。参数text指待翻译的文字,from_language指翻译后的语言种类,默认翻译成英文en, to_language指待翻译文字的语言种类,默认是中文zh。该函数后台调用百度翻译接口。

参考技术A

我之前用过,质量还可以,三千条左右的内容,不到10分钟就OK了,我再校对一下就能用,挺好。谷歌翻译确实是所有机器翻译中质量最高的。

代码如下,放模块1里:

 Function URLEncodePlus(strURL)
'ANSI编码,空格处理成+号
    Dim i
    Dim tempStr
    For i = 1 To Len(strURL)
        If Asc(Mid(strURL, i, 1)) < 0 Then
            tempStr = "%" & Right(CStr(Hex(Asc(Mid(strURL, i, 1)))), 2)
            tempStr = "%" & Left(CStr(Hex(Asc(Mid(strURL, i, 1)))), Len(CStr(Hex(Asc(Mid(strURL, i, 1))))) - 2) & tempStr
            URLEncodePlus = URLEncodePlus & tempStr
        ElseIf (Asc(Mid(strURL, i, 1)) >= 65 And Asc(Mid(strURL, i, 1)) <= 90) Or _
                 (Asc(Mid(strURL, i, 1)) >= 97 And Asc(Mid(strURL, i, 1)) <= 122) Or _
                 (Asc(Mid(strURL, i, 1)) >= 48 And Asc(Mid(strURL, i, 1)) <= 57) Then
            URLEncodePlus = URLEncodePlus & Mid(strURL, i, 1)
        Else
            tempStr = Mid(strURL, i, 1)
            Select Case tempStr
            Case ".", "-", "~", "_"                                               '如果发现网站有其他不需要编码的字符,放在这里
                URLEncodePlus = URLEncodePlus & tempStr
            Case " "
                URLEncodePlus = URLEncodePlus & "+"
            Case Else
                URLEncodePlus = URLEncodePlus & "%" & Hex(Asc(tempStr))
            End Select
        End If
    Next
End Function
Public Function EnToCh(rng As Range)
    Dim xml
    Dim url$, EngSentence$
    Set xml = CreateObject("MSXML2.XMLHTTP")
    EngSentence = URLEncodePlus(rng.Text)
    url = "https://translate.google.cn/m?hl=en&sl=enN&tl=zh-CN&ie=UTF-8&prev=_m&q=" & EngSentence
    With xml
      .Open "GET", url, False
      .send
       If InStr(.responseText, "<div dir=""ltr"" class=""t0"">") > 0 Then
            EnToCh = Split(Split(.responseText, "<div dir=""ltr"" class=""t0"">")(1), "</div><")(0)
        End If
    End With
End Function

网上很难找到这个的,压箱底的宝贝,我调试通花了不少功夫。

追问

那个,老哥,我是小白,这个怎么使用呢

追答

建议你付费找别人弄吧。小白我绕道了,bye。

NextJS 谷歌翻译小部件

【中文标题】NextJS 谷歌翻译小部件【英文标题】:NextJS Google Translate Widget 【发布时间】:2021-02-28 22:15:36 【问题描述】:

我有一个 NextJS 应用程序,我想将 Google 自动翻译小部件添加到我的应用程序中。

所以做了一个这样的函数:

function googleTranslateElementInit() 
    if (!window['google']) 
        console.log('script added');
        var script = document.createElement('SCRIPT');
        script.src =
            '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
        document.getElementsByTagName('HEAD')[0].appendChild(script);
    

    setTimeout(() => 
        console.log('translation loaded');
        new window.google.translate.TranslateElement(
            
                pageLanguage: 'tr',
                includedLanguages: 'ar,en,es,jv,ko,pt,ru,zh-CN,tr',
                //layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
                //autoDisplay: false,
            ,
            'google_translate_element'
        );
    , 500);

我在useEffect() 中调用此函数,它会加载,但当我路由到另一个页面时,它会消失。 当我检查控制台时,我看到translation loaded 所以每次都会调用setTimeout 范围,即使我路由到另一个页面但翻译小部件没有出现,只有在我刷新页面时才会出现。

我该如何解决这个问题?

【问题讨论】:

谷歌翻译不是停止了吗? translate.google.com/intl/en/about/website 哦,看,这就是为什么我在谷歌文档上找不到任何有用信息的原因。感谢您提供的信息,我想我将配置 i18n,因为 Google 不是一个选项。 【参考方案1】:

感谢SILENT's 回复:Google no longer support this widget.

所以我要为 NextJS 配置 next-i18next,这是一个 i18n(具有动态 json 存储的轻量级翻译模块)。

另外,我认为这个小部件的问题是 Google 的 JS 代码将该小部件附加到 DOM 本身,因此它没有附加到 VirtualDOM,这就是为什么当我在应用程序中路由时,React 检查 VirtualDOM 并更新 DOM 本身所以小部件消失了,因为它不在 VirtualDOM 上。 (这只是猜测)

【讨论】:

以上是关于excel实现谷歌自动翻译的主要内容,如果未能解决你的问题,请参考以下文章

Excel翻译公式之谷歌翻译公式

Excel翻译公式之谷歌翻译公式

Excel翻译公式之谷歌翻译公式

Excel翻译公式之谷歌翻译公式

求助!请教VBA高手! 有没有哪位高手有编制过调用翻译软件实现在excel中,英文译成中文的?

自动检测用户 IP 地址的语言并选择谷歌翻译器