|
|
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
Есть ли константа для локальных установок в Api которая позволила бы получить столицу через LanguageId ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:03 |
|
||
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
Столицу?! А если я живу в России и работаю на английской винде? ЗЫ. Локальные установки - в поиске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:21 |
|
||
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
Райцентр устроит? Если серьезно, можно выяснить только город, соответствующий выбранному часовому поясу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:34 |
|
||
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
Melkiades через Api можно получить огромное количество данных не только по системным локальным установкам но и по другим языкам эти данные встроены Получить их вот наша задача Вопрос стоит так существует ли такая константа для получения столицы по определённому языку пример перебора языков в системе и некоторые установки по языкам: для показа Unicode нужны соответствующие контроли и изменения в коде 'Модуль Option Explicit Public Const LOCALE_SLANGUAGE As Long = &H2 'localized name of language Public Const LOCALE_SABBREVLANGNAME As Long = &H3 'abbreviated language name Public Const LCID_INSTALLED As Long = &H1 'installed locale ids Public Const LCID_SUPPORTED As Long = &H2 'supported locale ids Public Const LCID_ALTERNATE_SORTS As Long = &H4 'alternate sort locale ids Public Declare Sub CopyMemory Lib "kernel32" _ Alias "RtlMoveMemory" _ (Destination As Any, _ Source As Any, _ ByVal Length As Long) Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long Public Declare Function GetLocaleInfo Lib "kernel32" _ Alias "GetLocaleInfoA" _ (ByVal Locale As Long, _ ByVal LCType As Long, _ ByVal lpLCData As String, _ ByVal cchData As Long) As Long Public Declare Function EnumSystemLocales Lib "kernel32" _ Alias "EnumSystemLocalesA" _ (ByVal lpLocaleEnumProc As Long, _ ByVal dwFlags As Long) As Long Public Function GetUserLocaleInfo(ByVal dwLocaleID As Long, _ ByVal dwLCType As Long) As String Dim sReturn As String Dim nSize As Long 'call the function passing the Locale type 'variable to retrieve the required size of 'the string buffer needed nSize = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) 'if successful.. If nSize Then 'pad a buffer with spaces sReturn = Space$(nSize) 'and call again passing the buffer nSize = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) 'if successful (nSize > 0) If nSize Then 'nSize holds the size of the string 'including the terminating null GetUserLocaleInfo = Left$(sReturn, nSize - 1) End If End If End Function Public Function EnumSystemLocalesProc(lpLocaleString As Long) As Long 'application-defined callback function for EnumSystemLocales Dim pos As Integer Dim dwLocaleDec As Long Dim dwLocaleHex As String Dim sLocaleName As String Dim sLocaleAbbrev As String 'pad a string to hold the format dwLocaleHex = Space$(32) 'copy the string pointed to by the return value CopyMemory ByVal dwLocaleHex, lpLocaleString, ByVal Len(dwLocaleHex) 'locate the terminating null pos = InStr(dwLocaleHex, Chr$(0)) If pos Then 'strip the null dwLocaleHex = Left$(dwLocaleHex, pos - 1) 'we need the last 4 chrs - this 'is the locale ID in hex dwLocaleHex = (Right$(dwLocaleHex, 4)) 'convert the string to a long dwLocaleDec = CLng("&H" & dwLocaleHex) 'get the language and abbreviation for that locale sLocaleName = GetUserLocaleInfo(dwLocaleDec, LOCALE_SLANGUAGE) sLocaleAbbrev = GetUserLocaleInfo(dwLocaleDec, LOCALE_SABBREVLANGNAME) End If 'add the data to the list Form1.List1.AddItem " " & dwLocaleHex & vbTab & _ dwLocaleDec & vbTab & _ sLocaleAbbrev & vbTab & _ sLocaleName 'and return 1 to continue enumeration EnumSystemLocalesProc = 1 End Function 'Форма 'Добавить Text1, Command1 listbox Option Explicit Private Sub Command1_Click() Dim LCID As Long 'get the user's current default ID LCID = GetSystemDefaultLCID() 'show the current localized name of language Text1.Text = GetUserLocaleInfo(LCID, LOCALE_SLANGUAGE) & vbTab & _ GetUserLocaleInfo(LCID, LOCALE_SABBREVLANGNAME) 'add a list caption, and enumerate the 'installed system locales List1.AddItem "Installed Locales:" List1.AddItem " hex" & vbTab & "dec" & vbTab & "abv" & vbTab & "language" Call EnumSystemLocales(AddressOf EnumSystemLocalesProc, LCID_INSTALLED) 'add a list caption, and enumerate the 'supported system locales List1.AddItem "" List1.AddItem "Supported Locales:" List1.AddItem " hex" & vbTab & "dec" & vbTab & "abv" & vbTab & "language" Call EnumSystemLocales(AddressOf EnumSystemLocalesProc, LCID_SUPPORTED) End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:36 |
|
||
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
miki1Melkiades через Api можно получить огромное количество данных не только по системным локальным установкам но и по другим языкам эти данные встроены Встроены куда? Допустим, как справедливо заметил Antonariy, есть данные по часовым поясам, но это вам ничего не дает. Где вы видели в Windows перечисление столиц государств? На основании чего вы полагаете, что они встроены? Заведите в своей программе табличку "государство - столица", и будеть вам счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:52 |
|
||
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
Я только спросил существует ли такая константа в перечеслении констант API существуют установки для дат ,валют , знаков разделения , названия алтернативных календарей и ещё куча всего как на английском так и на родном языке Мне лень делать таблицу страна-столица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 14:02 |
|
||
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
Ладно страна-столица. Но автор ведь хочет язык -столица! А как насчет того, что по-испански говорят в Испании, Мексике, Бразилии? А по-английски в Англии, США, Австралии, Новой Зеландии? По-немецки в Германии и Австрии? miki1, делай таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 16:02 |
|
||
|
Получить столицу через LanguageId + Api
|
|||
|---|---|---|---|
|
#18+
Да ее даже и делать не надо. Вот она. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 16:15 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33980879&tid=2165317]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 514ms |

| 0 / 0 |
