WordPress で setlocale は効き目無し

ちょっと思い立って英語のコンテンツ提供を始めるにはどうしたら良いだろうと考えてみた。世の中、グローバルだもんね! でまず考えたのは hetarena.com の今の WordPress に日本語の記事と英語の記事 (日本語記事の翻訳ではなく、英語圏の人を対象にした記事) を載せることなんだけど、結構難しい。index.php の最初で、

setlocale(LC_ALL, 'en_US');

とかやったらもろもろが英語メッセージに切り替わるかと試したんだけど、そうはならない。ソースを追いかけてみるとそれより前の初期化処理の中で wp-settings.php から load_default_textdomain() が呼ばれてここでデフォルトメッセージがロードされてる。なので、そこまでに何とかしないと言語一発切り替えというのは無理っぽい。 個別にテンプレートファイルを直すぐらいだったら Multisite 機能を使う方が良いと思うのだけれど、気軽に変更というわけにはいかず、ちょっと気合が必要。だったらこのブログも hetarena.com のサブディレクトリなりサブドメインに移すか、というのもあるし。 今そこまで手をかけるのはなあ、と思うのでいったん保留。継続検討課題ということで。


追記: index.php/single.php などの最初で、

global $l10n; unset($l10n['default']);

と書くことで行ける気がする。強引だけど。