![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мультиязыковая поддержка [D7, WinXP]
Still Swamp © (2008-01-31 13:07:00)Есть проект - около пяти сотен формочек.
Появилась забота перевести его на английский. Подозреваю что этим дело не ограничится.
До чего я додумался для визуальных объектов:
1. Сдлеать некую софтину которая обшуршивает DFM на предмет рускоязычнх сообщений и создает к ним файл. Сопоставляющий сигнатуру и содержимое.
2. Сделать форме метод которым она обшуршивает ресурс и все свои компоненты, подставляя вместо сигнатуры данные из файла.
Для кода.
1. Оббежать код собирая все что между скобками и содержит русский. Слить это в файл заменив текст коде вызовом возвращающим значение по сигнатуре.
2. Перекомпилить.
Прежде чем затеваться с таким деянием, хочу узнать, нет ли каких иных вариантов, или может кто то все вышеописанное уже реализовал?
Dimaxx (2008-01-31 13:18:00) [41]Вариант1:
Занести у нуждающихся в локализации контролов в Caption константы типа LNG_LABEL1. При создании формы обшаривать все контролы с caption, содержащей "LNG_", тащить из ini-файла соответствующую константе строку и записывать ее на место константы.
Вариант 2:
Использовать имя компонента в качестве константы. И тащить по нему соответствующие строки.
А для сообщений сделать в ini-файле отдельную секцию и пользоваться константами, например, так:
[SystemMessages]
Warning=<нужный текст>
Далее читать из ini по идентификатору и выводить.
Такой способ наиболее прост для последующего перевода программы на другие языки. Не нужны спец. программы (кроме Блокнота) для изготовления файла для другого языка. Я вообще делал динамическую загрузку в меню всех встреченных файлов локализации и при щелчке на пункте меню с нужным языком он менялся мгновенно.
clickmaker (2008-01-31 13:16:00) [42]Integrated Translation Manager попробуй для начала.
Он делает примерно то, что ты описал в 1.1 и создает ресурсные DLL