为多种语言制作网站的最佳方式

我使用( Asp.net,c# )建立了一个网站,其内容是英文的 。 现在我要求以支持多种语言的方式建立这个网站,即( 德语,法语 )。 Lable / Textbox / string所有值将显示各自选定的语言在搜索时我发现有一些方法

  • 使用本地化
  • 使用资源文件。
  • 数据库(每个东西都保存在不同语言的数据库中)。

坦率地说,我不同意第三种选择。

我想知道哪种方式最好或者还有其他更好的方法吗?

注意:当前网站是使用.NET framework 4.0 / vs 2010构建的

谢谢

RESX:

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

http://dreamdotnet.blogspot.com/2007/01/tutorial-translating-aspnet-web.html

您可以将resx文件用于多种语言,并使用ResXResourceWrite进行更新(如果您希望用户能够更新文件: http : //msdn.microsoft.com/en-us/library/system.resources。 resxresourcewriter.aspx )

如果您希望能够翻译数据库中的内容(例如,如果您的产品存储在数据库中,并且您希望产品的描述也是多语言的),则此解决方案仅适用于静态内容。 在这种情况下,您需要更改DB Scheme以支持多语言内容。

PS你可以使用GetLocalResourceObject("key")来检索值而不使用Web控件。

如果您正在使用MVC,请参阅以下问题: 如何本地化ASP.NET MVC应用程序?

我使用资源文件添加global.asax完成的示例代码

  void Application_BeginRequest(Object sender, EventArgs e) { // Code that runs on application startup HttpCookie cookie = HttpContext.Current.Request.Cookies["CultureInfo"]; if (cookie != null && cookie.Value != null) { System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cookie.Value); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cookie.Value); } else { System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en"); } } 

博客文章: 如何在Asp.net中创建多语言网站C#

对于动态内容,第三方插件或添加诸如Google翻译之类的东西会这样做;

http://translate.google.com/translate_tools

仅供参考; 谷歌Chrome已内置自动翻译,Chrome的受欢迎程度正在快速增长…哇想象一个网络,无论你使用哪种语言访问所有内容,这不是那个,但我会分享我的想法