最近要汉化一款Java应用软件,一个重要部分是汉化properties和xml文件。
从本地化角度,这类任务具有如下特点:
- 每年有2-4个版本推出,应适应快速迭代;
- 有大段的帮助和细碎的菜单等需要翻译;
- 对一些专用词汇,处理应符合当前习惯,这里往往没有成熟的标准。
选择编程语言的考虑:
- 在字符串操作和properties,xml文件操作方面,语言的表达能力强,效率高;
- 语言成熟,稳定,环境依赖小,容易获得;
- 最好是脚本式语言,方便调试和快速开发;
- 开发人员比较容易上手或已经比较熟悉;
当前,选择了古老的perl;
试举两例:
1,过滤掉所有非ascii字符,只保留ascii字符;
$tt =~ s/[^[:ascii:]]//g;
2,加载 properties文件并取值
open THE_PROPS, "< ".$theFile or die "unable to open the file";
my $the_properties = new Config::Properties();
$the_properties->load(*THE_PROPS);
close THE_PROPS;
$theV = $the_properties->getProperty("error.invalid.username");
选择翻译引擎的考虑
比较 google, bing, youdao, baidu等常见的在线翻译工具。希望能具有下面特点:
1,使用书面化语言;有些搜索引擎,倾向使用生活用语。
例如View ,在 translate.baidu.com 上翻译为 "看法", 而在其他翻译引擎为 "视图",这个翻译比较熟悉;
2,对短字或词,翻译应标准一致。如果每次翻译的不一样,在界面上同样的菜单项有不同的译法,容易引起混乱;
3,翻译时,最好能设置翻译的场景。暂时还没找到设置方法,也不清楚是否可设置;
4,长句复合句的翻译要准确。这一点感觉google做的最好;
5,对于不会翻译的字词,大写的字词,如何处理?最好能原文保留,这涉及一些专用词汇,厂商名称等。感觉baidu翻译如baidu搜索一样,有过度处理的现象,例如“VMWare;” 翻译为 “虚拟机;”。
6,对于特殊字符,标点符号的处理应一致,这便于后期的再调整。
7,收费方式,bing的价格比较高,Google还是比较亲民的。
8,程序接口方便,google提供了最为丰富的支持语言,便于快速开工。
当前选择的是translate.google.cn。youdao也是不错的,在复合句的翻译上还是没有google准确。