При использовании функции Laravel i18n мне нужно создать файл для каждой локали и для каждой группы перевода. Например, файл messages.php будет возвращать массив общих сообщений, а validation.php будет возвращать массив сообщений проверки, и оба этих файла будут существовать для каждой заданной локали. Это означает, что у меня есть lang/en/messages.php
также как и lang/it/messages.php
каждая с правильной переведенной строкой для каждого указанного ключа.
Возможно ли иметь «общий» файл перевода, который не требует указывать группу при вызове Lang::get()
? То, что я хотел бы сделать, это уметь звонить Lang::get("MyString")
вместо Lang::get("group.MyString")
,
В моем случае мне нужно изменить Illuminate / Foundation / helpers.php
Решение состоит в том, чтобы взять домен по умолчанию (в данном случае messages.php), а затем добавить к фразе ($ id) домен, если нет точки.
function trans($id = null, $parameters = [], $domain = 'messages', $locale = null)
{
if (is_null($id)) {
return app('translator');
}
if (strpos($id, '.') === false) {
$id = "messages." . $id;
}
return app('translator')->trans($id, $parameters, $domain, $locale);
}
Других решений пока нет …