【发布时间】:2019-01-30 20:55:53
【问题描述】:
我正在调整现有应用程序以支持多种语言,我想实现 pseudolocalization,即制作本地化字符串:
<?php echo h(__('Edit program settings')); ?>
...脱颖而出:
[!!! εÐiţ Þr0ģЯãm səTτıИğ§ !!!]
...这样我就可以快速发现遗漏并检测潜在的布局问题。
除非我错了,否则该功能不是内置的,也没有第三方插件。我的机会有多大?
我觉得一个明智的方法是扩展I18n 并覆盖I18n::translate()。但是我对 CakePHP 的内部结构不是特别熟悉,我不确定如何让__() 和家人使用我的扩展类。
另一方面,lib\Cake\basics.php 中的函数包含在 function_exists() 调用中,所以我想我可以编写自己的版本...
我欢迎任何建议。
【问题讨论】:
-
如果您能描述您的具体用例并包含一些代码,这可能会有所帮助。
-
@ndm 好的,我已经编辑了问题。
-
我了解了伪本地化的一般概念,但是您希望在您的应用程序中具体在哪里以及如何使用它?您使用的是执行 GUI 测试的自动化环境吗?
-
@ndm 不,没有什么花哨的。我只想像往常一样在屏幕上显示字符串,以便在使用应用程序时查看它们。 (我现在正在使用
auto_prepend_file在 CakePHP 加载原始函数之前定义 i18n 函数,看起来很有希望。) -
可能不会,因为您必须使用相同的类名,而且 PHP 不允许重用/重新声明类名。
标签: cakephp internationalization cakephp-2.4