まとめこの記事の内容discord.pyのext.commandsフレームワークで表示されるhelpコマンドの表示内容を、すべて日本語にする方法について解説します。ext.commandsフレームワークについてもかんたんに触れていますので、discord.pyに興味のある方はご一読ください。helpコマンドについてext.commandsフレームワークdiscord.pyには、ext.commandsフレームワークというものが存在します。これはBotにprefix(接頭語)を設定し、prefix+commandでBotを操作するという挙動をシンプルに実装することができる方法です。$helloで出会いのあいさつ、$goodbyeで別れのあいさつをする、といったBotを作りたい場合、ext.commandsフレームワークがぴったりでしょう。helpコマンドext.commandsフレームワークの優れた点として、helpコマンドを自動で実装してくれるところが挙げられます。greetとbyeを実装すれば、自動的にhelpコマンドが追加され、greetとbyeの機能を説明してくれるのです。$helpと入力すると上記のようなヘルプが表示されます。このヘルプはdiscord.pyの機能で自動生成されたもので、開発者は1行もソースコードを書いていません。これだけではイメージがわきにくいので、サンプルを見てみましょう。commands.Bot(command_prefix=prefix)bot.add_cog(Greet(bot=bot))bot.run(token)上記のコードを見てもらうとわかるように、helpコマンドのための記述はありません。helpコマンドは、"""~"""で囲まれた部分をコマンドの説明として採用する(複数行のコメントがある場合は一行目のみ)ので、コメントさえ入れておけば自動的にヘルプが作られるということになります。helpコマンドを日本語化しようhelpコマンドのカスタマイズ方法ヘルプコマンドの動作は、commands.HelpCommandクラスを通して定義します。何も設定しない場合のヘルプコマンドの動作は、commands.DefaultHelpCommandで定義されています。他にデフォルトで用意されているクラスとして、commands.MinimalHelpCommandがあります。上記のソースコードのうち、botを定義している行を下記のとおり修正してみましょう。help_command=commands.MinimalHelpCommand())表示されるヘルプが、下記のとおり簡易的なものに変わります。この要領で、commands.DefaultHelpCommandをカスタマイズしたクラスをつくり、日本語に対応させていきましょう。日本語化するためのプロパティ・関数commands.DefaultHelpCommandにはcommands_heading・no_categoryというプロパティがあり、これらに値を設定することで、それぞれ「Commands:」「Other」という文字列のカスタマイズをすることができます。messageをカスタマイズすることができます。get_ending_noteという関数をオーバーライドすることで、ヘルプ末尾の文字列をカスタマイズすることができます。ややこしいので、以下にまとめます。category.サンプルコード上記のプロパティ・関数をカスタマイズしたクラスを定義してみます。commands.DefaultHelpCommandクラスをベースにするので、これを継承したクラスを作りましょう。名前は何でもいいのですが、仮にJapaneseHelpCommandとしてみました。JapaneseHelpCommandという名前は、任意のものにして構いません。<カテゴリ名>\n")定義したJapaneseHelpCommandを、Botの初期化時にセットします。help_command=JapaneseHelpCommand())これで、以下のように大半の部分を日本語化することができました。カテゴリ名を日本語化するこれはお好みですが、Greetの定義時にnameを指定すると、Cog自体の名前を変えることができます。プログラム内でCogの名前を使うような処理を書いている場合、そちらにも影響があるので、注意しましょう。name='あいさつ'):こんな感じになります。コマンドを日本語化するここまでいくとやりすぎ感じがあるのでおまけ程度の話ですが、コマンド自体を日本語にすることもできます。...動かしたらこんなかんじ。ヘルプコマンドを動かすと以下のようになります。サンプルコード:完成編ここまでのすべての結果をあわせたソースコードを下記に置いておきます。help_command=JapaneseHelpCommand())bot.add_cog(Greet(bot=bot))bot.run(token)まとめdiscord.pyのext.commandsフレームワークを使うと、コマンド形式のBotをかんたんに実装することができます。helpコマンドは自動的に生成されますが、そのままだと英語です。デフォルトのものをかんたんにカスタマイズして日本語化することができます。コメントをキャンセルメールアドレスが公開されることはありません。