一口一口吃掉Struts(九)——国际化问题(1) .

本文介绍Java中实现国际化的步骤,包括创建属性文件、定义Locale对象、创建ResourceBundle对象及获取数据等,并提供代码示例。

Web应用实现国际化(i18n),主要包括两个方面 

一、页面jsp)静态信息国际化

二、动态消息的国际化

 

在开始Struts国际化之前,我们先来看一下java如何实现国际化

 

主要步骤:

 

1、创建属性文件(国际化资源文件)

 

*国际化资源文件是有baseName+Locale构成,如MessagesBundle_en_US.properties

 

*缺省的国际化资源文件是baseName.properties格式命名,如:MessagesBundle.properties

 

*关于中文必须转换成unicode,可以采用JAVA_HOME/bin/native2ascii工具转换

命令native2ascii.exe o.properties MessagesBundle_zh_CN.properties

也可以一个一个字符转换

 

举例:

 

属性文件示例:

k1=China

k2=Hello,{0}

 

2、定义Locale对象

 

*可以获得系统默认local,也可以自定义

 

*缺省的Locale是有操作系统决定的

 

*Locale是有语言和国家代码构成

 

3、创建一个ResourceBundle对象

 

*ResourceBundle对象用于分离跟本地相关的数据

 

*如果找不到相应语言或国家代码的属性文件,将使用默认的属性文件(即没有标识语言和国家代码的属性文件:MessagesBundle.properties)

 

4、从ResourceBundle对象中获取数据,如果有占位符,可以给占位符赋值

 

示例:

  1. public class test {  
  2.     public static void main(String[] args)  
  3.     {  
  4.         //获取系统默认locle   
  5.         Locale localeDefault=Locale.getDefault();  
  6.         System.out.println("Country="+localeDefault.getCountry());  
  7.         System.out.println("Language="+localeDefault.getLanguage());  
  8.         System.out.println("------------------------");  
  9.           
  10.         //我们通过指定一个语言代码和国家代码来创建一个Locale对象   
  11.       
  12.   
  13.         Locale localeNew=new Locale("en","US");  
  14.         System.out.println("Country="+localeNew.getCountry());  
  15.         System.out.println("Language="+localeNew.getLanguage());  
  16.         System.out.println("------------------------");  
  17.       
  18.         //读取国际化资源文件   
  19.           
  20.         /** 
  21.          *  其创建方式如下: 
  22.         第一个参数,表示要从哪些资源属性文件中(MessagesBundle_XX_XX.properties)获取数据 
  23.         第二个参数,是一个Locale对象,表示要选择哪个资源属性文件 
  24.         ResourceBundle对象用于分离跟本地相关的数据 
  25.                      如果找不到相应语言或国家代码的属性文件, 
  26.                      将使用默认的属性文件(即没有标识语言和国家代码的属性文件:MessagesBundle.properties) 
  27.          */  
  28.         ResourceBundle myResources =ResourceBundle.getBundle("com.jialin.resource.MessagesBundle", localeDefault);  
  29.           
  30.         //从ResourceBundle对象中获取数据   
  31.         System.out.println(myResources.getString("k1"));  
  32.         System.out.println(myResources.getString("k2"));  
  33.         System.out.println("------------------------");  
  34.           
  35.         //给国际化资源文件中的占位符赋值   
  36.         MessageFormat myFormat=new MessageFormat(myResources.getString("k2"));  
  37.         System.out.println(myFormat.format(new Object[]{"jialin"}));  
  38.   
  39.     }  
  40.       
  41.       
  42. }  
public class test {
	public static void main(String[] args)
	{
		//获取系统默认locle
		Locale localeDefault=Locale.getDefault();
		System.out.println("Country="+localeDefault.getCountry());
		System.out.println("Language="+localeDefault.getLanguage());
		System.out.println("------------------------");
		
		//我们通过指定一个语言代码和国家代码来创建一个Locale对象
	

		Locale localeNew=new Locale("en","US");
		System.out.println("Country="+localeNew.getCountry());
		System.out.println("Language="+localeNew.getLanguage());
		System.out.println("------------------------");
	
		//读取国际化资源文件
		
		/**
		 * 	其创建方式如下:
		第一个参数,表示要从哪些资源属性文件中(MessagesBundle_XX_XX.properties)获取数据
		第二个参数,是一个Locale对象,表示要选择哪个资源属性文件
		ResourceBundle对象用于分离跟本地相关的数据
                     如果找不到相应语言或国家代码的属性文件,
                     将使用默认的属性文件(即没有标识语言和国家代码的属性文件:MessagesBundle.properties)
		 */
		ResourceBundle myResources =ResourceBundle.getBundle("com.jialin.resource.MessagesBundle", localeDefault);
		
	    //从ResourceBundle对象中获取数据
		System.out.println(myResources.getString("k1"));
		System.out.println(myResources.getString("k2"));
		System.out.println("------------------------");
		
		//给国际化资源文件中的占位符赋值
		MessageFormat myFormat=new MessageFormat(myResources.getString("k2"));
		System.out.println(myFormat.format(new Object[]{"jialin"}));

	}
	
	
}

 

Struts国际化实现的核心原理,基本也是这个样子,只是把相关的东西都写到了配置文件中,更复杂也更灵活一些。

下篇继续介绍Struts如何实现国际化。

一、 内容概要 本资源提供了一个完整的“金属板材压弯成型”非线性仿真案例,基于ABAQUS/Explicit或Standard求解器完成。案例精确模拟了模具(凸模、凹模)与金属板材之间的接触、压合过程,直至板材发生塑性弯曲成型。 模型特点:包含完整的模具-工件装配体,定义了刚体约束、通用接触(或面面接触)及摩擦系数。 材料定义:金属板材采用弹塑性材料模型,定义了完整的屈服强度、塑性应变等真实应力-应变数据。 关键结果:提供了成型过程中的板材应力(Mises应力)、塑性应变(PE)、厚度变化​ 云图,以及模具受力(接触力)曲线,完整再现了压弯工艺的力学状态。 二、 适用人群 CAE工程师/工艺工程师:从事钣金冲压、模具设计、金属成型工艺分析与优化的专业人员。 高校师生:学习ABAQUS非线性分析、金属塑性成形理论,或从事相关课题研究的硕士/博士生。 结构设计工程师:需要评估钣金件可制造性(DFM)或预测成型回弹的设计人员。 三、 使用场景及目标 学习目标: 掌握在ABAQUS中设置金属塑性成形仿真的全流程,包括材料定义、复杂接触设置、边界条件与载荷步。 学习如何调试和分析大变形、非线性接触问题的收敛性技巧。 理解如何通过仿真预测成型缺陷(如减薄、破裂、回弹),并与理论或实验进行对比验证。 应用价值:本案例的建模方法与分析思路可直接应用于汽车覆盖件、电器外壳、结构件等钣金产品的冲压工艺开发与模具设计优化,减少试模成本。 四、 其他说明 资源包内包含参数化的INP文件、CAE模型文件、材料数据参考及一份简要的操作要点说明文档。INP文件便于用户直接修改关键参数(如压边力、摩擦系数、行程)进行自主研究。 建议使用ABAQUS 2022或更高版本打开。显式动力学分析(如用Explicit)对计算资源有一定要求。 本案例为教学与工程参考目的提供,用户可基于此框架进行拓展,应用于V型弯曲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值