Fix comparisons when source is single-line but dest is multi-line

Or vice-versa. It's now agnostic to number of lines.

Contributes to issue CURA-6663.
This commit is contained in:
Ghostkeeper 2019-07-26 15:43:19 +02:00
parent 9e059b7a1a
commit 79d57ec10a
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276

View file

@ -146,10 +146,11 @@ def find_translation(source: str, msgctxt: str, msgid: str) -> str:
last_source[current_state] += line + "\n"
else: #White lines trigger us to process this translation. Is it the correct one?
#Process the source and destination keys for comparison independent of newline technique.
source_ctxt = "".join((line.strip()[1:-1].strip() for line in last_source["msgctxt"].split("\n")))
source_id = "".join((line.strip()[1:-1].strip() for line in last_source["msgid"].split("\n")))
dest_ctxt = "".join((line.strip()[1:-1].strip() for line in msgctxt.split("\n")))
dest_id = "".join((line.strip()[1:-1].strip() for line in msgid.split("\n")))
source_ctxt = "".join((line.strip()[1:-1] for line in last_source["msgctxt"].split("\n")))
source_id = "".join((line.strip()[1:-1] for line in last_source["msgid"].split("\n")))
dest_ctxt = "".join((line.strip()[1:-1] for line in msgctxt.split("\n")))
dest_id = "".join((line.strip()[1:-1] for line in msgid.split("\n")))
if source_ctxt == dest_ctxt and source_id == dest_id:
if last_source["msgstr"] == "\"\"\n":
print("!!! Empty translation for {" + dest_ctxt + "}", dest_id, "!!!")