已经建立了strings.zh-cn.resx和strings.en-us.resx
我在程序启动的时候强行设置
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");
然后在页面类中
protected ResourceManager LocRM = new ResourceManager("Cms.strings", Assembly.GetExecutingAssembly());
Response.Write(LocRM.GetString("LoginName"));
Response.Write(Thread.CurrentThread.CurrentCulture.Name);
显示当前语言是en-us,但是LoginName却老是我在strings.zh-cn.resx中的用户名:而不是LoginName
请教一下,是否我哪个地方忘记了什么?

解决方案 »

  1.   

    例如,假定某个程序集在基名称为 "MyResources" 的资源文件中有几个资源。这些资源文件的名称将为 "MyResources.ja-JP.resources"、"MyResources.de.resources"、"MyResources.zh-CHS.resources" 或 "MyResources.fr-BE.resources" 等,它们分别包含用于日语、德语、简体中文和法语(比利时)的资源。默认资源文件应该命名为 MyResources.resources。区域性特定的资源文件通常打包在每种区域性的附属程序集内。默认资源文件应该在主程序集内。现在假定已创建 ResourceManager 来表示具有此基名称的资源。通过使用 ResourceManager,可以调用 GetResourceSet(new CultureInfo ("ja-JP"), TRUE, FALSE),从而获取封装 "MyResources.ja-JP.resources" 的 ResourceSet。或者,如果已知 "MyResources" 包含名为 "TOOLBAR_ICON" 的资源,则可通过调用 GetObject("TOOLBAR_ICON", new CultureInfo("ja-JP")),获取针对日本进行了本地化的资源的值。