improve locale translator

- skip empty line
- robustness file section detection (space independant)
pull/27/head
reger 9 years ago
parent 646afe9183
commit 47d70732f6

@ -105,33 +105,31 @@ public class Translator {
* @param translationFile the File, which contains the Lists * @param translationFile the File, which contains the Lists
* @return a HashMap, which contains for each File a HashMap with translations. * @return a HashMap, which contains for each File a HashMap with translations.
*/ */
public static Map<String, Map<String, String>> loadTranslationsLists(final File translationFile){ public static Map<String, Map<String, String>> loadTranslationsLists(final File translationFile) {
final Map<String, Map<String, String>> lists = new HashMap<String, Map<String, String>>(); //list of translationLists for different files. final Map<String, Map<String, String>> lists = new HashMap<String, Map<String, String>>(); //list of translationLists for different files.
Map<String, String> translationList = new LinkedHashMap<String, String>(); //current Translation Table (maintaining input order) Map<String, String> translationList = new LinkedHashMap<String, String>(); //current Translation Table (maintaining input order)
final List<String> list = FileUtils.getListArray(translationFile); final List<String> list = FileUtils.getListArray(translationFile);
String forFile = ""; String forFile = "";
for (final String line : list){ for (final String line : list) {
if (line.isEmpty() || line.charAt(0) != '#'){ if (!line.isEmpty()) {
final String[] split = line.split("==", 2); if (line.charAt(0) != '#') {
if (split.length == 2) { final String[] split = line.split("==", 2);
translationList.put(split[0], split[1]); if (split.length == 2) {
//}else{ //Invalid line translationList.put(split[0], split[1]);
} //}else{ //Invalid line
} else if (line.startsWith("#File: ")) { }
if (!forFile.equals("")){ } else if (line.startsWith("#File:")) {
lists.put(forFile, translationList); if (!forFile.isEmpty()) {
} lists.put(forFile, translationList);
if (line.charAt(6) == ' ') { }
forFile=line.substring(7); forFile = line.substring(6).trim(); //skip "#File:"
} else { if (lists.containsKey(forFile)) {
forFile=line.substring(6); translationList = lists.get(forFile);
} } else {
if (lists.containsKey(forFile)) { translationList = new LinkedHashMap<String, String>();
translationList = lists.get(forFile); }
} else {
translationList = new LinkedHashMap<String, String>();
} }
} }
} }

Loading…
Cancel
Save