package ddth.dasp.common.mls;
import java.io.File;
import java.io.FileInputStream;
import java.util.Locale;
import java.util.Properties;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
/**
*
* This language pack loads language elements from files on disks.
*
* @author NBThanh <btnguyen2k@gmail.com>
*/
public class FilePropsBasedLanguage extends PropsBasedLanguage {
private String languageDir;
public FilePropsBasedLanguage() {
}
public FilePropsBasedLanguage(Locale locale, String name) {
super(locale, name);
}
public String getLanguageDir() {
return languageDir;
}
public void setLanguageDir(String languageDir) {
this.languageDir = languageDir;
}
/**
* {@inheritDoc}
*/
@Override
public void init() throws Exception {
super.init();
File dir = new File(languageDir);
if (!dir.isDirectory()) {
String msg = "[" + dir.getAbsolutePath() + "] is not a directory or not accessible!";
throw new RuntimeException(msg);
}
for (File file : dir.listFiles()) {
if (file.isFile() && file.canRead()) {
String fileName = file.getName();
if (fileName.endsWith(".properties") || fileName.endsWith(".xml")) {
Properties props = new Properties();
FileInputStream fis = FileUtils.openInputStream(file);
try {
if (fileName.endsWith(".properties")) {
props.load(fis);
} else {
props.loadFromXML(fis);
}
addLanguage(props);
} finally {
IOUtils.closeQuietly(fis);
}
}
}
}
}
public void destroy() {
// EMPTY
}
}