|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectcom.oreilly.servlet.LocaleNegotiator
public class LocaleNegotiator
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"));
LocaleToCharsetMap| 构造方法摘要 | |
|---|---|
LocaleNegotiator(String bundleName,
String languages,
String charsets)
Constructs a new LocaleNegotiator for the given bundle name, language list, and charset list. |
|
| 方法摘要 | |
|---|---|
ResourceBundle |
getBundle()
Gets the chosen bundle. |
String |
getCharset()
Gets the chosen charset. |
protected String |
getCharsetForLocale(Locale loc,
String charsets)
Gets the best charset for a given locale, selecting from a charset list. |
Locale |
getLocale()
Gets the chosen locale. |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public LocaleNegotiator(String bundleName,
String languages,
String charsets)
bundleName - the resource bundle namelanguages - the Accept-Language headercharsets - the Accept-Charset header| 方法详细信息 |
|---|
public ResourceBundle getBundle()
public Locale getLocale()
public String getCharset()
protected String getCharsetForLocale(Locale loc,
String charsets)
loc - the localecharsets - a comma-separated charset list
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||