Astro: 注意点
Astro はリアクティブなコンポーネント実行時ではない
セクションタイトル “Astro はリアクティブなコンポーネント実行時ではない”Astro には、.astro ファイル向けの組み込みリアクティブコンポーネントモデルはありません。
そのため lingui-for-astro は、リアクティブな翻訳ストアではなく、ビルド時またはリクエスト時の翻訳に焦点を当てています。
ページが一度描画されたあとの翻訳文字列は固定であり、クライアント側でロケールが変わったときに再評価される Svelte の $t に相当するものはありません。
Lingui の初期化は、ミドルウェアで行うのが推奨です(すべての出力モードで有効です)。単純な静的サイトではページのフロントマターでの初期化も可能です。 詳しくは i18n コンテキスト を参照してください。
実行時ヘルパーは主要 API ではない
セクションタイトル “実行時ヘルパーは主要 API ではない”実行時レイヤー(lingui-for-astro/runtime)はマクロのコンパイル先です。その API はメジャーバージョンを上げずに変わる可能性があります。
ツール実装や変換処理のデバッグをしているのでなければ、lingui-for-astro/macro を使ってください。
コンポーネントマクロの空白は既定でフレームワーク対応
セクションタイトル “コンポーネントマクロの空白は既定でフレームワーク対応”リッチテキストのコンポーネントマクロでは、生の JSX 意味論ではなく、フレームワークを考慮した空白処理が既定で使われます。
jsx の挙動を強制したい場合や、抽出設定と変換設定を揃えたい場合は コンポーネントマクロにおける空白 を参照してください。
MDX はサポートされていない
セクションタイトル “MDX はサポートされていない”Astro の .mdx ファイルは、lingui-for-astro を支える Vite 変換とは別の Remark / Rehype パイプラインでコンパイルされます。
そのパイプラインへマクロ呼び出しを差し込むことはサポートされていません。
MDX コンテンツを翻訳したい場合は、ロケールごとに別々の .mdx ファイルを管理してください。
クライアントフレームワークのアイランドは独自の実行時モデルを持つ
セクションタイトル “クライアントフレームワークのアイランドは独自の実行時モデルを持つ”Astro の中に Svelte や React のアイランドを埋め込む場合、それらのアイランドはそれぞれ専用の Lingui 統合を使う必要があります。
lingui-for-astro が扱うのは .astro のコンパイル段階だけです。
推奨される分担は アイランドを使う を参照してください。