是否有一个.NET文化相关的“今天”的字符串?
-
22-08-2019 - |
题
我写一个月历式的控制,并且需要显示的字符串表示今天的日期。因此,英语文化的机器上它会显示'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日”似乎在日历好的工作,我不能说中国人或日本人。这说明,你可以运行到当你认为本地化只是翻译的问题。
不隶属于 StackOverflow