0

我目前正在用 PHP 开发一个网站,我决定使用gettext来管理翻译。我设置了一个不错的Pootle服务器,以便我可以轻松地管理翻译和一个使用 cron 运行的 bash 脚本,该脚本从要翻译的 PHP 文件中提取所有值并创建.pot翻译模板文件。

到目前为止,一切都很好。但是,我只记得网站的部分文本存储在数据库中。为简单起见,我们将其称为“产品”。我希望产品描述、名称和其他一些字段是可翻译的,但如果我可以有一种集中的方式来翻译它们,而不必创建一个单独的界面来翻译数据库条目,那就太好了。由于已经设置了 Pootle,因此能够使用它会很好。

我想到了两个解决方案:

  1. 忘记使用数据库,只使用 PHP 数组
  2. 编写一个脚本,从数据库中提取所有值并生成一个文件,然后由上述 bash 脚本扫描该文件并将值添加到pot文件中,另一个脚本将在 bash 脚本之后运行以重新更新数据库中的所有值。

这些解决方案似乎都不是理想的。第一个很容易设置并且很容易与 Pootle 一起使用,但是我失去了使用 DBMS 带来的所有灵活性,并且每次我想使用它时都必须导入整个数组。功能的丧失并不是那么糟糕,因为我(目前)没有对行执行任何高级计算,基本上只是SELECTs 就是这样。第二个可以工作,但需要更多的计划(和编码)才能正确设置。

是否还有其他方法可以让我获得数据库的灵活性,但让我可以轻松地将其与网站的其他部分(如 Pootle)一起在一个集中的位置进行翻译?

4

1 回答 1

0

您可以直接从数据库生成 pot/po 文件,然后将它们输入 Pootle。然后,您将能够直接对从数据库返回的值使用 gettext 函数。

例如,您可以查看 phpMyAdmin,我们使用类似的方法来翻译结构化文本文件

于 2013-06-07T07:22:15.400 回答