feat: add page count component

新しいPageCountコンポーネントを追加し、各言語のローカライズファイルにページ数の翻訳を追加しました。
This commit is contained in:
Keisuke ANDO 2025-05-30 08:37:25 +09:00
parent 096ef220dc
commit d1aae46e87
31 changed files with 124 additions and 10 deletions

View File

@ -0,0 +1,26 @@
import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
import { classNames } from "../util/lang"
import { i18n } from "../i18n"
const PageCount: QuartzComponent = ({
allFiles,
displayClass,
cfg,
}: QuartzComponentProps) => {
const count = allFiles.length
return (
<div class={classNames(displayClass, "page-count")}>
<p>{i18n(cfg.locale).components.pageCount.totalItems({ count })}</p>
</div>
)
}
PageCount.css = `
.page-count {
padding: 0.5rem;
font-size: 0.9rem;
color: var(--secondary);
}
`
export default (() => PageCount) satisfies QuartzComponentConstructor

View File

@ -23,6 +23,7 @@ import Breadcrumbs from "./Breadcrumbs"
import Comments from "./Comments" import Comments from "./Comments"
import Flex from "./Flex" import Flex from "./Flex"
import ConditionalRender from "./ConditionalRender" import ConditionalRender from "./ConditionalRender"
import PageCount from "./PageCount"
export { export {
ArticleTitle, ArticleTitle,
@ -50,4 +51,5 @@ export {
Comments, Comments,
Flex, Flex,
ConditionalRender, ConditionalRender,
PageCount,
} }

View File

@ -64,6 +64,9 @@ export default {
? `دقيقتان للقراءة` ? `دقيقتان للقراءة`
: `${minutes} دقائق للقراءة`, : `${minutes} دقائق للقراءة`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} ملاحظات`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `Es llegeix en ${minutes} min`, readingTime: ({ minutes }) => `Es llegeix en ${minutes} min`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} notes`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min čtení`, readingTime: ({ minutes }) => `${minutes} min čtení`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} poznámek`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} Seiten`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -61,6 +61,9 @@ export interface Translation {
contentMeta: { contentMeta: {
readingTime: (variables: { minutes: number }) => string readingTime: (variables: { minutes: number }) => string
} }
pageCount: {
totalItems: (variables: { count: number }) => string
}
} }
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} notes`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} notes`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `Se lee en ${minutes} min`, readingTime: ({ minutes }) => `Se lee en ${minutes} min`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} notas`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `زمان تقریبی مطالعه: ${minutes} دقیقه`, readingTime: ({ minutes }) => `زمان تقریبی مطالعه: ${minutes} دقیقه`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} یادداشت`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min lukuaika`, readingTime: ({ minutes }) => `${minutes} min lukuaika`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} muistiinpanoa`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min de lecture`, readingTime: ({ minutes }) => `${minutes} min de lecture`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} notes`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -57,7 +57,10 @@ export default {
title: "Tartalomjegyzék", title: "Tartalomjegyzék",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} perces olvasás`, readingTime: ({ minutes }) => `${minutes} perc olvasás`,
},
pageCount: {
totalItems: ({ count }) => `${count} jegyzet`,
}, },
}, },
pages: { pages: {

View File

@ -57,7 +57,10 @@ export default {
title: "Daftar Isi", title: "Daftar Isi",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} menit baca`, readingTime: ({ minutes }) => `${minutes} mnt baca`,
},
pageCount: {
totalItems: ({ count }) => `${count} catatan`,
}, },
}, },
pages: { pages: {

View File

@ -57,7 +57,10 @@ export default {
title: "Tabella dei contenuti", title: "Tabella dei contenuti",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} minuti`, readingTime: ({ minutes }) => `${minutes} min di lettura`,
},
pageCount: {
totalItems: ({ count }) => `${count} note`,
}, },
}, },
pages: { pages: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
pageCount: {
totalItems: ({ count }) => `${count}件のページ`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -57,7 +57,10 @@ export default {
title: "목차", title: "목차",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes}분 분량`,
},
pageCount: {
totalItems: ({ count }) => `${count}건의 페이지`,
}, },
}, },
pages: { pages: {

View File

@ -57,7 +57,10 @@ export default {
title: "Turinys", title: "Turinys",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min skaitymo`, readingTime: ({ minutes }) => `${minutes} min. skaitymo`,
},
pageCount: {
totalItems: ({ count }) => `${count} užrašai`,
}, },
}, },
pages: { pages: {

View File

@ -57,7 +57,10 @@ export default {
title: "Oversikt", title: "Oversikt",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min lesning`, readingTime: ({ minutes }) => `${minutes} min lesetid`,
},
pageCount: {
totalItems: ({ count }) => `${count} notater`,
}, },
}, },
pages: { pages: {

View File

@ -57,8 +57,10 @@ export default {
title: "Inhoudsopgave", title: "Inhoudsopgave",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => readingTime: ({ minutes }) => `${minutes} min lezen`,
minutes === 1 ? "1 minuut leestijd" : `${minutes} minuten leestijd`, },
pageCount: {
totalItems: ({ count }) => `${count} notities`,
}, },
}, },
pages: { pages: {

View File

@ -57,7 +57,10 @@ export default {
title: "Spis treści", title: "Spis treści",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min. czytania `, readingTime: ({ minutes }) => `${minutes} min czytania`,
},
pageCount: {
totalItems: ({ count }) => `${count} notatki`,
}, },
}, },
pages: { pages: {

View File

@ -57,7 +57,10 @@ export default {
title: "Sumário", title: "Sumário",
}, },
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `Leitura de ${minutes} min`, readingTime: ({ minutes }) => `${minutes} min de leitura`,
},
pageCount: {
totalItems: ({ count }) => `${count} notas`,
}, },
}, },
pages: { pages: {

View File

@ -60,6 +60,9 @@ export default {
readingTime: ({ minutes }) => readingTime: ({ minutes }) =>
minutes == 1 ? `lectură de 1 minut` : `lectură de ${minutes} minute`, minutes == 1 ? `lectură de 1 minut` : `lectură de ${minutes} minute`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} notițe`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -60,6 +60,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `время чтения ~${minutes} мин.`, readingTime: ({ minutes }) => `время чтения ~${minutes} мин.`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} замет${getForm(count, "ка", "ки", "ок")}`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `อ่านราว ${minutes} นาที`, readingTime: ({ minutes }) => `อ่านราว ${minutes} นาที`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} บันทึก`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} dakika okuma süresi`, readingTime: ({ minutes }) => `${minutes} dakika okuma süresi`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} notlar`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} хв читання`, readingTime: ({ minutes }) => `${minutes} хв читання`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} нотатки`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `đọc ${minutes} phút`, readingTime: ({ minutes }) => `đọc ${minutes} phút`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} bài viết`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes}分钟阅读`, readingTime: ({ minutes }) => `${minutes}分钟阅读`,
}, },
pageCount: {
totalItems: ({ count }) => `${count}条笔记`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `閱讀時間約 ${minutes} 分鐘`, readingTime: ({ minutes }) => `閱讀時間約 ${minutes} 分鐘`,
}, },
pageCount: {
totalItems: ({ count }) => `${count} 條筆記`,
},
}, },
pages: { pages: {
rss: { rss: {