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

C# 英语桌面C.net应用程序中的阿拉伯语本地化,c#,.net,localization,arabic,C#,.net,Localization,Arabic,我正在建设一个企业C.net应用程序,要求将有阿拉伯语和英语版本都。客户提供了2个选项,可以将英语和阿拉伯语一起书写标签和说明,也可以在开始时放置一个组合框,选择英语和阿拉伯语并继续使用该语言。 我想节省我的时间,我想我可以只建立一个英语版本和阿拉伯语必须自动翻译 提前感谢。您可以使用两个资源文件,一个是英文,一个是阿拉伯文,当您选择语言时,应用程序会选择要使用的资源文件。首先,您不需要选择任何内容,如果有人在其操作系统中设置了阿拉伯文语言环境,则该文件已被选中。若要检测需要此信息时使用的语言,

我正在建设一个企业C.net应用程序,要求将有阿拉伯语和英语版本都。客户提供了2个选项,可以将英语和阿拉伯语一起书写标签和说明,也可以在开始时放置一个组合框,选择英语和阿拉伯语并继续使用该语言。 我想节省我的时间,我想我可以只建立一个英语版本和阿拉伯语必须自动翻译


提前感谢。

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

首先,您不需要选择任何内容,如果有人在其操作系统中设置了阿拉伯文语言环境,则该文件已被选中。若要检测需要此信息时使用的语言,通常不需要,只需读取System.Globalization.CultureInfo.CurrentUICulture属性即可

然而,在WinForms中,您实际上可以使用内置的本地化支持。为此,您需要将FormLocalizable属性切换为true。假设提供了阿拉伯语字符串,则在完成英语布局并将翻译放置在适当位置后,需要将表单的语言属性从默认值切换为阿拉伯语。这是最简单的方法。在使用阿拉伯语时,还需要将表单的RightToLeft属性切换为Yes,将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);
}

这是一个高级功能…

如何使用它,我可以下载它吗?您可以添加一个资源文件并编辑它Visual studio的模板是否有任何选项可以自动转换所有标签并将其翻译为阿拉伯语?您需要的是一匹小马。嗯,机械土耳其人。本地化在.NET中得到了很好的支持,但是您没有给出任何关于您使用哪种GUI的提示。Silverlight、ASP.NET、Winforms、WPF,这些都很重要。你也不能忽略阿拉伯语是从右到左呈现的。你说的桌面是指标准的WinForms,对吗?