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 包)