gpt4 book ai didi

c# - 我们如何将 .NET CustomCulture 映射到资源文件

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:48 24 4
gpt4 key购买 nike

我创建了一个类库项目并添加了一个基于 http://msdn.microsoft.com/en-us/library/ms172469(v=vs.90).aspx 的客户文化

类库项目由一个简单的 asp.net web 项目引用,我在其中简单地显示基于当前区域性的字符串消息。

除了 messages.es-ES.resx 之外,我还添加了一个资源文件“messages.x-en-US-sample.resx”。当我将我的 ui 文化和文化 (currentThread) 设置为 x-en-US-sample 时,资源字符串不会自动映射到该文件,就像我使用例如es-ES 区域性,自动获取 messages.es-ES.resx。

我在这里错过了什么?

最佳答案

以下是我整理的一个简单测试。只要您的资源文件具有显示的扩展名,它就可以工作。

   // Resource file names:
// XXX.resx (default)
// XXX.de-DE.resx (German)
// XXX.en-Hobbit.resx (custom)

static void Main()
{
BuildAndRegisterHobbitCulture();

const string goodDay = "GoodDay";

// Default.
Console.WriteLine("{0}: {1}", Thread.CurrentThread.CurrentCulture.Name,
Resources.ResourceManager.GetString(goodDay));

// German.
SetCulture("de-DE");
Console.WriteLine("{0}: {1}", Thread.CurrentThread.CurrentCulture.Name,
Resources.ResourceManager.GetString(goodDay));

// Custom - Hobbit.
SetCulture("en-Hobbit");
Console.WriteLine("{0}: {1}", Thread.CurrentThread.CurrentCulture.Name,
Resources.ResourceManager.GetString(goodDay));

Console.ReadLine();
}

private static void SetCulture(string culture)
{
var cultureInfo = CultureInfo.GetCultureInfo(culture);
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
}

private static void BuildAndRegisterHobbitCulture()
{
if (CultureInfo.GetCultures(CultureTypes.AllCultures).Any(ci => ci.Name == "en-Hobbit"))
return;

var cultureAndRegionInfoBuilder = new CultureAndRegionInfoBuilder("en-Hobbit", CultureAndRegionModifiers.None);
cultureAndRegionInfoBuilder.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("en-GB"));
cultureAndRegionInfoBuilder.LoadDataFromRegionInfo(new RegionInfo("en-GB"));
cultureAndRegionInfoBuilder.Register();
}

关于c# - 我们如何将 .NET CustomCulture 映射到资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com