国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

PHP通過js做簡(jiǎn)體和繁體切換

發(fā)表日期:2021-06-21 17:59:02   作者來源:劉紅旺   瀏覽:2719   標(biāo)簽:簡(jiǎn)繁體切換    
做中文繁體的網(wǎng)站可以通過js語言包去做簡(jiǎn)體到繁體的切換,不用像中文轉(zhuǎn)英文怕用插件機(jī)翻讓人摸不著頭腦,下面介紹一下具體實(shí)現(xiàn)方法:
這里用的是Thinkphp框架
在通用控制器HomeController.class.php中 保存一個(gè)cookie 記錄當(dāng)前的語言,
<?php
function __construct() {
    parent::__construct();
    $zh_web_lang = array();
    $lang = cookie('zh_web_lang');
    //誰放在前面,誰為默認(rèn)的顯示。
    if ($lang == "jianti") {
        $zh_web_lang['hreflang'] = "s";
        $zh_web_lang['atuolang'] = "t";
        $zh_web_lang['lang'] = "fanti";
        $zh_web_lang['html'] = "簡(jiǎn)體中文";
    } else {
        $zh_web_lang['hreflang'] = "t";
        $zh_web_lang['atuolang'] = "s";
        $zh_web_lang['lang'] = "jianti";
        $zh_web_lang['html'] = "繁體中文";
    }
    $this->assign('zh_web_lang', $zh_web_lang); //輸出默認(rèn)語言
}
 
2創(chuàng)建一個(gè)方法用于切換cookie
 
<?php
public function trunlang() {
    if (IS_POST) {
        $lang = cookie('zh_web_lang');
        if ($lang == "jianti") {
            cookie('zh_web_lang', 'fanti');
        } else {
            cookie('zh_web_lang', 'jianti');
        }
    } else {
        $this->redirect('Index/index');
    }
}
 
 
3. 在前端文件中用js去切換語言
<a href="javascript:zh_lang('{$zh_web_lang.hreflang}');" id="zh_lang"
   data-lang="{$zh_web_lang.lang}">{$zh_web_lang.html}
</a>
<script type="text/javascript" src="/Public/js/lang.js?v=2"></script>
<script type="text/javascript">
    // 簡(jiǎn)體繁體中文切換
    function zh_lang(go) {
        $.ajax({ url: "{:U('Index/trunlang')}",
            type: "POST",
            cache: false,
            success: function () {
                var tran_a = $('#zh_lang');
                if (tran_a.attr("data-lang") == "fanti") {
                    // 轉(zhuǎn)換成簡(jiǎn)體
                    tran_a.attr("href", "javascript:zh_lang('t');");
                    tran_a.attr("data-lang", 'jianti');
                    tran_a.html('繁體中文');
                } else {
                    // 轉(zhuǎn)換成繁體
                    tran_a.attr("href", "javascript:zh_lang('s');");
                    tran_a.attr("data-lang", 'fanti');
                    tran_a.html('簡(jiǎn)體中文');
                }
                zh_tran(go);
            }
        });
    }
    window.onload = $(function () {
        zh_tran("{$zh_web_lang.atuolang}");
    });
</script>
 
上面的引入的js文件如下
https://github.com/Irrelon/jquery-lang-js
 
如果簡(jiǎn)體和繁體的切換標(biāo)識(shí)需要分開的,可以把上面的a標(biāo)簽修改成下面的即可
 
<li class="{:$zh_web_lang['atuolang']=='s'?'on':''}">
    <a
    <if condition="$zh_web_lang['atuolang'] eq 't'">href="javascript:zh_lang('{$zh_web_lang.hreflang}','j');"</if>
    class="zh_lang" data-lang="{$zh_web_lang.lang}">{$Think.lang.Zh-cn}</a>
</li>
<li class="{:$zh_web_lang['atuolang']=='t'?'on':''}">
    <a
    <if condition="$zh_web_lang['atuolang'] eq 's'">href="javascript:zh_lang('{$zh_web_lang.hreflang}','f');"</if>
    class="zh_lang" data-lang="{$zh_web_lang.lang}">{$Think.lang.Tw-cn}</a>
</li>
 
 
這樣就能實(shí)現(xiàn)全站文字簡(jiǎn)體轉(zhuǎn)成繁體,缺點(diǎn)就是圖上的文字要單獨(dú)切成文字,不能做成和圖片一體的,還有就是個(gè)別文字會(huì)出現(xiàn)沒有轉(zhuǎn)譯,還是簡(jiǎn)體的情況,但是作為同種同源的字體大部分人還是能看懂。優(yōu)點(diǎn)就是不用做兩個(gè)后臺(tái)對(duì)資料進(jìn)行兩次輸入還是比較方便的,不像中文轉(zhuǎn)譯英文,后臺(tái)錄入比用插件好,最起碼意思不會(huì)亂,搞得別人看不懂。

1.下面是簡(jiǎn)體的效果:

網(wǎng)站導(dǎo)航設(shè)計(jì)1

2. 點(diǎn)擊切換效果:

網(wǎng)站導(dǎo)航設(shè)計(jì)2

  • 切換頁面依然保持著繁體效果,以前介紹過通過谷歌插件中文切換英文也是通過js實(shí)現(xiàn)的,每次切換頁面都收從中文變成英文體驗(yàn)不好。還有一種通過接口去翻譯后臺(tái)輸出的每一句文字,可以解決這個(gè)問題,比較麻煩。

網(wǎng)站導(dǎo)航設(shè)計(jì)3

  • 轉(zhuǎn)英文具體可以:https://gtranslate.io/#pricing 可以在這里了解相關(guān)的介紹

網(wǎng)站功能費(fèi)用

如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自http://pdcharm.com/news/6078.html
介休市| 道真| 右玉县| 项城市| 天长市| 靖州| 镇宁| 山西省| 钟祥市| 泸定县| 鸡泽县| 芜湖县| 江永县| 紫金县| 林周县| 旅游| 固始县| 高安市| 方城县| 永泰县| 武夷山市| 曲靖市| 湖南省| 方城县| 香河县| 旬阳县| 文登市| 临汾市| 娄底市| 河东区| 宁远县| 文化| 宣汉县| 赤峰市| 邵阳市| 买车| 锡林浩特市| 天台县| 沾化县| 原阳县| 广汉市|