Название: перевод внутри макросов - возможно ли это? Отправлено: Varan от Январь 10, 2012, 14:41 Есть макрос вида
Код Вот этот самый tr(#type) не ловится системой перевода Qt, соотв., все вызовы этого макроса ничего не вносят в файл перевода. Можно ли это как-то обойти? Название: Re: перевод внутри макросов - возможно ли это? Отправлено: kibsoft от Январь 10, 2012, 15:14 Цитировать If you need to have translatable text completely outside a function, there are two macros to help: QT_TR_NOOP() and QT_TRANSLATE_NOOP(). Думаю должно сработать.Название: Re: перевод внутри макросов - возможно ли это? Отправлено: kibsoft от Январь 10, 2012, 15:16 Хотя нет, там нужны строковые литералы, а тут у вас #type.. По ходу никак нельзя обойти.
Название: Re: перевод внутри макросов - возможно ли это? Отправлено: andrew.k от Январь 10, 2012, 15:48 макрос разворачивается на этапе компиляции.
lupdate же не компилит исходники, а просто просматривает на предмет нужных строчек. Поэтому никаким образом это невозможно. Зачем вообще такое нужно? Макросы то это уже не очень хорошо, имхо, а интернационализация макросов это надо было такое выдумать) Название: Re: перевод внутри макросов - возможно ли это? Отправлено: kambala от Январь 10, 2012, 15:55 на самом деле бывает, что хочется такого. обычно приходится решать через списки/словари/свич-кэйсы.
Название: Re: перевод внутри макросов - возможно ли это? Отправлено: andrew.k от Январь 10, 2012, 16:00 на самом деле бывает, что хочется такого. обычно приходится решать через списки/словари/свич-кэйсы. Совершенно не понимаю. Как и зачем?Название: Re: перевод внутри макросов - возможно ли это? Отправлено: Varan от Январь 10, 2012, 16:20 Зачем? Потому что очень много однотипных вызовов этого макроса, и строка tr(#type) на самом деле гораздо сложнее, я тут упростил. "type" - это enum, набор значений которого может со временем меняться. Т.е. нужно это для сокращения записи и упрощения сопровождения кода.
В общем, это класс своего enum-а с тэгами, tagged enum. Кстати, как выяснилось, lupdate вполне справляется с такой системой: Код Это нужно для перевода в не-Qt классах. Именно это, строго говоря, в макросах из условия и стоит. Вне макросов это работает на-ура. Так что, со стандартными tr() я даже не проверил задачку. Название: Re: перевод внутри макросов - возможно ли это? Отправлено: kambala от Январь 10, 2012, 17:01 "type" - это enum, набор значений которого может со временем меняться. Т.е. нужно это для сокращения записи и упрощения сопровождения кода. вот, точно! а я все пытался вспомнить где же я пытался переводить макросы.В общем, это класс своего enum-а с тэгами, tagged enum. |