From 7323f6ff87f3a0bd1a65fe37be49c14f6b8b5092 Mon Sep 17 00:00:00 2001 From: Kenzo-Wada Date: Sat, 11 Oct 2025 16:05:30 +0900 Subject: [PATCH 1/2] i18n(ja): added translation for `route-data-reference` --- .../content/docs/ja/reference/route-data.mdx | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 docs/src/content/docs/ja/reference/route-data.mdx diff --git a/docs/src/content/docs/ja/reference/route-data.mdx b/docs/src/content/docs/ja/reference/route-data.mdx new file mode 100644 index 00000000000..dc32ba41b64 --- /dev/null +++ b/docs/src/content/docs/ja/reference/route-data.mdx @@ -0,0 +1,206 @@ +--- +title: ルートデータ +description: Starlight のルートデータオブジェクトに関する完全なリファレンスドキュメントです。 +--- + +Starlight のルートデータオブジェクトには、現在のページに関する情報が含まれています。 +Starlight のデータモデルがどのように機能するかについては、[「ルートデータ」ガイド](/ja/guides/route-data/) を参照してください。 + +Astro コンポーネント内では、`Astro.locals.starlightRoute` からルートデータにアクセスできます。 + +```astro {4} +--- +// src/components/Custom.astro + +const { hasSidebar } = Astro.locals.starlightRoute; +--- +``` + +[ルートミドルウェア](/ja/guides/route-data/#customizing-route-data) 内では、ミドルウェア関数に渡される context オブジェクトからルートデータにアクセスします。 + +```ts {5} +// src/routeData.ts +import { defineRouteMiddleware } from '@astrojs/starlight/route-data'; + +export const onRequest = defineRouteMiddleware((context) => { + const { hasSidebar } = context.locals.starlightRoute; +}); +``` + +## `starlightRoute` + +`starlightRoute` オブジェクトには、次のプロパティがあります。 + +### `dir` + +**型:** `'ltr' | 'rtl'` + +ページの文字方向。 + +### `lang` + +**型:** `string` + +このページのロケールを示す BCP-47 言語タグ。例: `en`, `zh-CN`, `pt-BR`。 + +### `locale` + +**型:** `string | undefined` + +言語が提供されるベースパス。ルートロケールスラッグの場合は `undefined`。 + +### `siteTitle` + +**型:** `string` + +このページのロケールに対応するサイトタイトル。 + +### `siteTitleHref` + +**型:** `string` + +サイトタイトルの `href` 属性に設定される値で、トップページへのリンクです。 +多言語サイトの場合は現在のロケールを含みます(例: `/en/` や `/zh-cn/`)。 + +### `slug` + +**型:** `string` + +コンテンツファイル名から生成されたこのページのスラッグ。 + +このプロパティは非推奨であり、今後のバージョンで削除される予定です。 +[Starlight の `docsLoader`](/ja/manual-setup/#configure-content-collections) を使用して新しいコンテンツレイヤー API に移行し、代わりに [`id`](#id) プロパティを使用してください。 + +### `id` + +**型:** `string` + +[`legacy.collections`](https://docs.astro.build/ja/reference/legacy-flags/#collections) フラグを使用している場合は、コンテンツファイル名に基づくこのページの一意の ID、またはスラッグ。 + +### `isFallback` + +**型:** `boolean | undefined` + +現在の言語で未翻訳のページが既定ロケールのフォールバックコンテンツを使用している場合に `true`。 +多言語サイトでのみ使用されます。 + +### `entryMeta` + +**型:** `{ dir: 'ltr' | 'rtl'; lang: string }` + +ページコンテンツのロケールメタデータ。 +ページがフォールバックコンテンツを使用している場合、トップレベルのロケール値とは異なることがあります。 + +### `entry` + +現在のページに対応する Astro コンテンツコレクションのエントリ。 +現在のページの frontmatter 値は `entry.data` に含まれます。 + +```ts +entry: { + data: { + title: string; + description: string | undefined; + // その他の値 + } +} +``` + +このオブジェクトの構造については、[Astro の Collection Entry Type](https://docs.astro.build/ja/reference/modules/astro-content/#collectionentry) リファレンスを参照してください。 + +### `sidebar` + +**型:** `SidebarEntry[]` + +このページに対応するサイトナビゲーションサイドバーのエントリ。 + +### `hasSidebar` + +**型:** `boolean` + +このページでサイドバーを表示するかどうか。 + +### `pagination` + +**型:** `{ prev?: Link; next?: Link }` + +サイドバーが有効な場合、前後のページへのリンク。 + +### `toc` + +**型:** `{ minHeadingLevel: number; maxHeadingLevel: number; items: TocItem[] } | undefined` + +このページの目次(有効な場合)。 + +### `headings` + +**型:** `{ depth: number; slug: string; text: string }[]` + +現在のページから抽出されたすべての Markdown 見出しの配列。 +Starlight の設定に従う目次コンポーネントを作成したい場合は、代わりに [`toc`](#toc) を使用してください。 + +### `lastUpdated` + +**型:** `Date | undefined` + +このページが最後に更新された日時を表す JavaScript の `Date` オブジェクト(有効な場合)。 + +### `editUrl` + +**型:** `URL | undefined` + +このページを編集できるアドレスの `URL` オブジェクト(有効な場合)。 + +### `head` + +**型:** [`HeadConfig[]`](/ja/reference/configuration/#headconfig) + +現在のページの `` に含めるすべてのタグの配列。 +`` や `<meta charset="utf-8">` などの重要なタグが含まれます。 + +## ユーティリティ + +### `defineRouteMiddleware()` + +ルートミドルウェアモジュールに型を付けるには、`defineRouteMiddleware()` ユーティリティを使用します。 + +```ts "defineRouteMiddleware" +// src/routeData.ts +import { defineRouteMiddleware } from '@astrojs/starlight/route-data'; + +export const onRequest = defineRouteMiddleware((context) => { + // ... +}); +``` + +### `StarlightRouteData` 型 + +Starlight のルートデータを扱うコードを書く場合、`StarlightRouteData` 型をインポートして +`Astro.locals.starlightRoute` の構造と一致させることができます。 + +次の例では、`usePageTitleInTOC()` 関数がルートデータを更新し、目次内の最初の項目ラベルをデフォルトの「Overview」から現在のページタイトルに置き換えます。 +`StarlightRouteData` 型を使うことで、ルートデータの変更が正しいかどうかを検証できます。 + +```ts "StarlightRouteData" +// src/route-utils.ts +import type { StarlightRouteData } from '@astrojs/starlight/route-data'; + +export function usePageTitleInTOC(starlightRoute: StarlightRouteData) { + const overviewLink = starlightRoute.toc?.items[0]; + if (overviewLink) { + overviewLink.text = starlightRoute.entry.data.title; + } +} +``` + +この関数は次のようにルートミドルウェアから呼び出すことができます。 + +```ts {3,6} +// src/route-middleware.ts +import { defineRouteMiddleware } from '@astrojs/starlight/route-data'; +import { usePageTitleInTOC } from './route-utils'; + +export const onRequest = defineRouteMiddleware((context) => { + usePageTitleInTOC(context.locals.starlightRoute); +}); +``` From 821fce32581732f8afbaf228eb1dc2104f64432b Mon Sep 17 00:00:00 2001 From: Kenzo-Wada <used.acormhib@gmail.com> Date: Sat, 11 Oct 2025 16:24:08 +0900 Subject: [PATCH 2/2] fix broken links --- docs/src/content/docs/ja/reference/route-data.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/content/docs/ja/reference/route-data.mdx b/docs/src/content/docs/ja/reference/route-data.mdx index dc32ba41b64..9425083d384 100644 --- a/docs/src/content/docs/ja/reference/route-data.mdx +++ b/docs/src/content/docs/ja/reference/route-data.mdx @@ -16,7 +16,7 @@ const { hasSidebar } = Astro.locals.starlightRoute; --- ``` -[ルートミドルウェア](/ja/guides/route-data/#customizing-route-data) 内では、ミドルウェア関数に渡される context オブジェクトからルートデータにアクセスします。 +[ルートミドルウェア](/ja/guides/route-data/#ルートデータのカスタマイズ) 内では、ミドルウェア関数に渡される context オブジェクトからルートデータにアクセスします。 ```ts {5} // src/routeData.ts @@ -69,7 +69,7 @@ export const onRequest = defineRouteMiddleware((context) => { コンテンツファイル名から生成されたこのページのスラッグ。 このプロパティは非推奨であり、今後のバージョンで削除される予定です。 -[Starlight の `docsLoader`](/ja/manual-setup/#configure-content-collections) を使用して新しいコンテンツレイヤー API に移行し、代わりに [`id`](#id) プロパティを使用してください。 +[Starlight の `docsLoader`](/ja/manual-setup/#コンテンツコレクションの設定) を使用して新しいコンテンツレイヤー API に移行し、代わりに [`id`](#id) プロパティを使用してください。 ### `id`