Я перевожу файл Xliff, используя пакеты BeautifulSoup и googletrans. Мне удалось извлечь все строки и перевести их, а также удалось заменить строки, создав новый тег с переводами, например.
<trans-unit id="100890::53706_004">
<source>Continue in store</source>
<target>Kontynuuj w sklepie</target>
</trans-unit>
Проблема возникает, когда в исходном теге есть другие теги внутри.
e.g.
<source><x ctype="x-htmltag" equiv-text="<b>" id="html_tag_191"/>Choose your product\
<x ctype="x-htmltag" equiv-text="</b>" id="html_tag_192"/>From a list: </source>
У этих тегов разное количество и разный порядок появления строк. Например. <source> text1 <x /> <x/> text2 <x/> text3 </source>
. Каждый тег x уникален с разными идентификаторами и атрибутами.
Есть ли способ изменить текст внутри тега без создания нового тега? Я думал, что могу извлечь теги x и их атрибуты, но порядок или строка и тег x в разных строках кода сильно различаются, я не уверен, как это сделать. Может, есть другой пакет, который лучше подходит для перевода xliff файлов?
<source>
. С BeautifulSoup, вероятно, вам придется использоватьfor
-loop илиlist()
, чтобы поместить всех детей внутрь<source>
и работать с ними. - person furas   schedule 09.02.2021