iOS 6 联系人排序问题

2012-11-20 14:31:45 +08:00
 TashinV
iPhone 系统是英文的
可是这样中文联系人全部都跑到#下面
而不是像在系统语言是中文的时候那样以拼音首字母排序

以前自己添加过姓名音标,所以可以正常按字母顺序显示,但是自从电脑升级到10.8 之后那该死的输入法开始监控通讯录,打字开始变成一种折磨....于是又折腾一遍,把联系人的姓名音标都删除了...结果发现中文姓名的联系人又全部跑到#下面去了...

老生常谈的问题了...多少年了还是没解决...来看看民间有甚麽偏方没.

最好不要让我再次添加联系人姓名音标...
最好也不要让我改联系人姓名为英文...
工程太浩大,伤不起...
15347 次点击
所在节点    iPhone
16 条回复
kunso
2012-11-20 14:43:22 +08:00
如果我说把系统改成中文吧,会不会让楼主很失望。
(p.s:改成英文有什么优势么?)
TashinV
2012-11-20 14:51:01 +08:00
@kunso 呃呃...英文字体看着比中文的舒服...没别的理由了...
DFC
2012-11-20 14:56:17 +08:00
獄中無解
qdvictory
2012-11-20 15:24:49 +08:00
可以写拼音,就能排。。。
TashinV
2012-11-20 15:34:36 +08:00
@qdvictory 这样的话输入法会很难受......输入的拼音全部和联系人里面的拼音字符挂钩了...
berlinwall
2012-11-21 17:37:31 +08:00
折腾过,放弃了。看来只有系统语言换回中文才是最佳方案。
troyl
2012-11-21 23:30:03 +08:00
可以的,將 Contacts 裏面的每個名片的姓名拼音分別填入 Phonetic Last Name 和 Phonetic First Name 中就行。我是拿 AppleScript 批量處理的,一共 520 個名片,大概用了一分鐘就好了。

英文名和中文名相處的很和諧,唯一的不足就是英文名也是按照「姓」在「名」前的順序顯示的。
lex
2012-11-21 23:44:36 +08:00
@troyl 能不能共享一下这个AppleScript,感谢。
troyl
2012-11-22 00:17:57 +08:00
@lex 我用完刪掉了……額,這是個很簡單的 AppleScript,大概思路是:

set 一個 record 型的 phoneticName,好像是 {phoneticLastname:"(*姓拼音*)", phoneticFirstname:"(*名拼音*)"}
剛開始的應該是用了 curl 這個命令把 Contacts 中選中名片的姓和名 post 到一個漢字轉拼音的網站(我忘了當時用的是哪個),把收到的結果「姓拼音」和「名拼音」分別存到 phoneticLastname 和 phoneticFirstname 裏面去,然後執行下面這個腳本(應該和以前那個大致相同)就行了……很快的。

tell application "Contacts"
if selection is not {} then
set the selectedProfiles to selection
set the profileNum to count items of selectedProfiles

repeat with i from 1 to profileNum
set the phonetic last name of item i of selectedProfiles to phoneticLastname of item i of phoneticName
set the phonetic first name of item i of selectedProfiles to phoneticFirstname of item i of phoneticName
end repeat

end if
save
end tell


如果要測試的話,不妨先給 phoneticName 賦個值試試,比如,你先在 Contacts 裏面選中 1 個名片,然後在 AppleScript Editor 裏面執行下面的腳本:

set phoneticName to {{phoneticLastname:"Xi", phoneticFirstname:"Jinping"},
tell application "Contacts"
if selection is not {} then
set the selectedProfiles to selection
set the profileNum to count items of selectedProfiles

repeat with i from 1 to profileNum
set the phonetic last name of item i of selectedProfiles to phoneticLastname of item i of phoneticName
set the phonetic first name of item i of selectedProfiles to phoneticFirstname of item i of phoneticName
end repeat

end if
save
end tell

應該就可以看到效果了……
troyl
2012-11-22 00:22:21 +08:00
@lex 暈……測試的那個腳本第一行寫錯了,第一行的末尾應該是 } 而不是 ,
Sorry
wangqj
2012-11-22 08:44:16 +08:00
@troyl 多谢了!
TashinV
2012-11-22 10:31:41 +08:00
@troyl that's what exactly i did..
lex
2012-11-24 23:33:01 +08:00
@troyl 我做了 Obj-C 的版本,省去 CURL 抓拼音的事:
https://github.com/lexrus/PhoneticContacts
shinwood
2012-11-24 23:50:18 +08:00
@lex 楼上威武。
我用Google Contacts 托管我的联系人,导出后再用PHP 进行批量处理,然后再导入,似乎麻烦了一点。
wangqj
2012-11-25 15:13:54 +08:00
@lex 非常好用!!!

能不能把“曾”字的汉语拼音归到“zeng"而不是"ceng"。

谢谢
troyl
2012-11-25 22:40:19 +08:00
@lex Awesome!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/52860

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX