如何说服其他程序员使用Gettext?

时间:2009-04-29 13:37:43

标签: php javascript gettext

我已经在我工作的许多项目中成功使用了GNU Gettext,但在我最近的工作中,我突然发现自己被迫使用了一个非常尴尬的本地化系统。

当前系统将翻译存储在数据库中,并添加新的翻译如下:

  • 将具有翻译密钥的函数调用添加到源代码,例如print translate('foo');
  • 将少量SQL INSERT语句添加到translations.sql文件。
  • 创建名为(current revision nr + 1).sql
  • 的文件
  • 在数据库中执行.sql文件。
  • 提交您的更改(在其他人设法提交并更改当前修订号之前)。

所有这些过程都是完全手动的,即使您需要修复一个小错字,也必须重复几乎所有这些过程。不支持复数形式。整个翻译数据库非常混乱,因为翻译几乎从未被删除 - 仅添加和更新。

我已经尝试了几个参数来说服其他开发人员(尤其是一个特定的开发人员):

  • 我已经谈过Gettext正在建立的标准,并且有许多工具可用于处理PO文件。
  • 我试图解释在数据库中存储翻译没有将其存储到文本文件中的好处 - 我们只是按键从数据库中检索翻译,仅此而已。
  • 另一个开发人员正在开发我们应用程序的PHP部分,PHP内置了Gettext。我正在开发JavaScript方面,它没有Gettext支持,但我过去已经为它构建了自己的工具。
  • 我们的应用程序不是那么大,即使手动完成,从旧系统转换为Gettext也需要花费大量时间,而且我确信它可以轻松实现自动化。
  • 我甚至成功地将Gettext用于我们公司的一个小型应用程序。

但人们仍然不相信。我可能做错了什么?

编辑:

发布此问题几个月后,我们现在终于过渡到Gettext了。当我们需要支持两种以上的语言时,我们当前系统的缺点对于那些抵制它的人来说更加明显。

3 个答案:

答案 0 :(得分:6)

你做错了是告诉他们如何解决他们心中不存在的问题。

你需要让他们看到它实际上是一个需要解决的问题。

修改
很高兴看到你最终到达那里,第二个语言似乎让他们承认了房间里的大象!

答案 1 :(得分:2)

我可以看到几个选项:

  • 您可以尝试使用您的方法估算节省的时间(金钱)。
  • 您可以展示(演示?)维护的难易程度(减少头痛)。
  • 您可以继续使用已经存在的系统。

答案 2 :(得分:2)

一些问题可能是:

缺乏对Gettext的认识。如果开发人员不了解库,他们就不会使用它。

与GPL不兼容的许可。可能存在法律原因导致无法使用它。

看不需要重写。如果开发人员对当前系统足够满意,那么他们可能认为没有移动到Gettext的优势。