国际化页面

国际化
    问题:什么是国际化,国际化作用?
        软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,
        提供相应的、符合来访者阅读习惯的页面或数据。
        国际化又称为 i18n:internationalization
        
        对于程序中固定使用的文本元素,例如菜单栏、导航条等中使用的文本元素、或错误提示信息,状态信息等,
        需要根据来访者的地区和国家,选择不同语言的文本为之服务。
        对于程序动态产生的数据,例如(日期,货币等),软件应能根据当前所在的国家或地区的文化习惯进行显示。
        
        可以提供更友好的访问习惯。
        
    问题:怎样实现国际化?
        针对于不同的国家与地区要显示的信息,都配置到配置文件中,
        根据当前访问者的国家或语言来从不同的配置文件中获取信息,
        展示在页面上。
        
    问题:关于配置文件?
        所谓的配置文件就是一组properties文件,它们叫做资源包。
        
        相关的概念:
            对于软件中的菜单栏、导航条、错误提示信息,状态信息等这些固定不变的文本信息,可以把它们写在一个properties文件中,
            并根据不同的国家编写不同的properties文件。这一组properties文件称之为一个资源包。

            ResourceBundler,它是用于从资源包中获取数据的。
            
            关于资源文件(properties)命名:
                基名_语言_国家.properties
                
                message_zh_CN.properties
                message_en_US.properteis
    ----------------------------------------------------------
    编码演示  properties文件操作以及通过ResourceBundler来获取资源包中信息.
        
        1.资源包文件一般都放置在classpath下(对于myeclipse就是src下)
        
        2.关于ResourceBundle使用
            创建:
                ResourceBundle bundle = ResourceBundle.getBundle("message");        
                ResourceBundle bundle = ResourceBundle.getBundle("message",Locale.US);
            获取:
                bundle.getString(String name);
                
            扩展:关于properties文件中中文问题处理?
                在jdk中有一个命令native2ascii.exe。
                
                1.进行一次翻译
                    native2ascii 回车
                    中文  回车
                    
                2.批量翻译
                    native2ascii  源文件路径   目录文件路径
                    例如: native2ascii d:/a.txt  d:/a.properties
                    
    -------------------------------------------------------------------
    国际化的登录页面
        1.创建登录页面
        2.创建配置文件
        3.在登录页面上根据不同的国家获取ResourceBundle
        4.在页面上需要国际化的位置,通过ResourceBundle.getString()来获取信息.
        
        问题:在页面上使用了jsp脚本.解决方案:使用标签 。
            在jstl标签库中提供了国际化标签.
            
        
    ------------------------------------------------------------------------
    关于日期国际化
        DateFormat类.
        作用:
            1.可以将一个Date对象格式化成指定效果的String     format方法
            2.可以将一个String解析成Date对象     parse方法
            
        1.DateFormat对象创建
            DateFormat df1 = DateFormat.getDateInstance(); // 只有年月日
            DateFormat df2 = DateFormat.getTimeInstance(); // 只有小时分钟秒
            DateFormat df3 = DateFormat.getDateTimeInstance();// 两个都有
            
            DateFormat df1 = DateFormat.getDateInstance(DateFormat.FULL); // 只有年月日
            DateFormat df2 = DateFormat.getTimeInstance(DateFormat.MEDIUM); // 只有小时分钟秒
            DateFormat df3 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT);// 两个都有
        
            DateFormat df1 = DateFormat.getDateInstance(DateFormat.FULL,Locale.US); // 只有年月日
            DateFormat df2 = DateFormat.getTimeInstance(DateFormat.MEDIUM,Locale.US); // 只有小时分钟秒
            DateFormat df3 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT,Locale.US);// 两个都有
        
    关于货币国际化
        NumberFormat类
            1.对数值进行格式化
                NumberFormat nf = NumberFormat.getIntegerInstance();
            2.对数值进行百分比
                NumberFormat nf = NumberFormat.getPercentInstance(Locale.FRANCE);
            3.对数值进行以货币显示
                NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
                
----------------------------------------------------------------------------------------------------------------
    MessageFormat
        动态文件格式化.
        
        MessageForamt可以对一个模板中的信息进行动态赋值.
        
        1.MessageFormat使用
            MessageForamt.format(String pattern,Object... params);
            
        2.说明一下关于动态文本中的占位符?
            例如:{0} is required
        
            1.注意占位符只能使用{0}---{9}之间的数值.
            2.关于占们符的格式
                {argumentIndex}: 0-9 之间的数字,表示要格式化对象数据在参数数组中的索引号
                {argumentIndex,formatType}: 参数的格式化类型
                {argumentIndex,formatType,FormatStyle}: 格式化的样式,它的值必须是与格式化类型相匹配的合法模式、或表示合法模式的字符串。

                formatType可以取的值有:number date time
                formatStyle可以取的值有
                    number类型可以取:integer currency  percent
                    date类型可以取的:short medium  full long
                    time类型可以取的:short medium  full long
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国际化是指设计能够适应各种区域和语言环境的软件的过程。在HTML页面中实现国际化可以通过以下几种方式: 1. 使用多个HTML文件:最简单的方式是为每种语言创建一个独立的HTML文件,每个文件中包含对应语言的文本内容。用户可以通过切换不同的HTML文件来切换语言显示。这种方式实现简单,但维护成本较高,需要对每个文件进行修改和维护。\[2\] 2. 使用JavaScript和JSON文件:通过使用JavaScript和JSON文件,可以将页面中的文本内容和其他可本地化的属性(如value值、placeholder属性等)存储在JSON文件中。然后,通过JavaScript动态加载对应语言的JSON文件,并将其中的文本内容替换到页面中的相应位置。这种方式可以实现动态切换语言,但需要编写和维护JavaScript代码和JSON文件。\[2\] 3. 使用服务器端技术:在服务器端根据用户的语言偏好动态生成HTML页面。服务器端可以根据用户的语言设置,将对应语言的文本内容嵌入到HTML页面中,然后将生成的页面返回给用户。这种方式可以实现灵活的国际化,但需要服务器端的支持和相应的开发工作。\[3\] 总结来说,HTML页面国际化可以通过多个HTML文件、JavaScript和JSON文件以及服务器端技术来实现。具体选择哪种方式取决于项目需求和开发资源的情况。 #### 引用[.reference_title] - *1* *3* [如何优雅的实现前端国际化](https://blog.csdn.net/weixin_42503036/article/details/117814981)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [HTML——国际化实现](https://blog.csdn.net/qq812457115/article/details/126191259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值