我现在正在使用Localizer从资源文件中获取标签,按钮等的值。这一切都很好地使用文化来选择应该使用哪个语言资源文件LangaugeResource.en-GB.resx
正确使用英国英语和LangaugeResource.cy.resx
用于威尔士语翻译。
有没有办法在本地化服务器中添加额外的图层,以便选择资源文件
LangaugeResource.en-GB.north.resx
LangaugeResource.en-GB.south.resx
所以我可以有两个资源文件,既可以用于英式英语,也可以用于本地化,或者我必须使用除本地化之外的某些方法来使用这样的资源文件?
答案 0 :(得分:1)
我能想到的唯一方法就是根据另一种文化创造自己的文化。 为此,您可以使用CultureAndRegionBuilderClass(基于默认的en-GB创建自定义)。之后,应使用样本Resrouce.en-SB.resx。
MSDN示例:
public class Example
{
public static void Main()
{
// Create a custom culture for ru-US.
CultureAndRegionInfoBuilder car1 = new CultureAndRegionInfoBuilder("ru-US",
CultureAndRegionModifiers.None);
car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"));
car1.LoadDataFromRegionInfo(new RegionInfo("en-US"));
car1.CultureEnglishName = "Russian (United States)";
car1.CultureNativeName = "русский (США)";
car1.CurrencyNativeName = "Доллар (США)";
car1.RegionNativeName = "США";
// Register the culture.
try {
car1.Register();
}
catch (InvalidOperationException) {
// Swallow the exception: the culture already is registered.
}
// Use the custom culture.
CultureInfo ci = CultureInfo.CreateSpecificCulture("ru-US");
Thread.CurrentThread.CurrentCulture = ci;
Console.WriteLine("Current Culture: {0}",
Thread.CurrentThread.CurrentCulture.Name);
Console.WriteLine("Writing System: {0}",
Thread.CurrentThread.CurrentCulture.TextInfo);
}
}
// The example displays the following output:
// Current Culture: ru-US
// Writing System: TextInfo - ru-US