PyQt5 О локализации стандартных диалогов PyQt(PyQt5/PyQt6/PySide2/PySide6 и т.д.)20.06.2022, 14:24. Показов 3347. Ответов 3
Поднималась тут недавно тема Переименовать кнопку "setDetailedText". Смысл всей заварушки, как я понял, был в том, что стандартные диалоги PyQt, такие как QColorDialog, QFileDialog, QFontDialog, QMessageBox и некоторые виджеты типа QDialogButtonBox "в диком виде" упорно объясняются исключительно на английском. И ладно, если бы это случалось повсеместно, но ведь есть и исключения. Например, в Linux OpenSUSE с русской локалью начальный пример, приведённый в той теме, прекрасно объясняется по-русски без всяких дополнительных телодвижений.
Решение этой проблемы неочевидно, но хорошо известно - достаточно просто установить транслятор с загруженным файлом локализации (который уже есть в системе с момента установки PyQt). Но прямого указания на это решение в документации нет. И вот, ковыряя потихоньку эту тему в поисках универсального решения с учётом практики OpenSUSE, я и упёрся в дно .Проиллюстрирую сказанное:
В заголовках окон (в скобочках слева от основного текста) отображается количество установленных трансляторов и язык системы. С Windows - всё понятно. Нет установленных трансляторов - значит ставим нужный и наслаждаемся результатом. И, самое главное, этот процесс контролируется со стороны приложения. А к OpenSUSE вопросы есть. Вот чего она там целых 32 штуки трансляторов нацепляла-то? Какие файлы она там прогрузила? Как это узнать? Перерыл всё, что мог и до чего дотянулся - не нашёл, как это делается. Такое ощущение, что "нету у нас методов против QTranslator-а" .Ну и второй вопрос связан с файлом локализации, который требуется грузить. Может лучше грузить qt_ru.qm? Но как правильно загрузить этот каталог файлов локализации, чтобы всё перечисленное в нём тоже загрузилось - я так и не понял. Если знаете - подскажите, пожалуйста...
1
|
||||||
| 20.06.2022, 14:24 | |
|
Ответы с готовыми решениями:
3
|
|
Модератор
|
|
| 20.06.2022, 15:50 | |
Сообщение было отмечено iamvic как решение
Решение
iamvic, около ответ:
Столкнувшись с сие бедой, потратив кучу времени на изучение QTranslator и прочего с ним связанного, пришел к решению что легче написать свою функцию, которая при инициализации будет считывать из файла все строки с переводом, а ее вызов будет переводить сие строку, метод не новый, но зато рабочий, плюс в том что ничего лишнего в файлах не будет, редактировать перевод можно на лету, и можно дать пользователям тоже его править.
2
|
|
| 21.06.2022, 20:08 [ТС] | ||||||||||||||||
|
И ещё раз, спасибо, Fudthhh!!! Какую богатую идею Вы подкинули! Я попробавал, возможно, это не совсем то, о чём Вы говорили, но то, что получилось, мне тоже очень нравится. Сделал ts-файл ручками в одном контексте, lrelease напустил - получил qm, положил рядом головным файлом (в данном случае, locale_probe.py) и всё. Запусти и получи результат. А этот ts и грамотный пользователь править сможет, для lrelease можно пакетник соорудить, запустить этот пакетник у такого пользоателя тоже рука не дрогнет
![]() locale_probe_ru.ts
1
|
||||||||||||||||
| 21.06.2022, 20:08 | |
|
Помогаю со студенческими работами здесь
4
Pyside2/PyQt5 events
Python PyQt5 PySide2 Loading Python Pyside2 PyQt5 Qtdesigner QT, PyQT, wxPython, PyCairo, PySide, PySide2, PySimpleGUI, Thinter Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|