对于大写/混合大小写变体与单个字符串的多个本地化字符串的性能,并在PHP中使用strtoupper()?

时间:2014-08-08 21:36:02

标签: php localization zend-framework2 translate view-helpers

背景信息:

我在运行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代码时,我不知道该寻找什么,并感谢任何帮助从右脚开始。

1 个答案:

答案 0 :(得分:0)

Tim建议,不要在服务器端复杂化,而是使用CSS转换客户端上的文本。

CSS

.uppercase{ text-transform:uppercase; }

HTML

<span class="uppercase"><?php echo $this->translate('Company')?></span>