1

我有一个需要升级的 PHP 脚本,它有大约 50 个将语言字符串定义为常量的语言文件,例如:

define('ERROR_LOGIN', 'Wrong username and password');
define('SUCCESS_LOGIN', 'Successful login');
define('COPYRIGHT', '© 2012 Company inc.');

...ETC。一些常量甚至是多行的并且有转义字符等。

我们对这些语言文件有自己的翻译,但现在我们想升级到该脚本的新版本,该脚本具有许多新常量,因为它还具有许多新功能。这些新常量没有在新语言文件的末尾定义 - 只需复制/粘贴新字符串就很容易 - 它们甚至在旧字符串之间定义,而且一些旧常量现在在新版本中已过时。

所以我的问题是 - 通过保留旧文件的常量并仅在文件末尾添加新常量以便我们只能翻译新常量来合并新旧语言文件的最简单方法是什么?

谢谢!

4

1 回答 1

2

您遇到了使用常量的问题之一——它们确实是常量。

但是,您可以通过单独从每组常量中提取信息来解决此问题:

使用常量加载第一个文件,调用get_defined_constants并将输出序列化为临时文件。

在第二个文件/request/call中,用常量加载第二个文件,get_defined_constants再次调用,从临时文件中反序列化之前的信息,比较'user'get_defined_constants返回的数组部分的内容。

重要的是在两次执行中执行此操作,因此将在两次调用之间删除常量。

于 2012-11-30T10:07:59.240 回答