#1 虞飞
近日在开发一个项目,依然拿我心爱的SpeedPHP开发。开发中,碰到如下问题:1、如何实现返回消息的翻译,即根据不同语言的设置进行不同的翻译。
2、如何实现对返回消息的变量进行处理。例如maxlength的验证,在单语言环境下,一般会这样返回信息“XX的最大长度不能超过YYY个字符”。
第一个问题我已经初步解决,方法是建立多语言的字典文件,然后用SpController的setLang、getLang方法进行语言环境的设置和提取,然后在SpModel里面的checkrules方法中添加
spController::getLang();来获取语言环境变量。
将原来的
$this->messages[$rkey][] = (isset($this->verifier["messages"][$rkey][$rule])) ? $this->verifier["messages"][$rkey][$rule] : $rule;加上T函数,改成
$this->messages[$rkey][] = (isset($this->verifier["messages"][$rkey][$rule])) ? T($this->verifier["messages"][$rkey][$rule]) : T($rule);但这样就造成了第二个问题,字典文件里无法处理变量。类似
XX的最大长度不能超过YYY个字符里的XX和YYY就无法处理了。不知道有什么好的方法解决没有
2013-01-06 09:24:55