0

Looking a recommendation for my criteria.

I need to create a file for different countries and looking at the best naming strategy for this.

I am working with .net 4.5. So example I need to create a file with Russian data, should it be named

rus_myfile.txt [ThreeLetterISOLanguageName]

ru_myfile.txt [TwoLetterISOLanguageName]

or another?

Is there any standard for naming conventions based on the .Net CultureInfo object? Any gotchas in this area?

4

2 回答 2

3

您可以遵循资源文件 (.resx) 的命名约定:

<file basename>.<culture>.txt

您的示例如下所示:

myfile.ru-RU.txt
于 2012-09-18T22:33:22.057 回答
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”。这可能会或可能不会影响您的特定应用程序,但需要注意(例如,它会影响我的应用程序)。因此,您有时可能会在调用“CultureInfo.DislayName”时看到附加的“Legacy”一词(取决于您使用的 .NET 版本)。还要注意您通常使用的 .NET 版本。有时会添加新的文化,与早期版本相比,V4.0 中的内容要多得多,尽管不是真正的主流文化。IOW,如果您尝试通过将区域性名称传递给其构造函数来实例化“CultureInfo”,它可能适用于 .NET 的一个版本,但会在另一个版本上引发“ArgumentException”。这可能会或可能不会影响您的特定应用程序,但需要注意(例如,它会影响我的应用程序)。因此,您有时可能会在调用“CultureInfo.DislayName”时看到附加的“Legacy”一词(取决于您使用的 .NET 版本)。还要注意您通常使用的 .NET 版本。有时会添加新的文化,与早期版本相比,V4.0 中的内容要多得多,尽管不是真正的主流文化。IOW,如果您尝试通过将区域性名称传递给其构造函数来实例化“CultureInfo”,它可能适用于 .NET 的一个版本,但会在另一个版本上引发“ArgumentException”。这可能会或可能不会影响您的特定应用程序,但需要注意(例如,它会影响我的应用程序)。还要注意您通常使用的 .NET 版本。有时会添加新的文化,与早期版本相比,V4.0 中的内容要多得多,尽管不是真正的主流文化。IOW,如果您尝试通过将区域性名称传递给其构造函数来实例化“CultureInfo”,它可能适用于 .NET 的一个版本,但会在另一个版本上引发“ArgumentException”。这可能会或可能不会影响您的特定应用程序,但需要注意(例如,它会影响我的应用程序)。还要注意您通常使用的 .NET 版本。有时会添加新的文化,与早期版本相比,V4.0 中的内容要多得多,尽管不是真正的主流文化。IOW,如果您尝试通过将区域性名称传递给其构造函数来实例化“CultureInfo”,它可能适用于 .NET 的一个版本,但会在另一个版本上引发“ArgumentException”。这可能会或可能不会影响您的特定应用程序,但需要注意(例如,它会影响我的应用程序)。它可能适用于 .NET 的一个版本,但会在另一个版本上引发“ArgumentException”。这可能会或可能不会影响您的特定应用程序,但需要注意(例如,它会影响我的应用程序)。它可能适用于 .NET 的一个版本,但会在另一个版本上引发“ArgumentException”。这可能会或可能不会影响您的特定应用程序,但需要注意(例如,它会影响我的应用程序)。

于 2012-09-19T15:45:52.357 回答