Создание мульти-язычных программ - определение языка ОС.

Обсуждения по программированию для ОС Windows безотносительно используемого языка программирования. Windows NT, Win32, Windows API, ядро и драйверы.
bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Создание мульти-язычных программ - определение языка ОС.

Сообщение bon818 » 26.01.2017 (Чт) 14:03

Возникли пару вопросов по использованию ф-и GetLocaleInfo https://msdn.microsoft.com/ru-ru/librar ... 01(v=vs.85).aspx

Вопрос №1)
Retrieves information about a locale specified by identifier.
Note For interoperability reasons, the application should prefer the GetLocaleInfoEx function to GetLocaleInfo because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. Any application that runs only on Windows Vista and later should use GetLocaleInfoEx.

Как я понял, если приложение, работает только в Vista Windows и позже, то должно использовать :
GetLocaleInfoEx https://msdn.microsoft.com/ru-ru/librar ... 03(v=vs.85).aspx
Note The application should call this function in preference to GetLocaleInfo if designed to run only on Windows Vista and later.
Note This function can retrieve data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.

Значит нужно использовать GetLocaleInfo в XP - и позже ? а уже расширенная ф-я GetLocaleInfoEx, если вдруг понадобится, только в Vista и выше? (пока писал сам понял, что именно так и есть)))
В XP и windows7 проверил GetLocaleInfo, работает.

Вопрос №2) Константы.

LOCALE_SENGLISHLANGUAGENAME
Windows 7 and later: English name of the language in English, for example, German for Deutsch, from International ISO Standard 639.
This name is always restricted to characters that can be mapped into the ASCII 127-character subset.
https://msdn.microsoft.com/en-us/librar ... 43(v=vs.85).aspx


LOCALE_SENGLANGUAGE Deprecated for Windows 7 and later. Full English name of the language from ISO Standard 639. See LOCALE_SENGLISHLANGUAGENAME.
https://msdn.microsoft.com/en-us/librar ... 44(v=vs.85).aspx

GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLISHLANGUAGENAME , wszBuf, SIZEOF(wszBuf) )
В XP и windows7 проверил, работает.

GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, wszBuf, SIZEOF(wszBuf) )
В XP и windows7 проверил, работает.

И даже так:
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLISHLANGUAGENAME or LOCALE_SENGLANGUAGE, wszBuf, SIZEOF(wszBuf) )
В XP и windows7 проверил, работает.
Планирую оставить так: LOCALE_SENGLISHLANGUAGENAME or LOCALE_SENGLANGUAGE

Возвращает значение wszBuf = Russian

Все правильно?
Жду Ваше мнение.
Просьба протестировать прикреплённый EXE, и если работает правильно указать ответ ф-и OC.
Вложения
getlocaleinfo.rar
Пример на PowerBASIC10
(4.02 Кб) Скачиваний: 248
Последний раз редактировалось bon818 05.02.2017 (Вс) 17:49, всего редактировалось 1 раз.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Создание мульти-язычных программ - определение языка ОС.

Сообщение ger_kar » 31.01.2017 (Вт) 18:31

У меня нормально определился язык. Определился как "Russian"
Бороться и искать, найти и перепрятать

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Создание мульти-язычных программ - определение языка ОС.

Сообщение bon818 » 05.02.2017 (Вс) 17:57

Спасибо.
А ОС какая?

Планирую скоро опубликовать исходник, полного модуля, для мульти-язычных программ, под Power Basic.
Не знаю как это правильно делается, но думаю, что получилось оригинально и универсально.
Мультиязычность можно добавлять на любой стадии завершенности проэкта.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Создание мульти-язычных программ - определение языка ОС.

Сообщение ger_kar » 05.02.2017 (Вс) 21:54

bon818 писал(а):Спасибо.А ОС какая?
Windows XP SP3 Русская
Бороться и искать, найти и перепрятать


Вернуться в Windows-программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList  
cron