はじめに

この記事はQlik Design Blogに掲載されたMaking a Multilingual Qlik Sense Appをもとに作成しています。

Qlik Senseでは簡単な方法でアプリケーションを複数言語対応にすることができます。フィルターパネルで言語を選択することで、日本語や英語表示に切り替えることができます。この記事ではQlik Senseアプリを複数言語対応にする方法をご紹介します。実際の操作は先日ご紹介した次の公式デモでご覧ください。

公式デモサイトに日本語デモを公開

翻訳シートの作成

連番、アプリに含まれるテキスト、各言語による翻訳を項目に持つExcelシートを作成します。図の例では英語と日本語の2か国語用のシートとなっています。

 

ロードスクリプトの更新

作成した翻訳シート(Translations)をアプリに追加します。読み込み後、言語の種類を持つテーブル(LanguageList)を作成するために、翻訳シートのピボットを解除したテーブル(Language)を作成します。このテーブルは言語の種類テーブル作成後に削除します。これらのテーブルは他のテーブルとは連結させません。

 

スクリプトの例です。

 

また言語表示用の変数を作成しておきます。

vLanguage = ‘=Minstring(#LANGUAGE)’;

上の図のスクリプトでは1行目にHidePrefixシステム変数を使用して、「#」で始まるすべてのフィールドを非表示にしています。ユーザーには#LANGUAGEフィールドは表示されません。HidePrefixはシート変更後、最後に追加してロードします。

 

言語のフィルターパネルを追加

アプリ内の必要部分にスクリプトで作成した#LANGUAGEを使用して言語のフィルターパネルを追加します。ユーザーが常に1つの言語しか選択できないようにするため、アセットパネルの項目一覧の#LANGUAGEを右クリックし、[フィールド設定]で[常に1つの選択値]チェックボックスをオンにします。選択された#LANGUAGEの値は変数vLanguageに格納されます。

 

シートのテキストを更新

シート名、チャートのタイトルとサブタイトル、チャートのラベル、KPIテキスト、およびシート上のテキストなど、多言語で表示したい部分に、該当するindexの式を入力します。例えば、翻訳シートのindex=3のテキストを表示する箇所には下記を設定します。

=Only({<Index = {3}>} [$(vLanguage)])

Japaneseが選択されている場合、翻訳シートのJapanese列の3番目のテキストが表示されます。

また次のように見出しと本文で異なるフォントスタイルで文章が書かれている場合は、見出しと本文を別項目として、それぞれ別のindexで翻訳文を表示します。

 

まとめ

ご紹介した方法で容易にアプリを多言語化することができます。またこの方法では言語を増やしたい場合も、翻訳シートへの列追加と、ロードスクリプトのシート読込部分の変更だけで対応することができます。