1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd"> 3<!-- 4Copyright © 1991-2013 Unicode, Inc. 5CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) 6For terms of use, see http://www.unicode.org/copyright.html 7--> 8<supplementalData> 9 <version number="$Revision: 13668 $"/> 10 <transforms> 11 <transform source="Han" target="Latin" direction="forward" variant="Names" alias="und-Latn-t-und-hani-m0-prprname"> 12 <tRule> 13# This transform is primarily intended to produce readings for Chinese surnames, or for full 14# Chinese personal names - surname first - that occur at the beginning of a contiguous Han substring 15# (i.e. at the beginning of text, or immediately preceded by space or other non-Han characters). 16# Several Han characters have different readings in surnames, than the readings found in Han-Latin. 17# ---- 18# Insert marker at start of each Han sequence (including Han after space). 19# Do this before ::Han-Spacedhan() to catch Han after space in original text, 20# and to apply before all other rules. 21$startOfHanMarker = \uFDD1; 22[:^script=Han:] { ([:script=Han:]) → $startOfHanMarker $1; 23# Need Spacedhan so the name transliterations get spaced properly 24::Han-Spacedhan(); 25# Convert special name readings that depend on next character 26令 } \u0020? 狐 →líng; 27万 } \u0020? 俟 →mò; 28澹 } \u0020? 台 →tán; 29# The following maps 长 to the standard Han-Latin reading zhǎng for this case, 30# to override the normal Han-Latin/Names reading 长→cháng further below 31$startOfHanMarker{ 长 } \u0020? 孙 →zhǎng; 32# Convert single characters with special name readings 33$startOfHanMarker{ 秘→bì; 34$startOfHanMarker{ 卜→bǔ; 35长→cháng; 36$startOfHanMarker{ 种→chóng; 37$startOfHanMarker{ 重→chóng; 38$startOfHanMarker{ 刀→diāo; 39干→gān; 40葛→gě; 41$startOfHanMarker{ 盖→gě; 42$startOfHanMarker{ 过→guō; 43$startOfHanMarker{ 华→huà; 44$startOfHanMarker{ 纪→jǐ; 45筠→jūn; 46靓→liàng; 47$startOfHanMarker{ 牟→mù; 48$startOfHanMarker{ 粘→nián; 49$startOfHanMarker{ 区→ōu; 50$startOfHanMarker{ 繁→pó; 51仇→qiú; 52$startOfHanMarker{ 任→rén; 53$startOfHanMarker{ 单→shàn; 54$startOfHanMarker{ 召→shào; 55$startOfHanMarker{ 折→shé; 56$startOfHanMarker{ 舍→shè; 57$startOfHanMarker{ 沈→shěn; 58峙→shì; 59隗→wěi; 60$startOfHanMarker{ 解→xiè; 61莘→xīn; 62$startOfHanMarker{ 燕→yān; 63$startOfHanMarker{ 尉→yù; 64$startOfHanMarker{ 乐→yuè; 65$startOfHanMarker{ 员→yùn; 66$startOfHanMarker{ 查→zhā; 67翟→zhái; 68曾→zēng; 69# Convert $startOfHanMarkers to space, or to nothing if they are at the beginning of text. 70# Need to do this as a separate pass to get the spacing right. 71::Null(); 72[^$]{ $startOfHanMarker →\u0020; 73$startOfHanMarker →; 74# Then run the normal Han-Latin transform for the rest 75::Han-Latin(); 76 </tRule> 77 </transform> 78 </transforms> 79</supplementalData> 80