orcaslicer/scripts/HintsToPot.py
ElectricalBoy b40853af94
CI: Create Automated Workflow for Translation Catalog Updates (#5959)
* CI: Automate translation catalog update

Signed-off-by: GitHub <noreply@github.com>

* Update triggers for localization workflow

Signed-off-by: GitHub <noreply@github.com>

* Rewrite HintsToPot with Python

* Disable scheduled workflow runs

* Apply formatting to HintsToPot.py

* Add missing exit() call
2024-07-29 20:38:10 +08:00

37 lines
1 KiB
Python

# Helps converting hints.ini into POT
import sys
from configparser import ConfigParser
from pathlib import Path
def write_to_pot(path: Path, data: dict[str, str]):
with open(path, "a+t") as pot_file:
for key in data.keys():
print(
f"\n#: resources/data/hints.ini: [{ key }]\nmsgid \"{ data[key]['text'] }\"\nmsgstr \"\"",
file=pot_file,
)
def main():
if len(sys.argv) != 3:
print("HINTS_TO_POT FAILED: WRONG NUM OF ARGS")
exit(-1)
path_to_ini = Path(sys.argv[1]).parent / "resources" / "data" / "hints.ini"
path_to_pot = Path(sys.argv[2]).parent / "i18n" / "OrcaSlicer.pot"
if not path_to_ini.exists():
print("HINTS_TO_POT FAILED: PATH TO INI DOES NOT EXISTS")
print(str(path_to_ini))
exit(-1)
config = ConfigParser()
with open(path_to_ini) as hints_file:
config.read_file(hints_file)
write_to_pot(path_to_pot, config._sections)
print("HINTS_TO_POT SUCCESS")
exit(0)
if __name__ == "__main__":
main()