Что нового

LangFile - языковой файл для программы.

FlatX007

Tattoo!
Сообщения
197
Репутация
35
Многие програмеры закидывают текст для контролов GUI окна в отдельный файл, тем самым можно получить лёгкий и простой доступ к названиям т.е. (кнопка 1, чекбокс 5... и тп), также можно с лёгкостью перевести программу на другой язык не затрагивая саму программу.
Чаще всего используется INI файл (для его чтения используем функцию IniReadSection), но вот беда, нельзя менять строки местами иначе контрл GUI окна получит неправильный текст и что бы получить нужный текст нужно знать ячейку массива в которой он находится...

Во общем я решил позаморачиваться на этот счёт вот что у меня получилось - смотрим присоединённый файл. Более правильного способа я не придумал.

Запись я языковом файле(позиция строк в тексте не играет роли):
MENU__GUI_TITLE|Языковой файл v.1.0|Options
MENU__CHECKBOX|Чекбокс|Options
MENU__BUTTON|Кнопка|Options
MENU__RADIO1|Радио 1|Options
MENU__RADIO2|Радио 2|Options
MENU__RADIO3|Радио 3|Options
#Тут любые коментарии, пробелы не оставляем!
#
#=========== Всплывающие посказки при наведении =============
#
HINT__CHECKBOX|Всплывающая подсказка чекбокс|Options
HINT__BUTTON|Всплывающая подсказка кнопка|Options
HINT__RADIO1|Всплывающая подсказка радио 1|Options
HINT__RADIO2|Всплывающая подсказка радио 2|Options
HINT__RADIO3|Всплывающая подсказка радио 3|Options
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
FlatX007
а я всегда думал, что прелесть ini-файлов как раз в том, что обращение к его элементам идет не по строке, по названия ключа, значение которого надо вытащить. только надо использовать IniRead для каждого элемента. можно в цикле, если ключей слишком много. главное озаботиться тем, чтобы в названиях клюей был итеративный элемент который в последствие можно будет сунуть в оператор цикла
 
Автор
F

FlatX007

Tattoo!
Сообщения
197
Репутация
35
Для каждого нового перевода нужно просто считать другой языковой файл.

Код:
FileRead($PATH_LANGUADGE_DAT_RUS)
FileRead($PATH_LANGUADGE_DAT_ENG)
 

kzru_hunter

Осваивающий
Сообщения
144
Репутация
49
Я имел в виду, что при добавлении какого-нибудь нового контрола в программу придётся править не только lang-файлы, но и добавлять переменные в LanguageVariable.au3. Вот если бы не приходилось делать последнее (т.е. никуда не приходилось бы добавлять никаких новых переменных), то было замечательно.
 
Автор
F

FlatX007

Tattoo!
Сообщения
197
Репутация
35
Это же такая трудная задача добавить несколько переменных .... да действительно тяжело :blink:
 
Автор темы Похожие темы Форум Ответы Дата
B Стол заказов 1
Верх