Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

국제화(i18n) 재작성 구성

국제화 재작성("i18n rewrites")을 사용하여 사용자의 국가 또는 선호하는 언어에 따라 다른 콘텐츠를 제공합니다. 다음은 설정할 수 있는 몇 가지 구성 예입니다.

  • (에 관계없이 국가의) 프랑스어를 선호하는 모든 사용자에게 동일한 콘텐츠를 프랑스어로 봉사한다.
    예: 프랑스어 텍스트가 있는 홈페이지

  • 프랑스어를 선호하는 사용자에게 표준 프랑스어의 콘텐츠를 제공하지만, 프랑스어를 선호하는 캐나다 사용자를 위해 대신 캐나다 프랑스어 콘텐츠를 제공.
    예: 표준 프랑스어 문구가 있는 홈페이지와 캐나다 프랑스어 문구가 있는 홈페이지

  • (관계없이 언어 설정의) 캐나다의 모든 사용자에게 동일한 콘텐츠를 제공하고 있습니다.
    예: 사이트의 '기본' 언어가 있지만 캐나다 고유의 기능(예: 휴일 테마)이 있는 홈페이지

  • 프랑스어를 선호하는 캐나다 사용자에게 캐나다 프랑스어 콘텐츠를 제공합니다.
    예: 캐나다 프랑스어 표현과 캐나다 고유의 기능(예: 휴일 테마)이 있는 홈페이지

중포 기지 호스팅 자신의 IP 주소와에서 사용자의 언어 환경 설정에서 사용자의 국가를 결정 Accept-Language 요청 헤더 (일반적으로 웹 브라우저에 의해 자동으로 설정 ).

i18n 다시 쓰기 설정

당신의 호스팅 사이트에 대한 국제화 재 작성을 설정하려면, 당신은 그 모든 지역화 된 내용에 대한 "국제화 내용"디렉토리를 생성 추가해야 i18n 당신에 속성을 firebase.json 새로운 "국제화 내용"디렉토리를 가리 키도록 파일.

자세한 단계는 다음과 같습니다.

  1. 로컬 응용 프로그램 디렉토리의 내 public 폴더, 당신의 "국제화 내용"에 대한 별도의 디렉토리는 다음 사이트에서 지원하는 각 언어 및 국가 조합에 대한 하위 폴더를 생성합니다.

    각 하위 폴더에 휴일 테마 홈페이지나 언어별 404 페이지와 같이 해당 조합에 대한 콘텐츠를 추가합니다.

    다음은 "국제화 내용"디렉토리라는 예제 localized-files :

    public/
        index.html  // your site's default homepage
        404.html  // your site's custom 404 page
    
        localized-files/
            ALL_ca/
                index.html
            es_ALL/
                index.html
                404.html
            fr/
                index.html
                404.html
            fr_ca/
                index.html
    

    localized-files/ 디렉토리는 사이트에서 지원하는 각 언어 및 국가 조합에 대해 별도의 하위 폴더가 포함되어 있습니다. 각 하위 폴더의 이름 지정 패턴은 다음 형식 중 하나를 따라야 합니다.

    • languageCode_countryCode : 해당 언어 환경과 그 나라 코드가 사용자의 콘텐츠를 특정을 포함합니다

    • languageCode : 해당 언어 기본 설정을 가진 사용자의 콘텐츠 별을 포함하지만, 내용은 국가 별 아니다; 기본적으로 해당 languageCode_ALL

    서브 섹션을 참조하십시오 나라와 언어 코드 이 코드에 대한 자세한 내용은 아래. 당신의 값을 사용할 수 있습니다 ALL (원하는 국가를 표시하기 위해 (대소 문자 구분)를 es_ALL/ (같은 또는 다른 언어) ALL_ca/ ).

    하위 폴더에있는 파일은에 유사한 파일이 필요하지 않습니다 public 디렉토리 또는 다른 하위 폴더. 언어 및/또는 국가에 전적으로 특정한 콘텐츠를 만들 수 있습니다.

  2. 추가 i18n 당신에 속성을 firebase.json 파일과 "국제화의 내용을"들어있는 디렉토리를 지정합니다. 계속해서 예를 들면 다음과 같습니다.

    // firebase.json
    
    "hosting": {
    
      "public": "public",
    
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
    
      "i18n": {
        "root": "/localized-files"  // directory that contains your "i18n content"
      }
    
      ...
    }
    

    지정된 디렉토리 root 모든 "국제화 내용"하위 폴더를 포함하는 디렉토리의 이름이어야합니다. 당신은 당신의 루트에 모든 "국제화 내용"하위 폴더를 배치하면 public 디렉토리, 사용 / 의 값에 대한 root . 에서 선행 및 후행 슬래시 root 값은 선택 사항입니다.

  3. "i18n 콘텐츠" 및 구성을 호스팅 사이트에 배포합니다.

당신은 사용하여 설치를 테스트 할 수 있습니다 쿠키 재정의를 .

국가 및 언어 코드

"i18n content" 하위 폴더의 이름을 지정할 때 국가 및 언어 코드 모두에 소문자를 사용해야 합니다. 당신의 값을 사용할 수 있습니다 ALL (원하는 국가를 표시하기 위해 (대소 문자 구분)를 es_ALL/ (같은 또는 다른 언어) ALL_ca/ ).

호스팅은 사용자의 IP 주소에서 국가 코드를 가져옵니다. 국가 코드는 두 글자입니다 ISO 3166-1 알파 2 코드 .

언어 코드는 사용자의에서 얻을 수 있습니다 Accept-Language 요청 헤더 (일반적으로 웹 브라우저에 의해 자동으로 설정 ). 그들은는 ISO 639-1 코드 . 언어 코드를 사용할 때 다음 사항에 유의하십시오.

  • 봉사 할 수있는 "국제화 내용"에 대한 검색을 호스팅 할 때,의 품질 값에 따라 언어 주문 Accept-Language 헤더를.

  • 호스팅은 어떤 지역 및 국가 하위 태그 떨어 Accept-Language 는 "국제화 내용"하위 폴더 이름의 언어 코드는이 하위 태그를 포함 할 수 있도록 헤더를. 예를 들어, 당신은 사용할 수 없습니다 es-419 또는 es-US 하위 폴더 이름의 언어 코드로,하지만 당신은 사용할 수 있습니다 es .

    특정 지역 또는 국가 콘텐츠를 제공하려는 경우 지원하려는 특정 언어 국가 콘텐츠가 포함된 하위 폴더를 만들 수 있습니다.

"i18n 콘텐츠" 우선순위

i18n 다시 쓰기를 설정하면 호스팅은 다음 우선 순위에 따라 콘텐츠를 제공합니다.

  1. 로 시작 예약 네임 스페이스 /__/* 패스 세그먼트 (segment)

  2. 구성 리디렉션

  3. 정확히 일치하는 정적 콘텐츠

    1. 언어 코드 + 국가 코드 (예를 들어, 콘텐츠 fr_ca/ )
      순서는 요청의 각 언어에 대한 품질 값은 다음과 Accept-Language 헤더를.

    2. 국가 코드 만 (예를 들어, 콘텐츠 ALL_ca/ )

    3. 단지 언어 코드 (예를 들어, 콘텐츠 fr/ 또는 es_ALL/ )
      순서는 요청의 각 언어에 대한 품질 값은 다음과 Accept-Language 헤더를.

    4. "기본" 정확히 일치하는 정적 콘텐츠
      이것은 루트에서처럼 "국제화 내용"디렉토리 외부에있는 콘텐츠입니다 public 디렉토리.

  4. 구성 재 작성

  5. 404 취급

    1. i18n 404페이지
      이는 정확히 일치하는 정적 콘텐츠에 대해 위에 나열된 것과 동일한 우선 순위를 따릅니다.

    2. 사용자 정의 404 페이지

    3. 기본 404 페이지(Firebase 제공)

우선 순위의 예

위에서부터 예제를 계속해 보겠습니다. 동일한 예제 디렉토리와 예제 요청을 사용합니다.

  • 에 "국제화 내용"디렉토리 예는 로컬 프로젝트 디렉토리 (라고 localized-files )

    public/
        index.html  // your site's default homepage
        404.html  // your site's custom 404 page
    
        localized-files/
            ALL_ca/
                index.html
            es_ALL/
                index.html
                404.html
            fr/
                index.html
                404.html
            fr_ca/
                index.html
    
  • 요청 정보 예시

    • 언어 코드 : fr , en (프랑스어, 다음 영어)
      언어 코드는 품질의 값을 기준으로 정렬됩니다 Accept-Language 헤더입니다.

    • 국가 코드 : ca (캐나다)

정확한 일치 우선 순위와 언어 기본 설정에 대한 품질 값에 따라 Hosting은 다음 순서로 요청된 페이지의 디렉토리를 검색합니다.

  1. public/localized-files/fr_ca/

  2. public/localized-files/en_ca/

  3. public/localized-files/ALL_ca/

  4. public/localized-files/fr_ALL/

  5. public/localized-files/fr/

  6. public/localized-files/en_ALL/

  7. public/localized-files/en/

  8. public/

  9. 404 취급

사용자에게 어떤 페이지가 제공됩니까?

  • 요청 페이지 : index.html

  • 요청 페이지 : awesome-page.html

"i18n content" 디렉토리의 이 검색 및 제공에 대해 다음 사항에 유의하십시오.

  • localized-files/ 디렉토리는 실제로는 포함되어 있지 않습니다 en_ca/ , en_ALL/ 또는 en/ 하위 폴더, 그래서 요청의 언어 - 국가 조합에 대한 일치하는 하위 폴더를 찾을 때까지 그냥 우선 순위 목록을 아래로 건너 뜁니다 호스팅.

  • 짝수하지만 localized-files/ 디렉토리를 포함하는이 es_ALL/ 하위 폴더, 위의 예 요청은 포함되지 않습니다 es 또는 es-foo 그래서 "국제화 내용"일치의이 검색되지 않습니다 호스팅, 언어 코드를 es .

  • 하위 폴더라는 fr/fr_ALL/ 사용자의 국가 및 언어 환경 설정의 관점에서 동일합니다. 그러나 두 하위 폴더가 존재하는 경우, 호스팅이 될 것입니다 fr_ALL/ 전 내용 fr/ 컨텐츠를.

국가 및 언어 헤더를 재정의하는 쿠키를 사용하여 제공되는 콘텐츠를 변경할 수 있습니다.

다음은 쿠키 재정의를 사용할 수 있는 몇 가지 방법입니다.

  • 다른 언어/국가 조합으로 기능을 테스트하여 어떤 콘텐츠가 제공되는지 확인합니다.

  • 사용자가 보는 콘텐츠를 변경할 수 있습니다. 예를 들어, 다음, 언어 선택기를 구현하는 사용자 설정할 수 있습니다 firebase-language-override 따라 쿠키를.

: 이들 이름은 모두 또는 하나와 구성 쿠키 무시, 세트 쿠키 firebase-country-overridefirebase-language-override . 예를 들어, 다음 JavaScript 코드 조각 재정의 국가 코드가되게합니다 caAccept-Language 헤더로 fr,en :

document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";

언어 쿠키 재정의는 하위 태그나 품질 값 없이 기본 설정에 따라 쉼표로 구분된 언어 코드 목록이어야 합니다.

쿠키 재정의는 로그에 반영되지 않습니다.