我想将我的asp.net应用程序国际化。这该怎么做?我必须遵循哪些步骤?
答案 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();
}
}
<asp:Label runat="server" Text='<%$ Resources: Mytests,WelcomeMessage %>' />
这只是从本地化开始的短暂步骤,但对于小页面/应用程序就足够了。
答案 1 :(得分:1)
您必须探索在Web应用程序中使用资源文件的主题。如果您需要基于数据库的本地化支持,您可以尝试westwind
中的优秀免费产品MSDN中的本地化和全球化主题是您最好的选择。
答案 2 :(得分:1)
能够为您提供确切的步骤是一个非常大的问题,并且有几种不同的方法。
我们对最近的项目(简化)采取的方法是:
希望这有帮助!
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,并且您需要根据您希望支持的语言执行不同的操作。
祝你好运,并在遇到具体问题时提出问题。