package com.constellio.model.utils.i18n; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.ResourceBundle; public class Utf8ResourceBundles { private final Map<Locale, ResourceBundle> RESOURCE_BUNDLES = new HashMap<Locale, ResourceBundle>(); private String bundleName; private URL[] urls; public Utf8ResourceBundles(String bundleName, URL[] urls) { this.bundleName = bundleName; this.urls = urls; } public ResourceBundle getBundle(Locale locale) { ResourceBundle bundle = RESOURCE_BUNDLES.get(locale); if (bundle == null) { ClassLoader loader = new URLClassLoader(urls); bundle = Utf8ResourceBundle.getBundle(bundleName, locale, loader); RESOURCE_BUNDLES.put(locale, bundle); } return bundle; } public static Utf8ResourceBundles forPropertiesFile(File propertiesFolder, String bundleName) { URL[] urls; try { urls = new URL[] { propertiesFolder.toURI().toURL() }; } catch (MalformedURLException e) { throw new RuntimeException(e); } return new Utf8ResourceBundles(bundleName, urls); } }