crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Как руссифицировать QMessageBox ?, Как руссифицировать QMessageBox ?
flankerr
  опции профиля:
сообщение 27.2.2009, 16:26
Сообщение #1


Активный участник
***

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

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




Репутация:   0  


Как руссифицировать QMessageBox ?
Чтобы он стандартные кнопки выводил по русски а не по английски.
QLocale::system().name() = "ru_RU" т.е. система знает свою локаль
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 27.2.2009, 17:31
Сообщение #2


Жаждущий знаний
***

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

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




Репутация:   3  


Легко. Нужно только перевод подключить translations/qt_ru.qm и будет тебе счастье. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.2.2009, 17:33
Сообщение #3


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

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

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




Репутация:   94  


flankerr, читал: Перевод сообщений Qt?

там для 4.3.х есть TS-файлы. А вот для 4.4.х прийдется использовать те что в дистрибутиве (незнаю в каком состоянии там перевод)
Еще можно у Константина попросить для 4.5.0 (много переведено)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 27.2.2009, 22:13
Сообщение #4


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

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

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




Репутация:   9  


А еще можно при желании перевести нужные строки самому. Например, для QFileDialog в котором по какой-то непонятной причине не перевелось пару надписей, хотя я подключил qt_ru.qm, я сделал дополнительный заголовочный файл foobar.h:
Раскрывающийся текст
#ifndef FOOBAR_H_INCLUDED
#define FOOBAR_H_INCLUDED

static const char* const text[] = {
    QT_TRANSLATE_NOOP("QFileDialog", "Look in:"),
    QT_TRANSLATE_NOOP("QFileDialog", "Create New Folder"),
    QT_TRANSLATE_NOOP("QFileDialog", "Parent Directory").
    QT_TRANSLATE_NOOP("QFileDialog", "File &name:").
    QT_TRANSLATE_NOOP("QFileDialog", "Files of type:").
    QT_TRANSLATE_NOOP("QFileDialog", "Recent Places")
};

#endif // FOOBAR_H_INCLUDED

А потом перевел соответствующие строки с помощью лингвиста (linguist)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 28.2.2009, 16:30
Сообщение #5


Активный участник
***

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

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




Репутация:   0  


Litkevich Yuriy,
что-то не получается у меня описанным способом - как были кнопки с ангийскими надписими так и остались.
Кстати это получается мне вместе с экзешником надо везде тоскать qt_ru.qm ??? это не айс!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.2.2009, 17:05
Сообщение #6


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

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

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




Репутация:   94  


Цитата(flankerr @ 28.2.2009, 19:30) *
qt_ru.qm ??? это не айс!
а чем он в этом от dll'ок отличается?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 28.2.2009, 17:10
Сообщение #7


Активный участник
***

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

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




Репутация:   0  


Litkevich Yuriy,
тем что dll стандартная а qt_ru.qm - нет.
Qt установлено на сотни машин и везде оно одинаковое, так мне надо только экзешник скопировтаь и всё а ту не ещё надо будет тележку за собой тоскать. Пока проект умещается в рамках одного экзешника ради двух строк первода тоскать доп файл это не айс.
в таком случае красивее сделать свой messagebox что я и сделал.

Сообщение отредактировал flankerr - 28.2.2009, 17:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.3.2009, 5:57
Сообщение #8


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

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

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




Репутация:   94  


Цитата(flankerr @ 28.2.2009, 20:10) *
тем что dll стандартная а qt_ru.qm - нет.
ну dll-то точно нестандартная, может это в линухе (*.so). но там и qm поидее есть, просто не допереведенная.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Константин
  опции профиля:
сообщение 2.3.2009, 1:52
Сообщение #9


Студент
*

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

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




Репутация:   1  


Цитата(flankerr @ 28.2.2009, 17:10) *
в таком случае красивее сделать свой messagebox что я и сделал.

в данном случае это как раз не красивее, а глупее /* уж извините */. красивее было бы положить qt_ru.qm в ресурс и подгружать из ресурса. к тому же, оригинальный qt_ru.ts можно урезать, выбросив все неинтересующие строки - qm после пересборки будет весить чуть меньше (если беспокоит размер бинаря)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 2.3.2009, 11:08
Сообщение #10


Активный участник
***

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

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




Репутация:   0  


Цитата(Константин @ 2.3.2009, 1:52) *
красивее было бы положить qt_ru.qm в ресурс и подгружать из ресурса.
а вот об этом я не подумал :)
Хотя мне всё равно нужен был свой диалог т.к. местами требуется не только сообщение выдать но и получить некий ввод.

Сообщение отредактировал flankerr - 2.3.2009, 11:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 20.4.2024, 14:03