2017-02-18 28 views
0

Laravel 5.4 документов заявить следующее:Возможно ли создать файл перевода на английский язык на основе переводов по умолчанию, используемых в приложении Laravel?

Для приложений с тяжеловесным переводом, определяя каждую строки с «коротким ключом», может быстро стать запутанными, когда ссылки на них в своих взглядах. По этой причине Laravel также предоставляет поддержку для определения строк перевода, используя перевод строки строки «default» в качестве ключа.

Так что если я использую echo __('I love programming.'); и нет соответствующего перевода, он вернется «Я люблю программирование». Итак, что происходит по линии, когда я решаю добавить переводы? Может ли Laravel извлечь все языковые фразы, которые я использовал, и поместить их в файл перевода где-нибудь? Если да, то как?

ответ

0

Когда вы решите добавить перевод, вам необходимо предоставить вашему пользователю способ select желаемого языка. На этом этапе вы сделаете что-то вроде App::setLocale('whatever') или App::setLocale('pt-BR');. Теперь Laravel будет идти в папку resources/lang/ и искать whatever.json или pt-BR.json, где вы будете хранить файл так:

пт-BR.json

{ 
    'I love programming': 'Eu amo programar.' 
} 

whatever.json

{ 
    'I love programming': 'Equivalent text that you want to be displayed.' 
} 

В принципе, функция __() будет искать язык, определенный в текущем запросе (см. В вашем app.php доступный язык и fallback_locale), и найдите json с переводом на него. Если ничего не найдено, оно будет возвращаться к резервному языку. Если этот файл также не существует, он просто отобразит данную строку.

+0

К сожалению, это не отвечает на мой вопрос. Если я хочу создать новый перевод, мне нужно знать список английских фраз, чтобы предоставить переводчику. Я спрашиваю, как составить список английских переводов, используемых во всех файлах просмотра. –

+0

@Blossoming_Flower Я не знаю, возможно ли это. Но вся суть такой системы перевода заключается в том, что переводчик может просто увидеть сообщение на экране и перевести его в формате JSON. Вы можете попытаться перезаписать функцию '__()' и сохранить заданный ключ в файл, но для этого потребуется, чтобы кто-то пропустил каждый вызов экрана/функции системы, чтобы файл был завершен. –

0

смотрите следующую ссылку:

https://laravel.com/docs/5.4/localization 

я думаю, что его помощь вы