我在运行PHP 5.3的LAMP堆栈上使用Zend Framework 2(ZF2),并且内置的翻译功能开箱即用,它的工作原理与我期望的完全相同。
对于那些不熟悉的人来说,这是一个例子:
<?php echo $this->translate("Company")?>
就我的理解如何运作而言,它是一个视图助手,可用于翻译任何视图.phtml文件上的字符串。它从语言文件(使用PoEdit创建的.PO文件)中获取适当的本地化字符串(在本例中为“Company”)。
我有大约250个本地化字符串,我宁愿减少重复项以保持翻译的可维护性,但如果性能受到影响,我会选择性能来挤出ZF2的每一点速度。我在任何显示UI文本的视图中都使用这些翻译函数,如果有更有效的处理方法,我不想滥用帮助程序。
以下哪项会产生更好的表现? strtoupper比对翻译助手的额外调用更昂贵吗?
<?php echo $this->translate('Company')?> //# Mixed Case Uses String #1
<?php echo $this->translate('COMPANY')?> //# UPPERCASE Uses String #2
<?php echo strtoupper( $this->translate('Company') ) ?> //# String #1
注意:由于PoEdit将COMPANY和Company存储为两个单独的字符串,前两个将需要对translate helper进行两次不同的调用,以及两个要翻译的不同字符串。
虽然我熟悉ZF2和PHP,但作为一名“自学成才”的程序员,我在鳃背后是绿色的,所以当谈到编写高性能的PHP代码时,我不知道该寻找什么,并感谢任何帮助从右脚开始。
答案 0 :(得分:0)
Tim建议,不要在服务器端复杂化,而是使用CSS转换客户端上的文本。
CSS
.uppercase{ text-transform:uppercase; }
HTML
<span class="uppercase"><?php echo $this->translate('Company')?></span>