Php 如何说服其他程序员使用Gettext?
我已经在我工作过的许多项目中成功地使用了GNU Gettext,但在最近的工作中,我突然发现自己不得不使用一个非常笨拙的本地化系统 当前系统将翻译存储在数据库中,添加新的翻译如下:Php 如何说服其他程序员使用Gettext?,php,javascript,gettext,Php,Javascript,Gettext,我已经在我工作过的许多项目中成功地使用了GNU Gettext,但在最近的工作中,我突然发现自己不得不使用一个非常笨拙的本地化系统 当前系统将翻译存储在数据库中,添加新的翻译如下: 将带有翻译键的函数调用添加到源代码中,例如,print translate('foo') 在translations.SQL文件中添加少量SQL INSERT语句 创建名为(当前版本号+1)的文件。sql 在数据库中执行.sql文件 提交您的更改(在其他人提交和更改当前修订号之前) 所有这些过程都是完全手动的,即
- 将带有翻译键的函数调用添加到源代码中,例如,
print translate('foo')代码>
- 在
文件中添加少量SQL INSERT语句translations.SQL
- 创建名为
(当前版本号+1)的文件。sql
- 在数据库中执行.sql文件
- 提交您的更改(在其他人提交和更改当前修订号之前)
- 我已经谈到了Gettext是一种标准,并且有许多工具可用于处理PO文件
- 我曾试图解释,将翻译存储在数据库中并没有比将其存储到文本文件中更大的好处——我们只是按键从数据库中检索翻译,仅此而已
- 另一个开发人员正在开发我们应用程序的PHP部分,PHP内置了Gettext。我正在从事JavaScript方面的工作,它不支持Gettext,但我在过去为它构建了自己的工具
- 我们的应用程序并没有那么大,从旧系统转换到Gettext需要很多时间,即使是手动完成,而且我很确定它可以很容易地自动化
- 我甚至成功地将Gettext用于我们公司的一个较小的应用程序
在发布这个问题几个月后,我们现在终于过渡到Gettext了。当我们需要支持两种以上的语言时,我们当前系统的缺点对于迄今为止抵制它的人来说更加明显。我可以为您提供几种选择:
- 您可以尝试使用您的方法估算节省的时间(金钱)
- 你可以展示(演示?)它是多么容易维护(更少的麻烦)
- 你可以继续使用已经存在的系统
- 你做错的是告诉他们如何解决他们心目中不存在的问题
你需要让他们明白这实际上是一个需要解决的问题
编辑:
很高兴看到你最终到达了那里,第二句语言似乎让他们承认了房间里的大象 一些问题可能是: 缺乏对Gettext的认识。如果开发人员不知道这个库,他们就不会使用它 与GPL不兼容的许可证。可能有法律原因不能使用它
看来没必要重写了。如果开发人员对当前的系统足够满意,那么他们可能认为使用Gettext没有任何好处。我认为部分问题在于,我必须处理90%的翻译问题,因为我使用的是UI,大多数其他开发人员使用的后端很少涉及翻译。@Rene Saarsoo-您可以记录维护翻译所花费的时间比例。或者你也可以在系统中寻找一个潜在的缺陷,让你发挥更大的作用。GPL不是问题——我们正在使用很多GPL ed工具和LIB。缺乏意识显然是一个问题,因为我是整个团队中唯一一个使用过它的人。