首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否存在依赖于.NET区域性的“今日”字符串?

是否存在依赖于.NET区域性的“今日”字符串?
EN

Stack Overflow用户
提问于 2009-02-11 03:57:12
回答 2查看 503关注 0票数 0

我正在编写一个月历样式的控件,需要显示一个指示今天日期的字符串。因此,在英语文化机器上,它将显示'Today : 11/02/2009'

如果碰巧使用了不同的文化,比如法语,那么我想用法语来表示“今天”。

.NET平台是否将此单词公开为区域性信息的一部分,以便我可以自动检索它?我找不到任何暴露的东西,但可能我找错地方了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-11 05:27:27

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

基本上,Windows在Comctl32.dll中保留了"Today“的本地化版本。你可以通过一个loadstringex调用把它找出来:

代码语言:javascript
复制
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
票数 6
EN

Stack Overflow用户

发布于 2009-02-11 04:02:50

This是.Net本地化的一个相当全面的概述。

简而言之,DateTime结构的方法将根据系统区域设置格式化日期。您可以通过指定自己的区域设置来覆盖默认区域设置。

编辑:对不起,我误解了你的问题。不,根本没有这回事。您可以使用翻译网站来获取您需要支持的“Today”的翻译,并将它们保存在代码的字典中。不过,仔细研究一下,我根本不推荐这样做,因为生成的字符串"Today: xx/xx/xxx“在其他语言中可能会让人觉得很别扭。虽然德语版本:"Heute: 11.2.2009“或法语版本”Aujourd‘’hui: 11.2.2009“在日历上似乎可以工作,但我不能说中文或日语。这说明了当您认为本地化只是翻译时可能遇到的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/535360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档