当我们想要为所有用户(使用不同语言)制作应用程序时,我们需要一种全球技术。
在C#中,我们使用ResourceManager来实现:
using System;
using System.Reflection;
using System.Resources;
public class Example
{
public static void Main()
{
// Retrieve the resource.
ResourceManager rm = new ResourceManager("ExampleResources" ,
typeof(Example).Assembly);
string greeting = rm.GetString("Greeting");
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine("{0} {1}!", greeting, name);
}
}
// The example produces output similar to the following:
// Enter your name: John
// Hello John!
这个程序集有两个或更多语言资源:
程序集
|--Assembly.en-us.resx
|--Assembly.zh-cn.resx
然后我们通过改变线程CultureInfo来改变资源以达到翻译的目的。
如果应用程序有很多dll(程序集)文件。
我想为应用程序拥有一个单一点(每种语言对应一个资源文件),
有没有好的解决方案来实现我的想法?
之前,我只是改变视图(例如Winform或UserControl)的 Language
来实现相应语言的不同UI。