Russian Qt Forum
Ноябрь 23, 2024, 01:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Невозможно вывести русский текст без tr()-ов...  (Прочитано 21976 раз)
Cyrax
Гость
« : Декабрь 17, 2007, 19:50 »

Заниматься сейчас переводами и tr-ами (хоть так и правильнее) не буду. Русский текст вывожу открыто, например:
Цитировать
dep.setWindowTitle("русский текст");
Естественно, вместо русского текста каракули (просто не бывает, чтобы сразу было как надо - это факт).
Почитал форум, провёл опыты:
Цитировать
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
- ставлю в самом начале функции main (в этой же функции вывожу текст в заголовок окна) - не работает

Цитировать
QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
- тоже не работает

Те же 2 варианта (utf8 и Windows-1251) c setCodecForCStrings тоже не работает (получаю козяблики)...
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Декабрь 17, 2007, 19:59 »

Какая ось?

ЗЫ: А что так трудно писать tr? Сегодня не буш заниматься переводом интерфейса, а через меняц нужно будет. И что, буш седеть выискивать текст и добавлять tr? Интересный подход, к томуже неправильный...
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
ритт
Гость
« Ответ #2 : Декабрь 17, 2007, 20:09 »

дай угадаю...до кутей делфи мучал?
Записан
Cyrax
Гость
« Ответ #3 : Декабрь 17, 2007, 20:39 »

Цитировать
Какая ось?
Windows XP Pro SP2

Цитировать
ЗЫ: А что так трудно писать tr? Сегодня не буш заниматься переводом интерфейса, а через меняц нужно будет. И что, буш седеть выискивать текст и добавлять tr? Интересный подход, к томуже неправильный...
Возможно, и неправильный. Но сейчас так быстрее (не нужно думать над переводом). Потом время будет, сейчас - 3 недели...

Цитировать
дай угадаю...до кутей делфи мучал?
Неа, "запуздыриванием иконки в трей" не занимаюсь. Delphi и Builder мучал когда-то.
До Qt работал на C#. Сейчас пытаюсь достичь того комфорта, который был при C# (пока безуспешно)...
Записан
Icoz
Гость
« Ответ #4 : Декабрь 17, 2007, 20:48 »

Попробуй так:
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
dep.setWindowTitle( QString( "русский текст" ) );
Потом, по документации надо юзать не "utf8", а "UTF-8"!

А вообще, тебе что, трудно писать tr()? Всего 4 дополнительных символа. И проблем нет, ни сейчас(по форумам лазить не надо), ни потом (интернационализация).
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #5 : Декабрь 17, 2007, 21:14 »

Но сейчас так быстрее (не нужно думать над переводом). Потом время будет, сейчас - 3 недели...

Для того чтобы заключить текст в tr над переводом думать ненужно. Ппереведёшь когда наступит время!
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Декабрь 17, 2007, 21:21 »

Цитировать
дай угадаю...до кутей делфи мучал?
Неа, "запуздыриванием иконки в трей" не занимаюсь. Delphi и Builder мучал когда-то.

Так тогда зачем ты держишь у себя это всё в переенных средах?

Цитировать
C:\GPL\Qt\4.3.1\bin;C:\GPL\MinGW\bin;C:\Program Files\ActiveState Komodo Edit 4.1\;c:\program files\Inprise\vbroker\AppServer\bin;C:\PROGRA~1\Borland\CBUILD~1\Bin;C:\PROGRA~1\Borland\CBUILD~1\Projects\Bpl;c:\program files\Inprise\vbroker\bin;C:\Program Files\Borland\Delphi7\Bin;C:\Program Files\Borland\Delphi7\Projects\Bpl\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files\backburner 2\;C:\Program Files\Common Files\Adobe\AGL;c:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\GPL\MySQL\MySQL Server 5.0\bin

Также почистить INCLUDE и LIB
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Cyrax
Гость
« Ответ #7 : Декабрь 17, 2007, 21:39 »

Цитировать
Так тогда зачем ты держишь у себя это всё в переенных средах?
Потому что у меня это всё установлено. Не сносил, поскольку может понадобиться...

Цитировать
Также почистить INCLUDE и LIB
У меня нет таких...

Цитировать
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
Сейчас это почему-то работает, даже без QString():
Цитировать
dep.setWindowTitle("русский текст");

Цитировать
Для того чтобы заключить текст в tr над переводом думать ненужно. Ппереведёшь когда наступит время!
Ну ладно, пусть будет tr()...
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #8 : Декабрь 17, 2007, 21:44 »

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"))
- ставлю в самом начале функции main (в этой же функции вывожу текст в заголовок окна) - не работает
Это надо устанавливать после создания объекта QApplication !!!
Записан
Cyrax
Гость
« Ответ #9 : Декабрь 17, 2007, 22:35 »

Цитировать
Это надо устанавливать после создания объекта QApplication !!!
Что будет, если поставить до ?
У меня "до" работает...
Записан
ритт
Гость
« Ответ #10 : Декабрь 17, 2007, 23:50 »

у меня - тоже...
Записан
Sergeich
Гость
« Ответ #11 : Декабрь 18, 2007, 00:25 »

Текст куда выводишь в консоль? или в гую?
Записан
vaprele07
Гость
« Ответ #12 : Декабрь 18, 2007, 04:07 »

Желательно в нужной кодировке сохранять модули перед компиляцией, важный момент при работе с левыми иде типа Q~
Записан
AlekSi
Гость
« Ответ #13 : Декабрь 18, 2007, 08:42 »

+1 к написанию tr()
Хотя у меня и так работало.
Записан
Вячеслав
Гость
« Ответ #14 : Декабрь 18, 2007, 09:41 »

Да собственно наплевать когда кодек звать до или после создания QApp'а - он играет со статикой класса Подмигивающий Но из веселух - кодек один для всей проги - у меня студенты долго репу чесали почему половина виджетов кракозябами рисуеться Подмигивающий
PS Или  в каждом нужном месте setCodec звать - IMHO tr проще Подмигивающий
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.146 секунд. Запросов: 22.