Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Sergey B. от Октябрь 25, 2004, 15:13



Название: русский в приложениях QT
Отправлено: Sergey B. от Октябрь 25, 2004, 15:13
Как в приложениях Qt, для динамически создаваемых виджетов организовать сделать надписи на русском?
Например
void Form1::init()
{
textEdit1->append("Привет) ;    
}

выводит Ïðèâåò, ñëàäêèé ìîé...

То же самое, для всех элементов, для кнопок и т.д.
Однако, если надписи делать в Qt Designer, то всё работает нормально!!!

Заранее благодарен...


Название: русский в приложениях QT
Отправлено: Zmey от Октябрь 25, 2004, 15:55
в main() пишешь: после QApplication app( argc, argv ); пишешь QTextCodec::setCodecForTr( QTextCodec::codecForName("utf8") );

а потом если хочишь на русском бери строку в tr(), то есть так:
extEdit1->append(tr("Привет")) ;

и не забудь в main.cpp добавить #include <qtextcodec.h>


Название: русский в приложениях QT
Отправлено: Sergey B. от Октябрь 26, 2004, 10:23
Спасибо, всё работает...
 :D


Название: русский в приложениях QT
Отправлено: Sergey B. от Октябрь 26, 2004, 10:30
Да, нашёл ещё в книге "C++ GUI Programming with Qt 3":
QTextCodec *russian =QTextCodec::codecForName("utf8");
QTextCodec::setCodecForTr(russian);

Поддерживаемые кодировки:

Apple Roman

Big5-HKSCS

CP874

CP1250

utf8

CP1252

CP1253

CP1254

CP1255

CP1256

CP1257

 
CP1258

EUC-JP

EUC-KR

GB2312

GB18030

GBK

IBM-850

IBM-866

ISO 8859-1

ISO 8859-2

ISO 8859-3

 
ISO 8859-4

ISO 8859-5

ISO 8859-6

ISO 8859-7

ISO 8859-8

ISO 8859-8-I

ISO 8859-9

ISO 8859-10

ISO 8859-11

ISO 8859-13

ISO 8859-14

 
ISO 8859-15

ISO 10646

UCS-2

JIS7

KO18-R

KOI8-U

Shift-JIS

TIS-620

TSCII

UTF-8


Название: русский в приложениях QT
Отправлено: Alikus от Октябрь 28, 2004, 16:53
Я, например,  пользуюсь в большинстве случаев QString::fromLocal8Bit("Привет!");

И все О'к! :wink:


Название: Linux<->Win?
Отправлено: Vilgeforce от Декабрь 21, 2005, 12:41
Люди, а как быть, если разработка ведется в *nix и все недписи там на KOI8-R, а нужно и виндовую версию делать с CP-1251?

fromLocal8Bit в линухе прекрасно работает, а при переносе кода без изменений в винду мракозябры. Приведенные способы с установкой кодеков в KOI8 или 1251 не помогли.

Есть способы?


Название: русский в приложениях QT
Отправлено: DenKor от Декабрь 21, 2005, 13:52
Забивать текст в кодировке utf-8
Либо текст указывать на английском и в зависимости от системы загружать языковый файл


Название: русский в приложениях QT
Отправлено: Vilgeforce от Декабрь 21, 2005, 14:26
Цитата: "DenKor"
Забивать текст в кодировке utf-8
Либо текст указывать на английском и в зависимости от системы загружать языковый файл


Ну, уже была идея с условной компиляцией. А вот с UTF-8 - это как сделать? Можно ли средствами Дизайнера список строк сгенерить? Или в ручную придется?


Название: русский в приложениях QT
Отправлено: Dendy от Декабрь 21, 2005, 14:32
Любой текст НЕ латинскими буквами в коде - очень плохой стиль программирования на Qt.

В Qt3 ето ещё можно понять - не хотелось таскать за программой лишний файл трансляции.

В Qt4 такой проблемьl уже нет. Файл трансляции добавляет как ресурс, вкомпиливается в исполняемьlй файл и открьlвается например как:

Код:
QTranslator * translator = new QTranslator( ":/ru.qm" );


Советую рубать плохие привьlчки на корню.


Название: русский в приложениях QT
Отправлено: Vilgeforce от Декабрь 21, 2005, 14:41
Ну, у меня трешка :-(