Amir Pourmand
2025-09-17 7a77f54e50146b05bea62934f417016bbd81b794
fix(i18n): Add RTL Detection based on Config Set Language (#2100)

* Add rtl automatic detection to base.scss

* Implement RTL support for Arabic and Persian locales and update HTML direction attribute in renderPage component

* Update HTML direction attribute in renderPage component to prioritize frontmatter dir value

* Refactor renderPage component to simplify HTML direction attribute assignment by removing frontmatter dir fallback
4 files modified
6 ■■■■ changed files
quartz/components/renderPage.tsx 3 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/ar-SA.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/definition.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/fa-IR.ts 1 ●●●● patch | view | raw | blame | history
quartz/components/renderPage.tsx
@@ -231,8 +231,9 @@
  )
  const lang = componentData.fileData.frontmatter?.lang ?? cfg.locale?.split("-")[0] ?? "en"
  const direction = i18n(cfg.locale).direction ?? "ltr"
  const doc = (
    <html lang={lang}>
    <html lang={lang} dir={direction}>
      <Head {...componentData} />
      <body data-slug={slug}>
        <div id="quartz-root" class="page">
quartz/i18n/locales/ar-SA.ts
@@ -5,6 +5,7 @@
    title: "غير معنون",
    description: "لم يتم تقديم أي وصف",
  },
  direction: "rtl" as const,
  components: {
    callout: {
      note: "ملاحظة",
quartz/i18n/locales/definition.ts
@@ -21,6 +21,7 @@
    title: string
    description: string
  }
  direction?: "ltr" | "rtl"
  components: {
    callout: CalloutTranslation
    backlinks: {
quartz/i18n/locales/fa-IR.ts
@@ -5,6 +5,7 @@
    title: "بدون عنوان",
    description: "توضیح خاصی اضافه نشده است",
  },
  direction: "rtl" as const,
  components: {
    callout: {
      note: "یادداشت",