0

所以我有一个使用两种不同语言的网站,我已经将它设置为从基于 CurrentUICulture 的资源文件中提取文本。

我有两个链接按钮,用户可以单击它们在英语和俄语之间切换。

例子:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");

这可以很好地切换语言。但我希望当前语言以某种方式反映在当前 URL 中,以用于书签目的或发送指向特定语言页面的链接。就像这些例子中的一个:

  • www.mysite.com/contact/index.aspx?lang=ru
  • www.ru.mysite.com/index.aspx
  • www.mysite.com/ru/contact.aspx(虽然这个目录实际上并不存在)

我也想知道如何在两种不同的语言之间最好地分离谷歌分析数据。

4

2 回答 2

0

在 url 中传递语言参数,并在InitializeCulture中解析该参数以设置CurrentUICulture. 您可以对语言参数使用查询字符串或路由。

除了 url,您还可以使用其他状态管理选项作为后备来决定语言。但是,能够使用 url 重置状态通常是件好事。

对于 ASP.NET 中的“切换语言”按钮,您可以使用:

  • <asp:Hyperlink>, 使用 NavigateUrl 中的语言参数
  • <asp:LinkButton>,在事件处理程序中使用 Response.Redirect

也可以看看:

在 ASP.net 中处理多语言站点中 URL 的最佳方法

于 2011-06-16T15:52:55.507 回答
0

我建议使用 HttpModule 来读取此参数。您是否考虑过将其也存储在用户的持久 cookie 中?

看到这个链接 -

使用 HttpModule 进行本地化是否安全?

于 2011-06-16T15:39:33.323 回答