Перевод интерфейса
От: mikadi Россия  
Дата: 28.03.03 08:49
Оценка:
У нас тут встала задача — перевести программу на английский язык. Когда переводили сами — проблем не было
Но сейчас самим и времени нет, и перевод нужен с гарантированным качеством. Так что будем обращаться к профессиональным переводчикам.
С переводом справки (HTMLHelp) проблем нет. Есть проблема с переводом интерфейса программы (сообщений, диалогов, менюшек и т.п.). Проблема в том, каким образом встраивать переведенные строки в программу. Хочется эту процедуру упростить, чтобы не делать лишней работы.

Я тут вижу такие варианты:

  1. Отдать переводчику исходники (VC++) — пусть он прямо в ресурсах правит, с помощью Студии. Переводчик на такой вариант готов, а вот я — нет: совсем не хочется отдавать кому-то исходники.

  2. Переделать программу — все строки загружать не из ресурсов, а из какого-то внешнего текстового файла. Частично мы так и сделали (по другим причинам), но полностью на это переходить не будем — мороки много.

  3. Дать переводчику rc-файл, он его переведет, а мы потом вручную вставим в программу. Минусов тут два:
    а) переводчик во время перевода не сможет посмотреть, как это все будет выглядеть в программе
    б) нам придется потом проделать много работы, изменяя ресурсы.

  4. Воспользоваться какой-нибудь утилитой, типа Resource Hacker. Это вполне приличный вариант, но Resource Hacker при выгрузке ресурсов в rc-файл вместо символических имен констант (типа IDD_ABOUT) пишет их числовые значения (разумеется — откуда он символические имена возьмет-то?). Поэтому нам все равно придется при добавлении переведенных ресурсов пробелать много работы.
Может, кто-то уже сталкивался с такими проблемами?
Может, есть какая-то другая технология, или утилита, более навороченная, чем Resource Hacker?

Пока-что я остановился на варианте 4, но придется нам, наверное, писать свою утилиту, которая обновляет "правильный" (студийный) rc-файл на основе resource.h и переведенного rc-файлы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.