JavaWeb页面国际化

VirtualLab初学者教程-1.用户界面 目录前言一、VirtualLab Fusion简介1.软件2.内置工具箱:二、用户界面认识1.上方菜单栏2.右侧面主窗口3.底部窗口附 前言 感觉做VirtualLab的资料不是特别多,可能用的朋友也比较少吧,笔者最近也因为大创需要刚刚开始入门,把网上有的英文资料整理了一下,加了一点自己的内容发出来希望帮助更多在学习中的朋友,有用词不当之处还请多多包涵。 一、VirtualLab Fusion简介 因为是第一讲,简单啰嗦一下软件本身,参考官方介绍。 1.软件 VirtualLab是由德国LightTran 阅读详情

国际化

什么是国际化

国际化就是可以把页面中的中文变成英文。例如在页面中的登录表单:

Locale类

创建Locale类对象:

l  new Locale(“zh”, “CN”);

l  new Locale(“en”, “US”);

zh、en表示语言,而CN、US表示国家。一个Locale对象表示的就是语言和国家。

ResourceBundle类

ReourceBundle类用来获取配置文件中的内容。

下面是两个配置文件内容:

res_zh_CN.properties

 

res_en_US.properties

 

public class Demo1 {

    @Test

    public void fun1() {

       ResourceBundle rb = ResourceBundle.getBundle("res", new Locale("zh", "CN" ));

       String username = rb.getString("msg.username");

       String password = rb.getString("msg.password");

       System.out.println(username);

       System.out.println(password);     

    }

   

    @Test

    public void fun2() {

       ResourceBundle rb = ResourceBundle.getBundle("res", new Locale("en", "US" ));

       String username = rb.getString("msg.username");

       String password = rb.getString("msg.password");

       System.out.println(username);

       System.out.println(password);      

    }

}

 

ResourceBundle的getBundle()方法需要两个参数:

l  第一个参数:配置文件的基本名称

l  第二个参数:Locale

getBundle()方法会通过两个参数来锁定配置文件!

 

页面国际化

其实页面国际化也是同一道理,只需要通过切换Locale来切换配置文件。我们写一个MessageUtils类,内部需要ResourceBundle的实例。

写一个过滤器MessageFilter,它会通过参数创建Locale对象,传递给MessageUtils,然后在页面中使用MessageUtils来获取文本信息。

MessageUtils.java

public class MessageUtils {

    private static String baseName = "res";

    private static Locale locale;

    public static String getText(String key) {

       return ResourceBundle.getBundle(baseName, locale).getString(key);

    }

    public static Locale getLocale() {

       return locale;

    }

    public static void setLocale(Locale locale) {

       MessageUtils.locale = locale;

    }

}

 

MessageFilter.java

public class MessageFilter implements Filter {

    public void destroy() {

    }

 

    public void doFilter(ServletRequest request, ServletResponse response,

           FilterChain chain) throws IOException, ServletException {

       HttpServletRequest req = (HttpServletRequest) request;

       String l = req.getParameter("request_locale");

       Locale locale = null;

       if(l != null && !l.isEmpty()) {

           String[] strs = l.split("_");

           locale = new Locale(strs[0], strs[1]);

           req.getSession().setAttribute("WW_TRANS_I18N_LOCALE", locale);

       } else {

           locale = (Locale)req.getSession().getAttribute("WW_TRANS_I18N_LOCALE");

       }

       if(locale == null) {

           locale = req.getLocale();

       }

       MessageUtils.setLocale(locale);

       chain.doFilter(request, response);

    }

 

    public void init(FilterConfig fConfig) throws ServletException {

    }

}

 

login.jsp

  <body>

    <h1><%=MessageUtils.getText("msg.login") %></h1>

    <form action="<c:url value='/index.jsp'/>" method="post">

    <%=MessageUtils.getText("msg.username")%>:<input type="text" name="username"/><br/>

    <%=MessageUtils.getText("msg.password")%>:<input type="password" name="password"/><br/>

    <input type="submit" value='<%=MessageUtils.getText("msg.login")%>'/>

    </form>

  </body>

 

index.jsp

  <body>

    <p><%=MessageUtils.getText("hello") + ":" +request.getParameter("username") %>:</p>

  </body>

 

NumberFormat类

  NumberFormat类用来对数字进行格式化,我们只需要使用String format(double)一个方法即可。下面是获取NumberFormat实例的方法:

l  NumberFormat format = NumberFormat.getNumberFormat()

l  NumberFormat format = NumberFormat.getNumberFormat(Locale)

l  NumberFormat format = NumberFormat.getCurrentcyFormat()

l  NumberFormat format = NumberFormat.getCurrentcyFormat(Locale)

l  NumberFormat format = NumberFormat.getPercentFormat()

l  NumberFormat format = NumberFormat.getPercentFormat(Locale)

 

DateFormat类

DateFormat类用来对日期进行格式化,我们只需要使用String format(Date)一个方法即可。下面是获取DateFormat实例的方法:

l  DateFormat format = DateFormat.getDateFormat();

l  DateFormat format = DateFormat.getTimeFormat();

l  DateFormat format = DateFormat.getDateTimeFormat();

l  DateFormat format = DateFormat.getDateFormat(int style, Localelocale);

l  DateFormat format = DateFormat.getTimeFormat(int style, Localelocale);

l  DateFormat format = DateFormat.getDateTimeFormat(int style, Localelocale);

 

其中style是对日期的长、中、短,以及完整样式。

l  SHORT; 

l  MEDIUM; 

l  LONG;

l  FULL

MessageFormat

MessageFormat可以把模式中的{N}使用参数来替换。我们把{N}称之为点位符。其中点位符中的N是从0开始的整数。

MessageFormat.format(Stringpattern, Object… params),其中pattern中可以包含0~n个点位符,而params表示对点位符的替换文本。注意,点位符需要从0开始。

String p = “{0}或{1}错误”;

String text =MessageFormat.format(p, “用户名”, “密码”);

System.out.println(text);//用户名或密码错误

保姆级教程:用Docker一键部署vLLM大模型推理服务(附常见报错解决方案) 本文提供了一份详细的Docker化vLLM大模型推理服务部署指南,涵盖从环境准备到性能调优的全流程。通过容器化技术解决大语言模型部署中的显存利用率、吞吐量等核心问题,并附常见报错解决方案,帮助开发者快速构建高效、可扩展的AI推理服务。 阅读详情

相关推荐

【项目实战】基于STM32单片机的智能小车设计(有代码)

【1】背景意义 近些年随着国民生活水平的提升,以小车为载体的轮式机器人进入了我们的生活,尤其是在一些布线复杂困难的安全生活区和需要监控的施工作业场合都必须依赖轮式机器人的视频监控技术。因此,基于嵌入式技术的无线通信视频监控轮式机器人应运而生。由于它们与人类工作相比具有成本低廉、安全稳定的优点,目前已经在许多危险作业以及工业场合得到了广泛应用而且轮式机器人不需要像人那样采取过多的保护措施,因此轮式机...

ShawnWang1994的博客 13万+

Servlet:国际化

1 什么是国际化 国际化就是可以把页面中的中文变成英文。例如在页面中的登录表单: 2 理解国际化 想把页面中的文字修改,那么就不能再使用硬编码,例如下面的页面中都是硬编码: 上图中的中文想转换成英文,那么就需要把它们都变成活编码: 3 Locale类 创建Locale类对象: l  new Locale(“zh”, “CN”); l  new Loc

熊诗言的博客 907

浏览器Cookie迁移实战:从Chrome导出导入登录态全攻略

Cookie是浏览器保存的会话凭证,服务端通过Set-Cookie将登录态种在本地。迁移Cookie本质上是把服务端认可的会话标识搬到新环境,从而免去重复输入账号密码和二次验证的麻烦。在换电脑、切浏览器或重装系统时,掌握Cookie的导出导入技术能显著提升效率。Chrome与Edge同属Chromium内核,存储结构相似,但字段差异(如Domain、SameSite、Secure)常导致迁移失败。通过浏览器扩展或CDP脚本可实现跨浏览器登录态迁移,适用于内网后台、开发环境等场景。本文从原理到实践,梳理Coo

weixin_42533120的博客 339

Servlet国际化流程(纯干货随笔)

1,在servlet里面用request.getlocal()去获得本地的国家。 返回值是locale类型的,local.getcountry可以获得国家编号。 2.把页面的词语都改成el表达式,然后改变语种即可. Locale locale=null; String language=request.getParameter("local"); System.out.println

怡帆的博客 323

解密美团外卖API:mtgsig和waimai_sign参数生成原理与Python实现

本文深入解析了美团外卖API中核心风控参数mtgsig和waimai_sign的生成原理与实现方法。文章详细拆解了waimai_sign作为业务数据签名、mtgsig作为请求环境签名的不同角色与生成逻辑,并通过Python代码示例演示了如何通过逆向工程、Frida动态Hook等技术手段模拟签名生成过程,为开发者理解移动端API安全机制提供了实战参考。

weixin_29325515的博客 552

自适应滤波算法综述

自适应滤波算法综述

xdzhujy的博客 5万+

如何国际化基本的 JSP/Servlet Web Applications (i18n)

首先,我们将学习如何使用 JSTL Taglib 来本地化 JSP 页面。此外,我们还将演示如何使用请求参数、会话属性和 cookie 值在 JSP 页面中选择首选语言。此外,我们将使用Maven来设置该项目。因此,我们希望读者具备Java Web Application,JSP,JSTL和Maven的基本知识。您可以在 Phrase 的GitHub上找到本教程的完整实现。 内容 1. 项目设置 2. 本地化 JSP 页面 3. 动态选择区域设置 3.1. 使用请求参数作为区域设置 ..

allway2的博客 861

【智能车Code review】——小S与中S道路判断

基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { .

hanhan的博客 6104

在Servlet中输出中文

                                本文旨在服务新手在创建的servlet中添加编码方式就随你自己。在浏览器中出现乱码只能时编码方式不一致第二种方式:直接在代码那加response.seContentType("text/html;charset=utf-8");...

小欢 4640

运放单电源供电和双电源供电的实际应用案例

文章摘要:本文对比分析了运放单电源与双电源供电的典型应用场景及电路设计要点。单电源供电适用于低成本、小体积设备,如便携音箱(5V供电+中点偏置)、工业4-20mA信号转换(12V供电+电压跟随)和物联网传感器(3.3V低功耗设计);双电源供电则适合高精度要求场景,如Hi-Fi音响(±15V对称输出)、医疗设备(±5V微弱信号放大)和精密仪器(±15V宽动态范围)。文末提供常见运放选型对照表,涵盖LM324、TL082等型号的供电参数与核心特性,为不同应用场景提供选型参考。(149字)

qq_37999850的博客 608

069、PCIE属性字段:缓存、顺序与安全

上个月调试一块自研的PCIE采集卡,遇到了一个诡异的问题:主机通过DMA从设备读取图像数据,大部分帧正常,但偶尔会出现局部数据错位,像是缓存没刷干净。用逻辑分析仪抓链路层报文,发现TLP(事务层包)本身完好,但内存中的数据就是不对。排查三天后,终于锁定在设备端TLP的**属性字段(Attribute Field)**配置上——那几位看似不起眼的缓存、顺序控制位,差点让项目延期。今天我们就拆解PCIE事务头中的这个关键区域,看看它如何影响系统性能与数据安全。

z534437748的博客 50

Servlet:请求和响应的中文显示问题

一、请求参数中的中文乱码问题       对于请求对象,使用setCharacterEncoding(“UTF-8”)方法 二、响应输出中文乱码       一般在Servlet输出纯文本时,通常会用ServletResponse对象的getWriter方法返回一个PrintWriter对象,然后利用这个对象把文本输出到客户端。       PrintWriter对象输出默认使用ISO-8

Lee的博客 815

华为OD机试双机位C卷 - 比赛 / 评委评分 (C++ & Python & JAVA & JS & GO)

华为OD机试双机位C卷 比赛,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-比赛,华为OD机考-比赛。

qq_45776114的博客 1700

JavaWeb——i18n国际化页面实现

i18ni18n国际化浏览器页面实现国际化 i18n国际化 i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。 国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。 实现国际化步骤 用Locale类获取获取不同的位置和语言 配置.properties文件,命名规则:baseName_locale.properties 根据ResourceBundle类的g

i_am_handsome_的博客 528

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

javaweb国际化,用struts标签解决,注意每个页面都是action跳jsp,并且拦截器的配置使得每次将国际化配置保存在session

将多语言版本的项目合并到一个项目中,通过读取不同语言环境的资源文件(properties),来显示不同语言的内容。 这些资源文件在Struts2中命名必须按照以下规则命名: 2)  必须放在src或config根目录下。 3)  主文件名后必须根上 语言缩写 国家缩写 配置文件名采用 主文件名_语言_国家 文件名就要命名为: message_zh_CN message_en_

needkane 1470

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java web页面格式化_javaweb国际化/格式化标签

在JSTL中,国际化/格式化标签有;国际化标签格式化标签1、用于设置 Locale 环境。属性:value:Locale环境的指定,可以是java.util.Locale 或 String 类型的实例。scope:Locale环境变量的作用范围(可选)举例: 表示设置本地环境为简体中文。 表示设置本地环境为美国英语。2、和这两组标签用于资源配置文件的绑定,唯一不同的是 标签将资源配置文件绑定于它标...

weixin_42502295的博客 314

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

国际化

国际化 所谓国际化无非就是一个页面可以用多种语言表示,例如:在一个登录页面中,页面的内容既可以用中文表示,也可以用英文表示,这个就叫国际化。那么国际化在javaweb中是如何实现和运用的呢? 下面就是国际化的原理: 代码实现: 首先要新建两个配置文件:res_en_US和res_zh_CN 如果是英文 @Testpublic void fun(){ L...

weixin_30244681的博客 122

JavaWeb学习|i18n

所有知识点都来自互联网,进行总结和梳理,侵权必删。引用来源:尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版。

anncyuyan的博客 1251

JavaWeb学习总结(十八)i18n国际化

在开发中,我们不希望jsp页面中有大量的代码脚本,那么我们就可以使用JSTL标签替代代码脚本。

long3359的博客 644

javaweb项目之项目i18n国际化

1.什么是 i18n 国际化? 国际化(Internationalization)指的是同一个网站可以支持多种不同的语言,以方便不同国家,不同语种的用户访问。  关于国际化我们想到的最简单的方案就是为不同的国家创建不同的网站,比如苹果公司,他的英文官网是: http://www.apple.com 而中国官网是http://www.apple.com/cn  苹果公司这种方案并不适合全部公司,而我们希望相同的一个网站,而不同人访问的时候可以根据用户所在的区域显示不同的语言文字,而网站的布局样式等不发生改

qq_43670543的博客 537

JavaWEB开发-国际化

JavaWEB开发-国际化 国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。 国际化又称为 i18n:internationalization 合格的国际化软件 软件实现国际化,需具备哪些特征: 对于程序中固定使用的文本元素,例如菜单栏、导航条等使用的文本元素、...

ddmkmbdq307072的博客 138

Java_常瑞鹏 JavaWEB开发-国际化

JavaWEB开发-国际化 国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。 国际化又称为 i18n:internationalization 合格的国际化软件 软件实现国际化,需具备哪些特征: 对于程序中固定使用的文本元素,例如菜单栏、导航条等使用的文本元素、...

ddmkmbdq307072的博客 146

【零基础上手JavaWeb】19 Servlet监听器和国际化详解

一篇带你入门JavaWeb精髓的博客,图文并茂,火速三连!

冰冻三尺,非一日之寒 225

javaweb学习--jsp

阅读电子书《Java Web从入门到精通》密码:461c,学习JavaWeb基础知识。由于本人已有html基础,所以直接略过前面部分,进入jsp学习 jsp页面添加库引用,引入项目文件 引用包<%@ page import="java.util.Date" %> 引用文件<%@ include file="top.jsp" %><%-- 不带编译功能,原...

weixin_30363817的博客 114

JavaWEB开发-国际化 --->张国亮总结第一节

JavaWEB开发-国际化 国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。 国际化又称为 i18n:internationalization 合格的国际化软件 软件实现国际化,需具备哪些特征: 对于程序中固定使用的文本元素,例如菜单栏、导航条等使用的文本元素、...

diaoyinji6441的博客 109

java 国际化_JavaWeb之国际化

时间:2016-12-13 19:17为了满足不同语种的需求,对不同语言环境下进行访问所响应的页面中的文本采取变量形式进行响应。1、编写配置文件2、使用类import java.util.Locale;import java.util.ResourceBundle;import org.junit.Test;/*** 先写两个配置文件* 一个文件中存放中文信息* 另一个文件存放英文信息* ...

weixin_30981569的博客 163
上一篇: JavaWeb中的监听器
下一篇: spring中配置quartz定时器
午-夜
博客等级 码龄12年 95粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值