Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/48: Рейтинг темы: голосов - 48, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 5

Python + PyQt Многоязычный интерфейс программы

20.05.2015, 10:07. Показов 9635. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет Уважаемые форумчане !

Назрела необходимость добавить в программу возможность переключения языка интерфейса. Прошу Вашей помощи в виде подсказки подойдут любые сведения в виде ссылок , статей , книг, примеров и чего только можно.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2015, 10:07
Ответы с готовыми решениями:

Внедрение сторонних окон в интерфейс приложения на PyQt
Доброго времени суток. У меня есть задача разработать интерфейс, я решил выбрать PyQt в качестве инструмента для этой цели. Это что-то...

Разархивирование при установке собранной программы на Python и PyQt
Доброго времени суток! Скажите пожалуйста, есть ли какие-нибудь методы сборки py -> exe помимо pyinstall? Проблема заключается в том,...

Многоязычный интерфейс
Доброго времени суток. Подскажите пожалуйста каким образом делается многоязычный интерфейс, на каком принципе?

6
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
20.05.2015, 10:41
Для этого используется QApplication.Translate.
В свою очередь, используется объект QTranslator. Для него нужны специальные словари, подготовленные (скомпилированные) программой Qt Linqust, а они компилируются из xml-файлов с раcширением ts.

Я сам внутрь этой кухни не влезал, так что даю просто направление, без подробностей.
1
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 5
20.05.2015, 10:55  [ТС]
Спасибо, сейчас начну ковырять в этом направлении
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.05.2015, 13:54
Могу по С++Qt кинуть инфу Локализация / интернационализация / перевод приложения на другой язык
в Python/PyQt должно по идее работать аналогичным образом.
Там же ссылка на http://habrahabr.ru/post/51319/
Но тут возникают много вопросов про макрос tr() и сможет ли утилита lupdate сгенерировать к *.ts- файл на основе кода на python, как она это делает с кодом на с++

Добавлено через 5 минут
А это уже по PyQt:
http://pyqt.sourceforge.net/Docs/PyQt4/i18n.html
http://habrahabr.ru/post/75226/
0
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 5
20.05.2015, 13:55  [ТС]
Пока копаю. Мануалы по QT не совсем подходят ибо в проекте Python + PyQt нет файла *.pro
А так же не могу пока разобраться как создать словарь из проекта на Python. В QtCreator это сделать проще.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.05.2015, 14:03
А он и не нужен. А утилиты те же.

А вот кстати для PyQt5 http://pyqt.sourceforge.net/Docs/PyQt5/i18n.html

The process of internationalising an application comprises the following steps.
  • The programmer uses pylupdate5 to create or update a .ts translation file for each language that the application is to be translated into. A .ts file is an XML file that contains the strings to be translated and the corresponding translations that have already been made. pylupdate5 can be run any number of times during development to update the .ts files with the latest strings for translation.
  • The translator uses Qt Linguist to update the .ts files with translations of the strings.
  • The release manager then uses Qt’s lrelease utility to convert the .ts files to .qm files which are compact binary equivalents used by the application. If an application cannot find an appropriate .qm file, or a particular string hasn’t been translated, then the strings used in the original source code are used instead.
  • The release manage may optionally use pyrcc5 to embed the .qm files, along with other application resources such as icons, in a Python module. This may make packaging and distribution of the application easier.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.04.2016, 17:23
Цитата Сообщение от MihailVlaskin Посмотреть сообщение
Мануалы по QT не совсем подходят ибо в проекте Python + PyQt нет файла *.pro
1. Проектного файла нет поэтому нужно указывать все файлы проекта(*.py и *.ui) в pylupdate5
Bash
1
C:\Python34\Lib\site-packages\PyQt5\pylupdate5 main.py MainWindow.py MainWindow.ui -ts Watcher_ru.ts
main.py,MainWindow.py,MainWindow.ui - файлы проекта.
Watcher_ru.ts- выходной файл (имя проекта)

Примечание: я все выводил в один файл, можно указывать несколько файлов будет выводить в соответствии с входными файлами.

2. Затем редактируем полученный файл *.ts можно в редакторе Linguist.exe, а можно руками в блокноте.

3. Сохраняем и преобразовываем ts в qm с помощью lrelease
Bash
1
C:\Python34\Lib\site-packages\PyQt5\lrelease Watcher_ru.ts
4. И грузим его в основном коде
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!-*-coding:utf-8-*-
import sys
 
from PyQt5.QtCore import QTranslator
from PyQt5.QtWidgets import QApplication
from MainWindow import MainWindow
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
 
    translator = QTranslator()
    translator.load("Watcher_ru")  # Watcher_ru.qm
    if not app.installTranslator(translator):
        print("Can not install translation!")
 
    w = MainWindow()
    w.ui.retranslateUi(w)
 
    app.exec()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2016, 17:23
Помогаю со студенческими работами здесь

Многоязычный интерфейс
Всем привет! Подскажите пожалуйста по сабжу. 1. Какие способы реализации бывают? 2. Какие достоинства, недостатки, подводные камни у...

Многоязычный интерфейс
Добрый день! Помогите реализовать многоязычность в программе.

Многоязычный интерфейс
У меня такой вопрос:-Можно ли в программе написанной на С++ в меню добавить строку Language и несколько вариантов языков указав к каждому...

Многоязычный интерфейс в C++ Builder
Здравствуйте... Хочу написать программу, которая поддерживает выбор языков... Сделал кое что... с помощью форм... То есть когда выбираю...

Многоязычный интерфейс для MS ACCESS
Есть ли идеи или где почитать как лучше сделать формы поддреживающие 2 или 3 языка на MS Access Заранее благодарен


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru