![見出し画像](https://assets.st-note.com/production/uploads/images/142682461/rectangle_large_type_2_7eeb57b699f3f752d7b21423b5cab777.png?width=1200)
Discord翻訳BOT「MTS」「太郎」にチャンネルごとの言語設定対応させた話
こんにちは!
makaです。
前前々回(?)Discordの翻訳BOTを作った話という記事を書きましたが、記事を書いた時点では、サーバーでの言語設定のみ可能で、チャンネルごとの言語設定は不可能でした。
今回は、チャンネルごとの言語設定を可能にした話です!
設定の仕方
チャンネルの言語設定方法(/setchannellanguage)
/setchannellanguage [第一言語] [第二言語]
で指定できます。
言語の指定は、Google翻訳ISO-639コードを使用して指定してください。
チャンネルの言語設定をサーバーの言語設定と同期する
デフォルトでサーバーの言語設定と同期するようにしていますが、チャンネルの言語設定をした場合はサーバーの言語設定とは同期できていません。
/setchannellanguage のオプションの、"sync"を指定すると、チャンネルの言語設定を削除し、サーバーの言語設定と同期できます。
"sync"を指定した場合は[第一言語][第二言語]の指定は適当で構いません。(「あ」とか「い」とかでも大丈夫です。)
どういう感じで動作しているのか
データベースは?
データベースは、サーバーの言語設定があるデータベースに書き込もうかと思いましたが、すでに100サーバー以上に導入されているおかげで言語設定のファイルを書き換えるのがめんどくさかったので、分けました。
そのせいでファイル大量になりました。
まあファイルに直接手で書き込むことなんてないのでいいですが、、、
内部の動作は?
データベースから「チャンネルの言語設定」を引っ張ってきて翻訳APIに翻訳してもらう感じです。
もし「チャンネルの言語設定」がなければ「サーバーの言語設定」にするようにしています。
スラッシュコマンドはサーバーの言語設定と統合しても良かったですが、なんかめんどくさかったので分けました。
ちゃんと動くの?
モニタリング中です。
多分何事もなく動いてると思いますしらんけど。