ロケール情報の取得 <TOP>
GetLocaleInfo()関数は、第2引数のLCTypeに定数を指定することによって、いろいろなロケール情報を取得できます。
GetLocaleInfo ロケール情報を取得
コントロールパネル → 地域と言語のオプション
'================================================================ '= ロケール情報の取得
'= (GetLocaleInfo.bas) '================================================================ #include "Windows.bi" ' ロケール情報を取得 Declare Function Api_GetLocaleInfo& Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale&, ByVal LCType&, ByVal lpLCData$, ByVal cchData&) Var Shared List1 As Object Var Shared Text1 As Object Var Shared Text2 As Object List1.Attach GetDlgItem("List1") : List1.SetFontSize 14 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Text2.Attach GetDlgItem("Text2") : Text2.SetFontSize 14 Var Shared Locale(79, 2) As String '================================================================ '= '================================================================ Declare Function GetInfo(lInfo As Long) As String Function GetInfo(lInfo As Long) As String Var Buffer As String Var Ret As Long Buffer = String$(256, 0) Ret = Api_GetLocaleInfo(LOCALE_USER_DEFAULT, ByVal lInfo, Buffer, Len(Buffer)) If Ret > 0 Then GetInfo = Left$(Buffer, Ret - 1) Else GetInfo = "" End If End Function '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() For i = 0 To 79 For j = 0 To 2 read Locale(i, j) Next List1.AddString Locale(i, 2) Next data LOCALE_ILANGUAGE , &H1 , 言語ID data LOCALE_SLANGUAGE , &H2 , 言語名 data LOCALE_SENGLANGUAGE , &H1001 , 言語英語名 data LOCALE_SABBREVLANGNAME , &H3 , 言語省略名 data LOCALE_SNATIVELANGNAME , &H4 , 言語固有名 data LOCALE_ICOUNTRY , &H5 , 国コード data LOCALE_SCOUNTRY , &H6 , 国名 data LOCALE_SENGCOUNTRY , &H1002 , 国英語名 data LOCALE_SABBREVCTRYNAME , &H7 , 国省略名 data LOCALE_SNATIVECTRYNAME , &H8 , 国固有名 data LOCALE_IDEFAULTLANGUAGE , &H9 , デフォルト言語ID data LOCALE_IDEFAULTCOUNTRY , &HA , デフォルト国コード data LOCALE_IDEFAULTCODEPAGE , &HB , デフォルトOEMコードページ data LOCALE_IDEFAULTANSICODEPAGE , &H1004 , デフォルトANSIコードページ data LOCALE_IDEFAULTMACCODEPAGE , &H1011 , デフォルトMACコードページ data LOCALE_FONTSIGNATURE , &H58 , フォント署名 data LOCALE_SISO639LANGNAME , &H59 , ISO言語省略名 data LOCALE_SISO3166CTRYNAME , &H5A , ISO国省略名 data LOCALE_SLIST , &HC , 区切り記号 data LOCALE_IMEASURE , &HD , 単位 data LOCALE_SDECIMAL , &HE , 小数点の記号 data LOCALE_STHOUSAND , &HF , 桁区切り記号 data LOCALE_SGROUPING , &H10 , 区切る桁数 data LOCALE_IDIGITS , &H11 , 小数点以下の桁数 data LOCALE_ILZERO , &H12 , 少数前ゼロの桁数 data LOCALE_INEGNUMBER , &H1010 , 負の値の形式 data LOCALE_SNATIVEDIGITS , &H13 , 0から9の表記 data LOCALE_SPOSITIVESIGN , &H50 , 正の記号 data LOCALE_SNEGATIVESIGN , &H51 , 負の記号 data LOCALE_IPOSSIGNPOSN , &H52 , 正の記号の位置 data LOCALE_INEGSIGNPOSN , &H53 , 負の記号の位置 data LOCALE_SCURRENCY , &H14 , 通貨記号 data LOCALE_SINTLSYMBOL , &H15 , 国際通貨記号 data LOCALE_SMONDECIMALSEP , &H16 , 小数点の記号 data LOCALE_SMONTHOUSANDSEP , &H17 , 桁区切り記号 data LOCALE_SMONGROUPING , &H18 , 区切る桁数 data LOCALE_ICURRDIGITS , &H19 , 小数点以下の桁数 data LOCALE_IINTLCURRDIGITS , &H1A , 小数点以下の桁数 data LOCALE_ICURRENCY , &H1B , 正の値の形式 data LOCALE_INEGCURR , &H1C , 負の値の形式 data LOCALE_IPOSSYMPRECEDES , &H54 , 正の通貨記号の位置 data LOCALE_IPOSSEPBYSPACE , &H55 , 正の通貨記号の分離位置 data LOCALE_INEGSYMPRECEDES , &H56 , 負の通貨記号の位置 data LOCALE_INEGSEPBYSPACE , &H57 , 負の通貨記号の分離位置 data LOCALE_SDATE , &H1D , 区切り記号 data LOCALE_SSHORTDATE , &H1F , 短い形式 data LOCALE_SLONGDATE , &H20 , 長い形式 data LOCALE_IDATE , &H21 , 短い形式の年月日順 data LOCALE_ILDATE , &H22 , 長い形式の年月日順 data LOCALE_ICENTURY , &H24 , 年の桁数 data LOCALE_IDAYLZERO , &H26 , 日前ゼロの有無 data LOCALE_IMONLZERO , &H27 , 月前ゼロの有無 data LOCALE_ICALENDARType , &H1009 , カレンダの種類 data LOCALE_IOPTIONALCALENDAR , &H100B , 追加カレンダの種類 data LOCALE_IFIRSTDAYOFWEEK , &H100C , 週の先頭日 data LOCALE_IFIRSTWEEKOFYEAR , &H100D , 年の先頭月 data LOCALE_SDAYNAME1 , &H2A , 週の第1日名 data LOCALE_SDAYNAME2 , &H2B , 週の第2日名 data LOCALE_SDAYNAME3 , &H2C , 週の第3日名 data LOCALE_SDAYNAME7 , &H30 , 週の第7日名 data LOCALE_SABBREVDAYNAME1 , &H31 , 週の第1日省略名 data LOCALE_SABBREVDAYNAME2 , &H32 , 週の第2日省略名 data LOCALE_SABBREVDAYNAME3 , &H33 , 週の第3日省略名 data LOCALE_SABBREVDAYNAME7 , &H37 , 週の第7日省略名 data LOCALE_SMONTHNAME1 , &H38 , 年の第1月名 data LOCALE_SMONTHNAME2 , &H39 , 年の第2月名 data LOCALE_SMONTHNAME3 , &H3A , 年の第3月名 data LOCALE_SMONTHNAME12 , &H43 , 年の第12月名 data LOCALE_SMONTHNAME13 , &H100E , 年の第13月名 data LOCALE_SABBREVMONTHNAME1 , &H44 , 年の第1月省略名 data LOCALE_SABBREVMONTHNAME2 , &H45 , 年の第2月省略名 data LOCALE_SABBREVMONTHNAME3 , &H46 , 年の第3月省略名 data LOCALE_SABBREVMONTHNAME12 , &H4F , 年の第12月省略名 data LOCALE_STIME , &H1E , 区切り記号 data LOCALE_STIMEFORMAT , &H1003 , 時間の形式 data LOCALE_ITIME , &H23 , 時間制(12/24) data LOCALE_ITIMEMARKPOSN , &H1005 , 午前午後記号の位置 data LOCALE_ITLZERO , &H25 , 時刻前ゼロの有無 data LOCALE_S1159 , &H28 , 午前の記号 data LOCALE_S2359 , &H29 , 午後の記号 End Sub '================================================================ '= '================================================================ Declare Sub List1_Change edecl () Sub List1_Change() No = List1.GetCursel Text1.SetWindowText GetInfo(val(Locale(No, 1))) Text2.SetWindowText Locale(No, 0) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End