Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Ochanoko
Creator
Creator

言語の絞込によるラベルの切替方法が分からない。

お世話になります。

クリックセンスに関する質問です。

Qlikの公式デモサイトを見ていると、languageフィルターパネルで言語を選択すると、選択した言語に対応する形でラベルが表示されています。

この動作を再現するためにはどうすればいいかお教えいただけませんでしょうか?

3 Solutions

Accepted Solutions
kentaroWakamatsu
Creator II
Creator II

該当アプリを見ていないので何とも言えませんが、おそらく下記のようなテーブルを用意して、ラベルは計算式を使って値を切り替えているように思います。

テーブル:

言語コード, 言語

1, 日本語

2, 英語

3, 中国語

 

ラベルに記載する計算式:

Pick(言語コード, '売上', 'Sales', '营业额')

 

上記のようにすれば、フィルターに「言語」を用意して一つ選択する事で、「言語コード」に対応するラベルが表示可能だと思います。

View solution in original post

kuya_japan
Contributor III
Contributor III

Qlikとは関係ないところで似たような機能を実装したことがありますが、

画面上に表示する文言を、全て事前に登録しておくことで切り替えが容易になります。

実際の実装方法は、kentaroWakamatsuさんの回答を参照してください。

 

Key,Japanese, English

1,商品在庫,Items in Stock

2,当週売上,Sales this week

3,前週売上,Sales last week

4,前週差,Variance

5,売上 Vs 商品別在庫,Sales Vs Stock per Item

6,…

View solution in original post

Yuki_Suzuki
Employee
Employee

kentaroWakamatsuさん、Kuya_Japanさんの方法で正解ですが、少し補足しておきます。

以下のテーブルを用意します。

1. 言語の種類を格納したテーブル(Japanese, English など、項目名をLanguageとして解説します)

2. 各見出し、項目名など翻訳したい内容のテーブル(Kuya_Japanさんの掲示されている内容)

これらのテーブルと実際のデータテーブルとは紐づけせずにロードします。

1のテーブルでLanguageフィルタを作ります。項目欄のフィールドの設定で、「1個の値を常に選択」をチェックしておきます。

選択されているLanguageが入る変数を作ります。変数 = ministring(Language)

あとは、見出しや項目名に数式 =Only({<LanguageIndex = {1}>} [$(vLanguage)])  と記載し、2のテーブルのインデックス番号をSet文で指定し、指定された言語の翻訳文を表示します。Englishが選択されている場合、この数式は、2のテーブルのEnglish列の1番目を表示します。

こうしておくと、言語が増えた場合も、アプリが変更になって翻訳箇所が変わった場合も、テーブルの内容を変更することで対応できます。

文章ではわかりづらいと思いますのでサンプルをつけておきます。

 

 

 

 

View solution in original post

4 Replies
kentaroWakamatsu
Creator II
Creator II

該当アプリを見ていないので何とも言えませんが、おそらく下記のようなテーブルを用意して、ラベルは計算式を使って値を切り替えているように思います。

テーブル:

言語コード, 言語

1, 日本語

2, 英語

3, 中国語

 

ラベルに記載する計算式:

Pick(言語コード, '売上', 'Sales', '营业额')

 

上記のようにすれば、フィルターに「言語」を用意して一つ選択する事で、「言語コード」に対応するラベルが表示可能だと思います。

kuya_japan
Contributor III
Contributor III

Qlikとは関係ないところで似たような機能を実装したことがありますが、

画面上に表示する文言を、全て事前に登録しておくことで切り替えが容易になります。

実際の実装方法は、kentaroWakamatsuさんの回答を参照してください。

 

Key,Japanese, English

1,商品在庫,Items in Stock

2,当週売上,Sales this week

3,前週売上,Sales last week

4,前週差,Variance

5,売上 Vs 商品別在庫,Sales Vs Stock per Item

6,…

Yuki_Suzuki
Employee
Employee

kentaroWakamatsuさん、Kuya_Japanさんの方法で正解ですが、少し補足しておきます。

以下のテーブルを用意します。

1. 言語の種類を格納したテーブル(Japanese, English など、項目名をLanguageとして解説します)

2. 各見出し、項目名など翻訳したい内容のテーブル(Kuya_Japanさんの掲示されている内容)

これらのテーブルと実際のデータテーブルとは紐づけせずにロードします。

1のテーブルでLanguageフィルタを作ります。項目欄のフィールドの設定で、「1個の値を常に選択」をチェックしておきます。

選択されているLanguageが入る変数を作ります。変数 = ministring(Language)

あとは、見出しや項目名に数式 =Only({<LanguageIndex = {1}>} [$(vLanguage)])  と記載し、2のテーブルのインデックス番号をSet文で指定し、指定された言語の翻訳文を表示します。Englishが選択されている場合、この数式は、2のテーブルのEnglish列の1番目を表示します。

こうしておくと、言語が増えた場合も、アプリが変更になって翻訳箇所が変わった場合も、テーブルの内容を変更することで対応できます。

文章ではわかりづらいと思いますのでサンプルをつけておきます。

 

 

 

 

Ochanoko
Creator
Creator
Author

皆様、ありがとうございます。

大変分かりやすい回答で、私でも理解できました。

早速試してみようと思います。