如何使用 Google Translate-API 翻译 JS 中的整个页面文本内容

How to translate whole page text content in JS with Google Translate-API

我有一个网页。它有这么多的文本数据。如何使用 Google Translate-API?

翻译所有文本数据

我尝试了一些代码并进行了开发,但它只更改了特定的文本,或者一次性更改了整个文本并打印了一次。

这是我尝试开发的代码,但没有成功。


    <body>
            <p id="textField">You can translate the content of this page by selecting a language in the select box.</p>
            <h1 id="title">My Web Page</h1>
            <p >Hello everybody!</p>
            <p>Translate this page:</p>
            <form>
                <select id="targetLanguage">
                    <option value="ZH">Chinese (Mandarin)</option>
                    <option value="CS">Czech</option>
                    <option value="DA">Danish</option>
                    <option value="NL">Dutch</option>
                    <option value="EN">English</option>
                    <option value="ET">Estonian</option>
                    <option value="TR" selected = "selected">French</option>
                </select>

                <input type="button" id="translateButton" value="Translate" />
            </form>

            <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
            <script type="text/javascript">

                $("#translateButton").click(function () {

                    var url = "https://translation.googleapis.com/language/translate/v2";
                    //Strings requiring translation
                    url += "?q=" + escape($("#textField").text());
                    url += "&q=" + escape($("#title").text());
                    //Target language
                    url += "&target=" + $("#targetLanguage").val();
                    //Replace with your API key
                    url += "&key=AIzaSyBm6-QqyT7_OcJp03BIPZhgfp-xB0GxOb0";
                    console.log(url);
                    $.get(url, function (data, status) {
                        //Results are returned in an array following the order they were passed. 
                        $("#textField").text(data.data.translations[0].translatedText);
                        $("#title").text(data.data.translations[1].translatedText);
                    });       
                });
            </script>  
        </body>

我想翻译整个页面,但页面不应损坏。它 运行 喜欢 Google-在页面上翻译。

我认为使用 google 翻译的下拉菜单而不是您创建的表单可能更简单。然后,您可以将下拉菜单的选项限制为您要包含的语言。为此,您可以将 included languages 添加到函数中,就像我在下面的代码中所做的那样。我使用了你原来的语言。如果您想更改下拉菜单中提供的语言,只需将该语言的特定缩写添加到包含的语言列表中即可。

All the abbreviations for languages with google translate

一旦我将代码切换为仅使用 google 翻译下拉菜单,页面上的所有文本都已翻译。

<!DOCTYPE html>
            <html lang="en-US">
            <body>

            <p id="textField">You can translate the content of this page by selecting a language in the select box.</p>

            <h1 id="title">My Web Page</h1>

            <p>Hello everybody!</p>

            <p>Translate this page:</p>

            <div id="google_translate_element"></div>

            <script type="text/javascript">
            function googleTranslateElementInit() {
              new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'zh-CN,cs,da,nl,en,et,fr'}, 'google_translate_element');
            }

            </script>

            <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>


            </body>
            </html>