我写一个月历式的控制,并且需要显示的字符串表示今天的日期。因此,英语文化的机器上它会显示'Today : 11/02/2009'

如果一个不同的文化恰好被使用,例如法语,然后我想用法语单词“今天”。

请问.NET平台揭露这个词作为文化信息的一部分,所以我可以自动检索呢?我找不到任何暴露,但也许我不是在正确的地方寻找。

有帮助吗?

解决方案

老..但仍然有用(多大?VB6旧)。

基本上Windows将“今天”中的Comctl32.dll本地化版本。你可以用一则loadStringEx呼叫鱼出来:

Private Const IDM_TODAY As Long = 4163
Private Const IDM_GOTODAY As Long = 4164

Public Function GetTodayLocalized(ByVal LocaleId As Long) As String
    Static hComCtl32 As Long
    Static hComCtl32Initialized As Boolean
    Static hComCtl32MustBeFreed As Boolean

    Dim s As String

    If Not hComCtl32Initialized Then
        hComCtl32 = GetModuleHandle("Comctl32.dll")
        If hComCtl32 <> 0 Then
            hComCtl32MustBeFreed = False
            hComCtl32Initialized = True
        Else
            hComCtl32 = LoadLibrary("Comctl32.Dll")
            If Not hComCtl32 = 0 Then
                hComCtl32MustBeFreed = True
                hComCtl32Initialized = True
            End If
        End If
    End If

    If hComCtl32Initialized = False Then
        s = "Today"
    Else
        s = LoadStringEx(hComCtl32, IDM_TODAY, LocaleId)
        If s = "" Then
            s = "Today"
        End If
    End If

    If hComCtl32MustBeFreed Then
        FreeLibrary hComCtl32
        hComCtl32MustBeFreed = False
        hComCtl32Initialized = False
        hComCtl32 = 0
    End If

    s = Replace(s, "&", "")
    If Right(s, 1) = ":" Then
        s = Left(s, Len(s) - 1)
    End If

    GetTodayLocalized = s
End Function

其他提示

是净的一个相当全面的概述定位。

概括地说,日期时间结构的方法将格式化基于所述系统区域的日期。您可以指定自己的覆盖缺省语言环境。

编辑:对不起,我误解你的问题。没有,没有这样的事情。你可以使用一个翻译网站获得“今天”的,你需要支持的翻译,并让他们在你的代码字典。 经仔细检查,不过,我不会在所有建议这一点,因为结果字符串“今天是:XX / XX / XXX”可能会觉得在其他语言的尴尬。而德国的版本:“HEUTE:2009年2月11日”,或法国“Aujourd'hui:2009年2月11日”似乎在日历好的工作,我不能说中国人或日本人。这说明,你可以运行到当你认为本地化只是翻译的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top