指定アプリケーションを、現在のユーザーアカウントで指定可能な言語環境を指定して再起動するAppleScriptです。
Xcodeにこのような機能があり、そのような処理を行える可能性について思い至っていました。shell commandについてはEdama2さんから教えていただきました。あー、やっぱりこういう感じなんですね。
次に、言語コードを求める方法ですが、調べても全言語の言語コードを求める方法が見当たらなかったので(これは、探し方が足りないだけ)、現在のユーザーアカウントで指定可能な言語コードを求める方法に落ち着きました。
本Scriptを実行すると、指定アプリケーションを起動する言語コードを選択。
処理するアプリケーションを選択。choose applicationコマンドが活躍するのはとても珍しいケースです。
英語(English)を指定した場合。
フランス語(French)を指定した場合。
日本語(Japanese)を指定した場合。
個人的には、英語環境でアプリケーションを動かしつつ、執筆用のアプリケーション(Keynote)だけ日本語環境で動かすことができて、些細なコマンドの呼称を確認する必要がなくていい感じです。あれ? 日本語環境でターゲットのアプリケーションだけ英語環境を指定して起動すればいいんじゃ????
AppleScript名:指定アプリケーションを指定言語環境で再起動 |
— – Created by: Takaaki Naganoya – Created on: 2020/04/30 – Special Thanks to : Edama2 – Copyright © 2020 Piyomaru Software, All Rights Reserved – use AppleScript version "2.5" use scripting additions use framework "Foundation" use framework "AppKit" set aLocList to (current application’s NSLocale’s preferredLanguages()) as list set targLanguage to choose from list aLocList set anApp to choose application set apFile to POSIX path of (path to anApp) tell anApp to quit set sText to "open -n -a " & quoted form of apFile & " –args -AppleLanguages ’(\"" & targLanguage & "\")’" do shell script sText |
More from my site
(Visited 87 times, 2 visits today)
rok says:
言語の一覧を取得するのに “locale -a” は使えませんか?
Takaaki Naganoya says:
コメントありがとうございます。localeコマンドの結果一覧を見て、少し不思議な(文字コードつきの)ものもありますが、指定できることを確認しました。つまり、使えるということです。
一方で、たとえばKeynote.appにはアラビア語ローカライズされたリソースが入っていますが、このlocaleコマンドの実行結果には「ar」が出てこなかったため、アプリケーション側が対応している言語環境すべてを試すことはできないようです。
最終的には、「先にアプリケーションを選択」しておき、アプリケーションバンドル内のlprojフォルダのフォルダ名一覧を取得したのち、それっぽく言語コードとして加工するとかいうのが、この処理における最適解になりそうです。
指定アプリケーションの指定言語環境で再起動 v3 – AppleScriptの穴 says:
[…] 初版では言語環境を選んでからアプリケーションを選んでいましたが、この順番を逆にしました。アプリケーションを選択し、そのバンドル内のローカライズ状況を調べ、一覧から選択 […]