【Power Apps 初心者向け!】キャンバスアプリで表示テキストの言語切り替え術

こんにちは! DXソリューション営業本部の森です。
Power Appsのキャンバスアプリ上で、ラベルコントロールやボタンコントロールなどのテキスト表示を
日本語だけでなく英語などの言語に切り替えて使いたいと思っている方はいらっしゃいませんか?
そういう方いらっしゃいましたら、是非、本ブログをご覧ください!
簡単に実装の流れを説明すると、以下のようになります。
1.SharePointリストやExcelで言語テーブルを作成する
2.キャンバスアプリ上でLanguage関数を使用して数式を入力する
3.キャンバスアプリ上でラベルコントロールや言語切り替え用のボタンコントロールを追加し、数式を入力する
本ブログでは、SharePointリストをデータソースとして、キャンバスアプリ上でラベルコントロールの表示テキストを日本語から英語に切り替える方法をご紹介します!
事前準備 ~言語テーブルの作成~
はじめにSharePointリストで言語テーブルを作成していきます!SharePointのホームの「新規」から「リスト」を押下します。
![]() |
「リストを作成」から「空白のリスト」を選択します。
![]() |
任意の名前を入れて、「作成」ボタンを押下します。
「説明」は、必要に応じて入力します。
![]() |
本ブログでは、「名前」に「LanguageTable」と入力して、「作成」ボタンを押下します。
![]() |
リストが作成されます。
![]() |
次に、作成したリスト(LanguageTable)に列を追加します。作成する列名と種類は以下になります。
列名 | 種類 | 備考(使用用途) |
---|---|---|
LanguageTag | 1行テキスト | 言語コード(例:jaやenなど) |
TextID | 1行テキスト | PowerAppsのアプリ上から値を参照する際の一意のID |
LocalizedText | 1行テキスト | PowerAppsのアプリ上で表示したい文章 |
実際に列を作成すると下図のようになります。
今回は上記列以外は作成しませんが、これに加えて備考列などを作成し、キャンバスアプリ上で使用するスクリーン名などを記載してあげておくと、開発や改修の際にメンテナンスしやすくなると思います。
![]() |
作成したリスト(LanguageTable)にアイテムを登録します。
「LanguageTag」列には、言語コード、「TextID」列には、PowerAppsのアプリ上から値を参照する際の一意のID、「LocalizedText」列には、アプリ上で表示したい文章を登録してあげてください。
実際にアイテムを登録した際の画像は下記になります。
|
これで、事前準備となる言語テーブルのリストの準備が完了です!
Power Appsでキャンバスアプリを作成しよう
ここからは、Power Appsでキャンバスアプリを作成していきます。
まず、「作成」から「空のアプリ」を選択します。
![]() |
「空のキャンバスアプリ」の「作成」ボタンを押下します。
![]() |
「キャンバスアプリを一から作成」にて、任意のアプリ名と形式(「タブレット」か「電話」)を選択し、「作成」ボタンを押下します。
今回は「アプリ名」に「多言語対応アプリ」と入力し、「形式」は「電話」を選択して、アプリを作成していきます。
![]() |
編集画面が表示されます。自分自身の用途に合ったアプリを作成していきましょう。
![]() |
今回は、ラベルコントロール1つとボタンコントロール2つを追加します。
![]() |
必要に応じて、ラベルコントロールとボタンコントロールの各プロパティを変更します。
![]() |
データソースを追加しよう
次に、データソースとして「SharePointコネクタ」を追加していきます。
「データ」→「+データの追加」を押下します。
![]() |
「データソースの選択」が表示されるので検索ボックスに「SharePoint」と入力します。
入力後、「SharePoint」コネクタを押下します。
![]() |
事前準備として作成したリスト(LanguageTable)を選択して、「接続」ボタンを押下します。
![]() |
これで、SharePointコネクタをデータソースとして追加できました!
![]() |
数式を入力しよう
まず、アプリを起動したときに自身の言語を取得してきて、それに対応した言語テーブルに切り替えを行いため、
AppのOnStartプロパティに以下数式を入力します。
OnStart = Language();
この数式を入力することで自身の言語タグが取得できます。
![]() |
今回は、Language関数で取得した言語タグを変数で格納します。
また、言語タグが取得できない場合(空白だった場合)は、規定で英語(en)を返すように条件式を追加しておきます。
![]() |
言語切り替えさせるラベルコントロールのTextプロパティに以下数式を入力していきます。
LookUp(LanguageTable,TextID="<LanguageTableのTextIDの値>"&&(LanguageTag=Left(Lang,2))).LocalizedText
※<LanguageTableのTextIDの値>は、事前準備部分で作成したリスト(LanguageTable)の対象のTextIDの値を入力してください。
今回の場合は、以下式を入力します。
LookUp(LanguageTable,TextID="TEST1"&&(LanguageTag=Left(Lang,2))).LocalizedText
そうするとLanguageTableに格納されているTextIDとLanguageTagが一致している
LocalizedTextの値を返してくれていますね!
![]() |
日本語切り替えボタンと英語切り替えボタンのOnSelectプロパティの数式を入れていきましょう。
日本語切り替えボタンのOnSelectプロパティに以下数式を入れます。
Set(Lang,"ja")
![]() |
英語語切り替えボタンOnSelectプロパティに以下数式を入れます。
OnSelect = Set(Lang,"en")
![]() |
ここまでできたらアプリを保存し、公開しましょう!
実際にアプリを起動してみると、ラベルコントロールの表示テキストは、日本語で表示されていますね。
これはログインユーザーが日本のため、言語タグとして「ja」が取得されるので、日本語として表示されます。
![]() |
次に「英語に変換」ボタンを押下してみると、
ラベルコントロールの表示テキストが英語に変化していることが分かると思います。
![]() |
まとめ
ここまで、Power Apps上でLanguage関数を使用して、ラベルコントロールの表示テキストの値の言語切り替えを行ってみましたがいかがだったでしょうか。
今回はラベルコントロールでの紹介をしましたが、ボタンコントロールの表示テキストなども対応することが可能です!
また、Language関数を使用すれば、日本語や英語のみならず、他の言語に切り替えて表示できるアプリが作成できます。
さらに言語テーブルをSharePointリストやExcelで作成することによって、ラベルコントロールなどの表示テキストを一部変更したいといった要望があった場合、リストやExcel上のデータを修正するだけで対応することができます。
本記事をみて多言語対応したアプリを開発したい!や興味を持った方などいらっしゃいましたら、
是非、「お問い合わせフォーム」から気軽にお問合せください!
ちなみに弊社では、Power Apps /Platformに関するサポートメニューも用意しております。
ご興味のある方は、こちらもご覧ください!
このブログで参照されているMicrosoft、Power Apps、その他マイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。