纸壳CMS可视化建站系统搭建多语言网站
紙殼CMS是可視化建站系統(tǒng),現(xiàn)已經(jīng)從架構(gòu)上支持多語言。但是多語言功能默認(rèn)是沒有開啟的。您可以從設(shè)置中開啟多語言,或者隨時關(guān)閉它,您可以隨時進(jìn)行切換。
開啟多語言
如果您沒有在系統(tǒng)設(shè)置中看到多語言設(shè)置菜單,首先先確認(rèn)一下您的登錄角色是否有多語言設(shè)置的權(quán)限:
添加權(quán)限后就可以看到多語言設(shè)置的菜單了
勾選是否啟用?選項來啟用多語言功能:
設(shè)置說明
多語言模式
單域名模式,即所有的語言都使用同一個域名訪問,不同的語言使用不同的"Culture Code"來區(qū)分。如 ~/cn, ~/tw ~/us 等
獨立域名模式,在這種模式下,不同語言可以使用不同的域名來訪問,這需要站點綁定多個域名,并在多語言中設(shè)置域名和語言的關(guān)系。在獨立域名模式下,管理員依然可以在登錄后臺的情況下,使用“單域名模式”來訪問頁面內(nèi)容,這樣方便在同一個域名下添加不同語言的內(nèi)容。
無內(nèi)容時使用默認(rèn)語言,如果啟用這項設(shè)置,即表示,當(dāng)用戶在訪問一個不存在的語言的頁面時,會給用戶呈現(xiàn)默認(rèn)語言下的頁面內(nèi)容。例如,如果只創(chuàng)建了中文頁面 ~/cn/zkeacms,那當(dāng)用戶訪問了~/us/zkeacms時,將不會看到404,而是~/cn/zkeacms下的頁面內(nèi)容。
默認(rèn)語言,即系統(tǒng)的默認(rèn)語言,登陸后端時系統(tǒng)使用的就是默認(rèn)語言,用戶在創(chuàng)建內(nèi)容時,也優(yōu)先創(chuàng)建默認(rèn)語言的內(nèi)容。在獨立域名模式下,當(dāng)用戶訪問的地址不帶有"Culture Code"時,自動跳轉(zhuǎn)到對應(yīng)的默認(rèn)語言頁面。
例如將默認(rèn)語言設(shè)成英語時,后端界面會變成英文:
設(shè)置語種
紙殼CMS不限制語種,即您可以自由的添加、刪除想要的語種。紙殼CMS中,默認(rèn)初始化了34種語言,并啟用了其中比較常用的17種。您可以在“多語言菜單”設(shè)置它 [/admin/Culture],例如以下是中文的設(shè)置:
其中,狀態(tài)即表示是否啟用該語言。域名,即在獨立域名模式下,用于綁定該域名使用這個語言顯示。
編輯多語言內(nèi)容
在啟用了多語言設(shè)置以后,就可以開始添加多語言內(nèi)容了,以頁面為例,在頁面的屬性頁面,您可以看到已啟用的語言選項:
如果您在創(chuàng)建、編輯內(nèi)容時,希望將當(dāng)前語言內(nèi)容復(fù)制到其它語言下,那么保存內(nèi)容前勾選對應(yīng)的語言即可:
在編輯內(nèi)容時,點擊語言旗幟即可創(chuàng)建該語言內(nèi)容,并自動將默認(rèn)語言的內(nèi)容帶出來。
刪除語言內(nèi)容
您可以刪除除了默認(rèn)語言以外的其它所有語言的內(nèi)容,切換到對應(yīng)的語言,點擊工具欄上的刪除即可。如果您刪除默認(rèn)語言,那么將會同時刪除其它所有語言的內(nèi)容。
切換頁面語言
如果您的頁面已經(jīng)創(chuàng)建了多語言,在頁面的設(shè)計頁面,可隨時切換來編輯:
支持多語言內(nèi)容的模塊
對于呈現(xiàn)給前端用戶的所有需要多語言的模塊都支持,例如:
頁面
導(dǎo)航
文章
產(chǎn)品
自定義表單
自定義內(nèi)容
通用翻譯
在紙殼CMS中,有些不支持多語言內(nèi)容的,可以使用通用翻譯功能(系統(tǒng)設(shè)置》翻譯)來進(jìn)行多語言翻譯,例如后端的菜單:
在Razor視圖中,可以直接使用@L("文章管理")來獲取多語言內(nèi)容,如果是在其它代碼中,可以使用ILocalize.Get("")來獲取翻譯內(nèi)容。
Razor:
<div class="panel panel-default">
<div class="panel-heading">
@L("新建")
</div>
<div class="panel-body">
@using (Html.BeginForm())
{
@Html.EditorForModel()
<div class="toolBar">
@if (Authorizer.Authorize(PermissionKeys.ManageApplicationSetting))
{
<input type="submit" class="btn btn-primary" value="@L("保存")" data-value="@ActionType.Create" />
}
<input type="button" class="btn btn-default cancel" value="@L("取消")" />
</div>
}
</div>
</div>
代碼(Controller,Service...)中:
private readonly ILocalize _localize;
public ArticleService(IApplicationContext applicationContext, ILocalize localize, CMSDbContext dbContext)
: base(applicationContext, dbContext)
{
_localize.Get("Url已存在");
}
這樣程序在運行的時候,會跟據(jù)實際的多語言設(shè)置來返回翻譯內(nèi)容,如果沒有對應(yīng)的翻譯,則會直接返回原值。
原文地址:http://www.zkea.net/codesnippet/detail/zkeacms-multi-language.html
Github:https://github.com/SeriaWei/ZKEACMS.Core
Demo:
http://demo.zkea.net/cn/index
http://demo.zkea.net/tw/index
http://demo.zkea.net/us/index
總結(jié)
以上是生活随笔為你收集整理的纸壳CMS可视化建站系统搭建多语言网站的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于电脑(window)后门查看的一些总
- 下一篇: 新买的睡衣要洗吗