はじめに
Workbot for Slackを多言語な組織で利用したい場合、日本語のユーザーに対しては日本語で、それ以外のユーザーに対しては英語でBotからのメッセージやApp Homeを出力したいケースもあるかと思います。
例えば、日本語のユーザーに対しては「こんにちは、世界!」、それ以外のユーザーに対しては「Hello, World!」のようにメッセージを出力するには、以下の手順で対応することができます。
レシピ
以下は、多言語対応レシピの一例となります。Step2で言語(locale)を含むユーザー情報を取得します。その後localeに応じた条件分岐を行い、ユーザーの言語に合ったメッセージをSlackへ出力します。
手順
Step1 Workbot for Slackコネクターを追加し、トリガーを設定します。
以下では New Command
トリガーを指定していますが、New event
New Shortcat trigger
など、その他のトリガーも対応可能です。
Step2 Workbot for Slackコネクターを追加し、Custom Actionを設定します。
{
"ok": true,
"user": {
"id": "W012A3CDE",
"team_id": "T012AB3C4",
"name": "spengler",
"deleted": false,
"color": "9f69e7",
"real_name": "Egon Spengler",
"tz": "America/Los_Angeles",
"tz_label": "Pacific Daylight Time",
"tz_offset": -25200,
"profile": {
"avatar_hash": "ge3b51ca72de",
"status_text": "Print is dead",
"status_emoji": ":books:",
"real_name": "Egon Spengler",
"display_name": "spengler",
"real_name_normalized": "Egon Spengler",
"display_name_normalized": "spengler",
"email": "spengler@ghostbusters.example.com",
"image_original": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_24": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_32": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_48": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_72": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_192": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_512": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"team": "T012AB3C4"
},
"is_admin": true,
"is_owner": false,
"is_primary_owner": false,
"is_restricted": false,
"is_ultra_restricted": false,
"is_bot": false,
"updated": 1502138686,
"is_app_user": false,
"has_2fa": false,
"locale": "en-US"
}
}
Step3 ユーザーの言語が日本語の場合のif条件を設定します。
項目 | 値 |
---|---|
Data field | Step2の User > Locale |
Condition | equal |
Value | ja-JP |
Step4 日本語の場合の結果を定義します。
以下では、「こんにちは、世界!」というメッセージをSlack上のトリガーが発生したチャンネル上に出力します。
Step5 ユーザーの言語が日本語以外の場合のif条件を設定します。
項目 | 値 |
---|---|
Data field | Step2の User > Locale |
Condition | does not equal |
Value | ja-JP |
Step6 日本語以外の場合の結果を定義します。
以下では、「Hello World!」というメッセージをSlack上のトリガーが発生したチャンネル上に出力します。
実行結果
Slackユーザーの設定言語が日本語の場合
Slackユーザーの設定言語が日本語以外の場合
参考情報