Applescript中的字符串取决于系统语言 - 是否有通用名称?

时间:2017-03-07 01:09:59

标签: internationalization applescript translation

我写了一些Applescripts,它们将部署在设置为不同语言的机器上。我刚刚意识到,例如,当我等待应用程序打开一个窗口(例如,保存/打开对话框)时,我的脚本会失败,因为在设置为其他语言的系统上,这些窗口不再称为“保存”或“打开”,而是有一个翻译的名字。

我该如何处理?窗户是否具有通用基本名称"我可以寻找而不是I Accessibility Inspector显示的名称?我想还有其他字符串也可以翻译,我可能需要访问(菜单,菜单命令等) - 我的问题不仅限于打开/保存对话框。

1 个答案:

答案 0 :(得分:1)

AppleScript支持NSLocalizedStringlocalized 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:包含字符串文件的包的别名或文件引用(默认为当前应用程序/脚本包)