JSP国际化配置

转自:http://blog.csdn.net/seablue_xj/article/details/4024063

国际化(Internationalization,又称il8n),是越来越多的应用软件必须面临的问题,Java语言采用Unicode编码,并且提供了强大的类库支持国际化编程。采用Java语言编程,可以方便地实现应用软件界面语言的国际化。

国际化编程常用类:使用Java语言进行国际化编程,经常要用到Locale类及ResourceBundl e类,它们都在包java.util中.
1.Locale类
Locale类包含对主要地理区域的地域化特征的封装。通过设定Locale,我们可以为特定的国家或地区提供符合当地文化习惯的语言、表达格式等。一个Locale代码 可由语言代码和地区代码组合而成。常用的两种Locale代码如下:
这里写图片描述

2.ResoureeBundle类
ResourceBundle类是一个抽象类,需要通过getBundle(String baseName,Locale locale)方法加载扩展名为properties的资源文件。资源文件的名称由一个基本名称和Locale代码组成,而基本名称则可以在Java程序 中调用getBundle(StringbaseName,Locale locale)方法时传人参数指定。例如,我们在程序中指定基本名称为messages,Locale代码为zh_CN, 则对应的资源文件应为messages_zh_CN.properties

3、接下来我们可以用下面的代码来取得国际化配置:

Locale locale=new Locale("zh","CN");
ResourceBundle messages = ResourceBundle.getBundle("messages",locale);
String title = messages.getString("title");

上面的代码就是加载了messages_zh_CN.properties 的资源文件,读取了资源文件中的title的值。

I18N formatting 标签库就是用于在 JSP 页面中做国际化的动作。在该标签库中的标签一共有 12 个,被分为了两类,分别是:

  • 国 际化核心标签:<fmt:setLocale>、<fmt:bundle>、<fmt:setBundle>、<fmt:message>、<fmt:param>、<fmt:requestEncoding>

  • 格 式化标签:<fmt:timeZone>、<fmt:setTimeZone> 、<fmt:formatNumber> 、<fmt:parseNumber>、<fmt:formatDate>、<fmt:parseDate>

    1、<fmt:setLocale>标签 :
    <fmt:setLocale> 标签用于设置 Locale 环境。有两个属性:
    这里写图片描述

<fmt:setLocale value="zh_CN"/> 表示设置本地环境为简体中文。

2、<fmt:bundle> 、<fmt:setBundle> 标签 :
这两组标签用于资源配置文件的绑定,唯一不同的是<fmt:bundle> 标签将资源配置文件绑定于它标签体中的显示,<fmt:setBundle> 标签则允许将资源配置文件保存为一个变量,在之后的工作可以根据该变量来进行。有3个属性:
这里写图片描述

<fmt:setLocale value="zh_CN"/> 
<fmt:setBundle basename="applicationMessage" var="applicationBundle"/> 

该示例将会查找一个名为applicationMessage_zh_CN.properties 的资源配置文件,来作为显示的 Resource 绑定。

3、<fmt:message> 标签 :
用于信息显示的标签,将显示资源配置文件中定义的信息。有四个属性:
这里写图片描述

<fmt:setBundle basename="applicationMessage" var="applicationBundle"/>

<fmt:bundle basename="applicationAllMessage"> 
         <fmt:message key="userName" /> 
         <fmt:message key="passWord" bundle="${applicationBundle}"/> 
</fmt:bundle>

该示例使用了两种资源配置文件的绑定的做法,“ applicationMessage ”资源配置文件利用 <fmt:setBundle> 标签被赋于了变量“ applicationBundle ”,而作为<fmt:bundle> 标签定义的“applicationAllMessage ”资源配置文件作用于其标签体内的显示。

第一个 <fmt:message> 标签将使用“ applicationAllMessage ”资源配置文件中“键”为“ userName ”的信息显示。

第二个 <fmt:message> 标签虽然被定义在 标签体内,但是它使用了 bundle 属性,因此将指定之前由 标签保存的“ applicationMessage ”资源配置文件,该“键”为“ passWord ”的信息显示。

4、<fmt:param>标签:
<fmt:param> 标签应该位于 <fmt:message>标签内,将为该消息标签提供参数值。它只有一个属性 value 。
<fmt:param> 标签有两种使用版本,一种是直接将参数值写在 value 属性中,另一种是将参数值写在标签体内。
5、<fmt:requestEncoding> 标签:
用于为请求设置字符编码。它只有一个属性 value ,在该属性中可以定义字符编码。 <fmt:timeZone>、<fmt:setTimeZone> 标签 :
这 两组标签都用于设定一个时区。唯一不同的是<fmt:timeZone> 标签将使得在其标签体内的工作可以使用该时区设置, <fmt:setBundle> 标签则允许将时区设置保存为一个变量,在之后的工作可以根据该变量来进行。有3个属性:
这里写图片描述
6 、<fmt:formatNumber>标签 :用于格式化数字。
这里写图片描述
<fmt:formatNumber>标签对应 java.util.NumberFormat 类, type 属性的可能值包括 currency (货币)、 number (数字)和 percent (百分比)。

<fmt:formatNumber value="1000.888" type="currency" var="money"/>

该结果将被保存在“ money ”变量中,将根据 Locale 环境显示当地的货币格式。
7、<fmt:parseNumber> 标签 :
用于解析一个数字,并将结果作为 java.lang.Number 类的实例返回。 <fmt:parseNumber> 标签看起来和 <fmt:formatNumber> 标签的作用正好相反。
这里写图片描述
<fmt:parseNumber value="15%" type="percent" var="num"/> 解析之后的结果为“ 0.15 ”。
8 、<fmt:formatDate>标签:用于格式化日期。
这里写图片描述
<fmt:formatDate>标签与<fmt:timeZone> 、 <fmt:setTimeZone> 两组标签的关系密切。若没有设定 timeZone属性, 也可以通过 <fmt:timeZone> 、 <fmt:setTimeZone> 两组标签设定的时区来格式化最后的结果。
9、<fmt:parseDate>标签
<fmt:parseDate>标签用于解析一个日期,并将结果作为 java.lang.Date 类型的实例返回。 <fmt:parseDate> 标签看起来和<fmt:formatDate> 标签的作用正好相反。
这里写图片描述
<fmt:parseNumber><fmt:parseDate> 两组标签都实现解析字符串为一个具体对象实例的工作,因此,这两组解析标签对 var 属性的字符串参数要求非常严格。就 JSP 页面的表示层前段来说,处理这种解析本不属于份内之事,因此 <fmt:parseNumber><fmt:parseDate> 两组标签应该尽量少用,替代工作的地方应该在服务器端表示层的后段,比如在 Servlet 中。

上面简单的介绍了JAVA国际化配置,以及JSP的i18n标签库。这个章节,将展示如何在spring 中配置国际化配置。
1、首先我们要准备资源文件,messages.properties ,作为默认的资源文件,另外准备了3个版本的资源文件:messages_en_US.properties messages_zh_CN.properties messages_zh_TW.properties。放在class-path也就是/WEB-INF/classes里 。

注意:中文的资源,需要将文字转化为下,可以使用native2ascii.exe 工具,在JDK的bin目录下,带有这个工具。

2、web.xml 加入代码用来定义messages文件

 <context-param>
  <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
  <param-value>messages</param-value>
 </context-param>

3、建立个新的JSP页面:

加入标签库:<%@ taglib uri="http://java.sun.com/jstl/fmt " prefix="fmt" %>

然后设置 国际化配置语言: 这样就会加载 messages_zh_CN.properties 的资源文件。

在用引用的国际化的属性的时候 使用<fmt:message key="title"/>就可以了,其中的title 为资源文件中定义的属性

这样就完成了一个最基本的国际化配置。

在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值