Форум программистов, компьютерный форум, киберфорум
iamvic
Войти
Регистрация
Восстановить пароль
Путевые заметки в процессе познания Python и PyQt/PySide.
Помни - только тег CODE не портит код добавлением пробела в начало пустой строки.

К вопросу о разделении труда (часть 4 и последняя).

Запись от iamvic размещена 14.02.2023 в 11:34
Показов 1648 Комментарии 0

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

В состав прилагаемого архива включены переводы с русского на английский и немецкий:
Code
1
2
3
4
5
6
7
8
9
10
11
team_mwin.py
team_mwin_py_de.qm    <== перевод на немецкий
team_mwin_py_en.qm    <== перевод на английский
team_mwin.qss
team_mwin.ui
team_mwin_ui_de.qm    <== перевод на немецкий
team_mwin_ui_en.qm    <== перевод на английский
team_probe.py
team_probe_py_de.qm   <== перевод на немецкий
team_probe_py_en.qm   <== перевод на английский
team_service.py
(качество переводов гугловое )

Процесс создания новых файлов переводов выглядит так.

Выполняем команды:
Code
1
2
3
pylupdate5 -translate-function tr_app team_probe.py -ts team_probe_py.ts
pylupdate5 -translate-function tr_app team_mwin.py -ts team_mwin_py.ts
pylupdate5 team_mwin.ui -ts team_mwin_ui.ts
Запускаем Qt Linguist, открываем файл team_probe_py.ts, в качестве языка исходного текста выбираем, в нашем случае, русский (для любой страны), а в качестве языка, на который будем переводить, выбираем, например, гэльский (для любой страны) и сохраняем как "Исходники переводов" в файл team_probe_py_gd.ts. Затем переводим всё что надо и вновь сохраняем в team_probe_py_gd.ts. После чего компилируем как "Скомпилированные файлы перевода" в файл team_probe_py_gd.qm и помещаем этот файл рядом с нашим модулем team_probe.py.

Повторяем это действие для team_mwin_py.ts и team_mwin_ui.ts.

По итогам, должны добавиться три новых файла:
Code
1
2
3
team_probe_py_gd.qm
team_mwin_py_gd.qm
team_mwin_ui_gd.qm
Параметры командной строки (в данном случае, под Windows):
Code
1
py team_probe.py [-xx] [params...]
где:
-xx - код языка,устанавливает язык интерфейса программы при старте (например, -de установит немецкий язык)
params... - произвольное количество дополнительных параметров, вызывает запуск в аварийном режиме

Впечатления:
1. Поработать за всю команду в одно лицо было чрезвычайно тяжело, но интерсно.
2. Qt Linguist вызвал массу отрицательных эмоций.
3. Полной неожиданностью была перестройка интерфейса для языков с направлением письма справа налево после загрузки соответствующего qtbase_*.qm.
4. Впечатлил перевод фразы "Yes to All" на гэльский из qtbase_gd.qm Желающие могут выбрать (gd) Гэльский в меню "Языки" и нажать Ctrl-2.

Архив прилагается
team_probe.zip

Обновлено 26.03.2023 в 10:04
Попытка усовершенствовать приложение (спрятать выпрыгивающее окошко при смене языка и выделить жирным шрифтом пункты меню "Языки", для которых есть переводы).

Обновление в прилагаемом архиве, поскольку в ограничения размера сообщения в блоге не укладываюсь.
Вложения
Тип файла: zip team_probe_updt.zip (4.1 Кб, 279 просмотров)
Размещено в Памятка
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru