1

单个 rpm 规范文件必须支持 Linux [EN & JA] 的多个语言环境。假设它检查 Java 是否存在,如果没有抛出异常,“错误:Java 未安装”。在日文机器上应显示日文信息。在规范文件中 java_err_msg 被声明为宏。我想知道如何在“ java_err_msg ”下面进行本地化,以充当摘要、组、描述等。

%define java_err_msg “错误:未安装 Java

因此,该规范文件根据 PC 的语言环境选择相应的消息。我正在寻找类似摘要、组、描述案例中的解决方案,其中基于系统区域设置的 rpm 将显示适当的消息。如下;
摘要:AppName
摘要(ja):AppName[日文]
组:XYZ 组
组(ja):XYZ 组[日文]

请让我知道任何更好的解决方案。

4

1 回答 1

1

我假设您正在 rpm %pre 脚本中测试 java 的存在。

如果您在 2 个语言环境中只有一条消息,那么您可以测试 LC_ALL 环境变量并根据需要对发出的 EN 和 JA 消息进行硬编码。

稍微好一点的是编写一个在 %pre 脚本中调用的具有适当语言环境处理的程序,并在适当的时候向 stderr 发出本地化消息。

无法在 rpm.spec 文件的 rpm 标头中包含 i18n 错误消息:唯一的 i18n 标记是 Summary:、Group: 和 %description。

如果 java 不存在,我不确定如何抛出异常。RPM 是一个 C 程序,而不是 C++ 程序,C 中也不例外。

于 2014-09-21T08:03:05.803 回答