Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何说服其他程序员使用Gettext?_Php_Javascript_Gettext - Fatal编程技术网

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

Php 如何说服其他程序员使用Gettext?,php,javascript,gettext,Php,Javascript,Gettext,我已经在我工作过的许多项目中成功地使用了GNU Gettext,但在最近的工作中,我突然发现自己不得不使用一个非常笨拙的本地化系统 当前系统将翻译存储在数据库中,添加新的翻译如下: 将带有翻译键的函数调用添加到源代码中,例如,print translate('foo') 在translations.SQL文件中添加少量SQL INSERT语句 创建名为(当前版本号+1)的文件。sql 在数据库中执行.sql文件 提交您的更改(在其他人提交和更改当前修订号之前) 所有这些过程都是完全手动的,即

我已经在我工作过的许多项目中成功地使用了GNU Gettext,但在最近的工作中,我突然发现自己不得不使用一个非常笨拙的本地化系统

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

  • 将带有翻译键的函数调用添加到源代码中,例如,
    print translate('foo')
  • translations.SQL
    文件中添加少量SQL INSERT语句
  • 创建名为
    (当前版本号+1)的文件。sql
  • 在数据库中执行.sql文件
  • 提交您的更改(在其他人提交和更改当前修订号之前)
所有这些过程都是完全手动的,即使你需要修正一个小的打字错误,你也必须重复几乎所有的过程。不支持复数形式。整个翻译数据库相当混乱,因为翻译几乎从未从数据库中删除——只添加和更新

我尝试了几个论点来说服其他开发人员(特别是一个特定的开发人员):

  • 我已经谈到了Gettext是一种标准,并且有许多工具可用于处理PO文件
  • 我曾试图解释,将翻译存储在数据库中并没有比将其存储到文本文件中更大的好处——我们只是按键从数据库中检索翻译,仅此而已
  • 另一个开发人员正在开发我们应用程序的PHP部分,PHP内置了Gettext。我正在从事JavaScript方面的工作,它不支持Gettext,但我在过去为它构建了自己的工具
  • 我们的应用程序并没有那么大,从旧系统转换到Gettext需要很多时间,即使是手动完成,而且我很确定它可以很容易地自动化
  • 我甚至成功地将Gettext用于我们公司的一个较小的应用程序
但人们仍然不相信。我可能做错了什么

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

我可以为您提供几种选择:

  • 您可以尝试使用您的方法估算节省的时间(金钱)
  • 你可以展示(演示?)它是多么容易维护(更少的麻烦)
  • 你可以继续使用已经存在的系统

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

      你需要让他们明白这实际上是一个需要解决的问题

      编辑:
      很高兴看到你最终到达了那里,第二句语言似乎让他们承认了房间里的大象

      一些问题可能是:

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

      与GPL不兼容的许可证。可能有法律原因不能使用它


      看来没必要重写了。如果开发人员对当前的系统足够满意,那么他们可能认为使用Gettext没有任何好处。

      我认为部分问题在于,我必须处理90%的翻译问题,因为我使用的是UI,大多数其他开发人员使用的后端很少涉及翻译。@Rene Saarsoo-您可以记录维护翻译所花费的时间比例。或者你也可以在系统中寻找一个潜在的缺陷,让你发挥更大的作用。GPL不是问题——我们正在使用很多GPL ed工具和LIB。缺乏意识显然是一个问题,因为我是整个团队中唯一一个使用过它的人。