我的应用程序尚未本地化,但我必须以不同语言打印报告。 所以,我认为我将为报告文本创建不同的资源,但是如何为所选语言设置特定资源。
与西班牙语一样,如何设置PrintResource.es-ES.resx。
我必须使用if..else..if
答案 0 :(得分:2)
除了确保在制作报告时使用正确的文化,您不应该做任何事情。
以下是一个例子:
然后在主Program.cs中粘贴以下代码:
using System;
using System.Globalization;
using System.Threading;
namespace ConsoleApplication18
{
class Program
{
static void Main()
{
Console.WriteLine(Strings.DisplayName);
Thread.CurrentThread.CurrentUICulture =
CultureInfo.GetCultureInfo("nb-NO");
Console.WriteLine(Strings.DisplayName);
}
}
}
执行此操作,您应该在控制台上看到“英语”,然后是“挪威语”。
从这个例子中可以看出,只要设置了正确的UI文化,就会读取正确的资源文件。
打印英文文本的代码和打印挪威文本的代码是相同的,但底层文化已经改变,因此它将使用不同的资源文件。
如果您不希望在生成报告后使用西班牙语UI覆盖应用程序的其余部分,只需启动报告代码的线程,并将该线程的UI文化仅设置为西班牙语。 .NET的资源子系统应该处理剩下的事情。
还要确保使用区分文化方法重载来格式化数字和日期。
此:
Console.WriteLine(string.Format(CultureInfo.CurrentUICulture, "{0}: {1}", Strings.DisplayName, 10.31));
可能会产生不同的文字:
Console.WriteLine(string.Format("{0}: {1}", Strings.DisplayName, 10.31));