人名格式全球化

时间:2011-04-08 20:26:59

标签: .net internationalization formatting globalization culture

我在数据库中有第一个,最后一个和中间名,想要显示它们。我的第一个想法是显示: last,first middle 但我认为其他语言/文化可能使用不同的格式和分隔符。

有没有人知道将在文化基础上处理这个问题的编队?理想情况下是.Net的一部分。

2 个答案:

答案 0 :(得分:1)

假设要翻译UI(或电子邮件模板或其他),而不是寻找格式化程序,只需将模式外部化并使用Format方法:

        string firstName = "Paweł";
        string lastName = "Dyda";
        // externalize this pattern
        string firstLastNamePattern = "{0} {1}";
        string displayable = string.Format(firstLastNamePattern, firstName, lastName);

换句话说,让译者决定她/他想要翻译它,即匈牙利语译者会使用“{1} {0}”。

答案 1 :(得分:1)

我和Pawel Dyda在一起,但我会更进一步。

当您拥有需要本地化的复杂数据结构时,最好将这些内容包装起来以支持任何场景。

现在,当我说复杂的数据结构时,我并不是想让事情变得复杂,但是你倾向于认识到走向国际的是每个国家都有自己的做事方式。像名称,地址,电话号码这些主要是文化特定的东西需要这样对待,你应该在你的应用程序中有一个表达层来获得这个。如果你想成功,它也应该是高度可定制的。

.NET中的文化特定内容在某种程度上是很好的,但依靠复合格式化字符串是不够的。