mirror of
https://github.com/muziing/Py2exe-GUI.git
synced 2025-01-13 16:42:54 +08:00
0edbed1fa5
添加 `__all__`,模块级提供的函数列表呈现更清晰; 更新 docstrings; 其他微小改动优化;
92 lines
2.4 KiB
Python
92 lines
2.4 KiB
Python
"""开发脚本,便于调用 PySide6 提供的各种工具程序
|
||
"""
|
||
|
||
__all__ = [
|
||
"compile_resources",
|
||
"gen_ts",
|
||
"gen_qm",
|
||
]
|
||
|
||
import subprocess
|
||
|
||
from dev_scripts.path_constants import (
|
||
COMPILED_RESOURCES,
|
||
PROJECT_ROOT,
|
||
RESOURCES_PATH,
|
||
SRC_PKG_PATH,
|
||
WIDGETS_PATH,
|
||
)
|
||
|
||
|
||
def compile_resources() -> int:
|
||
"""调用 RCC 工具编译静态资源
|
||
|
||
:return: rcc 进程返回码
|
||
"""
|
||
|
||
compiled_file_path = COMPILED_RESOURCES
|
||
qrc_file_path = RESOURCES_PATH / "resources.qrc"
|
||
cmd = [
|
||
"pyside6-rcc",
|
||
"-o",
|
||
compiled_file_path,
|
||
qrc_file_path,
|
||
]
|
||
|
||
try:
|
||
result = subprocess.run(cmd, cwd=PROJECT_ROOT, check=True)
|
||
except subprocess.SubprocessError as e:
|
||
print(f"RCC 编译进程错误:{e}")
|
||
raise e
|
||
else:
|
||
print(f"已完成静态资源文件编译,RCC 返回码:{result.returncode}。")
|
||
return result.returncode
|
||
|
||
|
||
def gen_ts(lang: str = "zh_CN") -> int:
|
||
"""调用 lupdate 工具分析源码,生成 .ts 文本翻译文件
|
||
|
||
:param lang: 目标翻译语言代码
|
||
:return: lupdate 返回码
|
||
"""
|
||
|
||
source = [*list(WIDGETS_PATH.glob("**/*.py")), SRC_PKG_PATH / "__main__.py"]
|
||
target = RESOURCES_PATH / "i18n" / f"{lang.replace('-', '_')}.ts"
|
||
cmd = ["pyside6-lupdate", *source, "-ts", target]
|
||
|
||
try:
|
||
result = subprocess.run(cmd, cwd=PROJECT_ROOT, check=True)
|
||
except subprocess.SubprocessError as e:
|
||
print(f"lupdate 进程错误:{e}")
|
||
raise
|
||
else:
|
||
print(f"已完成文本翻译文件生成,lupdate 返回码:{result.returncode}。")
|
||
return result.returncode
|
||
|
||
|
||
def gen_qm(lang: str = "zh_CN") -> int:
|
||
"""调用 lrelease 工具编译.ts 文本翻译文件
|
||
|
||
:param lang: 目标翻译语言代码
|
||
:return: lrelease 返回码
|
||
"""
|
||
|
||
source = RESOURCES_PATH / "i18n" / f"{lang.replace('-', '_')}.ts"
|
||
target = RESOURCES_PATH / "i18n" / f"{lang.replace('-', '_')}.qm"
|
||
cmd = ["pyside6-lrelease", source, "-qm", target]
|
||
|
||
try:
|
||
result = subprocess.run(cmd, cwd=PROJECT_ROOT, check=True)
|
||
except subprocess.SubprocessError as e:
|
||
print(f"lrelease 进程错误:{e}")
|
||
raise
|
||
else:
|
||
print(f"已完成文本翻译文件编译,lrelease 返回码:{result.returncode}。")
|
||
return result.returncode
|
||
|
||
|
||
if __name__ == "__main__":
|
||
# compile_resources()
|
||
gen_ts("zh_CN")
|
||
# gen_qm("zh_CN")
|