## 多語言
在CMS內容管理系統中前臺支持多語言切換,默認的模板是未使用多語言,如果我們在開發過程中需要使用到多語言展示,可以按以下方法進行修改。
### 語言包文件
~~~bash
addons/cms/lang/zh-cn.php
addons/cms/lang/en.php
...
~~~
### 模板標簽
我在們開發修改CMS模板標簽時可以使用多語言模板標簽來自動輸出相應的文字,例如:
~~~bash
<a href="/">{:__('Home')}</a>
<a href="/">{:__('This is %s,base on %s', 'FastAdmin', 'ThinkPHP5')}</a>
~~~
此時我們需要在對應的多語言文件定義語言包,例如:
~~~php
<?php
return [
? ?'Home' ? ? ? ? ? ? ? ? ? ? ? ? ? ? => '首頁',
? ?'This is %s,base on %s' ? ? ? ? ? ?=> '這是%s,基于%s'
];
~~~
則在中文語言環境下展示效果為
~~~xml
<a href="/">首頁</a>
<a href="/">這是FastAdmin,基于ThinkPHP5</a>
~~~
如果未定義語言包,默認會展示為
~~~xml
<a href="/">Home</a>
<a href="/">This is FastAdmin,base on ThinkPHP5</a>
~~~
### 切換多語言
當我們有多個語言世時,如果需要在前臺切換多語言,我們可以通過以下幾種方式進行切換
#### URL參數切換
我們可以通過傳遞`lang`參數來強制使用指定語言包,例如
~~~javascript
http://yoursite.com/cms/?lang=en
http://yoursite.com/cms/?lang=zh-cn
~~~
#### Cookie變量切換
很多時候我們切換一次多語言后,后續請求的頁面也需要保持切換后的指定語言來顯示,此時我們就需要使用到`cookie`來存儲語言標識。
我們可以通過在PHP中或JS操作`think_var`這個`cookie`值來切換多語言。
~~~javascript
//php
setcookie('think_var', 'en');
//js
function setCookie(name,value,seconds) {
? ?var expires = "";
? ?if (seconds) {
? ? ? ?var date = new Date();
? ? ? ?date.setTime(date.getTime() + (seconds*1000));
? ? ? ?expires = "; expires=" + date.toUTCString();
? ?}
? ?document.cookie = name + "=" + (value || "") ?+ expires + "; path=/";
}
setCookie('think_var', 'en');
~~~
### 常見問題
1. 語言包定義是不區分大小寫的
2. 默認多語言會自適應用戶當前的瀏覽環境,如果需要關閉自適應,請修改`application/config.php`中的`lang_switch_on`修改為`false`
- 概述
- 安裝
- 配置
- 模板
- 標簽
- 全局標簽
- 文檔/文檔列表
- 專題/專題列表
- 欄目/欄目列表
- 公共參數
- 單頁/單頁列表
- 特殊標簽
- 欄目列表頁
- 分頁標簽
- 自定義字段
- ThinkPHP5標簽
- 自定義表單數據列表
- 自定義過濾條件
- 用戶信息
- 模板目錄
- API
- 小程序
- 控制器
- Archives.php
- Base.php
- Common.php
- Index.php
- My.php
- User.php
- 準備工作
- 導入項目
- 修改配置
- 測試數據
- 多語言
- 常見問題
- Uniapp版
- 1.準備工作
- 1.HbuilderX安裝
- 2.Hbuilder 插件安裝
- 2.導入項目
- 3.運行項目
- 1.運行前的配置
- 2.運行為H5
- 3.運行為微信小程序
- 4.運行為APP
- 4.項目發布
- 1.發布H5端
- 2.發布微信小程序
- 3.發布APP
- 5.登錄配置
- 6.常見問題
- 1.關于自定義導航欄切換閃爍問題
- 2.關于后臺移動端樣式預覽問題
- 3.關于支付配置的問題
- 4.前端跨域的問題
- 5.關于各端內容分享的問題
- 6.關于簽到問題
- 7.關于公眾號授權登錄問題
- 8.關于底部導航的追加或刪除問題
- 9.運行微信小程序,進入微信小程序客戶端后,沒有底部菜單
- 10.關于首頁焦點圖的修改
- 11.關于發布小程序代碼大小超出的問題
- 12.前端顯示空白或白屏或提示網絡請求錯誤的問題
- 13.關于如何在非tabbar配置頁面顯示tabbar導航
- 14.關于更換資訊頁為主頁的問題
- 15.關于更新1.4.4版本分包問題
- 16.Tabbar底部高亮顯示問題
- 17.微信小程序獲取手機號失敗
- 18.微信小程序從頁面側滑返回或按鍵返回時Tabbar丟失的問題
- 19.Tabbar底部不支持外部鏈接的修復方法
- API文檔
- 公共接口(Common)
- 文檔接口(Archives)
- 評論接口(Comment)
- 自定義表單(Diyform)
- 短信驗證碼(Sms)
- 郵箱驗證碼(Ems)
- 登錄/注冊(Login)
- 我的接口(My)
- 搜索文檔(Search)
- 標簽文檔(Tag)
- 日志中心(TheLogs)
- 會員中心(User)
- 專題接口(Special)
- 功能解說
- 自動內鏈
- 自定義表單
- 區塊管理
- 欄目管理
- 模型管理
- 偽靜態
- Sitemap
- 安全更新