Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: izoomer от Октябрь 30, 2006, 11:59



Название: нет русских букв в приложении ПРИВЕТ МИР
Отправлено: izoomer от Октябрь 30, 2006, 11:59
Не отображает русские буквы в приложени.Скомпилил стандартный hello world, на кнопке написал ПРИВЕТ МИР, запустил , а он мне каракули выдал. (код правил в миднайте)
Локаль  RU_utf-8
Русский везде отображается (и в консоле и в иксах).
Что не так ?

добавлено спустя 14 минут:

 покопался в поиске и вот что нашел

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
. . .
QPushButton hello(QObject::tr("Привет мир"));

так русские буквы есть.
Подскажите, всегда ли при надобности отображения русского текста нужно вставлять перекодировку посредством QObject::tr ?

добавлено спустя:

 чуть не забыл -  QT-4.2.


Название: нет русских букв в приложении ПРИВЕТ МИР
Отправлено: Вудруф от Октябрь 30, 2006, 13:52
Код:
QTextCodec::setCodecForCStrings ( QTextCodec * c )


Название: нет русских букв в приложении ПРИВЕТ МИР
Отправлено: bigirbis от Октябрь 30, 2006, 14:24
Можно еще так:
QString QString::fromLocal8Bit ( const char * str, int size = -1 )  [static]


Название: спасибо
Отправлено: izoomer от Октябрь 30, 2006, 14:33
работает.


Название: нет русских букв в приложении ПРИВЕТ МИР
Отправлено: Dendy от Октябрь 31, 2006, 10:08
Избитая тема. Но стоит повториться.

QObject::tr() нужен для подставления локализованьІх строк по ключу. Етот механизм позволяет не использовать НЕ-латинские символьІ в коде. Использование не-латинских символов само по себе является плохим стилем программирования. В Qt4 можно локализованьІе строки легко засунуть в исполняемьІй файл, чтобьІ не тягать отдельно вместе с программой файл локализации.

По хорошему правильно так:
1. Не юзать
Код:
QTextCodec::setCodecFor...

2. Юзать латинские символьІ в tr():
Код:
QPushButton * button = new QPushButton( tr( "hello" ), this );

3. Юзать QTranslator для перевода строк.
4. Добавить в проект переведённую строку "hello" на русский язьІк как ресурс.


Название: нет русских букв в приложении ПРИВЕТ МИР
Отправлено: bigirbis от Октябрь 31, 2006, 10:51
Цитировать
В Qt4 можно локализованьІе строки легко засунуть в исполняемьІй файл, чтобьІ не тягать отдельно вместе с программой файл локализации.

Можно более развернуто, а то в ассистанте не нашел?


Название: нет русских букв в приложении ПРИВЕТ МИР
Отправлено: Dendy от Октябрь 31, 2006, 12:53
В Ассистанте: The Qt Resource System