Update Po2Lex - still WIP
This commit is contained in:
parent
670264ec6b
commit
aa70bcaa46
35
Po2Lex.py
35
Po2Lex.py
@ -1,9 +1,10 @@
|
||||
import os
|
||||
import re
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
# Function to read and process .po file
|
||||
def process_po_file(file_name):
|
||||
try:
|
||||
with open(file_name, "r") as file:
|
||||
content = file.read()
|
||||
|
||||
@ -12,7 +13,6 @@ def process_po_file(file_name):
|
||||
result = []
|
||||
for entry in entries:
|
||||
lines = entry.split("\n")
|
||||
|
||||
msgctxt_line = lines[0]
|
||||
msgid_lines = [line for line in lines if line.startswith("msgid")]
|
||||
msgstr_lines = [line for line in lines if line.startswith("msgstr")]
|
||||
@ -24,6 +24,9 @@ def process_po_file(file_name):
|
||||
result.append({"msgctxt": msgctxt, "msgid": msgid, "msgstr": msgstr})
|
||||
|
||||
return result
|
||||
except Exception as e:
|
||||
print(f"Process_po_file Exception {e} in {file_name} {msgctxt_line}")
|
||||
quit()
|
||||
|
||||
# Function to create .lex file
|
||||
def create_lex_file(translations, lex_file_name):
|
||||
@ -32,22 +35,22 @@ def create_lex_file(translations, lex_file_name):
|
||||
file.write(f"'{translation['msgctxt']}' => '{translation['msgstr']}',\n")
|
||||
|
||||
# Main program
|
||||
SOURCE_POFILES_DIR = Path("/home/brianr/Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules")
|
||||
TARGET_LEXFILES_DIR = Path("/home/brianr/Documents/smeserver-manager/root/usr/share/smanager/lib/SrvMngr/I18N/Modules")
|
||||
SOURCE_BASE_DIR = Path("/home/brianr/Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules")
|
||||
|
||||
# ensuring the target directory exists
|
||||
TARGET_LEXFILES_DIR.mkdir(parents=True, exist_ok=True)
|
||||
# Iterate over subdirectories in SOURCE_BASE_DIR
|
||||
for subdir in [subdir.path for subdir in os.scandir(SOURCE_BASE_DIR) if subdir.is_dir()]:
|
||||
module_name = Path(subdir).name
|
||||
print(f"Processing {module_name}")
|
||||
po_dir = Path(os.path.join(subdir, "pofiles"))
|
||||
#print(po_dir)
|
||||
lex_dir = Path(os.path.join(subdir, "newlex"))
|
||||
#print(lex_dir)
|
||||
# Ensure the newlex directory exists
|
||||
lex_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Iterate over subdirectories in SOURCE_POFILES_DIR (only one level down)
|
||||
# Iterate over subdirectories in SOURCE_POFILES_DIR (only one level down)
|
||||
for subdir in [subdir.path for subdir in os.scandir(SOURCE_POFILES_DIR) if subdir.is_dir()]:
|
||||
po_subdir_path = Path(subdir + "/pofiles")
|
||||
newlex_subdir_path = Path(subdir + "/newlex")
|
||||
newlex_subdir_path.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
for file in os.listdir(subdir):
|
||||
for file in os.listdir(po_dir):
|
||||
if file.endswith(".po"):
|
||||
po_file_path = Path(os.path.join(subdir, file))
|
||||
po_file_path = Path(os.path.join(po_dir, file))
|
||||
translations = process_po_file(po_file_path)
|
||||
lex_file_name = newlex_subdir_path / (po_file_path.stem + ".lex")
|
||||
lex_file_name = lex_dir / (po_file_path.stem + ".lex")
|
||||
create_lex_file(translations, lex_file_name)
|
||||
|
Loading…
Reference in New Issue
Block a user