> ## Documentation Index
> Fetch the complete documentation index at: https://developers-partners.delivered.co.kr/llms.txt
> Use this file to discover all available pages before exploring further.

# 해외 사용 설정하기

> 브라우저의 시간대와 언어를 이용하여 해외 사용자를 인식하고, 이를 기반으로 글로벌체크아웃을 해외 사용자인 경우에만 로드하는 방법을 설명합니다.

## 1. 브라우저의 시간대와 언어를 이용한 해외 사용자 판별

<Info>
  **해당 방법은 이해를 돕기 위한 샘플입니다.** \
  실제 구현 시 사이트의 요구사항에 맞게 수정하여 사용 가능합니다.
</Info>

### 1-1. 기능

* 브라우저의 시간대와 언어 설정을 확인하여 사용자가 해외 사용자인지 판별합니다.
* 해외 사용자로 판별된 경우에만 글로벌체크아웃 스크립트를 로드합니다.

### 1-2. 코드 설명

1. **시간대 정보 확인**: `Intl.DateTimeFormat().resolvedOptions().timeZone`를 사용하여 사용자의 시간대 정보를 가져옵니다.
2. **언어 정보 확인**: `navigator.languages` 또는 `navigator.language`를 사용하여 사용자의 브라우저 언어 설정을 가져옵니다.
3. **해외 사용자 판별**:
   * 시간대와 언어 정보가 한국이 아닌 경우 해외 사용자로 간주합니다.
   * 두 가지 조건 모두를 만족하지 않을 때만 글로벌체크아웃을 로드하도록 설정하여 판별 정확도를 높입니다.
4. **글로벌체크아웃 로드**: 해외 사용자일 경우 `loadGlobalCheckout()` 함수를 호출하여 글로벌체크아웃 스크립트를 동적으로 로드합니다.

### 1-3. 코드 예시

<CodeGroup>
  ```html HTML theme={null}
  <html>
  <body>
    <script>
      // 한국 시간대 및 언어 코드 목록
      const koreanTimeZones = ['Asia/Seoul'];
      const koreanLanguages = ['ko', 'ko-KR'];

      // 브라우저 시간대 및 언어 정보 가져오기
      const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
      const userLanguages = navigator.languages || [navigator.language || navigator.userLanguage];

      // 한국 시간대인지 확인
      const isKoreanTimeZone = koreanTimeZones.includes(userTimeZone);

      // 한국어 사용자인지 확인
      const isKoreanLanguage = userLanguages.some(lang => koreanLanguages.includes(lang));

      // 해외 사용자 판별
      if (!isKoreanTimeZone && !isKoreanLanguage) {
        // 해외 사용자이므로 글로벌체크아웃 로드
        loadGlobalCheckout();
      } else {
        // 국내 사용자이므로 글로벌체크아웃을 로드하지 않음
      }

      // 글로벌체크아웃 스크립트 로드 함수
      function loadGlobalCheckout() {
        const script = document.createElement('script');
        script.src = 'global-checkout-script'; // 실제 글로벌체크아웃 스크립트로 변경
        document.head.appendChild(script);
      }
    </script>
  </body>
  </html>
  ```
</CodeGroup>

### 1-4. 주의사항

* 사용자가 VPN을 사용하거나 브라우저 설정을 변경한 경우 정확하지 않을 수 있습니다.
* 일부 브라우저에서는 `Intl` 객체나 `navigator.language` 속성을 지원하지 않을 수 있습니다.

***

## 2. 참고 자료

* [MDN Web Docs - Intl.DateTimeFormat](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat)
* [MDN Web Docs - NavigatorLanguage.language](https://developer.mozilla.org/ko/docs/Web/API/NavigatorLanguage/language)
