Дано: довльно большая программа на С++ Билдер — ~1,5 мегабайт исходников. Все формы, компоненты имеют англоязычные подписи. Начальство возжелало русификацию, и побыстрее.
Вопрос 1: можно ли это сделать быстро, в пределах недели?
Приходит в голову фантазия об автоматическом обходе всех компонентов и смены текстовых пропертей при старте. Реально ли это?
Здравствуйте, komov, Вы писали:
K>Вопрос 1: можно ли это сделать быстро, в пределах недели?
Хм. Я сейчас посмотрел проект, который если верить таймшиту сделал за три недели — 650Кb исходников, 850 — dfm. Даже если ты под исходниками имел в виду "без dfm" — видимо, реально.
K>Приходит в голову фантазия об автоматическом обходе всех компонентов и смены текстовых пропертей при старте. Реально ли это?
Не так давно flamer здесь исследовал эту тему. А чем не подходят стандартные дельфовые средства aka ITE?
Re: Заговорить по-русски
От:
Аноним
Дата:
06.04.05 21:30
Оценка:
Здравствуйте, komov, Вы писали:
K>Здравствуйте все.
K>Дано: довльно большая программа на С++ Билдер — ~1,5 мегабайт исходников. Все формы, компоненты имеют англоязычные подписи. Начальство возжелало русификацию, и побыстрее.
Качественно не реально.
Re[2]: Заговорить по-русски
От:
Аноним
Дата:
07.04.05 05:55
Оценка:
Здравствуйте, Softwarer, Вы писали:
K>>Вопрос 1: можно ли это сделать быстро, в пределах недели?
S>Хм. Я сейчас посмотрел проект, который если верить таймшиту сделал за три недели — 650Кb исходников, 850 — dfm. Даже если ты под исходниками имел в виду "без dfm" — видимо, реально.
Значит будем стремиться.
K>>Приходит в голову фантазия об автоматическом обходе всех компонентов и смены текстовых пропертей при старте. Реально ли это?
S>Не так давно flamer здесь исследовал эту тему. А чем не подходят стандартные дельфовые средства aka ITE?
Это что, как? Легко ли начать это использовать? Как должен выглядеть старт?
Обращаясь ко всем, кто меня слышит. Если кто-то умеет делать автоматический обход всех компонентов и манипуляцию с текстовыми пропертями типа Кэпшен, опубликуйте здесь рецепт, пожалуйста.
Ещё приходила в голову идея перехватывать WM_SETTEXT и подставлять свой текст. Сделал оконную функцию, вставил. Перехватить удалось только одно (1) такое сообщение. Или VCL вообще не использует этот механизм для установки текста в контролы, или я просто до очереди сообщений не добрался. Объясните пожалуйста, кто может.
Здравствуйте, Аноним, Вы писали:
А>Обращаясь ко всем, кто меня слышит. Если кто-то умеет делать автоматический обход всех компонентов и манипуляцию с текстовыми пропертями типа Кэпшен, опубликуйте здесь рецепт, пожалуйста.
Здравствуйте, komov, Вы писали:
K>Здравствуйте все.
K>Дано: довльно большая программа на С++ Билдер — ~1,5 мегабайт исходников. Все формы, компоненты имеют англоязычные подписи. Начальство возжелало русификацию, и побыстрее.
K>Вопрос 1: можно ли это сделать быстро, в пределах недели?
K>Приходит в голову фантазия об автоматическом обходе всех компонентов и смены текстовых пропертей при старте. Реально ли это?
Вообще за неделю качественный перевод сделать не реально.
Неделю будет копаться переводчик,
минимум пару дней будешь подгонять размеры кнопок и форм,
неделью на ревью интерфейса (оно может конечно и быстрее пойти, но поспешишь.. как говориться..),
ну и последние исправления, инсталляха итд.
Короче минимум месяц А если ещё и в ITE будешь делать.. тогда плюсуй ещё кучу времени
Ура! Спасибо. Помогло. Приступил к внедрению.
A>А если по быстрому и интерфейс программы достаточно стабилен то посмотри здесь. Я пользуюсь этим компонентом — особых нареканий нет.
[]
K>Решением пока признан компонент уважаемого Flamer'a. Время покажет, какой будет опыт эксплуатации.
Главное, чтобы вы юзали последнюю версию — она там где-то ниже по ветке, а не сразу в корне
У меня вроде нормально все пашет с этим компонентом... Есть правда одит behaviour, который by design: допустим, у вас свойство IgnoreComponentTag у транслятора выставлено в -100 и на форму последовательно брошены 3 TLabel. Если у второго TLabel установить свойство Tag в -100, то третий переводится не будет. Там в одном месте надо заменить return на continue.
Впрочем, это совсем некритично, т.к. IgnoreComponentTag используется, по опыту, крайне редко. В общем, если будут вопросы по компоненту — велкам.