package org.pokenet.client.backend; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import org.pokenet.client.GameClient; public class Translator { private static Translator m_instance; /** * Returns a list of translated text * @param filename * @return */ public List<String> translateText(String filename) { List<String> translated = new ArrayList<String>(); String respath = System.getProperty("res.path"); if(respath==null) respath=""; try { String path = respath+"res/language/" + GameClient.getLanguage() + "/UI/" + filename + ".txt"; InputStream in = new FileInputStream(path); if(in != null) { BufferedReader f = new BufferedReader(new InputStreamReader(in)); Scanner reader = new Scanner(f); while(reader.hasNextLine()) { translated.add(reader.nextLine().replaceAll("/n", "\n")); } /*if(translated.size()==0){ FileInputStream fis = new FileInputStream(f); BufferedInputStream bis = new BufferedInputStream(fis); DataInputStream dis = new DataInputStream(bis); while (dis.available() != 0) { // this statement reads the line from the file translated.add(dis.readLine()); } fis.close(); bis.close(); dis.close(); }*/ }else{ //In case of emergencies, load english! try{ in = new FileInputStream(respath+"res/language/english/UI/" + filename + ".txt"); BufferedReader f = new BufferedReader(new InputStreamReader(in)); Scanner reader = new Scanner(f); while(reader.hasNextLine()) { translated.add(reader.nextLine().replaceAll("/n", "\n")); } }catch(Exception e){ translated.add("/n"); //If there's no english, display default line. } } } catch (Exception e) { e.printStackTrace(); } return translated; } /** * Returns the instance of translator * @return */ public static Translator getInstance() { if(m_instance == null) m_instance = new Translator(); return m_instance; } public static List<String> translate(String filename){ return Translator.getInstance().translateText(filename); } }