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

本文关键字:最佳 方式 网站 语言 | 更新日期: 2023-09-27 18:33:49

我用Asp.net,c#)及其英文内容制作了一个网站。现在我要求以支持多种语言的方式制作这个网站,即(德语,法语)。标签/文本框/字符串所有值将显示各自的所选语言在搜索时,我开始知道有一些方法,例如

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

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

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

注意:当前网站是使用 .NET 框架 4.0/与 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)

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

附言您可以使用 GetLocalResourceObject("key") 在不使用 Web 控件的情况下检索值。

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

我使用资源文件完成的示例代码 添加全局.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");
            }
        }

对于动态内容,第三方插件或添加诸如Google翻译之类的东西就可以了;

http://translate.google.com/translate_tools

仅供参考;谷歌浏览器内置了自动翻译功能,Chrome的受欢迎程度正在快速增长......哇,想象一个网络,无论使用哪种语言,您都可以访问所有内容,但事实并非如此,但我会分享我的想法