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

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

Запись от iamvic размещена 14.02.2023 в 11:34
Показов 1549 Комментарии 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 Кб, 273 просмотров)
Размещено в Памятка
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Zapret Discord
ВитГо 09.05.2026
bash <(curl -s https:/ / raw. githubusercontent. com/ kartavkun/ zapret-discord-youtube/ main/ setup. sh) у меня конфиг - 8 пару раз прогнать Enter - первый раз все ставиться, второй уже будет работать. . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru