Здравствуйте, гость ( Вход | Регистрация )
Алексей | Дата 15.3.2011, 12:17 |
Насколько заметил в креаторе есть баг с русским буквами (необходимо каждый раз перегружать файл в UTF-8 после первого открытия его в дизайнере в сессии), так что если кто заинтересован поддержим: http://bugreports.qt.nokia.com/browse/QTCREATORBUG-4040 |
|
igor_bogomolov | Дата 18.1.2011, 22:12 |
Алексей, в аттаче рабочий пример, разбирайся. Единственное замечание по сборке: важно правильное указание путей. exe, MainWindow.qml и папка i18n должны находиться в одном каталоге, который должен быть назначен как каталог запуска приложения. Об этом придётся позаботиться самому, скопировав, после компиляции, все требуемые файлы в одно место. Надеюсь понятно объяснил |
|
Litkevich Yuriy | Дата 18.1.2011, 19:53 |
qsTr("translated text") QTextCodec::setCodecForTr(QTextCodec::codecForName("CP-1251")); текст в QML-е в UTF-8 (если я правильно понимаю), а текстовыц кодек установлен в CP-1251.Посмотри в асистенте: распространяется ли действие setCodecForTr на QML? Если да, то причина понятна, если нет, то возможно там свой способ указания есть. |
|
Алексей | Дата 18.1.2011, 19:19 |
но вот окно из qml файла остаётся непереведённым а на какой язык ты переводил его?извеняюсь (поправить сейчас никак) я сюда скопировал безумный вариант перевода с русского на русский, который родился в безуспешных попытках) но вообще переводил с английского на русский Алексей, судя по кодировке вы делаете это под Windows. Попробуйте сделать следующее: 1. Откройте файл MainWindow.qml в qtcreator что бы была возможность редактировать в виде текста 2. Переходим в меню "Правка"->"Выбор кодировки". Принудительно выставляем Utf8 3. Далее стираем русский текст и пишем его заново без всяких qsTr. Теперь qml файл у нас полностью в utf8 4. Компилируем, запускает. У меня после этого русский текст отобразился правильно. Т.е. отсюда вывод: qml файл должен быть в кодировк utf8 Большое спасибо! заработало (и да под виндос) ПС но вот с интернализацией qml через С++ проблемы не решились даже с utf-8, поправил: MainWindow.qml (добавил qsTr)
main.cpp (добавил QTranslator)
|
|
igor_bogomolov | Дата 16.1.2011, 19:58 |
Алексей, судя по кодировке вы делаете это под Windows. Попробуйте сделать следующее: 1. Откройте файл MainWindow.qml в qtcreator что бы была возможность редактировать в виде текста 2. Переходим в меню "Правка"->"Выбор кодировки". Принудительно выставляем Utf8 3. Далее стираем русский текст и пишем его заново без всяких qsTr. Теперь qml файл у нас полностью в utf8 4. Компилируем, запускает. У меня после этого русский текст отобразился правильно. Т.е. отсюда вывод: qml файл должен быть в кодировк utf8 |
|
Litkevich Yuriy | Дата 16.1.2011, 18:23 |
но вот окно из qml файла остаётся непереведённым а на какой язык ты переводил его? |
|
Алексей | Дата 16.1.2011, 16:48 |
не могу разобраться на какой объект и как нужно установить перевод (на само приложение перевод устанавливается и тестовые MessageBox появляются переведёнными), но вот окно из qml файла остаётся непереведённым MainWindow.qml (добавил qsTr) [/expand (добавил QTranslator)][expand=main.cpp]
|
|
igor_bogomolov | Дата 16.1.2011, 14:30 |
http://doc.qt.nokia.com/4.7-snapshot/qdeclarativei18n.html | |
Алексей | Дата 16.1.2011, 13:32 |
Создаю приложение С++, добавляю в него qml-файл для вывода интерфейса: main.cpp
mainwindow.h
mainwindow.cpp
MainWindow.qml
В результате получаю набор квадратиков в место надписи на русском, поэтому хотел узнать как использовать qml файлы с русским интерфейсом и вслучае необходимости интернационализировать их - tr() в них у меня не получилось использовать. Единственный способ который я пока нашёл чтобы выводить в qml русские надписи - это выводить их через параметры - но это довольно трудоёмкое занятие и для некоторых программ которые не будут интернализироваться не имеет никакого смысла, поэтому хотелось бы узнать способ использовать русские символы в самом qml. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 5:33 |