i18n: Fix translatable string extraction tool bug.

This commit is contained in:
月月 2025-07-14 15:08:40 +08:00
parent 8f3b2474d2
commit 2eff8d6db4
5 changed files with 22 additions and 10 deletions

View file

@ -444,7 +444,7 @@ ShellRoot {
}
}
StyledText {
text: "Drag or click a region • LMB: Copy • RMB: Edit"
text: Translation.tr("Drag or click a region • LMB: Copy • RMB: Edit")
color: root.genericContentForeground
}
}

View file

@ -301,5 +301,6 @@
"Shell & utilities": "Shell & utilities",
"Qt apps": "Qt apps",
"Report a Bug": "Report a Bug",
"Issues": "Issues"
"Issues": "Issues",
"Drag or click a region • LMB: Copy • RMB: Edit": "Drag or click a region • LMB: Copy • RMB: Edit"
}

View file

@ -154,10 +154,9 @@ def sync_translations(translations_dir: str, source_lang: str = "en_US", target_
del target_translations[key]
print(f" Deleted {len(extra_keys)} extra keys")
# Save file
with open(target_file, 'w', encoding='utf-8') as f:
# Save file (ensure UTF-8, fix for special chars)
with open(target_file, 'w', encoding='utf-8', newline='') as f:
json.dump(target_translations, f, ensure_ascii=False, indent=2)
print(f" Saved: {target_file}")
def main():

View file

@ -56,11 +56,22 @@ class TranslationManager:
text = match[0] if match else ""
else:
text = match
# Decode escape characters
try:
clean_text = text.encode().decode('unicode_escape')
except:
if '\\u' in text or '\\x' in text:
clean_text = bytes(text, "utf-8").decode("unicode_escape")
else:
clean_text = (
text.replace('\\n', '\n')
.replace('\\t', '\t')
.replace('\\r', '\r')
.replace('\\"', '"')
.replace('\\\'', "'")
.replace('\\f', '\f')
.replace('\\b', '\b')
.replace('\\\\', '\\')
)
except Exception:
clean_text = text
# Clean text (remove extra whitespace)

View file

@ -301,5 +301,6 @@
"Shell & utilities": "Shell 与工具",
"Qt apps": "Qt 应用",
"Report a Bug": "报告问题",
"Issues": "问题追踪"
"Issues": "问题追踪",
"Drag or click a region • LMB: Copy • RMB: Edit": "拖动或点击一个区域 • 鼠标左键:复制 • 鼠标右键:编辑"
}