LoginSignup
0
0

Discordスラッシュコマンド, Interaction Object の "guild_locale", "locale" について

Last updated at Posted at 2024-04-30

やりたかったこと

  • スラッシュコマンドにて、表示言語を導入サーバーに適したものに自動設定したい
  • 受信したパラメタで判定に使える値を探したい

受信パラメタ調査

locale

Selected language of the invoking user

guild_locale

Guild's preferred locale, if invoked in a guild

→ preferred_locale

the preferred locale of a Community guild; used in server discovery and notices from Discord, and sent in interactions; defaults to "en-US"

設定箇所

locale 「ユーザー設定」→「言語」

ここは自分で設定した記憶があるので迷わなかった。

locale.png

lang.png

guild_locale 「サーバー設定」→「コミュニティ 概要」→「サーバーの第一言語」

以下については普段「フレンドサーバー」でテストしていたので設定が見つからず困った。
後述するが「フレンドサーバー」を「コミュニティーサーバー」に変更して変更できた。

スクリーンショット 2024-04-30 20.26.47.png

スクリーンショット 2024-04-30 20.26.11.png

「フレンドサーバー」と「コミュニティーサーバー」

サーバータイプ(ヘルプセンター)

先述したが、"guild_locale"は「コミュニティーサーバー」でのみ設定可能。
フレンドサーバーでは常にでファオルトの"en-US"固定となる模様。

結局どうするか

  • フレンドサーバーに導入してもらうこともあるだろうから、"guild_locale"だけで判定はできない。
  • localeはサーバー管理者だけが実行するサーバー、初回サーバー管理者が起動するサーバーでは有効か。
  • 初回起動時に"locale"で判定し、後からサーバー管理者が設定変更できるような仕様にすることにした。

注意とお願い

  • ここら辺仕様が今後変わりそうな気がします。2024.04.30現在の情報である点ご注意ください
  • そもそも間違っていたり、もっと良い方法があればご指摘いただけるとありがたいです🙇

追記1(2024.04.30 22:00)

  • 言語=利用場所(タイムゾーン)ではない
  • 例)en-US を米国としても東部と西部では差が激しい
  • 場合によっては政治的な配慮が必要なケースが生じる可能性
  • あくまで目安として設定し、まよったらデフォルトのen-USにしておく
0
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
0
0