Каким образом можно создать приложение с мультиязычным интерфейсом (чтобы можно было локаль устанавливать как в LAZARUS IDE)?
Пишу прогу для Linux/Windows, нужно использовать разные кодировки в интерфейсе.
Многоязычный интерфейс в приложении на Lazarus
Модератор: Модераторы
Я сделал таким образом:
- текстовый файл загружаю в открытый массив array of string
- в текстовых полях компонентов вместо текста указал номера строк из этого массива
- написал одну процедурину, которая перебирает все компоненты формы и меняет номера на тексты.
Одно неудобство - на этапе разработки плохо видно, как будет выглядеть форма, неудобно работать с менюшками.
- текстовый файл загружаю в открытый массив array of string
- в текстовых полях компонентов вместо текста указал номера строк из этого массива
- написал одну процедурину, которая перебирает все компоненты формы и меняет номера на тексты.
Одно неудобство - на этапе разработки плохо видно, как будет выглядеть форма, неудобно работать с менюшками.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Лазарь локализован с помощью GNU Gettext, как, собственно, и весь Linux. Строки при этом берутся из .mo файла, который отличается от текстового, по сути, только наличием дерева для быстрого поиска. Оригинальный интерфейс пишут, как правило, на английском, но для gettext это безразлично - его задача найти исходную строку и взять соответствующую ей пару. Если не нашел, то строка просто остается в непереведенном виде.
Что в Лазаре делается автоматически, а что нужно вручную - я до сих пор так и не понял. Теоретически, должно быть достаточно положить нужный .mo в нужную папку. Но все это можно глянуть в файле lcl\defaulttranslator.pas
Что в Лазаре делается автоматически, а что нужно вручную - я до сих пор так и не понял. Теоретически, должно быть достаточно положить нужный .mo в нужную папку. Но все это можно глянуть в файле lcl\defaulttranslator.pas
