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

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

Запись от iamvic размещена 14.02.2023 в 11:34
Показов 1636 Комментарии 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
Комментарии
 
Новые блоги и статьи
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru