コンパイラ
gt-next の Rust 製 SWC プラグインです。
コンパイラ
gt-next には、一般的な翻訳エラーを検出し、パフォーマンスを最適化するためにビルド時解析を行う Rust ベースの SWC プラグインが含まれています。
機能
動的コンテンツの検出
翻訳コンポーネント内でラップされていない動的コンテンツを検出します:
// ❌ 不正 - 動的コンテンツがラップされていない
<T>Hello {userName}</T>
// ✅ 正常 - 動的コンテンツが変数コンポーネントでラップされている
<T>Hello <Var>{userName}</Var></T>
関数呼び出しの検証
翻訳関数にリテラル以外の引数が渡されているケースを検出します:
const t = useGT();
// ❌ 不正 - テンプレートリテラルや連結
t(`Hello ${name}`)
t("Hello " + name)
// ✅ 正常 - 変数置換を伴う文字列リテラル
t("Hello, {name}!", { name })
コンパイル時のハッシュ生成
実行時のパフォーマンス向上のために翻訳ハッシュを事前に計算します:
// 入力
<T>Hello world</T>
// 出力(有効化時)
<T _hash="a1b2c3d4">Hello world</T>
設定
next.config.js
で SWC プラグインを設定します:
import { withGTConfig } from 'gt-next/config';
export default withGTConfig(nextConfig, {
locales: ['en', 'es'],
swcPluginOptions: {
logLevel: 'silent', // 警告出力を制御
compileTimeHash: false, // ハッシュ生成を有効化
},
});
オプション
-
logLevel
: 警告出力レベルを制御'silent'
- 警告なし(本番環境のデフォルト)'error'
- ビルドエラーとして表示'warn'
- 警告として表示(開発環境のデフォルト)'info'
- 情報レベルのメッセージを表示'debug'
- すべてのデバッグ情報を表示
-
compileTimeHash
: コンパイル時のハッシュ生成を有効化false
- 無効(デフォルト)true
- パフォーマンス向上のため、ビルド時にハッシュを生成
制限事項
SWC プラグインはファイルを個別に処理するため、再エクスポートされたコンポーネントでの違反を検出できません:
// File A: export { T as Translate } from 'gt-next'
// File B: import { Translate } from './A'
<Translate>Hello {name}</Translate> // 検出されません
再エクスポートまで含めて網羅的に検出したい場合は、gt-next ESLint プラグインの使用をご検討ください。
このガイドはいかがですか?