Feat: Add simple translation launcher dialog

This commit is contained in:
2025-05-30 12:42:03 +02:00
parent b242406b8b
commit 75eacbf396
4 changed files with 72 additions and 3 deletions

44
tools/venv.py Normal file
View File

@@ -0,0 +1,44 @@
import os
import subprocess
import sys
import shutil
from pathlib import Path
TRANSLATIONS_DIR = Path(__file__).resolve().parent.parent
VENV_DIR = TRANSLATIONS_DIR / ".venv-translations"
PYTHON_BIN = VENV_DIR / "Scripts" / "python.exe" if os.name == "nt" else VENV_DIR / "bin" / "python"
def create_venv():
print(f"[Setup] Creating virtual environment at {VENV_DIR}...")
subprocess.run([sys.executable, "-m", "venv", str(VENV_DIR)], check=True)
def install_pyqt6_tools():
print(f"[Setup] Installing pyqt6-tools in {VENV_DIR}...")
subprocess.run([str(PYTHON_BIN), "-m", "pip", "install", "--upgrade", "pip"], check=True)
subprocess.run([str(PYTHON_BIN), "-m", "pip", "install", "--pre", "pyqt6-tools"], check=True)
def run_pyqt6_tools_tool(args):
tool = ["qt6-tools"] + args
print(f"[Running] {' '.join(tool)}")
subprocess.run([str(PYTHON_BIN)] + ["-m"] + tool, check=True)
def main():
if not VENV_DIR.exists():
create_venv()
install_pyqt6_tools()
if not shutil.which("qt6-tools"):
print("[Info] Executing within virtual environment.")
run_pyqt6_tools_tool(sys.argv[1:])
else:
print("Unexpected: qt6-tools found globally, using system environment.")
if sys.argv[1] == "pylupdate6":
subprocess.run(sys.argv[1:], check=True)
else:
subprocess.run(["qt6-tools"] + sys.argv[1:], check=True)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python venv.py [pylupdate6|lrelease|linguist] <args>")
sys.exit(1)
main()