批处理文件国际化支持解决方案

随着软件应用的迅速推广与发展,应用软件无一例外的面临着支持多国家多语种的国际化问题,基于 Windows 的批处理文件应用广泛,然而作为一种通用脚本语言,批处理脚本没有提供一种体系化的多语言国际化支持。本文首先介绍编程语言和国际标准化对多语言问题作出的努力;其次,给出了通用多语言支持解决方案的灵活架构设计;再次,给出了批处理文件的轻量级、灵活架构的通用多语言支持解决方案,以及基于该解决方案构建支持多语言的批处理软件系统的一般步骤;最后作了一定的总结和展望。

背景

软件应用迅速发展扩张,逐步渗透到各行各业,越来越多的国家和地区认识到了计算机软件的重要性,大量的应用软件应用于日常的生活和工作当中。小到一个音乐播放软件,大到操作系统,都被广泛的应用。但是大量的计算机软件应用面临着一个非常严峻的问题,国际化问题。由于各个国家有不同的语言,而同一个国家的不同地区也有不同的语言习惯,例如中国大陆和台湾地区都使用中文,但是由于地区的语言等习惯不同,大陆地区使用简体中文,台湾地区使用的是繁体中文。对于一个应用软件要做到很好的本地化效果,就要充分考虑到用户的语言等习惯,例如 Windows Xp 系统包括中文简体 Xp 系统,中文繁体系统,英文系统等等。任何一个跨国家跨地域的软件都要碰到这样的问题,这个问题的解决和实现被称为国际化问题,所谓国际化就是 Internationalization,简称作 i18n 。

批处理脚本作为基于 Windows 直接支持的脚本,以其简洁、方便、快速而被广泛的直接应用或间接应用到大量的软件应用当中,然而作为一种通用的脚本语言没有提供一种成体系的多语言国际化支持,大大限制了这种简洁、方便的语言的使用,本文针对批处理脚本语言提出了一种有效的多语言支持解决方案。

Java 语言的国际化支持

Java 语言提供了 java.util.Locale 类进行多语言环境处理,Locale 对象表示了特定的地理、政治和文化地区。需要 Locale 来执行其任务的操作称为语言环境敏感的操作,它使用 Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗 / 传统来格式化该数值。使用此类中的构造方法来创建 Locale:

Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)

language 语言参数是一个有效的 ISO 语言代码。这些代码是由 ISO-639 定义的小写两字母代码。

表一 语言参数的 ISO 语言代码

English Name of Language All English Names All French Names ISO 639_2 ISO 639_1
Chinese Chinese chinois chi/zho zh
English English anglais eng en
French French français fre/fra fr

country 国家/地区参数是一个有效的 ISO 国家/地区代码。这些代码是由 ISO-3166 定义的大写两字母代码。

表二 语言参数的 ISO 国家/地区代码

Country names ISO 3166-1-alpha-2 code
CHINA CN
TAIWAN, PROVINCE OF CHINA TW
UNITED STATES US
UNITED KINGDOM GB
FRANCE FR

根据 ISO 语言代码和国家/地区代码我们定位一个国家地区的语言习惯的时候可以使用“语言 - 国家”这样的格式,例如中国大陆的中文语言习惯可以表示为“ zh-CN ”,中国台湾的语言习惯可以表示为“ zh-TW ”等等以此类推。

Java 语言充分利用 Locale 对象对语言习惯进行处理和设计。基于 JAVA 语言的大部分应用充分利用这一特性进行多语言架构设计。例如 Struts 框架在进行多语言处理的时候结合 Web 应用的特点充分使用了 JAVA 的多语言特性,多语言处理按照如下逻辑,如果用户选择了某种语言习惯 Locale,则将该信息存储到该用户的会话当中,再次读取首先检查会话信息,然后将会话中语言习惯 Locale 映射为信息文件;如果会话信息不存在,则利用 Request 对象读取客户端浏览器的系统 Locale 信息,然后把这一信息解析,即可得到相应的语言习惯,并映射成相应的语言习惯文件中去。

时间: 2024-12-03 02:28:27

批处理文件国际化支持解决方案的相关文章

《MySQL DBA修炼之道》——3.7 字符集和国际化支持

3.7 字符集和国际化支持 3.7.1 什么是字符集 字符集(character set)是一套符号和编码.校对规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则. 假设我们有一个字母表使用了4个字母:'A'.'B'.'a'.'b'.现在为每个字母赋予一个数值:'A'=0,'B'= 1,'a'= 2,'b'= 3,字母'A'是一个符号,数字0是'A'的编码,那么这4个字母和它们的编码组合在一起就是一个字符集.我们可以认为字符集是字符的二进制的编码方式,即二进制编码到

中英文支持-你的程序做到了吗?---不落伍的应用Struts 2 的国际化支持特性(7)

4.3  Struts 2的国际化支持 前面已经介绍了Java国际化的原理和方法,读者知道,Java的国际化需要一个Locale和一个资源包就能够实现国际化.资源包可以是资源文件也可以是资源类文件. Struts 2的国际化是建立在Java国际化的基础之上的,也是使用资源包的方式,通过getBundle()方法来寻找指定Locale相关联的资源包,再从资源包文件中查找指定Key所对应的国际化资源信息. Struts 2框架的底层国际化与Java国际化是一致的,作为一个良好的MVC框架,Strut

Yii2 添加国际化支持

链接 版本 配置 使用 英文 0 链接 http://alex-my.xyz/web/Yii2-添加国际化支持 1 版本 // yii\BaseYii\getVersion public static function getVersion() { return '2.0.10'; } 2 配置 基于基础版 创建语言包 在根目录建立一个文件夹messages\zh-CN 在zh-CN中创建两个文件: app.php, error.php // app.php <?php return [ 'lo

Android adb “push pull”中文支持解决方案

Android adb "push pull"中文支持解决方案       在windows底下文件(夹)命名所采用的是GBK编码,而在Android中采用的UTF-8编码,所有使用adb 的push和pull命令时就会导致由于编码方式的不同而产生的错误,解决这一问题就只有对adb工具的源代码进行修改,让adb对文件名的编码进行相应的转换.       具体过程如下:使用ubuntu 12.04 下载android的源代码,具体过程参考网络,ubuntu一定要使用64位机,因为最新的a

Git@OSC 国际化 —— 支持中英文双语显示

Git@OSC 代码托管平台新增国际化特性,目前支持简体中文和英文两种语言显示. 国内的不少开源软件作者希望自己的产品也能同时被国外的用户所使用,但同时又希望国内的用户可以快速访问项目源码.因此很多作者会将同一个项目托管到 Git@OSC 和 Github ,然后同时制作中英文的项目简介.这样做在更新代码的时候就比较繁琐,首先需要将代码推送到两个不同的仓库:其次是一些跟项目源码地址相关的介绍肯能就无法兼顾多个平台. 因此 Git@OSC 推出了国际化特性,目前仅提供简体中文和英文两种语言支持.系

Java的国际化支持(I18N问题)

一,读取PC的locale信息 Locale信息是由语言跟国家代码组成的,在Java中,提供了Locale类对应语言信息. /* * //获取local信息 Locale defaultLocale = Locale.getDefault(); * System.out.println("country:" + defaultLocale.getCountry()); * System.out.println("language:" + defaultLocale.

捷普推出InControl供应链SaaS决策支持解决方案

近日,捷普集团宣布推出全新的供应链SaaS 决策支持平台InControl.该平台可为企业提供重要的业务洞察力,助力企业凭借快速创新和商业化从数字经济竞争中脱颖而出.通过使用InControl,客户可快速.轻松地接入.收集和验证海量供应链数据,在整个产品周期内取得实质性的业务成果.具体来说,库存和上市时间可缩短至50%,产品交货期和成本可缩减至30%. "现有的供应链和工具无法有效满足客户在日益数字化的生态系统中竞争致胜的所有需求,"捷普高级副总裁兼首席供应链与采购官Don Hnaty

微信支付越来越国际化 支持外国护照绑卡

微信的用户群体越来越庞大,微信海外版使用数也在俱增,微信支付当然也不能落伍了.现在微信支付及财付通已经支持国内11家主要银行储蓄卡及信用卡的多证件绑卡及支付功能,不仅是外国友人,港澳台同胞也可以绑定并开通微信支付了!真的越来越国际化了. 微信支付绑卡流程 持外国护照.港澳回乡证.台胞证的小伙伴只需依次点击微信[Me]--[Wallet]--[QuickPay],在弹出的绑卡提示中选择"Add",输入银行卡号即可开通微信支付并绑卡成功~   微信支付及财付通支持多证件绑卡银行列表 绑卡过

ASP.NET WEB页面多语言支持解决方案

首先建立语言档,在项目中加入.resx文件 例如:message.zh-cn.resx'简体中文message.zh-tw.resx'繁体中文message.en'英文.............. ============================================然后利用Name--Value键值对填入你要在页面上显示的语言如:namevaluemessage.zh-cn.resx中:res_loginbname登陆名:message.zh-tw.resx中:res_log