UDF > WinAPIEx > Internationalization >


_WinAPI_SetThreadLocale

Définit la locale courante du thread appelant

#include <WinAPILocale.au3>
_WinAPI_SetThreadLocale ( $iLCID )

Paramètres

$iLCID L'identifiant de la locale (LCID) qui spécifie les paramètres régionaux ou l'une des valeurs prédéfinies suivantes:
$LOCALE_INVARIANT
$LOCALE_SYSTEM_DEFAULT
$LOCALE_USER_DEFAULT

Windows Vista ou une version ultérieure
$LOCALE_CUSTOM_DEFAULT
$LOCALE_CUSTOM_UI_DEFAULT
$LOCALE_CUSTOM_UNSPECIFIED

Valeur de retour

Succès: Retourne True
Échec: Retourne False

Voir aussi

Consultez SetThreadLocale dans la librairie MSDN.

Exemple

#include <APILocaleConstants.au3>
#include <APIResConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPILocale.au3>
#include <WinAPIRes.au3>
#include <WinAPISys.au3>

Local $hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', @ScriptDir & '\Extras\Resources.dll non trouvé.')
    Exit
EndIf

; Obtient l'identifiant de langue (locale) pour le processus actuel
Local $iPrev
If Number(_WinAPI_GetVersion()) >= 6.0 Then
    $iPrev = _WinAPI_GetThreadUILanguage()
Else
    $iPrev = _WinAPI_GetThreadLocale()
EndIf

; Pourquoi le nom de la ressource pour la chaîne avec ID = 6000 est 376 ? 6000/16 + 1 = 376
Local $aData = _WinAPI_EnumResourceLanguages($hInstance, $RT_STRING, 376)
If Not @error Then
    For $i = 1 To $aData[0]
        If Number(_WinAPI_GetVersion()) >= 6.0 Then
            _WinAPI_SetThreadUILanguage($aData[$i])
        Else
            _WinAPI_SetThreadLocale($aData[$i])
        EndIf
        ConsoleWrite(StringFormat('%-10s - %s', _WinAPI_GetLocaleInfo($aData[$i], $LOCALE_SENGLANGUAGE), _WinAPI_LoadString($hInstance, 6000)) & @CRLF)
    Next
EndIf

; Restaure la langue précédente pour le processus actuel
If Number(_WinAPI_GetVersion()) >= 6.0 Then
    _WinAPI_SetThreadUILanguage($iPrev)
Else
    _WinAPI_SetThreadLocale($iPrev)
EndIf