Expand Po2Lex to do all directories, expand Placeholder message if no english equiv found
This commit is contained in:
parent
d56452ead1
commit
b399cb1a5f
22
Lex2Po.py
22
Lex2Po.py
@ -19,9 +19,19 @@ def parse_lex_file(lex_file):
|
||||
with open(lex_file, 'r', encoding='utf-8') as file:
|
||||
content = file.read()
|
||||
# Use regex to find all key-value pairs, handling quotes around keys optionally
|
||||
# matches = re.finditer(r"""
|
||||
# (['"]?) # Optional opening quote for the key
|
||||
# ([^'" \t]+?) # The key itself (excluding quotes and whitespace)
|
||||
# \1 # Optional closing quote matching the opening quote
|
||||
# \s*=>\s* # The delimiter
|
||||
# ' # Opening quote for the value
|
||||
# (.*?) # The value (non-greedy to capture minimal text)
|
||||
# ' # Closing quote for the value
|
||||
# \s*,\s* # Trailing comma and optional whitespace
|
||||
# """, content, re.DOTALL | re.VERBOSE)
|
||||
matches = re.finditer(r"""
|
||||
(['"]?) # Optional opening quote for the key
|
||||
([^'" \t]+?) # The key itself (excluding quotes and whitespace)
|
||||
(.*?) # The key itself (including spaces and any characters)
|
||||
\1 # Optional closing quote matching the opening quote
|
||||
\s*=>\s* # The delimiter
|
||||
' # Opening quote for the value
|
||||
@ -29,7 +39,6 @@ def parse_lex_file(lex_file):
|
||||
' # Closing quote for the value
|
||||
\s*,\s* # Trailing comma and optional whitespace
|
||||
""", content, re.DOTALL | re.VERBOSE)
|
||||
#matches = re.findall(r"['\"]?([^'\"]+)['\"]?\s*=>\s*['\"](.*?)['\"]\s*,", content, re.DOTALL)
|
||||
for match in matches:
|
||||
key, value = match.group(2).strip(), match.group(3).strip()
|
||||
entries[key] = value.replace("\\n", "\n")
|
||||
@ -99,16 +108,19 @@ def convert_lex_to_po(lex_file, po_file, en_entries, general_en_entries,IsGenera
|
||||
new_entries = []
|
||||
|
||||
for msgctxt, msgstr in translated_entries.items():
|
||||
msgid = en_entries.get(msgctxt, "") # Find the original text using msgctxt (Msg ID)
|
||||
msgid = en_entries.get(msgctxt, "") # Find the original text using spacey version of msgctxt (Msg ID)
|
||||
if not msgid:
|
||||
print(f"Warning: Could not find original text for Msg ID '{msgctxt} ({language_code})")
|
||||
print(f"Warning: Could not find original text for Msg ID {msgctxt} ({language_code})")
|
||||
# See if in General
|
||||
msgid = general_en_entries.get(msgctxt, "")
|
||||
if not msgid:
|
||||
msgid = "Placeholder for missing original text"
|
||||
msgid = "Placeholder for missing original text - this means that \
|
||||
there was a string in the translated lex file which did not appear in the english base file.\
|
||||
Probably due to it no longer being required."
|
||||
new_entries.append((msgctxt, msgid))
|
||||
else:
|
||||
print(f"Found {msgctxt} => {msgid} in general")
|
||||
|
||||
entry = polib.POEntry(
|
||||
msgctxt=msgctxt,
|
||||
msgid=msgid,
|
||||
|
26
Po2Lex.py
26
Po2Lex.py
@ -25,16 +25,16 @@ SOURCE_BASE_DIR = Path("/home/brianr/Documents/smeserver-manager-locale/root/usr
|
||||
|
||||
# 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
|
||||
if module_name == 'Backup':
|
||||
print(f"Processing {module_name}")
|
||||
po_dir = Path(os.path.join(subdir, "pofiles"))
|
||||
lex_dir = Path(os.path.join(subdir, "newlex"))
|
||||
# Ensure the newlex directory exists
|
||||
lex_dir.mkdir(parents=True, exist_ok=True)
|
||||
for file in os.listdir(po_dir):
|
||||
if file.endswith(".po"):
|
||||
po_file_path = Path(os.path.join(po_dir, file))
|
||||
translations = process_po_file(po_file_path)
|
||||
lex_file_name = lex_dir / (po_file_path.stem + ".lex")
|
||||
create_lex_file(translations, lex_file_name)
|
||||
module_name = Path(subdir).name
|
||||
#if module_name == 'Backup':
|
||||
print(f"Processing {module_name}")
|
||||
po_dir = Path(os.path.join(subdir, "pofiles"))
|
||||
lex_dir = Path(os.path.join(subdir, "newlex"))
|
||||
# Ensure the newlex directory exists
|
||||
lex_dir.mkdir(parents=True, exist_ok=True)
|
||||
for file in os.listdir(po_dir):
|
||||
if file.endswith(".po"):
|
||||
po_file_path = Path(os.path.join(po_dir, file))
|
||||
translations = process_po_file(po_file_path)
|
||||
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