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"]
}