package com.radicaldynamic.groupinform.xform;
import java.util.ArrayList;
public class Translation
{
private ArrayList<Translation> texts = new ArrayList<Translation>();
// Being lazy here and setting to empty strings so we don't have to worry about null values, at least initially
private String id = ""; // ID of this translation text
private String lang = ""; // Translation groups will have this set
private String value = ""; // Translation text will have this set
private boolean fallback = false; // Whether this is the default language for this form
private boolean group = false; // Whether this object is a group of translations for a given language
public Translation(String lang)
{
setLang(lang);
setGroup(true);
}
public Translation(String id, String value)
{
setId(id);
setValue(value);
}
public String toString()
{
String result = "";
if (lang instanceof String && lang.length() > 0)
result = lang;
else if (value instanceof String && value.length() > 0)
result = value;
return result;
}
public void setFallback(boolean fallback) {
this.fallback = fallback;
}
public boolean isFallback() {
return fallback;
}
public void setGroup(boolean group) {
this.group = group;
}
public boolean isGroup() {
return group;
}
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public String getLang() {
return lang;
}
public void setLang(String lang) {
this.lang = lang;
}
public void setTexts(ArrayList<Translation> texts) {
this.texts = texts;
}
public ArrayList<Translation> getTexts() {
return texts;
}
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
// TODO: refactor this stuff (list of languages, abbreviations & lookups into a separate application-persistent singleton)
public static String expandLangAbbreviation(String [] ls, ArrayList<String> a, String l)
{
if (a.contains(l.toLowerCase())) {
int i = a.indexOf(l.toLowerCase());
l = ls[i];
}
return l;
}
}