Skip to content

Commit 6f8fc21

Browse files
committed
Updated for release 3.1.1
1 parent ddb0bd0 commit 6f8fc21

12 files changed

Lines changed: 67 additions & 42 deletions

File tree

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "tmxeditor",
33
"productName": "TMXEditor",
4-
"version": "3.1.0",
4+
"version": "3.1.1",
55
"description": "TMX Editor",
66
"main": "js/app.js",
77
"scripts": {
@@ -19,8 +19,8 @@
1919
"url": "https://github.com/rmraya/TMXEditor.git"
2020
},
2121
"devDependencies": {
22-
"electron": "^29.1.5",
23-
"typescript": "^5.4.3"
22+
"electron": "^29.3.0",
23+
"typescript": "^5.4.5"
2424
},
2525
"dependencies": {
2626
"typesxml": "^1.3.0",

src/com/maxprograms/tmxserver/Constants.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ private Constants() {
1919
}
2020

2121
public static final String APPNAME = "TMXEditor";
22-
public static final String VERSION = "3.1.0";
23-
public static final String BUILD = "20240325_1157";
22+
public static final String VERSION = "3.1.1";
23+
public static final String BUILD = "20240411_0806";
2424

2525
public static final String REASON = "reason";
2626
public static final String STATUS = "status";

src/com/maxprograms/tmxserver/TMXServer.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ public TMXServer(Integer port) throws IOException {
5656
server.createContext("/TMXServer", this);
5757
server.setExecutor(new ThreadPoolExecutor(3, 10, 20, TimeUnit.SECONDS, new ArrayBlockingQueue<>(100)));
5858
service = new TMXService();
59+
60+
Thread closeHook = new Thread(() -> {
61+
if (service.isOpen()) {
62+
service.closeFile();
63+
}
64+
});
65+
Runtime.getRuntime().addShutdownHook(closeHook);
5966
}
6067

6168
public static void main(String[] args) {
@@ -732,7 +739,8 @@ private static String getSystemInformation() {
732739
result.put("xmljava", mf1
733740
.format(new String[] { com.maxprograms.xml.Constants.VERSION, com.maxprograms.xml.Constants.BUILD }));
734741
result.put("bcp47j", mf1
735-
.format(new String[] { com.maxprograms.languages.Constants.VERSION, com.maxprograms.languages.Constants.BUILD }));
742+
.format(new String[] { com.maxprograms.languages.Constants.VERSION,
743+
com.maxprograms.languages.Constants.BUILD }));
736744
MessageFormat mf2 = new MessageFormat(Messages.getString("TMXServer.3"));
737745
result.put("java",
738746
mf2.format(new String[] { System.getProperty("java.version"), System.getProperty("java.vendor") }));

src/com/maxprograms/tmxserver/TMXService.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,24 @@ public JSONObject getLanguages() throws JSONException, IOException, SAXException
239239
String code = it.next();
240240
JSONObject json = new JSONObject();
241241
json.put("code", code);
242-
json.put("name", LanguageUtils.getLanguage(code).getDescription());
242+
String description = LanguageUtils.getLanguage(code).getDescription();
243+
if (description.isEmpty()) {
244+
// try guessing the language
245+
code = code.replace("_", "-");
246+
if (code.indexOf("-") != -1) {
247+
String[] parts = code.split("-");
248+
Language language = LanguageUtils.getLanguage(parts[0]);
249+
if (!language.getDescription().isEmpty()) {
250+
MessageFormat mf = new MessageFormat(Messages.getString("TMXService.13"));
251+
description = mf.format(new String[] { language.getDescription() });
252+
} else {
253+
description = Messages.getString("TMXService.14");
254+
}
255+
} else {
256+
description = Messages.getString("TMXService.14");
257+
}
258+
}
259+
json.put("name", description);
243260
data.put(json);
244261
}
245262
result.put("languages", data);
@@ -925,9 +942,9 @@ public JSONObject mergeFiles(String merged, List<String> files) {
925942
header.setAttribute("srclang", "*all*");
926943
out.write(
927944
("""
928-
<?xml version=\"1.0\" ?>
929-
<!DOCTYPE tmx PUBLIC \"-//LISA OSCAR:1998//DTD for Translation Memory eXchange//EN\" \"tmx14.dtd\">
930-
<tmx version=\"1.4\">
945+
<?xml version="1.0" encoding="UTF-8"?>
946+
<!DOCTYPE tmx PUBLIC "-//LISA OSCAR:1998//DTD for Translation Memory eXchange//EN" "tmx14.dtd">
947+
<tmx version="1.4">
931948
""")
932949
.getBytes(StandardCharsets.UTF_8));
933950
out.write((TextUtils.padding(1, indentation) + header.toString() + "\n")

src/com/maxprograms/tmxserver/excel/ExcelWriter.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636

3737
import com.maxprograms.xml.Document;
3838
import com.maxprograms.xml.Element;
39-
import com.maxprograms.xml.Indenter;
4039
import com.maxprograms.xml.SAXBuilder;
4140
import com.maxprograms.xml.XMLOutputter;
4241

@@ -88,7 +87,6 @@ private void setSheetName(File folder, String name) throws SAXException, IOExcep
8887
try (FileOutputStream out = new FileOutputStream(workbook)) {
8988
XMLOutputter outputter = new XMLOutputter();
9089
outputter.preserveSpace(true);
91-
Indenter.indent(root, 2);
9290
outputter.output(doc, out);
9391
}
9492
}
@@ -101,6 +99,16 @@ private void setStrings(File folder, Sheet sheet) throws SAXException, IOExcepti
10199

102100
File sheetXml = new File(folder, "xl" + SEP + "worksheets" + SEP + "sheet1.xml");
103101
Document sheetDoc = builder.build(sheetXml);
102+
Element columns = sheetDoc.getRootElement().getChild("cols");
103+
columns.setContent(new ArrayList<>());
104+
for (int i = 0; i < sheet.getColumns().size(); i++) {
105+
Element col = new Element("col");
106+
col.setAttribute("min", "" + (i + 1));
107+
col.setAttribute("max", "" + (i + 1));
108+
col.setAttribute("width", "80");
109+
col.setAttribute("customWidth", "1");
110+
columns.addContent(col);
111+
}
104112
Element sheetData = sheetDoc.getRootElement().getChild("sheetData");
105113
sheetData.setContent(new ArrayList<>());
106114

@@ -136,6 +144,7 @@ private void setStrings(File folder, Sheet sheet) throws SAXException, IOExcepti
136144
Element c = new Element("c");
137145
c.setAttribute("r", columnIndex.get(colCount) + (i + 1));
138146
c.setAttribute("t", "s");
147+
c.setAttribute("s", "1");
139148
Element v = new Element("v");
140149
v.addContent("" + unique.get(cell));
141150
c.addContent(v);
@@ -153,13 +162,11 @@ private void setStrings(File folder, Sheet sheet) throws SAXException, IOExcepti
153162
try (FileOutputStream out = new FileOutputStream(sharedStrings)) {
154163
XMLOutputter outputter = new XMLOutputter();
155164
outputter.preserveSpace(true);
156-
Indenter.indent(sst, 2);
157165
outputter.output(stringsDoc, out);
158166
}
159167
try (FileOutputStream out = new FileOutputStream(sheetXml)) {
160168
XMLOutputter outputter = new XMLOutputter();
161169
outputter.preserveSpace(true);
162-
Indenter.indent(sheetDoc.getRootElement(), 2);
163170
outputter.output(sheetDoc, out);
164171
}
165172
}
-1.02 KB
Binary file not shown.

src/com/maxprograms/tmxserver/tmx/SplitStore.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ private void createFile() throws IOException {
6262
String newFile = name.substring(0, name.length() - 4) + "_" + fileCount + ".tmx";
6363
out = new FileOutputStream(new File(newFile));
6464
writeString("""
65-
<?xml version=\"1.0\" ?>
66-
<!DOCTYPE tmx PUBLIC \"-//LISA OSCAR:1998//DTD for Translation Memory eXchange//EN\" \"tmx14.dtd\">
67-
<tmx version=\"1.4\">
68-
""");
65+
<?xml version="1.0" encoding="UTF-8"?>
66+
<!DOCTYPE tmx PUBLIC "-//LISA OSCAR:1998//DTD for Translation Memory eXchange//EN" "tmx14.dtd">
67+
<tmx version="1.4">
68+
""");
6969
writeString(TextUtils.padding(1, indentation) + header.toString() + "\n");
7070
writeString(TextUtils.padding(1, indentation) + "<body>\n");
7171
fileCount++;

src/com/maxprograms/tmxserver/tmx/SqlStore.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@
2525
import java.sql.ResultSet;
2626
import java.sql.SQLException;
2727
import java.sql.Statement;
28-
import java.util.Vector;
2928
import java.util.HashMap;
3029
import java.util.Iterator;
3130
import java.util.List;
3231
import java.util.Map;
3332
import java.util.Set;
3433
import java.util.TreeSet;
34+
import java.util.Vector;
3535
import java.util.regex.Pattern;
3636

3737
import javax.xml.parsers.ParserConfigurationException;
@@ -40,7 +40,6 @@
4040
import org.xml.sax.SAXException;
4141

4242
import com.maxprograms.languages.Language;
43-
import com.maxprograms.languages.LanguageUtils;
4443
import com.maxprograms.tmxserver.Constants;
4544
import com.maxprograms.tmxserver.excel.ExcelWriter;
4645
import com.maxprograms.tmxserver.excel.Sheet;
@@ -154,10 +153,6 @@ public void storeTU(Element tu) throws IOException, SQLException {
154153
// ignore this one
155154
continue;
156155
}
157-
lang = LanguageUtils.normalizeCode(lang);
158-
if (!languages.contains(lang)) {
159-
languages.add(lang);
160-
}
161156
if (tuvCount == 0) {
162157
storeTUV(id, lang, tuv);
163158
} else {
@@ -410,9 +405,9 @@ public void writeFile(File file) throws IOException, SAXException, ParserConfigu
410405
saved = 0l;
411406
try (FileOutputStream out = new FileOutputStream(file)) {
412407
writeString(out, """
413-
<?xml version=\"1.0\" ?>
414-
<!DOCTYPE tmx PUBLIC \"-//LISA OSCAR:1998//DTD for Translation Memory eXchange//EN\" \"tmx14.dtd\">
415-
<tmx version=\"1.4\">
408+
<?xml version="1.0" encoding="UTF-8"?>
409+
<!DOCTYPE tmx PUBLIC "-//LISA OSCAR:1998//DTD for Translation Memory eXchange//EN" "tmx14.dtd">
410+
<tmx version="1.4">
416411
""");
417412

418413
writeString(out, TextUtils.padding(1, indentation) + header.toString() + "\n");
@@ -1014,7 +1009,6 @@ public void exportDelimited(String file)
10141009
while (langIt.hasNext()) {
10151010
String lang = langIt.next();
10161011
String pure = getPure(tuid, lang);
1017-
// Element tuv = getTuv(tuid, lang);
10181012
String text = " ";
10191013
if (!pure.isEmpty()) {
10201014
text = TmxUtils.cleanLines(pure);

src/com/maxprograms/tmxserver/tmxserver.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ TMXService.1=Error getting languages from store
2626
TMXService.10=Error reading CSV file
2727
TMXService.11=Error getting languages
2828
TMXService.12=Error checking CSV languages
29+
TMXService.13={0} (Unknown Variant)
30+
TMXService.14=Unknown Language
2931
TMXService.2=Null Store
3032
TMXService.3=File does not exist
3133
TMXService.4=Error splitting files

src/com/maxprograms/tmxserver/tmxserver_es.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ TMXService.1=Error al obtener idiomas desde el almacenamiento
2626
TMXService.10=Error al leer el archivo CSV
2727
TMXService.11=Error al obtener idiomas
2828
TMXService.12=Error al comprobar los idiomas CSV
29+
TMXService.13={0} (Variante Desconocida)
30+
TMXService.14=Idioma Desconocido
2931
TMXService.2=Almacenamiento nulo
3032
TMXService.3=El archivo no existe
3133
TMXService.4=Error al dividir archivos

0 commit comments

Comments
 (0)