如何分配模板文件的本地化名称?

时间:2018-07-13 01:03:23

标签: ios swift uidocumentbrowservc

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

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

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

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

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

importHandler(url, .copy)

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

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

1 个答案:

答案 0 :(得分:0)

如果首先创建一个副本,则可以使用.move模式而不是.copy来避免两次复制。请注意,如果使用正确的API,则副本应该是非常便宜的,因为它应该是APFS写入时复制副本。