本文介绍系统自带文件文件名国际化处理方法。
需求
APP UI界面对展示的文件名进行国际化,一般名字展示为全路径的lastCompoment()
例如,展示路径/Users/xxx/Desktop/xxx/TestFolder的文件名为:

自定义文件的名字默认不做国际化,也没有此需求。系统自带文件夹需要国际化。
常规处理方法
路径拿到lastCompoment():"TestFolder",在国际化配置文件中进行操作。
遇到的问题
遇到系统自带文件夹时出现问题
新建的和系统同名的文件会被国际化。
在Finder中看到,系统已经对自带文件夹做了国际化,怎么可以利用?
我没有找到
判断路径是否为系统自带的方法。

系统自动国际化自带文件
解决办法
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。