Используйте другой язык на контроллере laravel - PullRequest
0 голосов
/ 13 июля 2020

У меня на сайте есть выбор языка, через {{ trans('index.main') }}, все хорошо. Но у меня на сайте есть страница с оплатой, и для пользователя из России нужно отображать русскую версию платежной системы, для пользователей из Америки - версию Engli sh и ссылка на оплату формируется в контроллер. В этой ссылке мне нужно передать параметр &lang=ru или &lang=en, но когда я пытаюсь передать его, я получаю сообщение об ошибке:

Type error: Too few arguments to function Illuminate \ Translation \ Translator :: choice (), 1 passed in /var/www/vhosts/skins.games/dota2.skins.games/vendor/laravel/framework/src/Illuminate/Support /Facades/Facade.php on line 210 and at least 2 expected

Мой код:

$url = 'https://kassa/merchant/cash.php?m='.$merchant_id.'&oa='.$sum.'&o='.$u.'&s='.$sign.'&lang='.Lang::choice('pay.lang').'&i=&em=';

В чем моя ошибка?

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Как указано в другом ответе, Lang :: choice () предназначен для обработки множественного числа строки перевода в вашем приложении. Если вы пытаетесь получить текущий языковой стандарт для аутентифицированного пользователя, вы можете использовать это:

...'&lang='.app()->getLocale().'&i=&em=';

Это предполагает, что локали, которые вы определили, соответствуют формату, желаемому потребляющим API.

Если вам действительно нужно отформатировать языковой стандарт для использования внешним API, и это то, что вы сохранили в 'pay.lang', вы можете использовать __('pay.lang') или Lang::get('pay.lang').

Это, конечно также предполагает, что вы действительно каким-то образом устанавливаете локаль пользователя.

0 голосов
/ 13 июля 2020

Метод choice() предназначен для переводов с множественным числом и принимает второй параметр, который определяет, как использовать множественное число.

Если вам всегда нужен один и тот же перевод, вы, вероятно, захотите Lang::get('pay.lang')

подробности о выборе на https://laravel.com/docs/master/localization#pluralization

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