Skip to content

Commit

Permalink
Merge branch 'main' into i18n/fr-update-nav
Browse files Browse the repository at this point in the history
  • Loading branch information
yanthomasdev authored Oct 26, 2024
2 parents 28c7cbc + 39b6cc3 commit 5ba954b
Show file tree
Hide file tree
Showing 21 changed files with 1,850 additions and 1,573 deletions.
4 changes: 1 addition & 3 deletions src/content/docs/en/reference/modules/astro-actions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,4 @@ The `code` property accepts human-readable versions of all HTTP status codes. Th
<Since v="4.15.0" />
</p>

The `message` property accepts a string. (e.g. "User must be logged in.")

[canonical]: https://en.wikipedia.org/wiki/Canonical_link_element
The `message` property accepts a string. (e.g. "User must be logged in.")
2 changes: 1 addition & 1 deletion src/content/docs/en/reference/modules/astro-assets.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import ReadMore from '~/components/ReadMore.astro';

<p><Since v="3.0.0" /></p>

Astro provides built-in components and helper functions for optimizing and displaying your images. For features and usage examples, [see our image guide](/en/guides/content-collections/).
Astro provides built-in components and helper functions for optimizing and displaying your images. For features and usage examples, [see our image guide](/en/guides/images/).

## Imports from `astro:assets`

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/en/reference/modules/astro-content.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ const { Content, headings, remarkPluginFrontmatter } = await entry.render();
A string union of all collection names defined in your `src/content/config.*` file. This type can be useful when defining a generic function that accepts any collection name.

```ts
import type { CollectionKey, getCollection } from 'astro:content';
import { type CollectionKey, getCollection } from 'astro:content';

async function getCollection(collection: CollectionKey) {
return getCollection(collection);
Expand Down
8 changes: 4 additions & 4 deletions src/content/docs/ko/guides/actions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Astro 액션을 사용하면 타입 안전성을 갖춘 백엔드 함수를 정

- [Zod 유효성 검사](https://zod.dev/?id=primitives)를 사용하여 JSON 및 양식 데이터 입력의 유효성을 자동으로 검사하세요.
- 클라이언트는 물론 [HTML 양식 액션에서도](#html-양식-액션에서-액션-호출) 백엔드를 호출할 수 있는 타입이 안전한 함수를 생성하세요. 수동 `fetch()` 호출이 필요 없습니다.
- [`ActionError`](/ko/reference/api-reference/#actionerror) 객체로 백엔드 오류를 표준화하세요.
- [`ActionError`](/ko/reference/modules/astro-actions/#actionerror) 객체로 백엔드 오류를 표준화하세요.

## 기본 사용법

Expand Down Expand Up @@ -129,7 +129,7 @@ async () => {

</Steps>

<ReadMore>[`defineAction()`](/ko/reference/api-reference/#defineaction) 및 해당 속성에 대한 자세한 내용은 전체 액션 API 설명서를 참조하세요.</ReadMore>
<ReadMore>[`defineAction()`](/ko/reference/modules/astro-actions/#defineaction) 및 해당 속성에 대한 자세한 내용은 전체 액션 API 설명서를 참조하세요.</ReadMore>

## 액션 조직화

Expand Down Expand Up @@ -340,7 +340,7 @@ export const server = {
}
```

<ReadMore>사용 가능한 모든 양식 유효성 검사기는 [`input` API 참조](/ko/reference/api-reference/#input-유효성-검사기)를 확인하세요.</ReadMore>
<ReadMore>사용 가능한 모든 양식 유효성 검사기는 [`input` API 참조](/ko/reference/modules/astro-actions/#input-유효성-검사기)를 확인하세요.</ReadMore>

3. HTML 양식에 `<script>`를 추가하여 사용자 입력을 제출합니다. 이 예시에서는 양식의 기본 제출 동작을 재정의하여 `actions.newsletter()`를 호출하고 `navigate()` 함수를 사용하여 `/confirmation`으로 리디렉션합니다:

Expand Down Expand Up @@ -375,7 +375,7 @@ export const server = {

### 양식 입력 오류 표시

`required`, `type="email"`, `pattern`과 같은 [기본 HTML 양식 유효성 검사 속성](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation#using_built-in_form_validation)을 사용하여 제출 전에 양식 입력의 유효성을 검사할 수 있습니다. 백엔드에서 더 복잡한 `input` 유효성 검사를 수행하려면 제공된 [`isInputError()`](/ko/reference/api-reference/#isinputerror) 유틸리티 함수를 사용할 수 있습니다.
`required`, `type="email"`, `pattern`과 같은 [기본 HTML 양식 유효성 검사 속성](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation#using_built-in_form_validation)을 사용하여 제출 전에 양식 입력의 유효성을 검사할 수 있습니다. 백엔드에서 더 복잡한 `input` 유효성 검사를 수행하려면 제공된 [`isInputError()`](/ko/reference/modules/astro-actions/#isinputerror) 유틸리티 함수를 사용할 수 있습니다.

입력 오류를 검색하려면 `isInputError()` 유틸리티를 사용하여 잘못된 입력으로 인해 오류가 발생했는지 확인합니다. 입력 오류에는 유효성 검사에 실패한 각 입력 이름에 대한 메시지가 포함된 `fields` 객체가 포함됩니다. 이러한 메시지를 사용하여 사용자에게 제출물을 수정하라는 메시지를 표시할 수 있습니다.

Expand Down
14 changes: 7 additions & 7 deletions src/content/docs/ko/guides/content-collections.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Astro는 프로젝트의 `.astro` 디렉터리에 콘텐츠 컬렉션을 위한

<FileTree>
- src/content/
- **newsletter/**
- **newsletter/**
- week-1.md
- week-2.md
- **blog/**
Expand Down Expand Up @@ -306,7 +306,7 @@ relatedPosts:

### 사용자 정의 슬러그 정의

`type: 'content'`를 사용하면 모든 콘텐츠 항목은 해당 [파일 `id`](/ko/reference/api-reference/#id)에서 URL 친화적인 `slug` 속성을 생성합니다. 슬러그는 컬렉션에서 직접 항목을 쿼리하는 데 사용됩니다. 콘텐츠에서 새 페이지와 URL을 만들 때도 유용합니다.
`type: 'content'`를 사용하면 모든 콘텐츠 항목은 해당 [파일 `id`](/ko/reference/modules/astro-content/#id)에서 URL 친화적인 `slug` 속성을 생성합니다. 슬러그는 컬렉션에서 직접 항목을 쿼리하는 데 사용됩니다. 콘텐츠에서 새 페이지와 URL을 만들 때도 유용합니다.

파일 앞부분에 자신만의 `slug` 속성을 추가하여 항목에서 생성된 슬러그를 재정의할 수 있습니다. 이는 다른 웹 프레임워크의 "permalink" 기능과 유사합니다. `"slug"`는 사용자 정의 컬렉션 `스키마`에서 허용되지 않는 특수 예약 속성 이름이며 항목의 `data` 속성에 표시되지 않습니다.

Expand All @@ -320,7 +320,7 @@ slug: my-custom-slug/supports/slashes

## 컬렉션 쿼리

Astro는 컬렉션을 쿼리하고 하나 이상의 콘텐츠 항목을 반환하는 두 가지 함수를 제공합니다: [`getCollection()`](/ko/reference/api-reference/#getcollection)[`getEntry()`](/ko/reference/api-reference/#getentry).
Astro는 컬렉션을 쿼리하고 하나 이상의 콘텐츠 항목을 반환하는 두 가지 함수를 제공합니다: [`getCollection()`](/ko/reference/modules/astro-content/#getcollection)[`getEntry()`](/ko/reference/modules/astro-content/#getentry).

```js
import { getCollection, getEntry } from 'astro:content';
Expand All @@ -337,7 +337,7 @@ const allBlogPosts = await getCollection('blog');
const graceHopperProfile = await getEntry('authors', 'grace-hopper');
```

두 함수 모두 [`CollectionEntry`](/ko/reference/api-reference/#컬렉션-항목-타입) 타입에 정의된 대로 콘텐츠 항목을 반환합니다.
두 함수 모두 [`CollectionEntry`](/ko/reference/modules/astro-content/#collectionentry) 타입에 정의된 대로 콘텐츠 항목을 반환합니다.

### 참조 데이터 엑세스

Expand Down Expand Up @@ -432,7 +432,7 @@ const blogEntries = await getCollection('blog');

컴포넌트는 전체 콘텐츠 항목을 prop으로 전달할 수도 있습니다.

이렇게 하면 TypeScript를 사용하여 컴포넌트 props의 타입을 올바르게 구성하기 위해 [`CollectionEntry`](/ko/reference/api-reference/#컬렉션-항목-타입) 유틸리티를 사용할 수 있습니다. 이 유틸리티는 컬렉션 스키마 이름과 일치하는 문자열 인수를 사용하고 해당 컬렉션 스키마의 모든 속성을 상속합니다.
이렇게 하면 TypeScript를 사용하여 컴포넌트 props의 타입을 올바르게 구성하기 위해 [`CollectionEntry`](/ko/reference/modules/astro-content/#collectionentry) 유틸리티를 사용할 수 있습니다. 이 유틸리티는 컬렉션 스키마 이름과 일치하는 문자열 인수를 사용하고 해당 컬렉션 스키마의 모든 속성을 상속합니다.

```astro /CollectionEntry(?:<.+>)?/
---
Expand Down Expand Up @@ -501,7 +501,7 @@ const { Content } = await entry.render();

### 서버 출력용 빌드 (SSR)

Astro의 SSR 지원을 사용하여 동적 웹 사이트를 구축하는 경우 빌드 중 미리 경로를 생성할 것으로 예상되지 않습니다. 대신 페이지에서는 요청 (`Astro.request` 또는 `Astro.params` 사용)을 검사하여 필요에 따라 슬러그를 찾은 다음 [`getEntry()`](/ko/reference/api-reference/#getentry)를 사용하여 가져와야 합니다.
Astro의 SSR 지원을 사용하여 동적 웹 사이트를 구축하는 경우 빌드 중 미리 경로를 생성할 것으로 예상되지 않습니다. 대신 페이지에서는 요청 (`Astro.request` 또는 `Astro.params` 사용)을 검사하여 필요에 따라 슬러그를 찾은 다음 [`getEntry()`](/ko/reference/modules/astro-content/#getentry)를 사용하여 가져와야 합니다.

```astro
---
Expand Down Expand Up @@ -530,7 +530,7 @@ const { Content } = await entry.render();
## 파일 기반 라우팅에서 마이그레이션

`src/pages/` 디렉터리의 하위 폴더에 있는 Markdown 또는 MDX 파일을 사용하는 블로그와 같은 기존 Astro 프로젝트가 있는 경우 관련 콘텐츠 또는 데이터 파일을 콘텐츠 컬렉션으로 마이그레이션하는 것을 고려하세요.

[블로그 만들기 튜토리얼의 완성된 프로젝트](https://github.com/withastro/blog-tutorial-demo)의 코드베이스를 사용하는 [단계별 튜토리얼](/ko/tutorials/add-content-collections/)에서 기본 블로그 예시를 `src/pages/posts/` 디렉터리에서 `src/content/posts` 디렉터리로 변환하는 방법을 알아보세요.

## JSON 스키마 생성 활성화
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/ko/guides/deploy/fleek.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,4 @@ Astro 프로젝트는 정적 사이트로 Fleek에 배포할 수 있습니다.
## 자세히 알아보기

<ReadMore>[Fleek UI로 사이트 배포](https://fleek.xyz/docs/platform/deployments/)</ReadMore>
<ReadMore>[Fleek CLI로 사이트 배포](https://fleek.xyz/docs/cli/sites/)</ReadMore>
<ReadMore>[Fleek CLI로 사이트 배포](https://fleek.xyz/docs/cli/hosting/)</ReadMore>
2 changes: 1 addition & 1 deletion src/content/docs/ko/guides/imports.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ glob 패턴은 특수 와일드카드 문자를 지원하는 파일 경로입니

#### `Astro.glob()` vs `getCollection()`

[콘텐츠 컬렉션](/ko/guides/content-collections/)`Astro.glob()` 대신 여러 파일을 가져오기 위한 [`getCollection()` API](/ko/reference/api-reference/#getcollection)를 제공합니다. 콘텐츠 파일 (예: Markdown, MDX, Markdoc)이 `src/content/` 디렉터리의 컬렉션에 있는 경우 `getCollection()`을 사용하여 [컬렉션을 쿼리](/ko/guides/content-collections/#컬렉션-쿼리)하고 콘텐츠 항목을 반환합니다.
[콘텐츠 컬렉션](/ko/guides/content-collections/)`Astro.glob()` 대신 여러 파일을 가져오기 위한 [`getCollection()` API](/ko/reference/modules/astro-content/#getcollection)를 제공합니다. 콘텐츠 파일 (예: Markdown, MDX, Markdoc)이 `src/content/` 디렉터리의 컬렉션에 있는 경우 `getCollection()`을 사용하여 [컬렉션을 쿼리](/ko/guides/content-collections/#컬렉션-쿼리)하고 콘텐츠 항목을 반환합니다.

## WASM

Expand Down
30 changes: 15 additions & 15 deletions src/content/docs/ko/guides/internationalization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export default defineConfig({

### 링크 생성

i18n 라우팅이 구성되면 이제 [`astro:i18n` 모듈](/ko/reference/api-reference/#국제화-astroi18n)에서 사용할 수 있는 [`getRelativeLocaleUrl()`](/ko/reference/api-reference/#getrelativelocaleurl)과 같은 도우미 함수를 사용하여 사이트 내 페이지에 대한 링크를 계산할 수 있습니다. 생성된 링크는 항상 정확하고 현지화된 경로를 제공하며 사이트에서 URL을 올바르게 사용하거나 확인하는 데 도움이 될 수 있습니다.
i18n 라우팅이 구성되면 이제 [`astro:i18n` 모듈](/ko/reference/modules/astro-i18n/)에서 사용할 수 있는 [`getRelativeLocaleUrl()`](/ko/reference/modules/astro-i18n/#getrelativelocaleurl)과 같은 도우미 함수를 사용하여 사이트 내 페이지에 대한 링크를 계산할 수 있습니다. 생성된 링크는 항상 정확하고 현지화된 경로를 제공하며 사이트에서 URL을 올바르게 사용하거나 확인하는 데 도움이 될 수 있습니다.

링크를 수동으로 작성할 수도 있습니다.

Expand All @@ -70,8 +70,8 @@ const aboutURL = getRelativeLocaleUrl("es", "about");
---
<a href="/get-started/">¡Vamos!</a>
<a href={getRelativeLocaleUrl('es', 'blog')}>Blog</a>
<a href={aboutURL}>Acerca</a>
```
<a href={aboutURL}>Acerca</a>
```

## `routing`

Expand All @@ -91,7 +91,7 @@ i18n 라우팅을 구성하면 이 파일 구조 (및 생성된 해당 URL 경

또한 이 설정은 파일 구조와 URL 구조가 모든 언어에 대해 일치해야 하므로 기본 언어에 대한 페이지 파일이 존재해야 하는 위치 (예: `src/pages/about/` 또는 `src/pages/en/about`)를 결정합니다.

- `"prefixDefaultLocale: false"` (기본값): 기본 언어로 된 URL에는 `/[locale]/` 접두사가 **없습니다**. 다른 모든 로케일에는 적용됩니다.
- `"prefixDefaultLocale: false"` (기본값): 기본 언어로 된 URL에는 `/[locale]/` 접두사가 **없습니다**. 다른 모든 로케일에는 적용됩니다.

- `"prefixDefaultLocale: true"`: 기본 언어를 포함한 모든 URL에는 `/[locale]/` 접두사가 붙습니다.

Expand Down Expand Up @@ -125,8 +125,8 @@ export default defineConfig({
- index.astro
</FileTree>

- `src/pages/about.astro``example.com/about/` 경로를 생성합니다.
- `src/pages/fr/about.astro``example.com/fr/about/` 경로를 생성합니다.
- `src/pages/about.astro``example.com/about/` 경로를 생성합니다.
- `src/pages/fr/about.astro``example.com/fr/about/` 경로를 생성합니다.

#### `prefixDefaultLocale: true`

Expand Down Expand Up @@ -193,7 +193,7 @@ export default defineConfig({
})
```

Astro는 미들웨어를 위한 도우미 함수를 제공하므로 기본 라우팅, 예외, 대체 동작, 오류 캐치 등을 제어할 수 있습니다: [`redirectToDefaultLocale()`](/ko/reference/api-reference/#redirecttodefaultlocale), [`notFound ()`](/ko/reference/api-reference/#notfound)[`redirectToFallback()`](/ko/reference/api-reference/#redirecttofallback):
Astro는 미들웨어를 위한 도우미 함수를 제공하므로 기본 라우팅, 예외, 대체 동작, 오류 캐치 등을 제어할 수 있습니다: [`redirectToDefaultLocale()`](/ko/reference/modules/astro-i18n/#redirecttodefaultlocale), [`notFound ()`](/ko/reference/modules/astro-i18n/#notfound)[`redirectToFallback()`](/ko/reference/modules/astro-i18n/#redirecttofallback):

```js title="src/middleware.js"
import { defineMiddleware } from "astro:middleware";
Expand All @@ -211,7 +211,7 @@ export const onRequest = defineMiddleware(async (ctx, next) => {

[`middleware`](#미들웨어-함수) 함수는 Astro의 i18n 미들웨어를 수동으로 생성합니다. 이를 통해 Astro의 i18n 라우팅을 완전히 교체하는 대신 확장할 수 있습니다.

순서를 결정하기 위해 [`sequence`](/ko/reference/api-reference/#sequence) 유틸리티를 사용하여 자체 미들웨어와 함께 [라우팅 옵션](#routing)과 함께 `middleware`를 실행할 수 있습니다.
순서를 결정하기 위해 [`sequence`](/ko/reference/modules/astro-middleware/#sequence) 유틸리티를 사용하여 자체 미들웨어와 함께 [라우팅 옵션](#routing)과 함께 `middleware`를 실행할 수 있습니다.

```js title="src/middleware.js"
import {defineMiddleware, sequence} from "astro:middleware";
Expand Down Expand Up @@ -283,7 +283,7 @@ export default defineConfig({

위 URL은 `getAbsoluteLocaleUrl()``getAbsoluteLocaleUrlList()` 함수에서도 반환됩니다.

## 대체하기
## 대체하기

한 언어로 된 페이지가 존재하지 않는 경우 (예: 아직 번역되지 않은 페이지), 404 페이지를 표시하는 대신 언어별로 다른 `locale`의 대체 콘텐츠를 표시하도록 선택할 수 있습니다. 이는 아직 모든 경로에 대한 페이지가 없지만 방문자에게 일부 콘텐츠를 제공하려는 경우에 유용합니다.

Expand All @@ -298,14 +298,14 @@ export default defineConfig({

예를 들어, 아래 구성은 누락된 `fr` 경로에 대한 대체 로케일로 `es`를 설정합니다. 즉, `example.com/fr/my-page/`를 방문하는 사용자는 `src/pages/fr/my-page.astro`가 없는 경우 404 페이지로 이동하는 대신 리디렉션되지 않고 `example.com/es/my-page/`의 콘텐츠를 보게 됩니다.

```js title="astro.config.mjs" ins={6-8,10}
```js title="astro.config.mjs" ins={6-8,10}
import { defineConfig } from "astro/config"
export default defineConfig({
i18n: {
defaultLocale: "en",
locales: ["es", "en", "fr"],
fallback: {
fr: "es"
fr: "es"
},
routing: {
fallbackType: "rewrite"
Expand Down Expand Up @@ -343,15 +343,15 @@ export default defineConfig({
});
```

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

#### 제한 사항

이 기능에는 몇 가지 제한사항이 있습니다.

- `site` 옵션은 필수입니다.
- `output` 옵션은 `"server"`로 설정되어야 합니다.
- 사전 렌더링된 개별 페이지는 있을 수 없습니다.
- `site` 옵션은 필수입니다.
- `output` 옵션은 `"server"`로 설정되어야 합니다.
- 사전 렌더링된 개별 페이지는 있을 수 없습니다.
- 어댑터 기능 [`functionPerRoute`](/ko/reference/adapter-reference/#functionperroute)는 지원되지 않습니다.

Astro는 이 기능을 지원하기 위해 다음 헤더를 사용합니다.
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/ko/guides/markdown-content.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ const posts = Object.values(await import.meta.glob('../posts/*.md', { eager: tru

도우미 함수를 통해 컬렉션에서 데이터를 가져올 때 Markdown의 frontmatter 속성은 `data` 객체 (예: `post.data.title`)에서 사용할 수 있습니다. 또한 `body`에는 컴파일되지 않은 원시 본문 콘텐츠가 문자열로 포함됩니다.

<ReadMore>[CollectionEntry 타입](/ko/reference/api-reference/#컬렉션-항목-타입)에 대해 알아보세요.</ReadMore>
<ReadMore>[CollectionEntry 타입](/ko/reference/modules/astro-content/#collectionentry)에 대해 알아보세요.</ReadMore>

#### Markdown 가져오기

Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/ko/guides/middleware.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import Since from '~/components/Since.astro';
<Steps>
1. `src/middleware.js|ts` 파일을 생성합니다. (또는 `src/middleware/index.js|ts` 파일을 생성할 수도 있습니다.)

2. 이 파일에서 [`context` 객체](#context-객체)`next()` 함수를 전달할 수 있는 [`onRequest()`](/ko/reference/api-reference/#onrequest) 함수를 내보냅니다. 이는 기본 내보내기가 아니어야 합니다.
2. 이 파일에서 [`context` 객체](#context-객체)`next()` 함수를 전달할 수 있는 [`onRequest()`](/ko/reference/modules/astro-middleware/#onrequest) 함수를 내보냅니다. 이는 기본 내보내기가 아니어야 합니다.

```js title="src/middleware.js"
export function onRequest (context, next) {
Expand Down Expand Up @@ -158,7 +158,7 @@ declare namespace App {

## 미들웨어 체이닝

[`sequence()`](/ko/reference/api-reference/#sequence)를 사용하여 여러 미들웨어를 지정된 순서로 결합할 수 있습니다.
[`sequence()`](/ko/reference/modules/astro-middleware/#sequence)를 사용하여 여러 미들웨어를 지정된 순서로 결합할 수 있습니다.

```js title="src/middleware.js"
import { sequence } from "astro:middleware";
Expand Down
Loading

0 comments on commit 5ba954b

Please sign in to comment.