Applescript 中的字符串取决于系统语言 - 是否有通用名称?
Strings in Applescript depends on the system language - are there universal names?
我写了一些 Applescripts,它们将部署在设置为不同语言的机器上。我刚刚意识到,例如,当我正在等待应用程序打开 window(例如 Save/Open 对话框)时,我的脚本失败了,因为在设置为其他语言的系统上,这些 windows不再称为“保存”或“打开”,而是有一个翻译后的名称。
我该如何处理? windows 是否有 "universal base name" 我可以查找而不是 Accessibility Inspector 显示的名称?而且我想还有其他一些我可能需要访问的翻译字符串(菜单、菜单命令等)——我的问题不仅限于 Open/Save 对话框。
AppleScript 支持 NSLocalizedString
(localized string
)。您需要参考并从相应的框架包中提取字符串。
例如:
set finderPath to path to application "Finder"
(localized string "A16" in bundle finderPath)
结果是:
- 英文:您无法撤消此操作。
- 德文:Diese Aktion kann nicht widerrufen werden。
localized string
有两个可选参数:
from table
: 字符串文件的名称,不包括“.strings”后缀(默认为“Localizable”)
in bundle
:对包含字符串文件的包的别名或文件引用(默认为当前 application/script 包)
我写了一些 Applescripts,它们将部署在设置为不同语言的机器上。我刚刚意识到,例如,当我正在等待应用程序打开 window(例如 Save/Open 对话框)时,我的脚本失败了,因为在设置为其他语言的系统上,这些 windows不再称为“保存”或“打开”,而是有一个翻译后的名称。
我该如何处理? windows 是否有 "universal base name" 我可以查找而不是 Accessibility Inspector 显示的名称?而且我想还有其他一些我可能需要访问的翻译字符串(菜单、菜单命令等)——我的问题不仅限于 Open/Save 对话框。
AppleScript 支持 NSLocalizedString
(localized string
)。您需要参考并从相应的框架包中提取字符串。
例如:
set finderPath to path to application "Finder"
(localized string "A16" in bundle finderPath)
结果是:
- 英文:您无法撤消此操作。
- 德文:Diese Aktion kann nicht widerrufen werden。
localized string
有两个可选参数:
from table
: 字符串文件的名称,不包括“.strings”后缀(默认为“Localizable”)in bundle
:对包含字符串文件的包的别名或文件引用(默认为当前 application/script 包)