Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기
이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

국제화 (i18n) 재 작성 구성

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

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

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

  • 모든 캐나다 사용자에게 동일한 콘텐츠를 제공합니다 (언어 선호도에 관계없이).
    예 : 사이트의 "기본"언어가 있지만 캐나다 전용 기능 (예 : 휴일 테마)이있는 홈페이지

  • 프랑스어를 선호하는 캐나다 사용자에게 캐나다 프랑스어 콘텐츠를 제공합니다.
    예 : 캐나다 프랑스어 구문 및 캐나다 관련 기능 (예 : 휴일 테마)이있는 홈페이지

Firebase 호스팅은 IP 주소에서 사용자의 국가를 결정하고 Accept-Language 요청 헤더에서 사용자의 언어 환경 설정을 결정합니다 (일반적 으로 웹 브라우저에서 자동 설정 ).

i18n 재 작성 설정

호스팅 사이트에 i18n 재 작성을 설정하려면 모든 현지화 된 콘텐츠에 대한 'i18n 콘텐츠'디렉터리를 만든 다음 새 'i18n 콘텐츠'디렉터리를 가리 키도록 firebase.json 파일에 i18n 속성을 추가해야합니다.

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

  1. 로컬 앱 디렉토리의 public 폴더 내에서 "i18n 콘텐츠"를위한 별도의 디렉토리를 만든 다음 사이트에서 지원하는 각 언어 및 국가 조합에 대한 하위 폴더를 만듭니다.

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

    다음은 localized-files 라는 "i18n content"디렉토리의 예입니다.

    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. firebase.json 파일에 i18n 속성을 추가하고 'i18n 콘텐츠'가 포함 된 디렉터리를 지정합니다. 계속해서 우리의 예 :

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

    root 지정된 디렉토리는 모든 "i18n 콘텐츠"하위 폴더를 포함하는 디렉토리의 이름이어야합니다. 모든 "i18n content"하위 폴더를 public 디렉토리의 루트에 배치 한 경우 root 값으로 / 를 사용 root . root 값의 선행 및 후행 슬래시는 선택 사항입니다.

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

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

국가 및 언어 코드

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

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

언어 코드는 사용자의 Accept-Language 요청 헤더에서 가져옵니다 (일반적 으로 웹 브라우저에서 자동 으로 설정 됨 ). ISO 639-1 코드 입니다. 언어 코드를 사용할 때 다음 사항에 유의하십시오.

  • Hosting은 제공 할 "i18n 콘텐츠"를 검색 할 때 Accept-Language 헤더의 품질 값에 따라 Accept-Language 합니다.

  • 호스팅은 Accept-Language 헤더의 모든 지역 및 국가 하위 태그를 삭제하므로 "i18n 콘텐츠"하위 폴더 이름의 언어 코드에는 이러한 하위 태그가 포함될 수 없습니다. 예를 들어 es-419 또는 es-US 를 하위 폴더 이름의 언어 코드로 사용할 수 없지만 es 는 사용할 수 있습니다.

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

"i18n 콘텐츠"우선 순위

i18n 재 작성을 설정하는 경우 호스팅은 다음 우선 순위에 따라 콘텐츠를 제공합니다.

  1. /__/* 경로 세그먼트로 시작하는 예약 된 네임 스페이스

  2. 구성된 리디렉션

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

    1. 언어 코드 + 국가 코드 (예 : fr_ca/ 콘텐츠)
      순서는 요청의 Accept-Language 헤더에있는 각 언어의 품질 값을 따릅니다.

    2. 국가 코드 만 (예 : ALL_ca/ 콘텐츠)

    3. 언어 코드 만 (예 : fr/ 또는 es_ALL/ 콘텐츠)
      순서는 요청의 Accept-Language 헤더에있는 각 언어의 품질 값을 따릅니다.

    4. "기본"정확히 일치하는 정적 콘텐츠
      이것은 public 디렉토리의 루트와 같이 "i18n content"디렉토리 외부에있는 컨텐츠입니다.

  4. 구성된 재 작성

  5. 404 처리

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

    2. 맞춤 404 페이지

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

우선 순위의 예

위에서부터 우리의 예를 계속합시다. 동일한 예제 디렉토리와 예제 요청을 사용합니다.

  • "i18n content"디렉토리 ( 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/ 하위 폴더가 포함되어 있지 않으므로 Hosting은 요청의 언어-국가 조합과 일치하는 하위 폴더를 찾을 때까지 우선 순위 목록을 건너 뜁니다.

  • localized-files/ 디렉토리에 es_ALL/ 하위 폴더가 포함되어 있더라도 위의 예제 요청 에는 es 또는 es-foo 언어 코드가 포함되어 있지 않으므로 Hosting은 es 와 일치하는 "i18n 콘텐츠"를 검색하지 않습니다.

  • fr/fr_ALL/ 이라는 하위 폴더는 사용자의 국가 및 언어 기본 설정의 관점에서 동일합니다. 그러나 두 하위 폴더가 모두 존재하는 경우 호스팅은 fr/ 콘텐츠보다 먼저 fr_ALL/ 콘텐츠를 제공합니다.

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

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

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

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

쿠키 재정의를 구성하려면 firebase-country-overridefirebase-language-override 이름 중 하나 또는 둘 다로 쿠키를 설정합니다. 예를 들어 다음 JavaScript 코드 조각은 국가 코드를 ca 재정의하고 Accept-Language 헤더를 fr,en 재정의합니다.

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

언어 쿠키 재정의는 하위 태그 또는 품질 값없이 선호도 순서대로 쉼표로 구분 된 언어 코드 목록이어야합니다.

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