在HTML模块中显示语言/文化代码

时间:2013-08-09 08:52:17

标签: dotnetnuke dotnetnuke-7

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

我的目标是将其传递到HTML模块内的iFrame URL,并沿着这些方向传递:

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

我已经尝试过几件事来了解如何(或者甚至 if )这是可能的:

  • Google搜索"DotNetNuke 7 language token in html module"等查询。这导致了许多较旧的页面,最好的一个是a page提到了许多令牌,但其中没有一个是我需要的。

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

  • 只是简单地尝试一些事情,比如[Language:culture],但这会产生错误:

      

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

  • 完成所有设置后,尝试找到任何方法让模块以某种方式响应所选语言。我发现的唯一的东西是(有希望的)“模块文化”设置,我期望它是有用的(仅在某种文化中显示模块对我的用例就足够了)。但是,这个设置......

    setting in DNN

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

有人能告诉我,是否有办法在社区版中采取这些措施?或者我是否必须制作自己的模块或使用涉及javascript和诸如此类的黑客?

1 个答案:

答案 0 :(得分:2)

初步说明:

  • 默认页面是中性的,但在启用多语言门户后,您的页面文化将更改为默认语言,您可以在页面设置中检查(看起来像模块的屏幕截图)
  • 页面内的所有模块都与其页面具有相同的文化。
  • 因此,如果您的模块文化是中立的,则表示您的页面处于中立状态,这意味着您未启用多语言。

你必须:

  1. 启用DNN多语言选项:
    • 主机&gt;主机设置&gt;其他设置&gt;允许内容本地化
  2. 设置默认语言(以后不可更改),并为门户网站创建所需的语言列表。
    • admin&gt;语言
  3. 让您的网站为多种语言做好准备。 (不可撤销)
    • 此撤销操作将使用您的语言列表中的每种语言,使用您的默认语言(非中性语言)从您的页面复制所有页面及其模块。这意味着在此之后,您将获得每种语言的每个页面/模块的副本。它们可能具有完全不同的内容/设置但它们只是相关在一起(被认为是相同的东西,但是使用不同的语言),因此用户可以更改语言并以其他语言查看正确的页面。请注意,不同语言的这些页面与默认页面不同,因此它们具有单独的tabid。 所以不需要语言令牌每种语言的每个页面都有一个单独的模块副本。
    • admin&gt;语言&gt;启用本地化内容
  4. 每个副本都需要先发布,否则只能由翻译人员/角色(而非公开)显示,因此您必须将复制的模块和页面标记为逐个翻译。当然,在翻译和升级其内容和设置之后。
    • 为了便于翻译,标记和管理不同语言的链接页面之间的模块关系,我建议您使用http://dnncltools.codeplex.com/,使用此工具可以更轻松地使用不同语言的相同模块,而不是使用其副本。 / LI>
  5. 因此,如果您在多个页面上创建模块,那么现在您真的需要一个能够像您要求的那样使用多种语言的模块。对于HTML模块,请使用http://nuntiocontent.codeplex.com/
  6. 将所有标记为已翻译后,您必须发布它们,这样他们才能获得正常的查看权限。
    • admin&gt;语言&gt;在每个语言行前面发布图标