private boolean initLocale(String language) {
    	boolean success=false;
        String iso839_1_lang;
        if(language == null) {
            this.loc = null;
        } else if(language.isEmpty() || language.equalsIgnoreCase("xxx") || language.equalsIgnoreCase("xx")) {
        	this.loc = null;
        	success=true;
        } else if(language.length()==3) {
        	// TODO: once you get the language map fixed, clean up this processing for 2/3 char codes
            try {
                iso839_1_lang = LocaleSet.iso639_2_to_iso639_1(language);
                this.loc = new Locale(iso839_1_lang);
                success=true;
            } catch (UnsupportedEncodingException ex) {
                this.loc = null;
            }
        } else if(language.length()==2) {
        	iso839_1_lang=language.toLowerCase(Locale.ENGLISH);
            this.loc = new Locale(iso839_1_lang);
            if(this.loc != null) {
            	success=true;
            }
        }
        return success;
    }