package Abstract; import android.content.Context; import misc.tracerengine; /** * Created by tiki on 08/10/2016. */ public abstract class translate { public static int do_translate(Context context, tracerengine Tracer, String name) { String mytag = "do_translate"; //Set to lower case here to simplify other calls String temp_name = name.toLowerCase(); //handle the fact that 'true/false' are reserved word and cant not been translate if (temp_name.endsWith("false")) { temp_name = "False"; } else if (temp_name.equals("true")) { temp_name = "True"; }else if (temp_name.equals("switch")) { temp_name = "Switch"; } //To avoid space or - in name in strings.xml temp_name = temp_name.replace(" ", "_"); temp_name = temp_name.replace("-", "_"); temp_name = temp_name.replace(":", "_"); temp_name = temp_name.replace("/", "_"); temp_name = temp_name.replace("(", ""); temp_name = temp_name.replace(")", ""); //handle start with a number as it is not allow by android if (Character.isDigit(temp_name.charAt(0))) { temp_name = "_" + temp_name; } // TODO for #144 handle some plugins function like concatenation with a comma or point of multiple value //To get a drawable R.Drawable //context.getResources().getIdentifier(name, "drawable", context.getPackageName()); //To get a string from R.String int newstring = context.getResources().getIdentifier(temp_name, "string", context.getPackageName()); //Catch untranslated value if (newstring == 0 && !name.equals("")) Tracer.e(mytag, "no translation for: " + name + " parse as: " + temp_name); return newstring; } }