Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Локализация приложения в VC++ / 14 сообщений из 14, страница 1 из 1
29.10.2005, 13:19
    #33351170
MustDie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация приложения в VC++
Подскажите наиболее корректный способ осуществления многоязыковой поддержки в приложении на VC++.
В VC есть классная штука - String Table, причем оболочка даже дает в ресурсе создать несколько таких таблиц для разных языков. Вопрос: как программно осуществить их смену?
Уникального имени для каждой String Table, как я понял, не существует, и, кроме функции LoadString, которая грузит по одной строке, я в help-e не нашел ничего.
...
Рейтинг: 0 / 0
29.10.2005, 13:39
    #33351178
MustDie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация приложения в VC++
Нашел кое-что тут.
Но там опять же перегрузка по одной строчке, а вот про String Table и зачем их может быть несколько в ресурсе - ответа нет.
...
Рейтинг: 0 / 0
31.10.2005, 18:43
    #33353989
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локализация приложения в VC++
хранить в XML.

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

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

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

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

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

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

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

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

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

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

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


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