| java.lang.Object com.oreilly.servlet.LocaleNegotiator
LocaleNegotiator | public class LocaleNegotiator (Code) | | A class to aid in servlet internationalization. It determines, from a
client request, the best charset, locale, and resource bundle to use
with the response.
LocaleNegotiator works by scanning through the client's language
preferences (sent by browsers in the Accept-Language header)
looking for any
language for which there exists is a corresponding resource bundle.
When it finds a correspondence, it uses the LocaleToCharsetMap class
to determine the charset. If there's any problem, it tries to fall
back to US English. The logic currently ignores the client's charset
preferences (sent in the Accept-Charset header).
It can be used like this:
String bundleName = "BundleName";
String acceptLanguage = req.getHeader("Accept-Language");
String acceptCharset = req.getHeader("Accept-Charset");
LocaleNegotiator negotiator =
new LocaleNegotiator(bundleName, acceptLanguage, acceptCharset);
Locale locale = negotiator.getLocale();
String charset = negotiator.getCharset();
ResourceBundle bundle = negotiator.getBundle(); // may be null
res.setContentType("text/plain; charset=" + charset);
res.setHeader("Content-Language", locale.getLanguage());
res.setHeader("Vary", "Accept-Language");
PrintWriter out = res.getWriter();
out.println(bundle.getString("resource"));
See Also: com.oreilly.servlet.LocaleToCharsetMap author: Jason Hunter, Copyright © 1998 version: 1.0, 98/09/18 |
Constructor Summary | |
public | LocaleNegotiator(String bundleName, String languages, String charsets) Constructs a new LocaleNegotiator for the given bundle name, language
list, and charset list. |
LocaleNegotiator | public LocaleNegotiator(String bundleName, String languages, String charsets)(Code) | | Constructs a new LocaleNegotiator for the given bundle name, language
list, and charset list.
Parameters: bundleName - the resource bundle name Parameters: languages - the Accept-Language header Parameters: charsets - the Accept-Charset header |
getCharset | public String getCharset()(Code) | | Gets the chosen charset.
the chosen charset |
getCharsetForLocale | protected String getCharsetForLocale(Locale loc, String charsets)(Code) | | Gets the best charset for a given locale, selecting from a charset list.
Currently ignores the charset list. Subclasses can override this
method to take the list into account.
Parameters: loc - the locale Parameters: charsets - a comma-separated charset list the best charset for the given locale from the given list |
getLocale | public Locale getLocale()(Code) | | Gets the chosen locale.
the chosen locale |
|
|