有没有办法从C#CultureInfo获取标志图像?

时间:2015-01-01 19:02:36

标签: c# .net localization cultureinfo

如果我有一个CultureInfo实例,是否有任何简单的方法 - 内置,通过框架或通过操作系统 - 获得匹配的"标志"图标匹配那种文化?这样可以避免创建单独的查找。

我无法找到成员函数来完成the documentation for CultureInfo中的工作,但也许还有其他一些不太费力的方法涉及其他.NET类,我还没有找到

3 个答案:

答案 0 :(得分:3)

没有。通过.NET框架或Windows操作系统,没有简单的内置方法可以获得匹配的标记"给定CultureInfo实例的图标。

答案 1 :(得分:2)

正如@Peter Duniho所说,.NET Framework中没有内置方式。此外,CultureInfo表示区域设置,而标志代表国家/地区,并且在许多情况下两者不完全匹配。如果遇到一些用户,可能会引发外交问题。

无论如何,如果你想要一些简单的东西,你可能想要使用famfamfam's flag icons,它们已经按照ISO 3166-alpha1 2字母国家代码方便地命名,然后在给定语言环境的情况下将CultureInfo转换为RegionInfo,最后获得两个字母的ISO区域名称:

//wrong one
var roominventory = {};
var room_name = "something";
var item_name = "something item";
var item_description = "something description";
roominventory[room_name] = {item_name : item_description};
console.log(roominventory);

//correct way
var roominventory1 = {};
var room_name = "something";
var item_name = "something item";
var item_description = "something description";
var obj = {};
obj[item_name] = item_description;
roominventory1[room_name] = obj;
console.log(roominventory1);

最后,如果存在这样的文件,则显示它。请注意,您可以使用PNG版本,并且不同的语言可能会映射到同一个国家/地区(我在想瑞士,他们会说4种官方语言)。

答案 2 :(得分:1)

扩展亚历克斯的答案。获得ISO代码后,您可以使用这个简单的库从两个字符串中生成ImageSource标志(来自famfamfam集):

https://github.com/drewnoakes/famfamfam-flags-wpf

它不是内置的,但它易于使用。

图像最终看起来像这样: