>> но тут возникает одна небольшая >> трабла: не для всех форматов файлов есть экстракторы строк. то есть >> какой-либо XML или C запросто, а с html+TT я что-то искал искал и не >> нашел ничего приличного.
ИБ> Я наткнулся на Locale::Maketext::Extract ИБ> http://search.cpan.org/~drtech/Locale-Maketext-Lexicon-0.77/lib/Locale/Maketext/Extract.pm ИБ> он умеет вытаскивать строки из template toolkit и из самого перла. В ИБ> tt он вытаскивает из tt строки, которые типа в таком формате: ИБ> {{{ ИБ> [% | l(arg1,argn) %]string[% END %] ИБ> [% 'string' | l(arg1,argn) %] ИБ> [% l('string',arg1,argn) %] ИБ> }}} ИБ> Я поигрался, действительно вытаскивает (только пока не понятно, как ИБ> написать фильтр l). ИБ> Не эксперементировал с этим модулем? Я думаю что идея вытаскивать строки на автоопределении - заведомо порочная по своей сути. строки надо маркировать для перевода. потому что далеко не все строки нужно переводить. >> в итоге пришел к такой структуре: >> >> в корне проекта Makefile >> в каталоге tt/ лежит шаблон шаблонов (один или несколько) >> далее по команде make >> самописный скрипт извлекает из указанных источников все помеченное >> тегами <gt>...</gt> и кладет в .po ИБ> У тебя только в шаблоне есть вещи которые нужно перевеодить? так в том и фишка что не только в шаблоне, потому я их маркирую везде. потому и утилиту написал :) >> далее работа с этими po стандартными gettext'овыми утилитами (клеим их >> в один большой .po ИБ> А как ты объединяешь несколько po файлов в один? msgmerge (я ссылку на реальный makefile приводил) >> и кладем в какое-то место где переводчик может >> найти, ну а make далее ищет po-шки вида LANG.po и из них из шаблона >> шаблонов собирает >> index.ru.tt, index.cs.tt и даже blah.cs.cgi ИБ> Я правильно тебя понимаю, что сначала ты запускаешь что-то вроде "make ИБ> extract", а после перевода дешаешь типа "make create" чтобы у тебя все ИБ> шаблоны собрались? ИБ> Расскажи, пожалуйста, немного поподробнее как у тебя собираются ИБ> шаблоны. Меня очень заинтерсовало, что ты создаешь еще и перл скрипт. ИБ> Мне кажется, что с этим как-то очень неудобно работать - поправил ИБ> скрипт и не можешь сразу его запустить для дебага, нужно програть ИБ> через "make create" и только потом запускать (хотя, конечно, это ИБ> автоматизируется). В перл коде ты так же размечаешь текст для перевода <gt>> ...</gt> ? перл-скрипт тут как экстрактор и строитель. просто готовых инструментов не оказалось. надо бы отдокументировать и довести до уровня "обычная утилита". в перл-коде можно размечать как-то по другому, для перла-то есть экстракторы готовые (например ~~). речь шла о html, JS, TT и даже просто txt >> недостатков два: >> - велосипед на экстракт/сборку таргета >> - после каждой правки главного шаблона надо звать make ИБ> Если я правильно понял, как все работает, то тогда еще один недостаток ИБ> можно записать - без make проект будет выводить кучу ненужных тегов "<gt>> ", плюс нативного gettext-а (в сях во всяком случае) то что если ИБ> нет перевода, то выводится нормальный английский текст. для вывода я не использую шаблон с <gt>. а всегда сгенеренный шаблон. для английского получается что не нужен переводчик а напрямую просто как бы удаляются теги ИБ> Вот, еще вопрос осознал: из-за всей этой кантители с po файлами проект ИБ> сначала нужно делать на английском языке, я правильно понимаю? да, именно. причем в любом случае с интернационализацией главный язык должен быть английский. потому что перевести с русского ты не найдешь желающих >> однако плюсы по моему важнее: >> - с форматом .po переводчики хорошо умеют работать, если проект >> интересный скоро очень появится множество языков ИБ> С моей точки зрения существует еще один большой плюс - поскольку у ИБ> тебя собираются шаблоны и все остальное до момента исползовать, то ИБ> скорость работы всего этого хозяйства выше, чем если бы языки ИБ> подгружались в процессе исполнения. ага и это тоже Ж) -- ... mpd is off . ''`. Dmitry E. Oboukhov : :’ : email: [email protected] jabber://[email protected] `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
signature.asc
Description: Digital signature
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
