Skip to content

Commit 39f83cc

Browse files
committed
Adjusted relative paths
1 parent 1a75b29 commit 39f83cc

1 file changed

Lines changed: 43 additions & 5 deletions

File tree

src/com/maxprograms/javapm/CreateXliff.java

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
package com.maxprograms.javapm;
1111

1212
import java.io.File;
13+
import java.io.FileOutputStream;
1314
import java.io.IOException;
1415
import java.lang.System.Logger;
1516
import java.lang.System.Logger.Level;
1617
import java.nio.charset.Charset;
17-
import java.nio.file.Files;
1818
import java.text.MessageFormat;
1919
import java.util.ArrayList;
2020
import java.util.HashMap;
@@ -29,9 +29,12 @@
2929
import com.maxprograms.converters.Convert;
3030
import com.maxprograms.converters.EncodingResolver;
3131
import com.maxprograms.converters.FileFormats;
32-
import com.maxprograms.converters.Join;
3332
import com.maxprograms.converters.Utils;
3433
import com.maxprograms.languages.LanguageUtils;
34+
import com.maxprograms.xml.Document;
35+
import com.maxprograms.xml.Element;
36+
import com.maxprograms.xml.SAXBuilder;
37+
import com.maxprograms.xml.XMLOutputter;
3538

3639
public class CreateXliff {
3740

@@ -147,9 +150,44 @@ private static void generateXliff(String src, String xliff, String srcLang, Stri
147150
}
148151
xliffs.add(xlf);
149152
}
150-
Join.join(xliffs, xliff);
151-
for (String xlf : xliffs) {
152-
Files.delete(new File(xlf).toPath());
153+
join(xliffs, src, xliff, srcLang, tgtLang, xliff2);
154+
}
155+
156+
private static void join(List<String> xliffs, String src, String xliff, String srcLang, String tgtLang,
157+
boolean xliff2) throws SAXException, IOException, ParserConfigurationException {
158+
Document doc = new Document(null, "xliff", null, null);
159+
Element root = doc.getRootElement();
160+
if (xliff2) {
161+
root.setAttribute("version", "2.0");
162+
root.setAttribute("srcLang", srcLang);
163+
if (!tgtLang.isEmpty()) {
164+
root.setAttribute("trgLang", tgtLang);
165+
}
166+
root.setAttribute("xmlns", "urn:oasis:names:tc:xliff:document:2.0");
167+
root.setAttribute("xmlns:mtc", "urn:oasis:names:tc:xliff:matches:2.0");
168+
root.setAttribute("xmlns:mda", "urn:oasis:names:tc:xliff:metadata:2.0");
169+
} else {
170+
root.setAttribute("version", "1.2");
171+
root.setAttribute("xmlns", "urn:oasis:names:tc:xliff:document:1.2");
172+
root.setAttribute("xsi:schemaLocation",
173+
"urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd");
174+
root.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
175+
}
176+
SAXBuilder builder = new SAXBuilder();
177+
for (int i = 0; i < xliffs.size(); i++) {
178+
Document d = builder.build(xliffs.get(i));
179+
Element r = d.getRootElement();
180+
Element file = r.getChild("file");
181+
String original = file.getAttributeValue("original");
182+
String relative = Utils.getRelativePath(src, original);
183+
file.setAttribute("original", relative);
184+
root.addContent("\n");
185+
root.addContent(file);
186+
}
187+
XMLOutputter outputter = new XMLOutputter();
188+
outputter.preserveSpace(true);
189+
try (FileOutputStream out = new FileOutputStream(xliff)) {
190+
outputter.output(doc, out);
153191
}
154192
}
155193

0 commit comments

Comments
 (0)