Menu

#1245 xliff1: duplicated output of body

6.1
open-fixed
5
2024-02-12
2024-02-01
No

When adding test case on Xliff1FilterTest on master branch with a following code, xliff1 filter may produce wrong xliff output.

    @Test
    public void testBugs418() throws Exception {
        Xliff1Filter filter = new Xliff1Filter();
        translateXliff(filter, "test/data/filters/xliff/filters3/file-XLIFFFilter-cdata-bugs418.xlf");
    }

    private void translateXliff(IFilter filter, String filename) throws Exception {
        File inFile = new File(filename);
        filter.translateFile(inFile, outFile, Collections.emptyMap(), context,
                new ITranslateCallback() {
                    public String getTranslation(String id, String source, String path) {
                        return null;
                    }

                    public String getTranslation(String id, String source) {
                        return null;
                    }

                    public void linkPrevNextSegments() {
                    }

                    public void setPass(int pass) {
                    }
                });
        compareXML(inFile, outFile);
    }
with data  `test/data/filters/xliff/filters3-xliff/file-XLIFFfilter-cdata-bugs418.xlf`
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1">
    <file target-language="be" source-language="en" original="text3.txt">
        <body>
            <trans-unit id="1">
                <source>This is test2</source>
            </trans-unit>
            <trans-unit id="2">
                <source>test21</source>
            </trans-unit>
        </body>
    </file>
    <file target-language="be" source-language="en" original="text.txt">
        <body>
            <trans-unit id="3">
                <source><![CDATA[This is <test]]></source>
                <target><![CDATA[tr1=This is <test]]></target>
            </trans-unit>
            <trans-unit id="4">
                <source>test2</source>
                <target>tr2=test2</target>
            </trans-unit>
        </body>
    </file>
</xliff>

Then XLIFF1Filiter produce

<?xml version="1.0" encoding="UTF-8"?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file target-language="be" source-language="en" original="text3.txt">
        <body><body>
            <trans-unit id="1">
                <source>This is test2</source>
            </trans-unit>
            <trans-unit id="2">
                <source>test21</source>
            </trans-unit>
        </body>
    </body>
    <file target-language="be" source-language="en" original="text.txt">
        <body>
            <trans-unit id="3">
                <source><![CDATA[This is <test]]></source>
                <target><![CDATA[tr1=This is <test]]></target>
            </trans-unit>
            <trans-unit id="4">
                <source>test2</source>
                <target>tr2=test2</target>
            </trans-unit>
        </body>
    </file>
</file></xliff>

And failed assertion. A code above is in a topic branch topic/miurahr/filters4/xliff1filter/cdata-handle-test

Discussion

  • Hiroshi Miura

    Hiroshi Miura - 2024-02-01

    Here is a point to be error

    <?xml version="1.0" encoding="UTF-8"?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2">
        <file target-language="be" source-language="en" original="text3.txt">
            <body><body>
                ^^^^^^^^
    
     

    Last edit: Hiroshi Miura 2024-02-01
  • Hiroshi Miura

    Hiroshi Miura - 2024-02-12
    • status: open --> open-fixed
    • assigned_to: Hiroshi Miura
     

Log in to post a comment.