Название: lupdate и namespace Отправлено: SLiDER от Октябрь 25, 2006, 15:47 Тут вот какое дело. Решил коечто из своего софта интернационализировать. Уткнулся вот в такую проблему, lupdate оказывается (согласно документации и моим опытам) ни в какую не хочет воспринимать пространства имен (namespace). В качестве костыля тролями предлагается в начале каждого файла с исходниками, где используются функции tr() для класса MyClass в пространстве имен MyNamespace, писать вот такой коментарий
Код: // TRANSLATOR MyNamespace::MyClass И, типа, это должно помочь lupdate-у сформировать правильно имя контекста. Но не тут то было. Вобщем у меня это не работает. Пока вписываю правильное имя контекста в файл *.ts ручками, но как-то это не по человечески. Может кто сталкивался? Скажите, что я делаю не так? Тестовый проектик можно взять здесь -> http://slil.ru/23301259. Файл bad_test_ru.ts сгенерен lupdat-ом, а test_ru.ts это уже моя ручная правка. З.Ы. Qt4.2.0 Название: lupdate и namespace Отправлено: noosooth от Октябрь 25, 2006, 20:42 Попробуйте изобразить комментарий вот так:
Код: /* Вроде должно помочь. Название: lupdate и namespace Отправлено: SLiDER от Октябрь 25, 2006, 21:27 Цитата: "noosooth" Попробуйте изобразить комментарий вот так: Код: /* Вроде должно помочь. Спасибо, сработало. Но ... хммм ... Честно говоря это, в некотором роде, маразм. :? Ну да ладно. :D Название: lupdate и namespace Отправлено: noosooth от Октябрь 26, 2006, 17:24 Цитата: "SLiDER" Спасибо, сработало. Но ... хммм ... Честно говоря это, в некотором роде, маразм. :? Ну да ладно. :D Это у нас такой 'забавный' норвежский парсер. :) Я кстати тут тоже некоторым образом озадачен. В 4.2.0 'lrelease' перестал по умолчанию сжимать qm файлы. Казалось бы добавляем опцию '-compress' и живем спокойно. Но я случайно заметил такую неприятную вещь. Генерирую из ts файла сжатый qm - все нормально. Генерирую из того же ts файла несжатый qm - перестают переводиться несколько строк из одного контекста. Причем, всё остальное переводится нормально, даже из этого же контекста. Бред какой-то. Боюсь опять в норвежском королевстве неладно... Хотя мог и сам напортачить. Буду пробовать воспроизвести это на простом примере. добавлено спустя 15 часов 36 минут: Виноват. Сам напортачил. Просто для проблемных строк тупо передавался не тот контекст в QCoreApplication::translate(...) Но вот ситуация, что при неверно переданном контексте translate(...) находит перевод в сжатом qm и не находит в несжатом - всё таки довольно странная. Похоже что вот здесь (http://www.trolltech.com/developer/task-tracker/index_html?method=entry&id=98952) написано как раз про этот случай. Правда, насколько я могу судить теперь, это дело до сих пор не пофиксено. Название: lupdate и namespace Отправлено: SLiDER от Октябрь 27, 2006, 10:37 У Бланшет в книге про Qt 4, в разделе про локализацию, есть упоминание о методе clear() который якобы есть у QTranslatora, который можно испльзовать для его (QTranslatora) очистки, что бы не лепить файл перевода с английского на английский, при динамической смене языка. Но этим методом в QTranslatorе и не пахнет, он есть в QTranslatorPrivate, но до него конечно же не добраться. Внимание вопрос: "Кто тут глючит, я или Бланшет, или может троли в версии 4.2 зачем-то отломали этот метод?". Не совсем понятно как быть в данной ситуации, можно конечно грузить в транслятор не существующий файл перевода (он, вроде бы, тогда сам сбрасывается), но как-то это криво. :?
|