📄 apilocale.cls
字号:
vbMarch = 3
vbApril = 4
vbMay = 5
vbJune = 6
vbJuly = 7
vbAugust = 8
vbSeptember = 9
vbOctober = 10
vbNovember = 11
vbDecember = 12
End Enum
Public Property Get DayName(ByVal DayOfWeek As VbDayOfWeek) As String
Dim index As LocaleInfoIndexes
Select Case DayOfWeek
Case vbMonday
index = LOCALE_SDAYNAME1
Case vbTuesday
index = LOCALE_SDAYNAME2
Case vbWednesday
index = LOCALE_SDAYNAME3
Case vbThursday
index = LOCALE_SDAYNAME4
Case vbFriday
index = LOCALE_SDAYNAME5
Case vbSaturday
index = LOCALE_SDAYNAME6
Case vbSunday
index = LOCALE_SDAYNAME7
End Select
DayName = GetLocaleInfoItem(index)
End Property
Public Property Get AbbreviatedDayName(ByVal DayOfWeek As VbDayOfWeek) As String
Dim index As LocaleInfoIndexes
Select Case DayOfWeek
Case vbMonday
index = LOCALE_SABBREVDAYNAME1
Case vbTuesday
index = LOCALE_SABBREVDAYNAME2
Case vbWednesday
index = LOCALE_SABBREVDAYNAME3
Case vbThursday
index = LOCALE_SABBREVDAYNAME4
Case vbFriday
index = LOCALE_SABBREVDAYNAME5
Case vbSaturday
index = LOCALE_SABBREVDAYNAME6
Case vbSunday
index = LOCALE_SABBREVDAYNAME7
End Select
AbbreviatedDayName = GetLocaleInfoItem(index)
End Property
Public Property Get DecimalSeparator() As String
DecimalSeparator = GetLocaleInfoItem(LOCALE_SDECIMAL)
End Property
Public Property Get EnglishCountryName() As String
EnglishCountryName = GetLocaleInfoItem(LOCALE_SENGCOUNTRY)
End Property
Public Property Get EnglishCurrencyName() As String
EnglishCurrencyName = GetLocaleInfoItem(LOCALE_SENGCURRNAME)
End Property
Public Property Get EnglishLanguageName() As String
EnglishLanguageName = GetLocaleInfoItem(LOCALE_SENGLANGUAGE)
End Property
Private Function GetLocaleInfoItem(ByVal index As LocaleInfoIndexes) As String
Dim sBuff As String
Dim lret As Long
sBuff = String$(1024, 0)
lret = GetLocaleInfo(mLocaleId, index, sBuff, Len(sBuff))
If Err.LastDllError Then
ReportError Err.LastDllError, "ApiLocale:GetItemInfo - " & index, GetLastSystemError
Else
If lret > 0 Then
sBuff = Left$(sBuff, lret)
If InStr(sBuff, Chr$(0)) > 1 Then
sBuff = Left$(sBuff, InStr(sBuff, Chr$(0)) - 1)
End If
End If
End If
GetLocaleInfoItem = sBuff
End Function
Public Property Get LocalCountryName() As String
LocalCountryName = GetLocaleInfoItem(LOCALE_SCOUNTRY)
End Property
Public Property Get LocalCurrencyName() As String
LocalCurrencyName = GetLocaleInfoItem(LOCALE_SNATIVECURRNAME)
End Property
Public Property Get LocaleId() As Long
LocaleId = mLocaleId
End Property
Public Property Let LocaleId(ByVal newId As Long)
If mLocaleId <> newId Then
mLocaleId = newId
End If
End Property
Public Property Get LocalLanguageName() As String
LocalLanguageName = GetLocaleInfoItem(LOCALE_SLANGUAGE)
End Property
Public Property Get Mainlanguage() As enLocaleMainLanguage
Mainlanguage = APIDispenser.GetBits(mLocaleId, 0, 9)
End Property
Public Property Get MonthName(ByVal MonthOfYear As vbMonthOfYear) As String
Dim index As LocaleInfoIndexes
index = LOCALE_SMONTHNAME1 + (MonthOfYear - 1)
MonthName = GetLocaleInfoItem(index)
End Property
Public Property Get AbbreviatedMonthName(ByVal MonthOfYear As vbMonthOfYear) As String
Dim index As LocaleInfoIndexes
index = LOCALE_SABBREVMONTHNAME1 + (MonthOfYear - 1)
AbbreviatedMonthName = GetLocaleInfoItem(index)
End Property
Public Property Get SortOrder() As enLocaleSortOrders
SortOrder = APIDispenser.GetBits(mLocaleId, 16, 19)
End Property
Public Property Get Sublanguage() As enLocaleSublanguages
Dim mSubLang As Long
mSubLang = APIDispenser.GetBits(mLocaleId, 10, 15)
'\\ Sub language depens on what the main language is....
Select Case Mainlanguage
Case LANG_ARABIC
Select Case mSubLang
Case &H1
Sublanguage = SUBLANG_ARABIC_SAUDI_ARABIA
Case &H2
Sublanguage = SUBLANG_ARABIC_IRAQ
Case &H3
Sublanguage = SUBLANG_ARABIC_EGYPT
Case &H4
Sublanguage = SUBLANG_ARABIC_LIBYA
Case &H5
Sublanguage = SUBLANG_ARABIC_ALGERIA
Case &H6
Sublanguage = SUBLANG_ARABIC_MOROCCO
Case &H7
Sublanguage = SUBLANG_ARABIC_TUNISIA
Case &H8
Sublanguage = SUBLANG_ARABIC_OMAN
Case &H9
Sublanguage = SUBLANG_ARABIC_YEMEN
Case &HA
Sublanguage = SUBLANG_ARABIC_SYRIA
Case &HB
Sublanguage = SUBLANG_ARABIC_JORDAN
Case &HC
Sublanguage = SUBLANG_ARABIC_LEBANON
Case &HD
Sublanguage = SUBLANG_ARABIC_KUWAIT
Case &HE
Sublanguage = SUBLANG_ARABIC_UAE
Case &HF
Sublanguage = SUBLANG_ARABIC_BAHRAIN
Case &H10
Sublanguage = SUBLANG_ARABIC_QATAR
End Select
Case LANG_CHINESE
Select Case mSubLang
Case &H1
Sublanguage = SUBLANG_CHINESE_TRADITIONAL
Case &H2
Sublanguage = SUBLANG_CHINESE_SIMPLIFIED
Case &H3
Sublanguage = SUBLANG_CHINESE_HONGKONG
Case &H4
Sublanguage = SUBLANG_CHINESE_SINGAPORE
Case &H5
Sublanguage = SUBLANG_CHINESE_MACAU
End Select
Case LANG_DUTCH
Select Case mSubLang
Case &H1
Sublanguage = SUBLANG_DUTCH
Case &H2
Sublanguage = SUBLANG_DUTCH_BELGIAN
End Select
Case LANG_ENGLISH
Select Case mSubLang
Case &H1 ' English (USA)
Sublanguage = SUBLANG_ENGLISH_US
Case &H2 ' English (UK)
Sublanguage = SUBLANG_ENGLISH_US
Case &H3 ' English (Australian)
Sublanguage = SUBLANG_ENGLISH_AUS
Case &H4 ' English (Canadian)
Sublanguage = SUBLANG_ENGLISH_CAN
Case &H5 ' English (New Zealand)
Sublanguage = SUBLANG_ENGLISH_NZ
Case &H6 ' English (Irish)
Sublanguage = SUBLANG_ENGLISH_EIRE
Case &H7 ' English (South Africa)
Sublanguage = SUBLANG_ENGLISH_SOUTH_AFRICA
Case &H8 ' English (Jamaica)
Sublanguage = SUBLANG_ENGLISH_JAMAICA
Case &H9 ' English (Caribbean)
Sublanguage = SUBLANG_ENGLISH_CARIBBEAN
Case &HA ' English (Belize)
Sublanguage = SUBLANG_ENGLISH_BELIZE
Case &HB ' English (Trinidad)
Sublanguage = SUBLANG_ENGLISH_TRINIDAD
Case &HC ' English (Zimbabwe)
Sublanguage = SUBLANG_ENGLISH_ZIMBABWE
Case &HD ' English (Philippines)
Sublanguage = SUBLANG_ENGLISH_PHILIPPINES
End Select
Case LANG_FRENCH
Select Case mSubLang
Case &H1
Sublanguage = SUBLANG_FRENCH
Case &H2
Sublanguage = SUBLANG_FRENCH_BELGIAN
Case &H3
Sublanguage = SUBLANG_FRENCH_CANADIAN
Case &H4
Sublanguage = SUBLANG_FRENCH_SWISS
Case &H5
Sublanguage = SUBLANG_FRENCH_LUXEMBOURG
Case &H6
Sublanguage = SUBLANG_FRENCH_MONACO
End Select
Case LANG_GERMAN
Select Case mSubLang
Case &H1
Sublanguage = SUBLANG_GERMAN
Case &H2
Sublanguage = SUBLANG_GERMAN_SWISS
Case &H3
Sublanguage = SUBLANG_GERMAN_AUSTRIAN
Case &H4
Sublanguage = SUBLANG_GERMAN_LUXEMBOURG
Case &H5
Sublanguage = SUBLANG_GERMAN_LIECHTENSTEIN
End Select
Case Else
Sublanguage = mSubLang
End Select
End Property
Public Property Get ThousandSeparator() As String
ThousandSeparator = GetLocaleInfoItem(LOCALE_STHOUSAND)
End Property
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -