File paths can contain characters outside of the valid range for XML. When storing an alternative translation in the project TMX, the name of the source file is recorded in a <prop type="file"> element; when the file name contains XML-invalid characters, this would cause the project TMX to fail to load with an error similar to the following:
19768: Error: Failed to load specified project! (TF_LOAD_ERROR)
19768: Error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[33,29]
19768: Error: Message: An invalid XML character (Unicode: 0x7) was found in the element content of the document.
19768: Error: at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:596)
19768: Error: at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:83)
19768: Error: at org.omegat.util.TMXReader2.parseProp(TMXReader2.java:321)
19768: Error: at org.omegat.util.TMXReader2.parseTu(TMXReader2.java:236)
19768: Error: at org.omegat.util.TMXReader2.readTMX(TMXReader2.java:159)
19768: Error: at org.omegat.core.data.ProjectTMX.<init>(ProjectTMX.java:95)
19768: Error: at org.omegat.core.data.RealProject.loadTranslations(RealProject.java:1055)
19768: Error: at org.omegat.core.data.RealProject.loadProject(RealProject.java:371)
19768: Error: at org.omegat.core.data.ProjectFactory.loadProject(ProjectFactory.java:68)
19768: Error: at org.omegat.gui.main.ProjectUICommands$6.lambda$0(ProjectUICommands.java:478)
19768: Error: at org.omegat.core.Core.executeExclusively(Core.java:373)
19768: Error: at org.omegat.gui.main.ProjectUICommands$6.doInBackground(ProjectUICommands.java:478)
19768: Error: at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
19768: Error: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
19768: Error: at javax.swing.SwingWorker.run(SwingWorker.java:334)
19768: Error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
19768: Error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
19768: Error: at java.lang.Thread.run(Thread.java:745)
Fixed in r9819. The text is normalized (XML-invalid chars are replaced with U+0020 SPACE) both when writing the TMX, and when creating
EntryKeys for loaded source (thus allowing alternative translations loaded from TMX to match entries as intended).Fixed in the released version 4.1.2 of OmegaT.
Didier