Tim*_*ung 9 c# asp.net multilingual internationalization
我正在开发一个多语言网站,并想知道存储用户选择的语言的最佳方式是什么?
可以通过QueryString,还是应该在Session ..或任何其他选项?
在任何其他答案中未提及的另一个考虑因素是Search Engine Friendliness.如果您为每种语言使用不同的网址,例如
http://{en|cy}.example.com/subdir/ or http://example.com/{en|cy}/subdir) 然后搜索引擎可以用多种语言索引您的网站.
我认为这很大程度上取决于您的应用程序如何处理(希望处理)用户语言。如果您的用户必须登录到您的网站,那么您可能有一个帐户设置页面,后面有适当的用户配置文件对象或类似的内容。在这种情况下,我想您会将这些设置保存在数据库上,当用户返回您的站点时,您会以某种方式获取用户信息(即从 cookie 中),然后从数据库加载您的用户配置文件对象。这些信息将保存在会话中,因为我认为这最适合这种情况。如果你的用户不需要登录,所以你基本上无法直接识别他们,我会将语言设置存储在 cookie 中。这为您的用户带来了这样的价值:当他稍后回来时,他总是会找到以其首选语言显示的网站(假设他没有删除 cookie 并且 cookie 的生命周期足够长)。作为第三种可能性,您可以根据用户的默认浏览器设置(就像上面提到的“正则表达式”一样)来识别用户的语言。
正如我所说,这实际上取决于您的应用程序的需求。但你必须记住的是
再见