Как я могу перевести письмо для сброса пароля в Laravel 5.7? - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь перевести электронную почту для сброса пароля, которая по умолчанию является английской, в Laravel 5.7.

Обычно - для представлений входа в систему, регистрации и сброса пароля - вы переводите файлы в /resources/lang/, но я не могу найти соответствующие строки для тела в письмах.

Как я могу перевести письмо для сброса пароля?

Ответы [ 2 ]

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

Только что обнаружил, что вы также можете перевести теги @lang в вашем json-файле:

{
  "Regards": "Met vriendelijke groet",
  "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser: [:actionURL](:actionURL)": "Als u problemen ondervindt bij het klikken op de knop \":actionText\" kopieert en plakt u de onderstaande URL in uw webbrowser\n[:actionURL](:actionURL)",
  "All rights reserved.": "Alle rechten voorbehouden."
}

Посмотрите в хранилище все файлы перевода:

https://github.com/caouecs/Laravel-lang

0 голосов
/ 02 октября 2018

В методе Illuminate\Auth\Notifications\ResetPassword::toMail() вы можете видеть, что метод Lang::getFromJson() используется для заполнения электронной почты:

return (new MailMessage)
    ->subject(Lang::getFromJson('Reset Password Notification'))
    ->line(Lang::getFromJson('You are receiving this email because we received a password reset request for your account.'))
    ->action(Lang::getFromJson('Reset Password'), url(config('app.url').route('password.reset', $this->token, false)))
    ->line(Lang::getFromJson('If you did not request a password reset, no further action is required.'));

Таким образом, вы сможете добавить эти переводы в файл resources/lang/xx.json * 1007.* как описано в документации (прокрутите вниз до «Использование строк перевода в качестве ключей»).

Это также относится к сообщению о подтверждении электронной почты в Illuminate\Auth\Notifications\VerifyEmail.

Например,это может быть содержимое resources/lang/fr.json (простите за мой французский французский язык 25 лет назад)

{
    "If you did not request a password reset, no further action is required.": "Si vous ne demandez pas le réinitialisation de votre mot de passe, vous ne pouvez rien faire"
}

Для обоих классов файл шаблона Illuminate/Notifications/resources/views/email.blade.php содержит дополнительный текст, который есть в стандартном Blade@lang теги, которые можно перевести с помощью файлов сообщений в resources/lang/xx/messages.php

Например, это может быть содержимое resources/lang/fr/messages.php:

<?php
return [
    "Regards" => "Félicitations",
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...