Java/Servlets/I18N
Содержание
- 1 Another Servlet Localization: Currency
- 2 " + bundle.getString("Hello") + " " + bundle.getString("and") + " " + welcome + "
- 3 Hello world in Japanese
- 4 Internationalization I18n
- 5 " + welcome + "
- 6 Servlet Localization
- 7 " + bundle.getString("Hello") + " " + bundle.getString("and") + " " + welcome + "
- 8 Servlet Localization: Date
- 9 " + bundle.getString("Hello") + " " + bundle.getString("and") + " " + welcome + "
- 10 Servlet localization display
- 11 Here is your Locale info...
- 12 Set I18N Response Header
Another Servlet Localization: Currency
<source lang="java">
import java.text.NumberFormat; import java.util.Locale; import java.util.ResourceBundle; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CurrLocaleServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { //Get the client"s Locale Locale locale = request.getLocale(); ResourceBundle bundle = ResourceBundle.getBundle("i18n.WelcomeBundle", locale); String welcome = bundle.getString("Welcome"); NumberFormat nft = NumberFormat.getCurrencyInstance(locale); String formatted = nft.format(1000000); //Display the locale response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html><head><title>" + welcome + "</title></head><body>");out.println("
" + bundle.getString("Hello") + " " + bundle.getString("and") + " " + welcome + "
");out.println("Locale: "); out.println(locale.getLanguage() + "_" + locale.getCountry()); out.println("
"); out.println(formatted); out.println("</body></html>"); out.close(); } //end doGet
}
</source>
Hello world in Japanese
<source lang="java">
import java.io.IOException; import java.io.PrintWriter; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloJapan extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/plain; charset=Shift_JIS"); PrintWriter out = res.getWriter(); res.setHeader("Content-Language", "ja"); Locale locale = new Locale("ja", ""); DateFormat full = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); out.println("In Japanese:"); out.println("\u4eca\u65e5\u306f\u4e16\u754c"); // Hello World out.println(full.format(new Date())); }
}
</source>
Internationalization I18n
<source lang="java">
import java.util.Locale; import java.util.ResourceBundle; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class WelcomeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { //Get the client"s Locale Locale locale = request.getLocale(); ResourceBundle bundle = ResourceBundle.getBundle("i18n.WelcomeBundle", locale); String welcome = bundle.getString("Welcome"); //Display the locale response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html><head><title>" + welcome + "</title></head><body>");out.println("
" + welcome + "
");out.println("Locale: "); out.println(locale.getLanguage() + "_" + locale.getCountry()); out.println("</body></html>"); out.close(); } //end doGet // doPost method ...
}//WelcomeServlet
</source>
Servlet Localization
<source lang="java">
import java.text.NumberFormat; import java.util.Locale; import java.util.ResourceBundle; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class PerLocaleServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { //Get the client"s Locale Locale locale = request.getLocale(); ResourceBundle bundle = ResourceBundle.getBundle("i18n.WelcomeBundle", locale); String welcome = bundle.getString("Welcome"); NumberFormat nft = NumberFormat.getPercentInstance(locale); String formatted = nft.format(0.51); //Display the locale response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html><head><title>" + welcome + "</title></head><body>");out.println("
" + bundle.getString("Hello") + " " + bundle.getString("and") + " " + welcome + "
");out.println("Locale: "); out.println(locale.getLanguage() + "_" + locale.getCountry()); out.println("
"); out.println("NumberFormat.getPercentInstance(): " + formatted); out.println("</body></html>"); } //end doGet
}
</source>
Servlet Localization: Date
<source lang="java">
import java.text.DateFormat; import java.util.Date; import java.util.Locale; import java.util.ResourceBundle; import java.util.ListResourceBundle; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DateLocaleServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { //Get the client"s Locale Locale locale = request.getLocale(); ResourceBundle bundle = ResourceBundle.getBundle("i18n.WelcomeBundle", locale); String welcome = bundle.getString("Welcome"); String date = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT, locale).format(new Date()); //Display the locale response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html><head><title>" + welcome + "</title></head><body>");out.println("
" + bundle.getString("Hello") + " " + bundle.getString("and") + " " + welcome + "
");out.println(date + "
"); java.util.Enumeration e = bundle.getKeys(); while (e.hasMoreElements()) { out.println((String) e.nextElement()); out.println("
"); } out.println("Locale: "); out.println(locale.getLanguage() + "_" + locale.getCountry()); out.println("</body></html>"); } //end doGet
} // file: WelcomeBundle_es_ES.java // import java.util.ListResourceBundle; class WelcomeBundle_es_ES extends ListResourceBundle {
static final Object[][] contents = { { "Welcome", "Huan Ying" } }; public Object[][] getContents() { return contents; }
}
</source>
Servlet localization display
<source lang="java">
import java.util.Enumeration; import java.util.Locale; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LocaleDisplay extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { //Get the client"s Locales Enumeration e = request.getLocales(); //Get the preferred Locale Locale preferred = request.getLocale(); String prefDisplay = ""; if (preferred != null) prefDisplay = preferred.getDisplayName(); //Display the preferred and any other locales response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html><head><title>Locale Display</title></head><body>");out.println("
Here is your Locale info...
");out.println("Preferred Locale: "); out.println(prefDisplay); out.println("out.println("
"); out.println("Locale country: "); if (preferred != null) out.println(preferred.getDisplayCountry()); out.println("
"); out.println("Locale language: "); if (preferred != null) out.println(preferred.getDisplayLanguage()); out.println("
");
Lower priority Locales...
");Locale loc = null; while (e.hasMoreElements()) { loc = (Locale) e.nextElement(); if (!(loc.getDisplayName().equals(prefDisplay))) { out.println("Locale: "); out.println(loc.getDisplayName()); out.println("
"); out.println("Locale country: "); out.println(loc.getDisplayCountry()); out.println("
"); out.println("Locale language: "); out.println(loc.getDisplayLanguage()); out.println("
"); }//if }//while out.println("</body></html>"); } //end doGet
}
</source>
Set I18N Response Header
<source lang="java">
import java.io.IOException; import java.io.PrintWriter; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import java.util.TimeZone; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloSpain extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/plain"); PrintWriter out = res.getWriter(); res.setHeader("Content-Language", "es"); Locale locale = new Locale("es", ""); DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); fmt.setTimeZone(TimeZone.getDefault()); out.println("En Espa\u00f1ol:"); out.println("\u00a1Hola Mundo!"); out.println(fmt.format(new Date())); }
}
</source>