我使用(Asp.net,c#)和它的英文内容制作了一个网站。现在我需要以支持多种语言的方式制作这个网站,即(德语,法语)。标签/文本框/字符串所有值都将显示各自选择的语言在搜索时我知道有一些方法,比如
- 使用本地化
- 使用资源文件。
- 数据库(每件事都保存在不同语言的数据库中)。
坦率地说,我不同意第三种选择。
我想知道哪个是最好的方式,还是有其他更好的方式?
注意:当前网站是使用.NET framework 4.0/ vs 2010 构建的。
谢谢
我使用(Asp.net,c#)和它的英文内容制作了一个网站。现在我需要以支持多种语言的方式制作这个网站,即(德语,法语)。标签/文本框/字符串所有值都将显示各自选择的语言在搜索时我知道有一些方法,比如
坦率地说,我不同意第三种选择。
我想知道哪个是最好的方式,还是有其他更好的方式?
注意:当前网站是使用.NET framework 4.0/ vs 2010 构建的。
谢谢
回复:
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");
}
}
对于动态内容,第三方插件或添加诸如谷歌翻译之类的东西就可以了;
http://translate.google.com/translate_tools
供参考; 谷歌浏览器内置了自动翻译功能,Chrome 的受欢迎程度正在快速增长......哇,想象一下一个网络,无论您使用哪种语言,您都可以访问所有内容,但我想分享我的想法