macOS/iOS 国际化系统文件夹的名字处理方法

本文介绍系统自带文件文件名国际化处理方法。

需求

APP UI界面对展示的文件名进行国际化,一般名字展示为全路径的lastCompoment()

例如,展示路径/Users/xxx/Desktop/xxx/TestFolder的文件名为:

3100644-405422e8f8a63e85.png
  • 自定义文件的名字默认不做国际化,也没有此需求。

  • 系统自带文件夹需要国际化。

常规处理方法

路径拿到lastCompoment():"TestFolder",在国际化配置文件中进行操作。

遇到的问题

遇到系统自带文件夹时出现问题

  • 新建的和系统同名的文件会被国际化。

  • 在Finder中看到,系统已经对自带文件夹做了国际化,怎么可以利用?

  • 我没有找到判断路径是否为系统自带的方法。

3100644-0dda8d4ae6f2e5b4.png
系统自动国际化自带文件

解决办法

Filmanager中有dispalyName的方法,很简单不需任何国际化操作

func displayName(atPath: String) -> String

Returns the display name of the file or directory at a specified path.
系统标准文件 用户新建
原始文件名 Library Library
路径 xxx/xxx/Library xxx/xxx/My folder/Library
语言环境 日语 日语
displayName ライブラリ Library

参数

文件或者目录的路径

返回值

以一种系统认为适当的表述方式返回一个本地化后名字,发生错误时返回路径本身。

讨论

Display names 是一种对用户友好的路径/文件名字。

  • 通常本地化标准文件或路径的名字。

  • 也反映其他修改,如删除了文件扩展名。

  • 这种变动只在展示给用户时生效,不会对其在系统中的真实路径有影响。

比如,用户当前的语言环境是法语 ,方法将Library(标准文件、非用户新建)文件的文件名展示为Bibliothèque,但其真实路径还是xxx/xxx/xxx/Library

猜你喜欢

转载自blog.csdn.net/weixin_34101784/article/details/87143697