프런트 엔드 개발 - 현지화

간략한 소개

   Laravel 현지화 기능을 사용하면 쉽게 응용 프로그램에서 다중 언어 지원을 구현할 수 있습니다. 에 기억 기본 언어 문자열  resources/lang 디렉토리는 디렉토리가 지원하는 각 언어에 대한 응용 프로그램의 하위 디렉토리를 포함 :

/ 자원
     / LANG
         / 
            메시지 . PHP
         / ES 
            메시지 에 .php

   모든 언어 파일은 예를 들어 키 - 값 쌍의 배열을 반환합니다 :

<? PHP를 

반환 [
     '환영'=> 'LaravelAcademy.org에 오신 것을 환영합니다' 
];

로케일 구성 옵션

   응용 프로그램 구성 파일의 기본 언어는 저장  config/app.php , 코스, 당신은 응용 프로그램 요구 사항을 충족하기 위해 값을 수정할 수 있습니다. 또한 런타임을 사용할 수 있습니다  App 외관에  setLocale 현재 언어 방법을 변경 :

경로 : 수 ( '환영 / {로케일}', 기능 ( $ 로케일 ) {  :: 로 setLocale ( $ 로케일 );
     //
 });

   현재 언어가 다른 언어가 반환된다 주어진 언어 행을 포함하지 않는 경우는 또한 "대체 언어"를 구성 할 수 있습니다. 그리고 기본 언어, 언어도 다른 구성 파일입니다  config/app.php 구성 :

'fallback_locale'=> 'EN'

   현재 현지 언어를 결정

     당신이 사용할 수있는  App 외관  getLocale 과  isLocale 현재 로컬 언어를 얻거나 특정 지역의 언어와 일치를 확인하는 방법 :

$ 로케일 = 응용 프로그램 :: 로 getLocale (); 

경우 (응용 프로그램 : isLocale ( '엉' )) {
     //
 }

번역 문자열의 정의

   약어 키를 사용하여

     일반적으로 저장 번역 문자열  resources/lang 디렉토리에 파일이 디렉토리는 지원되는 각 언어에 해당하는 하위 디렉토리에 대한 응용 프로그램이 포함되어 있습니다 :

/ 자원
     / LANG
         / 
            메시지 . PHP
         / ES 
            메시지 에 .php

   해당 약어 키를 모든 언어 파일은 예를 들어, 문자열 배열을 반환합니다 :

<? PHP 

// 자원 / LANG / EN / messages.php 

반환 [
     '환영'=> 'LaravelAcademy.org에 오신 것을 환영합니다' 
];

   키와 번역 문자열을 사용하여

     번역 요구 사항의 심각한 응용 프로그램을 위해, 각 문자열의 정의는 뷰에서 참조 "짧은 키는"점점 더 이해하고, 심지어 혼란을 야기하는 것이 더 어려워지고있다. 이러한 이유로, Laravel은 "기본"번역 문자열을 정의하는 키와 같은 번역 된 문자열의 사용을 지원합니다.

     에 저장된 방식으로 JSON 파일에 문서의 키 번역 번역과 같은 문자열을 사용하여  resources/lang 디렉토리. 응용 프로그램이 번역의 스페인어 버전이있는 경우 예를 들어, 우리는 만들 필요가  resources/lang/es.json 파일 :

{
     "나는 프로그래밍을 사랑 해요." "나 ENCANTA 라 programación." 
}

번역 문자열을 가져옵니다

     당신은 도우미를 사용하여  __ 획득 한 언어 파일 줄에서, 방법은 언어 파일에서 예를 들어 파일 키와 첫 번째 매개 변수로 번역 문자열, 수신  resources/lang/messages.php 취득한 welcome 해당 번역 문자열 :

에코 __ ( 'messages.welcome' ); 

에코 __ ( '나는 프로그래밍을 사랑 해요.');

     당신은 블레이드 템플릿 엔진을 사용하는 경우 물론, 당신은 사용할 수있는  {{ }} 문법 번역 문자열 또는 사용 인쇄  @lang 명령을 :

{{__ ( 'messages.welcome' )}} 

@lang ( 'messages.welcome')

     지정된 번역 문자열이 존재하지 않는 경우, __함수는 번역, 다음 문자열이 존재하지 않는 경우, 위의 예를 사용하여, 따라서 문자열 변환 키를 반환 __함수가 반환을  messages.welcome.

참고 : @lang 지시가 출력을 탈출하지 않습니다, 당신은 자신의 출력 작업에 대한 모든 책임을 탈출해야합니다,이 명령을 사용합니다.

   번역 문자열 매개 변수를 교체

     당신이 번역 문자열의 자리를 정의 할 수 있습니다 필요한 경우, 모든 자리는이 :접두사는, 예를 들어, 당신이 자리를 사용할 수  name 정의  welcome 메시지를 :

'환영'=> '에 오신 것을 환영합니다 : 이름',

     대안으로 어레이를 통과 할 때 변환 문자열을 획득하기 위해 자리를 바꾸려면  __ 함수의 두번째 인자 :

에코 __ ( 'messages.welcome'[ '이름'=> 'laravel']);

     자리가 대문자, 또는 첫 글자가 대문자 경우, 해당 입력 값은 일관되고 자리 형식으로 남아있을 것이다 :

'환영'=> '에 오신 것을 환영합니다 : NAME', // 오신 것을 환영합니다, LARAVEL 
'작별'=> '안녕, 이름', // 안녕, Laravel

   복수의

     "|"다른 언어는 파이프 문자를 사용하여, 복잡한 숫자에 대해 서로 다른 규칙을 가지고 있기 때문에 단지는 복잡한 문제입니다, 당신은 문자열의 단수 및 복수 형태를 구별 할 수 있습니다 :

'사과'=> '하나 개의 사과가있다 | 많은 사과가있다',

     또한 번역 문자열, 더 복잡한 복수의 규칙에 지정된 번호의 여러 범위를 만들 수 있습니다 :

'사과'=> '아무도 없다 {0} | [1,19] 몇 가지가 있습니다 | [(20), *] 많은있다'

     그 후, 사용자가 사용할 수있는  trans_choice 로우의 개수가 1보다 크기 때문에, 본 실시 예에서는, 소정 로우 언어 행수를 구하는 함수를, 그 복수의 번역의 문자열을 반환한다 :

에코 trans_choice ( 'messages.apples', 10);

     또한 문자열 속성 플레이스 홀더 다수를 정의 할 수있다,이 자리는로 전달 될  trans_choice 제 배열 파라미터 치환 함수 :

'MINUTES_AGO'=> '{1} 값 분 전 | [2 *] 값 분전' 에코 trans_choice ( 'time.minutes_ago', 5 [ '값'=> 5]);

     당신이 전달 표시하려면  trans_choice 함수의 정수 값, 당신이 사용할 수있는  :count 자리를 :

'사과'=> '{0}있다 없음 | {1} 중 하나가 | [2 *] 있습니다 카운트'

커버리지 확장 패키지 언어 파일

   일부 확장 팩은 언어 파일 자신을 처리 할 수 있습니다. 당신은 당신의 자신의 파일이 될 수  resources/lang/vendor/{package}/{locale} 를 커버하고 이러한 문장을 조정하는 이러한 핵심 파일 패키지를 훼손하지 않도록 아래 디렉토리를.

   따라서 예를 들어, 당신이라고 무시해야하는 경우  skyrim/hearthfire 확장 패키지의  messages.php 영어 문장의 파일을, 당신은 만들 수 있습니다  resources/lang/vendor/hearthfire/en/messages.php 파일을. 이 파일 만 문장은 여전히 확장 팩에서로드 원래의 언어 파일이 적용되지 않습니다 당신이 덮여 문장을 원하는 것을 정의 할 필요가있다.

 

추천

출처www.cnblogs.com/mzhaox/p/11276750.html