利用第三方翻译API翻译整个网站

您所在的位置:网站首页 results中文翻译 利用第三方翻译API翻译整个网站

利用第三方翻译API翻译整个网站

2023-04-06 22:15| 来源: 网络整理| 查看: 265

利⽤第三⽅翻译API翻译整个⽹站

最新⼀个项⽬需要全站翻译,但是有没有做国际化。改起来⽐较⿇烦。所以就想有没有什么好的⽅法可以直接翻译整个⽹站。

思路:

利⽤第三⽅翻译A

PI

,把⽹页中所有的中⽂发过去,拿到返回值之后把所有中⽂替换成英⽂。

1 百度翻译开发平台注册

2 怎么使⽤

直接上代码吧,注释也还算清晰。

    

    

测试

        

橘⼦

    

    

    

测试

    

零⾷

    

⽔果

    

上班

    

    

    

        transformLanguage('en');

        function transformLanguage(newLanguage) {

            // 

获取所有

dom

元素中⽂

            let transformStr = '';

            // 

获取所有

dom

元素

            function getChildDom(dom, type, data = {}) {

                if(type == 'read') {

                    [...dom.children].forEach(v => {

                        // 

判断中⽂

                        // /^[\u0391-\uFFE5]+$/

                        let re= /[\u4e00-\u9fa5]/g;

                        // 

防⽌某些标签有内容并且有标签

 

,或者有空格

 

                        let vHtml = $(v).contents().filter(function (index, content) {return content.nodeType === 3}).text().trim();

                        // 

跳过

script

标签

                        if (re.test(vHtml) && v.tagName != 'SCRIPT') {

                            transformStr += `${vHtml},`

                        }

                        // 

递归获取元素

                        getChildDom(v, type, data);

                    })

                }else {

                    let transOld = data.trans_result[0].src.split(',');

                    let transNew = data.trans_result[0].dst.split(',');

                    [...dom.children].forEach(v => {

                        // 

判断中⽂

                        // /^[\u0391-\uFFE5]+$/

                        let re= /[\u4e00-\u9fa5]/g;

                        let vHtml = $(v).contents().filter(function (index, content) {return content.nodeType === 3}).text().trim();

                        // 

跳过

script

标签

                        if (re.test(vHtml) && v.tagName != 'SCRIPT') {

                            // 

防⽌标签⾥⾯还有标签,所以只替换⾥⾯的

html,

使⽤

replace

                            $(v).html(

                                $(v).html().replace(

                                transOld[transOld.findIndex(arrList => arrList == vHtml)]

                                ,

                                transNew[transOld.findIndex(arrList => arrList == vHtml)]

                                )



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3