code: protected List<String> calculateFilenamesForLocale(String basename, Locale locale) {
  		List<String> result = new ArrayList<String>(3);
  		String language = locale.getLanguage();
  		String country = locale.getCountry();
  		String variant = locale.getVariant();
  		StringBuilder temp = new StringBuilder(basename);
  
  		temp.append('_');
  		if (language.length() > 0) {
  			temp.append(language);
  			result.add(0, temp.toString());
  		}
  
  		temp.append('_');
  		if (country.length() > 0) {
  			temp.append(country);
  			result.add(0, temp.toString());
  		}
  
  		if (variant.length() > 0 && (language.length() > 0 || country.length() > 0)) {
  			temp.append('_').append(variant);
  			result.add(0, temp.toString());
  		}
  
  		return result;
  	}
docs: Calculate the filenames for the given bundle basename and Locale,
  appending language code, country code, and variant code.
  E.g.: basename "messages", Locale "de_AT_oo" -> "messages_de_AT_OO",
  "messages_de_AT", "messages_de".
  <p>Follows the rules defined by {@link java.util.Locale#toString()}.
  @param basename the basename of the bundle
  @param locale the locale
  @return the List of filenames to check