2010-05-08 96 views
6

我正在使用ASP.Net实现多语言网站。这些语言是英语,法语和阿拉伯语。请注意,阿拉伯语的方向是RTL。实施多语言支持的最佳方式是什么?我打算使用.Net本地化功能,但网站文本存储在数据库中。对于控件(表单控件),我可以使用resx文件。我是否需要构建两个不同的页面(一个用于LTR,另一个用于RTL)?或者我可以为这三种语言提供一个ASPx文件吗?使用ASP.Net实现多语言网站

我想听听一些实现这些Web应用程序的最佳实践。

由于提前,
阿卜杜勒Olakara

回答

3

多语言的第一个问题: 简单地做出将从页面类继承的BasePage类,把这种方法在BasePage类和你的每一个ASPX继承BasePage类.cs页面实现全球化。

protected override void InitializeCulture() 
{ 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); //'en-US' these values are may be in your session and you can use those 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");//'en-US' these values are may be in your session and you can use those 
    base.InitializeCulture(); 
} 

RTL和LTR的第二个问题: 在你的母版有主DIV如..

<div runat="Server" id="divPageDirection"> 
</div> 

你需要改变方向,把这个在您的网页加载

divPageDirection.Attributes.Add("dir", "rtl");//rtl or ltr you will decide on which language is in your current session 

如果您有任何问题,请让我知道...

+1

我可能会去加载一个不同的阿拉伯样式表。您可能需要调整其他各种布局。 – Thorarin 2010-05-08 09:31:48

+0

@Thorarin ...是的,你是对的..我需要加载另一个CSS文件... – 2010-05-11 07:21:30

+0

我同意这个答案..但我的问题是..我在哪里存储阿拉伯文,法文和英文文本?我的意思是,最好的方法是什么? – 2010-05-11 07:22:46