GoLand 2026.1 Help

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

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

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

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

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

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

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

エディターは、下のスクリーンショットのようにハードコードされた文字列リテラルをハイライトします:

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

ハードコード文字列の国際化ダイアログ

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

項目

説明

プロパティファイル

このフィールドで、抽出された文字列リテラルを保存する既存の .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 を押して ハードコード文字列リテラルの国際化 を選択してください。 この例では、GoLand で新しい Java プロジェクトを作成する際に含まれるオプションのサンプルコードを使用しています。

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

    ResourceBundle フィールドがソースコードで宣言されている場合、GoLand はデフォルトでその名前を提案します。 このフィールドをソースコードで宣言していない場合、このフィールドは表示されません。 ソースコードに 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 年 5 月 22 日