calendarモジュールは使った事がありませんが、ざっと使ってみて回答します。
まず最初に、言語や地域の事を「locale」(ロケール)といいます。
あなたが動かそうとしている環境で日本語ロケールが使用できるか、確認しなければなりません。
「locale -a
」というコマンドで、使用できるロケールの一覧が表示されるので、確認して下さい。
$ locale -a
C
C.UTF-8
POSIX
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
ja_JP.utf8
一般的に、指定の言語を使用するには環境変数「LANG」に適切なロケールを設定します。
$ LANG=C date
Thu Oct 15 22:34:10 JST 2020
$ LANG=ja_JP.utf8 date
2020年 10月 15日 木曜日 22:34:40 JST
calendarモジュールを含むpythonのプログラムで言語設定をするには、localeモジュールのsetlocale関数を呼びます。
>>> import os, locale, calendar
>>> list(calendar.day_name)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
>>> os.environ['LANG']
'ja_JP.utf8'
>>> locale.setlocale(locale.LC_ALL, '')
'ja_JP.utf8'
>>> list(calendar.day_name)
['月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日', '日曜日']
もし環境変数に影響せずに強制的に日本語ロケールに設定させたいのであれば、setlocale関数にロケールを指定します。
>>> locale.setlocale(locale.LC_ALL, 'ja_JP.utf8')
'ja_JP.utf8'
>>> list(calendar.day_name)
['月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日', '日曜日']
なお、LocaleTextCalendar
/LocaleHTMLCalendar
は、localeモジュールを使わずともロケールに沿った表示をするようです。
デフォルトでは環境変数LANGを見るようですが、コンストラクタのlocale
引数にロケールを設定すれば、そのロケール設定で処理されるようです。
>>> import os, calendar
>>> os.environ['LANG']
'C'
>>> print(calendar.LocaleTextCalendar().formatmonth(2020, 10))
October 2020
Mo Tu We Th Fr Sa Su
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
>>> print(calendar.LocaleTextCalendar(locale='ja_JP.utf8').formatmonth(2020, 10))
10月 2020
月 火 水 木 金 土 日
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/18 11:57 編集