languages: create new script update_po.py

The script should do the same work as when one run update_po.sh
The Python script can be run on Windows too.
This commit is contained in:
Guðni Már Gilbert 2022-11-15 15:31:49 +00:00
parent 3381bf2f7e
commit 12123d6d52
1 changed files with 34 additions and 0 deletions

34
lang/update-po.py Normal file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env python3
"""
Portable script to update po files on most platforms
Make sure the .pot file is up-to-date first by
by calling within the ./po folder:
python ../lang-extract.py --no-missing -s -o Firmware.pot ../../Firmware/[a-zA-Z]*.[ch]* ../../Firmware/mmu2/[a-zA-Z]*.[ch]*
"""
import sys
from pathlib import Path
import polib
from polib import POFile
BASE_DIR: Path = Path.cwd()
PO_DIR: Path = BASE_DIR / "po"
PO_FILE_LIST: list[Path] = []
POT_REFERENCE: POFile = polib.pofile(PO_DIR/'Firmware.pot')
def main():
PO_FILE_LIST = sorted(PO_DIR.glob('**/*.po'))
for po_file in PO_FILE_LIST:
po = polib.pofile(po_file)
po.merge(POT_REFERENCE)
po.save(po_file)
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
sys.exit(-1)