0

カスタムZendバリデーターがあります。printfこのバリデーターは、arguments-arrayとともに エラーメッセージをフォーマットで返す外部プログラムを実行します。

この外部プログラムからのメッセージのメッセージテンプレートがあります。

const MSG_IMPORTER_ERROR = 'importerError';

isValidカスタムバリデーターの関数で、次のことを行います。

// $err contains the error from the external program
$this->setMessage(
    vsprintf($v->translate($err['template']), $err['args']),
    self::MSG_IMPORTER_ERROR
);
$this->_error(self::MSG_IMPORTER_ERROR);
return false;

Zendはメッセージを翻訳して実行するので、すでに翻訳されたテキストを再度翻訳します。これは避けたいです。だから私の質問は:

検証メッセージの翻訳を無効にするにはどうすればよいですか?

4

1 に答える 1

0

答えを見つけました。バリデーターの翻訳は、メッセージを事前に翻訳されたメッセージに設定するときに、バリデーター内に以下のコードを追加するだけで非アクティブ化されます。

$this->setDisableTranslator(true);

私がそれを逃したのはばかげています。

于 2012-09-14T11:06:58.877 に答える