feat(i18n): localize the min read string (#838)

* feat(i18n): localize the min read string fixes #825

* chore: format
This commit is contained in:
Alq 2024-02-11 21:43:08 +03:00 committed by GitHub
parent ab80eba794
commit 3518ca9e2a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 41 additions and 2 deletions

View File

@ -2,6 +2,7 @@ import { formatDate, getDate } from "./Date"
import { QuartzComponentConstructor, QuartzComponentProps } from "./types" import { QuartzComponentConstructor, QuartzComponentProps } from "./types"
import readingTime from "reading-time" import readingTime from "reading-time"
import { classNames } from "../util/lang" import { classNames } from "../util/lang"
import { i18n } from "../i18n"
interface ContentMetaOptions { interface ContentMetaOptions {
/** /**
@ -30,8 +31,11 @@ export default ((opts?: Partial<ContentMetaOptions>) => {
// Display reading time if enabled // Display reading time if enabled
if (options.showReadingTime) { if (options.showReadingTime) {
const { text: timeTaken, words: _words } = readingTime(text) const { minutes, words: _words } = readingTime(text)
segments.push(timeTaken) const displayedTime = i18n(cfg.locale).components.contentMeta.readingTime({
minutes: Math.ceil(minutes),
})
segments.push(displayedTime)
} }
return <p class={classNames(displayClass, "content-meta")}>{segments.join(", ")}</p> return <p class={classNames(displayClass, "content-meta")}>{segments.join(", ")}</p>

View File

@ -53,6 +53,14 @@ export default {
tableOfContents: { tableOfContents: {
title: "فهرس المحتويات", title: "فهرس المحتويات",
}, },
contentMeta: {
readingTime: ({ minutes }) =>
minutes == 1
? `دقيقة أو أقل للقراءة`
: minutes == 2
? `دقيقتان للقراءة`
: `${minutes} دقائق للقراءة`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "Inhaltsverzeichnis", title: "Inhaltsverzeichnis",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -55,6 +55,9 @@ export interface Translation {
tableOfContents: { tableOfContents: {
title: string title: string
} }
contentMeta: {
readingTime: (variables: { minutes: number }) => string
}
} }
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "Table of Contents", title: "Table of Contents",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "Tabla de Contenidos", title: "Tabla de Contenidos",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "Table des Matières", title: "Table des Matières",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "目次", title: "目次",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "Inhoudsopgave", title: "Inhoudsopgave",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "Cuprins", title: "Cuprins",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -53,6 +53,9 @@ export default {
tableOfContents: { tableOfContents: {
title: "Зміст", title: "Зміст",
}, },
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
}, },
pages: { pages: {
rss: { rss: {