Windows
GetSystemDefaultLangID
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Delphi имеет функцию GetLocaleInfo, которая позволяет получать различную информацию о локальных настройках, таких как системный язык, символ валюты, количество десятичных знаков и т.д.
Далее приведена функция, которая возвращает значение в зависимости от параметра "flag":
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Используй GetKeyboardLayoutName
Автор ответа: Mikel
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Code: |
//На русский procedure TForm1.Button1Click(Sender: TObject); var Layout: array[0.. KL_NAMELENGTH] of char; begin LoadKeyboardLayout( StrCopy(Layout,'00000419'),KLF_ACTIVATE); end; |
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Этот алгоритм позволяет перекодировать текст.
Реализованы кодировки Windows-1251, KOI8-R, ISO-8859-5 и DOS.
Кодировка – это таблица, в которой указано, например, что символ под номером 160 - это русская буква "а", а под номером 150 – "Ц" и т. д.
Кодировки различаются номерами русских букв (как располагать английские буквы договорились).
Разные компьютеры в Интернете используют разные кодировки. И поэтому, когда русский текст идет по Интернету, его многократно перекодируют.
Этот алгоритм обеспечивает высокую скорость перекодирования больших объемов данных.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Для перекодировки из Win(1251) кодовой страницы в Dos(866) кодовую страницу и обратно используются функции:
CharToOEM
OEMToChar
CharToOEMBuff
OEMToCharBuff
OemToAnsi
AnsiToOem:
Пример чтения текста dos из файла в memo
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Алгоритм распознавания кодировки нужен для автоматического декодирования текста. Этот алгоритм основан на том, что некоторые буквы русского алфавита встречается очень часто, а некоторые редко. Поскольку этот способ статистический, то лучше всего он работает с большими текстами.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Функция IsWindowUnicode определяет, является ли указанное окно собственным окном Юникода
Набор символов окна определяется с помощью функции RegisterClass. Если класс окна зарегистрирован в АНСИ версии непредвиденное registerclass (RegisterClassA),
набор символов окна является ANSI. Если класс окна был зарегистрирован в Юникоде версия непредвиденное registerclass (RegisterClassW), набор символов окно в Юникоде.
Система автоматического двустороннего перевода (Юникода в ANSI) для окна Сообщений. Например, если сообщение окна ANSI отправляется в окно, использующее набор символов Юникода,
перед вызовом процедуры окна система преобразует это сообщение в сообщение Юникода. Система вызывает IsWindowUnicode, чтобы определить, следует ли переводить сообщение.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
В Дельфи есть предопределенные переменные языковых установок и форматов:
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
GetSystemDefaultLangID
GetSystemDefaultLCID
GetLocaleInfo
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Code: |
procedure GetKLList(List: TStrings); var AList : array [0..9] of Hkl; AklName: array [0..255] of Char; i: Longint; begin List.Clear; for i := 0 to GetKeyboardLayoutList(SizeOf(AList), AList) - 1 do begin GetLocaleInfo(LoWord(AList[i]), LOCALE_SLANGUAGE, AklName, SizeOf(AklName)); List.AddObject(AklName, Pointer(AList[i])); end; end;
procedure TForm1.FormCreate(Sender: TObject); begin GetKLList(ListBox1.Items); end;
procedure TForm1.ListBox1Click(Sender: TObject); begin with Sender as TListBox do ActivateKeyboardLayout(Hkl(Items.Objects[ItemIndex]), 0); end; |
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Многоязычие, локализация и перекодировка
Страница 29 из 42