package br.com.caelum.vraptor.i18n.routes;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ApplicationScoped
public class I18nRoutesResource implements RoutesResources {
private static final String ROUTES_BASE_NAME = "routes";
private final List<ResourceBundle> bundles;
private Logger LOGGER = LoggerFactory.getLogger(I18nRoutesResource.class);
public I18nRoutesResource() {
bundles = new ArrayList<>();
}
@PostConstruct
public void bindResourcesBundle() {
LOGGER.debug("Default locale for routes is {}", Locale.getDefault());
Locale[] availableLocalesFromSystem = Locale.getAvailableLocales();
List<Locale> notFound = new ArrayList<>();
for (Locale locale : availableLocalesFromSystem) {
try {
bundles.add(ResourceBundle.getBundle(ROUTES_BASE_NAME, locale));
LOGGER.info("Found resource bundle routes_{}.properties", locale);
} catch (MissingResourceException e) {
notFound.add(locale);
}
}
LOGGER.debug("Can't found locale routes_{}.properties", notFound);
}
@Override
public List<ResourceBundle> getAvailableBundles() {
return bundles;
}
}