使用百度API翻译接口将网页翻译成英文

ECMSPLUS | 2021-01-29 |

摘要:HTML将网页内容翻译成英文,或者更多语言
<!doctype html><head> <meta charset="utf-8" /> <title>网页翻译测试</title></head><body><p>基于PHP和MySQL技术开发</p>...

HTML

将网页内容翻译成英文,或者更多语言GuDECMSPLUS
 
<!doctype html>
<head>
    <meta charset="utf-8" />
    <title>网页翻译测试</title>
</head>
<body>
<p>基于PHP和MySQL技术开发</p>
<p>可同时使用于Windows、Linux、Unix平台,环境需求如下</p>
<p>1、Windows 平台:<br>
  IIS/Apache + PHP4/PHP5 + MySQL3/4/5<br>
  如果在windows环境中使用,建议用DedeCMS提供的DedeAMPZ套件以达到最佳使用性能。</p>
<p>2、Linux/Unix 平台<br>
  Apache + PHP4/PHP5 + MySQL3/4/5 (PHP必须在非安全模式下运行)<br>
  建议使用平台:Linux + Apache2.2 + PHP5.2 + MySQL5.0</p>
<p>3、PHP必须环境或启用的系统函数: allow_url_fopen<br>
  GD扩展库<br>
  MySQL扩展库<br>
  系统函数 —— phpinfo、dir</p>



    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/blueimp-md5/2.17.0/js/md5.js"></script>
    <script type="text/javascript">
        function transformLanguage(newLanguage) {
            // 获取所有dom元素中文
            var transformStr = '';
            var temp_index = 0;
            // 获取所有dom元素
            function getChildDom(dom, type, data = {}) {
                if(type == 'read') {
                    [...dom.children].forEach(v => {
                        // 判断中文
                        // /^[\u0391-\uFFE5]+$/
                        var re= /[\u4e00-\u9fa5]/g;
                        // 防止某些标签有内容并且有标签 ,或者有空格 
                        var vHtml = $(v).contents().filter(function (index, content) {return content.nodeType === 3}).text().trim();
                        // 跳过script标签
                        if (re.test(vHtml) && v.tagName != 'SCRIPT') {
                            // 使用\n换行拼接、接口将返回数组
                            transformStr += `${vHtml}\n`
                        }
                        // 递归获取元素
                        getChildDom(v, type, data);
                    })
                }else {
                    [...dom.children].forEach(v => {
                        // 判断中文
                        // /^[\u0391-\uFFE5]+$/
                        var re= /[\u4e00-\u9fa5]/g;
                        var vHtml = $(v).contents().filter(function (index, content) {return content.nodeType === 3}).text().trim();
                        // 跳过script标签
                        if (re.test(vHtml) && v.tagName != 'SCRIPT') {
                            if((data[temp_index] || null) != null)
                            {
                                var transOld = data[temp_index]['src'];
                                var transNew = data[temp_index]['dst'];
                                // 防止标签里面还有标签,所以只替换里面的html,使用replace
                                $(v).html(
                                    $(v).html().replace( transOld, transNew)
                                )
                                temp_index++;
                            }
                        }
                        // 递归获取元素
                        getChildDom(v, type, data);
                    })
                }
            }
            getChildDom(document,'read');

            if((transformStr || null) != null)
            {
                getTranslateData();
                // 获取翻译
                // 接口申请地址 https://api.fanyi.baidu.com/
                function getTranslateData() {
                    var appid = '...';   // 百度翻译API的appid
                    var key = '...';   // 百度翻译API的key
                    var salt = (new Date).getTime();
                    var query = transformStr;
                    var from = 'zh';
                    var to = newLanguage;
                    var str1 = appid + query + salt + key;
                    var sign = md5(str1);
                    $.ajax({
                        url: 'baidu.php',
                        type: 'post',
                        dataType: 'json',
                        data: {
                            q: query,
                            appid: appid,
                            salt: salt,
                            from: from,
                            to: to,
                            sign: sign
                        },
                        success: function(data) {
                            data.trans_result && getChildDom(document,'write',data.trans_result);
                        }
                    });
                }
            }
        }

        // 页面加载完成再执行
        window.onload = function () {
            transformLanguage('en');
        };
    </script>
</body>

 PHP代码

<?php

/**
 * curl
 * @author  Devil
 * @blog    http://gong.gg/
 * @version 1.0.0
 * @date    2020-08-31
 * @desc    description
 * @param   [type]          $url     [description]
 * @param   [type]          $post    [description]
 * @param   boolean         $is_json [description]
 */
function CurlPost($url, $post, $is_json = false)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    curl_setopt($ch, CURLOPT_URL, $url);

    // 是否 json
    if($is_json)
    {
        $data_string = json_encode($post);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                "Content-Type: application/json; charset=utf-8",
                "Content-Length: " . strlen($data_string)
            )
        );
    } else {
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                "Content-Type: application/x-www-form-urlencoded",
                "cache-control: no-cache"
            )
        );
    }

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

echo CurlPost('http://api.fanyi.baidu.com/api/trans/vip/translate', $_POST);

免责/版权声明:

本篇文章给大家谈谈使用百度API翻译接口将网页翻译成英文以及其它CMS对应的知识,感谢你花时间阅读本站内容,希望对各位有所帮助,你也可以查看更多关于其它CMS的信息。

1、所有来源标注为 ECMSPLUS/zwcms.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可,如涉及大面积转载,请来信告知,获取授权。

2、本站所提供的文章资讯、软件资源、素材源码等内容均为作者提供、网友推荐、互联网整理而来(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考,如有侵犯您的版权,请联系我们,本站将在三个工作日内改正。

3、若您的网站或机构从本站获取的一切资源进行商业使用,除来源为本站的资料需与本站协商外,其他资源请自行联系版权所有人。

4、 ECMSPLUS/zwcms.com不保证资源的准确性、安全性和完整性,请您在阅读、下载及使用过程中自行确认,本站亦不承担上述资源对您或您的网站造成的任何形式的损失或伤害

5、未经 ECMSPLUS/zwcms.com允许,不得盗链、盗用本站资源;不得复制或仿造本网站,不得在非 ECMSPLUS/zwcms.com所属的服务器上建立镜像, ECMSPLUS/zwcms.com对其自行开发的或和他人共同开发的所有内容、技术手段和服务拥有全部知识产权,任何人不得侵害或破坏,也不得擅自使用。

6、互联网的本质是自由与分享,我们真诚的希望,每一份有价值的正能量能够在互联网中自由传播,能够为每一个网站提供动力。

标签:
精品源码
  • 二维码种子溯源系统,一物一码防伪验证查询(单用户版) 支持定制开发

    惊爆价¥1500.00

    立即购买
    二维码种子溯源系统,一物一码防伪验证查询(单用户版) 支持定制开发
  • 帝国cms7.5精仿企业信息综合门户《莞商网》(原创)

    惊爆价¥1500.00

    立即购买
    帝国cms7.5精仿企业信息综合门户《莞商网》(原创)
  • 厂房网,厂房出租,厂房出售,仓库出租,园区招商商铺厂房网整站源码

    惊爆价¥1999.00

    立即购买
    厂房网,厂房出租,厂房出售,仓库出租,园区招商商铺厂房网整站源码
看点推荐
精选文章

站长交流群

互联网站长技术交流群
共同学习,共同进步,共同成长!

QQ交流群

推荐文章

EmpireCMS(帝国CMS) 最新版(v7.5)已知漏洞汇总

帝国第三方登陆:微信内部登陆+扫码登陆2.0安装说明与使用方法

帝国cms百度Webupload批量上传组件,支持前台投稿

帝国cms通过用灵动标签的SQL语句查询来调用栏目导航

帝国cms图片集字段morepic分割,自定义图片集显示

帝国cms 技巧整理笔记,持续更新中

帝国cms 技巧整理笔记:常用变量,COOKIE获取和系统模板

最新文章

热门标签

关注我们

微信扫一扫,关注更多精彩

  • 公众号
    全面掌握源码一手资讯

  • 服务号
    精彩活动,推送提醒

垂询热线:18680688182

商务合作:0769-8700 9090
文章投稿: