Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Ваш интернет-бизнес" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
ExCode.ru - программирование на высоком уровне - выпуск 16
Информационный Канал Subscribe.Ru |
ExCode.ru - программирование на высоком уровне | ||||||||||||||||||||
Выпуск №16 ( 2005.11.12 )
|
||||||||||||||||||||
Здравствуйте, уважаемые подписчики!За эту неделю сайт значительно прееобразился, в основном за счет множества новых статей. Поэтому всех приглашаю заходить и читать. А так же приглашаю в наш кодерский магазин, где вы можете купить DVD или CD с различным софтом для программистов. |
||||||||||||||||||||
Новости копьютерного мира:
|
||||||||||||||||||||
Статья номера:
Поддержка многоязычного интерфейсаПодчас бывает актуально встроить в разрабатываемую программу поддержку нескольких языков. Существует множество средств и компонентов для осуществления подобных задач. У всех этих средств один недостаток - они слишком сложны и тяжеловесны. Предлагаем рассмотреть, как можно обеспечить поддержку многоязычности используя более простой и прозрачный метод. Первое, что нужно выяснить - это язык, на котором разрабатывать интерфейс первоначально. Есть веские причины за то, чтобы использовать для этого именно тот язык, на котором написана эта статья. Дело в том, что русский язык менее лаконичен других европейских языков. При переводе на английский или немецкий 90% фраз будет компактнее и интерфейс вашей программы искажен не будет. Для поддержки нескольких языков предлагается следующий простой подход. Интерфейс оформляется на родном языке - русском. Для всех остальных языков составляется словарь в виде:
Например:
И так для всех ресурсов приложения. Словарь поместим в отдельный текстовый файл. Далее, нам необходимо для каждого текстового свойства любого компонента приложения поискать перевод в нашем словаре. Здесь не обойтись без Delphi RTTI. Через Component.ClassInfo получим ссылку на информацию типа, а затем GetTypeData(TypeInf) даст нам указатель на структуру с его описанием.
Далее проходимся по всем свойствам данного (классового) типа:
Отдельный случай - списки TStrings и коллекции типа TTReeNodes и TListItems. Их придется обработать персонально.
Объединяя все написанное, получим компонент для перевода строковых ресурсов.
| ||||||||||||||||||||
Послесловие:
Пользуясь случаем хочу сообщить, что нам все еще нужен ведущий рассылки. |
||||||||||||||||||||
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.excode Архив рассылки |
Отписаться
Вспомнить пароль |
В избранное | ||