---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# メッセージ - グローバル

# メッセージ - グローバル {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：12分

Message Server API を使用すると、code パラメーターに等しいコード、message パラメーターに等しいキー、およびセッションの言語 (またはフォールバック言語) に等しい言語を持つエントリのメッセージ \[sys_ui_message\] テーブルからローカライズされたメッセージを取得できます。  
Message API は、ユーザーのセッション言語または指定された言語パラメーターに基づいてメッセージを動的にフェッチすることで、インターナショナリゼーション (i18n) をサポートします。この API には、次の 3 つの主な機能があります。

* 曖昧性除去: `コード` と `メッセージの` 複合キーを使用して、異なるコンテキストで使用される同一の文字列を区別します(たとえば、動詞と名詞としての「open」)。
* 名前付きパラメーター: 名前付きプレースホルダーを使用して、値をメッセージテンプレートに動的に補間できます。
* 言語制御: `getMessageLang` を使用すると、ターゲット言語を指定でき、差し込み印刷や多言語通知などのシナリオに役立ちます 2 3.
{#sn_i18n.messageAPI__ul_knd_2wg_ngc}

メッセージ API は、`sn_i18n` 名前空間内の標準ベースシステムで提供され、アクセスするためにプラグインや特別なロールは必要ありません。このクラス内のメソッドを呼び出す前に、適切なメッセージ \[sys_ui_message\] レコードが存在し、一致する `キー`、 `コード`、 `および言語` フィールドが入力されていることを確認してください。

## メッセージ:getMessage(String code, String message, Map args) {#ariaid-title2}

曖昧性除去と動的なコンテンツ挿入を可能にしながら、メッセージ \[sys_ui_message\] テーブルからローカライズされたメッセージを取得します。
args パラメーターの値は、文字列内の一致するテンプレートリテラルに補間されます。
{#sn_i18n.message-getMessage__table_ikk_fn1_ggc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| コード | 文字列 | 必須です。識別子として使用される最大 255 文字の文字列。 code は、テキストが似ていて意味やコンテキストが異なるメッセージを明確にするために使用できます。推奨値はアプリケーションスコープの名前です。 さらに曖昧さ回避が必要な場合は、拡張することができます。 たとえば、「オープン」はステータスまたはアクションを意味する可能性があるため、 code パラメーターは使用する意味を明確にするのに役立ちます。文字列が同じで大文字と小文字が異なる 2 つのメッセージが必要な場合、スクリプトは次のようになります。 sn_i18n.Message.getMessage("scopeName-open-capitalized", "Open"); sn_i18n.Message.getMessage("scopeName-open", "open"); |
| メッセージ | 文字列 | 必須です。英語のメッセージ。メッセージ \[sys_ui_message\] テーブルの `キー` フィールドに対応します。このメッセージは、ターゲット言語のローカライズされたバージョンが見つからない場合に使用されます。 |
| args | JSON | オプション。メッセージを動的に値を挿入するために使用される名前付きパラメーターのマップ。キーは、メッセージ内の名前付きパラメーターと一致します。値は、スコープ内にある文字列リテラルまたは変数/定数にすることができます。 たとえば、メッセージが `「Hello, {name}!」`の場合、 `{name: "John"}` を渡して `「Hello, John!」`をレンダリングできます。 |
[表 : 1. パラメーター]

{#sn_i18n.message-getMessage__table_ikk_fn1_ggc} {#sn_i18n.message-getMessage__table_jkk_fn1_ggc__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | メッセージ \[sys_ui_message\] テーブルから値を返します。 * code パラメーターが code フィールドと一致します。 * メッセージパラメーターの最初の 255 文字がキーフィールドと一致します。 * セッション言語が言語フィールドと一致します。 一致するものが見つからない場合は、代替言語の一致がチェックされます ( [Set a fallback language](https://www.servicenow.com/docs/access?context=set-fallback-language&version=australia&pubname=australia-platform-administration&ft:locale=en-US) を参照)。それでも一致するものが見つからない場合は、メッセージ値 (第 2 パラメーター) が返されます。 名前付きパラメーターは、args パラメーターで渡されたマップ内の指定された値に置き換えられます。 |
[表 : 2. 返される内容]

{#sn_i18n.message-getMessage__table_jkk_fn1_ggc}  
次の例では、getMessage() メソッドを呼び出して、ユーザーセッション言語であるフランス語でメッセージ \[sys_ui_message\] テーブルの既存のレコードを取得します。次のコードブロックには、メッセージの内容が含まれています。

    <?xml version="1.0" encoding="UTF-8"?>
    <xml>
    	<sys_ui_message>
    		<code>exampleCode</code>
    		<key>User {username} has been added as {role}</key>
    		<language>fr</language>
    		<message>L'utilisateur {username} a été ajouté en tant que {role}</message>
    	</sys_ui_message>
    </xml>

この例では、フランス語のセッション言語で API スクリプトを実行します。

    //defines a user object using the name and role properties
    var user = {
    name: "Fred Luddy",
    role: "maint"
    }

    //retrieves a localized message where code: "exampleCode" is the disambiguation key, message: User {username} has been added as {role}" is the default message template, and args: username: user.name, role: user.role } is a map of named parameters that will replace {username} and {role} in the message.
    gs.info(sn_i18n.Message.getMessage("exampleCode","User {username} has been added as {role}",{username: user.name, role: user.role}));

出力には、フランス語のメッセージが含まれています。

    //English: User Fred Luddy has been added as maint
    L'utilisateur Fred Luddy a été ajouté en tant que maint

### 名前付きパラメーターなしの基本的な使用法 {#sn_i18n.message-getMessage__example_znw_dzg_ngc}

    // Retrieves a localized message using only code and default message
    var message = sn_i18n.Message.getMessage("status.open", "Open");
    gs.info(message); // Output depends on user's session language

この例では、メッセージの曖昧さをなくすために code パラメーターを拡張し、翻訳が見つからない場合の代替として message パラメーター "Open" を拡張します。  

### 名前付きパラメーターの基本的な使用法 {#sn_i18n.message-getMessage__example_dkn_q1h_ngc}

    // Retrieves a localized message with named parameters
    var message = sn_i18n.Message.getMessage(
     "scopeName" + "_greeting_personal",
     "Hello, {name}! You have {count} new messages.",
     { name: "John", count: 5 }
    );
    gs.info(message);

出力：

    "Hello, John! You have 5 new messages." (localized if available)

この例では、この挨拶を他の挨拶と区別するために code パラメーターを「 `greeting_personal」` で拡張しています。 message はプレースホルダーを含むテンプレートです。 args (`{name: "John", count: 5}`) がプレースホルダーを入力します。

## メッセージ:getMessageLang(String code, String message, Map args, String language) {#ariaid-title3}

現在のユーザーのセッション言語に関係なく、メッセージ \[sys_ui_message\] 内のローカライズされたメッセージを指定された言語で取得します。
args パラメーターの値は、文字列内の一致するテンプレートリテラルに補間されます。  
getMessageLang() は次の場合に役立ちます。

* セッション言語の上書き:特定の言語で通知、メール、またはレポートを送信する場合に便利です。
* 多言語サポート:さまざまな地域のユーザーにサービスを提供するアプリケーションに最適です。
* 翻訳のテスト:開発者は、ユーザー設定を変更せずに、他の言語でメッセージがどのように表示されるかをプレビューできます。
{#sn_i18n.message-getMessageLang__ul_n41_4ch_ngc} {#sn_i18n.message-getMessageLang__table_ikk_fn1_ggc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| コード | 文字列 | 必須です。識別子として使用される最大 255 文字の文字列。 code は、テキストが似ていて意味やコンテキストが異なるメッセージを明確にするために使用できます。推奨値はアプリケーションスコープの名前です。 さらに曖昧さ回避が必要な場合は、拡張することができます。 たとえば、「オープン」はステータスまたはアクションを意味する可能性があるため、 code パラメーターは使用する意味を明確にするのに役立ちます。文字列が同じで大文字と小文字が異なる 2 つのメッセージが必要な場合、スクリプトは次のようになります。 sn_i18n.Message.getMessage("scopeName-open-capitalized", "Open"); sn_i18n.Message.getMessage("scopeName-open", "open"); |
| メッセージ | 文字列 | 必須です。英語のメッセージ。メッセージ \[sys_ui_message\] テーブルの `キー` フィールドに対応します。このメッセージは、ターゲット言語のローカライズされたバージョンが見つからない場合に使用されます。 |
| args | JSON | オプション。メッセージを動的に値を挿入するために使用される名前付きパラメーターのマップ。キーは、メッセージ内の名前付きパラメーターと一致します。値は、スコープ内にある文字列リテラルまたは変数/定数にすることができます。 たとえば、メッセージが `「Hello, {name}!」`の場合、 `{name: "John"}` を渡して `「Hello, John!」`をレンダリングできます。 |
| 言語 | 文字列 | 必須です。メッセージを返す言語。 形式: [BCP-47 言語コード](https://appmakers.dev/bcp-47-language-codes-list/) デフォルト:セッション言語 |
[表 : 3. パラメーター]

{#sn_i18n.message-getMessageLang__table_ikk_fn1_ggc} {#sn_i18n.message-getMessageLang__table_jkk_fn1_ggc__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | メッセージ \[sys_ui_message\] テーブルから値を返します。 * code パラメーターが code フィールドと一致します。 * メッセージパラメーターの最初の 255 文字がキーフィールドと一致します。 * セッション言語が言語フィールドと一致します。 一致するものが見つからない場合は、代替言語の一致がチェックされます ( [Set a fallback language](https://www.servicenow.com/docs/access?context=set-fallback-language&version=australia&pubname=australia-platform-administration&ft:locale=en-US) を参照)。それでも一致するものが見つからない場合は、メッセージ値 (第 2 パラメーター) が返されます。 名前付きパラメーターは、args パラメーターで渡されたマップ内の指定された値に置き換えられます。 |
[表 : 4. 戻り値]

{#sn_i18n.message-getMessageLang__table_jkk_fn1_ggc}  
次の例では、getMessageLang() メソッドを呼び出して、メッセージ \[sys_ui_message\] テーブルの既存のレコードを日本語に翻訳します。次のコードブロックには、メッセージの内容が含まれています。

    <?xml version="1.0" encoding="UTF-8"?>
    <xml>
    	<sys_ui_message>
    		<code>exampleCode</code>
    		<key>User {username} has been added as {role}</key>
    		<language>ja</language>
    		<message> {username} が {role} として追加されました。</message>
    	</sys_ui_message>
    </xml>

この例では、日本語以外のセッション言語で API スクリプトを実行します。

    var user = {
        name: "Fred Luddy",
        role: "maint"
    }
    gs.info(sn_i18n.Message.getMessageLang("exampleCode","User {username} has been added as {role}",{username: user.name, role: user.role}, "ja"));

出力には、日本語のメッセージが含まれています。

    Fred Luddy が maint として追加されました

次の例では、動的コンテンツに名前付きパラメーター ({username}、{role}) を使用し、ISO 言語コード ("fr"、"ja"、"es") を使用してターゲット言語を指定し、翻訳が見つからない場合はデフォルトメッセージにフォールバックします。

フランス語の通知:

    var user = {
      name: "Fred Luddy",
      role: "maint"
    };

    var message = sn_i18n.Message.getMessageLang(
      "user.added",
      "User ${username} has been added as ${role}",
      { username: user.name, role: user.role },
      "fr" // French
    );

    gs.info(message); // Output: "L'utilisateur Fred Luddy a été ajouté en tant que maint" (if translation exists)

日本語の通知:

    var user = {
      name: "Hanako Yamada",
      role: "admin"
    };

    var message = sn_i18n.Message.getMessageLang(
      "user.added",
      "User ${username} has been added as ${role}",
      { username: user.name, role: user.role },
      "ja" // Japanese
    );

    gs.info(message); // Output: "ユーザー Hanako Yamada が admin として追加されました" (if translation exists)

スペイン語の通知:

    var user = {
      name: "Carlos Ruiz",
      role: "editor"
    };

    var message = sn_i18n.Message.getMessageLang(
      "user.added",
      "User ${username} has been added as ${role}",
      { username: user.name, role: user.role },
      "es" // Spanish
    );

    gs.info(message); // Output: "El usuario Carlos Ruiz ha sido añadido como editor" (if translation exists)


