开放源代码软件本地化/建议
前言 — 鸣谢 — 介绍 — 亚太地区的本地化工作 — 建议 — 附录 A:关键概念 — 附录 B:技术方面 — 进一步阅读 — 资源和工具 — 词汇表 — 关于作者 — 关于 APDIP — 关于 IOSN
亚洲是开放源代码软件本地化的全球战场。垄断的专有软件公司尚未在亚洲建立统治地位。出于国家利益的考虑,许多亚洲国家政府已采取政策鼓励软件替代方案,主要是开放源代码软件。
在一些国家,迄今为止的本地化工作是由散布在全球各地的一些敬业的爱好者完成的。很少有人为他们的努力获得报酬,他们翻译工作的无组织性无意中产生了歧义。
在大多数情况下,志愿者是程序员,而不是语言学家。他们需要翻译人员、技术作家和测试人员的帮助。由于本地化主要处理语言而不是编程问题,因此非技术人员的数量应为程序员的五倍。即使在采用正式的开放源代码软件政策之前,也可以开始直接支持技术词典和本地化标准。本地语言专家只需要专业的薪酬和办公室。技术作家和测试人员可以在几个月内接受培训。
支持国际本地化计划(其中共享大量相似性的语言(例如,泰语、老挝语和高棉语)共享编程和技术资源)非常具有成本效益。为整个社会创造的价值,以及新的词典和技术标准使程序员和翻译人员能够以低廉的价格一致地本地化任何开放源代码软件,这是不可否认的。其他亚洲国家应效仿中日韩计划的例子。
本地化计划应具有非常明确的目标,以及实现这些目标所需的资源。它们需要资金、专业的管理和技术专业知识。此外,彻底的语言学知识对于成功至关重要。
这些计划将导致创建本地中心,知识将在这些中心传播给将执行实际工作的人员。此类中心可以是政府行动或商业伙伴关系的产物,或者作为大学的一部分运营。无论这些中心是如何建立的,都应得到政府政策的全力支持。
现在是时候将亚洲软件本地化流程专业化,特别是对于发展中国家而言。如果偶然的努力导致不可靠的结果,则可能会失去一个巨大的机会。在个人努力无法实现公共利益的地方,政府有义务提供帮助。一个专业团体可以请求志愿者的帮助,但核心协调和基础工作应由一个专门的付费员工团队完成。
可能是发展中国家每年为一个部门的商业软件支付的费用足以支付该国参与开放源代码软件运动的费用。
建立本地化中心,作为开放源代码软件开发人员共享信息、发展技能和建立现有成果基础的中心。在不同国家具有语言共性的情况下,区域本地化中心可以分担开发成本。精通源代码的专家、语言学家和分析师可以为各种项目提供帮助,并建立一个知识库以加速未来的开发。
赞助创建技术词典和标准,以便在所有开放源代码软件项目中保持一致性。使用标准术语,计算机用户不太可能遇到挫折,并且使用标准的技术程序和流程,开放源代码软件代码可以保持所有 IT 专业人员的易于理解。政府实施的所有软件采购政策都应强制执行遵守此类标准。
快速行动。正确地完成事情很重要,但快速完成事情也很重要。为低技术语言编写一个好的计算机词汇表可能需要一年多的时间,但是一个足以翻译程序第一个版本的第一个词汇表可以很快完成(例如,三个月)。程序的未来版本将使用最终词汇表,但第一个版本可以在几个月内提供。详细说明规定的术语和标准的官方“门户”应是首要任务。
鼓励分发开放源代码软件操作系统、应用程序和平台。政府可以以极低的成本将本地化的开放源代码软件分发到学校、企业和其他组织。这将推动计算机和软件的采用率,并防止不必要地非法复制专有软件。由于开放源代码软件通常与旧机器一起使用,因此为大众提供计算访问的总成本将低于任何其他方法。
不仅要为计算机专业人员提供开放源代码软件培训,还要在中小学提供培训。在教育预算紧张的发展中国家,使用本地化的开放源代码软件在低成本计算机上运行非常适合增加农村社区的教育机会。青少年的自然好奇心将很快导致新一代人能够用母语使用计算机。那些表现出使用计算机特殊才能的学生可以通过奖学金、竞赛和其他适合年龄的活动被鼓励学习编程。
除了建立有利于本地化开放源代码软件的政府采购政策外,政府在消除障碍、提供资金和协调标准方面也发挥着重要作用。如果没有政府的支持,“英语词”和不一致性将严重阻碍开放源代码软件的持续本地化,并限制本土软件产业发展的机会。
当国家已经在使用外语的计算机时,通常会发生本地化。计算机科学家和培训师习惯于英语或法语的计算机词汇。因此,本地化需要根据词汇表中使用的语言创建培训材料,以便培训师和新用户开始使用本地语言。
由于很难聘用语言学家,因此可以先进行准备工作,例如查找每个术语的不同翻译选项。
在此之后,工作主要是翻译人员的工作,他们遵循词汇表指南和规则。同一个团队中应有专业的翻译人员和计算机科学家,以确保所用术语的语言和技术正确性。
一旦完成第一层工作(字体、语言支持等),本地化就可以越来越多地无需太多技术资源即可执行。将来,它将变得更容易,因为几乎所有开放源代码软件项目都正在采用新的工具和技术,使非专家更容易执行此工作。
能够执行软件本地化的熟练工人通常已经存在,或者可以在本地或国外接受培训。区域软件本地化培训和协调中心可以作为信息交换中心和学院,供个人提高技能,从而为未来几年培养新的员工。幸运的是,只有程序员需要具备开放源代码软件的专门知识。其他专业人员可以有使用任何类型的软件的先前经验。
对于任何工作不分散在世界各地的项目,充足且适合手头工作的办公场所都是必须的。对于专业的本地化工作,尤其是对于多语言区域本地化中心,商业空间是最佳选择。这包括稳定的低成本宽带互联网连接、局域网和开发服务器,每个员工足够的客户端计算机以及每个测试人员三到四个终端。
应征求大学的积极参与和合作,尤其是英语语言学家和翻译人员。应授予对技术词典和标准做出重大贡献的学者的出版权,以及对学生志愿者的公开认可。
通常,需要对以下人员进行培训、组织并提供成功的工具
- 项目经理 - 技术和翻译。
- 分析师和语言学家。
- 开放源代码软件程序员。
- 翻译人员和技术作家。
- 测试人员。
- 培训师。
本地化项目管理应分为两项工作:(i)技术经理指导代码的实际编辑,以确保正确的语言支持;(ii)翻译经理协调语言学家、技术作家和培训师的创意工作。
分析师和语言学家与项目经理、社会学家和项目发起人一起确定需要克服的技术挑战以及需要满足的文化语言要求。他们的工作成果是需求规范和项目描述,项目经理使用这些规范和描述来指导项目完成。此路线图指导程序员的工作,并提供软件将根据其进行测试的基准。分析师还负责收集、组织和传播程序员执行工作所需的技术标准和规范。
由于操作系统用户界面和各种应用程序用户界面都应本地化,因此通常需要几种不同类型的程序员。爱好者可以与世界各地的其他人远程执行此工作,但前提是分析师已对问题进行了详尽的记录。在任何可能的情况下,此阶段的工作应使用本地编程人员。他们学到的经验教训以及为以后参考而写下的经验教训可以传播给其他正在执行本地化的人员。如果不存在,他们还可以创建该语言的技术标准。遵守“G11N、I18N、L10N”(请参阅词汇表)等开放源代码软件标准和其他标准,将确保工作快速进行,并确信后续开发人员可以继续更新和改进软件。
翻译人员和技术作家承担了大部分工作。所有错误消息、按钮、菜单、命令、帮助文件和用户指南都必须翻译。在与语言学家协商以确保一致性和准确性的同时,翻译人员和技术作家会编制技术词典,通常会创造新的技术词汇和短语,使未来的开发人员能够更有效地与同事沟通。正如本地化的技术标准对程序员至关重要一样,编写人员和翻译人员使用的技术词典对于项目的成功也至关重要。
测试人员使用需求规格说明来检查程序员和技术作家的完整工作。他们细致的工作会识别出需要在发布给软件用户之前进行更正和重新检查的错误和不一致之处。额外的学徒测试人员,特别是那些不懂英语且是电脑新手的人,可以为程序员和翻译人员提供极好的反馈。
培训师向用户介绍本地化软件。通常,接受过如何使用该系统培训的当地教师会举办研讨会,回答问题并指导电脑爱好者。当地企业和政府也可能聘用培训师来教育其员工。重要的是要确保这些软件培训师是在当地招聘的并且会说当地语言,而不是以高昂的费用聘用英语母语人士。
对于专有软件和免费软件,关于软件如何工作的培训都是必不可少的。为了教当地用户如何操作软件,需要
- 培训设备和材料。
- 教室。
- 讲师。
大多数情况下,软件开发人员会“培训培训师”,然后由培训师指导新手,使他们成为高级用户。培训可以进一步分为用户培训、系统管理员培训和开发人员培训。除了用户培训应该广泛开展之外,大多数专门的自由/开源软件培训都在教育机构进行。在自由/开源软件本地化方面取得快速进展的国家都投入了大量资源用于培训和教育。如果没有大量人群实际采用该软件,那么本地化工作将毫无意义。
自由/开源软件开发和本地化的工具和设备比专有软件本地化所需的工具和设备便宜。版本控制、项目管理、文档变更管理以及程序员的开发工具包都可以免费或低价获得。经验表明,在自由/开源软件方面,最好使用免费/开源工具。
所有其他设备,包括大多数开发计算机,都应保持最新状态,并处于安全的环境中。应为特定于要本地化语言的图书馆、参考资料和语言工具单独设置预算。如果这些材料尚不存在,则必须创建它们。
在任何可能的情况下,应与国际自由/开源软件开发社区分享有关自由/开源软件本地化的信息,以便每个团队都不必重新创建必要的工具。
从技术上讲,自由/开源软件的本地化成本与商业软件的本地化成本大致相同。只有编程技术存在显著差异,因为无论要本地化的软件类型是什么,语言和操作方面的挑战都存在。要本地化任何软件,都需要
- 办公场所。
- 办公设备和工具。
- 技术人员。
- 获取技术信息。
- 获取语言学家和翻译人员。
最大的成本将是员工薪资。项目的总成本在很大程度上取决于当地技术、翻译、写作和测试人员的工资预期以及他们在软件本地化、语言和文化问题方面的个人经验水平。
程序员和项目经理可能需要高于平均水平的教育和薪资,但大多数其他员工利用的技能并非特定于软件,并且可以在普通人群中更容易地找到。
当软件接近完成时,会聘用培训师,并且据推测,他们会继续受雇于教新用户、系统管理员和开发人员如何使用该软件。
对于寻求摆脱专有英语软件的国家,一个永久性的本地办事处,其目的是培训和传播有关本地化的技术信息,可以带来成倍的节省。该机构可以与公共图书馆或大学合作,感兴趣的各方可以在那里以很少或没有成本获取信息。
自由/开源软件通常可以在较旧的计算机上运行良好。这对于拥有过剩的二手计算机需要处理的发达国家和可以配置这些计算机以用当地语言运行自由/开源软件的发展中国家来说都是有利的。
本地化任何特定软件的总成本差异很大。每个项目都需要对复杂性、经验和技术人员的可用性以及当地语言的特征进行单独分析。
软件成本和进度估算并非简单的计算。除了根据要翻译的消息字符串数量进行粗略估算外,还必须考虑其他因素。
- 经验
- 程序员、翻译人员和测试人员是否有过此类工作的经验?如果没有,则需要额外的时间和精力来培训他们在本地化的流程和标准方面。但翻译人员学习速度很快,并且在头一两个月后,生产力会大幅提高。拥有一个稳定的团队,团队成员会变得非常高效。
- 环境
- 员工是否有进行专业工作的必要工具和设备?如果没有现代化的办公场所、工具和技术,期望员工以最高的效率工作是不现实的。
- 语言因素
- 当地语言与英语的差异有多大?例如,从英语翻译成瑞典语相当简单。语法、词语长度和词汇非常相似。英语几乎普及,而且很容易找到翻译人员。另一方面,从英语翻译成老挝语非常困难。语法、拼写约定、词语长度、排序和其他因素根本不相似。因此,必须更改用户界面元素的大小和位置。此外,缺乏经验丰富的翻译人员甚至基本的技术词汇表意味着项目将从几乎一无所有开始,并且需要更多的时间和精力。
- 范围
- 多少才算足够?仅仅更改主要用户界面菜单和命令是否可以接受?帮助文件也应该翻译吗?文档和用户培训材料呢?英语词可以接受吗?将有多少新词被引入到语言中?为了避免失败,需要对项目的范围进行非常明确的定义。
- 指标
- 专业的软件成本和估算依赖于先前项目的经验来确定未来的进度。如果几乎没有启发式证据可以依赖于估算,那么最初的几个项目估算只能是合理的猜测。在完成几个项目后,可以将实际完成时间与初始估算进行比较,以改进未来的估算。因此,重要的是要收集人员工时、资源、经验和其他因素的准确记录以供将来参考。高效的。
牢记上述要点,请考虑以下公式作为估算本地化项目进度的非常粗略的“经验法则”。
示例:估算本地化项目进度:经验法则
- • 经验越少,时间越长(规模 1.5 = 经验少,0.75 = 经验丰富)
- * 用于查找人员工时
- + 每周始终少于 40 小时;通常每周约 20 小时
注意:如果没有英语/当地语言技术词典可用,则必须在工作开始前创建它。这是一个单独的项目。完成技术词典后,必须将其输入翻译记忆数据库(例如 KBabel)以确保翻译的一致性。如果没有这些基本工具,任何软件实际上都无法本地化。
示例:案例 1
- 要翻译的 10,000 个消息字符串
- 每个消息字符串 10 分钟
- 软件本地化翻译工具和流程的经验低于平均水平。
- 10 名员工
示例:案例 1 估算
- 10,000 x 10 分钟(除以 60)= 1,666 人工时
- 每周 20 个“实际”工时 = 83.33 人周
- 添加 16.66 人周用于测试和编辑 = 99.99 人周
- 添加 16.66 人周用于管理和培训 = 116.65 人周
- 乘以 1.5 以反映缺乏经验 = 174.97 人周
- 除以 10 名员工 = 17.4975 周
换句话说,这样的项目需要 10 人的团队工作将近五个月。如果这些专业人员的平均工资为每月一千美元,则仅员工成本为 50,000.00 美元。再加 10 台电脑、办公场所、互联网连接、复印机和其他日常开支,就可以对本地化的总成本进行粗略估算。
考虑相同的示例,但进行以下更改:软件本地化翻译工具和流程的平均经验。
- 乘以1.0以反映平均经验水平 = 116.65 人周
- 除以 10 名员工 = 11.665 周。
一个经验丰富的团队的项目需要不到四个月。如果这些专业人员的平均工资为每月一千美元,则仅员工成本为 40,000.00 美元。
考虑相同的示例,但进行以下更改:软件本地化、翻译工具和流程经验更丰富的员工。
- 乘以0.75以反映高于平均水平的经验 = 81.24 人周
- 除以 10 名员工 = 8.124 周。
一个 10 人的经验高于平均水平的团队,无需额外培训,只需要大约两个月。如果这些专业人员的平均工资为每月一千美元,则员工成本仅为 20,000.00 美元。与专有产品相比,自由/开源软件非常适合本地化。完成几个项目后,成本会迅速下降,因为基本概念和技术保持不变。最初的几个项目必须开发与语言和技术流程相关的新词典、工具和专业知识。员工的经验是提高生产力的关键。
一旦这些到位并得到充分理解,完成额外项目所需的时间和金钱就会减少。由于自由/开源软件开发人员倾向于遵守开放标准,因此本地版本的开发人员不必反向工程代码来猜测必须完成哪些工作。本地化过程在各个项目中应该非常相似。对于商业专有封闭软件,情况正好相反。
正如我们所见,专有软件的一个主要缺陷是只有版权所有者才能维护或修改它。使用自由/开源软件,任何具备相应技能的人都可以完成这项工作。因此,用户无需与单一外国供应商签订昂贵的维护合同,而是可以自由地将软件的支持和维护外包给各种各样的本地公司。
程序员单独工作无法本地化软件。在估算任何本地化所需成本、时间和精力时,仅将大约 10% 的预算用于技术问题。其余所有内容都用于翻译、写作、测试和培训等耗时的任务。
当一家专有软件公司进行软件本地化时,首先会确定这项工作在商业上是否可行。然后,他们会聘请本地化专家,包括语言学家和文化专家,来开发技术词典。同时,薪酬丰厚的分析师和程序员会修改软件,使其能够接受和显示该语言的脚本。
本地化工作的大部分内容涉及翻译和替换软件的标签、菜单项、错误消息和帮助文件。有时还需要修改软件的外观,以适应过长或过短的单词。在某些情况下,技术词典是该语言的第一个此类词典,并且会发明新的术语。
技术编写团队严格遵循技术词典和编程标准,在英文原文旁边输入新的短语。全部完成后,测试人员不仅要确保每条消息都已翻译,还要确保术语一致且逻辑合理。
此类工作遵循指数曲线,初始工作进展缓慢,然后在技术词典和标准建立后迅速加速。在本地化几个程序之后,一个经验丰富的团队可以以大大降低的成本对其他软件进行本地化。市场营销和培训决定他们在让用户采用该软件方面取得的成功程度。他们通常会发布他们的技术词典和标准,以盈利的方式出售或免费提供给政府、大学和在线社区。
开源软件 (FOSS) 通常由少数志愿者远程完成本地化,没有语言学家或技术词典的帮助进行翻译。这项工作可能需要很长时间,并且可能存在不一致或错误。
开源软件本地化的速度并不均衡。在语言与英语相似且有许多双语志愿者的国家,开源软件本地化已经发展得很好。在政府和其他机构介入提供资金支持本地化的地方,取得的成果也令人印象深刻。(中日韩“CJK”合作就是一个例子。)
在技术基础设施不完善的国家,商业软件和开源软件的本地化速度都比较慢。当语言不属于印欧语系时,速度会更慢。商业公司在这方面看到很少的利润,而且很少有当地专业人士有时间或技能来本地化开源软件。即使源代码可以免费用于本地化工作,但很少有专门的技术标准或技术词典存在。
一些语言,特别是那些使用拉丁字母的语言,相对容易本地化。其他语言则可能非常困难。例如,老挝语和泰语都使用包含 42 个辅音的字母,并带有元音和语调标记。这些文字遵循复杂的布局规则,涉及辅音、元音、特殊符号、连字和连写。所有这些书写系统都具有一些共同特征:不一定会使用空格来分隔单词,元音出现在辅音之前、之后、下方、上方和之后。
负责开源软件本地化的泰国和老挝志愿者通过在技术问题上进行合作,以及共享资源和工具信息,节省了大量时间并避免了挫败感。
在整个亚洲,存在着在政府间层面开展联合本地化工作的机遇。许多其他亚洲语言具有相似之处,并且在类似语言群体中,编程任务通常几乎相同。如果得到适当的资金和组织,泛亚软件本地化是一个切实可行的目标。