호스팅 선택한 언어의 드루팔 받기

우리가 사용자의 언어를 감지하는 방법과 또한 그들이 요청하는 데이터의 유형에 모두 언어 협상 과정을 사용자 정의 할 수 있습니다.

언어 협상 API는 두 가지 주요 개념을 기반으로합니다 :

  • 언어 유형. 이는 번역 가능한 콘텐츠의 유형을 기술
  • 언어 제공. 어떤 드루팔가 사용자에게 제공 (언어 제공 드루팔 8 언어 방법이라고합니다)되는 언어를 감지 할 수

드루팔에서 제공하는 기본값

언어 유형

드루팔 코어는 세 가지가 내장 된 언어 유형을 정의한다 :

호스팅

인터페이스 언어는이 페이지의 주요 언어입니다. 같은 제목, 레이블, 도움말 텍스트, 메시지 등의 번역 된 사용자 인터페이스 요소를 제공하는 데 사용됩니다. 내용 언어이는 (세부 사항에 대한 새로운 필드 API의 다국어 기능 참조) 하나 개 이상의 언어에서 사용할 수있는 콘텐츠를 표시 할 언어를 선택하는 데 사용됩니다. 이 URL 언어의 URL과 관련된 언어입니다. URL을 생성 할 때 명시 적 환경 설정이 제공되지 않은 경우,이 값은 기본값으로 URL ()에 의해 사용됩니다.

다른 언어 유형은 종종 같은 가치를 공유하지만, 필요한 경우 그들은 독립적 인 값을 가질 수 있습니다.

언어 공급자

핵심은 다음과 공급자를 포함

  • URL은 -의 URL (경로 접두사 또는 도메인)에서 언어를 결정합니다.
  • 세션 - 요청 / 세션 매개 변수에서 언어를 결정합니다.
  • 사용자 - 사용자의 언어 설정을 따릅니다.
  • 브라우저 - 브라우저의 언어 설정에서 언어를 결정합니다.
  • 기본 언어 - 기본 사이트 언어를 사용합니다.

여기 종류와 제공자 사이의 관계를 보여주는 이미지이다 :

언어 유형 정의

드루팔 7에서 시작, 언어 API가 hook_language_types_info를 통해 추가 언어 유형을 정의 ()와 hook_language_types_info_alter을 통해 기존의 언어 유형 정의를 변경하는 모듈을 기여 허용 ().

언어 유형은 구성 또는 고정 될 수있다. 구성 가능한 언어 유형은 언어 유형에 대한 언어 공급자가 구성 할 수있는 구성> 국가 및 언어> 언어> 검색 및 선택 페이지에 나타납니다. 구성 페이지에 표시되지 않습니다 따라서, 일정 (모듈 정의) 협상 설정하고있다 또한 고정 언어 유형이 있습니다. 여기에 설정 (기본적으로 인터페이스 언어의 값을 상속) 컨텐츠 언어를 만드는 코드는 다음과 같습니다

모든 구성 언어 유형은 자신의 (독립) 언어 스위처 블록이있을 것이다. 두 언어 유형이 동일한 방식으로 구성되어있는 경우 물론, 그들의 언어 스위처 블록은 기능적으로 동일하고 두 언어 유형에 역할을합니다.

선택한 언어의 드루팔을 얻기 제공자 중량을 기준으로 호스팅

드루팔 6.x의에서, 단지 언어라는 하나의 언어 유형이있다. 언어 초기화하는 동안 선택한 언어 협상 설정 값을 결정하는 데 사용됩니다. 드루팔 7.x에서, 동일한 프로세스가 정의 된 각 언어 유형이 발생, 자세한 내용은 drupal_language_initialize ()를 참조하십시오.

사용자 정의 언어 공급자 정의

모든 언어 유형이 다른 언어 협상 설정을 가질 수 있습니다, 즉 모든 언어 유형은 언어 감지 방법의 다른 세트를 가질 수 있습니다. 또는 제공. 할당.

언어 공급자는 언어 코드를 반환하는 특정 로직을 구현하는 간단한 콜백 함수입니다. 예를 들어, locale_language_from_url () 현재 요청 URL에서 유효한 경로 접두사 또는 도메인 이름을 검색합니다. 언어 공급자가 유효한 언어 코드를 반환하지 않는 경우, 언어 유형에 관련된 다음 제공자가 호출됩니다 (공급자의 중량을 기준으로). 이 방법은 대체의 개념은 드루팔 6.x에 사용되는 고정 경로 접두사> 사용자 환경 설정> 브라우저 설정> 기본 언어 체계에서 일반화 및 비구 속성입니다

또한 언어 제공자가 정의 모듈 () 및 언어 정의를 제공 hook_language_negotiation_info_alter 통해 변경 될 수있다 () hook_language_negotiation_info 통해있다. 여기에 경로 접두어가 관리 경로에 대한 무시 될 수 있습니다 예를 들어 조각입니다 :

위의 변경이 실행 되려면, "언어 감지 및 선택"양식을 제출해야합니다.

언어 공급자 정의는 언어 공급자 자체 외에 두 개 더 콜백을 포함 할 수있다 :

  • 언어 공급자가 언어 스위처 블록을 이용할 수있는 경우, 스위처 콜백은 예제 (), 그 논리에 맞게 언어 스위치 링크를 반환 locale_language_switcher_url를 볼 수 있습니다.
  • 언어 공급자가 URL을 다시 할 필요가있는 경우, 재 작성 논리를 제공 할 것 url_rewrite 콜백을 지정할 수 있습니다.

관련 기사

Miglior은 드루팔 테마를 호스팅드루팔은 무엇인가? 드루팔 다운로드 무료로 사용할 수있는 오픈 소스 콘텐츠 관리 플랫폼입니다. 그것은 모든 설치에 표준 파일의 핵심 그룹으로 구성 ...
드루팔 호스팅에 새 페이지 추가이 튜토리얼에서는 새로운 페이지와 드루팔 웹 사이트에 페이지로 지적 새로운 메뉴 탭을 추가하는 방법을 보여 것입니다. 이 작업을 수행하기 위해 : 당신의 드루팔 백엔드 인터페이스에 로그인합니다; 클릭...
팀 밀우드 드루팔 호스팅그것의 학습 곡선은 악명하지만 팀 밀우드 드루팔 그 무시 무시한하지 않고, 당신이 필요한 작업 보드 지식을 구축하는 데 사용할 수있는 방법을 보여줍니다 주장한다. 기본 웹 개발 및 ...
변경 필드 형 드루팔 호스팅드루팔 7에서 이미지 작업을 할 때, 당신은 당신이 각 내용 유형에 업로드 할 이미지의 유형을 제어 할 수 있습니다. 아마 당신은 GIF 및 JPG 파일 또는 단지에 파일을 제한 할 ...
도서 탐색 블록 드루팔 호스팅드루팔에서 블록을 관리하는 방법 드루팔 사이트의 레이아웃은 지역으로 나누어 져 있습니다. 수와 이들 지역의 위치는 사이트의 테마에 따라 달라집니다. 이 영역은에 의해 점유 ...