Как проще всего сделать многоязычный интерфейс (c++ Builder 6)

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем WishMaster, 18 янв 2009.

  1. WishMaster

    WishMaster Гость

    Есть программа, сделанная в C++ Builder 6 с украинским интерфейсом. Сейчас мне нужно организовать английский и русский языки. Как я себе это представляю – программа ставится по умолчанию с каким-либо языком (либо можно выбрать в инсталляторе). После этого можно выбрать в настройках любой язык.
    Я только один раз делал программу с несколькими языками и тогда просто при изменении языка менял из программы надписи на всех элементах, а также проверял какой сейчас язык при выводе определенных сообщений. Но это конечно все не правильно и для программ по больше не годится – не хочется засорять код всякой чепухней.
    Подскажите, пожалуйста, как можно легче всего сделать то, что мне нужно (не хочется долго париться – времени в обрез)? Чтобы в будущем можно было легко добавить и другие языки в программу. Как это делают опытные люди?
    Заранее благодарен за все советы :)
     
  2. etc

    etc Гость

    Используют стандартные средства.
     
  3. Aleksey

    Aleksey Гость

    Опытные люди изначально предусматривают решения с поддержкой разных языков, поэтому больших проблем потом не возникает.

    В некоторых программах поддержку нескольких языков делают так. Все тексты сообщений, пунктов меню и прочие "надписи на компонентах" сохраняют, как константы в текстовых файлах. При старте программы происходит чтение этих текстов из нужного файла и установка нужных надписей на компонентах, инициализация текстовых сообщений нужными строками. Можно назвать все это языковыми плагинами :).
    Если, скажем, файл не найден, то инициализации не происходит и все компоненты остаются со стандартным языком, например английским. Если после старта программы надо поменять язык, то читается новый файл и устанавливаются нужные тексты, то есть выполняется та же самая процедура, что и при старте программы.
    При таком построении легко добавить новый язык в интерфейс в любое время и это может сделать неподготовленный человек, просто по аналогии с текстом другого языка. Вместо внешних языковых файлов можно все константы положить в отдельный модуль и зашить в программу, но тогда надо будет перекомпилироваться при добавлении нового языка.

    Естественно, в вашем случае весь код придется перелопатить, но это придется сделать в любом случае. К тому же есть и другие способы, в частности и стандартный, предлагаемый самим Builder-ом (искать в сторону Localization).
     
Загрузка...

Поделиться этой страницей