まだバグってた
常用している MacBook Pro のOSは3周回遅れだったのだが、新しいマシンが届いたのでやっと macOS 15 を使うようになった。date
の出力がおかしいという噂は聞いていたが、いくらなんでももう直っているだろうと思ったら、まだそのままだった。
なにしろ date
や cal
の出力が壊れているので、どうしようもない。自作の week
コマンドも影響を受けていた。
これはひどい。2行ずれているせいで、1月と2月に意味不明な名前が表示され、3月からは2ヶ月前の名前が表示される。
とりあえず LC_TIME=C
することで凌いだが、week
の出力ももちろん英語になってしまう。日本語で使うと和暦が出るようになっていて、西暦との対応がわかりやすくて地味に便利なのだ。
locale 関連ファイルの修正方法
macOS の /usr
以下は簡単には変更できないので、自分のホームに locale 関連ファイルをコピーして修正する。方法はこの答えに書いてある(この人は sudo
しているが、その必要はない)。
要は /usr/share/locale/ja_JP.UTF-8
をたとえば ~/locale
にコピーして、その下の LC_TIME
というファイルからコメントを削除してやればいい。そして、そのファイルを参照するために PATH_LOCALE=$HOME/locale
のように環境変数を設定する。
これで元通りになって、めでたしめでたし。
旧暦に変えてみる
設定ファイルをいじったので、ちょっと遊んでみるかと、月の名称を旧暦に変えてみた。
なかなか、いいじゃないの。
ちなみに、このコマンドは簡単に各国語でカレンダーを表示できて結構楽しい。
もっともエチオピアのカレンダーなんかは、ちゃんと表示しているかどうかすら判別できないのだが。
どんな言語に対応しているかは week -l
でわかります。
詳しくはこちらを。
追記:韓国語もだよ
他の言語はどうなのかと気になったので調べてみた。
LC_TIME
は本来58行でなければならない。
それ以外のファイルを検索するとこのようになった。
$ wc -l */LC_TIME | grep -v 58
59 ar_JO.UTF-8/LC_TIME
59 ar_JO/LC_TIME
60 ja_JP.UTF-8/LC_TIME
60 ja_JP/LC_TIME
60 ko_KR.UTF-8/LC_TIME
60 ko_KR/LC_TIME
16888 total
このうち ar_JO
は、最後に1行コメントが追加されているので問題ないはず。
どうやら、世界中で日本と韓国だけがバグっているらしい。
ということで、韓国語も直しておいてあげた。
ko_KR.UTF-8
とコード指定なしの ko_KR
があるので、シンボリックリンクした。