2014年01月19日, 編集履歴
OS Xで異なる言語環境で同じアプリケーションを同時に起動する方法
はじめに
OS Xで、
- Appleの標準的なアプリケーションにおいて、ユーザインターフェイスの文言がどのように翻訳されているのかを調べるとき
- アプリケーションのヘルプドキュメントを書いているとき
などに、アプリケーションを日英の両言語環境で同時に起動したいことがある。
しかし、通常はアプリケーションを複数起動することはできない。日本語環境で起動しているアプリケーションのユーザインターフェイスの文言が、英語環境でどうなっているのかを確認するには、システム環境設定で優先言語を変更してアプリケーションを起動し直す必要がある。これはめんどくさい。
異なる言語環境で同じアプリケーションを同時に起動することができれば、上述のような作業をするときに便利である。これはターミナルからopen
コマンドを使って、
$ open -n -a Safari --args -AppleLanguages '("en-US")'
のようにすると実現できる。
open
コマンド
open
コマンドは、かんたんに言えばFinderでなんらかのファイルをダブルクリックしたときの動作をターミナルから行うものである。たとえば、
$ open hoge.txt
とすれば、カレントディレクトリィにあるhoge.txt
をFinderからダブルクリックしたのと同じ動作になる(なんらかのテキストエディタでhoge.txt
が開かれるであろう)。
-a
オプション
open
コマンドで-a
オプションに続いてアプリケーション名を指定すると、そのアプリケーションでファイルが開かれる。実際にそのファイルに関連付けられているアプリケーションがなんであれ、-a
オプションで指定したアプリケーションでファイルが開かれる。たとえば、
$ open -a Safari
ではSafariが起動し、
$ open -a Safari hoge.html
ではHTMLファイルに関連づけされているアプリケーションがGoogle ChromeであってもSafariでhoge.html
が開かれる。
-n
オプション
open
コマンドに-n
オプションを指定すると、すでに起動中のアプリケーションはそのままに、新たに同じアプリケーションを起動する(DockやCommand
-Tab
のタスクスウィッチャにも同じアプリケーションのアイコンが複数個表示される)。
$ open -n -a Safari
とすると、Safariが起動中であっても、それはそのままに新たにSafariを起動する。
--args
オプション
open
コマンドの--args
オプションは、以下に続く引数を、起動するアプリケーションにコマンドライン引数として渡す。
$ open -a Safari --args hoge foo
とすると、Safariにhoge
とfoo
というふたつの引数が渡される。
コマンドライン引数による言語環境の上書き
アプリケーションにコマンドライン引数で-AppleLanguages
で優先言語順を指定した配列を渡すと、システム環境設定の優先言語順を上書きすることができる(参考情報:コマンドライン引数(Launch arguments)は思ったより簡単に使える - 24/7 twenty-four seven)。
$ /Applications/Safari.app/Contents/MacOS/Safari -AppleLanguages '("en-US")'
とすると、システム環境設定で日本語を優先言語にしていようと英語環境でSafariが起動する。
まとめ
以上を組み合わせると、以下のようになる。
$ open -n -a Safari --args -AppleLanguages '("en-US")'
ターミナルから上記コマンドを実行すると、現在起動中の日本語環境のSafariはそのままに、新たに英語環境のSafariが起動される。これで日英両言語のSafariを見比べながら、ユーザインターフェイスの文言を確認できるようになる。