android 系統語言為英語時,Contacts聯系人名字含有特殊前綴後綴(Dr. Mr. Lt等)時的相關問題處理

1.  進入contacts app,新建一個聯系人;
2.  在聯系人姓名欄輸入如下類似字段(目前已知):
Class 1: common_name_prefixes
1LT , 1ST , 2LT, 2ND, 3RD, ADMIRAL, CAPT, CAPTAIN, COL, CPT, DR, GEN, GENERAL, LCDR, LT, LTC, LTG, LTJG, MAJ, MAJOR, MG, MR, MRS, MS, PASTOR, PROF, REP, REVEREND, REV, SEN, ST
Class 2: common_name_suffixes
        B.A. , BA , D.D.S. , DDS , I, II, III, IV, IX, JR., M.A., M.D., MA,MD, MS, PH.D., PHD, SR, V, VI, VII, VIII, X
Class 3: common_last_name_prefixes
         D\’, DE, DEL, DI, LA, LE, MC, SAN, ST, TER, VAN, VON
Class 4: common_name_conjunctions
         &, AND, OR
更多內容可查看對應軟件版本下路徑:”alps/frameworks/base/core/res/res/values-en-Rus”下的donottranslate-names.xml文件中所列舉的絕大多數特殊前後綴。
3.  當姓名中含有這些特殊字段時,會對其作特殊處理,比如“Mr”,”Dr”,”Lt” 等可能會當作前綴處理而不作為名字;而”van”,”LA”,”DE”等可能會直接當作last name的前綴處理,而不參與名字的順序交換,等等。分別舉例:對於前者來講,如果在聯系人編輯界面的name輸入框輸入"Mr","Dr","Lt"等,再輸入號碼時保存後聯系人名字為該號碼,若不再輸入號碼時保存後聯系人名字為no name;對於後者來講,如果在name輸入框輸入”Van minh”,如果交換first name和last name的顯示順序,則不會有變化。
4.  這是google default設計邏輯,也是符合英語的使用習慣的。
 
 
請找到”alps/frameworks/base/core/res/res/values-en-Rus”下的donottranslate-names.xml文件,裡面有關於”common_name_prefixes”,”common_name_suffixes”,”common_last_name_prefixes”和”common_name_conjunctions”字段string的定義,可以直接去掉客戶在實際中遇到的特殊前後綴。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *