Как переопределить языковые файлы Laravel вашим языком пакетов - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь переопределить пакет английского языка laravel по умолчанию в resources/lang/en с моими языками из пакета.

Пакет просто публикует свои языковые файлы, например, resources/lang/vendor/*package-name*/de и содержит те же файлы, что и стандартный lang-файл laravel, например validation.php или auth.php.

Есть ли способ сказать Laravel использовать эти переводы пакетов?

1 Ответ

0 голосов
/ 11 января 2019

Из документации ,

На файлы перевода пакета обычно ссылаются с помощью синтаксис двойной двоеточия.

При загрузке ваших переводов методом boot поставщика услуг вашего пакета, вы должны сообщить Laravel, где он находится. Итак, скажем, имя вашего пакета acme, у вас будет что-то вроде этого.

public function boot()
{
    $this->loadTranslationsFrom(__DIR__.'/path/to/translations', 'acme');
}

Затем, чтобы загрузить перевод, вы должны сделать что-то вроде этого:

trans('acme::file.line');

Редактировать: Если вы хотите предоставить пользовательские сообщения о проверке, вам необходимо добавить messages() метод в ваш запрос формы . Например:

public function messages() 
{
    return [
        'field' => trans('acme::validation.field')
    ];
}

Если вы вручную создаете экземпляры Validator, вы можете просто сделать это:

$messages = [
    'field' => trans('acme::validation.field')
];

$validator = Validator::make($input, $rules, $messages);

Редактировать: поскольку resources/lang/en/validation.php содержит массив пар ключ-значение, вы можете просто заменить содержимое файла следующим:

<?php

return trans('acme::validation');

и при условии, что файл проверки вашего пакета возвращает массив пар ключ-значение, это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...