public Translation getTranslation(final Locale locale) { if (locale == null || translations == null) { return null; } String lang = locale.toString().toLowerCase(); for (int i = 0; i < 4; i++) { // Endless loop protection. final Translation translation = getTranslation(lang); if (translation != null) { return translation; } final int pos = lang.lastIndexOf('_'); if (pos > 0) { lang = lang.substring(0, pos); } else { break; } } return null; }
public String getLabel(final Locale locale) { if (locale == null || translations == null) { return getLabel(); } final Translation translation = getTranslation(locale); if (translation != null) { return translation.getTranslation(); } return getLabel(); }