本文介绍系统自带文件文件名国际化处理方法。
需求
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
。
网友评论