From 75ad0cc97698c2ff5dd07c0370bc396fcbb8966a Mon Sep 17 00:00:00 2001 From: Xiaoyue Lin <36526527+100gle@users.noreply.github.com> Date: Tue, 22 Aug 2023 01:17:32 +0800 Subject: [PATCH 01/10] i18n(zh-cn): Update `i18n/zh-cn/docsearch.ts` (#4294) Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> --- src/i18n/zh-cn/docsearch.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/zh-cn/docsearch.ts b/src/i18n/zh-cn/docsearch.ts index 92e555e835dfb..363d354556eec 100644 --- a/src/i18n/zh-cn/docsearch.ts +++ b/src/i18n/zh-cn/docsearch.ts @@ -25,7 +25,7 @@ export default DocSearchDictionary({ }, errorScreen: { titleText: '出现未知错误!', - helpText: '请检查您的互联网连接是否有误', + helpText: '请检查你的互联网连接是否有误', }, footer: { selectText: '进入条目', @@ -34,7 +34,7 @@ export default DocSearchDictionary({ navigateUpKeyAriaLabel: '上方向键', navigateDownKeyAriaLabel: '下方向键', closeText: '关闭搜索', - closeKeyAriaLabel: 'Esc键', + closeKeyAriaLabel: 'Esc 键', searchByText: '搜索来自', }, noResultsScreen: { From 80ff29ceef983ee849755d8d3f658f3db866bf1b Mon Sep 17 00:00:00 2001 From: Shinya Fujino Date: Tue, 22 Aug 2023 02:28:25 +0900 Subject: [PATCH 02/10] i18n(ja): Add only-response-can-be-returned.mdx (#4292) * i18n(ja): Add only-response-can-be-returned.mdx * Update src/content/docs/ja/reference/errors/only-response-can-be-returned.mdx Co-authored-by: Kyosuke Nakamura --------- Co-authored-by: Kyosuke Nakamura Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> --- .../errors/only-response-can-be-returned.mdx | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/content/docs/ja/reference/errors/only-response-can-be-returned.mdx diff --git a/src/content/docs/ja/reference/errors/only-response-can-be-returned.mdx b/src/content/docs/ja/reference/errors/only-response-can-be-returned.mdx new file mode 100644 index 0000000000000..5113bd7356e74 --- /dev/null +++ b/src/content/docs/ja/reference/errors/only-response-can-be-returned.mdx @@ -0,0 +1,28 @@ +--- +title: Invalid type returned by Astro page. +i18nReady: true +githubURL: https://github.com/withastro/astro/blob/main/packages/astro/src/core/errors/errors-data.ts +--- + +> ルーティングで`RETURNED_VALUE`が返されました。AstroファイルからはResponseのみ返せます。 + +## 何が問題か? + +Astroファイル内で返せるのは[Response](https://developer.mozilla.org/ja/docs/Web/API/Response)のインスタンスのみです。 + +```astro title="pages/login.astro" +--- +return new Response(null, { + status: 404, + statusText: 'Not found' +}); + +// または、リダイレクトの場合、Astro.redirectもResponseのインスタンスを返します +return Astro.redirect('/login'); +--- +``` + +**以下も参照してください:** +- [Response](/ja/guides/server-side-rendering/#response) + + From 5f0545e312045171b17a6f45c5d953f0db6d1141 Mon Sep 17 00:00:00 2001 From: Shinya Fujino Date: Tue, 22 Aug 2023 02:40:55 +0900 Subject: [PATCH 03/10] i18n(ja): Add no-matching-static-path-found.mdx (#4291) Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> --- .../errors/no-matching-static-path-found.mdx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/content/docs/ja/reference/errors/no-matching-static-path-found.mdx diff --git a/src/content/docs/ja/reference/errors/no-matching-static-path-found.mdx b/src/content/docs/ja/reference/errors/no-matching-static-path-found.mdx new file mode 100644 index 0000000000000..9a1ecc3e832aa --- /dev/null +++ b/src/content/docs/ja/reference/errors/no-matching-static-path-found.mdx @@ -0,0 +1,16 @@ +--- +title: No static path found for requested path. +i18nReady: true +githubURL: https://github.com/withastro/astro/blob/main/packages/astro/src/core/errors/errors-data.ts +--- + +> **NoMatchingStaticPathFound**: `getStaticPaths()`のルーティングパターンがマッチしましたが、リクエストされたパス`PATH_NAME`に対応する静的パスが見つかりませんでした。 + +## 何が問題か? + +[動的ルーティング](/ja/core-concepts/routing/#動的ルーティング)がマッチしましたが、リクエストされたパラメーターに対応するパスが見つかりませんでした。これは多くの場合、生成されたパスまたはリクエストされたパスのどちらかにタイポがあることが原因です。 + +**以下も参照してください:** +- [getStaticPaths()](/ja/reference/api-reference/#getstaticpaths) + + From 0a662cd54ad2f56ce1fb9fba4f7b50d60842e0a5 Mon Sep 17 00:00:00 2001 From: Shinya Fujino Date: Tue, 22 Aug 2023 02:51:08 +0900 Subject: [PATCH 04/10] i18n(ja): Add static-client-address-not-available.mdx (#4290) * i18n(ja): Add static-client-address-not-available.mdx * Update src/content/docs/ja/reference/errors/static-client-address-not-available.mdx Co-authored-by: Kyosuke Nakamura --------- Co-authored-by: Kyosuke Nakamura Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> --- .../static-client-address-not-available.mdx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/content/docs/ja/reference/errors/static-client-address-not-available.mdx diff --git a/src/content/docs/ja/reference/errors/static-client-address-not-available.mdx b/src/content/docs/ja/reference/errors/static-client-address-not-available.mdx new file mode 100644 index 0000000000000..c4a15c3ad2b56 --- /dev/null +++ b/src/content/docs/ja/reference/errors/static-client-address-not-available.mdx @@ -0,0 +1,19 @@ +--- +title: Astro.clientAddress is not available in static mode. +i18nReady: true +githubURL: https://github.com/withastro/astro/blob/main/packages/astro/src/core/errors/errors-data.ts +--- + +> **StaticClientAddressNotAvailable**: `Astro.clientAddress`は`output: 'server'`または`output: 'hybrid'`を設定している場合にのみ使用できます。SSR機能が必要な場合は、Astroの設定を更新してください。 + +## 何が問題か? + +`Astro.clientAddress`プロパティは、[サーバーサイドレンダリング](/ja/guides/server-side-rendering/)が有効な場合にのみ使用できます。 + +静的モードでユーザーのIPアドレスを取得するには、[クライアントサイドスクリプト](/ja/guides/client-side-scripts/)で[Ipify](https://www.ipify.org/)などの別のAPIを使用してください。あるいは、ホスティングプロバイダーのサーバーレス関数を使用してユーザーのIPを取得できる場合もあります。 + +**以下も参照してください:** +- [プロジェクトでSSRを有効にする](/ja/guides/server-side-rendering/#プロジェクトでssrを有効にする) +- [Astro.clientAddress](/ja/reference/api-reference/#astroclientaddress) + + From fd927d28e4ac1b6d5bae12651ce78256b7152a72 Mon Sep 17 00:00:00 2001 From: Shinya Fujino Date: Tue, 22 Aug 2023 03:03:19 +0900 Subject: [PATCH 05/10] i18n(ja): Add client-address-not-available.mdx (#4289) * i18n(ja): Add client-address-not-available.mdx * oops --------- Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> --- .../errors/client-address-not-available.mdx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/content/docs/ja/reference/errors/client-address-not-available.mdx diff --git a/src/content/docs/ja/reference/errors/client-address-not-available.mdx b/src/content/docs/ja/reference/errors/client-address-not-available.mdx new file mode 100644 index 0000000000000..7c969705944ef --- /dev/null +++ b/src/content/docs/ja/reference/errors/client-address-not-available.mdx @@ -0,0 +1,17 @@ +--- +title: Astro.clientAddress is not available in current adapter. +i18nReady: true +githubURL: https://github.com/withastro/astro/blob/main/packages/astro/src/core/errors/errors-data.ts +--- + +> **ClientAddressNotAvailable**: `Astro.clientAddress`は`ADAPTER_NAME`アダプターでは利用できません。アダプターにサポートを追加するためにIssueを作成してください。 + +## 何が問題か? + +使用しているアダプターは、`Astro.clientAddress`をサポートしていません。 + +**以下も参照してください:** +- [公式インテグレーション](/ja/guides/integrations-guide/#公式インテグレーション) +- [Astro.clientAddress](/ja/reference/api-reference/#astroclientaddress) + + From 96688c4e17b6e740ae8b1ffc1a63176db744cb7d Mon Sep 17 00:00:00 2001 From: Shinya Fujino Date: Tue, 22 Aug 2023 03:16:24 +0900 Subject: [PATCH 06/10] i18n(ja): Add astro-syntax.mdx (#4285) * i18n(ja): Add astro-syntax.mdx * Fix broken links * Update src/content/docs/ja/core-concepts/astro-syntax.mdx Co-authored-by: Kyosuke Nakamura * Update src/content/docs/ja/core-concepts/astro-syntax.mdx Co-authored-by: Kyosuke Nakamura * Update src/content/docs/ja/core-concepts/astro-syntax.mdx Co-authored-by: Kyosuke Nakamura * Update src/content/docs/ja/core-concepts/astro-syntax.mdx --------- Co-authored-by: Kyosuke Nakamura Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> --- .../docs/ja/core-concepts/astro-syntax.mdx | 176 ++++++++++++++++++ .../docs/ja/guides/troubleshooting.mdx | 2 +- src/content/docs/ja/tutorial/2-pages/3.mdx | 2 +- src/content/docs/ja/tutorial/2-pages/4.mdx | 2 +- src/content/docs/ja/tutorial/2-pages/5.mdx | 2 +- 5 files changed, 180 insertions(+), 4 deletions(-) create mode 100644 src/content/docs/ja/core-concepts/astro-syntax.mdx diff --git a/src/content/docs/ja/core-concepts/astro-syntax.mdx b/src/content/docs/ja/core-concepts/astro-syntax.mdx new file mode 100644 index 0000000000000..39e844339aeba --- /dev/null +++ b/src/content/docs/ja/core-concepts/astro-syntax.mdx @@ -0,0 +1,176 @@ +--- +title: Astroの構文 +description: .astroコンポーネント構文の紹介。 +i18nReady: true +--- + +**HTMLを知っていれば、最初のAstroコンポーネントを書くには十分です。** + +Astroコンポーネントの構文はHTMLのスーパーセットです。この構文は[HTMLやJSXを書いたことのある人にとって親しみやすいように設計され](#astroとjsxの違い)、コンポーネントやJavaScriptの式がサポートされています。 + +## JSXライクな式 + +Astroコンポーネントのフロントマターのコードフェンス(`---`)の間に、JavaScriptのローカル変数を定義できます。そして、JSXライクな式を使って、変数をコンポーネントのHTMLテンプレートに注入できます。 + +:::note[動的 vs リアクティブ] +この方法により、フロントマターで計算された**動的**な値をテンプレートに含めることができます。しかし、一度含められたこれらの値は**リアクティブ**ではなく、変化することはありません。Astroコンポーネントは、レンダリングの際に一度だけ実行されるテンプレートです。 + +以下で[AstroとJSXの違い](#astroとjsxの違い)に関する例をいくつか紹介します。 +::: + +### 変数 + +ローカル変数は、波括弧の構文を使ってHTMLに追加できます。 + +```astro title="src/components/Variables.astro" "{name}" +--- +const name = "Astro"; +--- +
+

Hello {name}!

+
+``` + +### 動的属性 + +ローカル変数を波括弧で囲むことで、HTML要素とコンポーネントの両方に属性値を渡せます。 + +```astro title="src/components/DynamicAttributes.astro" "{name}" "${name}" +--- +const name = "Astro"; +--- +

属性を式で指定できます

+ + +``` + +:::caution +HTML属性は文字列に変換されるため、関数やオブジェクトをHTML要素に渡すことはできません。たとえば、Astroコンポーネント内のHTML要素にイベントハンドラを割り当てることはできません。 + +```astro +--- +// dont-do-this.astro +function handleClick () { + console.log("ボタンがクリックされました!"); +} +--- + + +``` + +代わりに、通常のJavaScriptと同じように、クライアントサイドスクリプトを使用してイベントハンドラを追加します。 + +```astro +--- +// do-this-instead.astro +--- + + +``` +::: + +### 動的HTML + +ローカル変数をJSXのような関数で使用して、動的に生成されるHTML要素を作成できます。 + +```astro title="src/components/DynamicHtml.astro" "{item}" +--- +const items = ["犬", "猫", "カモノハシ"]; +--- +
    + {items.map((item) => ( +
  • {item}
  • + ))} +
+``` + +Astroは、JSXと同様に論理演算子と三項演算子を使用して、HTMLを条件に応じて表示できます。 + +```astro title="src/components/ConditionalHtml.astro" "visible" +--- +const visible = true; +--- +{visible &&

表示!

} + +{visible ?

表示!

:

あるいはこちらを表示!

} +``` + +### 動的タグ + +HTMLタグ名またはインポートされたコンポーネントを変数に設定することで、動的タグも使用できます。 + +```astro title="src/components/DynamicTags.astro" /Element|(?Hello! + +``` + +動的タグを使用する場合は、以下の点に注意してください。 + +- **変数名は大文字で始める必要があります。** たとえば、`element`ではなく`Element`を使用します。そうしないと、Astroは変数名をそのままHTMLタグとしてレンダリングしようとします。 + +- **ハイドレーションディレクティブは使えません。**[`client:*`ハイドレーションディレクティブ](/ja/core-concepts/framework-components/#インタラクティブなコンポーネント)を使用する場合、Astroはバンドルする対象のコンポーネントを知る必要がありますが、動的タグパターンではこれが機能しなくなるためです。 + +### フラグメント + +Astroでは、` `または短縮形の`<> `を使用できます。 + +フラグメントは、次の例のように、[`set:*`ディレクティブ](/ja/reference/directives-reference/#sethtml)を使用する際にラッパー要素を避けるために役立ちます。 + +```astro title="src/components/SetHtml.astro" "Fragment" +--- +const htmlString = '

生のHTMLコンテンツ

'; +--- + +``` + +### AstroとJSXの違い + +Astroコンポーネントの構文はHTMLのスーパーセットです。HTMLやJSXを書いたことのある人にとって親しみやすいように設計されてはいますが、`.astro`ファイルとJSXの間にはいくつかの重要な違いがあります。 + +#### 属性 + +Astroでは、JSXで使用されている`camelCase`ではなく、すべてのHTML属性に標準の`kebab-case`形式を使用します。これは、Reactではサポートされていない`class`でも同様です。 + +```jsx del={1} ins={2} title="example.astro" +
+
+``` + +#### 複数の要素 + +Astroコンポーネントテンプレートは複数の要素をレンダリングできます。その際、JavaScriptやJSXとは異なり、全体を単一の`
`や`<>`で囲む必要はありません。 + +```astro title="src/components/RootElements.astro" +--- +// 複数の要素を含むテンプレート +--- +

全体をコンテナ要素で囲む必要はありません。

+

Astroではテンプレート内に複数のルート要素を置けます。

+``` + +#### コメント + +Astroでは、標準のHTMLコメントまたはJavaScriptスタイルのコメントを使用できます。 + +```astro title="example.astro" +--- +--- + +{/* JSのコメント構文も有効です */} +``` + +:::caution +HTMLスタイルのコメントはブラウザのDOMに含まれますが、JSのコメントはスキップされます。TODOメッセージやその他の開発専用の説明を残したい場合は、JavaScriptスタイルのコメントを使用することをお勧めします。 +::: + + diff --git a/src/content/docs/ja/guides/troubleshooting.mdx b/src/content/docs/ja/guides/troubleshooting.mdx index 7cd8eb4ada8b4..e3bb7a0fa5302 100644 --- a/src/content/docs/ja/guides/troubleshooting.mdx +++ b/src/content/docs/ja/guides/troubleshooting.mdx @@ -58,7 +58,7 @@ Astroテンプレートにインポートして使用しているコンポーネ それから、import文を確認してください。 - インポートのリンク先が違っていませんか?(importパスを確認してください) -- インポートしたコンポーネントと同じ名前になっていますか?(コンポーネント名と、[`.Astro`構文にしたがっていること](/ja/core-concepts/astro-syntax/#differences-between-astro-and-jsx)を確認してください。) +- インポートしたコンポーネントと同じ名前になっていますか?(コンポーネント名と、[`.Astro`構文にしたがっていること](/ja/core-concepts/astro-syntax/#astroとjsxの違い)を確認してください。) - インポート時に拡張子が含まれていますか?(インポートしたファイルに拡張子が含まれているか確認してください。例: `.Astro`、`.md`、`.vue`、`.svelte`。 注: `.js(x)`と`.ts(x)`のファイルのみ、拡張子は必要ありません。) ### コンポーネントがインタラクティブでない diff --git a/src/content/docs/ja/tutorial/2-pages/3.mdx b/src/content/docs/ja/tutorial/2-pages/3.mdx index 99f6cc03afba4..dc1651da06bce 100644 --- a/src/content/docs/ja/tutorial/2-pages/3.mdx +++ b/src/content/docs/ja/tutorial/2-pages/3.mdx @@ -277,4 +277,4 @@ const student = false; ### 参考 -- [Astroにおける動的な式](/ja/core-concepts/astro-syntax/#jsx-like-expressions) +- [Astroにおける動的な式](/ja/core-concepts/astro-syntax/#jsxライクな式) diff --git a/src/content/docs/ja/tutorial/2-pages/4.mdx b/src/content/docs/ja/tutorial/2-pages/4.mdx index 2d06b671e6f6a..17047b736c923 100644 --- a/src/content/docs/ja/tutorial/2-pages/4.mdx +++ b/src/content/docs/ja/tutorial/2-pages/4.mdx @@ -196,7 +196,7 @@ const textCase = "uppercase"; ### Resources -- [Astro構文とJSXの比較](/ja/core-concepts/astro-syntax/#differences-between-astro-and-jsx) +- [Astro構文とJSXの比較](/ja/core-concepts/astro-syntax/#astroとjsxの違い) - [Astroの`