Skip to content

Commit

Permalink
i18n(ko-KR): update internationalization.mdx (#8384)
Browse files Browse the repository at this point in the history
Co-authored-by: Yan <[email protected]>
  • Loading branch information
jsparkdev and yanthomasdev authored May 24, 2024
1 parent 0092b52 commit 676f7ac
Showing 1 changed file with 61 additions and 61 deletions.
122 changes: 61 additions & 61 deletions src/content/docs/ko/guides/internationalization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -239,50 +239,51 @@ export const onRequest = sequence(
)
```

## 사용자 정의 로케일 경로
## `domains`

사이트에서 지원되는 `locales`를 문자열 (예: "en", "pt-br")로 정의하는 것 외에도 Astro를 사용하면 [브라우저에서 인식할 수 있는 임의 개수의 언어 `codes`](https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept-Language)를 사용자 정의 URL `path`에 매핑할 수 있습니다. locales는 프로젝트 폴더 구조에 해당하는 한 모든 형식의 문자열이 될 수 있지만 `codes`는 브라우저에서 허용되는 구문을 따라야 합니다.
<p><Since v="4.9.0" /></p>

맞춤 URL 접두사를 정의하려면 `path` 키를 사용하여 `locales` 배열에 객체를 전달하고, 이 URL에 매핑된 언어를 나타내는 `codes`를 전달합니다. 이 경우 `/[locale]/` 폴더 이름은 `path` 값과 정확히 일치해야 하며 URL은 `path` 값을 사용하여 생성됩니다.
이 라우팅 옵션을 사용하면 `site`가 구성된 [`@astrojs/node`](/ko/guides/integrations-guide/node/) 또는 [`@astrojs/vercel`](/ko/guides/integrations-guide/vercel/) 어댑터를 사용하여 `server` 렌더링 프로젝트에 대해 언어별로 도메인을 사용자 정의할 수 있습니다.

이는 언어의 여러 변형 (예: `"fr"`, `"fr-BR"`, `"fr-CA"`)을 지원하고 이러한 모든 변형을 동일한 URL `/fr/` 아래에 매핑하거나 사용자 정의하려는 경우에 유용합니다. (예: `/french/`):
지원되는 `locales`를 맞춤 URL에 매핑하려면 `i18n.domains`를 추가하세요.

```js title="astro.config.mjs" del={5} ins={6-9}
import { defineConfig } from 'astro/config';
```js title="astro.config.mjs" {3-7} ins={14-21}
import { defineConfig } from "astro/config"
export default defineConfig({
site: "https://example.com",
output: "server", // 사전 렌더링된 페이지가 없는 경우 필수
adapter: node({
mode: 'standalone',
}),
i18n: {
defaultLocale: 'en',
locales: ['es', 'en', 'fr'],
locales: [
'es',
'en',
{
path: 'french', // 슬래시가 포함되지 않음
codes: ['fr', 'fr-BR', 'fr-CA'],
},
],
defaultLocale: "en",
locales: ["es", "en", "fr", "ja"],
routing: {
prefixDefaultLocale: true,
prefixDefaultLocale: false
},
domains: {
fr: "https://fr.example.com",
es: "https://example.es"
}
},
});
experimental: {
i18nDomains: true
}
})
```

[`astro:i18n` 가상 모듈](/ko/reference/api-reference/#국제화-astroi18n)의 함수를 사용하여 구성 (예: `getRelativeLocaleUrl()`)에 따라 유효한 URL 경로를 계산하는 경우, [해당 `path``locale` 값으로 사용](/ko/reference/api-reference/#getlocalebypath)하세요.

## 브라우저 언어 감지

Astro의 [주문형 서버 렌더링 모드 (`output:'server'` 또는 `output:'hybrid'`)](/ko/guides/server-side-rendering/) 중 하나와 결합된 Astro의 i18n 라우팅을 사용하면 브라우저 언어 감지를 위한 두 가지 속성인 `Astro.preferredLocale``Astro.preferredLocaleList`에 액세스할 수 있습니다.
매핑되지 않은 모든 `locales``prefixDefaultLocales` 구성을 따릅니다. 그러나 이 값이 `false`인 경우에도 `defaultLocale`에 대한 페이지 파일은 현지화된 폴더 내에 있어야 합니다. 위 구성을 위해서는 `/en/` 폴더가 필요합니다.

이는 브라우저의 `Accept-Language` 헤더와 `locales` (문자열 또는 `codes`)를 결합하여 방문자가 선호하는 언어를 자동으로 적용합니다.
위 구성을 사용하면 다음과 같습니다.

- `Astro.preferredLocale`: Astro는 브라우저의 선호 언어가 `locales` 배열에 포함된 경우, 방문자를 위한 **선호 언어**를 계산할 수 있습니다. 일치 항목이 없으면 이 값은 undefined가 됩니다.
- `Astro.preferredLocaleList`: 브라우저에서 요청하고 웹사이트에서 지원하는 모든 언어의 배열입니다. 그러면 여러분의 사이트와 방문자 간 호환되는 모든 언어 목록이 생성됩니다. 브라우저가 요청한 언어가 `locales` 배열에 없으면 값은 `[]`입니다. 브라우저가 기본 언어를 지정하지 않으면 이 값은 [`i18n.locales`]가 됩니다.
- `Astro.currentLocale`: `locales` 구성에 지정된 구문을 사용하여 현재 URL에서 계산된 언어입니다. URL에 `/[locale]/` 접두사가 포함되어 있지 않으면 값은 기본적으로 `i18n.defaultLocale`이 됩니다.
- `/fr/about.astro` 파일은 `https://fr.example.com/about`의 URL을 생성합니다.
- `/es/about.astro` 파일은 `https://example.es/about`의 URL을 생성합니다.
- `/ja/about.astro` 파일은 `https://example.com/ja/about`의 URL을 생성합니다.
- `/en/about.astro` 파일은 `https://example.com/about`의 URL을 생성합니다.

방문자의 선호도를 성공적으로 일치시키려면 [브라우저에서 사용하는 것](https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept-Language)과 동일한 패턴을 사용하여 `codes`를 제공하십시오.
위 URL은 `getAbsoluteLocaleUrl()``getAbsoluteLocaleUrlList()` 함수에서도 반환됩니다.

## 대체 전략
## `fallback`

Astro의 i18n 라우팅을 사용하면 **대체 라우팅 전략**을 구성할 수 있습니다. 한 언어로 된 페이지가 존재하지 않는 경우 (예: 아직 번역되지 않은 페이지) 404 페이지를 표시하는 대신 언어별로 사용자를 한 언어에서 다른 언어로 리디렉션할 수 있습니다. 이는 아직 모든 경로에 대한 페이지가 없지만 방문자에게 일부 콘텐츠를 제공하려는 경우에 유용합니다.

Expand All @@ -303,49 +304,36 @@ export default defineConfig({

Astro는 `src/pages/es/`에 존재하는 모든 페이지에 대해 `src/pages/fr/`에 페이지가 빌드되었는지 확인합니다. 페이지가 아직 존재하지 않으면 해당 `es` 경로로 리디렉션되는 페이지가 생성됩니다.

## `domains` (실험적)
## 사용자 정의 로케일 경로

<p><Since v="4.3.0" /></p>
사이트에서 지원되는 `locales`를 문자열 (예: "en", "pt-br")로 정의하는 것 외에도 Astro를 사용하면 [브라우저에서 인식할 수 있는 임의 개수의 언어 `codes`](https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept-Language)를 사용자 정의 URL `path`에 매핑할 수 있습니다. locales는 프로젝트 폴더 구조에 해당하는 한 모든 형식의 문자열이 될 수 있지만 `codes`는 브라우저에서 허용되는 구문을 따라야 합니다.

이 라우팅 옵션을 사용하면 `site`가 구성된 [`@astrojs/node`](/ko/guides/integrations-guide/node/) 또는 [`@astrojs/vercel`](/ko/guides/integrations-guide/vercel/) 어댑터를 사용하여 `server` 렌더링 프로젝트에 대해 언어별로 도메인을 사용자 정의할 수 있습니다.
맞춤 URL 접두사를 정의하려면 `path` 키를 사용하여 `locales` 배열에 객체를 전달하고, 이 URL에 매핑된 언어를 나타내는 `codes`를 전달합니다. 이 경우 `/[locale]/` 폴더 이름은 `path` 값과 정확히 일치해야 하며 URL은 `path` 값을 사용하여 생성됩니다.

아직 구성하지 않은 경우, 프로젝트에서 이 기능을 활성화하려면 기본 설정으로 [i18n 라우팅을 구성](#i18n-라우팅-구성)하세요. 그런 다음 `experimental.i18nDomains` 플래그를 `true`로 설정하고 `i18n.domains`를 추가하여 지원되는 `locales`를 맞춤 URL에 매핑합니다.
이는 언어의 여러 변형 (예: `"fr"`, `"fr-BR"`, `"fr-CA"`)을 지원하고 이러한 모든 변형을 동일한 URL `/fr/` 아래에 매핑하거나 사용자 정의하려는 경우에 유용합니다. (예: `/french/`):

```js title="astro.config.mjs" {3-7} ins={14-21}
import { defineConfig } from "astro/config"
```js title="astro.config.mjs" del={5} ins={6-9}
import { defineConfig } from 'astro/config';
export default defineConfig({
site: "https://example.com",
output: "server", // 사전 렌더링된 페이지가 없는 경우 필수
adapter: node({
mode: 'standalone',
}),
i18n: {
defaultLocale: "en",
locales: ["es", "en", "fr", "ja"],
defaultLocale: 'en',
locales: ['es', 'en', 'fr'],
locales: [
'es',
'en',
{
path: 'french', // 슬래시가 포함되지 않음
codes: ['fr', 'fr-BR', 'fr-CA'],
},
],
routing: {
prefixDefaultLocale: false
prefixDefaultLocale: true,
},
domains: {
fr: "https://fr.example.com",
es: "https://example.es"
}
},
experimental: {
i18nDomains: true
}
})
});
```

매핑되지 않은 모든 `locales``prefixDefaultLocales` 구성을 따릅니다. 그러나 이 값이 `false`인 경우에도 `defaultLocale`에 대한 페이지 파일은 현지화된 폴더 내에 있어야 합니다. 위 구성을 위해서는 `/en/` 폴더가 필요합니다.

위 구성을 사용하면 다음과 같습니다.

- `/fr/about.astro` 파일은 `https://fr.example.com/about`의 URL을 생성합니다.
- `/es/about.astro` 파일은 `https://example.es/about`의 URL을 생성합니다.
- `/ja/about.astro` 파일은 `https://example.com/ja/about`의 URL을 생성합니다.
- `/en/about.astro` 파일은 `https://example.com/about`의 URL을 생성합니다.

위 URL은 `getAbsoluteLocaleUrl()``getAbsoluteLocaleUrlList()` 함수에서도 반환됩니다.
[`astro:i18n` 가상 모듈](/ko/reference/api-reference/#국제화-astroi18n)의 함수를 사용하여 구성 (예: `getRelativeLocaleUrl()`)에 따라 유효한 URL 경로를 계산하는 경우, [해당 `path``locale` 값으로 사용](/ko/reference/api-reference/#getlocalebypath)하세요.

#### 제한 사항

Expand All @@ -362,5 +350,17 @@ Astro는 이 기능을 지원하기 위해 다음 헤더를 사용합니다.

서버 프록시/호스팅 플랫폼이 이 정보를 제공할 수 있는지 확인하세요. 이러한 헤더를 검색하지 못하면 404 (상태 코드) 페이지가 표시됩니다.

## 브라우저 언어 감지

Astro의 [주문형 서버 렌더링 모드 (`output:'server'` 또는 `output:'hybrid'`)](/ko/guides/server-side-rendering/) 중 하나와 결합된 Astro의 i18n 라우팅을 사용하면 브라우저 언어 감지를 위한 두 가지 속성인 `Astro.preferredLocale``Astro.preferredLocaleList`에 액세스할 수 있습니다.

이는 브라우저의 `Accept-Language` 헤더와 `locales` (문자열 또는 `codes`)를 결합하여 방문자가 선호하는 언어를 자동으로 적용합니다.

- `Astro.preferredLocale`: Astro는 브라우저의 선호 언어가 `locales` 배열에 포함된 경우, 방문자를 위한 **선호 언어**를 계산할 수 있습니다. 일치 항목이 없으면 이 값은 undefined가 됩니다.
- `Astro.preferredLocaleList`: 브라우저에서 요청하고 웹사이트에서 지원하는 모든 언어의 배열입니다. 그러면 여러분의 사이트와 방문자 간 호환되는 모든 언어 목록이 생성됩니다. 브라우저가 요청한 언어가 `locales` 배열에 없으면 값은 `[]`입니다. 브라우저가 기본 언어를 지정하지 않으면 이 값은 [`i18n.locales`]가 됩니다.
- `Astro.currentLocale`: `locales` 구성에 지정된 구문을 사용하여 현재 URL에서 계산된 언어입니다. URL에 `/[locale]/` 접두사가 포함되어 있지 않으면 값은 기본적으로 `i18n.defaultLocale`이 됩니다.

방문자의 선호도를 성공적으로 일치시키려면 [브라우저에서 사용하는 것](https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept-Language)과 동일한 패턴을 사용하여 `codes`를 제공하십시오.

[`site`]: /ko/reference/configuration-reference/#site
[`i18n.locales`]: /ko/reference/configuration-reference/#i18nlocales

0 comments on commit 676f7ac

Please sign in to comment.