1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WorkatoAdvent Calendar 2023

Day 14

Workato:Workbot for SlackでメッセージやApp Homeを多言語化するには

Last updated at Posted at 2023-12-13

はじめに

Workbot for Slackを多言語な組織で利用したい場合、日本語のユーザーに対しては日本語で、それ以外のユーザーに対しては英語でBotからのメッセージやApp Homeを出力したいケースもあるかと思います。

例えば、日本語のユーザーに対しては「こんにちは、世界!」、それ以外のユーザーに対しては「Hello, World!」のようにメッセージを出力するには、以下の手順で対応することができます。

レシピ

以下は、多言語対応レシピの一例となります。Step2で言語(locale)を含むユーザー情報を取得します。その後localeに応じた条件分岐を行い、ユーザーの言語に合ったメッセージをSlackへ出力します。

image.png

手順

Step1 Workbot for Slackコネクターを追加し、トリガーを設定します。

以下では New Command トリガーを指定していますが、New event New Shortcat trigger など、その他のトリガーも対応可能です。

image.png

Step2 Workbot for Slackコネクターを追加し、Custom Actionを設定します。

image.png

image.png

項目
Action name 任意の名称
Method GET
Path users.info
Response type JSON request
Request URL parameters user: Step1の Context > User ID
image.png
include_locale: true
Request body Use JSON をクリックし、以下のJSONテキストをコピーしてスキーマを生成する
image.png
{
    "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条件を設定します。

image.png

項目
Data field Step2の User > Locale
image.png
Condition equal
Value ja-JP

Step4 日本語の場合の結果を定義します。

以下では、「こんにちは、世界!」というメッセージをSlack上のトリガーが発生したチャンネル上に出力します。

image.png

Step5 ユーザーの言語が日本語以外の場合のif条件を設定します。

image.png

項目
Data field Step2の User > Locale
image.png
Condition does not equal
Value ja-JP

Step6 日本語以外の場合の結果を定義します。

以下では、「Hello World!」というメッセージをSlack上のトリガーが発生したチャンネル上に出力します。

実行結果

Slackユーザーの設定言語が日本語の場合

image.png

Slackユーザーの設定言語が日本語以外の場合

image.png

参考情報

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?