【问题标题】:Is OS X Installer package postflight localization supported?是否支持 OS X 安装程序包飞行后本地化?
【发布时间】:2009-10-19 14:54:08
【问题描述】:

我创建了一个包含本地化资源(License.html、Readme.html 等)的 OS X 安装程序包。特别是,它包含一个本地化的 postflight 脚本,因为某些安装后操作因语言而异语;例如,在安装完成后打开每个语言的文件。该软件包是作为自动构建的一部分创建的,而不是通过 Package Maker。

最初我使用“完整”语言环境名称作为本地化资源文件夹名称;例如,English.lproj。一切正常。最近,我切换到 ISO 名称,即 en.lproj,因为我发现这是 Package Maker 使用的名称,this question 表示首选该形式。除了不再执行 postflight 脚本之外,一切都完全一样。

我做了一些更多的测试,并注意到,即使它有效(使用完整的语言名称作为文件夹的名称),它也会将此消息记录到控制台:

Localized installer script postflight found in the <name> package. Using compatibility mode.

我在 Apple 的开发人员文档中几乎找不到任何关于安装程序本地化的内容,更不用说关于脚本的任何具体内容了。这个事情谁有经验?它不能与 en.lproj 一起工作是一个错误,还是它以前工作过的一个错误?

【问题讨论】:

    标签: macos localization installation


    【解决方案1】:

    我不明白的事情:

    1. 如果你不是用 PackageMaker 创建这些包,你是用什么来创建它们的?

    2. 当条件逻辑几乎肯定就足够时,为什么还需要本地化飞行后脚本?

    【讨论】:

    • 它们是由脚本创建的;安装程序包格式不是很复杂。我可以让脚本切换到“语言环境”的输出,但这会增加脚本的复杂性,并且难以本地化。创建单独的翻译副本比将多个翻译插入单个文件要容易得多。让安装程序进行切换,就像使用完整文件夹名称时一样,让我的生活更轻松。我只是想知道这是否是一种选择。
    • PackageMaker 提供了一个命令行工具,可以从任何构建脚本运行。如果您不打算使用它,那么您将承担所有责任,以使您编写的任何内容保持最新。实际上更容易的是查看为脚本设置的所有环境变量,并在运行时相应地调整其行为。为您支持的每种语言维护一个完全独立的脚本既浪费时间又浪费带宽。
    • postflight 脚本以 root 权限运行,因此除非有人为 root 用户设置语言首选项(默认情况下不这样做),否则您无法从环境变量中获取此信息。
    【解决方案2】:

    事实证明,不,这不再受支持。

    【讨论】:

      猜你喜欢
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2014-09-05
      • 1970-01-01
      相关资源
      最近更新 更多