如何在ASP.NET中实现多语言支持

时间:2009-10-01 06:16:33

标签: asp.net localization internationalization multilingual

我想将我的asp.net应用程序国际化。这该怎么做?我必须遵循哪些步骤?

6 个答案:

答案 0 :(得分:4)

1。)如果使用数据库,则必须修改表。至少添加LCID列。

2.)在web.config中设置默认文化和UI文化

<system.web>
 <globalization culture="cs-CZ" uiCulture="cs-CZ"/>
</system.web>

3.)然后你可以在global.asax中设置实际的线程文化。 BeginRequest事件,或者在InitializeCulture方法

中的页面类的基类中
protected override void InitializeCulture()
    {
        string language = Request["lang"];
        if (!string.IsNullOrEmpty(language))
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(language);
            System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;
        }
        else
        {
            base.InitializeCulture();
        }        
    }
  1. 对于静态文本,您可以使用资源。例如。你创建Mytexts.resx你写默认语言(en-us)的文本然后你为英国英语创建Mytexts.en-UK.resx并覆盖与默认语言不同的文本。然后,您可以在页面中插入此字符串:
  2. <asp:Label runat="server" Text='<%$ Resources: Mytests,WelcomeMessage %>' />
    

    这只是从本地化开始的短暂步骤,但对于小页面/应用程序就足够了。

答案 1 :(得分:1)

您必须探索在Web应用程序中使用资源文件的主题。如果您需要基于数据库的本地化支持,您可以尝试westwind

中的优秀免费产品

MSDN中的本地化和全球化主题是您最好的选择。

答案 2 :(得分:1)

能够为您提供确切的步骤是一个非常大的问题,并且有几种不同的方法。

我们对最近的项目(简化)采取的方法是:

  1. 为每个国家/地区设置域名
  2. 为所有人创建资源文件 硬编码字符串(表单标签等) 对于每种文化(en-US,de-DE, FR-FR)
  3. 根据网站所在的域更改Thread.CurrentCulture 被访问 - 这意味着 所有数字格式,日期 格式将是正确的并使用 正确的本地化资源文件
  4. 希望这有帮助!

    See here for the Microsoft white papers on Internationalization

答案 3 :(得分:1)

只需创建一个将继承自Page类的基类,将此方法放在基页类中,并在每个aspx.cs页面中继承基页类,以实现全球化。

 protected override void InitializeCulture() 
{ 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    base.InitializeCulture(); 
}

在这个方法中设置你想要的任何文化,比如ar-sa for arabic ....

答案 4 :(得分:0)

请参阅此链接以创建本地化资源文件:http://msdn.microsoft.com/en-us/library/ms247246.aspx

基本上,您要为每个要支持的语言/文化创建新的资源文件。然后,在标记页面和文件后面的代码中按名称访问其中的字符串。

此外,这些资源文件需要位于项目的特定文件夹中: App_GlobalResources

  

全局资源文件必须位于App_GlobalResources文件夹中。如果你   尝试在。之外创建一个.resx文件   这个文件夹,Visual Web Developer   提示您在中创建它   文件夹中。

答案 5 :(得分:0)

这是一个复杂的主题,需要大量工作才能通过系统的所有层实现正确。

开始here

ASP.NET resx文件可让您轻松配置常量字符串,但您的数据库也需要支持unicode,并且您需要根据您希望支持的语言执行不同的操作。

祝你好运,并在遇到具体问题时提出问题。