Class I18nBundleUtil

java.lang.Object
org.nuiton.i18n.bundle.I18nBundleUtil

public class I18nBundleUtil extends Object
Usefull methods on bundles. Note: Replace the previous class org.nuiton.i18n.bundle.I18nBundleFactory.
Since:
1.1
Author:
Tony Chemit - chemit@codelutin.com
  • Field Details

    • DIRECTORY_SEARCH_BUNDLE_PATTERN

      public static final String DIRECTORY_SEARCH_BUNDLE_PATTERN
      See Also:
    • EMPTY_URL_ARRAY

      public static final URL[] EMPTY_URL_ARRAY
  • Constructor Details

    • I18nBundleUtil

      public I18nBundleUtil()
  • Method Details

    • getLocales

      public static Locale[] getLocales(I18nBundle... bundles)
      Récuperation de toutes les locales connus par un ensemble de bundles.
      Parameters:
      bundles - les bundles a parcourir
      Returns:
      la liste des locales rencontrées
    • getBundleNames

      public static String[] getBundleNames(I18nBundle... bundles)
      Récuperation des noms de bundle par un ensemble de bundles.
      Parameters:
      bundles - les bundles a parcourir
      Returns:
      la liste des noms de bundle rencontrées
    • getBundles

      public static I18nBundle[] getBundles(Locale l, I18nBundle... bundles)
      Filtrage des bundles qui correspondante à la locale donnée.
      Parameters:
      l - la locale à filtrer
      bundles - les bundles a parcourir
      Returns:
      les bundles qui correspondent à la locale donnée.
    • getBundleEntries

      public static I18nBundleEntry[] getBundleEntries(I18nBundle... bundles)
      Récupération de toutes les entrées de bundles pour les bundles données.
      Parameters:
      bundles - les bundles a parcourir
      Returns:
      toutes les entrées de bundles.
    • getBundleEntries

      public static I18nBundleEntry[] getBundleEntries(Locale l, Locale defaultLocale, I18nBundle... bundles)
      Filtrage des entrées de bundles pour une locale donnée. On essaye de trouver les meilleurs entrées possibles (possibilité de promotion). Note: Cette méthode doit être utilisé pour trouver toutes les entrées à charger par le système i18n pour une locale donnée. Note: Par defaut, on n'effectue pas les promotions générales (getBundleEntries(Locale, Locale, boolean, I18nBundle...)
      Parameters:
      l - la locale à filtrer
      defaultLocale - la locale à utiliser pour les promotions
      bundles - les bundles a parcourir
      Returns:
      les entrées de bundles filtrés.
    • getBundleEntries

      public static I18nBundleEntry[] getBundleEntries(Locale l, Locale defaultLocale, boolean promuteGeneral, I18nBundle... bundles)
      Filtrage des entrées de bundles pour une locale donnée. On essaye de trouver les meilleurs entrées possibles (possibilité de promotion). Note: Cette méthode doit être utilisé pour trouver toutes les entrées à charger par le système i18n pour une locale donnée.
      Parameters:
      l - la locale à filtrer
      defaultLocale - la locale à utiliser pour les promotions
      promuteGeneral - un drapeau pour indiquer si l'on autorise le chargement de la locale par defaut si pour un bundle donne on a pas trouve de traductions pour la locale donnee.
      bundles - les bundles a parcourir
      Returns:
      les entrées de bundles filtrés.
    • getURLs

      public static URL[] getURLs(Collection<URL> urls)
      Recherche la liste des url de toutes les resources i18n, i.e les urls des fichiers de traduction.
      Parameters:
      urls - les urls à inspecter pour trouver des resources i18n
      Returns:
      la liste des urls de bundle i18n
    • getURLs

      public static URL[] getURLs(URL url)
      Recherche la liste des url de toutes les resources i18n, i.e les urls des fichiers de traduction.
      Parameters:
      url - l'URL à inspecter pour trouver des resources i18n
      Returns:
      la liste des urls de bundle i18n
    • isEmpty

      public static boolean isEmpty(I18nBundle... bundles)
      Teste si un ensemble de bundles contient au moins une entrée.
      Parameters:
      bundles - les bundles a parcourir
      Returns:
      true si aucune entree trouvee, false autrement.
    • detectBundles

      public static List<I18nBundle> detectBundles(URL... urls)
      Detecte les bundles i18n a partir des urls des fichiers de traduction donnes. Tous les entrées de bundles sont triees dans l'ordre des scopes i18n.
      Parameters:
      urls - les urls des fichiers de traductions
      Returns:
      la liste des bundle i18n construits à partir des fichiers de traduction donnes.
    • addBundleEntry

      protected static boolean addBundleEntry(URL url, I18nBundleScope scope, List<String> bundleNames, List<I18nBundle> bundles)
    • addBundle

      protected static I18nBundle addBundle(String bundleName, List<String> bundleNames, List<I18nBundle> bundles)
    • promuteBundle

      protected static I18nBundleEntry[] promuteBundle(I18nBundle bundle, Locale l, Locale defaultLocale, boolean promuteGeneral)
      Obtain some rescue entries for a given locale. Note: Calling this method implies there is no entry matched by the common method getBundleEntries(Locale, Locale, I18nBundle...) returns a empty array.
      Parameters:
      bundle - the bundle to promute
      l - the locale required
      defaultLocale - the default locale to used for promotion
      promuteGeneral - a flag to authorize promotion to default locale
      Returns:
      the table of entries promuted for the given locale
    • promuteFull

      protected static void promuteFull(I18nBundle bundle, Locale locale, Locale defaultLocale, List<I18nBundleEntry> result, boolean promuteGeneral)
    • promuteLanguage

      protected static void promuteLanguage(I18nBundle bundle, Locale locale, Locale defaultLocale, List<I18nBundleEntry> result, boolean promuteGeneral)
    • promuteGeneral

      protected static void promuteGeneral(I18nBundle bundle, Locale locale, Locale defaultLocale, List<I18nBundleEntry> result)
    • getURLsFromJar

      protected static List<URL> getURLsFromJar(URL incomingURL, File jarfile)
    • getSearchBundlePattern

      protected static String getSearchBundlePattern()
      Compute the search pattern according to the File.separator on the underlying os. Under linux this is .*i18n/.+\.properties, and under windows this is .*i18n\\\\.+\.properties.
      Returns:
      the correct pattern
      Since:
      2.0
    • getURLsFromDirectory

      protected static List<URL> getURLsFromDirectory(URL incomingURL, File repository)