Question

Je suis en train d'écrire un mois de contrôle de type calendrier, et besoin d'afficher une chaîne qui indique la date d'aujourd'hui. Ainsi, sur une machine-culture anglaise, il montrerait 'Today : 11/02/2009'.

Si une autre culture arrive à utiliser, comme le français, je voudrais utiliser le mot français pour « Aujourd'hui ».

La plate-forme .NET expose ce mot dans le cadre de l'information de la culture afin que je puisse le récupérer automatiquement? Je ne peux pas trouver quoi que ce soit exposé, mais peut-être que je ne suis pas à la recherche dans le bon endroit.

Était-ce utile?

La solution

Old .. mais toujours utile (quel âge? VB6 vieux).

Fondamentalement Windows conserve une version localisée de « Aujourd'hui » dans Comctl32.dll. Vous pouvez pêcher avec un appel de 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

Autres conseils

Cette est un aperçu assez complet de .Net localisation.

En un mot, les méthodes de la structure DateTime formateront la date sur la base des paramètres régionaux du système. Vous pouvez remplacer les paramètres régionaux par défaut en spécifiant votre propre.

Edit: Désolé, j'ai mal lu votre question. Non, il n'y a pas une telle chose. Vous pouvez utiliser un site de traduction pour obtenir les traductions de « Aujourd'hui » que vous devez soutenir, et les garder dans un dictionnaire dans votre code. Un examen plus approfondi, cependant, je ne recommanderais pas du tout, puisque la chaîne résultante « Aujourd'hui: xx / xx / xxx » peut se sentir maladroit dans d'autres langues. Alors que la version allemande: « Heute: 11.2.2009 », ou les Français « Aujourd'hui: 11.2.2009 » semblent bien fonctionner dans un calendrier, je ne peux pas dire pour le chinois ou le japonais. Cela illustre les problèmes que vous pouvez rencontrer lorsque vous pensez que la localisation est la simple traduction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top