diff options
author | Max Romanov <max.romanov@nginx.com> | 2020-10-14 16:18:34 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2020-10-14 16:18:34 +0300 |
commit | 9dcb7ec4b791f542a81e552dbb7a1cfa43430dd4 (patch) | |
tree | 1ebd454f809acb7ee078536d84aea6ff8f9fb920 | |
parent | 90b2c9f7d62a1f1f9cee11fba0ca47821de9faa7 (diff) | |
download | unit-9dcb7ec4b791f542a81e552dbb7a1cfa43430dd4.tar.gz unit-9dcb7ec4b791f542a81e552dbb7a1cfa43430dd4.tar.bz2 |
Java: response locale methods implemented.
This closes #479 issue on GitHub.
-rw-r--r-- | src/java/nginx/unit/Response.java | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/java/nginx/unit/Response.java b/src/java/nginx/unit/Response.java index 099d7f15..268b359d 100644 --- a/src/java/nginx/unit/Response.java +++ b/src/java/nginx/unit/Response.java @@ -40,11 +40,13 @@ public class Response implements HttpServletResponse { private String characterEncoding = defaultCharacterEncoding; private String contentType = null; private String contentTypeHeader = null; + private Locale locale = null; private static final Charset ISO_8859_1 = StandardCharsets.ISO_8859_1; private static final Charset UTF_8 = StandardCharsets.UTF_8; private static final String CONTENT_TYPE = "Content-Type"; + private static final byte[] CONTENT_LANGUAGE_BYTES = "Content-Language".getBytes(ISO_8859_1); private static final byte[] SET_COOKIE_BYTES = "Set-Cookie".getBytes(ISO_8859_1); private static final byte[] EXPIRES_BYTES = "Expires".getBytes(ISO_8859_1); @@ -590,9 +592,13 @@ public class Response implements HttpServletResponse { @Override public Locale getLocale() { - log("getLocale"); + trace("getLocale"); - return null; + if (locale == null) { + return Locale.getDefault(); + } + + return locale; } @Override @@ -795,7 +801,16 @@ public class Response implements HttpServletResponse { @Override public void setLocale(Locale loc) { - log("setLocale: " + loc); + trace("setLocale: " + loc); + + if (loc == null || isCommitted()) { + return; + } + + locale = loc; + String lang = locale.toString().replace('_', '-'); + + setHeader(req_info_ptr, CONTENT_LANGUAGE_BYTES, lang.getBytes(ISO_8859_1)); } private void log(String msg) |