日前CNNIC最新网民数量统计的发布,中国网民数量已跃居全球第一,使用Firefox(火狐)浏览器的用户数量也在不断攀升。为互联网网民提供更好的服务和体验,一直是Mozilla所致力追求的。而未来中文版本的火狐浏览器不仅仅是英文软件的汉化,更会有很多专门针对中国网民的特质。随着Mozilla在华子公司“谋智网络 ”(MozillaOnline.com)推出专为中国网民量身定做的“火狐中国版”(Firefox China Edition),近日Mozilla全球本地化总监Seth Thomas Bindernagel也亲临北京,与中国Mozilla社区本地化代表文少华、金箭等近百名社区成员共聚一堂,说火狐、谈L10N,聊聊Mozilla 社区本地化的那些事儿。 工欲善其事,必先利其器——Silme Mozilla全球本地化总监Seth向大家介绍了一个针对本地化工具开发者们开发的软件库——Silme,希望开发者们可以使用Silme作为本地化程序代码和本地化文件间的中间层。 Silme的主要特点包括: -包含很强的diff功能 -可扩展的输入/输出接口(支持从文件、zip包、sql、cvs、svn、hg等方式进行输入输出) -支持多种本地化文件格式(.dtd、.xliff、.prop、.po、l20n...) -模块化(分为silme.core、silme.diff、silme.formats、silme.io,可以分开使用) -多语言支持 Silme API silme.core silme包含四个核心的module: -silme.core.Entity -silme.core.EntityList -silme.core.L10nObject -silme.core.L10nPackage silme.core.Entity 是Silme最核心的原子单位,它是一个ID <-> Value的对儿,对应于dtd文件中的<!ENTITY ID "VALUE">或是Gettext中的msgid "ID"\nmsgstr "VALUE",或者是L10n数据库表中包含ID和Value的一行。你可以将任何一种本地化文件序列化成一个Entity的列表,只要你能为其中的每一个条目找到ID和Value对。 silme.core.EntityList是一个由许多Entity组成的列表(用Python的dict实现)。可以把它想象成一个包含ID和Value两列的数据库表,而每个Entity是其中的一行。 silme.core.L10nObject可以看做是一个本地化文件,它除了Entity之外,还包括注释、普通字符串等其他元素。如果你对L10nObject中的其他元素不感兴趣,你可以将一个L10nObject转化为一个EntityList. 除了silme.core.L10nObject之外,我们还有silme.core.Object,可以看做是除了本地化文件之外的其他文件,比如JPEG或者是HTML,Object仅保存ID和文件的地址等基本信息 silme.core.L10nPackage是一个由L10nObjects/Object/EntityLists或者其他L10nPackage组成的列表,比较像文件系统中的文件夹的概念。 silme.diff 有了上面的核心单位,我们可以针对每一个单位进行diff,因此我们有 EntityDiff、EntityListDiff、L10nObjectDiff、ObjectDiff、L10nPackageDiff。我们可以应用diff比较两个软件版本中的不同,并且把diff的结果应用到本地化中,这样本地化工作者只需要对两个版本中变化过的部分进行本地化就可以了。 |