5

我不太瞭解DNN中的本地化過程。問題是,你如何本地化一個新的模塊?DNN中的模塊本地化

是否有可能包括與單獨的每個模塊本地化文件?你可以想出什麼解決方案?

回答

4

本地化的模塊是很容易由於DotNetNuke的。

無論您的.ascx(查看)文件,App_LocalResources文件夾應始終伴隨着它,在同一水平上。該文件夾中還應該有一個對應的.ascx.resx文件。

view.ascx 
App_LocalResources 
- view.ascx.resx 

一旦你在你的模塊中有這樣的結構。 DNN會立即選取文件。

要使用資源字符串的RESX。將ResourceKey屬性簡單粘貼到您的asp控件的末尾。例如

<asp:Label ID="lblExample" runat="server" ResourceKey="lblExample" /> 

您的resx文件中應該有一個lblExample.Text,該文件與該標籤相匹配。請注意,它會自動添加.Text

如果它沒有顯示出來,有幾件事情來檢查代碼

  1. LocalResourceFile財產。它指向哪個位置?
  2. 在web.config中設置ShowMissingKeys=true,你會看到你錯過了什麼資源字符串。
+1

我還想補充一點,你可以使用'DotNetNuke.Entities.Modules.LocalizeString(「YourKeyName.Text」)'將一個本地化的資源引入你的代碼。當你想要一段本地化文本但不想使用控件時,這對於代碼塊中的ASCX端也很有用。例如:'<%= LocalizeString(「YourKeyName.Text」)%>' – lukejkw 2016-02-23 13:06:45

1

請找this document。我不確定它是否涵蓋了您的問題以及本地化DotNetNuke模塊與其他Asp.Net應用程序的區別,但請嘗試一下。
如果我可能會提出一些建議,我會在將來添加更多標籤(例如C#),它可以被更廣泛的受衆看到,這可能會產生更好的答案。

+0

我已經檢查過,沒有發現任何有用的情況。感謝您的回答。 – Manoochehr 2011-05-04 12:28:50

0

只需在與項目中的.ascx視圖文件相同的級別上創建一個名爲「App_LocalResources」的文件夾。對於每個需要本地化的文件,只需添加一個與視圖名稱相同的.resx文件(包括.ascx擴展名)即可。

RESX名稱示例:

「View.ascx.resx」

使用localistion是以後很容易。只需將你想從您的resx文件拉至一個有意義的名字

例取其控制資源主要特性:

<dnn:Label id="lblName" ResourceKey="lblName" runat="server" /> 

RESX文件:

「lblName.Text」將分配給如果您使用的是dnn,則標籤 的「文本」屬性將被分配給DNN工具提示屬性:如上所示的標籤

如果要開始使用DNN標籤,只需將該標籤放在頁面的頂部。

<%@ Register TagPrefix="dnn" Assembly="DotNetNuke.Web" Namespace="DotNetNuke.Web.UI.WebControls" %> 
<%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %> 

另一個方便的使用方法是:

LocalizeString("key") 

它將從您的資源文件,並與喜歡的東西電子郵件模板工作時,會非常方便。