Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Yegor от Апрель 18, 2015, 10:04



Название: Перевод модуля "serialport"
Отправлено: Yegor от Апрель 18, 2015, 10:04
Здравствуйте!

Использую Qt 5.4.0

Делаю приложение, которое использует виджеты и последовательный порт.

Для этого в .pro файле подключаю такие модули:
Код:
#Qt modules.
QT += widgets serialport

Чтобы перевести такое приложение на русский, беру и подключаю к приложению такой готовый, поставляемый с Qt5.4.0 файл перевода:
qtbase_ru.qm

Это переводит gui, окна сообщения, сообщения об ошибках ядра, и т.д. Но данные, касающиеся модуля serialport, не переводит (например тексты ошибок, возникающие при работе с последовательным портом).

Подскажите, пожалуйста, есть ли готовый файл перевода, входящий с поставкой в Qt 5.4.0, чтобы переводить модуль serialport?


Название: Re: Перевод модуля "serialport"
Отправлено: kuzulis от Апрель 18, 2015, 14:06
Цитировать
например тексты ошибок, возникающие при работе с последовательным портом

Тексты ошибок не переводятся, т.к. являются системными. По идее, они должны уже быть в нужном переводе (за исключением пары-трех, которые не системные, а "самописные"). Например в "русском" Windows все сообщения генерируются на русском.. Но как в Linux/Mac я не знаю (там, вероятно все на английском будет)..

Цитировать
Подскажите, пожалуйста, есть ли готовый файл перевода, входящий с поставкой в Qt 5.4.0, чтобы переводить модуль serialport?

Нет такого, т.к. в QtSerialPort нет нигде сток, обернутых в tr().

UPD:

Цитировать
Но как в Linux/Mac я не знаю (там, вероятно все на английском будет)..

По идее, оно должно быть также локале-зависимым (как я понял), т.к. внутри Qt-шных кишок используется вызов strerror (http://linux.die.net/man/3/strerror). Но другое дело, что, кажется, это невозможно из-за ограничений в текущей реализации Qt-шной функции
Код
C++ (Qt)
QString qt_error_string(int errorCode)
 
которая используется для преобразования кода системной ошибки в текст, в которой это делается для *nix так:
Код
C++ (Qt)
...
ret = QString::fromLocal8Bit(strerror(errorCode));
...
 

т.е. здесь меня смущает fromLocal8Bit, что не даст желаемое...


Название: Re: Перевод модуля "serialport"
Отправлено: Авварон от Апрель 25, 2015, 10:01

т.е. здесь меня смущает fromLocal8Bit, что не даст желаемое...

Даст