Zend翻译 Zend表单!

4

目前,isEmpty 错误会抛出异常:

    Value is required and can't be empty

我这样加载我的翻译器:
[translation]

adapter = array
content.english["emailNotUnique"] = "Your user already exists"
content.english["Value is required and can't be empty"] = "You must specify your ID"
locale = en

上述配置根据Zend翻译规范生成了一个有效的数组,因此:

$this -> form -> setTranslator(new Zend_Translate($this -> getConfig() -> translation));

期望的结果是isEmpty错误现在应该显示为

    You must specify your ID

然而我没有得到任何帮助。没有错误和翻译。我使用的是Zend 1.11.1和PHP5.3.5。


只是一个建议...为什么不尝试使用SPA框架作为客户端,并转向使用Zend 1x或2x的rest(而不是传统的mvc)?虽然两者都有优点和缺点,但使用客户端框架进行翻译更容易和更快速。请检查Angular或Ember与Zend。如果我没记错的话,Apigility也使用angular进行客户端渲染。 - Gary
3个回答

9
我认为问题出在你的ini文件中的“english”键。具体来说,它不应该存在,因为你实际上传递给Zend_Translate作为“content”的内容是:
    'content' => array(
        'english' => array(
            "emailNotUnique" => 'Your user already exists' ,
            "Value is required and can't be empty" => 'You must specify your ID' 
        )            
    );

并且它应该是:

    'content' => array(          
            "emailNotUnique" => 'Your user already exists' ,
            "Value is required and can't be empty" => 'You must specify your ID'             
    );

希望这能帮到你。

谢谢,有一个眼界新的人来解决让你感到困惑的问题真是太好了。这就是看问题看得太久的后果。 - jhogendorn
@devians。很高兴能帮忙,我知道你的感受 :-) - Marcin

2
尝试改变。
content.english["isEmpty"] = "You must specify your ID"

现在我已经应用了被接受的答案,这个方法可能会起作用。然而,对于将来的开发者来说,Zend建议使用实际的副本,因为自1.6版本以来,他们将废弃常量定义的字符串,比如'isEmpty'。 - jhogendorn

0

你可以使用语言文件(MO),它可以简单地将内容翻译成多种语言。

在初始化Bootstrap时,可以同时选择初始化所需的语言。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接