我想在PHP中使用Respect / Validation库。我知道如何使用它,但目前我在德语版的项目中使用它,当然,我也想要用德语的错误消息。
对于语言翻译,文档中有一个section但我没有真正得到它,我还没有找到任何答案。
他们谈论的是一个应该处理消息翻译的翻译。作为第二个参数,他们给出了“gettext”,但我不知道这应该是什么以及它应该如何处理翻译。
任何人都能解释一下这是如何工作的吗?
Respect/Validation不会为你做翻译,你应该使用不同的项目,库或功能来做到这一点。据文件所述,它不会让你空手而归。
首先,你应该尝试了解如何translation libraries work (such as gettext()
),然后阅读PHP documentation on Callables。然后是选择库,创建翻译并在异常实例上调用setParam('translator', 'callable')
方法。
快速介绍您的问题:
source
完成的:它可以是file
,database
或其他东西,具体取决于您使用的库。{{name}} is invalid.
。 {{name}}
将由input
取代,或name
如果setName()
被称为该规则。Respect\Validation\Exceptions
命名空间下查看需要翻译的所有消息。$exception->setParam()
调用上设置的方法/函数。如果您翻译了所有异常消息,we会喜欢将其提供给其他人。
PS:你也可以提出这个问题on the repository page,更多的人会帮助我们,我们也可以改善图书馆将来处理翻译的方式。
我刚刚更改了所有Exception defaultTemplates属性,它适用于我。
class Localization
{
public function init()
{
$this->validation();
}
public function validation()
{
$prefix = '\\Respect\\Validation\\Exceptions\\';
$localize = [
'EmailException' => 'local message',
'NotEmptyException' => 'local message'
];
foreach($localize as $class => $message) {
($prefix.$class)::$defaultTemplates[
ValidationException::MODE_DEFAULT][ValidationException::STANDARD] = $message;
}
}
}
$localization = new Localization();
$localization->init();