Украинская Баннерная Сеть
Hosting Ukraine

ProtoPlex: программы, форум, рейтинг, рефераты, рассылки!

Каталог авто сайтов



moskaliv.net

Локализация Ваших приложений

Постановка задачи:
Имеем форму 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. Если есть вопросы или замечания буду признателен.

Если у Вас есть предложения то Вам сюда.
Все находящиеся здесь является бесплатным. Если Вы желаете поддержать автора то Вам сюда