From 2331fac3aae6c4ea058c12a62492b0f96b99a33b Mon Sep 17 00:00:00 2001 From: liruifengv Date: Thu, 2 Oct 2025 17:41:55 +0800 Subject: [PATCH] i18n(zh-cn): Update `routing-reference.mdx` --- .../zh-cn/reference/routing-reference.mdx | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/content/docs/zh-cn/reference/routing-reference.mdx b/src/content/docs/zh-cn/reference/routing-reference.mdx index f73b38971e97d..3a7b14c58bca2 100644 --- a/src/content/docs/zh-cn/reference/routing-reference.mdx +++ b/src/content/docs/zh-cn/reference/routing-reference.mdx @@ -170,6 +170,36 @@ const { post } = Astro.props;

{id}: {post.name}

``` +### `routePattern` + +

+ +**类型:** `string`
+ +

+ +[`getStaticPaths()`](#getstaticpaths) 选项中的一个属性,用于以字符串形式访问当前 [`routePattern`](/zh-cn/reference/api-reference/#routepattern)。 + +该功能提供来自 [Astro 渲染上下文](/zh-cn/reference/api-reference/) 的数据,这些数据在 `getStaticPaths()` 作用域内通常无法获取,可用于计算每个页面路由的 `params` 和 `props`。 + +与反映页面显式值(例如 `/fr/fichiers/article-1/` )的 `params` 不同, `routePattern` 始终反映文件路径中的原始动态段定义(例如 `/[...locale]/[files]/[slug]` )。 + +以下示例展示了如何通过将 `routePattern` 传递给自定义 `getLocalizedData()` 辅助函数来本地化路由段并返回静态路径数组。[params](/zh-cn/reference/routing-reference/#params) 对象将为每个路由段(`locale`、`files` 和 `slug`)设置明确值,随后这些值将用于生成路由,并可通过 `Astro.params` 在页面模板中使用。 + +```astro title="src/pages/[...locale]/[files]/[slug].astro" "routePattern" "getLocalizedData" +--- +import { getLocalizedData } from "../../../utils/i18n"; +export async function getStaticPaths({ routePattern }) { + const response = await fetch('...'); + const data = await response.json(); + console.log(routePattern); // [...locale]/[files]/[slug] + // 结合 `routePattern` 调用你的自定义辅助函数以生成静态路径 + return data.flatMap((file) => getLocalizedData(file, routePattern)); +} +const { locale, files, slug } = Astro.params; +--- +``` + ### `paginate()`