package org.commcare.utils;
import org.javarosa.core.services.locale.Localization;
import org.javarosa.core.services.locale.Localizer;
import org.javarosa.core.util.NoLocalizedTextException;
public class ChangeLocaleUtil {
private static String[] removeDefault(String[] raw) {
String[] output = new String[raw.length - 1];
int index = 0;
for (String rawInput : raw) {
if (!rawInput.equals("default")) {
output[index] = rawInput;
index++;
}
}
return output;
}
public static String[] translateLocales(String[] raw) {
String[] translated = new String[raw.length];
for (int i = 0; i < raw.length; i++) {
try {
translated[i] = Localization.get(raw[i]);
} catch (NoLocalizedTextException e) {
translated[i] = raw[i];
}
}
return translated;
}
public static String[] getLocaleCodes() {
Localizer lizer = Localization.getGlobalLocalizerAdvanced();
String[] rawLocales = lizer.getAvailableLocales();
return removeDefault(rawLocales);
}
public static String[] getLocaleNames() {
String[] rawDefaultRemoved = getLocaleCodes();
return translateLocales(rawDefaultRemoved);
}
}