Qt Android. QML уроки #20. Динамический перевод мультиязычного приложения на QML

Автор Maksim Inshakov
Qt Android. QML уроки #20. Динамический перевод мультиязычного приложения на QML

привет.

С вами. Евгения городской и вы смотрите вещание сайта ivi в данном уроке снова поговорим о переводах приложения на, но на этот раз будем переводить интерфейс приложения написано. Ван юймэй от нас приложение выглядит.

Аналогично как и в предыдущем уроке с той разницей, что написано на логика работает точно такая же при смене языка в комбобоксе.

У нас меняется язык интерфейса, но теперь приступим к изучению того как — это сделано устал. Как создали приложение для qt Click Video Profile проектом и модифицировал как и в предыдущем уроке надо файл перевода. Даже если он не существует при использовании утилита или он должен будет создаваться, но при разработке под qml необходимо подключить все файлы которые требуются которые нуждаются в переводе в качестве исходников как обычно теплицу из файлов с пометкой l1one то есть для использования утилиты от, тогда мы можем через инструменты внешне лингвист обновить переводы функция создать файл перевода в которой мы сможем открыть пьют лингвист так вот этот файл в нём будет ряд перевозов которые можете создать, а потом уже выпустить бинарный файл файл с разрешением Queen через использование утилиты релиз релиз либо через лингвист либо инструменты креаторе. Можно конечно я через команду через консоль на аим через консоль и так, что класс транслейтор который используется для установки переводов не обладает методами которые можно запустить из тюрьмы слайм. Посмотрите здесь нет не сигналов не слотов. Да Нам нужно сделать просто обёртку надписью транслятор — это обёрткой служит класс qml транслятор который мы в качестве свойства в контексте qml слове называться будет прямая трансляция вот. Передаем наш объект класса qml translate теперь посмотрим заголовочный файл самого qml транслятор здесь имеется только сигнал об изменении языка. Нам же нужно узнать когда у нас язык изменился чтобы заново весь интерфейс приложения и помещаем макросом чтобы данный метод был доступен из то есть в данном случае не обязательно помечать как может просто. Какие уроки балета. Ну и сам объект транслятор вокруг которого есть создана. Вот — это вот. смотрим. Что у вас методы Set Translation у нас идёт загрузка языка от в аргументе translations передаётся языка то есть либо русский язык либо английский язык американский вариант английский британский вариант — это строка прибавляется названию нашего файла. А вот — это у нас указывает, что файл берётся из ресурсов вот он этот. Файлик у нас включён глистов то есть. Я обновил переводы создал вот этот файл, что ты вывести прописал создал файл и подключил его в качестве файла ресурсов нормально с ресурсом всё подтягивается дали данные переводчик устанавливаем в приложении через микроскоп который указывает на всё наше приложение указательное предложение испускаемых сигнал. Измени который дали нужно обработать слоем геймы. Фалиминт у нас здесь сделано applications Windows Down. Вот — это hello neighbor привет мир доля combobox в котором находится модель данных состоящие из двух строчек русского и английского при изменение текущего текста в combobox Signal Korean Text Change на который навешивается обработчик в данном случае он. Карен текст. Вот — это небольшая особенность когда испускается какой-то сигнал выглядит допустим с каре текст change, что нам нужно переписать его как context change, тогда — это будет обработчиком у нас можно прописать в обработчике что-то сделать вот у нас зарегистрирована файл прямой транслятор изменять объект класса он зарегистрирован. Как свести в контексте устанавливают через месяц Translation текущий текст в комбобоксе и собственно говоря текст в котором написано про утра мэйбл. Вот этот текст чтобы получить сигнал об изменении срока нужно настроить подключение. К объектам для этого служит connections указывают цель транслятор и новейшего на сигнал languages обработчик он вообще, что есть устанавливает он и заглавная буква, тогда можем обработать этот сигнал и вызываем функцию ретранслятор чтобы не было избыточного кода весь текст от титульник applicationwindow от всех файлов переведён перенесён в эту функцию itranslate весь перевод чтобы можно было работать с петли вместе. Диман строки оборачивать функции translate, тогда при вызове утилиты. Эля у нас будут. Если вы подключили в файле проекта нашла в качестве исходника для сборки цели Blade и небольшой такой момент. Нужно обязательно прописать component oncompleted в котором будет вызываться функция эритроцитов в данном случае установки одного из индекса в комбобоксе по окончанию создание окна у нас перевод срабатывает потому, что срабатывает. В итоге сигналы об изменении текста устанавливается текст и соответственно через ретранслятор вызывается наш сигнал сейчас за комментируем если за комментируем component oncompleted эритроцитурия заново запустим на сборку у нас перевода. Как видите. Нет просто его нету. Если же мы выполним в компании обработчики Town Ace перевод есть, но при этом он не переключается не переключается ты если у вас не будет бокс отвечающая за перевод который будет испускать сигнал при создании нос перевода не будет. Поэтому нужно воспользоваться сигнала при создании компании в данном случае компонентом является наше окно на крыше как только оно создалось.

0 комментариев
0

Читайте также