iT邦幫忙

DAY 10
5

DotNetNuke的學習心得系列 第 6

[鐵人賽Day10]DotNetNuke模組的多國語系

DotNetNuke模組的多國語系設計其實就是利用Visual Studio在設計不同語系的軟體會使用到的resx資源檔,因此在設計DotNetNuke模組的時候,可以很容易的處理多國語言的問題。
延續前一篇的Hello DotNetNuke模組,在專案檔中加入App_LocalResources資料夾:

然後在App_LocalResources裡面新增View.ascx.resx和View.ascx.zh-TW.resx兩個資源檔:

在View.ascx.resx的資源檔中加入字串值,名稱為「Hello.Text」,值為「Hello」:

同樣的,在View.ascx.zh-TW.resx的資源檔中加入字串值,名稱為「Hello.Text」,值為「哈囉」:

接下來有兩個方法:

**方法1:**修改View.ascx檔案的內容,將Hello DotNetNuke!的Hello文字改成asp.net的Label控制項,並且在程式碼中透過DotNetNuke的Helper類別讀取資源檔內的文字。

修改View.ascx檔案的內容,修改後的內容如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="View.ascx.cs" Inherits="HelloDotNetNuke.View" %>

<asp:Label runat="server" ID="lblHello"></asp:Label> DotNetNuke!

在View.ascx.cs的Page_Load中加入

lblHello.Text = DotNetNuke.Services.Localization.Localization.GetString("Hello", LocalResourceFile);

方法2:修改View.ascx檔案的內容,將Hello DotNetNuke!的Hello文字改成DotNetNuke的Label控制項,並且設定ResourceKey屬性。

修改View.ascx檔案的內容,修改後的內容如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="View.ascx.cs" Inherits="HelloDotNetNuke.View" %>
<%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %>

<dnn:Label runat="server" ID="lblHello" ResourceKey="Hello" /> DotNetNuke!

接著將HelloDotNetNuke.dnn檔案的第3行version修改為01.00.01:

<package name="HelloDotNetNuke" type="Module" version="01.00.01">

接著同樣在HelloDotNetNuke.dnn檔案的第67行files節點裡面增加兩個file的節點內容:

<file>
  <path>App_LocalResources</path>
  <name>View.ascx.resx</name>
</file>
<file>
  <path>App_LocalResources</path>
  <name>View.ascx.zh-TW.resx</name>
</file>

最後再重新打包成Zip檔(參考前一篇),並安裝到DotNetNuke網站中就OK了。


(本文同步發表於泰克哪裡去部落格)

[鐵人賽Day1]DotNetNuke簡介
[鐵人賽Day2]DotNetNuke安裝前置作業
[鐵人賽Day3]DotNetNuke安裝-傳統方式安裝在IIS
[鐵人賽Day4]DotNetNuke安裝-透過Web PI安裝
[鐵人賽Day5]DotNetNuke安裝-使用Windows Azure Website
[鐵人賽Day6]DotNetNuke網站結構說明
[鐵人賽Day7]安裝DotNetNuke語系
[鐵人賽Day8]DotNetNuke-新增頁面與模組
[鐵人賽Day9]第一個DotNetNuke模組-Hello DotNetNuke
[鐵人賽Day11]安裝DotNetNuke專案範本
[鐵人賽Day12]DotNetNuke模組設計範本–SimpleModule(1)
[鐵人賽Day13]DotNetNuke模組設計範本–SimpleModule(2)
[鐵人賽Day14]DotNetNuke模組設計範本–SimpleModule(3)
[鐵人賽Day15]DotNetNuke模組設計範本–SimpleModule(4)
[鐵人賽Day16]DotNetNuke使用篇–會員帳號設定(User Account Settings)
[鐵人賽Day17]DotNetNuke使用篇–第三方帳號驗證
[鐵人賽Day18]DotNetNuke使用篇–管理使用者帳號、角色
[鐵人賽Day19]DotNetNuke使用篇–建立子網站
[鐵人賽Day20]DotNetNuke使用篇–內容多語系化
[鐵人賽Day21]DotNetNuke使用篇–Host設定介紹
[鐵人賽Day22]DotNetNuke使用篇–網站設定(Site Settings)介紹
[鐵人賽Day23]翻譯DotNetNuke–使用語言編輯器
[鐵人賽Day24]DotNetNuke的網頁選單(Menu)翻譯
[鐵人賽Day25]設定DotNetNuke的Email範本
[鐵人賽Day26]DotNetNuke寄送郵件功能介紹
[鐵人賽Day27]查看DotNetNuke的執行記錄–事件檢視器(Log Viewer)介紹
[鐵人賽Day28]維護DotNetNuke的清單列表(List)–在Profile中可以下拉選擇台灣的縣市
[鐵人賽Day29]DotNetNuke樣式設計–Skin和Container簡介
[鐵人賽Day30]尋找更多的DotNetNuke擴充套件(Module、Skin)


上一篇
[鐵人賽Day9]第一個DotNetNuke模組-Hello DotNetNuke
下一篇
[鐵人賽Day11]安裝DotNetNuke專案範本
系列文
DotNetNuke的學習心得27

2 則留言

0
kenny2061
iT邦新手 3 級 ‧ 2013-10-03 01:12:02

發現有一點點小錯誤驚,而且應該同一篇把兩種方式都寫在一起…暈修改後一併補上執行畫面供參考。謝謝

我要留言

立即登入留言