ローカリゼーションサービス

対象: IT管理者向けです。本ページではローカリゼーションサービスの動作、ロケールの決め方と上書き方法、ならびにローカリゼーション構成によるUI文言の変更方法を取り扱います。
概要
エンドポイント特権マネージャーでは、トレイアプリやMFA/承認/正当な理由入力ダイアログ、メッセージなどのUIコンポーネントについて、複数言語を利用できます。次の処理が行われます。
ユーザーのロケールの解決 (システム検出または明示的上書き)
ユーザーごとの選択ロケールの保持 (ローカルサービスへの登録経由)
カルチャ (例:
en_US、fr_FR) ごとの各コンポーネントへのローカライズ済み文字列の配信ローカライズ用JSONファイルの編集、または対応環境でのローカライズAPIによる文言カスタマイズ
ロケールはユーザー単位 (または登録したセッション単位) です。各UIコンポーネントは登録済みカルチャの文字列を要求するため、メニュー、ダイアログ、通知は正しい言語で表示されます。
ロケールの決まり方
デフォルトの動作 (上書きなし)
KeeperClient (トレイ) アプリの起動時に、使用するロケールを決定します。
上書きが構成されていない場合は、システムロケールの検出を使います (Windowsの表示言語、Linuxの
LANG/ロケール、macOSの設定)。結果は
en_US、fr_FR、es_ES(language_REGION) 形式のカルチャコードに正規化されます。
クライアントは
POST /api/Locale/Registerを呼び出し、{ "Locale": "en_US" }のようなJSONボディで、このロケールをエンドポイント特権マネージャーに登録します。サービスは、そのユーザー (またはセッション) のロケールを保存します。同じコンテキストで動くその他のUIアプリ (KeeperMFA、KeeperApproval、KeeperJustification、KeeperMessageなど) は、ローカライズデータを要求するとき同じ登録済みロケールを使います。
コンポーネントが文字列 (メニューラベル、ダイアログ文言など) を必要とするとき、
GET /api/localization/{component}/{culture}を呼び出します (例:GET /api/localization/KeeperClientLocales/en_US)。カルチャは登録済みロケール由来のため、すべてのコンポーネントは同期されます。
したがってデフォルトでは、システムロケール → エンドポイント特権マネージャーへの登録 → すべてのUIが当該カルチャによるローカライズ、という流れになります。
フォールバック
システム検出失敗時のクライアントによるen_USへのフォールバック
文字列ごとに要求したカルチャが欠けている場合の、サービスによるen_USへのフォールバック、またはUIによるフォールバックメッセージの表示 (トーストの
messageフィールドなど)
ロケールの上書き
システムが検出したロケールを上書きし、OSの表示言語に関係なくUIで特定の言語を常に使うことができます。
方法1: KeeperClientプラグイン設定 (推奨)
KeeperClientプラグインでは、メタデータにLanguageOverrideを指定できます。
metadata.LanguageOverride
string
"DEFAULT"
トレイおよび関連コンポーネントのUI言語の上書き
値:
"DEFAULT"(または空/未設定): システム検出ロケール (上記の動作)有効なカルチャコード: 当該言語の強制。例:
"en_US"、"fr_FR"、"es_ES"、"de_DE"、"ja_JP"、"zh_CN"
設定方法:
ダッシュボードから: デプロイで構成ポリシーまたはプラグイン設定のプッシュに対応している場合、KeeperClientプラグインのLanguageOverrideを希望のカルチャコードに設定します。
エンドポイント上で: KeeperClientプラグインのJSON (例:
Plugins/KeeperClient.jsonまたはインストールで使うパス) を編集し、metadata配下に次を追加または変更します。その後、KeeperClientプラグイン (またはエージェント) を再起動し、設定を再読み込みします。次回起動時、KeeperClientは
LanguageOverrideを読み取り、システム検出の代わりにfr_FRを使い、POST /api/Locale/Registerで登録します。
注: 値が有効なカルチャコードでない場合、クライアントは警告をログに記録し、システム検出にフォールバックします。
方法2: APIでロケールを登録する
管理者またはカスタムスクリプトが、POST /api/Locale/Register を { "Locale": "fr_FR" } のようなボディ (適切な認証、通常は対象ユーザー/セッションのコンテキスト) で呼び出せます。これによりそのユーザーの保存ロケールは上書きされ、以降のUIコンポーネントは新しいカルチャの文字列を要求します。高度な操作であり、通常はプラグイン設定またはコマンドライン上書きを使います。
まとめ
metadata.LanguageOverride (KeeperClient)
当該構成が適用されるエンドポイント上のすべてのユーザー
構成変更とプラグイン再起動まで
--language-override (起動引数)
単一プロセスの実行
その実行のみ
POST /api/Locale/Register
1ユーザー/セッション
次回の登録まで
文言の変更方法 (ローカライズ構成)
ローカライズデータを編集すると、UIに表示される文言を変更できます。文字列キーとカルチャ別の文言の対応はロケールファイル (JSON) に保持されます。ファイルを直接編集するか、ローカライズAPIを使います。
ローカライズデータの場所
サービス (エージェント) 上: ローカライズ用JSONファイルは通常、エンドポイント特権マネージャーインストール内のLocalizationディレクトリ配下 (正確なパスはデプロイ依存。例:
KeeperPrivilegeManager/Localization/)。コンポーネント別ファイル: 各UIコンポーネントごとのロケールファイル (または共有)。例:
LocaleValues.json: コア/システム文字列
SharedLocales.json: 共有文字列 (ボタン、共通ラベルなど)
KeeperClientLocales.json: トレイアプリ (KeeperClient)
KeeperMfaLocales.json: MFAダイアログ
KeeperApprovalLocales.json: 承認ダイアログ
KeeperJustificationLocales.json: 正当な理由入力ダイアログ
KeeperMessageLocales.json: KeeperMessageダイアログ
KeeperTrayLocales.json: システムトレイ
KeeperControlsLocales.json: コントロールUI
SudoWrapperLocales.json、DiagnosticToolLocales.json: CLI/ツール向け文字列
APIのコンポーネント名 (GET /api/localization/{component}/{culture}) は、これらのファイルに対応します (例: KeeperClientLocales、SharedLocales)。
警告: アップグレード時にローカライズファイルが上書きされる場合があります。
ローカライズファイルのJSON構造
各ファイルは、次のようなJSONオブジェクトです。
キー: コードまたはジョブで使う文字列ID (例:
kepm_kc_menu_settings、kepm_shared_button_ok)値: カルチャコードから表示文言へのマッピングオブジェクト
例
パラメータ付き文字列はプレースホルダ {0}、{1} などを使います。例: "en_US": "Approval required for {0}"。アプリは実行時に値を代入します。
カルチャコードはlanguage_REGION形式です (例: en_US、fr_FR、zh_CN)。製品は en_US、en_GB、es_ES、fr_FR、de_DE、it_IT、pt_BR、ja_JP、ko_KR、zh_CN、zh_TW、ru_RU など、多数のロケールを扱えます。対象とするロケールに合わせてカルチャキーを追加または編集してください。
ローカライズファイルの編集による文言変更
正しいファイルの特定: トレイ/メニュー文言にはKeeperClientLocales.jsonまたはSharedLocales.json。MFA/承認/正当な理由入力/メッセージのダイアログには、対応するコンポーネントファイル (例: KeeperMfaLocales.json、KeeperApprovalLocales.json)。
キーの検索: キーは
kepm_kc_*(KeeperClient)、kepm_shared_*(共有)、kepm_kmfa_*(MFA)、kepm_kapproval_*(承認) などのパターンに従います。変更したい文言に対応するキーを検索します (拡張する場合は新規キーを追加し、既存エントリと同じ構造にします)。カルチャ別の値の編集: 目的のカルチャの文字列を変更します (例:
"en_US": "Your new text")。ファイルにまだそのロケールがない場合は、新しいカルチャブロックを追加できます。ファイルの保存と再読み込み: ファイルを保存し、変更をサービスが読み込むよう再読み込みします。
影響を受けるプラグイン (例: KeeperClient) の再起動またはエージェントの再起動、および/または
デプロイでロケールキャッシュを使っている場合のlocale-cache-cleanupジョブ (または同等の処理) の実行 (次の要求で最新データの取得)
重要:
有効なJSONの維持 (カンマ、引用符)
編集前のファイルのバックアップ
アプリ参照中キーの削除禁止 (キー欠落プレースホルダ表示のリスク)
ローカライズAPIによる文言の変更 (管理者)
ローカライズ文字列の作成、更新、削除向けの管理者用エンドポイントが公開されています。
POST
/api/localization/strings
ローカライズ文字列の作成 (ボディ: キーとカルチャ別の値)
PUT
/api/localization/strings/{key}
既存文字列の更新
DELETE
/api/localization/strings/{key}
文字列の削除
これらは通常、GET /api/localization/{component}/{culture} への応答に使われる同一データを操作します。ファイルベースのロケールファイルへの反映か別ストアかは実装依存です。製品ドキュメントまたはAPIドキュメントをご参照ください。変更後は関連するUIの再起動またはロケールキャッシュのクリアを行い、クライアントが更新後の文言を読み込むようにします。
例 (概念): キー kepm_shared_button_ok の英語文言を変えるには、更新後の en_US 値を含むPUTボディを送ります。正確なリクエスト/レスポンス形式は製品のAPI仕様に従います。
新しいキーまたは新しいカルチャの追加
新しいキー: 適切なJSONファイルに、同じ構造の新しいトップレベルキー (キー名 → カルチャコードと文字列のオブジェクト)。一貫した命名規則 (例:
kepm_<component>_<description>)。UIまたはジョブ (トーストのmessageKeyなど) による参照時の、指定文言の表示。新しいカルチャ: 既存 (または新規) のキーオブジェクトへの新しいプロパティの追加。例:
"pt_PT": "Texto em português"。製品で利用可能なロケールかどうかの確認 (またはデプロイで使うカスタムコードの文書化)。
命名規則とベストプラクティス
キー命名: 多くのキーは
kepm_shared_*、kepm_kc_*、kepm_kmfa_*などのプレフィックス。同様のスタイルの維持 (検索・保守のしやすさ)。フォールバック: カルチャ欠落時のデフォルトとして、少なくともen_USの用意。
パラメータ付き文字列: 動的部分 (ファイル名、件数など) への
{0}、{1}の使用。アプリによる順次代入。テスト: ファイルまたはAPIの変更後、ユーザーのロケールを当該カルチャに設定 (例:LanguageOverride経由) し、UIの再起動と新しい文言の確認。
ロケール登録とローカライズAPIの概要
ロケールの設定
デフォルトはシステム検出。任意の上書きはmetadata.LanguageOverride (KeeperClient)、--language-override、またはPOST /api/Locale/Register
ロケールの上書き
KeeperClientプラグイン構成でのLanguageOverrideをカルチャコード (または DEFAULT) に設定し、プラグインを再起動。またはそのユーザー向けのPOST /api/Locale/Register
文言の変更
適切なLocalization/*.jsonの編集 (キー → カルチャ → 文言)。またはPOST/PUT/DELETE /api/localization/strings (管理者)。変更後のUI再起動またはロケールキャッシュのクリア
ロケールファイル
サービスLocalizationディレクトリ配下のLocaleValues、SharedLocales、KeeperClientLocales、KeeperMfaLocales、KeeperApprovalLocales、KeeperJustificationLocales、KeeperMessageLocales、KeeperTrayLocales、KeeperControlsLocalesなど
構造
"key": { "en_US": "text", "fr_FR": "text", ... }。パラメータ付き文字列での {0}、{1} の使用
最終更新

