package org.ultramine.bootstrap.util; import org.ultramine.bootstrap.util.Resources; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class I18n { private static final Properties enUs = loadLang("en_US"); private static Properties selected = enUs; public static void select(String locale) { Properties props = locale.equals("en_US") ? enUs : loadLang(locale); selected = props != null ? props : enUs; } private static Properties loadLang(String locale) { InputStream inp = Resources.getAsStream("/assets/lang/"+locale+".lang"); if(inp == null) return null; try { Properties props = enUs != null ? new Properties(enUs) : new Properties(); props.load(inp); return props; } catch(IOException e) { throw new RuntimeException(e); } } public static String tlt(String key) { return selected.getProperty(key, key); } public static String tlt(String key, Object... args) { return String.format(tlt(key), args); } }