Class Locators

java.lang.Object
org.zkoss.util.resource.Locators

public class Locators extends Object
Utilities to load and locate resources.
Author:
tomyeh
See Also:
  • Constructor Details

    • Locators

      public Locators()
  • Method Details

    • getDefault

      public static final Locator getDefault()
      Returns the default resource locator which is an instance of ClassLocator.
    • locate

      public static final Locators.URLLocation locate(String file, Locale locale, Locator locator)
      Locates the filename based on the locale.

      Example, assume file="/a/b.ext" and locale="zh_TW", then the following files are tried in sequence:
      /a/b_zh_TW.ext
      /a/b_zh.ext
      /a/b.ext

      Unlike ClassLoader.getResource, it returns the found file, not the URL. In the previous example, one of /a/b_zh_TW.ext, /a/b_zh.ext and /a/b.ext will be returned.

      To get the real URL, you still require locator.getResource:
      locator.getResource(Locators.locate(locator, "/a/b.ext", locale));

      Note: '_' is considered as a special character in the parsing, so there might be problem if a filename contains '_' used other than locale.

      Unlike Files.locate(java.lang.String), where the filename must contain '*', this method always tries to locate the file by inserting the locale before '.'. In other words, Files.locate("/a/b*.c") is similar to Locators.locate(("/a/b.c", null, a_file_locator);

      Parameters:
      locale - the locale; null means the current locale
      Returns:
      the URL containing proper locale characters; null if not found. Note: it could compare it with the file argument with ==, because this method will return the same string if it is the result.
    • locateAsStream

      public static final Locators.StreamLocation locateAsStream(String file, Locale locale, Locator locator)
      Locates the input stream based on the locale, and returns the info of StreamLocation.
      See Also: