ドキュメンテーション

Magic Translate vs. Lingui

Lingui は JavaScript と React 用のオープンソースの i18n ライブラリだ。Magic Translate のように、キーの代わりにコンポーネントに独自の単語を書ける。違いは、次に何が起こるかだ。Lingui では、メッセージを抽出し、翻訳してもらい、すべての言語用にコンパイルする。Magic Translate では、翻訳はあなたのために作成される。

一目で

Magic TranslateLingui
テキストの書き方<T> で包まれた、あなた自身の言葉<Trans> で包まれた、あなた自身の言葉
翻訳AI翻訳、自動的に作成されたメッセージを抽出して翻訳してもらう
メッセージファイル何もないPOファイルなど、言語ごとに1つのカタログ
ビルドステップ何もないカタログを抽出して編集する
新しい言語language 設定を変えてすべてのメッセージを新しい言語に翻訳する
複数形と書式設定文の一部として翻訳されたICU 言語ごとに複数のルールがあるメッセージ
価格無料プラン、そして使用量に応じた月額プランオープンソースで無料

コードの違い

Lingui では、テキストはコンポーネントに残りますが、すべてのメッセージはカタログを通過する。

import { Trans } from '@lingui/react/macro';
const Cart = () => (
<h2>
<Trans>Your shopping cart</Trans>
</h2>
);
// Then run `lingui extract`, translate the catalogs for every language,
// run `lingui compile` and load the right catalog when the app starts.

Magic Translate を使うと、コンポーネントは似ていて、翻訳は自動的に生成される:

import { T } from '@magic-translate/react';
const Cart = () => (
<h2>
<T>Your shopping cart</T>
</h2>
);

Magic Translate を選ぶタイミング

  • コンポーネントに独自の言葉を書くのが好きで、カタログを管理したくない。
  • 翻訳者がいない、または翻訳を待たずにアップデートをリリースしたい。
  • 翻訳プロジェクトを管理せずに言語を追加したい。

Lingui を選ぶタイミング

  • すべてのテキストは、人が翻訳またはレビューする必要がある。
  • 複素複数形と性別には ICU メッセージが必要だ。
  • 外部サービスのない、無料のオープンソースの図書館が欲しい。

Lingui から Magic Translate に移動する

どちらのライブラリもテキストをコンポーネントに保存するので、移行は主に翻訳コンポーネントと関数を置き換えることで行われる。<Trans> は <T> に、t マクロは useT hook になる。一度に1つのコンポーネントを移行できる。

試す準備はできた?入門ガイドに従って、最初のコンポーネントを5分で翻訳する。