Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
4262 / 2800 / 409
Регистрация: 01.06.2013
Сообщений: 5,870
Записей в блоге: 9
1

Выбрать язык интерфейса при первом запуске приложения

13.04.2018, 14:49. Показов 1161. Ответов 6
Метки нет (Все метки)

Доброго времени суток всем!

Нужно выбрать язык интерфейса (английский или русский) при первом запуске приложения.
По быстрому сделал проверкой установленных в системе раскладок клавиатуры
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var
  RusLang:boolean = false; 
 
procedure SetLanguageFromSystem;
type
  THKLArray = array[0..0] of HKL;
  PHKLArray = ^THKLArray;
var
  I, NLocales, Locale : Cardinal;
  Buffer : Pointer;
begin
  Buffer := nil;
  NLocales := GetKeyboardLayoutList(0, Buffer^);
  if NLocales > 0 then begin
    GetMem(Buffer, NLocales * SizeOf(HKL));
    try
      GetKeyboardLayoutList(NLocales, Buffer^);
      for I:=0 to Pred(NLocales) do begin
        Locale := LOWORD(PHKLArray(Buffer)^[I]);
        if Locale = $419 then begin
           RusLang:=True;
           break;
        end;
      end;
    finally
      FreeMem(Buffer, NLocales * SizeOf(HKL));
    end;
  end;
end;
Но не уверен что это корректно. В смысле, не этот код, а вообще, проверять раскладки для этого.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2018, 14:49
Ответы с готовыми решениями:

Обучение при первом запуске приложения
Здравствуйте! Подскажите пожалуйста как можно сделать обучалку в приложении. Например фон...

Экран с подсказками при первом запуске приложения
Забыл как он называется по-научному. Не splash, а другое, уже после того, как приложение...

Как открыть форму только при первом запуске приложения?
Здравствуйте, в приложении у меня есть форма в которой есть поля для заполнения имени, пола и т.д....

Долго открываются приложения ТОЛЬКО при первом запуске после включения
После включения, если ждать даже если ждать 40 минут (проверено), браузер, steam, skype и тд...

6
3832 / 3264 / 857
Регистрация: 29.08.2013
Сообщений: 21,476
Записей в блоге: 2
13.04.2018, 20:26 2
конечно не корректно
английский - международный язык, при запуске он должен быть основной, если пользователь не менял на нужный (и эта замена должна быть сохранена где во внешнем файле\реестре и прочее)
0
4262 / 2800 / 409
Регистрация: 01.06.2013
Сообщений: 5,870
Записей в блоге: 9
13.04.2018, 20:33  [ТС] 3
qwertehok, нет. Эта программа должна по умолчанию использовать язык пользователя.
Вроде того что на русской виндовс русский язык, если не русская винда, тогда английский.
Сохранение выбора пользователя в файле конфигурации, это само собой, есть.
0
3832 / 3264 / 857
Регистрация: 29.08.2013
Сообщений: 21,476
Записей в блоге: 2
13.04.2018, 20:44 4
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Эта программа должна по умолчанию использовать язык пользователя.
телепатия? магический шар? кофейная гуща?

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вроде того что на русской виндовс русский язык, если не русская винда, тогда английский.
у меня английская винда, английская раскладка основная
во всей организации английская винда
0
4262 / 2800 / 409
Регистрация: 01.06.2013
Сообщений: 5,870
Записей в блоге: 9
13.04.2018, 20:54  [ТС] 5
Цитата Сообщение от qwertehok Посмотреть сообщение
телепатия? магический шар? кофейная гуща?
Нет. Информация из системы. Только вот какую лучше брать? Может наличие русской раскладки. А может быть что то ещё.
Цитата Сообщение от qwertehok Посмотреть сообщение
у меня английская винда, английская раскладка основная
во всей организации английская винда
Если интерфейс самой винды английский, тогда, я думаю, что и программа должна первый раз запускаться с английским интерфейсом. Вот только как узнать какой интерфейс пользователя в винде?
0
3832 / 3264 / 857
Регистрация: 29.08.2013
Сообщений: 21,476
Записей в блоге: 2
14.04.2018, 06:56 6
да не нужно ничего гадать
запустили первый раз на английском и флаг русский вывели на форму. пользователю нужно сменить язык - поменял. и все
0
Фрилансер
3687 / 2057 / 566
Регистрация: 31.05.2009
Сообщений: 6,683
14.04.2018, 07:16 7
Лучший ответ Сообщение было отмечено KolodeznyDiver как решение

Решение

Что-нибудь из этого набора (по вкусу):
GetThreadLocale
GetSystemDefaultLCID
GetUserDefaultLCID
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2018, 07:16

Как создать layout, который запускается один раз, при первом запуске приложения?
Как создать layout, который запускается один раз, при первом запуске приложения? т.е. один раз...

Стал сильно нагреваться блок питания но только при первом запуске и вырубает комп , при втором запуске работает норм
поставил новую видюху Geforce GTX 560 ti и стал сильно нагреваться блок питания но только при...

Форма при первом запуске
Нужно сделать так, чтобы при самом первом запуске показалась первая форма. Все остальные запуски -...

Ошибка, при первом запуске из VB
У меня возникает такая ошибка, при первом запуске из VB в откомпилированном проекте подобных...

Подвисания при просмотре видео и в играх при первом запуске ПК
Доброго времени суток, проблема в следующем: после включения ПК при просмотре видео и в играх есть...

BSOD при при первом запуске после простоя
Доброго времени суток! Имеется система(новая): CPU Intel Core i7-8700K @ 4.80GHz Cooler...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.