대체 언어는 사용해야 할 언어입니다. 참조 docs
또한 주어진 언어 라인을 포함하지 않는 활성 언어를 때 사용됩니다 "대체 언어"를 구성 할 수 있습니다. 기본 언어와 마찬가지로, 대체 언어도 app/config/app.php
구성 파일에 구성되어
'fallback_locale' => 'en',
그것은 확실히 당신에게 단순히 쓰는 것만큼이나 많은 시간 인라인 대체 쓰기를 취할 것 번역 키로 작성한 병렬 변환 파일의 폴백. 대체 방법을 생각하는 것보다는 그것을하는 데 소비되는 시간은 결국 무시할 수있을 것입니다.
인라인 대체를 원할 경우 다른 작업을 수행하는 새로운 도우미 메서드를 만들어야합니다. 그래서 가정에서 양조 한 멋진 음식을 준비하십시오.
모든보기에서 사용할 수있는 새 기능을 만들어 보겠습니다. 나는 Joseph Sibler에 의해 기술 된 방법을 사용할 것이다. 이라는 파일을 app
안에 만듭니다. 그런 다음 files
배열 아래 autoload
개체의 composer.json
에 "app/helpers.php"
이라는 문자열을 추가하십시오. 무슨 뜻인지 모르겠다. 그의 대답을보십시오. 추가 한 후 composer dump-autoload
을 실행하십시오.
trans_fb()
메서드를 추가하여 trans()
메서드의 모든 매개 변수를 사용하지만 폴백도 함께 사용하도록합시다. 첫 번째 두 개의 인수 (키와 대체)가 필요하도록이 메서드를 정의합니다.
번역 키를 찾을 수 없으면 (예 : auth.failed
을 키로 사용하여 resources/lang/en/auth.php
을 검색 함) 대신 fallback을 사용하고 원래 방법에 대해 다른 선택적 인수를 전달합니다.
<?php
if (! function_exists('trans_fb')) {
/**
* Translate the given message with a fallback string if none exists.
*
* @param string $id
* @param string $fallback
* @param array $parameters
* @param string $domain
* @param string $locale
* @return \Symfony\Component\Translation\TranslatorInterface|string
*/
function trans_fb($id, $fallback, $parameters = [], $domain = 'messages', $locale = null)
{
return ($id === ($translation = trans($id, $parameters, $domain, $locale))) ? $fallback : $translation;
}
}
당신은 다음과 같이 템플릿이를 사용할 수 있습니다
{{ trans_fb("i.love.laravel", "I love Laravel!") }}
내가 대체 언어에 대해 이미 준비를했다하지만 내 상황에서 가능한 보이지 않았다. 제안 된 대체 도우미 기능을 사용하여 시험해 보겠습니다. 감사. –
만약 이것이 가능하지 않다면 이것은 당신이 필요로하는 모든 것이어야합니다 :) 행운을 빈다. – Jonathan
굉장합니다. 도우미 기능을 사용하여 마술을합니다. 감사. –