好多人喜欢将 iOS 设置为英文系统,但是有一个问题其实蛮头疼的,就是联系人的排序问题。在英文系统中,所有中文名字被默认排到了 # 后面,而不是按照拼音来分栏的。
网上有一个方法就是将每一个你需要排序的名片进行编辑,在 添加项目/Add Field 这一个按钮上点击 Phonetic First/Last Name, 然后将联系人的姓或者名的拼音输入上去。我这里为了方便,在 Mac 中进行编辑,iOS 中同理,没有 MAC 的,可以用苹果账号登陆 iCloud.com 进行联系人管理。
添加后如下:
这是本文的基本原理,通过添加拼音到 Phonetic Name 来让 iOS 进行对中文联系人的排序。
但是显然,作为程序员是肯定不愿意干这个体力活的。 于是我们可以在 Mac 中或者 iCloud 上将所有的联系人批量选中,然后选择 Export vCard, 将所有联系人导出到本地。
然后重命名为 in.vcf,使用 Python3 运行以下程序:
# 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 上刷新一下联系人就可以看到正常排序的列表啦!
程序有一个捉急的点是,我们需要手工输入姓的拼音,每次输入以后回车即可。 当然我们可以采用第三方的拼音库可以解决这个问题。