彷徨えるフジワラ

年がら年中さまよってます

aspell に使用言語を強制する

いわゆる『ドックフード喰い』として、日本語設定を有効にした状態で Mercurial の hg コマンドを使うために、LANGUAGE 環境変数に ja を設定。

しかし、この設定を常用すると、思わぬ所から頭を引っ叩かれる事態が。

Mercurial の開発 ML に修正パッチを投函する際には、当然英語で修正内容の説明を書く必要があるわけなのだが、英語力がアレな事が災いして、度々スペルミス等を指摘されていた。

コードの品質には事の外厳しい Matt は、説明におけるスペルミス等に関しては意外に鷹揚で、手直ししないで (面倒だからか?w) そのままリポジトリに取り込まれていたりする。

# 僕の過去のパッチを穿り返して typo を見つけるのは勘弁してください .... orz

流石にそんな状況が度重なるのはマズイので、投函前に説明部分のスペルミスをチェックすべく、ある時点から Emacs の ispell 連携機能を使うことに。
『え?今まで ispell 機能を使ってなかったの?』という非難もあるかもしれないが、そもそも英語でドキュメントを書く機会が殆ど無かったのだから、しょうがない。

さて、ここで、Mercurial の日本語設定のために、環境変数 LANGUAGE に ja が設定されていると、Emacs の ispell 機能を使用した際に、以下のようなエラーが表示されて、処理が実施できない。

Error: No word lists can be found for the language "ja"

ぐは!日本語辞書を見に行っちゃうのかよ?!

かと言って、『hg コマンド実行時だけ LANGUAGE=ja を有効にする』のは、ラッパーを作るとかしないと、色々面倒だしなぁ……。

ということで、何か上手い手は無いかと、"man aspell" を確認。

あ、最近はコマンドとしての ispell の開発は停止(or 停滞?)しているらしく、まともに使えるのは、専ら aspell コマンドらしいとのこと。

で見つけたのが、以下の記述を設定ファイル "~/.aspell.conf" に書いておけば、英語辞書の使用を強制できる、というもの:

lang en

コマンド行でのオプション指定に "--lang=en" を使っても、同じ効果が得られるらしいのだけれど、Emacs の ispell 機能のコマンド指定には、オプション追加が出来ないっぽいので、設定ファイルを使用する方向で。

ちなみに、『起動コマンド指定に、事前にオプションを追加できない』というのは、hg-mode (by "contrib/mercurial.el")での hg-binary 変数によるコマンド指定と同じだなぁ、などと感慨にふける。