1

我的 iOS 应用程序允许用户从选择模板文档开始。例如,在 Pages 中,您可以选择从“论文”模板开始。该模板文档被复制并打开。

我遇到了本地化问题,无法找到如何本地化生成的复制文件的显示名称。同样,以 Pages 为例。如果我的语言设置为法语并且我选择了“Reportage”(论文)模板,则复制的文件的名称为“Reportage”。

我的模板文件位于我的应用程序的捆绑资源中。我正在使用 UIDocumentBrowserViewController 和以下方法来创建文档

func documentBrowser(_ controller: UIDocumentBrowserViewController,
didRequestDocumentCreationWithHandler importHandler: 
@escaping (URL?, UIDocumentBrowserViewController.ImportMode) -> Void)

importHandler 最终用 .copy 调用,如下所示:

importHandler(url, .copy)

我的模板文件非常大,使用本地化名称发送副本是没有意义的。我们有一个解决方法,我们首先使用正确本地化的文件名创建一个副本。然后我们在 importHandler(url, .copy) 中使用生成的文件的 URL,但是必须复制文件两次似乎很浪费。

我在文档中看到了对localizedNameKey 的引用,但是关于如何设置该值的信息很少。假设它是相关的,我该如何使用localizedNameKey?是否有一些 plist 指定了每个文件的本地化信息?

4

1 回答 1

0

如果先创建副本,可以使用 .move 模式代替 .copy,以免复制两次。请注意,如果您使用正确的 API,则副本应该非常便宜,因为它应该是 APFS 写时复制克隆。

于 2018-07-13T08:29:15.197 回答