做中文繁體的網(wǎng)站可以通過(guò)js語(yǔ)言包去做簡(jiǎn)體到繁體的切換,不用像中文轉(zhuǎn)英文怕用插件機(jī)翻讓人摸不著頭腦,下面介紹一下具體實(shí)現(xiàn)方法:
這里用的是Thinkphp框架
在通用控制器HomeController.class.php中 保存一個(gè)cookie 記錄當(dāng)前的語(yǔ)言,
<?php
function __construct() {
parent::__construct();
$zh_web_lang = array();
$lang = cookie('zh_web_lang');
//誰(shuí)放在前面,誰(shuí)為默認(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)語(yǔ)言
}
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去切換語(yǔ)言
<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í)需要分開(kāi)的,可以把上面的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)沒(méi)有轉(zhuǎn)譯,還是簡(jiǎn)體的情況,但是作為同種同源的字體大部分人還是能看懂。優(yōu)點(diǎn)就是不用做兩個(gè)后臺(tái)對(duì)資料進(jìn)行兩次輸入還是比較方便的,不像中文轉(zhuǎn)譯英文,后臺(tái)錄入比用插件好,最起碼意思不會(huì)亂,搞得別人看不懂。
1.下面是簡(jiǎn)體的效果:
2. 點(diǎn)擊切換效果:
- 切換頁(yè)面依然保持著繁體效果,以前介紹過(guò)通過(guò)谷歌插件中文切換英文也是通過(guò)js實(shí)現(xiàn)的,每次切換頁(yè)面都收從中文變成英文體驗(yàn)不好。還有一種通過(guò)接口去翻譯后臺(tái)輸出的每一句文字,可以解決這個(gè)問(wèn)題,比較麻煩。
- 轉(zhuǎn)英文具體可以:https://gtranslate.io/#pricing 可以在這里了解相關(guān)的介紹
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://m.oulysa.com/news/6078.html