8000 xliff: preserve whitespace for rich target as well · translate/translate@792d3a3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 792d3a3

Browse files
committed
xliff: preserve whitespace for rich target as well
There is no reason to differentiate plain and rich targets here, both can contain significant whitespace. Fixes WeblateOrg/weblate#10811
1 parent 74bf150 commit 792d3a3

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

tests/translate/storage/test_xliff.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,3 +834,13 @@ def test_preserve_add(self):
834834
assert unit.target == target
835835

836836
assert bytes(xlifffile).decode() == xlfsource_preserve
837+
838+
xlifffile = xliff.xlifffile.parsestring(xlfsource_plain)
839+
840+
assert len(xlifffile.units) == 1
841+
unit = xlifffile.units[0]
842+
843+
assert unit.target == target.replace("\n", " ")
844+
unit.rich_target = [target]
845+
846+
assert bytes(xlifffile).decode() == xlfsource_preserve

translate/storage/xliff.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ def set_rich_target(self, value, lang="xx", append=False):
214214
self.set_target_dom(self.createlanguageNode(lang, "", "target"))
215215
return
216216

217+
self._ensure_xml_space_preserve()
217218
languageNode = self.get_target_dom()
218219
if languageNode is None:
219220
languageNode = self.createlanguageNode(lang, "", "target")
@@ -460,12 +461,15 @@ def markfuzzy(self, value=True):
460461
if state_id < self.S_UNREVIEWED:
461462
self.set_state_n(self.S_UNREVIEWED)
462463

464+
def _ensure_xml_space_preserve(self):
465+
if getXMLspace(self.xmlelement) != "preserve":
466+
setXMLspace(self.xmlelement, "preserve")
467+
463468
def settarget(self, target, lang="xx", append=False):
464469
"""Sets the target string to the given value."""
465470
super().settarget(target, lang, append)
466471
if target:
467-
if getXMLspace(self.xmlelement) != "preserve":
468-
setXMLspace(self.xmlelement, "preserve")
472+
self._ensure_xml_space_preserve()
469473
self.marktranslated()
470474

471475
# This code is commented while this will almost always return false.

0 commit comments

Comments
 (0)
0