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

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

Запись от iamvic размещена 14.02.2023 в 11:34
Показов 1622 Комментарии 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 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru