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
+1 -1
View File
@@ -444,7 +444,7 @@ ShellRoot {
} }
} }
StyledText { 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 color: root.genericContentForeground
} }
} }
+2 -1
View File
@@ -301,5 +301,6 @@
"Shell & utilities": "Shell & utilities", "Shell & utilities": "Shell & utilities",
"Qt apps": "Qt apps", "Qt apps": "Qt apps",
"Report a Bug": "Report a Bug", "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"
} }
@@ -154,10 +154,9 @@ def sync_translations(translations_dir: str, source_lang: str = "en_US", target_
del target_translations[key] del target_translations[key]
print(f" Deleted {len(extra_keys)} extra keys") print(f" Deleted {len(extra_keys)} extra keys")
# Save file # Save file (ensure UTF-8, fix for special chars)
with open(target_file, 'w', encoding='utf-8') as f: with open(target_file, 'w', encoding='utf-8', newline='') as f:
json.dump(target_translations, f, ensure_ascii=False, indent=2) json.dump(target_translations, f, ensure_ascii=False, indent=2)
print(f" Saved: {target_file}") print(f" Saved: {target_file}")
def main(): def main():
@@ -56,11 +56,22 @@ class TranslationManager:
text = match[0] if match else "" text = match[0] if match else ""
else: else:
text = match text = match
# Decode escape characters
try: try:
clean_text = text.encode().decode('unicode_escape') if '\\u' in text or '\\x' in text:
except: 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 = text
# Clean text (remove extra whitespace) # Clean text (remove extra whitespace)
+2 -1
View File
@@ -301,5 +301,6 @@
"Shell & utilities": "Shell 与工具", "Shell & utilities": "Shell 与工具",
"Qt apps": "Qt 应用", "Qt apps": "Qt 应用",
"Report a Bug": "报告问题", "Report a Bug": "报告问题",
"Issues": "问题追踪" "Issues": "问题追踪",
"Drag or click a region • LMB: Copy • RMB: Edit": "拖动或点击一个区域 • 鼠标左键:复制 • 鼠标右键:编辑"
} }