Автоопределение языка
Добавлено: Пт май 25, 2007 15:29
Добавляю в плагин автоопределение языка.
При первой загрузке сравниваю этой функцией название текущего языка со строкой Name в lng файле.
Проблемы например с украинским – название языка хранится на украинском, в русская винда выдаёт его как «Украинский», т.е. автоопределение не срабатывает.
Maximus предложил делать по другому – хранить в lng файле id и сравнивать его с GetSystemDefaultLangID, как в decClipboardFS.
Думаю сделать подобное в дополнение к первому способу, только в id указывать несколько значений, чтобы автоматом определять язык для языков, используемых в нескольких странах.
Залез в Windows.pas, там есть такие строчки:
Типа язык и подъязык. Не понял, как их можно использовать и можно ли.
При первой загрузке сравниваю этой функцией название текущего языка со строкой Name в lng файле.
Код: Выделить всё
{ Определение текущего языка }
function WhichLanguage: string;
var
ID: LangID;
Language: array [0..100] of char;
begin
ID:= GetSystemDefaultLangID;
VerLanguageName(ID, Language, 100);
Result:= String(Language);
end;Maximus предложил делать по другому – хранить в lng файле id и сравнивать его с GetSystemDefaultLangID, как в decClipboardFS.
Думаю сделать подобное в дополнение к первому способу, только в id указывать несколько значений, чтобы автоматом определять язык для языков, используемых в нескольких странах.
Залез в Windows.pas, там есть такие строчки:
Код: Выделить всё
(*
* Language IDs.
*
* The following two combinations of primary language ID and
* sublanguage ID have special semantics:
*
* Primary Language ID Sublanguage ID Result
* ------------------- --------------- ------------------------
* LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral
* LANG_NEUTRAL SUBLANG_DEFAULT User default language
* LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language
*)
const
{ Primary language IDs. }