Lingo.dev + .md/.mdx(ドキュメンテーション)

Lingo.dev CLIはMarkdownとMDXのドキュメント、ブログ、コンテンツを翻訳する際に、フォーマット、コードブロック、リンク、Reactコンポーネント、インタラクティブ要素を保持します。CLIは**.mdと.mdxファイルの両方に推奨される設定として**mdxバケットを使用し、コードブロックとインラインコードを翻訳から保護し、説明文を翻訳しながらURLを保持し、フロントマターメタデータを維持し、Reactコンポーネントとインポートを損なわず、JSXプロップをインテリジェントに翻訳し、Next.js、Gatsby、MDXツールとシームレスに連携します。

クイックセットアップ

MarkdownとMDXファイルの両方に**mdxバケット**を使用して設定します:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "mdx": {
      "include": ["docs/[locale]/*.md", "content/[locale]/*.mdx"]
    }
  }
}

注意[locale]は設定内で文字通りのプレースホルダーとして残しておく必要があります。CLI実行中に実際のロケールに置き換えられます。

ドキュメントの翻訳

npx lingo.dev@latest i18n

すべてのMarkdownフォーマットとMDX Reactコンポーネントを保持しながらコンテンツを翻訳します。

Markdownコンテンツの処理

コードブロックの保持

```javascript
const message = "Hello, world!";
console.log(message);
```

コードは翻訳されず、周囲の説明文はローカライズされます。

リンクと参照の処理

Visit [our website](https://example.com) for more details.

See the [configuration guide](./config.md) for setup instructions.

URLと相対パスはそのまま保持され、リンクテキストは翻訳されます。

フロントマターの保護


---

title: "Getting Started"
date: 2024-01-15
tags: ["tutorial", "beginner"]

---

# はじめに

ここからコンテンツが始まります...

YAMLフロントマターはそのまま保持され、コンテンツは翻訳されます。

MDXコンポーネント機能

Reactコンポーネントブロック

import { Alert } from "@components/Alert";

# ようこそガイド

<Alert type="info">これはユーザーにとって重要な情報です。</Alert>

通常のマークダウンコンテンツはここで翻訳されます。

コンポーネントのインポートとJSXはそのまま保持され、テキストコンテンツはローカライズされます。

インラインJSX要素

ここにテキスト内の <Button variant="primary">はじめる</Button> ボタンがあります。

コンポーネントはそのままで、「はじめる」が翻訳されます。

翻訳可能なコンテンツを持つプロパティ

<VideoPlayer
  title="紹介ビデオ"
  description="5分で基本を学ぶ"
  src="/videos/intro.mp4"
/>

文字列プロパティは翻訳され、技術的なプロパティは変更されません。

エクスポートステートメント

export const title = "ユーザーガイド";
export const published = "2024-01-15";

# {title}

コンテンツはここから始まります...

翻訳可能なコンテンツを持つ名前付きエクスポートはローカライズされます。

コンポーネントを含むフロントマター


---

title: "はじめに"
components:
  - Alert
  - CodeBlock

---

import { Alert, CodeBlock } from "@components";

<Alert>プラットフォームへようこそ!</Alert>

高度な設定

複数のコンテンツディレクトリ

"mdx": {
  "include": [
    "docs/[locale]/*.md",
    "content/[locale]/*.mdx",
    "blog/[locale]/*.{md,mdx}"
  ]
}

注意: 二重アスタリスク(**)はグロブパターンではサポートされていません。ディレクトリ内のファイルマッチングには単一のアスタリスク(*)を使用してください。

特定のファイルを除外する

"mdx": {
  "include": ["docs/[locale]/*.{md,mdx}"],
  "exclude": ["docs/[locale]/drafts/*.{md,mdx}"]
}

コンポーネントプロパティをロックする

"mdx": {
  "include": ["content/[locale]/*.{md,mdx}"],
  "lockedKeys": ["src", "href", "id", "className"]
}