使用Zend_Translate处理标点符号

时间:2012-01-26 11:47:15

标签: zend-framework zend-translate punctuation

目前,我正在尝试将Zend_Translate应用于我正在进行的项目。常规文本工作得非常好,但我遇到了表单翻译的问题。

翻译适配器在Zend_Registry中注册,使用Zend_Translate作为密钥。这在大多数情况下都可以正常工作,除非在显示表单之前进行翻译。

代码示例:

$subformBusiness->setLegend(_('Bedrijfsgegevens') . ':');
$subformBusiness->setLegend(_('Bedrijfsgegevens'));

假设'Bedrijfsgegevens'在相应的翻译源文件中翻译,上面的行将输出为'Bedrijfsgegevens:',而下面的行输出'商业信息'。

据我所知,有三种方法可以解决这个问题。它可以通过在将其与冒号连接之前调用存储的Zend_Translate_Adapter来解决,但这会产生大量不必要的代码。另一种选择是在翻译文件中加入标点符号,但这意味着应该为每种类型的标点符号进行翻译。 thrid选项只是从图例中删除冒号,但这不是我正在寻找的。

我的问题:有没有办法告诉Zend_Translate忽视标点符号?

2 个答案:

答案 0 :(得分:0)

据我所知,Zend_Translate仅适用于文字字符串,并且不包含任何标点符号功能。我要做的只是从图例中删除冒号(第三个选项),然后以某种方式添加它(例如,使用:after CSS属性)。

希望有所帮助,

答案 1 :(得分:0)

为什么不在字符串中添加标点符号?好的,你必须翻译“传奇”和“传奇:”,但这对我来说非常有用。

E.g:

$subformBusiness->setLegend(_('Bedrijfsgegevens:'));
$element->setLabel('This is a great label:');