IntelliJ IDEA 2026.1 Help

ハードコーディングされた文字列リテラル

ソースコードにハードコードされた文字列リテラルが含まれている場合は、 国際化対応コードのインスペクションを有効にしてハイライトすることができます。 その後、ローカライズのためにこれらの文字列を プロパティファイルに抽出するか、ローカライズされることを意図していない場合は無視します。

ハードコーディングされた文字列リテラルのハイライトを有効にする

  1. 設定 ダイアログ Ctrl+Alt+S を開き、 エディター を展開して インスペクション をクリックします。

  2. 目的のプロファイルを選択し、 Java でノード 国際化対応 を見つけます。

  3. ハードコードされた文字列 インスペクションを有効にして、ハードコードされた文字列リテラルをエディターでハイライトします。

  4. 変更を適用して、ダイアログを閉じます。

エディターでは、ハードコードされた文字列リテラルをハイライトします(下のスクリーンショット参照)。

ハイライトされたハードコード文字列リテラル

ハードコーディングされた文字列の国際化ダイアログ

IntelliJ IDEA は、文字列リテラルをプロパティファイルに抽出するための特別なインテンションアクション ハードコード文字列リテラルの国際化 を提供します。 java.util.ResourceBundle クラスまたはカスタムユーティリティクラスを使用してリソースバンドルにアクセスできます。

項目

説明

Properties file

このフィールドに、抽出した文字列リテラルを保存する既存の .properties ファイルを指定します。 ファイルのパスを手動で入力するか、 参照 参照ボタン をクリックして プロパティファイルの選択 ダイアログを開き、プロジェクトツリービューや名前での検索を通じて希望する場所を選択します。

リソースバンドル内のすべてのプロパティファイルを更新する

ターゲットバンドル内のすべてのプロパティファイルを更新するには、このチェックボックスを選択します。

プロパティキー

デフォルトでは、このフィールドには、抽出される文字列の値に基づいて、推奨されるキー名が表示されます。 デフォルトの名前をそのまま使用するか、任意の名前を入力します。

プロパティ値

デフォルトでは、このフィールドには抽出される文字列の値が表示されます。 デフォルト値をそのまま使用するか、目的の値を入力します。

リソースバンドル式

デフォルトでは、このフィールドには、ソースコード内のリソースバンドル宣言からのリソースバンドル式が表示されます。 リソースバンドルがソースコードで宣言されていない場合、フィールドは表示されません。 目的の式を定義するには、次のいずれかを実行します。

国際化テンプレートの編集

リンクをクリックして ファイルテンプレートを編集 ダイアログを開き、カスタムユーティリティクラスのメソッドにアクセスするための I18nized Expressionテンプレートを変更します。 詳細については、 国際化された式テンプレートを編集する を参照してください。

変更されたファイルテンプレートは、すべてのプロジェクトに影響するグローバル設定です。 デフォルトに戻す場合は、 ファイルおよびコードテンプレート ダイアログを開き、 コード タブで 国際化式テンプレートを見つけて、 リセット ボタン をクリックします。

プレビュー

この読み取り専用フィールドには、 ハードコードされた文字列リテラルを国際化 インテンションアクションを適用した結果が表示されます。

ハードコーディングされた文字列リテラルの抽出

java.util.ResourceBundleを使用して文字列リテラルを抽出する

  1. まず、プロジェクト内に少なくとも 1 つのプロパティファイル ( my .properties など) が必要です。

  2. ソースコードで、抽出されたリテラルの格納に使用されるリソースバンドルを次の形式で指定します。

    private static ResourceBundle <field name> = ResourceBundle.getBundle("<bundle name>");

    例:

    private static ResourceBundle myBundle = ResourceBundle.getBundle("awesomeBundle");
  3. ハイライトされた文字列をクリックし、 Alt+Enter を押して ハードコード文字列リテラルの国際化 を選択します。 この例では、 IntelliJ IDEA を使用して新しいJavaプロジェクトを作成する際に含まれるオプションのサンプルコードを使用しています。

    ハードコードされた文字列リテラルのインテンションアクション
  4. ハーコード化された文字列の国際化ダイアログで、既存のターゲットプロパティファイル、プロパティのキーと値、リソースバンドル式を指定します。

    ResourceBundle フィールドがソースコードで宣言されている場合、IntelliJ IDEA はデフォルトでその名前を提案します。 このフィールドをソースコードで宣言していない場合、このフィールドは表示されません。 ソースコードに ResourceBundle タイプの式を含める必要があります。

    ハードコードされた文字列の国際化ダイアログ
  5. OK をクリックします。 ハードコードされた文字列リテラルの行が置き換えられます。

    • リソースバンドルがソースコードで宣言されている場合は、次のようになります。

      System.out.println(myBundle.getString("hello.world"));
    • ダイアログボックスでリソースバンドルが定義されている場合は、次のようにします。

      System.out.println(ResourceBundle.getBundle("awesomeBundle").getString("hello.world"));

国際化された式テンプレートを編集する

カスタムユーティリティクラスを使用してリソースバンドルにアクセスする場合は、設定または ハーコード化された文字列の国際化ダイアログのいずれかを使用して、カスタムユーティリティクラスのメソッドを指す 国際化式テンプレートを定義できます。

  • 設定 ダイアログを Ctrl+Alt+S 開き、その後 エディター | ファイルおよびコードテンプレート | コード | I18 化された式 に移動してください。 ここでテンプレートを編集できます。

    I18 化された式テンプレートの編集
  • ハーコード化された文字列の国際化ダイアログで、 国際化テンプレートの編集 を選択します。 ファイルテンプレート ダイアログで、カスタムユーティリティクラスのメソッドを指すように 国際化式を変更します。

    ファイルテンプレートの編集ダイアログ

ハードコーディングされた文字列リテラルの無視

ハードコードされた文字列リテラルを無視する場合は、 国際化を必要としない アノテーションを使用します。

  1. Alt+Enter を押して、文字列リテラルのインテンションアクションを表示します。

  2. アクションのリストから フィールド「out」に「@NonNls」としてアノテーションを付ける を選択します。

  3. annotations.xml ファイルを保存する場所を指定します。

2026 年 3 月 30 日