FineUIPro中如何支持多語言(全局資源文件和本地資源文件)

一個客戶在郵件中問到了FineUIPro的多語言實現問題,其實 FineUIPro 並無對此作特殊處理,所以直接使用 ASP.NET 原生支持的資源文件就能實現。

下面咱們就以FineUIPro的空項目爲例,利用 ASP.NET 全局資源文件和本地資源文件來實現多語言切換。

最終的英文版顯示效果:


修改 Web.config 的配置項:web

<system.web>
<globalization uiCulture="zh-CN"/>
</system.web>

 


如今刷新頁面,就切換到了中文版:


是否是很簡單,怎麼來作的呢?

下面咱們綜合使用全局資源文件和本地資源文件來實現上述效果。

全局資源文件
網站根目錄新建全局資源文件目錄 App_GlobalResources,而後分別添加中文和英文的資源文件:


中文資源文件(GlobalResource.zh-CN.resx):


英文資源文件(GlobalResource.resx):


在頁面上,有兩種使用方式:
1. 普通的文本:服務器

<title><%= Resources.GlobalResource.Title %></title>

 

2. 服務器控件:工具

<f:MenuButton Text="<%$ Resources:GlobalResource, UserProfile %>" IconFont="_User" EnablePostBack="false" runat="server">
        <Listeners>
                <f:Listener Event="click" Handler="onUserProfileClick" />
        </Listeners>
</f:MenuButton>

 



本地資源文件
本地資源文件對應於每一個單獨的頁面,能夠有效的防止全局資源文件過大的問題。

首先在根目錄建立 App_LocalResources 文件夾,而後打開一個頁面 index.aspx ,找到 VS 工具欄菜單項:



注:若是找不到這個菜單項,能夠先切換到設計視圖。
生成的目錄結構:



中文資源文件(index.aspx.zh-CN.resx):


英文資源文件(index.aspx.resx):


在頁面上,一樣有兩種使用方式:
1. 普通的文本:網站

<Content>
        <%= GetLocalResourceObject("Content") %>
</Content>

 


2. 服務器控件:ui

<f:Tab ID="Tab1" Title="<%$ Resources:DefaultPage %>" BodyPadding="10px" AutoScroll="true" Icon="House" runat="server">
        <Content>
                ...
        </Content>
</f:Tab>

 


小結
最後,咱們看下支持多語言的index.aspx和原來的頁面代碼對比:
spa



源碼下載
請到知識星球下載支持多語言的空項目源代碼:https://fineui.com/fans/設計

相關文章
相關標籤/搜索