英语桌面C#.net应用程序中的阿拉伯语本地化

时间:2011-08-09 10:50:17

标签: c# .net localization arabic

我正在构建一个企业C#.net应用程序,要求是将有阿拉伯语和英语版本。客户可以选择2个选项,可以将英语和阿拉伯语一起用于标签和说明,也可以将开始使用英语和阿拉伯语的组合框选择并继续使用该语言。 我想节省我的时间,并希望我能够建立一个英文版本,阿拉伯语必须自动翻译。

提前致谢。

2 个答案:

答案 0 :(得分:6)

首先,您不需要选择任何内容,如果有人在他/她的操作系统中设置了阿拉伯语区域设置,则会选择它。要检测使用的语言(如果您需要此信息,通常不要这样做),您只需阅读System.Globalization.CultureInfo.CurrentUICulture属性。

但是,在WinForms中,您实际上可以使用内置的Localization支持。为此,您需要将Form Localizable属性切换为true。假设您提供了阿拉伯字符串,则需要在之后将表格的Language属性从(默认)切换为阿拉伯语,以完成英语布局并将翻译放在适当的位置。这是最简单的方法。在使用阿拉伯语时,您还需要将表格的RightToLeft属性切换为是,将RightToLeftLayout切换为True。 如果您正确执行此操作,您将看到该表单已镜像。这种情况,不要惊慌。

更糟糕的是,您偶尔需要显示消息框。这里的问题是,根据您使用的语言类型,您实际上需要以不同的方式执行此操作,因为阿拉伯语(和其他RTL语言)要求使用RTLReading常量:

if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft)
{
    MessageBox.Show(text, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
}
else
{
    MessageBox.Show(text, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
}

这是在高层......

答案 1 :(得分:4)

您可以使用2个资源文件,一个使用英语,一个使用阿拉伯语,当您选择语言时,应用程序会选择要使用的资源文件。