我认为这是因为以后无法重新定义常量。一旦设置好,它们就会被固定。http://php.net/manual/en/language.constants.php
我不太清楚WP语言构造是如何工作的,但我的一部分人认为它们是被定义的,然后在插件/主题使用它们时会动态更改。我没有这方面的参考资料,但这似乎是基于你的经历。
i、 当代码初始化时,常量用英文文本设置,但稍后,当设置了不同的语言时,语言函数会热交换文本。。。除了常数,因为它们不能被重新定义,所以它们保留在英语中。
希望其他人能证实/否认这种行为。
值得一提的是,常量对于存储动态信息(如要输出的文本)来说是一个不好的地方。它们更好地用于在脚本执行期间不会更改的服务器位置引用
如果您想在站点的不同部分之间共享变量,那么可以考虑在$GLOBALS数组中进行引用。http://php.net/manual/en/reserved.variables.globals.php 或者创建一个简单的函数,只返回您希望它在过滤语言后返回的信息。
Edit:
我在唯一的多语言网站上进行了测试。我临时调整了
translate function 为了让它在返回之前回显我的输出(但在过滤之后),在西班牙语翻译开始之前,我得到了一个英语字符串列表。
我的怀疑是,字符串的早期处理是为了让翻译函数能够看到哪些字符串可用于翻译。由于常量在定义后无法更改,因此在用英语定义后无法翻译。