Fixed issues in i18n tools. Added beanshell worker indicator.

Added resources compression tools too.
This commit is contained in:
Zukero
2018-09-21 18:51:12 +02:00
parent 00c05e7507
commit b497493853
9 changed files with 906 additions and 53 deletions

View File

@@ -0,0 +1,86 @@
package com.gpl.rpg.atcontentstudio.model.tools.i18n;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class PoPotWriter {
Map<String, List<String>> stringsResources = new LinkedHashMap<String, List<String>>();
Map<String, String> translations = new LinkedHashMap<String, String>();
File f;
public static void writePoFile(Map<String, List<String>> stringsResources, Map<String, String> translations, File destination) {
try {
FileWriter fw = new FileWriter(destination);
if (translations.get("") != null) {
fw.write(translations.get(""));
writeEndOfEntry(fw);
}
if (translations.get("translator-credits") != null) {
List<String> refs = new LinkedList<String>();
refs.add("[none]");
writeReferences(fw, refs);
writeMsgId(fw, "translator-credits");
writeMsgStr(fw, translations.get("translator-credits"));
writeEndOfEntry(fw);
}
for (String msg : stringsResources.keySet()) {
writeReferences(fw, stringsResources.get(msg));
writeMsgId(fw, msg);
writeMsgStr(fw, translations.get(msg));
writeEndOfEntry(fw);
}
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void writePotFile(Map<String, List<String>> stringsResources, File destination) {
try {
FileWriter fw = new FileWriter(destination);
for (String msg : stringsResources.keySet()) {
writeReferences(fw, stringsResources.get(msg));
writeMsgId(fw, msg);
writeMsgStr(fw, "");
writeEndOfEntry(fw);
}
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void writeReferences(Writer w, List<String> references) throws IOException {
for (String ref : references) {
w.write("#: ");
w.write(ref);
w.write("\n");
}
}
private static void writeMsgId(Writer w, String msg) throws IOException {
w.write("msgid \"");
w.write(msg);
w.write("\"\n");
}
private static void writeMsgStr(Writer w, String translation) throws IOException {
w.write("msgstr \"");
w.write(translation == null ? "" : translation);
w.write("\"\n");
}
private static void writeEndOfEntry(Writer w) throws IOException {
w.write("\n");
}
}