高森太郎の日記。

高森太郎の日記です。

WindowsでGIMPの言語を指定して使う・環境変数「LANG」を無視して使う

最近会社でよくGIMPを使うようになった。
自分が行うフォトレタッチというか画像の加工はそれほど難しいことはやらないので、ぶっちゃけていうと他のもっと機能を限定したわかりやすいフォトレタッチソフトでもよいのだが、とりあえずこれだけ一揃えあれば、それこそCMYKを扱わない限り機能がなくて困るということもないし、高機能だし、さまざまな形式が開けるしで、癖は強いものの、オープンソース陣営で最強のフォトレタッチソフトであるのは間違いない。

のだが、先日ちょっと困ったことがあったので、メモをしておく。以下はWindows 版のGIMPの話である。当然ながら無保証無責任でご利用は自己責任で計画的にお願いします。

通常GIMPはマルチランゲージになっていて、自動的に言語を認識して日本語なりになる。が、これは環境変数も見ているらしく、環境変数内に「LANG」というところに何らかの値が設定されているとその値に従い、さらにそれらが通常の書き方でない場合は、自動的に無視されデフォルトの英語表示になってしまう。

通常は、日本語環境であえて英語でGIMPを使いたいときにここに指定してやることで言語を切り替えたりできるものである。で、特にUNIXでも動作するソフトウエアなどでたまにあるのだが、環境変数のLANGを使っているソフトがある。自分が仕事で使っている三次元CADソフトウエア、Pro/Engineerもそうなのだが、こいつは「LANG」に「Japanse」と入れてやることによって日本語と認識するので、この値が入っているのだが、この状態で素のGIMPを起動すると、通常ではあり得ない値がはいっているためか、デフォルトの英語になってしまい、まぁ使えないことはないのだが日本語にならず困っていた。
しばらくは我慢して使っていたがいい加減アレなので、一番インスタントな方法で改善することにした。簡単に言えば、起動用のバッチファイルを使えばよいのである。というわけで以下のような感じ。

@echo 日本語にてGIMPを起動します。
@echo off
set lang=ja
path %path%;%programfiles%GIMP-2.0\bin
start gimp-2.4.exe

これを適当な名前の拡張子.batで保存(たとえば「Satrt_gimp_ja.bat」とか)してやればよい。すると、日本語で起動するはずだ。*1
またインストールフォルダが標準と違う場合(環境変数 Program Filesフォルダ以下にインストールしていない場合等)、四行目の「cd」よりあとは、GIMPのインストールディレクトリにある「bin」フォルダを指定するようにすればいい。

また、応用として「set lang=ja」の「ja」を「en」等に変更すれば、他の言語で起動することもできるようだ。

また、この方法でたとえば

@echo 日本語にてGIMPを起動します。
@echo off
set lang=ja
cd "%USERPROFILE%\My Documents"
path %path%;%programfiles%GIMP-2.0\bin
start gimp-2.4.exe

とかやると、起動した後一番最初に「開く」コマンドで出てくる所も制御が可能だ。*2もちろん四行目のcd以下を希望のディレクトリに変更してやることで好きなフォルダにすることができる。

ちなみに、これは結構基本的な技だが、いろいろと応用が利く。特にUNIX系ソフトウエアと互換性があるオープンソースプロダクトの場合、GIMPに限らずこの方法で言語を制御できることも多いようだ。
さらに、USBメモリに代表されるポータブルストレージに、自分のツールを入れて持って歩いている場合にも、使えることがある。
通常、USBメモリに入れて持って歩けるソフトウエアの条件は

  • レジストリを使わない
  • 環境依存のセットアップがない
  • 汎用ソフトである
  • インストールフォルダ以外に設定を保存しない

という程度であって、よくある「ZIPから展開するだけ」系のフリーソフトはだいた持って歩けることになる。
が、よくできたソフトの中には、レジストリは使わないが、Windowsの作法に従って、きちっとマルチユーザーに対応するなどして、設定ファイルをユーザーごとに用意してみたり、%Homepath%以下にプロファイルやデータを保存するようにできているソフトが存在する。
これらは通常使うときは非常にありがたいのだが、ポータブルストレージでツールを持って歩く場合、ユーザー名が同一であることはほとんどないので、そこで起動するたびにいちいち新しいユーザーとして認識されたりして、持って歩けないのである。
ソフトの中にはこういった要望を聞いてくださり、マルチユーザーでなくしたり、ユーザープロファイルを使わない設定が可能なものがるが、そうでないソフトの場合は、今までは無理であった。

が、ここでもこのバッチファイルで環境変数をセットしなおしてやれば、いろいろと出来る。
たとえば、

@echo off

rem 環境変数を設定します。
set portable_current_path=%~dp0
set original_homepath = %homepath%
set homepath=%portable_current_path%portable_home\hoge
set appdata=%potable_current__path%potable_app_data
set username=hoge
set Programfiles=%portable_current_path%portable_programl_files
rem 環境変数設定終わり

rem アプリケーションの起動
@echo ○○○をポータブルで起動します

cd "%original_homepath%\My Documents"
path %path%;%potable_proglamfiles%\hogera
start fugafuga.exe

とかやってやれば、アプリケーションに手をつけなくても、環境変数をポータブルストレージ側に保存してやり、常に同じユーザー名の設定で起動することがができる。(とうぜんこのまんまだと動かないわけですが)

まぁいろいろ便利ですよというメモ。当然ながらご利用は計画的に、無保証自己責任ですのでお願いいします。まぁ、いまどきバッチファイルを多様しまくるのもどうよ、という話もありますが皆様いかがお過ごしでしょうか。

*1:x64環境でうまく動かないかもしれない

*2:通常GIMPのショートカットには作業ディレクトリを「"%USERPROFILE%\My Documents\My Pictures"」としてそれによって一番最初に開くフォルダを制御している