用C#代码“切换”不同的文化

时间:2012-03-12 00:49:21

标签: c# .net localization

我正在编写自己的TimeSpan到ReadableString实现。现在我需要它来支持不同的语言。

函数类实现为具有两个静态公共方法的静态类,两者都称为Convert,但是一个只接收TimeSpan值作为参数,而第二个也允许提供CultureInfo以指定,这是所需的可读字符串语言。

我的问题是我的想法是使用基本开关(desiredCulture.ThreeLetterISOLanguageName)并返回不同的String.Format结果。

考虑到我想解决的简单任务,这是一个好方法吗?使用ThreeLetterISO无论如何更可靠和广泛的语言两个字母代码?

1 个答案:

答案 0 :(得分:0)

在我看来,您实际上并不想仅仅本地化TimeSpan,而是希望本地化您的整个应用程序。有几种方法可以做到这一点(例如,有一个weird, overcomplicated way specific to WPF)。

但我首选的方法是使用资源文件。您可以拥有一个与文化无关的资源文件(例如Text.resx),然后为您要支持的每种文化提供一种资源(例如,Text.de.resx代表德语)。如果当前设置的文化没有资源,则使用与文化无关的资源。

Visual Studio有一个资源文件编辑器,因此翻译相对简单。

此外,这可能会为您提供更多详细信息:Walkthrough: Using Resources for Localization with ASP.NET(但资源并非特定于ASP.NET)。