寻找具有相同语言的文化

时间:2013-08-20 14:07:42

标签: c# culture

我正在使用.resx资源文件开展全球化项目。我有一些回退逻辑,以防用户选择的语言没有resx文件。有没有办法找到一种与所提供的文化具有相同语言但区域不同的文化?

2 个答案:

答案 0 :(得分:3)

特定于某种语言但不属于特定文化的资源应该在他们自己的文件中,例如:如果您有以下资源文件:

Resources.resx
Resources.en.resx
Resources.fr.resx
Resources.fr-FR.resx

Resources.resx中的语言不变字符串,Resources.fr.resx中的法语字符串以及Resources.fr-FR.resx中法国特定的法语字符串)

用户的文化是fr-CA(加拿大法语),然后它将按以下顺序使用以下文件中的资源:

Resources.fr.resx
Resources.resx

这是默认的资源行为。

答案 1 :(得分:1)

如果我理解正确,那么你正在寻找类似具有相同语言的文化

var culture = new CultureInfo("fr");
var sameLanguageCultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures)
    .Where(x => x.ThreeLetterISOLanguageName == culture.ThreeLetterISOLanguageName && x.Name != culture.Name)
    .ToArray();

foreach (var c in sameLanguageCultures)
{
    Console.WriteLine(c.Name);
}

这将输出

fr-FR
fr-BE 
fr-CA
fr-CH
fr-LU
fr-MC

明确是否错误。