Русский в QT-приложениях (Нужен простой способ русификации)

Модератор: Модераторы разделов

MedVed
Сообщения: 112

Русский в QT-приложениях

Сообщение MedVed »

Вопрос: Как проще всего добавить поддержку русского в QT-приложения.

Сейчас использую такой код:

Код: Выделить всё

QTextCodec *c = new QTextCodec::setCodecForName("KOI8-R");
SetCaption(c->toUnicode("Русский текст"))

Хотелось бы проще:

Код: Выделить всё

SetCaption("Русский текст")

Вариантр с TR и созданием отдельного файла перевода не предлагать. :)
Среда: XFree86 3.2/KDE/qt2.3/русские локаль+язык
МСВС 3.0/Linux Mandrake 8.0
Спасибо сказали:
Аватара пользователя
Valerius
Бывший модератор
Сообщения: 1469
Статус: Отпетый КДЕ'шник

Re: Русский в QT-приложениях

Сообщение Valerius »

(MedVed @ Четверг, 14 Апреля 2005, 19:34) писал(а):Вариантр с TR и созданием отдельного файла перевода не предлагать.

А это как раз самый правильный вариант, но если хочется поизвращаться, то выставь в редакторе кодировку UTF-8, а уже потом вводи текст.
Не проверял, но по идее должно сработать.
Свобода есть тонкая полоска между диктатурой и анархией.

---------------------
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Спасибо сказали:
sdk
Бывший модератор
Сообщения: 210

Re: Русский в QT-приложениях

Сообщение sdk »

Можешь еще использовать SetCaption( QString::fromLocal8Bit("Строка на русском") ) ;).
Это конечно не самый правильный вариант, но мы на работе только им и пользуемся :).
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Спасибо сказали:
Аватара пользователя
alphex_kaanoken
Сообщения: 30

Re: Русский в QT-приложениях

Сообщение alphex_kaanoken »

Во первых есть gettext для таких вещей - это правильный подход, во вторых насколько я помню qt работает именно с unicode, ну а если ты пишешь в однобитной кодировке - то извини ты сам себе злостный буратино.

Вообщем совет использовать gettext это наиболее верный подход.
Don't try to look deeper, just look deeper than deep. ©
Спасибо сказали:
Аватара пользователя
TIM
Сообщения: 91
ОС: FreeBSD

Re: Русский в QT-приложениях

Сообщение TIM »

... однобайтной ...
Спасибо сказали:
Аватара пользователя
alphex_kaanoken
Сообщения: 30

Re: Русский в QT-приложениях

Сообщение alphex_kaanoken »

sorry это я малость поторопился - тут беда случилась
Don't try to look deeper, just look deeper than deep. ©
Спасибо сказали:
MedVed
Сообщения: 112

Re: Русский в QT-приложениях

Сообщение MedVed »

2sdk:
SetCaption( QString::fromLocal8Bit("Строка на русском") )

Кажется пробовал что-то подобное. Не работало. :( Попробую еще раз.

2alphex_kaanoken:
gettext - что это, где смотреть?
МСВС 3.0/Linux Mandrake 8.0
Спасибо сказали:
sdk
Бывший модератор
Сообщения: 210

Re: Русский в QT-приложениях

Сообщение sdk »

2alphex:
gettext - это хорошо.
Однако, у Qt - свой подход ;).
Хотя вот KDE-шники пользуют именно gettext :).

2MedVed:
Смотреть как обычно:
man gettext
info gettext ;)
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Спасибо сказали:
Аватара пользователя
shark3D
Сообщения: 37
ОС: Gentoo Linux

Re: Русский в QT-приложениях

Сообщение shark3D »

Для ипользования русского в Qt-программах неободимо использовать кодеки следующим образом:

QTextCodec *russianCodec = QTextCodec::codecForName( "KOI8-R" );
QTextCodec::setCodecForTr( russianCodec );

и далее использовать конструкции

setCaption( tr("Тест на русском!") );

или

QTextCodec *russianCodec = QTextCodec::codecForName( "KOI8-R" );
QTextCodec::setCodecForCStrings( russianCodec );

и далее

setCaption( "Текст на русском!" );
Кто владеет ИНФОРМАЦИЕЙ - тот владеет МИРОМ
Спасибо сказали: