crossplatform.ru

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

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Мультиязычность для готовых форм .ui
AzateQ
  опции профиля:
сообщение 16.4.2011, 22:54
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.4.2011
Пользователь №: 2605

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




Репутация:   0  


Никак не могу разобраться с тем, как выводить готовые формы переведенными...
Создаю в Qt Creator проект, ничего не добавляю, просто пустое окно.
Редактирую .pro, добавляя TRANSLATIONS ..._ru.ts
Запускаю lupdate, а потом открываю сгенерированный файл в Linguist'е. Он, понятное дело, находить только MainWindow, перевожу его, при этом Linguist в окне "Исходники и формы" корректно отображает имя формы на русском языке...
Далее запускаю lrelease, и устанавливаю перевод в main.cpp, потом, как я понимаю, надо подредактировать конструктор, чтобы окно переведенным выходило, но что там писать, я так и не додумался.
Если не использовать .ui все работает, но хотелось бы научиться делать это еще и используя Designer...
Может я в поисковиках какие-то неправильные запросы ввожу, но ничего толкового на эту тему не нашел... Да и вообще, кругом копипасты немногочисленной информации о работах с формами, зато материалов про добавление виджетов через код пруд пруди... Полистал Шлее, полистал стандартную справку, но ничего полезного так и не нашел...
Надеюсь, что хоть тут помогут.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.4.2011, 23:29
Сообщение #2


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

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

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




Репутация:   94  


Цитата(AzateQ @ 17.4.2011, 1:54) *
и устанавливаю перевод в main.cpp
как устанавливаешь?
Цитата(AzateQ @ 17.4.2011, 1:54) *
потом, как я понимаю, надо подредактировать конструктор
ничего не надо, где ты такое прочитал?

Цитата(AzateQ @ 17.4.2011, 1:54) *
Может я в поисковиках какие-то неправильные запросы ввожу, но ничего толкового на эту тему не нашел.
надо в Асистент смотреть, там всё есть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AzateQ
  опции профиля:
сообщение 17.4.2011, 0:37
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.4.2011
Пользователь №: 2605

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 17.4.2011, 0:29) *
как устанавливаешь?

QApplication a(argc, argv);
QTranslator tran;
tran.load("..._ru");
a.installTranslator(&tran);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.4.2011, 1:44
Сообщение #4


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

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

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




Репутация:   94  


Цитата(AzateQ @ 17.4.2011, 3:37) *
tran.load("..._ru");
что возвращает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AzateQ
  опции профиля:
сообщение 17.4.2011, 11:05
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.4.2011
Пользователь №: 2605

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 17.4.2011, 2:44) *
что возвращает?

Ну, видимо ссылку на файл ..._ru.qm, который лежит в папке проекта.
Потом через installTranslator он устанавливается.
И тут внезапно вызывается MainWindow, но без каких-либо указаний на необходимость перевести его...

QApplication a(argc, argv);
QTranslator tran;
tran.load("..._ru");
a.installTranslator(&tran);
MainWindow w;
w.show();
return a.exec();

И у меня абсолютно никаких мыслей по поводу того, что надо там подправить...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 17.4.2011, 18:48
Сообщение #6


Zombie Mod
*****

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

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




Репутация:   212  


Та же проблема. Как ни пробовал, все равно не подхватывается локализация.
Подключал также как и выше.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.4.2011, 6:42
Сообщение #7


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

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

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




Репутация:   94  


AzateQ, в документацию посмотрите

и напечатайте и приведите сюда результат работы функции работы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AzateQ
  опции профиля:
сообщение 18.4.2011, 18:08
Сообщение #8


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.4.2011
Пользователь №: 2605

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.4.2011, 7:42) *
AzateQ, в документацию посмотрите

и напечатайте и приведите сюда результат работы функции работы

Я не совсем понимаю, что вы от меня хотете и чего добиваетесь наводящими вопросами...
Есть класс формы, созданный Creator'ом, есть файл с переводом, причем подключенный к проекту, потому что обычные виджеты, добавляемые из кода корректно отображают перевод, но ничего этого нет, если подключать форму... Я уже с горя начал добавлять в statusBar Label'ы и явно через setText(tr("...")) пытаюсь вывести хоть что-то, но безрезультатно... И даже в Designer'е менял локализацию с RF на US...
Нельзя ли просто показать листинг простенькой стандартной формочки с переведенным заголовком, как его Linguist отображает в предпросмотре?.. Ну 100% я неправильно вызываю форму:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTranslator trans;
    trans.load("intern_ru");
    a.installTranslator(&trans);
    MainWindow w;
    w.show();

    return a.exec();
}


Надо ведь как-то через функцию tr() вызывать, но как, я без понятия...
Ну или хотя бы тыкните лицом в то место в мануале, где надо читать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 18.4.2011, 22:41
Сообщение #9


Zombie Mod
*****

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

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




Репутация:   212  


Посмотрите это.
Этот пример у меня работает, а вот то что я сам писал - нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AzateQ
  опции профиля:
сообщение 18.4.2011, 23:31
Сообщение #10


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.4.2011
Пользователь №: 2605

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




Репутация:   0  


Цитата(RazrFalcon @ 18.4.2011, 23:41) *
Посмотрите это.
Этот пример у меня работает, а вот то что я сам писал - нет.

Спасибо!
Чуть-чуть упростил код по ссылке и все 3 метки стали корректно отображаться.
Но ведь там ui грузится из main'а, так что вопрос остается открытым, ибо если грузить User Interface из конструктора класса формы, то ничего не получается...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 17:42