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