crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Баг в lupdate в 4.6.X
inviZ
  опции профиля:
сообщение 23.6.2010, 14:26
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 5.6.2010
Пользователь №: 1781

Спасибо сказали: 4 раз(а)




Репутация:   1  


Короче говоря, сегодня мною был обнаружен баг. Если класс не принадлежит глобальному пространству имен, lupdate отказывается правильно определять контекст.
Т.е., на такой код:

namespace MyNamespace {

QString MyClass::someFunc() const
{
    return tr("Test");
}

}


Он ругается подобным образом:
C:/Projects/Temporary/TempProject9/main.cpp:13: Qualifying with unknown namespace/class ::MyClass

В результате в TS-файле получаем следующее:
<context>
    <name>MyClass</name>
    <message>
        <location filename="main.cpp" line="13"/>
        <source>Test</source>
        <translation type="unfinished"></translation>
    </message>
</context>


Хотя должно быть, конечно же "<name>MyNamespace::MyClass</name>". Естественно, такой файл перевода оказывается "нерабочим". Пока решил эту проблему так - использую lupdate из 4.5. Хотя, конечно, можно решить проблему, полностью специфицируя контекст, т.е.:

namespace MyNamespace {

QString MyClass::someFunc() const
{
    return MyNamespace::MyClass::tr("Test");
}

}

Но я думаю, понятно, что не самый удобный вариант.
В общем, стоит ли отправить багрепорт?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.4.2024, 7:49