我正在使用 .resx 资源文件进行全球化项目。如果用户选择的语言没有 resx 文件,我有一些后备逻辑。有没有办法找到与提供的文化具有相同语言但不同地区的文化?
问问题
120 次
2 回答
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
这是默认的资源行为。
于 2013-08-20T14:12:52.990 回答
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
如果我错了,请说清楚。
于 2013-08-20T14:21:11.797 回答