Re[3]: Вопрос на засыпку (связан с локализацией)
От: Alex Fedotov США  
Дата: 10.12.03 20:28
Оценка: 1 (1) +1
Здравствуйте, maximilian, Вы писали:

Видимо, я чего-то не понимаю.

M>>>Хотелось бы получить название языка для указанного Locale, т.е. локализованное название языка. Если кто сталкивался с такой проблемой, поделитесь, пожалуйста, опытом. Набивать вручную таблицы {LANGID, LanguageName} для каждого LCID лень, да и, скорее всего, есть более человеческий способ. Все вышеописанное должно работать как под 9х так и под NT


AF>>GetLocaleInfo(lcid, LOCALE_SLANGUAGE, ...).


M>Мне известна эта функция, спасибо.

M>Однако это не совсем то, что нужно.

M>GetLocaleInfo возвращает название языка по переданному LCID.

M>Локализованное название определяется локализацией Windows и список языков можно увидеть
M>в Regional Options.

Если нужно получить имя языка на самом этом языке, то нужно воспользоваться константой LOCALE_SNATIVELANGNAME. Например, на моей английской XP, GetLocaleInfoW выдает вот такие результаты.

   lcid    LOCALE_SLANGUAGE   LOCALE_SNATIVELANGNAME
   0x408     "Greek"              "ελληνικά"
   0x409     "English"            "English"
   0x419     "Russian"            "русский"


К сожалению наш форум не в состоянии отобразить греческие буквы (кстати, почему?)
-- Alex Fedotov
Вопрос на засыпку (связан с локализацией)
От: maximilian Украина  
Дата: 10.12.03 11:46
Оценка:
Хотелось бы получить название языка для указанного Locale, т.е. локализованное название языка. Если кто сталкивался с такой проблемой, поделитесь, пожалуйста, опытом. Набивать вручную таблицы {LANGID, LanguageName} для каждого LCID лень, да и, скорее всего, есть более человеческий способ. Все вышеописанное должно работать как под 9х так и под NT
Re: Вопрос на засыпку (связан с локализацией)
От: kliff Россия http://www.esignal.ru
Дата: 10.12.03 18:57
Оценка:
Здравствуйте, maximilian, Вы писали:

M>Хотелось бы получить название языка для указанного Locale, т.е. локализованное название языка. Если кто сталкивался с такой проблемой, поделитесь, пожалуйста, опытом. Набивать вручную таблицы {LANGID, LanguageName} для каждого LCID лень, да и, скорее всего, есть более человеческий способ. Все вышеописанное должно работать как под 9х так и под NT


смотри исходники рантайма — там все понятно. Если же тебе надо просто выставить локаль как у текущего потока, то просто вызови setlocale("");
Re: Вопрос на засыпку (связан с локализацией)
От: Alex Fedotov США  
Дата: 10.12.03 19:20
Оценка:
Здравствуйте, maximilian, Вы писали:

M>Хотелось бы получить название языка для указанного Locale, т.е. локализованное название языка. Если кто сталкивался с такой проблемой, поделитесь, пожалуйста, опытом. Набивать вручную таблицы {LANGID, LanguageName} для каждого LCID лень, да и, скорее всего, есть более человеческий способ. Все вышеописанное должно работать как под 9х так и под NT


GetLocaleInfo(lcid, LOCALE_SLANGUAGE, ...).
-- Alex Fedotov
Re[2]: Вопрос на засыпку (связан с локализацией)
От: maximilian Украина  
Дата: 10.12.03 20:00
Оценка:
Здравствуйте, Alex Fedotov, Вы писали:

M>>Хотелось бы получить название языка для указанного Locale, т.е. локализованное название языка. Если кто сталкивался с такой проблемой, поделитесь, пожалуйста, опытом. Набивать вручную таблицы {LANGID, LanguageName} для каждого LCID лень, да и, скорее всего, есть более человеческий способ. Все вышеописанное должно работать как под 9х так и под NT


AF>GetLocaleInfo(lcid, LOCALE_SLANGUAGE, ...).


Мне известна эта функция, спасибо.
Однако это не совсем то, что нужно.

GetLocaleInfo возвращает название языка по переданному LCID.
Локализованное название определяется локализацией Windows и список языков можно увидеть
в Regional Options.

Мне тут пришла мысль, что сделать это можно путем установки MUI для Windows...
Надеюсь, что я ошибаюсь
Re[4]: Вопрос на засыпку (связан с локализацией)
От: maximilian Украина  
Дата: 10.12.03 20:44
Оценка:
Здравствуйте, Alex Fedotov, Вы писали:

AF>Здравствуйте, maximilian, Вы писали:


AF>Видимо, я чего-то не понимаю.


M>>>>Хотелось бы получить название языка для указанного Locale, т.е. локализованное название языка. Если кто сталкивался с такой проблемой, поделитесь, пожалуйста, опытом. Набивать вручную таблицы {LANGID, LanguageName} для каждого LCID лень, да и, скорее всего, есть более человеческий способ. Все вышеописанное должно работать как под 9х так и под NT


AF>Если нужно получить имя языка на самом этом языке, то нужно воспользоваться константой LOCALE_SNATIVELANGNAME. Например, на моей английской XP, GetLocaleInfoW выдает вот такие результаты.


AF>
AF>   lcid    LOCALE_SLANGUAGE   LOCALE_SNATIVELANGNAME
AF>   0x408     "Greek"              "ελληνικά"
AF>   0x409     "English"            "English"
AF>   0x419     "Russian"            "русский"
AF>


AF>К сожалению наш форум не в состоянии отобразить греческие буквы (кстати, почему?)


Потому, что ваш форум, к сожалению, не использует Юникод для отображения статей,
но это уже отвлеченная тема...

Я вот что пытаюсь выяснить:
Передо мной стоит задача локализации программы на несколько языков.
Пользователю будет предложен список для выбора языка интерфейса, причем названия
языков должны отображаться не на самом этом языке, а на текущем языке интерфейса.
Вот пример:

Допустим выбран русский язык интефейса из двух возможных, тогда названия будут такими
1. Английский
2. Русский

А если был выбран английский язык, то
1. English
2. Russian

Теперь должно быть понятно, что я все-таки пытаюсь выяснить
Re[5]: Вопрос на засыпку (связан с локализацией)
От: BlackHeretic Израиль  
Дата: 11.12.03 11:00
Оценка:
Здравствуйте, maximilian, Вы писали:

M>Здравствуйте, Alex Fedotov, Вы писали:


AF>>Здравствуйте, maximilian, Вы писали:


AF>>Видимо, я чего-то не понимаю.


M>>>>>Хотелось бы получить название языка для указанного Locale, т.е. локализованное название языка. Если кто сталкивался с такой проблемой, поделитесь, пожалуйста, опытом. Набивать вручную таблицы {LANGID, LanguageName} для каждого LCID лень, да и, скорее всего, есть более человеческий способ. Все вышеописанное должно работать как под 9х так и под NT


AF>>Если нужно получить имя языка на самом этом языке, то нужно воспользоваться константой LOCALE_SNATIVELANGNAME. Например, на моей английской XP, GetLocaleInfoW выдает вот такие результаты.


AF>>
AF>>   lcid    LOCALE_SLANGUAGE   LOCALE_SNATIVELANGNAME
AF>>   0x408     "Greek"              "ελληνικά"
AF>>   0x409     "English"            "English"
AF>>   0x419     "Russian"            "русский"
AF>>


AF>>К сожалению наш форум не в состоянии отобразить греческие буквы (кстати, почему?)


M>Потому, что ваш форум, к сожалению, не использует Юникод для отображения статей,

M>но это уже отвлеченная тема...

M>Я вот что пытаюсь выяснить:

M>Передо мной стоит задача локализации программы на несколько языков.
M>Пользователю будет предложен список для выбора языка интерфейса, причем названия
M>языков должны отображаться не на самом этом языке, а на текущем языке интерфейса.
M>Вот пример:

M>Допустим выбран русский язык интефейса из двух возможных, тогда названия будут такими

M>1. Английский
M>2. Русский

M>А если был выбран английский язык, то

M>1. English
M>2. Russian

M>Теперь должно быть понятно, что я все-таки пытаюсь выяснить


Не мудри, если ты сподобился локализовать прогу на несколько языков — то локализовать менюху выбора языка не должно представлять проблемы
ICQ 156156278
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.