package org.solovyev.android.translations;
import org.apache.http.util.TextUtils;
import org.simpleframework.xml.core.Persister;
import java.io.Closeable;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Utils {
static final List<String> languageLocales = new ArrayList<>();
static final Persister persister = new Persister();
static void saveTranslations(Resources translations, String language, File outDir,
String fileName) {
final File dir = new File(outDir, valuesFolderName(language));
dir.mkdirs();
FileWriter out = null;
try {
out = new FileWriter(new File(dir, fileName));
out.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
if (translations.comment != null && translations.comment.length() != 0) {
out.write("<!-- " + translations.comment + " -->\n");
}
persister.write(translations, out);
} catch (Exception e) {
e.printStackTrace();
} finally {
close(out);
}
}
static void close(Closeable closeable) {
if (closeable == null) {
return;
}
try {
closeable.close();
} catch (IOException e) {
e.printStackTrace();
}
}
static boolean delete(File file) {
if(!file.exists()) {
return true;
}
if (file.isFile()) {
return file.delete();
}
boolean deleted = true;
final File[] children = file.listFiles();
if (children != null) {
for (File child : children) {
deleted &= delete(child);
}
}
return deleted && file.delete();
}
static String valuesFolderName(String languageLocale) {
if(TextUtils.isEmpty(languageLocale)) {
return "values";
}
return "values-" + languageLocale;
}
static {
languageLocales.add("ar");
languageLocales.add("cs");
languageLocales.add("es");
languageLocales.add("de");
languageLocales.add("fi");
languageLocales.add("fr");
languageLocales.add("it");
languageLocales.add("nl");
languageLocales.add("pl");
languageLocales.add("pt-rBR");
languageLocales.add("pt-rPT");
languageLocales.add("ru");
languageLocales.add("tr");
languageLocales.add("vi");
languageLocales.add("ja");
languageLocales.add("ja");
languageLocales.add("uk");
languageLocales.add("zh-rCN");
languageLocales.add("zh-rTW");
}
}