From 7b26814922f3d32303d155fa5e3473e7ffeef2d5 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 20 Feb 2020 12:49:10 +1000 Subject: [PATCH] support variables when importing from gettext --- qt/i18n/extract-po-string.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/qt/i18n/extract-po-string.py b/qt/i18n/extract-po-string.py index 4a2076659..d460d0fe0 100644 --- a/qt/i18n/extract-po-string.py +++ b/qt/i18n/extract-po-string.py @@ -5,8 +5,13 @@ import polib # extract a translated string from the gettext catalogs and insert it into ftl # eg: -# $ python extract-po-string.py media-check.ftl delete-unused "Delete Unused Media" 1 -ftl_filename, key, msgid, dry_run = sys.argv[1:] +# $ python extract-po-string.py media-check.ftl delete-unused "Delete Unused Media" "", 1 +# $ python extract-po-string.py media-check.ftl delete-unused "%(a)s %(b)s" "%(a)s=val1,%(b)s=val2" 0 +ftl_filename, key, msgid, repls, dry_run = sys.argv[1:] + +replacements = [] +for repl in repls.split(","): + replacements.append(repl.split("=")) print("Loading catalogs...") base = "po/desktop" @@ -22,8 +27,12 @@ for (lang, cat) in cats: for entry in cat: if entry.msgid == msgid: if entry.msgstr: - print(lang, "has", entry.msgstr) - to_insert.append((lang, entry.msgstr)) + msg = entry.msgstr + if replacements: + for (old,new) in replacements: + msg = msg.replace(old, f"{{${new}}}") + print(lang, "has", msg) + to_insert.append((lang, msg)) break for lang, translation in to_insert: