MD & MDX
ドキュメント、ブログ、コンテンツページがローカライズされた .md や .mdx にあるときは @better-translate/md を使います。
このパッケージはコアトランスレーターを置き換えません。すでに作ったトランスレーターのロケールルールを読み込みます。
1. パッケージをインストールする
npm install @better-translate/core @better-translate/md2. トランスレーターを作る
src/i18n.ts を作成します:
ts
1import { configureTranslations } from "@better-translate/core";23const en = {4 docs: {5 title: "Docs",6 },7} as const;89const es = {10 docs: {11 title: "Documentacion",12 },13} as const;1415export const translator = await configureTranslations({16 availableLocales: ["en", "es"] as const,17 defaultLocale: "en",18 fallbackLocale: "en",19 messages: { en, es },20});3. コンテンツフォルダを作る
同じルートの下にロケールごとのフォルダを置きます:
txt
1content/docs/2 en/3 getting-started.mdx4 es/5 getting-started.mdx4. Markdown ヘルパーを作る
src/docs.ts を作成します:
ts
1import { createMarkdownHelpers } from "@better-translate/md";23import { translator } from "./i18n";45export const docs = createMarkdownHelpers(translator, {6 rootDir: "./content/docs",7});5. 1つのドキュメントを読む
ts
1import { docs } from "./docs";23const englishDoc = await docs.getDocument("getting-started", {4 locale: "en",5});67const spanishDoc = await docs.getDocument("getting-started", {8 locale: "es",9});6. 出力が必要ならコンパイルする
ts
1const compiled = await docs.compileDocument("getting-started", {2 locale: "en",3});45compiled.kind; // "md" or "mdx"6compiled.path;7compiled.usedFallback;サーバーヘルパーを使うタイミング
アプリがすでにサーバーでリクエストロケールを解決している場合は、@better-translate/md/server を使うと Markdown の読み込みが同じリクエストロケールに自動で従います。
ローカライズ Markdown を自動生成する
CLI の markdown.rootDir オプションで Markdown ファイルの翻訳を生成できます:CLI ガイド