Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { NextIntlClientProvider, useLocale } from "next-intl";
import { getLocale, getTranslations } from "next-intl/server";
import { localeDirection } from "../i18n/locales";
import { baseOpenGraph } from "@/lib/locale-path";
import { docsUI } from "../i18n/fumadocs-ui";

const geistSans = Geist({
variable: "--font-geist-sans",
Expand Down Expand Up @@ -68,7 +69,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
</head>
<body className="min-h-full flex flex-col">
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem disableTransitionOnChange>
<RootProvider theme={{ enabled: false }}>
<RootProvider theme={{ enabled: false }} i18n={docsUI.provider(locale)}>
<NextIntlClientProvider>{children}</NextIntlClientProvider>
</RootProvider>
</ThemeProvider>
Expand Down
175 changes: 175 additions & 0 deletions src/i18n/fumadocs-ui.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
// Fumadocs' own UI text (search, table of contents, sidebar, code blocks…) in
// each site language. Keys are Fumadocs' (fumadocs-ui/dist/.translations);
// English is Fumadocs' default. The search dialog also sends the locale to
// /api/search, so results come from the page's language.
import { defineI18nUI } from "fumadocs-ui/i18n";
import { locales, sourceLocale } from "./locales";

const es = {
displayName: "Español",
"Ask AI(AI chat button)": "Preguntar a la IA",
"Back to Home(404 page)": "Volver al inicio",
"Choose a language(language switcher)": "Elige un idioma",
"Choose a language(language switcher)(aria-label)": "Elige un idioma",
"Close Banner(banner)(aria-label)": "Cerrar banner",
"Close Search(search dialog)(aria-label)": "Cerrar búsqueda",
"Close Sidebar(aria-label)": "Cerrar barra lateral",
"Close Sidebar(sidebar)(aria-label)": "Cerrar barra lateral",
"Collapse Sidebar(sidebar)(aria-label)": "Contraer barra lateral",
"Copied Text(code block)(aria-label)": "Texto copiado",
"Copy Anchor Link(heading anchor)(aria-label)": "Copiar enlace a la sección",
"Copy Link(accordion)(aria-label)": "Copiar enlace",
"Copy Markdown(page actions)": "Copiar Markdown",
"Copy Text(code block)(aria-label)": "Copiar texto",
"Dark(theme switcher)(aria-label)": "Oscuro",
"Default(type table)": "Predeterminado",
"Edit on GitHub(edit page)": "Editar en GitHub",
"Hide Sidebar(sidebar)": "Ocultar barra lateral",
"Last updated on(page footer)": "Última actualización:",
"Layout Tab(layout tab trigger)": "Pestaña de diseño",
"Light(theme switcher)(aria-label)": "Claro",
"Next Page(pagination)": "Página siguiente",
"No Headings(table of contents)": "Sin encabezados",
"No results found(search dialog)": "No se encontraron resultados",
"On this page(table of contents)": "En esta página",
"Open Search(search trigger)(aria-label)": "Abrir búsqueda",
"Open Sidebar(sidebar)(aria-label)": "Abrir barra lateral",
"Open in ChatGPT(page actions)": "Abrir en ChatGPT",
"Open in Claude(page actions)": "Abrir en Claude",
"Open in Cursor(page actions)": "Abrir en Cursor",
"Open in GitHub(page actions)": "Abrir en GitHub",
"Open in Scira AI(page actions)": "Abrir en Scira AI",
"Open(page actions)": "Abrir",
"Page Not Found(404 page)": "Página no encontrada",
"Parameters(type table)": "Parámetros",
"Previous Page(pagination)": "Página anterior",
"Prop(type table)": "Prop",
"Read {url}, I want to ask questions about it.(page actions)":
"Lee {url}, quiero hacer preguntas sobre ella.",
"Returns(type table)": "Devuelve",
"Search(search dialog)": "Buscar",
"Search(search trigger)": "Buscar",
"Show Sidebar(sidebar)": "Mostrar barra lateral",
"System(theme switcher)(aria-label)": "Sistema",
"Table of Contents(inline table of contents)": "Índice",
"The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.(404 page)":
"Es posible que la página que buscas se haya eliminado, haya cambiado de nombre o no esté disponible temporalmente.",
"Toggle Menu(mobile menu)(aria-label)": "Abrir o cerrar el menú",
"Toggle Theme(theme switcher)(aria-label)": "Cambiar tema",
"Type(type table)": "Tipo",
"View as Markdown(page actions)": "Ver como Markdown",
};

const ja = {
displayName: "日本語",
"Ask AI(AI chat button)": "AI に質問",
"Back to Home(404 page)": "ホームに戻る",
"Choose a language(language switcher)": "言語を選択",
"Choose a language(language switcher)(aria-label)": "言語を選択",
"Close Banner(banner)(aria-label)": "バナーを閉じる",
"Close Search(search dialog)(aria-label)": "検索を閉じる",
"Close Sidebar(aria-label)": "サイドバーを閉じる",
"Close Sidebar(sidebar)(aria-label)": "サイドバーを閉じる",
"Collapse Sidebar(sidebar)(aria-label)": "サイドバーを折りたたむ",
"Copied Text(code block)(aria-label)": "コピーしました",
"Copy Anchor Link(heading anchor)(aria-label)": "見出しへのリンクをコピー",
"Copy Link(accordion)(aria-label)": "リンクをコピー",
"Copy Markdown(page actions)": "Markdown をコピー",
"Copy Text(code block)(aria-label)": "テキストをコピー",
"Dark(theme switcher)(aria-label)": "ダーク",
"Default(type table)": "デフォルト",
"Edit on GitHub(edit page)": "GitHub で編集",
"Hide Sidebar(sidebar)": "サイドバーを隠す",
"Last updated on(page footer)": "最終更新日:",
"Layout Tab(layout tab trigger)": "レイアウトタブ",
"Light(theme switcher)(aria-label)": "ライト",
"Next Page(pagination)": "次のページ",
"No Headings(table of contents)": "見出しはありません",
"No results found(search dialog)": "結果が見つかりませんでした",
"On this page(table of contents)": "このページの内容",
"Open Search(search trigger)(aria-label)": "検索を開く",
"Open Sidebar(sidebar)(aria-label)": "サイドバーを開く",
"Open in ChatGPT(page actions)": "ChatGPT で開く",
"Open in Claude(page actions)": "Claude で開く",
"Open in Cursor(page actions)": "Cursor で開く",
"Open in GitHub(page actions)": "GitHub で開く",
"Open in Scira AI(page actions)": "Scira AI で開く",
"Open(page actions)": "開く",
"Page Not Found(404 page)": "ページが見つかりません",
"Parameters(type table)": "パラメーター",
"Previous Page(pagination)": "前のページ",
"Prop(type table)": "Prop",
"Read {url}, I want to ask questions about it.(page actions)":
"{url} を読んでください。この内容について質問したいです。",
"Returns(type table)": "戻り値",
"Search(search dialog)": "検索",
"Search(search trigger)": "検索",
"Show Sidebar(sidebar)": "サイドバーを表示",
"System(theme switcher)(aria-label)": "システム",
"Table of Contents(inline table of contents)": "目次",
"The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.(404 page)":
"お探しのページは削除されたか、名前が変更されたか、一時的に利用できない可能性があります。",
"Toggle Menu(mobile menu)(aria-label)": "メニューを開閉",
"Toggle Theme(theme switcher)(aria-label)": "テーマを切り替え",
"Type(type table)": "型",
"View as Markdown(page actions)": "Markdown で表示",
};

const ar = {
displayName: "العربية",
"Ask AI(AI chat button)": "اسأل الذكاء الاصطناعي",
"Back to Home(404 page)": "العودة إلى الرئيسية",
"Choose a language(language switcher)": "اختر لغة",
"Choose a language(language switcher)(aria-label)": "اختر لغة",
"Close Banner(banner)(aria-label)": "إغلاق الشريط",
"Close Search(search dialog)(aria-label)": "إغلاق البحث",
"Close Sidebar(aria-label)": "إغلاق الشريط الجانبي",
"Close Sidebar(sidebar)(aria-label)": "إغلاق الشريط الجانبي",
"Collapse Sidebar(sidebar)(aria-label)": "طي الشريط الجانبي",
"Copied Text(code block)(aria-label)": "تم النسخ",
"Copy Anchor Link(heading anchor)(aria-label)": "نسخ رابط القسم",
"Copy Link(accordion)(aria-label)": "نسخ الرابط",
"Copy Markdown(page actions)": "نسخ Markdown",
"Copy Text(code block)(aria-label)": "نسخ النص",
"Dark(theme switcher)(aria-label)": "داكن",
"Default(type table)": "الافتراضي",
"Edit on GitHub(edit page)": "التعديل على GitHub",
"Hide Sidebar(sidebar)": "إخفاء الشريط الجانبي",
"Last updated on(page footer)": "آخر تحديث:",
"Layout Tab(layout tab trigger)": "علامة تبويب التخطيط",
"Light(theme switcher)(aria-label)": "فاتح",
"Next Page(pagination)": "الصفحة التالية",
"No Headings(table of contents)": "لا توجد عناوين",
"No results found(search dialog)": "لم يتم العثور على نتائج",
"On this page(table of contents)": "في هذه الصفحة",
"Open Search(search trigger)(aria-label)": "فتح البحث",
"Open Sidebar(sidebar)(aria-label)": "فتح الشريط الجانبي",
"Open in ChatGPT(page actions)": "فتح في ChatGPT",
"Open in Claude(page actions)": "فتح في Claude",
"Open in Cursor(page actions)": "فتح في Cursor",
"Open in GitHub(page actions)": "فتح في GitHub",
"Open in Scira AI(page actions)": "فتح في Scira AI",
"Open(page actions)": "فتح",
"Page Not Found(404 page)": "الصفحة غير موجودة",
"Parameters(type table)": "المعاملات",
"Previous Page(pagination)": "الصفحة السابقة",
"Prop(type table)": "الخاصية",
"Read {url}, I want to ask questions about it.(page actions)": "اقرأ {url}، أريد طرح أسئلة حوله.",
"Returns(type table)": "القيمة المُعادة",
"Search(search dialog)": "بحث",
"Search(search trigger)": "بحث",
"Show Sidebar(sidebar)": "إظهار الشريط الجانبي",
"System(theme switcher)(aria-label)": "النظام",
"Table of Contents(inline table of contents)": "جدول المحتويات",
"The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.(404 page)":
"ربما تمت إزالة الصفحة التي تبحث عنها أو تغيير اسمها أو أنها غير متاحة مؤقتًا.",
"Toggle Menu(mobile menu)(aria-label)": "تبديل القائمة",
"Toggle Theme(theme switcher)(aria-label)": "تبديل السمة",
"Type(type table)": "النوع",
"View as Markdown(page actions)": "عرض بصيغة Markdown",
};

export const docsUI = defineI18nUI(
{ defaultLanguage: sourceLocale, languages: locales },
{ en: { displayName: "English" }, es, ja, ar },
);
Loading