crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

KLIF
  опции профиля:
сообщение 5.2.2011, 15:12
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 90
Регистрация: 19.5.2010
Пользователь №: 1739

Спасибо сказали: 0 раз(а)




Репутация:   0  


У меня есть мое контекстное меню , я написал его пункты на украинском языке а оно мне выдает только знаки вопросов ..
Что нужно сделать что бы отображалось на украинском ... и то же самое для контекстного меню по дефолту ... ?

хотя на английском все коректно все отображает , а стоит сменить на урк. или рус сразу заменяет на знаки вопроса или левые символы ...

я делал :
1) QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));

2) через QTranslator ;

3) QAction *edit = new QAction (tr("&??????????") , this ) ;

4) QAction *edit = new QAction (QObject::tr("&??????????") , this ) ;

Причем заменило все не англ. слова во всем коде ....
не могу ни чего сделать ....

Сообщение отредактировал KLIF - 5.2.2011, 16:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
3 страниц V   1 2 3 >  
Начать новую тему
Ответов (1 - 21)
kwisp
  опции профиля:
сообщение 5.2.2011, 16:30
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


интернационализация
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 5.2.2011, 16:30
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


во всех прогах делаю так в конструкторе класса:
codec=QTextCodec::codecForName("Windows-1251");
QTextCodec::setCodecForTr(codec);
Всё русское в tr() будет русским, украинским не знаю
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 5.2.2011, 17:28
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Насчёт украинского не знаю тоже, но вот с русским на "ура" прокатило следующее:

1) все файлы проекта - в кодировке UTF-8
2) кодировка среды по умолчанию - UTF-8
3) строки оборачиваю в QString::fromUtf8("русский текст")

- наткнулся на этот вариант, пытаясь сделать универсально для винды и для линукса. Больше вроде не было проблем :)

Кстати, интересно, правильно ли я сделал, или оно "просто пока работает" ?

Сообщение отредактировал Алексей1153 - 5.2.2011, 19:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
KLIF
  опции профиля:
сообщение 5.2.2011, 18:58
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 90
Регистрация: 19.5.2010
Пользователь №: 1739

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 5.2.2011, 17:28) *
Насчёт украинского не знаю тоже, но вот с русский на "ура" прокатило следующее:

1) все файлы проекта - в кодировке UTF-8
2) кодировка среды по умолчанию - UTF-8
3) строки оборачиваю в QString::fromUtf8("русский текст")

- наткнулся на этот вариант, пытаясь сделать универсально для винды и для линукса. Больше вроде не было проблем :)

Кстати, интересно, правильно ли я сделал, или оно "просто пока работает" ?

Все вопрос решет ... Прошу прощения за свою не терпимость и панику , просто сроки сдачи проекта поджимают ...
это был лаг среды , пере собрал , пере запустил Qt и все пошло ....

П.С
Всем спасибо !!!

Сообщение отредактировал KLIF - 5.2.2011, 18:59
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.2.2011, 19:06
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(abc @ 5.2.2011, 18:30) *
во всех прогах делаю так в конструкторе класса:
а зачем в конструкторе класса?
Это надо делать в функции main(), и желательно до создания окна.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 5.2.2011, 19:49
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


Цитата(Litkevich Yuriy @ 5.2.2011, 19:06) *
а зачем в конструкторе класса?
Это надо делать в функции main(), и желательно до создания окна.

Так работает только для окна, создаваемого в main
Почему желательно до?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.2.2011, 19:52
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(abc @ 5.2.2011, 21:49) *
Почему желательно до?
потому-что в реальной программе могут быть и константы строковые, которые создаются до создания окна.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 5.2.2011, 20:05
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


сделал в main до создания QApplication - заработало во всём приложении
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Obey-Kun
  опции профиля:
сообщение 6.2.2011, 4:51
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 96
Регистрация: 24.3.2010
Пользователь №: 1556

Спасибо сказали: 3 раз(а)




Репутация:   0  


Цитата
Кстати, интересно, правильно ли я сделал, или оно "просто пока работает" ?

Всё правильно, юникод это хорошо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.2.2011, 7:46
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Алексей1153 @ 5.2.2011, 19:28) *
Кстати, интересно, правильно ли я сделал, или оно "просто пока работает" ?
троли утверждают, что в коде не должно быть не ASCII символов. А если их сильно надо тужа воткнуть, то нужно использовать их коды.
Но я пока игнорирую это. Т.к. в GCC всё нормально кушается, если код в UTF-8 без маркера.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.2.2011, 11:47
Сообщение #12


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 6.2.2011, 9:46) *
троли утверждают

Вот , к примеру, был бы конвертер - выделил мышой строку, нажал кнопку трансформации "эксейп-октанты"<->"читабельный вид" . Это было бы дело. Вопрос только - куда его и как прикручивать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.2.2011, 12:32
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Алексей1153 @ 6.2.2011, 13:47) *
Вот , к примеру, был бы конвертер - выделил мышой строку, нажал кнопку трансформации "эксейп-октанты"<->"читабельный вид" . Это было бы дело. Вопрос только - куда его и как прикручивать
да, возможно, еслиб так было, я бы не писал по-русски в коде :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.2.2011, 14:12
Сообщение #14


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


кстати, с неделю назад, когда боролся с кодировками, была отчаянная попытка такой конвертер сделать. Сейчас на скорую руку доделал - можно потестировать (под винду, писалось в студии)

http://files.shelek.su/limited/private-fil...ustext_octo.zip


\320\272\321\201\321\202\320\260\321\202\320\270, \321\201 \320\275\320\265\320\264\320\265\320\273\321\216 \320\275\320\260\320\267\320\260\320\264, \320\272\320\276\320\263\320\264\320\260 \320\261\320\276\321\200\320\276\320\273\321\201\321\217 \321\201 \320\272\320\276\320\264\320\270\321\200\320\276\320\262\320\272\320\260\320\274\320\270, \320\261\321\213\320\273\320\260 \320\276\321\202\321\207\320\260\321\217\320\275\320\275\320\260\321\217 \320\277\320\276\320\277\321\213\321\202\320\272\320\260 \321\202\320\260\320\272\320\276\320\271 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\265\321\200 \321\201\320\264\320\265\320\273\320\260\321\202\321\214. \320\241\320\265\320\271\321\207\320\260\321\201 \320\275\320\260 \321\201\320\272\320\276\321\200\321\203\321\216 \321\200\321\203\320\272\321\203 \320\264\320\276\320\264\320\265\320\273\320\260\320\273 - \320\274\320\276\320\266\320\275\320\276 \320\277\320\276\321\202\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 (\320\277\320\276\320\264 \320\262\320\270\320\275\320\264\321\203, \320\277\320\270\321\201\320\260\320\273\320\276\321\201\321\214 \320\262 \321\201\321\202\321\203\320\264\320\270\320\270)

:)

Сообщение отредактировал Алексей1153 - 6.2.2011, 14:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.2.2011, 18:59
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Алексей1153 @ 6.2.2011, 16:12) *
под винду, писалось в студии
бинарь, чтоли?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.2.2011, 19:35
Сообщение #16


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


ага, экзешник

Сообщение отредактировал Алексей1153 - 6.2.2011, 19:41
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rrmini
  опции профиля:
сообщение 14.4.2011, 14:04
Сообщение #17


Студент
*

Группа: Участник
Сообщений: 41
Регистрация: 23.11.2009
Пользователь №: 1251

Спасибо сказали: 0 раз(а)




Репутация:   0  


сделал так:
int main(int argc, char *argv[])
{


    QTextCodec *russianCodec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(russianCodec);

    QTranslator qtTranslator;
         qtTranslator.load("qt_" + QLocale::system().name(),
                 QLibraryInfo::location(QLibraryInfo::TranslationsPath));
    QApplication a(argc, argv);
         a.installTranslator(&qtTranslator);

         QTranslator myappTranslator;
         myappTranslator.load("myapp_" + QLocale::system().name());
         a.installTranslator(&myappTranslator);

    MainWindow w;
    w.resize(900, 600);
    w.show();
    return a.exec();
}


все хорошо работает, т.е. все надписи tr("русские буквы") отображаются нормально.

без перевода остались только кнопки :
QMessageBox::StandardButton ret;
    ret = QMessageBox::warning(this, tr("Внимание"),
                 tr("Закончить рабоу ?"),
                 QMessageBox::Yes | QMessageBox::No
                 );

народ хочет видеть "Да" или "нет", а слово "Cancel" вообще тоску наводит :)
в убунте как то без проблем все перевелось, а вот с виндой затрудняюсь.
помогите пожалуйста.
спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 14.4.2011, 15:44
Сообщение #18


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


В QLibraryInfo::TranslationsPath есть файлик qt_ru.qm?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rrmini
  опции профиля:
сообщение 14.4.2011, 16:22
Сообщение #19


Студент
*

Группа: Участник
Сообщений: 41
Регистрация: 23.11.2009
Пользователь №: 1251

Спасибо сказали: 0 раз(а)




Репутация:   0  


не совсем понял вопрос.
qt_ru.qm не нашел. есть в C:\Qt\4.6.3\translations qt_ru.ts

файл qt_ru.ts добавил в каталог своего проекта.
в файл проекта .pro добавил строку

TRANSLATIONS = qt_ru.ts

очистил, выполнил qmake, все пересобрал.
вроде как работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.4.2011, 5:24
Сообщение #20


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


rrmini, надо было его просто скомпилировать в qm-файл. Лингвистом (меню "Файл") или консольной программой lrelease (из %QTDIR%\bin)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rrmini
  опции профиля:
сообщение 15.4.2011, 14:14
Сообщение #21


Студент
*

Группа: Участник
Сообщений: 41
Регистрация: 23.11.2009
Пользователь №: 1251

Спасибо сказали: 0 раз(а)




Репутация:   0  


удалил строку TRANSLATIONS = qt_ru.ts из файла проекта
в каталог проекта скопировал из usr/share/qt4/translations/ qm-файл

пересобрал.
тоже работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rrmini
  опции профиля:
сообщение 15.4.2011, 15:33
Сообщение #22


Студент
*

Группа: Участник
Сообщений: 41
Регистрация: 23.11.2009
Пользователь №: 1251

Спасибо сказали: 0 раз(а)




Репутация:   0  


Еще исправления:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTextCodec *russianCodec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(russianCodec);

    QTranslator qtTranslator;
    qtTranslator.load("qt_ru.qm"/* + QLocale::system().name()*/,""
                 /*QLibraryInfo::location(QLibraryInfo::TranslationsPath)*/);
         a.installTranslator(&qtTranslator);

         QTranslator myappTranslator;
         myappTranslator.load("myapp_" + QLocale::system().name());
         a.installTranslator(&myappTranslator);

    MainWindow w;
    w.resize(900, 600);
    w.show();
    return a.exec();
}


теперь при переносе на другой комп. тоже работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 1.6.2025, 8:07