我想在macOS的“服务”中添加一个项目,例如:
我在网页上选择一个单词,然后在Wikipedia上搜索其解释。
如果单词是英语,我要搜索“ https://en.wikipedia.org/wiki/”,如果单词是中文,我要搜索“ https://zh.wikipedia.org/wiki/”。所以首先我需要判断输入语言。我想在AppleScript中进行操作。谢谢。
答案 0 :(得分:0)
据我所知,无法在普通的AppleScript中确定文本的语言,但可以使用AppleScriptObjC来确定。
尽管您并不热衷于此启示,但我还是包含了一个片段,该片段演示了实际上很容易做您想要的事情:
to guessLanguage for input
script
use framework "Foundation"
property this : a reference to current application
property NSLTag : a reference to NSLinguisticTagger of this
to guessLanguage()
(NSLTag's dominantLanguageForString:input) as text
end guessLanguage
end script
result's guessLanguage()
end guessLanguage
您应将此处理程序放在脚本的底部,end run
之后。可以从脚本中的任何位置调用它,如下所示:
on run {input, parameters}
set [input] to the input
guessLanguage for the input
set lang to text 1 thru 2 of result
open location "https://" & lang & ".wikipedia.org/wiki/" & input
end run
to guessLanguage for input
.
.
.
end guessLanguage
以下是对不同语言样本的几次测试,并在每个样本旁边显示了返回的结果:
guessLanguage for "Hello, how are you?" --> "en"
guessLanguage for "Guten Tag, wie gehts?" --> "de"
guessLanguage for "Salut, ça va?" --> "fr"
guessLanguage for "你好!你好嗎?" --> "zh-Hant"
guessLanguage for "こんにちは、元気ですか?" --> "ja"