关于软件国际化与本地化的一些想法

      昨天一整晚都没睡好,脑袋里一直有一个想法徘徊不去。

      现在有成千上万的软件都要面临国际化与本地化的问题,尤其是多语言版本的软件。

      一般语言翻译都是对一个模板文件进行翻译,而这个模板文件绝大部分都是英语文件。

      每条msgid 对应一种语言的翻译语句,比如简体中文,在开源软件中一般为zh_CN.pot。

      考虑到很多软件项目中大量的翻译语句有很多输出消息都是重复的,不同项目的开发者必须对这些语句都要翻译一遍,

或者软件更新模板文件后也要对相应的翻译文件做相应的修改,这些工作都是琐碎而简单的重复劳动。

 

      面对成百上万条msgid,大量的翻译工作在不同的项目中进行,而这些都加在一起就是百万条,千万条,甚至上亿条。

在这些大量的msgid中肯定有很多重复的,尤其是同一个领域的软件项目。

而这些重复的msgid就是非常有用的,借助现有翻译文件可以建立一个消息翻译的数据库,

每一字段都表示一种语言,还可以加一个使用频率字段,这样我们就可以将现有的翻译消息存储在数据库中,也可以得

到每条msgid的使用频率,那么在进行一次新的消息翻译时就可以优先使用数据库中的信息,或许就有相应的翻译消息,

然后再翻译剩下的消息。就像拼音词库一样,但要更简单,合理利用已有的翻译资源,这可为我们省下大量的时间,

我们需要做的就是对翻译消息进行审查以及完成那些数据库中没有的消息,然后再向数据库中添加新的消息翻译记录,

这一部分可以由专人进行负责,务必确保存入数据库中的翻译消息是准确的,完整的。

 

      这个想法的实现很简单,相信很容易实现。但是前提条件就是数据库中的信息要足够多,要有一定的使用频率,这就要求许多的开发项目的翻译工作能够进行合作,共同为数据库贡献翻译消息,当然,如果本身的翻译工作比较多的话,也是可以建立一个自己的翻译消息数据库的。不过,多个项目的合作无疑更为有用,可使参与者均都受益。

      当然,这可能会涉及到保密问题,那就仅提供那些可公开的翻译信息就可以了,其实翻译语句是一条一条的,仅通过这些杂乱的信息是不会泄露太多软件秘密的。这对于开源软件项目来说,几乎不是问题,那些没有保密消息的软件项目也一样。

      当然,参与的项目多了,就要考虑用服务器了,毫无疑问,数据库的查询量会很大。

 

      说到这里,人人基本上都能够理解这个想法了,以下是我的一些设想:

      多社区合作,软件公司也可参与,收集现存的翻译消息建立初始数据库,统计出使用频率,进一步优化、核查,建立可用数据库,部署在服务器上,向参与人员开放服务。同时建立一个或几个收集翻译消息的数据库用于收集用户提交的信息,还需要相关人员对其进行核查,将具有一定使用频率,完整的翻译消息存入可用数据库。在客户端就是对消息进行一些查询操作,提交自己翻译的新消息,对翻译文件进行处理等,建议对翻译文本处理要优先考虑,这样便于进行批量处理,查询、提交时都可进行批量处理,这样有助于减少服务器负载。

      由于翻译消息都不是很长,特别长的建议自己搞定,而存储的信息基本属于文本格式,所以即使有上亿条信息,也不会占用太多的存储空间。可以估算一下,每种语言字段用300Byte,一亿条占用27.94GB,十种语言占270.94GB,二十种占558.79GB,当然这个是没有经过存储压缩的。对于那些上PB的存储服务来说,简直就是九牛一毛。而且,在不同的地域,对翻译语言的需要也会不同,这就可根据自己的情况决定使用那些语言了。

      文本字符编码建议用宽字符,如UTF-8,这样可以解决不同语言查询匹配问题。

      也可以建一个翻译网站,对需要翻译的信息进行集中处理,结合各个参与社区的力量进行翻译,这样更有助于国际化与本地化的实现,也可让翻译人员能够更好的交流协作,参与人员共享翻译成果。这只是我想出的另一个建议,可能不容易实现。

      对于小团队来说,可能想建一个符合自己需要的数据库,那就去自己动手实现它吧!可以采用自己喜欢的数据库,可以设计自己的服务器与客户端,针对自己的情况开发出一个满足自己需要的软件。原理很简单,就看你怎么实现了。

 

      以上就是让我昨晚睡不着的原因了,O(∩_∩)O哈!不知道为什么会出现这种想法,难道是受这几天翻译文献的影响?话说,这几天翻译了一些物理方面的文献,头都快晕了。

 

      说的不周到的地方,令你困惑的地方,都可以提出来,欢迎大家指正!

 

附注:想到建立索引的问题,可以将需要索引的字段,比如英语字段,生成sha1值,添加hash1字段,仅对sha1字段建立索引就可以了,这是从git项目中获得灵感。这样存储文本时就不必要求宽字符了。且仅对sha1值检索也要更快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值