localize breadcrubs rootName

This commit is contained in:
Jani1XY 2026-01-25 15:11:08 +01:00
parent 25a6747d7d
commit be1cb3e350
5 changed files with 16 additions and 2 deletions

View File

@ -3,6 +3,7 @@ import breadcrumbsStyle from "./styles/breadcrumbs.scss"
import { FullSlug, SimpleSlug, resolveRelative, simplifySlug } from "../util/path" import { FullSlug, SimpleSlug, resolveRelative, simplifySlug } from "../util/path"
import { classNames } from "../util/lang" import { classNames } from "../util/lang"
import { trieFromAllFiles } from "../util/ctx" import { trieFromAllFiles } from "../util/ctx"
import { i18n } from "../i18n"
type CrumbData = { type CrumbData = {
displayName: string displayName: string
@ -30,7 +31,7 @@ interface BreadcrumbOptions {
const defaultOptions: BreadcrumbOptions = { const defaultOptions: BreadcrumbOptions = {
spacerSymbol: "", spacerSymbol: "",
rootName: "Home", rootName: "",
resolveFrontmatterTitle: true, resolveFrontmatterTitle: true,
showCurrentPage: true, showCurrentPage: true,
} }
@ -49,6 +50,7 @@ export default ((opts?: Partial<BreadcrumbOptions>) => {
allFiles, allFiles,
displayClass, displayClass,
ctx, ctx,
cfg,
}: QuartzComponentProps) => { }: QuartzComponentProps) => {
const trie = (ctx.trie ??= trieFromAllFiles(allFiles)) const trie = (ctx.trie ??= trieFromAllFiles(allFiles))
const slugParts = fileData.slug!.split("/") const slugParts = fileData.slug!.split("/")
@ -61,7 +63,7 @@ export default ((opts?: Partial<BreadcrumbOptions>) => {
const crumbs: CrumbData[] = pathNodes.map((node, idx) => { const crumbs: CrumbData[] = pathNodes.map((node, idx) => {
const crumb = formatCrumb(node.displayName, fileData.slug!, simplifySlug(node.slug)) const crumb = formatCrumb(node.displayName, fileData.slug!, simplifySlug(node.slug))
if (idx === 0) { if (idx === 0) {
crumb.displayName = options.rootName crumb.displayName = options.rootName !== "" ? options.rootName : i18n(cfg.locale).components.breadcrumbs.rootName;
} }
// For last node (current page), set empty path // For last node (current page), set empty path

View File

@ -62,6 +62,9 @@ export interface Translation {
contentMeta: { contentMeta: {
readingTime: (variables: { minutes: number }) => string readingTime: (variables: { minutes: number }) => string
} }
breadcrumbs: {
rootName: 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`,
}, },
breadcrumbs: {
rootName: "Home"
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
breadcrumbs: {
rootName: "Home"
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} perces olvasás`, readingTime: ({ minutes }) => `${minutes} perces olvasás`,
}, },
breadcrumbs: {
rootName: "Otthon"
},
}, },
pages: { pages: {
rss: { rss: {