Localization DNN中的模块本地化

Localization DNN中的模块本地化,localization,internationalization,dotnetnuke,dotnetnuke-module,Localization,Internationalization,Dotnetnuke,Dotnetnuke Module,我不太了解DNN的本地化过程。问题是如何本地化新模块 是否可以在每个模块中单独包含本地化文件?您能想出什么解决方案?请查找。我不确定它是否涵盖了您的问题以及本地化DotNetNuke模块与其他Asp.Net应用程序的不同之处,但请尝试一下。 如果我可以提出一些建议,我会在将来添加更多的标签(例如C#),它将对更广泛的受众可见,从而得到更好的答案。多亏了DotNetNuke,模块的本地化非常容易 无论.ascx(视图)文件位于何处,App_LocalResources文件夹都应始终在同一级别随附。

我不太了解DNN的本地化过程。问题是如何本地化新模块

是否可以在每个模块中单独包含本地化文件?您能想出什么解决方案?

请查找。我不确定它是否涵盖了您的问题以及本地化DotNetNuke模块与其他Asp.Net应用程序的不同之处,但请尝试一下。

如果我可以提出一些建议,我会在将来添加更多的标签(例如C#),它将对更广泛的受众可见,从而得到更好的答案。

多亏了DotNetNuke,模块的本地化非常容易

无论.ascx(视图)文件位于何处,App_LocalResources文件夹都应始终在同一级别随附。该文件夹中还应有相应的.ascx.resx文件

view.ascx
App_LocalResources
- view.ascx.resx
一旦你在你的模块中有了这个结构。DNN将立即提取该文件

在resx中使用该资源字符串。简单地将ResourceKey属性添加到asp控件的末尾。e、 g

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

您的resx文件中应该有一个与该标签匹配的
lblExample.Text
。请注意,它会自动向其中添加
.Text

如果它没有出现,有一些事情需要检查

  • 代码中的
    LocalResourceFile
    属性。它指向什么位置?
  • 在web.config中设置
    ShowMissingKeys=true
    ,您将看到缺少哪些资源字符串

  • 只需在与项目中的.ascx视图文件相同的级别上创建一个名为“App\u LocalResources”的文件夹。对于每个要本地化的文件,只需添加一个与视图同名的.resx文件(包括.ascx扩展名)

    Resx名称示例:

    “View.ascx.resx”

    在那之后,使用localistion真的很容易。只需将要从resx文件中提取的任何控件的Resource Key属性设置为有意义的名称

    例如:

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

    它将从您的资源文件中提取,在处理电子邮件模板之类的东西时非常方便。

    我已经检查过了,但没有发现任何有用的东西。感谢您的回答。我还想补充一点,您可以使用
    DotNetNuke.Entities.Modules.LocalizeString(“YourKeyName.Text”)
    将本地化资源引入到您的代码中。当您想要一段本地化文本但不想使用控件时,这在代码块中的ASCX端也很有用。示例:
    <%@ Register TagPrefix="dnn" Assembly="DotNetNuke.Web" Namespace="DotNetNuke.Web.UI.WebControls" %>
    <%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %>
    
    LocalizeString("key")