我在数据库中有第一个,最后一个和中间名,想要显示它们。我的第一个想法是显示: last,first middle 但我认为其他语言/文化可能使用不同的格式和分隔符。
有没有人知道将在文化基础上处理这个问题的编队?理想情况下是.Net的一部分。
答案 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中的文化特定内容在某种程度上是很好的,但依靠复合格式化字符串是不够的。