寻找我的标准建议。
我需要为不同的国家/地区创建一个文件,并为此寻找最佳命名策略。
我正在使用.net 4.5。例如,我需要创建一个包含俄罗斯数据的文件,如果它被命名为
rus_myfile.txt [ThreeLetterISOLanguageName]
ru_myfile.txt [TwoLetterISOLanguageName]
或其他?
是否有基于.Net CultureInfo对象的命名约定的标准?这方面有什么问题吗?
答案 0 :(得分:3)
您可以遵循资源文件(.resx)的命名约定:
<file basename>.<culture>.txt
您的示例如下所示:
myfile.ru-RU.txt
答案 1 :(得分:0)
对于“.resx”文件的官方命名约定规则(实际上是标准),请参阅http://msdn.microsoft.com/en-us/library/w24xty37(v=vs.100).aspx。如果您只想要“中性”文化,请参阅“CultureInfo.Parent”。您可能还想看看“CultureInfo.IsNeutralCulture”(您可能需要它)。如果需要(甚至可以检索中性文化),你甚至可以编写一个“CultureInfo”扩展方法,但如果在不变文化的实例上调用它(在这种情况下可能返回null或空字符串),则要小心。另外,对于中国人,请注意“zh-CHS”vs“zh-Hans”(两者都是“简体中文”),以及“zh-CHT”vs“zh-Hant”(两者都是“中国传统”)。在每种情况下,后一个名称是较新的版本,MSFT从旧版本更改为支持称为IETF标准的东西(不要问)。然而,旧版和新版仍然受支持(MSFT正式表示如果你能使用新名称),所以当你调用“CultureInfo.DislayName”时,你有时可能会看到附加“Legacy”这个词(取决于版本的你正在使用的.NET)。还要注意您正在使用的.NET版本。有时会添加新的文化,与早期版本相比,V4.0中的文化要多得多,但不是真正的主流版本。 IOW,如果您尝试通过将文化名称传递给其构造函数来实例化“CultureInfo”,它可能在一个版本的.NET上工作,但在另一个版本上抛出“ArgumentException”。这可能会也可能不会影响您的特定应用,但需要注意的是(例如,它会影响我的应用)。