Automatorを使って辞書で調べるサービスが動作しない

お世話になります。


英語の書類を読む際、辞書を検索するにあたり私には専門用語の辞書が必要なため

これまでのSnow leopardでは任意の文字列を選択した後、専門用語の辞書を

辞書.appに登録したうえで

「任意の文字列を選択」「コンテクストメニューから’’辞書で調べる’’を選択」

というツーステップで辞書検索が出来ていました。


Lion以降はこれまで使用していた専門用語辞書が使えなくなり、今後も対応予定がない

とのことなので困っております。


AutomatorとAppleScriptを使って、選択文字列をwebの任意のサイトで調べるサービスを

作製できることが分かり、早速やってみたのですがうまく動作しません。


作製したAutomatorのサービスの内容は


  1. 新規作成で「サービス」を選択
  2. ユーティリティ>クリップボードにコピー を右のウィンドウにドラッグ&ドロップ
  3. ユーティリティ>AppleScriptを実行 を同様に登録
  4. AppleScriptの記入欄に以下のスクリプトを記入


on run {input, parameters}


set aURL to "私が単語を検索したいサイトのURL" & (get the clipboard)

open location aURL



return input

end run


としました。

文字列を選択後、右クリックで確かにそのサービスは表示されるのですが、実際には動作しません。

参考にさせていただいたサイトに記載の通りにやったつもりなのですが。。。


現在、OS X 10.8.2を使用しています。



また、別のサイトでも同様の目的のスクリプトが公開されていましたのでそちらでも試してみました。


  1. 新規作成で「サービス」を選択
  2. ユーティリティ>AppleScriptを実行 を登録
  3. AppleScriptの記入欄に以下のスクリプトを記入



on run {input, parameters}

try

set theText to item 1 of input

set theURL to "私が単語を検索したいサイトのURL" & theText

open location theURL

end try

end run



こちらも同様に動作しません。

知識がなく、何が問題なのか分からないのですが、どなたか解決法を教えていただけませんでしょうか。

MacBook Air (11-inch, Mid 2012), OS X Mountain Lion (10.8.2)

投稿日 2012/10/14 01:46

返信
返信: 22

2012/10/14 20:04 ykah への返信

度々、失礼致します。 既に解決済みとは思いますが、こんなページもありましたよ。


→ 当サイトの検索フォームを介さずにWebLSDを検索するための仕様


これを参照して、例えば、前方一致で検索する場合のAppleScriptは、

ユーザがアップロードしたファイル

となります。 Shell scriptにした方が応用も簡単で、速そうですね。

2012/10/14 21:16 T22T への返信

すばらしい!これならいけますね。下記はいろんなサイトに応用が効く AppleScript です。


property pre : "http://lsd-project.jp/weblsd/begin/"

property suf : "" -- 検索語の後に &lr=lang_ja みたいなものがある場合

property enc : "UTF8"

--

on run {input}

try

set str to item 1 of input

tell application "Safari"

open location pre & str & suf

activate

end tell

end try

end run

--

on url_encode(str, conv_to)

set s1 to "printf '%s' " & quoted form of str & " | "

set s2 to "iconv -c -f UTF8-MAC -t " & conv_to & " | "

set s3 to "php -R 'print rawurlencode($argn);'"

do shell script s1 & s2 & s3

end url_encode


# URL に「#」が含まれている場合 Leopard の open コマンドだと上手く動きません、Snow Leopard のどの時点からか改良されたようですけど、私は AppleScript の open location で統一してます。


# 選択文字列を「見なし UTF8-MAC」から「指定したテキストエンコーディング」に変換するのと、キーワードを URL エンコードするのがミソ。

2013/01/04 00:50 ykah への返信

度々、失礼致します。Automatorの変数を使ったサービスを作ってみました(下図)。


調べる単語を変数『Word』に入れ、『前方一致:』の変数にURLとWordを入れています。 また、『用例検索:』の変数にURLとWordを入れて、『Webサイトポップアップ』アクションに渡しています。 途中に検索語を読み上げるアクションと、用例を表示するかどうかを確認するアクションを入れてみました。 色々と応用できそうです。

ユーザがアップロードしたファイル

2013/01/25 01:57 ykah への返信

度々、失礼致します。


上記AppleScriptを使用した場合、検索を行うたびに新しいSafariのタブやwindowが作られるのでちょっと不便だなと思いました。 そこで、『 open location theURL 』 の部分を、


tell application "Safari"

set URL of current tab of window 1 to theURL

end tell


に変更すると、検索を繰り返しても同じwindowに検索結果を表示してくれました。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Automatorを使って辞書で調べるサービスが動作しない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。