我有一个需要升级的PHP脚本,它有大约50个语言文件,它们将语言字符串定义为常量,例如:
define('ERROR_LOGIN', 'Wrong username and password');
define('SUCCESS_LOGIN', 'Successful login');
define('COPYRIGHT', '© 2012 Company inc.');
...等。有些常量甚至是多行的,也有转义字符等。
我们有自己的这些语言文件的翻译,但现在我们想要升级到这个脚本的新版本,它具有许多新的常量,因为它还有许多新功能。这些新常量没有在新语言文件的末尾定义 - 复制/粘贴新字符串很容易 - 它们甚至在旧字符串之间定义,而且现在新版本中的一些旧字符串已经过时。
所以我的问题是 - 通过保留旧文件的常量并仅在文件末尾添加新常量来合并新旧语言文件最简单的方法是什么,这样我们只能翻译新的?
感谢名单!
答案 0 :(得分:1)
你遇到了使用常量的问题之一 - 它们确实是不变的。
然而,您可以通过从每组常量中提取信息来解决此问题:
使用常量加载第一个文件,调用get_defined_constants
并将输出序列化为临时文件。
在第二个文件/ request / call中,使用常量加载第二个文件,再次调用get_defined_constants
,从临时文件中反序列化先前的信息,并比较'user'
部分中的内容。 get_defined_constants返回的数组。
重要的是在两次执行中执行它,因此将在调用之间删除常量。