我已经建立了一个基于Automator工作流的OSX服务,其中包含了一个Obj操作。
我已经成功地本地化了Obj操作,但是我无法本地化服务菜单条目。
服务实施指南说,必须为每个本地化创建一个ServicesMenu.strings文件。其他文档,例如这,也是这样说的,这是如此的入口在回答中建议应用一些控制台命令来刷新系统文件,但是如果不理解的话,我很害怕这样做。
我已经在Obj操作的Xcode项目中创建了本地化的ServicesMenu.strings文件(因为Automator没有本地化函数),但是这些文件肯定是在错误的包中。
问题是我不知道把这些文件放在哪里。
任何帮助都是非常感谢的。
编辑:上述链接之一说:
添加本地化的ServicesMenu.strings文件
要本地化此文本,您将需要向应用程序项目或Automator工作流包资源中添加名为ServicesMenu.strings的UTF-16编码字符串文件(有关如何这样做的详细信息如下所示)。对于所提供的每个服务菜单项,此字符串文件将包含一个条目,该条目使用默认文本作为键,将翻译后的文本用作值。对于您希望支持的每种语言,您将在项目资源中的特定语言项目( ServicesMenu.strings )目录中提供一个翻译好的.lproj文件。
..。
如果要从自动创建的工作流中提供服务,则需要手动将字符串文件和.lproj资源目录添加到工作流包中。您可以在~/Library/Services下的主目录中找到Automator创建的工作流包。
我确实是这样做的,但本土化不起作用。
下面我添加了我的Info.plist内容、文件夹结构和ServiceMenu.strings文件内容。



发布于 2014-06-22 07:41:17
这是我自己的解决方案。也许这对其他人有帮助。
第一个问题是我看得不够仔细。我在问题中引述的案文如下:
刷新服务菜单
为服务菜单项标题提供本地化文本后,可能需要刷新“服务”菜单列表以查看更改。刷新服务菜单中显示的服务列表的一种方法是使用服务调试工具pbs__。这是位于/System/Library/CoreServices中的命令行工具,它提供了有用的服务调试功能,例如刷新服务列表或打印当前注册服务列表。清单3显示了一个命令行示例,您可以输入终端应用程序来刷新英语和法语的服务列表。
清单3重新分配示例使用pbs刷新服务。
/System/Library/CoreServices/pbs -existing_languages en fr
第二个问题是上面清单3中给出的命令对我不起作用。然而,命令
/System/Library/CoreServices/pbs -update实际上更新了服务菜单,并显示了本地化菜单项。
https://stackoverflow.com/questions/23651050
复制相似问题