fix: добавлены переводы для QMessageBox (#73)

This commit is contained in:
Maxim Slipenko 2023-10-05 21:27:51 +03:00 committed by GitHub
parent a89d7896e3
commit e653c3df29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 76 additions and 88 deletions

View File

@ -47,7 +47,8 @@ jobs:
- name: Установка зависимостей
run: poetry install
- name: Сборка
run: poetry run pyinstaller ${{ matrix.spec }}.spec\
if:
run: pyinstaller statapp.spec -- ${{ matrix.spec == 'statapp-onefile' && '--one-file' || '' }}
- name: Архивация
uses: thedoctor0/zip-release@0.7.1
with:

View File

@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Poetry (statapp)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Poetry (statapp)" project-jdk-type="Python SDK" />
</project>

View File

@ -32,7 +32,7 @@
```bash
poetry install
poetry run pyinstaller statapp.spec # или poetry run pyinstaller stat-onefile.spec
pyinstaller statapp.spec # или pyinstaller statapp.spec -- --one-file
```
## Использование

View File

@ -1,59 +0,0 @@
# -*- mode: python ; coding: utf-8 -*-
import sys
import typing
from pprint import pprint
if typing.TYPE_CHECKING:
from PyInstaller.building.api import COLLECT, EXE, MERGE, PYZ # noqa: F401
from PyInstaller.building.build_main import Analysis # noqa: F401
from PyInstaller.building.datastruct import TOC, Target, Tree # noqa: F401
from PyInstaller.building.osx import BUNDLE # noqa: F401
from PyInstaller.building.splash import Splash # noqa: F401
from PyInstaller.utils.hooks import copy_metadata
datas = [('statapp/ui/images/*', 'ui/images')]
datas += copy_metadata('statapp')
a = Analysis(
['statapp/__main__.py'],
pathex=[],
binaries=[],
datas=datas,
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
)
prev_binaries = set(a.binaries)
if sys.platform in ('linux', 'darwin'):
a.exclude_system_libraries(list_of_exceptions=[]) # glob expression
print('\n\nSTRIPPED SYSTEM LIBS')
pprint(sorted(set(prev_binaries) - set(a.binaries)))
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='statapp',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon='statapp/ui/images/logo.ico',
)

View File

@ -1,4 +1,5 @@
# -*- mode: python ; coding: utf-8 -*-
import argparse
import sys
import typing
from pprint import pprint
@ -12,6 +13,10 @@ if typing.TYPE_CHECKING:
from PyInstaller.utils.hooks import copy_metadata
parser = argparse.ArgumentParser()
parser.add_argument("--one-file", action="store_true")
options = parser.parse_args()
datas = [('statapp/ui/images/*', 'ui/images')]
datas += copy_metadata('statapp')
@ -35,9 +40,46 @@ if sys.platform in ('linux', 'darwin'):
print('\n\nSTRIPPED SYSTEM LIBS')
pprint(sorted(set(prev_binaries) - set(a.binaries)))
LOCALES = ['ru', 'en']
def remove_unused_translation(item):
dest = str(item[0])
if not dest.startswith('PySide2/Qt/translations'):
return True
for l in LOCALES:
if l in dest:
return True
return False
a.datas = list(filter(remove_unused_translation, a.datas))
pyz = PYZ(a.pure)
exe = EXE(
if options.one_file:
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='statapp',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon='statapp/ui/images/logo.ico',
)
else:
exe = EXE(
pyz,
a.scripts,
[],
@ -54,8 +96,8 @@ exe = EXE(
codesign_identity=None,
entitlements_file=None,
icon='statapp/ui/images/logo.ico',
)
coll = COLLECT(
)
coll = COLLECT(
exe,
a.binaries,
a.datas,
@ -63,4 +105,4 @@ coll = COLLECT(
upx=True,
upx_exclude=[],
name='statapp',
)
)

View File

@ -32,6 +32,7 @@ def main():
locale = QtCore.QLocale.system().name()
path = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)
translator.load(f'qt_{locale}', path)
translator.load(f'qtbase_{locale}', path)
app.installTranslator(translator)
window = MainWindow()