LoginSignup
5
2

More than 5 years have passed since last update.

ServiceNowのフォームのラベルやメッセージを多言語対応する

Last updated at Posted at 2018-04-08

概要

ServiceNowには.NETアプリケーションのように、現在の言語設定に応じて自動的に言語を切り替える仕組みが備わっている。
多言語表示用の文言は、文言のキーと言語のキーごとにテーブルに保存されている。
ユーザーが表示言語を切り替えると、自動的にその言語をキーとする文言を多言語テーブルから取得し表示される。

環境

バージョン:KINGSTONE(Developer Instance)

フォームのラベル

ServiceNowのFormはTableのカラム情報を元に生成される。Formの表示ラベルはTableのカラム情報の設定で多言語表示用のラベルを追加する。
Language列に「ja」を設定したレコードを追加することにより、ユーザーの言語設定が日本語の場合に、その「Label」列の文言がFormに表示される。

tablelabelmultilanguage.png

なお、各テーブルのカラム情報のLabelsに追加したレコードは、「Field Labels」に追加されている。「Field Labels」に直接追加しても同様の結果が得られる。一括で多言語対応の文言を追加したい場合は、「Field Labels」に直接追加した方が効率が良い。

FieldLabels.png

メッセージ

サーバースクリプトで使用するメッセージについて、リテラルの文字列を埋め込んでしまうと当然ながら多言語対応ができない。

多言語化対応前のソース
gs.addErrorMessage("When needed date cannot be in the past.  Your request has not been saved to the database.");
多言語化対応後のソース
gs.addErrorMessage(gs.getMessage('date_validatte_message'));

なお、「gs.getMessage」の引数はメッセージリソースのキーである。
メッセージリソースは、「System Localization」の「Messages」レコードの追加により追加する。

ユーザーの言語が英語の場合の表示

systemlocalization_message.png

ユーザーの言語が日本語の場合の表示

message_english.png
message_japanese.png

ユーザー言語の切り替えについて

ユーザー言語の切り替えは、SeriveNowで直接ログインする場合は、ログイン時に選択が可能だ。

servicenowlogon.png

シングルサインオン(SSO)などで別の認証システムから連携されて自動的にログインした場合は、ホーム画面の右上のギアアイコンをクリックし、設定画面から設定変更する。

homegear.png

General(一般)設定のLanguageから言語を選択する。
なお、選択可能な言語はそのServiceNowのシステムにインストールされている言語に限定される。

servicenowsystemsettings.png

参考

ServiceNowのDeveloper Instanceの初期状態では、日本語リソースがインストールされていない。
下記を参考に、日本語リソース表示用のプラグインのインストール後、日本語の切り替えが可能となる。日本語以外の言語も同様の方法で追加が可能である。

ServiceNow初期設定 インスタンスを日本語化する

5
2
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2