Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос о локализациях: нейтральной и вариантах default / 22 сообщений из 22, страница 1 из 1
30.10.2015, 15:06
    #39091225
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
C++; WinAPI

В справке MSDN по теме функции FormatMessage написано:

MSDNIf you pass in zero, FormatMessage looks for a message for LANGIDs in the following order:

* Language neutral
* Thread LANGID, based on the thread's locale value
* User default LANGID, based on the user's default locale value
* System default LANGID, based on the system default locale value
* US English
1. Однако 0 (zero) - это и есть значение для Language neutral. Проверить можно так:

Код: plaintext
1.
DWORD langId = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL); // 0


Т.о. наличие первого пункта вызывает некоторое недоумение... Возможно я что-то не так понимаю.

2. Где в OC Windows хранится информация о Language neutral или как она вычисляется, если не хранится?

3. Где в ОС Windows хранится значение user's default locale value ?

4. Где в ОС Windows хранится значение system default locale value ?
...
Рейтинг: 0 / 0
30.10.2015, 15:15
    #39091236
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Compositum,
да нет, ты просто читать не умеешь. Всё ж написано.

MSDNFormats a message string. The function requires a message definition as input. The message definition can come from a buffer passed into the function. It can come from a message table resource in an already-loaded module. Or the caller can ask the function to search the system's message table resource(s) for the message definition . The function finds the message definition in a message table resource based on a message identifier and a language identifier . The function copies the formatted message text to an output buffer, processing any embedded insert sequences if requested.


MESSAGE_ID указывается в параметре.
LANG варьируется вышеуказанным тобой образом.
...
Рейтинг: 0 / 0
30.10.2015, 15:19
    #39091242
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
MasterZivда нет, ты просто читать не умеешь. Всё ж написано.На данный момент пока читать не умеешь ты... Я не спрашивал о том, как работает FormatMessage - с этим я довольно неплохо знаком. Ссылка на справку по FormatMessage была мною дана лишь для пояснения, на основании какой информации возник вопрос по локалям.
...
Рейтинг: 0 / 0
30.10.2015, 15:22
    #39091249
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Compositum,

MSDNdwLanguageId [in]

The language identifier for the requested message. This parameter is ignored if dwFlags includes FORMAT_MESSAGE_FROM_STRING.

If you pass a specific LANGID in this parameter, FormatMessage will return a message for that LANGID only. If the function cannot find a message for that LANGID, it sets Last-Error to ERROR_RESOURCE_LANG_NOT_FOUND. If you pass in zero, FormatMessage looks for a message for LANGIDs in the following order:

Language neutral
Thread LANGID, based on the thread's locale value
User default LANGID, based on the user's default locale value
System default LANGID, based on the system default locale value
US English

If FormatMessage does not locate a message for any of the preceding LANGIDs, it returns any language message string that is present. If that fails, it returns ERROR_RESOURCE_LANG_NOT_FOUND.
...
Рейтинг: 0 / 0
30.10.2015, 15:24
    #39091250
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
MasterZiv,

И где ты видишь в этом ответы на обозначенные мною вопросы?
...
Рейтинг: 0 / 0
30.10.2015, 15:27
    #39091256
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
CompositumГде в OC Windows хранится информация о Language neutral или как она вычисляется, если не хранится?
На тот случай, если меня не верно поняли: я не спрашиваю, как при помощи макроса MAKELANGID сформировать ту или иную локаль. Я спрашиваю о том, как ОС Windows определяет, какую именно локаль принимать за нейтральную. Я так же не уверен, что на разных машинах это окажется одна и та же локаль.
...
Рейтинг: 0 / 0
30.10.2015, 15:29
    #39091258
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Я пометил жирным.
На всякий случай ещё явно отвечу.


2. Где в OC Windows хранится информация о Language neutral или как она вычисляется, если не хранится?

Она хранится в ресурсе вида "таблица строк", идентификатор модуля, содержащего который, ты указываешь в параметре
lpSource:

MSDNlpSource [in, optional]

The location of the message definition. The type of this parameter depends upon the settings in the dwFlags parameter.
dwFlags Setting Meaning

FORMAT_MESSAGE_FROM_HMODULE
0x00000800


A handle to the module that contains the message table to search.


3. Где в ОС Windows хранится значение user's default locale value ?

В реестре где-то


4. Где в ОС Windows хранится значение system default locale value ?

Тоже в реестре где-то
...
Рейтинг: 0 / 0
30.10.2015, 15:33
    #39091267
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
CompositumCompositumГде в OC Windows хранится информация о Language neutral или как она вычисляется, если не хранится?
На тот случай, если меня не верно поняли: я не спрашиваю, как при помощи макроса MAKELANGID сформировать ту или иную локаль. Я спрашиваю о том, как ОС Windows определяет, какую именно локаль принимать за нейтральную. Я так же не уверен, что на разных машинах это окажется одна и та же локаль.

Ты ж сам сказалнаписал, что это -- 0 !!
...
Рейтинг: 0 / 0
30.10.2015, 15:36
    #39091275
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
...
Рейтинг: 0 / 0
30.10.2015, 15:37
    #39091277
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
MasterZivОна хранится в ресурсе вида "таблица строк", идентификатор модуля, содержащего который, ты указываешь в параметре
lpSource:
Я в курсе того, где и как хранятся локализованные ресурсы. Я пока не могу понять, на основании чего та или иная локаль принимается за нейтральную, ведь их идентификаторы не нулевые. Или же я одну из них должен продублировать и обозначить так:
LanguageNames=(Neutral=0x000:MSG00000)
Попробую сейчас.
MasterZivВ реестре где-то
Ну да, на физическом носителе... Прошу либо по существу, либо ничего.
...
Рейтинг: 0 / 0
30.10.2015, 15:39
    #39091279
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
?3. GetUserDefaultLCID
4. GetSystemDefaultLCID
Я в курсе о существовании этих функций. :) Но это не помогает мне понять, где эти настройки хранит ОС, либо как их можно менять средствами GUI, предоставляемыми ОС.
...
Рейтинг: 0 / 0
30.10.2015, 15:42
    #39091280
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Вообще, чё не понятно ?
Есть модуль, идентификатор его ты указываешь на входе.
В модуле есть ТОЛЬКО ОДНА string-table, это правда.
Уникальный ключ для поиска в таблице строк -- ( IDстроки и LANGID )
Ты на входе указываешь ОБА ПАРАМЕТРА. Но LANGID можешь НЕ указывать, тогда функция определённым образом ищет по только одному параметру одну строку (а там их может быть много с одним ID, но с разными LANG).
Как -- и написано в спецификации:
-- сначала -- с нейтральным языком, потому что должна подходить ко всем
-- если не нашлось, ищется с языком, установленным для текущего потока (т.е. заданном в приложении программно)
-- если нет, -- дефолт пользователя и дефолт системы.
-- если опять нет -- US_EN.

Чё тут непонятного -- я не понимаю
...
Рейтинг: 0 / 0
30.10.2015, 15:44
    #39091281
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Compositum?3. GetUserDefaultLCID
4. GetSystemDefaultLCID
Я в курсе о существовании этих функций. :) Но это не помогает мне понять, где эти настройки хранит ОС, либо как их можно менять средствами GUI, предоставляемыми ОС.

Так это локали, а не языки. Другое...
...
Рейтинг: 0 / 0
30.10.2015, 16:00
    #39091293
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
CompositumНо это не помогает мне понять, где эти настройки хранит ОС, либо как их
можно менять средствами GUI, предоставляемыми ОС.
Панель управления - Языки и территориальные настройки - Язык для не-юникодных программ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
30.10.2015, 16:05
    #39091299
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Dimitry SibiryakovПанель управления - Языки и территориальные настройки - Язык для не-юникодных программ.
Пробовал уже ... Не то (по ссылке в комментах писал об этом).
...
Рейтинг: 0 / 0
30.10.2015, 16:06
    #39091300
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Dimitry SibiryakovCompositumНо это не помогает мне понять, где эти настройки хранит ОС, либо как их
можно менять средствами GUI, предоставляемыми ОС.
Панель управления - Языки и территориальные настройки - Язык для не-юникодных программ.
Русская win7. Переключил эту настройку с "Русский" на "Английский (США)". GetSystemDefaultLCID поменялся с 1049 (ru-RU) на 1033 (en-US). GetUserDefaultLCID как был так и остался 1049. Задумался...
...
Рейтинг: 0 / 0
30.10.2015, 16:19
    #39091321
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Оказывается, UserDefaultLCID задается там же на закладке "Форматы". Внезапно...
...
Рейтинг: 0 / 0
30.10.2015, 16:20
    #39091322
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
?,

Извиняюсь... Я перепутал с функциями GetUserDefaultUILanguage и GetSystemDefaultUILanguage - с ними у меня результат не менялся. Сейчас попробую указанные вами. Мне интересно понять, что это за локаль по умолчанию для юзера и где она хранится... Исходя из названия складывается впечатление что у каждого юзера она может быть своя и что её, возможно, можно переключать.
...
Рейтинг: 0 / 0
30.10.2015, 16:21
    #39091324
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
?Оказывается, UserDefaultLCID задается там же на закладке "Форматы". Внезапно...
Спасибо, сейчас проверю.
...
Рейтинг: 0 / 0
30.10.2015, 16:23
    #39091328
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Гугль приводит на страничку матлаба http://www.mathworks.com/matlabcentral/answers/96166-how-do-i-set-locale-on-windows-platforms
Что, в msdn это вообще нигде не описано?
...
Рейтинг: 0 / 0
30.10.2015, 16:32
    #39091338
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
?Гугль приводит на страничку матлаба
У нас разный гугль?
http://blogs.msdn.com/b/shawnste/archive/2011/11/09/user-locale-system-locale-ui-language-language-profile-amp-all-that.aspx
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
30.10.2015, 16:41
    #39091351
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос о локализациях: нейтральной и вариантах default
Dimitry Sibiryakov, видимо разные запросы... Я искал "set user default locale on windows"
Где-то на ...дцатом месте таки обнаружил https://msdn.microsoft.com/en-us/goglobal/bb688121.aspx
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос о локализациях: нейтральной и вариантах default / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]