本文介紹系統(tǒng)自帶文件文件名國際化處理方法。
需求
APP UI界面對展示的文件名進(jìn)行國際化,一般名字展示為全路徑的lastCompoment()
例如,展示路徑/Users/xxx/Desktop/xxx/TestFolder的文件名為:

自定義文件的名字默認(rèn)不做國際化,也沒有此需求。系統(tǒng)自帶文件夾需要國際化。
常規(guī)處理方法
路徑拿到lastCompoment():"TestFolder",在國際化配置文件中進(jìn)行操作。
遇到的問題
遇到系統(tǒng)自帶文件夾時出現(xiàn)問題
新建的和系統(tǒng)同名的文件會被國際化。
在Finder中看到,系統(tǒng)已經(jīng)對自帶文件夾做了國際化,怎么可以利用?
我沒有找到
判斷路徑是否為系統(tǒng)自帶的方法。

系統(tǒng)自動國際化自帶文件
解決辦法
Filmanager中有dispalyName的方法,很簡單不需任何國際化操作。
func displayName(atPath: String) -> String
Returns the display name of the file or directory at a specified path.
| 系統(tǒng)標(biāo)準(zhǔn)文件 | 用戶新建 | |
|---|---|---|
| 原始文件名 | Library | Library |
| 路徑 | xxx/xxx/Library | xxx/xxx/My folder/Library |
| 語言環(huán)境 | 日語 | 日語 |
| displayName | ライブラリ | Library |
參數(shù)
文件或者目錄的路徑
返回值
以一種系統(tǒng)認(rèn)為適當(dāng)?shù)谋硎龇绞椒祷匾粋€本地化后名字,發(fā)生錯誤時返回路徑本身。
討論
Display names 是一種對用戶友好的路徑/文件名字。
通常本地化標(biāo)準(zhǔn)文件或路徑的名字。
也反映其他修改,如刪除了文件擴(kuò)展名。
這種變動只在展示給用戶時生效,不會對其在系統(tǒng)中的真實路徑有影響。
比如,用戶當(dāng)前的語言環(huán)境是法語 ,方法將Library(標(biāo)準(zhǔn)文件、非用戶新建)文件的文件名展示為Bibliothèque,但其真實路徑還是xxx/xxx/xxx/Library。