Importing/Exporting Data
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

バッチインポート値のローカライズ

Liferay DXP 2026.Q3+

ローカライズされたフィールド値は、 _i18n マップに表示され、例えば value_i18n や name_i18n などがあります。 マップ内の各エントリは、言語IDと翻訳された文字列をペアにしたものです。

すべての言語 ID を手動でリストする代わりに、 [$FOR_EACH_LANGUAGE_ID$] トークンを追加し、 言語キー という名前を付けることができます。 言語キーは、用語の翻訳を保持する Language.properties ファイルのエントリです。 必要な翻訳が既に言語キーに存在する場合は、トークンを使用してください。

トークンの追加

キーが [$FOR_EACH_LANGUAGE_ID$] で、値が言語キーであるエントリを1つ追加します。

"value_i18n": {
    "[$FOR_EACH_LANGUAGE_ID$]": "welcome-to-liferay"
}

トークンはエントリの値ではなくキーなので、ファイルは依然として有効なJSONです。

インポート処理により、そのエントリは有効化されている言語ごとに1つのエントリに置き換えられます。 例えば、英語、スペイン語、ブラジルポルトガル語が有効になっているインスタンスでは、インポートによって以下のエントリが生成されます。

"value_i18n": {
    "en_US": "Liferay へようこそ"、
    "es_ES": "ビアンベニド a Liferay"、
    "pt_BR": "ベム・ビンド・アオ・ライフレイ"
}

このトークンは、バッチエンジンを介してインポートされたすべてのデータ(バッチクライアント拡張機能からのデータを含む)で解決されます。 サイト初期化処理では、ページ定義、表示ページテンプレート、およびオブジェクト定義ファイルも解決されます。

重要

サイト初期化子内の他の場所( roles.json や通知テンプレートなど)では、トークンは展開されず、フィールドは翻訳されないままです。 一部のアセットタイプでは、このような事態が発生してもログが記録されません。 ログではなく、インポートされたデータを確認してください。

Liferay に付属の言語キーを再利用するのではなく、独自の言語キーを追加するには、 言語クライアント拡張機能 を参照してください。

拡張マップの言語

インポート機能は、Liferayインスタンスで有効になっている言語ごとに1つのエントリを書き込みますが、Liferayに付属するすべての言語に対して書き込むわけではありません。 言語クライアント拡張機能または言語オーバーライドツールを使用して追加したキーは、動作が異なります。

主要情報源内容
Liferay独自のキー有効になっている言語ごとにエントリが作成されます。 独自の翻訳を持たない言語は、他のロケールから値を取得します。
カスタムキーキーに記載されている言語のみ、エントリーできます。 その他の有効言語はマップから削除され、ログにも何も記録されません。

手書きで入力した言語エントリが優先され、インポートによってマップに不足している言語のみが補完されます。 この例では、 en_US は値 Customを保持し、残りの言語は welcome-to-liferay キーから翻訳を取得します。

"value_i18n": {
    "en_US": "Custom",
    "[$FOR_EACH_LANGUAGE_ID$]": "welcome-to-liferay"
}

インポートによって展開中に [$FOR_EACH_LANGUAGE_ID$] エントリが削除されるため、生のトークンが翻訳として表示されることはありません。

展開処理は決定論的であるため、同じファイルを2回インポートしても結果は同じになります。 インポート後にエクスポートされるデータには、トークンではなく解決済みの翻訳が含まれており、そのデータを後でインポートすると、値は変更されずに渡されます。

未解決の言語キー

キーに対応する言語の翻訳がない場合でも、インポートは失敗しません。 Liferay は com.liferay.batch.engine.internal.language.LanguageKeyResolverImpl からの警告をログに記録し、トークンエントリを削除するため、手動で書き込んだエントリのみが残ります。

言語キー "[キー]" を解決できません

手書きの書き込みがない地図は空白である。

トークンの値は、単一の言語キー文字列でなければなりません。 値がオブジェクトまたは配列の場合、Liferay はそのエントリをそのまま残し、何もログに記録しません。

言語キー解決の有効化

言語キー解決有効化 設定は、Liferay インスタンスの解決をオンまたはオフにします。 変更するには、 グローバルメニュー → インスタンス設定 → バッチエンジン に移動し、 バッチエンジンタスク構成 エントリを開きます。

この設定はデフォルトで有効になっています。 無効になっている場合、インポートは解決をスキップし、書き込まれたとおりにリテラルな [$FOR_EACH_LANGUAGE_ID$] キーをマップに格納します。