2011-04-08 84 views
2

我有一個數據庫中的第一個,最後一個和中間名,並且想要顯示它們。我的第一個想法是顯示:最後,第一中間但我想其他語言/文化可能使用不同的格式和分隔符。人名格式全球化

有沒有人知道會在文化基礎上處理這個問題的表單?理想的.Net的一部分。

+3

「第一」名稱和「最後」名稱的概念差別很大。例如,在一些文化中,沒有「最後」這個名字的概念。 – Thomas 2011-04-08 20:42:25

+0

這裏有趣的問題。有些文化在正式語境中使用[首字母+中間名](http://web.ku.edu/~russcult/culture/handouts/russiannames.html) – 2011-04-08 20:48:55

+0

我遇到過印度尼西亞人,只有一個名字,它既不是「第一」或「最後」的名稱。 – 2011-04-08 23:27:41

回答

1

而不是尋找格式化,假設UI(或電子郵件模板或其他)將被翻譯,只是外部化的模式和使用格式的方法:

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

換句話說,讓譯者決定如何她/他想翻譯它,即匈牙利翻譯將使用「{1} {0}」。

1

我與Pawel Dyda就此達成協議,但我會更進一步。

當你有複雜的數據結構需要本地化時,你會明智地包裝這些東西來支持任何場景。現在,當我說複雜的數據結構時,我並沒有試圖讓事情複雜化,但是你傾向於認識到走向國際的一點是,每個國家都有自己的做事方式。諸如名稱,地址,電話號碼等文化特定的東西都需要被視爲這樣,你應該在你的應用程序中有一個表示層來獲取它。如果你想成功,它也應該是高度可定製的。

在.NET中,文化特定的東西在某種程度上很好,但僅僅依靠複合格式化字符串是不夠的。