5

我想在 PHP 中使用 Respect/Validation 库。我知道如何使用它,但目前我在德语项目中使用它,当然,我也想要德语的错误消息。

对于语言翻译,文档中有一个部分,但我真的不明白,我还没有找到任何答案。

他们正在谈论应该处理消息翻译的翻译。作为第二个参数,他们给出了“gettext”,但我不知道这应该是什么以及它应该如何处理翻译。

谁能解释我这是如何工作的?

4

2 回答 2

3

尊重/验证不会为你做翻译,你应该使用不同的项目、库或函数来做。正如文档所述,它不会让你空手而归。

首先,您应该尝试了解翻译库的工作原理(例如gettext(),然后阅读有关 Callables 的 PHP 文档。然后就是选择一个库,创建翻译并setParam('translator', 'callable')在异常实例上调用方法的问题。

快速介绍您的问题:

  • 翻译是基于 a 完成的source:它可以是 a file、 adatabase或其他内容,具体取决于您使用的库。
  • 尊重/验证异常消息使用相同的模式:{{name}} is invalid.. Where{{name}}将被input给定的或根据该规则调用的nameif替换。setName()
  • 您可以在命名空间下看到所有需要翻译的消息Respect\Validation\Exceptions
  • 通常,每个库都提供一个函数/方法来翻译给定的字符串。这是您要在$exception->setParam()调用中设置的方法/功能。

如果您曾经翻译过所有异常消息,我们很乐意将它们提供给其他所有人。

PS:您也可以在存储库页面上提出这个问题,更多的人会提供帮助,我们也可以在未来改进图书馆处理翻译的方式。

于 2016-04-26T22:40:05.523 回答
0

我刚刚更改了所有 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();
于 2018-10-29T11:00:08.030 回答