문제

한 달 달력 스타일 컨트롤을 작성하고 있으며 오늘 날짜를 나타내는 문자열을 표시해야합니다. 영어 문화 기계에서는 보여줄 것입니다 'Today : 11/02/2009'.

프랑스어와 같은 다른 문화가 사용되면 '오늘'에 프랑스어 단어를 사용하고 싶습니다.

.NET 플랫폼 이이 단어를 문화 정보의 일부로 노출시켜 자동으로 검색 할 수 있습니까? 노출 된 것을 찾을 수는 없지만 올바른 장소를보고 있지 않을 수도 있습니다.

도움이 되었습니까?

해결책

오래된 .. 그러나 여전히 유용합니다 (얼마나 오래? vb6 old).

기본적으로 Windows는 Comctl32.dll에 현지화 된 "Today"버전을 유지합니다. aa 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

다른 팁

이것 .NET 현지화에 대한 매우 포괄적 인 개요입니다.

간단히 말해서, DateTime 구조의 방법은 시스템 로케일을 기반으로 날짜를 형식화합니다. 직접 지정하여 기본 로케일을 무시할 수 있습니다.

편집 : 죄송합니다. 질문을 잘못 읽었습니다. 아니요, 그런 것은 없습니다. 번역 사이트를 사용하여 지원 해야하는 'Today'의 번역을 가져 와서 코드의 사전에 보관할 수 있습니다. 그러나 면밀히 조사하면 결과적으로 "오늘 : xx/xx/xxx"는 다른 언어에서 어색 할 수 있기 때문에 전혀 권장하지 않을 것입니다. 독일어 버전 : "Heute : 11.2.2009"또는 프랑스 "Aujourd'Hui : 11.2.2009"는 달력에서 잘 작동하는 것처럼 보이지만 중국어 나 일본어는 말할 수 없습니다. 이것은 현지화가 번역이라고 생각할 때 발생할 수있는 문제를 보여줍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top