コンテンツへスキップ
CLI とコードスキャン

CLIとコードスキャン:すべての未翻訳文字列を自動で検出

ソースファイルからハードコードされた文字列を手動で探す必要はありません。Better i18nのCLIはASTベースの解析を使用してコードベース全体をスキャンし、JSXコンポーネントや属性内の未翻訳テキストを検出し、不足・未使用キーをレポートし、CIパイプラインにシームレスに統合します。

AST駆動のコードスキャン

誤検知を生む正規表現ベースのスキャナーとは異なり、Better i18nはコードを抽象構文木(AST)に解析して、正確かつコンテキスト対応の文字列検出を実現します。

ハードコードされた文字列の検出

翻訳関数で囲まれていない、ユーザーに表示されるすべての文字列を自動的に検出します。これには、JSXの子要素やコンポーネントのプロパティ内の文字列も含まれます。

ASTに基づく構文解析

ソースコードを抽象構文木(AST)に解析し、文脈に応じた正確な検出を行うことで、正規表現ベースのスキャナーに見られる誤検出を排除します。

JSXテキストノードのスキャン

JSX要素内の未翻訳のテキストコンテンツを検出します。これには、コンポーネント内で直接レンダリングされる式やテンプレートリテラルも含まれます。

JSX属性のスキャン

placeholder、aria-label、title などの JSX 属性内にハードコードされた文字列を検出します。これらは、手動による i18n 監査では見落とされがちなものです。

スマートフィルタリング

CSSクラス名、インポートパス、数値リテラルなど、翻訳できない値は無視されるため、実際に処理可能な結果のみが表示されます。

翻訳監査のための CLI コマンド

check コマンドは、インタラクティブで開発者フレンドリーな監査体験を提供します。ソースコードで使用されている翻訳キーを Better i18n のリモートに保存されているキーと比較し、翻訳が必要な不足キーとクリーンアップ可能な未使用キーの両方を表示します。

テンプレートリテラルのような動的キーパターンは自動的に検出されます。コードが t(`key.${variable}`) を使用する場合、CLI は動的セグメントを認識してパターンマッチングレポートに含めるため、見落としがありません。

  • 1つのチェックコマンドで翻訳の完全な監査を実行する
  • コード内には存在するが、リモートストアには存在しない翻訳キーがSurfaceに欠落しています
  • コード内で参照されなくなった、リモートストア内の未使用キーを特定する
  • テンプレートリテラルなどの動的なキーパターンを検出し、レビュー対象としてマークする
  • ローカルの使用状況とリモートの翻訳状態の比較レポートを生成する

柔軟な出力フォーマット

スキャン結果は、ワークフローに合わせて複数の形式で利用可能です。ESLint形式の出力では、ファイル、行、列の参照情報を含む、人間が読みやすいレポートが生成されます。JSON出力では、CI/CDの自動化やカスタムツール向けに、機械が読み取れるデータが提供されます。

詳細モードでは、詳細な監査ログ、スコーピングサマリー、タイミング情報を提供して深い透明性を実現します。スキャン統計はファイル数、検出メトリクス、パフォーマンスデータを表示するため、翻訳カバレッジの状態を常に把握できます。

ESLintスタイル出力

任意のエディタで素早くナビゲートできるよう、ファイルパス、行番号、列参照付きの人間が読みやすいレポートを生成します。

JSON出力

CI/CDオートメーション、カスタムダッシュボード、その他ツールとの連携に最適な、機械可読の構造化データです。

詳細モード

デバッグのためのスコーピングサマリー、タイミング情報、ネームスペース解決トレースを含む詳細な監査ログです。

スキャン統計

翻訳カバレッジの状態を常に把握するためのファイル数、キー検出メトリクス、パフォーマンスデータです。

DevOpsとCI/CDの統合

既存の開発パイプラインに翻訳チェックを組み込み、未翻訳の文字列が本番環境に到達する前に検出します。

1

CI パイプラインの統合

未翻訳の文字列や不足キーが検出されたときにビルドを失敗させる scan ステップを CI ワークフローに追加します。

2

プリコミットフック

コミットごとにステージングされたファイルをスキャンして、開発の最も早い段階で未翻訳の文字列を検出します。

3

ディレクトリスコープスキャン

ユーザー向けコンテンツを含むコードベースの特定部分のみをスキャンするために、特定のディレクトリやファイルパターンを対象に指定できます。

4

スコープ対応解析

レキシカルスコープトラッキングにより翻訳ネームスペースを自動解決し、各t()呼び出しを正しいキーセットにマッピングします。

Better i18n CLI:ローカライゼーションのために構築されたコードスキャン

Better i18nのCLIは、ASTベースのコードスキャンとリモートキー管理を単一ツールに統合しています。コードベースのハードコードされた文字列をスキャンし、ローカルの使用状況をリモート翻訳ストアと比較し、バンドルサイズを肥大化させる未使用キーを検出し、CIパイプライン向けのレポートを生成します。すべてターミナルから離れることなく実行できます。

スコープ対応スキャン

レキシカルスコープを通じてuseTranslationsとgetTranslationsの呼び出しを追跡し、各t()呼び出しを自動的に正しいネームスペースに紐付けます。

サーバーコンポーネントサポート

Next.js App Routerの非同期サーバーコンポーネントを完全サポートし、サーバーコード内のgetTranslations呼び出しをクライアントサイドの使用と並行して検出・監査します。

プリコミットフック

--staged フラグを使用すると、ステージングされたファイルのみをスキャンできるため、ワークフローの速度を落とすことなく、コミットされる前に未翻訳の文字列を検出できます。

文字列の見落としなく翻訳をリリースする

Better i18n の CLI はコードをスキャンし、未翻訳の文字列をすべて検出し、CI パイプラインに統合できるため、翻訳なしに本番環境へリリースされることはありません。