package Services; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.*; import java.util.HashMap; public class LocalizationService { private static HashMap<String, String> lookup; private static String currentLang; public static String localizeString(String id) { if (currentLang == null){ setLanguage("EN"); } if(lookup != null){ String str = lookup.get(id); return (str == null) ? id : str; } else return null; } public static void setLanguage(String code) { Path path = FileSystems.getDefault().getPath("locale", "lang_"+code+".ini"); try { String[] localeFile = new String(Files.readAllBytes(path), Charset.forName("UTF-8")).split(";;;"); setLangStrings(localeFile); } catch (IOException e) { e.printStackTrace(); } currentLang = code; } public static String getLanguage(){ return currentLang; } private static void setLangStrings(String[] localeFile) { if(lookup == null) lookup = new HashMap<>(); lookup.clear(); for(String s : localeFile) { String[] pair = s.split("=", 2); pair[0] = pair[0].trim(); try { lookup.put(pair[0], pair[1]); } catch(ArrayIndexOutOfBoundsException e) { } } } }