:-: 自定義語言
## 語言功能基礎使用
在任意想要使用的地方
**示例1:默認語言或用戶選擇后語言 用語言別名輸出**
```
echo L('username'); //輸出語言別名 用戶名
echo L('username',null,'item'); //輸出語言語言配置 請輸入你的賬號
```
**示例2:默認語言或用戶選擇后語言 用語言名稱輸出**
```
echo L('用戶名'); //輸出語言別名 用戶名
echo L('用戶名',null,'請輸入你的賬號); //輸出語言語言配置 請輸入你的賬號
```
**示例3:用指定語言做模板**
在開發中,如果用語言別名對于英文差的,很容易腦殼疼,可以用這種這種方式避免。
比如我們熟悉的簡體中文做模板語言
```
echo L('提交','zh-Hans','提交表單'); //輸出結果為 提交表單,如果默認語言更換為英文就會顯示 submit Form
echo L('提交','zh-Hans'); //輸出結果為 提交,如果默認語言更換為英文就會顯示 submit
```
**示例3:鎖定語言**
默認不鎖定 其他值為鎖定; 鎖定后只能顯示指定語言(除非輸出為空默認語言替代)
```
echo L('提交','zh-Hans',null,2); //輸出 提交 不管怎么切換默認語言還是 用戶設置語言都顯示指定的語言
//或
echo L('submit','zh-Hans',null,2); //輸出 提交 不管怎么切換默認語言還是 用戶設置語言都顯示指定的語言
```
## 開發使用
**定義用戶選擇后的語言**
```
$_SESSION['LANG']['lang']='en'; //將會輸出語言為英文
```
**拓展開發(語言緩存與輸出)**
讀取指定的語言信息(如果語言沒緩存則自動緩存)
```
app::Lang('zh-Hans'); //輸出為改語言的數組
```
# :-: 機翻語言
使用示例:
1.在想要顯示的位置添加 語言選項
```
<select ui-jq="chosen" class="input-sm form-control" onchange="window.location = this.value;" style="width: 160px;height: 10px;">
<?php
foreach (DB('sys_language_google')->where("status='1'")->order('sort asc')->select() as $res) {
if ($_GET['glang'] == null && $res['lang'] == 'zh-CN' && $_COOKIE['googtrans']==null) {
$selected = 'selected';
} else if ($res['lang'] == $_GET['glang'] || $_COOKIE['googtrans']=='/zh-CN/'.$res['lang']) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="?glang=' . $res['lang'] . '" ' . $selected . '><img src="/public/min/area/CN.png" height="16" alt="中國">' . $res['name'] . '</option>';
}
?>
</select>
```
2.在底部增加JS控制
注意1:為了方便測試,正式對外使用時請采用 `//translate.google.com/`
注意2:需引入JQ與jquery.cookie.js
注意3:下面的`.cmspro.cn`改成你的頂級域名,不管使用在哪個子域名都需要填寫頂級域名
```
<style>
/*解決底部拉伸的問題,注意需要同時一起移除頂部的翻譯狀態欄,否則狀態欄會把第一行內容遮住*/
body{
top:0px!important;
min-height: 0px!important;
}
/*去除頂部的當前翻譯狀態欄,建議不要移出,或者通過dom+屬性覆蓋+cookie的方式自行實現翻譯狀態的管理*/
.goog-te-banner-frame{
display:none
}
/*去除翻譯后鼠標移到正文的hover顯示*/
.goog-tooltip {
display: none !important;
}
.goog-tooltip:hover {
display: none !important;
}
.goog-text-highlight {
background-color: transparent !important;
border: none !important;
box-shadow: none !important;
}
</style>
<script>
var index = layer.load(1, {
shade: [1, '#fff'] //0.1透明度的白色背景
});
setTimeout(function () {
layer.close(index);
}, 800);
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'zh-CN',
//這個是你需要翻譯的語言,比如你只需要翻譯成越南和英語,這里就只寫en,vi
includedLanguages: 'en,vi,zh-TW,zh-CN,ar,az,ga,et,be,bg,is,pl,fa,af,da,de,ru,fr,tl,fi,ka,gu,ht,ko,nl,gl,ca,cs,hr,la,lv,lt,ro,mt,ms,mk,bn,no,pt,ja,sv,sr,eo,sk,sl,sw,th,tr,cy,uk,iw,el,eu,es,hu,hy,it,yi,hi,kn,te,ta,ur,id,mg,ml,mn,mr,uz,my,ne,bs,sd,se,si,sn,so,gd,sq,kk,st,km,co,ky,pa,tg',
autoDisplay: false,
gaTrack: true,
layout: google.translate.TranslateElement.InlineLayout.SIMPLE
}, 'google_translate_element');
}
</script>
<?php
//判斷瀏覽器語言 非中文用com
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
if (!preg_match("/zh/i", $lang)) {
echo '<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>';
} else {
echo '<script src="//translate.google.cn/translate_a/element.js?cb=googleTranslateElementInit"></script>';
}
?>
```
3.程序處理寫入新的語言
注意:以下為PHP代碼,一般放到統一的頂部或者入口文件
```
//自定義翻譯語言,原始語言 翻譯成對應語言
if ($_GET['glang'] != 'zh-CN') {
setcookie("googtrans", "/zh-CN/{$_GET['glang']}");
}
//清除COOKIE
if ($_GET['glang'] != null) {
$google_lang = '/zh-CN/' . $_GET['glang'];
if ($google_lang != $_COOKIE['googtrans'] && $_COOKIE['googtrans'] != null) {
?>
<script src="/public/min/kindeditor/lib/jquery.min.js"></script>
<script src="/public/min/js/jquery.cookie.js"></script>
<script>
jQuery.removeCookie('googtrans', {path: '/'});
jQuery.removeCookie('googtrans', {domain: '.cmspro.cn'}); //注意是頂級域名
window.location.reload();
</script>
<?php
exit;
}
}
```
- 關于CMSPRO
- 安裝使用
- 首次使用
- 功能使用
- 系統后臺
- 系統
- 系統配置
- 開發使用
- 基礎學習
- php如何修改文件創建時間
- 類方法
- 系統框架
- 系統入口框架
- URL處理
- 自動附加封裝類、函數入口
- 內置應用
- GET與POST
- 字符控制
- 多語言使用
- 數據庫使用
- 頁面跳轉
- 數組控制
- 時間相關
- 文件操作
- 獲取系統設置的應用目錄
- IP獲取與解析
- 數據分頁
- 內置插件
- 短信發送
- 信息模板
- 消息操作
- 消息操作(舊)
- 資金操作
- 優惠券
- 積分操作
- 服務器接口
- 寶塔接口
- 域名接口
- 西部數據
- whois查詢
- 事件管理器
- 規則管理器
- 電子郵件
- 常用代碼
- 數據獲取與分頁
- 模型自動構建表單
- 排版布局
- 常用樣式
- 編輯表單
- tab選項卡
- JS相關
- 插件
- 鉤子
- 高級進階
- 消息和模板組合使用
- API接口
- 充值支付
- 積分充值兌換
- 短信驗證碼
- 郵箱驗證碼
- 微信消息模板
- 獲取貨幣信息
- 獲取積分信息
- 商品操作
- 信息反饋
- LayIM相關
- 自定義一級URL
- 自定義功能
- 用戶中心
- 網站管理
- 模板引擎v2
- 基礎學習
- 變量輸出
- 使用函數
- 運算符
- 原樣輸出
- 模板注釋
- 模板繼承
- 包含文件
- 內置標簽
- 循環標簽
- 比較標簽
- 條件判斷
- 資源文件加載
- 標簽嵌套
- 原生PHP
- 定義標簽
- 功能應用
- 站點統計
- 數據列表
- 單條數據
- 功能動作
- 賬戶資金
- 賬戶積分
- 網站導航
- 從零使用
- 結構了解
- 基礎工作
- 模板引擎v1
- 模板標簽
- 導航菜單
- 獲取數據列表
- 獲取單條數據
- 廣告以及連接
- if判斷
- 判斷是否登錄
- 判斷系統變量
- 自定義判斷
- 常規判斷
- 模板表單
- 高級使用
- 前后分離v1
- 通用
- 支付
- 積分
- 論壇
- 下載
- 微信
- 云服務SDK開發
- 通用請求