Update Po2Lex - still WIP
This commit is contained in:
		
							
								
								
									
										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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user