powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Локализация приложения в VC++
14 сообщений из 14, страница 1 из 1
Локализация приложения в VC++
    #33351170
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите наиболее корректный способ осуществления многоязыковой поддержки в приложении на VC++.
В VC есть классная штука - String Table, причем оболочка даже дает в ресурсе создать несколько таких таблиц для разных языков. Вопрос: как программно осуществить их смену?
Уникального имени для каждой String Table, как я понял, не существует, и, кроме функции LoadString, которая грузит по одной строке, я в help-e не нашел ничего.
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33351178
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел кое-что тут.
Но там опять же перегрузка по одной строчке, а вот про String Table и зачем их может быть несколько в ресурсе - ответа нет.
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33353989
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хранить в XML.

тогда редактировать и добавлять языки даже пользователь сможет
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33356306
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариантов куча - можно и в XML, и в INI-файлах, и насоздавать массивов для каждого языка и пр., и пр., и пр.
Вопрос непосредственно о VC, его ресурсах, String Table и т.д., т.е. мне бы хотелось узнать как использовать стандартные возможности именно в VC, а не общие концепции многоязыкового программирования...
К тому же держать ресурсы в текстовом файле, да еще и пользователю давать туда лазить, на мой взгляд не есть зер гут.
А почему, кстати, именно XML? В VC есть какой-то супер загрузчик XML? Чем удобнее-то?
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33358931
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MustDieА почему, кстати, именно XML? В VC есть какой-то супер загрузчик XML? Чем удобнее-то?

при чем тут VC - это логика приложения должна уметь переключать языки.

XML потому что приложение тоже можно представить как дерево контролов
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33365331
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsikпри чем тут VC - это логика приложения должна уметь переключать языки.
XML потому что приложение тоже можно представить как дерево контролов
Согласен.
Но, для чего существует возможность создания нескольких String Table для разных языков? Причем, String Table для одного языка может существовать только одна... Как ими манипулировать?
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33367283
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MustDie
Но, для чего существует возможность создания нескольких String Table для разных языков? Причем, String Table для одного языка может существовать только одна... Как ими манипулировать?

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

не надо никаких перекомпиляций, программа сама считает сколько там языков приделали - и добавляет список в меню.
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33369949
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сильно!!!
Примерчик не жалко выложить?
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33370038
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MustDieСильно!!!
Примерчик не жалко выложить?

Я для Borland Builder делал. В VC++ я десктопные апликации не делал.

Да и xml библиотека у меня специфичная.

Но идеалогия простая при запуске формы в конструкторе - пробежаться по контрола и собрать капшены и хинты.

В рабочем режиме в конструкторе пробежать по контроам, найти соответсвующие узлы и в соответствии с языком поменять на данный в контролах
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33374932
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже так придется еще и реализовывать какую-то загрузку языка для его смены в процессе работы приложения, ибо если через конструктор - то, как я понимаю, язык можно установить только в момент запуска.
В принципе, у меня пока и так все работает - я до этого держал у себя многомерный (по количеству языков) массив со всеми строками, требующими перевода, а затем по коду языка и коду сообщения вытаскивал нужное.
Вопрос про StringTable в VC++ я задал потому, что здесь это, похоже, уже реализовано, ибо есть таблица с идентификаторами строк и их значениями для одного языка, и такие таблицы можно создать для каждого языка. Должна же быть реализована возможность их смены!
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33381216
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно!
Как подменить программно StringTable никто не знает...

Тогда такой вопрос:
Все пункты меню, надписи на кнопках и пр. поменять в ходе выполнения программы можно, но как быть с подсказками, которые прописаны в ресурсе? Как, к примеру, мне заставить для ID_FILE_OPEN выдавать посказку не "Open", а на нужном языке? Длительные поиски ничего не дали...
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33382225
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MustDie Должна же быть реализована возможность их смены!
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33382236
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MustDie Должна же быть реализована возможность их смены!

смена осуществляется переключением на другую ресурсную dll.
А смена сообщений на контролах - дело сугубо личное.
поэтому у мелкомягкого не то что соответствующих компонентов нет но и продуктов, поддерживающих хотябы 2 языка. - идет сразу локализация
...
Рейтинг: 0 / 0
Локализация приложения в VC++
    #33382543
Фотография MustDie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос-то потому и возник, что этот Мелкомягкий совершенно без зазрения совести в одном и том же ресурсе (!!!) создавать несколько StringTable!!! При этом идентификаторы строк в таблицах могут совпадать! Одно условие - для одного языка в одном ресурсе может быть только одна таблица!
Нафига тогда это надо?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Локализация приложения в VC++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]