通过CodeBehind本地化DNN站点

时间:2009-10-31 21:40:23

标签: code-behind dotnetnuke multilingual

我有一个带有两个不同别名的门户网站,一个用于eache语言:   - en.mysite.com   - it.mysite.com

现在我的问题是第一个门户网站上有英语,第二个门户网站上有意大利语。

我所做的是在Page_Load的default.vb.aspx中添加以下行:

如果Request.Url.Host =“en.mysite.com”那么                     System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(“en-GB”)                 ElseIf Request.Url.Host =“it.mysite.com”然后                     System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(“it-IT”)                 其他                     System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(“en-GB”)                 结束如果

部分有效,LOCALE变量设置正确,但我注意到了:

  • 语言的组合框未正确设置
  • html标签不会更改,它始终保留门户网站的默认语言,在我的情况下是it-IT
  • 本地化模块不运行,例如使用Locopon更改每种语言的TabName不起作用。

我认为以前的问题与同样的事情有关,但我不知道如何解决它

感谢

1 个答案:

答案 0 :(得分:0)

您必须通过重写InitializeCulture()来比Page_Load更早地设置它。这使得与其他事物交互时有点棘手(例如,如果您想从表单控件中设置它,则需要直接访问请求)。这是基础知识:

http://msdn.microsoft.com/en-us/library/bz9tc508.aspx