Текущий архив: 2006.10.29;
Скачать: CL | DM;
Вниз
Обнаружение русской версии Windows. Найти похожие ветки
← →
AlexanderMS © (2006-10-13 16:07) [0]Cкажите, пожалуйста, как программно узнать, что программа запущена под русской версией Windows? Мне нужно, чтобы в этом случае при первом запуске моё "двуязычное" приложение меняло язык интерфейса на русский.
← →
Игорь Шевченко © (2006-10-13 16:14) [1]
{ Для определения языка в NT-системах предпочтительней вызывать Unicode-версию
GetLocaleInfo }
function HSGetLocaleLanguageName (Locale : Cardinal) : String;
var
tmp : array[0..255] of char;
tmpW : array[0..255] of WideChar;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then begin
GetLocaleInfoW(Locale, LOCALE_SLANGUAGE, tmpW, SizeOf(tmpW));
Result := WideCharToString(tmpW);
end else begin
GetLocaleInfo(Locale, LOCALE_SLANGUAGE, tmp, SizeOf(tmp));
Result := tmp;
end;
end;
function HSGetLocaleLanguageName (SLocale : String) : String;
var
I : Integer;
Locale : Cardinal;
begin
Locale := 0;
for I:=1 to 4 do
Locale := (Locale shl 4) + Cardinal(Byte(SLocale[I]) - $30);
Result := HSGetLocaleLanguageName (Locale);
end;
function GetOSLanguage: String;
var
SystemLocale : String;
begin
SystemLocale := "";
with TRegistry.Create(KEY_READ) do
try
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey("SYSTEM\CurrentControlSet\Control\Nls\Language",
false) then begin
if ValueExists("InstallLanguage") then
SystemLocale := ReadString("InstallLanguage")
else
SystemLocale := ReadString("Default");
CloseKey();
end;
finally
Free();
end;
Result := HSGetLocaleLanguageName(SystemLocale);
end;
А можно проще: HSGetLocaleLanguageName(GetSystemDefaultUILanguage());
← →
han_malign © (2006-10-13 16:34) [2]а можно еще проще:
HSGetLocaleLanguageName(LOCALE_SYSTEM_DEFAULT);
хотя лучше, все же - общепринятый "управляемый" вариант - GetThreadLocale
и, скажем, с LOCALE_SENGLANGUAGE или LOCALE_SISO639LANGNAME вместо LOCALE_SLANGUAGE (и независимо от платформы ANSII версию использовать(GetLocaleInfo/GetLocaleInfoA))
З.Ы. LOCALE_SISO639LANGNAME - абревиатура(rus,eng,...) - можно использовать непосредственно как расширение языкового файла.
Страницы: 1 вся ветка
Текущий архив: 2006.10.29;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.03 c