2012-09-18 64 views
0

尋找符合我的標準的推薦。基於CultureInfo命名文件的標準方式是什麼?

我需要爲不同的國家創建一個文件,併爲此尋找最佳的命名策略。

我正在使用.net 4.5。因此,我需要創建一個帶有俄羅斯數據的文件,如果它被命名爲

rus_myfile.txt [ThreeLetterISOLanguageName] 

ru_myfile.txt [TwoLetterISOLanguageName] 

或另一個?

基於.Net CultureInfo對象的命名約定是否有任何標準?這方面有什麼問題嗎?

+0

你想達到什麼目的?爲什麼不使用資源文件(.resx)? –

+0

有沒有*標準*的方式來做到這一點... –

回答

3

您可以按照資源文件的命名約定(的.resx):

<file basename>.<culture>.txt 

你的榜樣應該是這樣的:

myfile.ru-RU.txt 
+0

在這種情況下,你會使用'CultureInfo.Name'作爲你的字符串,對嗎? –

+0

感謝您的建議。然而,對於多語種的國家(例如加拿大),文件名可能不正確(可能是fr-CA或en-CA)。該文件的內容全部是加拿大數據。那麼我應該命名文件myfile.CA.txt?另外,如果我將它應用於數據庫名稱,mydatabase.CA或CA_mydatabase是否正確? – amateur

0

有關 「的.resx」 的正式命名約定規則文件(這實際上是標準),見http://msdn.microsoft.com/en-us/library/w24xty37(v=vs.100).aspx。如果您只想要「中性」文化,請參閱「CultureInfo.Parent」。你也許想看看「CultureInfo.IsNeutralCulture」(你可能需要它)。你甚至可以編寫一個「CultureInfo」擴展方法,如果你想要(檢索中立文化),但要小心它是否在不變文化的實例上調用(在這種情況下可能返回null或空字符串)。此外,對於中文,請注意「zh-CHS」與「zh-Hans」(均爲「簡體中文」),「zh-CHT」與「zh-Hant」(均爲「中國傳統」)。後一個名稱都是較新的版本,MSFT從舊版本改爲支持IETF標準(不要求)。然而,舊的和新的仍然支持(MSFT正式說如果可以的話使用新名稱),所以當你調用「CultureInfo.DislayName」時,你可能會看到「Legacy」這個詞(取決於版本你正在使用的.NET)。一般來說,還要小心使用哪個版本的.NET。有時會增加新的文化,與早期版本相比,V4.0中有更多的文化,儘管不是主流文化。 IOW,如果您嘗試通過將文化名稱傳遞給它的構造函數來實例化「CultureInfo」,它可能在一個.NET版本上工作,但在另一個版本上拋出「ArgumentException」。這可能會或可能不會影響您的特定應用程序,但它是需要注意的事情(例如,它會影響我的應用程序)。