Локализация Ваших приложений
Постановка задачи:
Имеем форму frmMain свойство Caption которого необходимо переводить при переходе на другой
язык интерфейса. Надпись lblInform свойство Caption которого тоже подлежит переводу. И
кнопка cmdLocalise с таким же свойством для перевода.
Решение задачи:
Для каждого языка интерфейса создаем ini подобный файл такого вида:
Украинский интерфейс файл Ukrainian.lng (расширение не имеет значения ставите как Вам удобно)
[frmMain]
formCaption=Перевірка класу clsLocalise
lblInform=Виберіть мову інтерфейсу і натисніть кнопку Локалізувати
cmdLocalise=Локалізувати
Для русского файл Russian.lng:
[frmMain]
formCaption=Проверка класса clsLocalise
lblInform=Выберите язык интерфейса и нажмите кнопку Локализировать
cmdLocalise=Локализировать
Для английского файл English.lng:
[frmMain]
formCaption=Verification of class of clsLocalise
lblInform=Choose the language of interface and push the button to Localize
cmdLocalise=Localize
Для немецкого German.lng:
[frmMain]
formCaption=Versuch der Klasse clsLocalise
lblInform=Wahle Sprache interface und auf Knopf zu druckt zu lokalisieren
cmdLocalise=Zu lokalisieren
Размещаем их в папке Localise в рабочей директории Вашего приложения.
Где:
[frmMain] - имя раздела я обычно использую для обозначения модуля
которому принадлежат элементы.
formCaption, lblInform, cmdLocalise - элементы
формы подлежащие переводу.
Значения этих ключей соответствено перевод свойств Caption элементов на соответствующий язык
интерфейса.
Добавляем в проект модуль modStringLib.bas (поставляется в архиве с исходником), добавляем контрол
cntRegINI (поставляестся в архиве или можно скачать
здесь. И собственно добавляем класс clsLocalise (как это
делается надеюсь Вы знаете, если нет, изучайте основы Visual Basic).
Дальше для локализации на украинский язык:
Lc.LocaliseFile=App.Path & "\Localise\Ukrainian.lng"
Для локализации на русский:
Lc.LocaliseFile=App.Path & "\Localise\Russian.lng"
Для английского:
Lc.LocaliseFile=App.Path & "\Localise\English.lng"
Для немецкого:
Lc.LocaliseFile=App.Path & "\Localise\German.lng"
Дальше
frmMain.Caption=Lc.Localise ("frmMain","formCaption")
lblInform.Caption=Lc.Localise ("frmMain","lblInform")
cmdLocalise.Caption=Lc.Localise ("frmMain","cmdLocalise")
Конечно было бы неплохо проверить файл локализации на корректность. Для этого один из файлов
назначаем эталонным и с ним сравниваются все файлы локализации (т. е. дожны совпадать
количество, имена разделов и ключей).
Делаем это так:
Назначаем эталонным
файл Ukrainian.lng и проверяем файл English.lng
Etalon=App.Path & "\Localise\Ukrainian.lng"
LocaliseF=App.Path & "\Localise\English.lng"
flag=Lc.IsCorect (Etalon, LocaliseF)
Если файл коректен flag примет значение True если нет False.
Полный список свойств, методов и событий класса смотрите в файлах Readme архива. Перед использованием обязательно прочтите один из файлов Readme. Если есть вопросы или замечания буду признателен.
Все находящиеся здесь является бесплатным. Если Вы желаете поддержать автора то Вам сюда