Skip to content

Commit

Permalink
Merge branch 'main' into i18n/ar/basics/layouts
Browse files Browse the repository at this point in the history
  • Loading branch information
yanthomasdev authored Jan 9, 2025
2 parents 5185c3f + b2be67f commit b9efcc2
Show file tree
Hide file tree
Showing 24 changed files with 317 additions and 64 deletions.
2 changes: 1 addition & 1 deletion src/content/docs/en/guides/server-islands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ const productId = url.searchParams.get('product');

## Reusing the encryption key

Astro uses [cryptography](https://developer.mozilla.org/en-US/docs/Glossary/Cryptography) to hash props passed to server islands to prevent accidentally leaking secrets. The props are hashed using a key that is generated during the build.
Astro uses [cryptography](https://developer.mozilla.org/en-US/docs/Glossary/Cryptography) to encrypt props passed to server islands to prevent accidentally leaking secrets. The props are encrypted using a key that is generated during the build.

For most hosts, this happens transparently and there is nothing that you as a developer need to do. If you are using rolling deployments in an environment such as Kubernetes, you may run into issues where the frontend and backend are temporarily out of sync and the keys don't match.

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/en/tutorial/6-islands/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ You will:

## Checklist

<Checklist key="interactivity">
<Checklist>
- [ ] I am ready to add some interactivity to my site, and start living that island life!
</Checklist>
</Box>
4 changes: 2 additions & 2 deletions src/content/docs/fr/guides/content-collections.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Les projets peuvent continuer à utiliser l'API de collections de contenu hérit

Vous pouvez définir une **collection** à partir d'un ensemble de données structurellement similaires. Il peut s'agir d'un répertoire d'articles de blog, d'un fichier JSON de produits ou de toute donnée représentant plusieurs éléments de la même forme.

Les collections stockées localement dans votre projet ou sur votre système de fichiers peuvent contenir des entrées de fichiers Markdown, MDX, Markdoc ou JSON :
Les collections stockées localement dans votre projet ou sur votre système de fichiers peuvent contenir des entrées de fichiers Markdown, MDX, Markdoc, YAML ou JSON :

<FileTree>
- src/
Expand Down Expand Up @@ -85,7 +85,7 @@ L'API Content Layer vous permet de récupérer votre contenu (qu'il soit stocké

Astro fournit deux fonctions de chargement intégrées (`glob()` et `file()`) pour récupérer votre contenu local, ainsi qu'un accès à l'API pour construire votre propre chargeur et récupérer des données distantes.

Le chargeur `glob()` crée des entrées à partir de répertoires de fichiers Markdown, MDX, Markdoc ou JSON à partir de n'importe quel endroit du système de fichiers. Il accepte un `pattern` de fichiers d'entrée à faire correspondre et un chemin de fichier `base` indiquant où se trouvent vos fichiers. L'`id` de chaque entrée sera automatiquement généré à partir de son nom de fichier. Utilisez ce chargeur lorsque vous avez un fichier par entrée.
Le chargeur `glob()` crée des entrées à partir de répertoires de fichiers Markdown, MDX, Markdoc ou JSON à partir de n'importe quel endroit du système de fichiers. Il accepte un `pattern` de fichiers d'entrée à faire correspondre à l'aide de modèles glob pris en charge par [micromatch](https://github.com/micromatch/micromatch#matching-features) et un chemin de fichier `base` indiquant où se trouvent vos fichiers. L'`id` de chaque entrée sera automatiquement généré à partir de son nom de fichier. Utilisez ce chargeur lorsque vous avez un fichier par entrée.

Le chargeur `file()` crée plusieurs entrées à partir d'un seul fichier local. Chaque entrée du fichier doit avoir une propriété de clé `id` unique. Il accepte un chemin de fichier `base` vers votre fichier et éventuellement une [fonction `parser`](#fonction-parser) pour les fichiers de données qu'il ne peut pas analyser automatiquement. Utilisez ce chargeur lorsque votre fichier de données peut être analysé comme un tableau d'objets.

Expand Down
1 change: 1 addition & 0 deletions src/content/docs/fr/recipes/build-forms-api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Cette méthode vous montre comment envoyer les données du formulaire au point d
Cet exemple envoie un objet JSON avec un message au client.

```ts title="src/pages/api/feedback.ts" "request.formData()" "post"
export const prerender = false; // Pas nécessaire en mode `server`
import type { APIRoute } from "astro";

export const POST: APIRoute = async ({ request }) => {
Expand Down
144 changes: 144 additions & 0 deletions src/content/docs/ja/develop-and-build.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
title: 開発とビルド
description: '新しいプロジェクトの作業を始める方法'
i18nReady: true
---
import { Tabs, TabItem, FileTree, CardGrid, LinkCard, Steps } from '@astrojs/starlight/components';
import ReadMore from '~/components/ReadMore.astro';

Astroプロジェクトが用意できたら、いよいよAstroでの開発を始めましょう!🚀

## プロジェクトを編集する

プロジェクトを編集するには、コードエディターでプロジェクトフォルダを開きます。開発モードでdevサーバーを実行すると、コードを編集するたびにサイトの更新内容をリアルタイムで確認できます。

また、[開発環境をカスタマイズ](#開発環境を設定する)することで、TypeScriptの設定やAstro公式エディター拡張機能のインストールなどが行えます。

### Astroのdevサーバーを起動する

Astroには開発用の組み込みサーバーがあり、プロジェクト開発に必要なすべてが揃っています。`astro dev` CLIコマンドを使うことで、ローカルの開発サーバーを起動し、新しいWebサイトの動作を確認できます。

すべてのスターターテンプレートには、`astro dev`を実行するためのスクリプトがあらかじめ設定されています。プロジェクトディレクトリに移動したら、お気に入りのパッケージマネージャーを使用してこのコマンドを実行し、Astroの開発サーバーを起動しましょう。

<Tabs>
<TabItem label="npm">
```shell
npm run dev
```
</TabItem>
<TabItem label="pnpm">
```shell
pnpm run dev
```
</TabItem>
<TabItem label="yarn">
```shell
yarn run dev
```
</TabItem>
</Tabs>

すべてが正常に動作すれば、Astroは[http://localhost:4321/](http://localhost:4321/)でプロジェクトを配信します。ブラウザでそのリンクを開き、新しいサイトを確認しましょう!

### 開発モードで作業する

Astroは`src/`ディレクトリ内のファイル変更をリアルタイムで検出し、サイトのプレビューを自動的に更新します。そのため、開発中にサーバーを再起動する必要はありません。devサーバーが実行中であれば、常に最新のサイトプレビューをブラウザで確認できます。

ブラウザでサイトを表示すると、[Astro devツールバー](/ja/guides/dev-toolbar/)にアクセスできます。これを使えば、[アイランド](/ja/concepts/islands/)の検証やアクセシビリティの問題の特定など、開発作業をサポートしてくれます。

もしdevサーバー起動後にブラウザでプロジェクトが開けない場合は、`dev`コマンドを実行したターミナルに戻り、表示されているメッセージを確認してください。エラーが発生した場合や、プロジェクトが [http://localhost:4321/](http://localhost:4321/)以外のURLで提供されている場合には、そのメッセージに詳細が表示されているはずです。

## サイトのビルドとプレビュー

ビルド時に生成されるサイトのバージョンを確認するには、まずdevサーバーを停止します(<kbd>Ctrl</kbd> + <kbd>C</kbd>)。その後、ターミナルで使用しているパッケージマネージャーに対応するビルドコマンドを実行します:

<Tabs>
<TabItem label="npm">
```shell
npm run build
```
</TabItem>
<TabItem label="pnpm">
```shell
pnpm build
```
</TabItem>
<TabItem label="yarn">
```shell
yarn run build
```
</TabItem>
</Tabs>

Astroは、デプロイ可能なサイトを別のフォルダ(デフォルトでは`dist/`)にビルドします。ターミナルで進行状況を確認でき、ビルド中にエラーが発生した場合は通知されます。これにより、本番環境へデプロイする前にプロジェクトのビルドエラーを把握できます。また、TypeScriptが`strict`または`strictest`に設定されている場合、`build`スクリプトは型エラーのチェックも実行します。

ビルドが完了したら、ターミナルで適切な`preview`コマンド(例: `npm run preview`)を実行すると、ローカルでビルドされたサイトをブラウザプレビューで確認できます。

このプレビューは、ビルドコマンドを最後に実行した時点のコードに基づいています。これは、Webにデプロイされた際のサイトの見た目を確認するためのものです。ビルド後にコードを変更しても、ビルドコマンドを再実行するまではプレビューに**反映されません**のでご注意ください。

プレビューを終了し、他のターミナルコマンドを実行するには、(<kbd>Ctrl</kbd> + <kbd>C</kbd>)を使用してください。例えば、devサーバーを再起動すれば、開発モードに戻り、編集したコードのライブプレビューがリアルタイムで確認できます。

<ReadMore>Astro CLIと、ビルド中に使用するターミナルコマンドについての詳細は、[Astro CLIリファレンス](/ja/reference/cli-reference/)をご覧ください。</ReadMore>

:::tip
コードを追加・変更しすぎる前に、[新しいサイトをすぐにデプロイする](/ja/guides/deploy/)ことも検討しましょう。これにより、最小限の動作するバージョンを公開でき、後でデプロイ時に発生するトラブルシューティングの時間や労力を節約できます。
:::

## 次のステップ

成功です!Astroでの開発準備が整いました!🥳

次におすすめする作業をいくつか紹介します。どの順番で読んでも問題ありません。また、ドキュメントから一旦離れてAstroプロジェクトのコードベースで自由に作業し、困った時や質問がある時に戻ってきても大丈夫です。

### 開発環境を設定する

以下のガイドを参考に、開発体験を自分好みに設定してみましょう。

<CardGrid>
<LinkCard
title="エディターのセットアップ"
description="コードエディターをカスタマイズして、Astro開発を快適にし、新しい機能を活用しましょう。"
href="/ja/editor-setup/"
/>
<LinkCard
title="Devツールバー"
description="Devツールバーの便利な機能を学びましょう。"
href="/ja/guides/dev-toolbar/"
/>
<LinkCard
title="TypeScriptの設定"
description="型チェックやIntelliSenseなどのオプションを設定しましょう。"
href="/ja/guides/typescript/"
/>
</CardGrid>

### Astroの機能を学びましょう

<CardGrid>
<LinkCard
title="コードベースを理解する"
description="プロジェクト構造ガイドでAstroのファイル構造について学びましょう。"
href="/ja/basics/project-structure/"
/>
<LinkCard
title="コンテンツコレクションを作成する"
description="フロントマッターによる検証や自動型安全性を活用して、サイトにコンテンツを追加しましょう。"
href="/ja/guides/content-collections/"
/>
<LinkCard
title="ビュー遷移を追加する"
description="シームレスなページ遷移やアニメーションを作成しましょう。"
href="/ja/guides/view-transitions/"
/>
<LinkCard
title="アイランドについて学ぶ"
description="Astroのアイランドアーキテクチャについて詳しく学びましょう。"
href="/ja/concepts/islands/"
/>
</CardGrid>

### 入門チュートリアルを試してみる

[入門チュートリアル](/ja/tutorial/0-introduction/)では、空白ページから完全に機能するAstroブログを構築する方法を学べます。

このチュートリアルでは、Astroの基本(ページ、レイアウト、コンポーネント、ルーティング、アイランドなど)を順を追って学習できます。さらに、Web開発が初めての方のために、必要なアプリケーションのインストール、GitHubアカウントの作成、サイトのデプロイ手順を学べる、オプションの初心者向け学習ユニットも用意されています。
2 changes: 1 addition & 1 deletion src/content/docs/ko/guides/server-islands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ const productId = url.searchParams.get('product');

## 암호화 키 재사용

Astro는 [암호화](https://developer.mozilla.org/en-US/docs/Glossary/Cryptography)를 사용하여 서버 아일랜드에 전달된 props를 해시합니다. 이는 실수로 비밀이 유출되는 것을 방지합니다. props는 빌드 중에 생성된 키를 사용하여 해시됩니다.
Astro는 [cryptography](https://developer.mozilla.org/en-US/docs/Glossary/Cryptography)를 사용하여 서버 아일랜드에 전달된 props를 암호화합니다. 이는 실수로 비밀이 유출되는 것을 방지합니다. props는 빌드 중에 생성된 키를 사용하여 암호화됩니다.

대부분의 호스트의 경우, 이는 투명하게 처리되며 개발자가 별도로 할 일은 없습니다. Kubernetes와 같은 환경에서 롤링 배포를 사용하는 경우, 프런트엔드와 백엔드가 일시적으로 동기화되지 않고 키가 일치하지 않는 문제가 발생할 수 있습니다.

Expand Down
9 changes: 9 additions & 0 deletions src/content/docs/ko/tutorial/6-islands/4.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ i18nReady: true
---
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro';
import Box from '~/components/tutorial/Box.astro';
import Checklist from '~/components/Checklist.astro';
import MultipleChoice from '~/components/tutorial/MultipleChoice.astro';
import PreCheck from '~/components/tutorial/PreCheck.astro';
import Option from '~/components/tutorial/Option.astro';
Expand Down Expand Up @@ -348,3 +349,11 @@ import { Steps } from '@astrojs/starlight/components';
```

콘텐츠 컬렉션을 사용한 블로그 튜토리얼의 전체 예제는 튜토리얼 저장소의 [Content Collections 브랜치](https://github.com/withastro/blog-tutorial-demo/tree/content-collections)에서 확인할 있습니다.

<Box icon="check-list">

## 체크리스트
<Checklist>
- [ ] 유사한 콘텐츠들을 효율적으로 관리하고 구조화하기 위해 콘텐츠 컬렉션을 활용할 수 있습니다.
</Checklist>
</Box>
2 changes: 1 addition & 1 deletion src/content/docs/ko/tutorial/6-islands/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import Option from '~/components/tutorial/Option.astro';

## Checklist

<Checklist key="interactivity">
<Checklist>
- [ ] 내 사이트에 상호작용 기능을 추가하고 아일랜드 라이프를 시작할 준비가 되었습니다!
</Checklist>
</Box>
6 changes: 3 additions & 3 deletions src/content/docs/zh-cn/guides/content-collections.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Astro 5.0 引入了内容层(Content Layer)API,用于定义和查询内容

你可以从结构相似的数据集中定义一个**集合**。这可以是一个博客文章的目录,一个产品项目的 JSON 文件,或者任何代表相同形状的多个项目的数据。

本地存储在项目中或文件系统上的集合可以包含 Markdown、MDX、Markdoc 或 JSON 文件的条目:
本地存储在项目中或文件系统上的集合可以包含 Markdown、MDX、Markdoc、YAML 或 JSON 文件的条目:

<FileTree>
- src/
Expand Down Expand Up @@ -87,7 +87,7 @@ export const collections = { blog, dogs };

Astro 提供了两个内置的加载器函数(`glob()``file()`)用于获取本地内容,也可以通过 API 来构建自己的加载器并请求远程数据。

`glob()` 加载器可以从文件系统的任何地方创建 Markdown、MDX、Markdoc 或 JSON 文件的目录条目。它接受一个匹配条目文件的 `pattern`,以及你的文件所在的 `base` 文件路径。每个条目的 `id` 将从其文件名自动生成。当每个条目对应一个文件时,请使用此加载器。
`glob()` 加载器可以从文件系统的任何地方创建 Markdown、MDX、Markdoc 或 JSON 文件的目录条目。它基于 [micromatch](https://github.com/micromatch/micromatch#matching-features) 的 glob 模式支持来接受一个匹配条目文件的 `pattern`,以及你的文件所在的 `base` 文件路径。每个条目的 `id` 将从其文件名自动生成。当每个条目对应一个文件时,请使用此加载器。

`file()` 加载器从单个本地文件创建多个条目。文件中的每个条目必须有一个唯一的 `id` 键属性。它接受一个 相对你的文件的 `base` 文件路径,以及一个可选的 [`parser` 函数](#parser-函数) 用于它无法自动解析的数据文件。当你的数据文件可以解析为对象数组时,请使用此加载器。

Expand Down Expand Up @@ -403,7 +403,7 @@ const posts = await getCollection('blog');
```
#### 渲染正文内容

查询后,你可以使用 `render()` 函数属性将 Markdown 和 MDX 条目渲染为 HTML。调用此函数将使你可以访问渲染的 HTML 内容,包括 `<Content />` 组件和所有已渲染标题的列表。
查询后,你可以使用 [`render()`](/zh-cn/reference/modules/astro-content/#render) 函数属性将 Markdown 和 MDX 条目渲染为 HTML。调用此函数将使你可以访问渲染的 HTML 内容,包括 `<Content />` 组件和所有已渲染标题的列表。

```astro title="src/pages/blog/post-1.astro" {5,8}
---
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/zh-cn/guides/deploy/vercel.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ import { Steps } from '@astrojs/starlight/components';

```js title="astro.config.mjs" ins={2, 5-6}
import { defineConfig } from 'astro/config';
import vercel from '@astrojs/vercel/serverless';
import vercel from '@astrojs/vercel';

export default defineConfig({
output: 'server',
Expand Down
8 changes: 4 additions & 4 deletions src/content/docs/zh-cn/guides/integrations-guide/alpinejs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Astro 包含了一个 `astro add` 命令,用于自动设置官方集成。如
</Fragment>
</PackageManagerTabs>

大多数包管理器会自动安装相关的 peer 依赖项。然而,如果在启动 Astro 时看到 "Cannot find package 'alpinejs'"(或者类似)的警告,则需要手动安装 Alpine.js:
大多数包管理器会自动安装相关的 peer 依赖项。然而,如果在启动 Astro 时看到 `Cannot find package 'alpinejs'`(或者类似)的警告,则需要手动安装 Alpine.js:

<PackageManagerTabs>
<Fragment slot="npm">
Expand All @@ -83,13 +83,13 @@ Astro 包含了一个 `astro add` 命令,用于自动设置官方集成。如

然后,使用 `integrations` 属性将集成应用到你的 `astro.config.*` 文件中:

```js ins="alpine()" title="astro.config.mjs" ins={2}
```js ins="alpinejs()" title="astro.config.mjs" ins={2}
import { defineConfig } from 'astro/config';
import alpine from '@astrojs/alpinejs';
import alpinejs from '@astrojs/alpinejs';

export default defineConfig({
// ...
integrations: [alpine()],
integrations: [alpinejs()],
});
```

Expand Down
Loading

0 comments on commit b9efcc2

Please sign in to comment.