From cdd0be2aa8c6e0a6d97779f3db3072952b54bf13 Mon Sep 17 00:00:00 2001
From: Jiangnan Li <lijn101@nenu.edu.cn>
Date: Sun, 08 Jun 2025 09:23:01 +0000
Subject: [PATCH] feat(giscus): expose language option for Comments component (#2012)

---
 quartz/components/Comments.tsx               |    2 ++
 quartz/components/scripts/comments.inline.ts |    3 ++-
 docs/features/comments.md                    |    6 ++++++
 3 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/docs/features/comments.md b/docs/features/comments.md
index 4803773..6e5a25c 100644
--- a/docs/features/comments.md
+++ b/docs/features/comments.md
@@ -45,6 +45,8 @@
       category: 'Announcements',
       // from data-category-id
       categoryId: 'DIC_kwDOFxRnmM4B-Xg6',
+      // from data-lang
+      lang: 'en'
     }
   }),
 ],
@@ -90,6 +92,10 @@
     // where to put the comment input box relative to the comments
     // defaults to 'bottom'
     inputPosition?: "top" | "bottom"
+
+    // set your preference language here
+    // defaults to 'en'
+    lang?: string
   }
 }
 ```
diff --git a/quartz/components/Comments.tsx b/quartz/components/Comments.tsx
index 0bfd82d..a731521 100644
--- a/quartz/components/Comments.tsx
+++ b/quartz/components/Comments.tsx
@@ -17,6 +17,7 @@
     strict?: boolean
     reactionsEnabled?: boolean
     inputPosition?: "top" | "bottom"
+    lang?: string
   }
 }
 
@@ -50,6 +51,7 @@
         data-theme-url={
           opts.options.themeUrl ?? `https://${cfg.baseUrl ?? "example.com"}/static/giscus`
         }
+        data-lang={opts.options.lang ?? "en"}
       ></div>
     )
   }
diff --git a/quartz/components/scripts/comments.inline.ts b/quartz/components/scripts/comments.inline.ts
index c54230f..2b876bf 100644
--- a/quartz/components/scripts/comments.inline.ts
+++ b/quartz/components/scripts/comments.inline.ts
@@ -55,6 +55,7 @@
     strict: string
     reactionsEnabled: string
     inputPosition: "top" | "bottom"
+    lang: string
   }
 }
 
@@ -78,7 +79,7 @@
   giscusScript.setAttribute("data-strict", giscusContainer.dataset.strict)
   giscusScript.setAttribute("data-reactions-enabled", giscusContainer.dataset.reactionsEnabled)
   giscusScript.setAttribute("data-input-position", giscusContainer.dataset.inputPosition)
-
+  giscusScript.setAttribute("data-lang", giscusContainer.dataset.lang)
   const theme = document.documentElement.getAttribute("saved-theme")
   if (theme) {
     giscusScript.setAttribute("data-theme", getThemeUrl(getThemeName(theme)))

--
Gitblit v1.10.0