0

有没有办法使用 DotNetNuke 7 的社区版在 HTML 模块中使用或呈现文化代码(例如“en-US”或“fr-FR”)?

我的目标是将其传递到 HTML 模块内的 iFrame URL 中,如下所示:

<iframe src="http://www.awesome.com?language=[Language:Culture]" />

我已经尝试了几件事来找出如何(或者即使这是可能的:

  • 谷歌搜索诸如“HTML 模块中的 DotNetNuke 7 语言标记”之类的查询。这会导致许多旧页面,最好的页面是提到许多令牌但其中一个不是我需要的页面。

  • 浏览 DotNetNuke 的源代码(特别是TokenReplace.cs)。这暗示根本没有[Language:...]可用的令牌。

  • 只是简单的尝试,比如[Language:culture],但这会产生错误:

    访问 [语言:文化] 时出错,语言是未知数据源。

  • 通过所有设置,试图找到任何方法使模块以某种方式响应所选语言。我发现的唯一一件事是(有希望的)“模块文化”设置,我希望它很有用(仅在某种文化中显示模块对我的用例来说就足够了)。不过,这个设定...

    DNN 中的设置

    ...不是您可以设置的。也许这是因为 HTML 模块根本不支持与文化的交互?

谁能告诉我是否有办法在社区版中按照这些方式做一些事情?还是我必须制作自己的模块或诉诸涉及 javascript 之类的黑客攻击?

4

1 回答 1

2

初始说明:

  • 默认页面是中性的,但启用多语言门户后,您的页面文化将更改为默认语言,您可以在页面设置中检查(看起来像您的模块截图)
  • 页面内的所有模块都具有与其页面相同的文化。
  • 所以如果你的模块的文化是中性的,这意味着你的页面是中性的,这意味着你没有启用多语言。

你必须:

  1. 在以下位置启用 DNN 多语言选项:
    • 主机 > 主机设置 > 其他设置 > 允许内容本地化
  2. 设置默认语言(以后不可更改)并列出您想要用于门户的语言。
    • 管理 > 语言
  3. 让您的网站为多种语言做好准备。(不可撤销)
    • 此可撤消操作将为您的语言列表中的每种语言使用您的默认语言(不是中性语言)从您的页面复制所有页面及其模块。这意味着在此之后,您将拥有每种语言的每个页面/模块的副本。它们可能具有完全不同的内容/设置,但它们只是相关联(被视为同一事物,但使用不同的语言),因此用户可以更改语言并查看其他语言的正确页面。请注意,这些不同语言的页面与其默认页面不同,因此它们有单独的 tabid。所以不需要语言标记每种语言的每个页面都有一个单独的模块副本。
    • 管理 > 语言 > 启用本地化内容
  4. 每个副本都需要首先发布,否则它仅对翻译组/角色可见(并且它不公开),因此您必须将复制的模块和页面标记为逐个翻译。当然是在翻译和升级其内容和设置之后。
    • 为了更轻松地翻译和标记和管理不同语言的链接页面之间的模块关系,我建议您使用http://dnncltools.codeplex.com/,使用此工具更容易跨不同语言使用相同的模块,而不是使用它的副本.
  5. 因此,如果您使模块可跨多个页面使用,那么现在您确实需要一个能够像您要求的那样使用多种语言的模块。对于 HTML 模块,请使用http://nuntiocontent.codeplex.com/
  6. 将所有内容标记为已翻译后,您必须发布它们,以便它们获得正常查看权限。
    • 管理 > 语言 > 每个语言行前面的发布图标
于 2013-10-08T22:49:32.427 回答