Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Fregloin от Мая 27, 2013, 15:31



Название: Qt4->Qt5 проблемы с локализацией
Отправлено: Fregloin от Мая 27, 2013, 15:31
Привет. Есть файлы xml, вещественные числа пишутся с запятой.
Теперь локаль в Qt5 их читать не хочет. Как разрешить эту проблему?
Вручную переводить файлы не вариант, их много, и генерятся в делфях и других прогах.


Название: Re: Qt4->Qt5 проблемы с локализацией
Отправлено: Fregloin от Мая 27, 2013, 15:33
точнее проблема в том, что decimalPoint = , но почему то атрибут XML toFloat выдает ошибку!! :(

Код:
pos.setX(railItemNode.attribute("PosX").toFloat(&ok)); 
pos.setY(railItemNode.attribute("PosY").toFloat(&ok));

ok==false, результат 0 . :(
в Qt4 все работает нормально.
Не знаю, может ли на это повлиять следующий кусок кода
Код:
#if QT_VERSION <= QT_VERSION_CHECK(5,0,0)
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("CP-1251"));
#endif


Название: Re: Qt4->Qt5 проблемы с локализацией
Отправлено: xokc от Мая 27, 2013, 15:57
А чему равен тег encoding в исходных xml?


Название: Re: Qt4->Qt5 проблемы с локализацией
Отправлено: Fregloin от Мая 27, 2013, 16:02
он пустой.
нашёл как,
QLocale::system().toFloat(QString &,bool &)
странно почему это не применяется в модуле XML


Название: Re: Qt4->Qt5 проблемы с локализацией
Отправлено: xokc от Мая 28, 2013, 13:24
странно почему это не применяется в модуле XML
А почему это должно применяться? А если, вдруг, XML был сгенерирован на системе с другой локалью? Тогда Ваш код не прокатит.