解決 iOS 內英文系統中聯繫人排序問題

好多人喜歡將 iOS 設置爲英文系統,可是有一個問題其實蠻頭疼的,就是聯繫人的排序問題。在英文系統中,全部中文名字被默認排到了 # 後面,而不是按照拼音來分欄的。程序員

網上有一個方法就是將每個你須要排序的名片進行編輯,在 添加項目/Add Field 這一個按鈕上點擊 Phonetic First/Last Name, 而後將聯繫人的姓或者名的拼音輸入上去。我這裏爲了方便,在 Mac 中進行編輯,iOS 中同理,沒有 MAC 的,能夠用蘋果帳號登錄 iCloud.com 進行聯繫人管理。code

添加項目/Add Field

添加後以下:排序

添加聯繫人姓名拼音

這是本文的基本原理,經過添加拼音到 Phonetic Name 來讓 iOS 進行對中文聯繫人的排序。

可是顯然,做爲程序員是確定不肯意幹這個體力活的。 因而咱們能夠在 Mac 中或者 iCloud 上將全部的聯繫人批量選中,而後選擇 Export vCard, 將全部聯繫人導出到本地。圖片

而後重命名爲 in.vcf,使用 Python3 運行如下程序:input

# Phonetic name adder for vCard
# using Python3

f = open('./in.vcf')

output = ""

for line in f:
    if line.startswith('N:'):
        name = line[2:-1].split(";")
        if name[0] != '':
            real = name[0]
        if name[1] != '':
            real = name[1]
        print('Input Pinyin for ' + real[0])
        output += 'N:' + real[0] + ';' + real[1:] + ';;;\n'
        output += 'FN:' + real[1:] + ' ' + real[0] + '\n'
        output += 'X-PHONETIC-LAST-NAME:' + input() + '\n'
    elif line.startswith('FN:'):
        pass
    else:
        output += line

nf = open('./out.vcf', 'w')
for line in output:
    nf.write(line)

程序會產生一個 output.vcf 文件,而後把原有的聯繫人刪除,將產生的 vCard 文件 import 到 Mac 或者 iCloud 上便可。 而後在與 iCloud 相關聯的 iOS 上刷新一下聯繫人就能夠看到正常排序的列表啦!

程序有一個捉急的點是,咱們須要手工輸入姓的拼音,每次輸入之後回車便可。 固然咱們能夠採用第三方的拼音庫能夠解決這個問題。it

相關文章
相關標籤/搜索