diff --git a/src/pages/[...tags_tag].astro b/src/pages/[...tags_tag].astro
index ff94257..3e8d118 100644
--- a/src/pages/[...tags_tag].astro
+++ b/src/pages/[...tags_tag].astro
@@ -1,11 +1,11 @@
---
import PostList from '@/components/PostList.astro'
-import { allLocales, defaultLocale } from '@/config'
+import { allLocales, defaultLocale, moreLocales } from '@/config'
+import { getTagPath } from '@/i18n/path'
import Layout from '@/layouts/Layout.astro'
import { getAllTags, getPostsByTag } from '@/utils/content'
export async function getStaticPaths() {
- // 定义路径数组的类型
type PathItem = {
params: { tags_tag: string }
props: { tag: string, lang: string }
@@ -13,26 +13,24 @@ export async function getStaticPaths() {
const paths: PathItem[] = []
- // 默认语言的标签页面 (没有语言前缀)
+ // Default locale
const defaultTags = await getAllTags(defaultLocale)
defaultTags.forEach((tag: string) => {
paths.push({
- params: { tags_tag: `tags/${tag}` },
+ params: { tags_tag: `tags/${tag}/` },
props: { tag, lang: defaultLocale },
})
})
- // 更多语言的标签页面 (有语言前缀)
- for (const lang of allLocales) {
- if (lang !== defaultLocale) {
- const langTags = await getAllTags(lang)
- langTags.forEach((tag: string) => {
- paths.push({
- params: { tags_tag: `${lang}/tags/${tag}` },
- props: { tag, lang },
- })
+ // More locales
+ for (const lang of moreLocales) {
+ const langTags = await getAllTags(lang)
+ langTags.forEach((tag: string) => {
+ paths.push({
+ params: { tags_tag: `${lang}/tags/${tag}/` },
+ props: { tag, lang },
})
- }
+ })
}
return paths
@@ -42,22 +40,16 @@ const { tag, lang } = Astro.props
const posts = await getPostsByTag(tag, lang)
const allTags = await getAllTags(lang)
-// 获取当前标签在每种语言下是否有文章
+// Check if tag has posts in each language, return language code if exists, null if not
const tagSupportedLangs = await Promise.all(
allLocales.map(async (locale) => {
const postsInLang = await getPostsByTag(tag, locale)
return postsInLang.length > 0 ? locale : null
}),
)
-// 过滤出支持当前标签的语言列表
-const supportedLangs = tagSupportedLangs.filter(Boolean) as string[]
-// 构建标签链接
-function getTagUrl(tagName: string): string {
- return lang === defaultLocale
- ? `/tags/${tagName}/`
- : `/${lang}/tags/${tagName}/`
-}
+// Filter to get supported languages
+const supportedLangs = tagSupportedLangs.filter(Boolean) as string[]
---
@@ -65,7 +57,7 @@ function getTagUrl(tagName: string): string {