我想在系统偏好设置中获得语言偏好 - >语言与文本。我尝试使用“获取系统信息”来获取语言偏好。
set language_prefer to (user locale of (get system info))
if (language_prefer is "zh-Hans") then
set sharingstr to "共享"
set startstr to "启动"
else if (language_prefer is "zh-Hant") then
set sharingstr to "共享"
set startstr to "啟動"
else
set sharingstr to "Sharing"
set startstr to "Start"
end if
但我发现当我改变语言偏好时,(获取系统信息)的用户区域设置返回值永远不会改变。然后我发现用户区域设置与首选语言不同。 以简体中文为例,它的用户区域设置为“zh_CN”,但它的语言偏好是“zh-Hans”。有人说使用
set lang to do shell script "defaults read NSGlobalDomain AppleLanguages"
返回
(
"zh-Hans",
en,
"zh-Hant",
de,
ja,
fr,
es,
it,
pt,
"pt-PT",
nl,
sv,
nb,
da,
fi,
ru,
pl,
ko,
ar,
cs,
hu,
tr
)
如何获得语言偏好值,例如“zh-Hans”?
希望有人帮助我,谢谢。
答案 0 :(得分:1)
查看Cocoa / Objective C“NSLocale
”文档,我发现实际上有 两个 用户级别的区域设置变量。
一个是currentLocale
,另一个是autoupdatingCurrentLocale
。
不幸的是,看起来Apple决定通过AppleScript导出的API是仅在用户登录时更新的API。我怀疑您的Applescript结果只会在用户重新启动或重新登录时更改。
您需要提供一个Objective C工具,允许您执行“autoupdatingCurrentLocale
”并将其放入Applescript变量中。
现在我看到你已经编辑了你的问题,所以我也会编辑我的:听起来你想要做的就是建议的in the answers of this related question,我很确定你已经在做自己的研究时看到。使用“get_language()
”applescript位返回“r
”数组的第1项。
答案 1 :(得分:0)
有多种不同的区域设置:
/usr/libexec/PlistBuddy -c 'Print AppleLanguages:0' ~/Library/Preferences/.GlobalPreferences.plist
defaults read -g AppleLocale
user locale of (system info)
/Library/Preferences/.GlobalPreferences.plist
中AppleLanguages中的第一项
sudo languagesetup
更改并在运行“设置助理”时defaults read /Library/Preferences/.GlobalPreferences.plist AppleLocale