使用ASP.Net实现多语言网站

6
我正在使用ASP.Net实现一个多语言网站。需要支持的语言为英语、法语和阿拉伯语(从右到左)。请注意,阿拉伯语是从右到左排版的。实现多语言支持的最佳方法是什么?我计划使用.Net本地化功能,但网站文本存储在数据库中。对于控件(表单控件),我可以使用resx文件。我需要构建两个不同的页面(LTR和RTL各一个)吗?还是可以使用一个ASPx文件来展示所有三种语言?
我想了解一些在实现这些Web应用程序时的最佳实践。
谢谢您的帮助,
Abdel Olakara
1个回答

3

多语言的第一个问题: 只需创建一个继承自Page类的basepage类,将此方法放入basepage类中,并在每个aspx.cs页面中继承basepage类即可实现全球化。

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
我同意这个答案。但我的问题是,我应该把阿拉伯语、法语和英语文本存储在哪里?我的意思是,什么是最好的方法? - Abdel Raoof Olakara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接