package fr.tikione.steam.cleaner.util.conf; import fr.tikione.ini.InfinitiveLoopException; import fr.tikione.ini.Ini; import fr.tikione.steam.cleaner.Main; import fr.tikione.steam.cleaner.util.Log; import java.io.CharConversionException; import java.io.File; import java.io.IOException; /** * I18n language files encoding handler. */ public class I18nEncoding { /** Singleton handler. */ private static final I18nEncoding i18nEncoding; /** Configuration object. */ private final Ini ini; static { // Singleton creation. try { i18nEncoding = new I18nEncoding(); } catch (IOException ex) { Log.error(ex); throw new RuntimeException(ex); } } /** * Get the configuration handler as a singleton. * * @return the configuration handler singleton. */ public static synchronized I18nEncoding getInstance() { return i18nEncoding; } /** * Load application configuration file. * * @throws IOException if an I/O error occurs while retrieving the internal default configuration file. */ private I18nEncoding() throws IOException { ini = new Ini(); ini.getConfig().enableParseLineConcat(true); ini.getConfig().enableReadUnicodeEscConv(true); ini.load(new File("conf/i18n/encoding.ini"), Main.CONF_ENCODING); } public String getLngEncoding(String locale) throws CharConversionException, InfinitiveLoopException { return ini.getKeyValue(Main.CONF_ENCODING, "", locale); } }