Я хочу использовать библиотеку Respect / Validation в PHP. Я знаю, как его использовать, но в настоящее время я использую его в проекте на немецком языке и, конечно, я также хочу сообщения об ошибках на немецком языке.
Для языкового перевода есть раздел в документации, но я действительно не понимаю, и я еще не нашел никакого ответа.
Они говорят о переводчике, который должен обрабатывать перевод сообщений. В качестве второго параметра они дают «gettext», но я не знаю, что это должно быть и как это должно обрабатывать перевод.
Кто-нибудь может объяснить мне, как это работает?
Уважение / Validation не сделаю перевод для вас, вы должны использовать другой проект, библиотеку или функцию для этого. Это не оставит вас с пустыми руками, как говорится в документации.
Во-первых, вы должны попытаться понять, как работают библиотеки перевода (такие как gettext()
) а затем прочитать PHP документация по Callables. Тогда это вопрос выбора библиотеки, создания переводов и вызова setParam('translator', 'callable')
метод в экземпляре исключения.
Краткое введение в вашу проблему:
source
: это может быть file
, database
или что-то еще, в зависимости от того, какую библиотеку вы используете.{{name}} is invalid.
, куда {{name}}
будет заменен input
дано или name
если setName()
был призван по этому правилу.Respect\Validation\Exceptions
Пространство имен.$exception->setParam()
вызов.Если вы когда-нибудь переведете все сообщения об исключениях, мы хотел бы сделать их доступными для всех остальных.
PS: Вы могли бы также сделать этот вопрос на странице хранилища, помогло бы больше людей, и мы могли бы также улучшить способ обработки переводов библиотекой в будущем.
Я просто изменяю все свойства 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();