1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd"> 3 <!-- 4 Copyright 1991-2013 Unicode, Inc. 5 CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) 6 For 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? lng; 27 } \u0020? m; 28 } \u0020? tn; 29 # The following maps to the standard Han-Latin reading zhng for this case, 30 # to override the normal Han-Latin/Names reading chng further below 31 $startOfHanMarker{ } \u0020? zhng; 32 # Convert single characters with special name readings 33 $startOfHanMarker{ b; 34 $startOfHanMarker{ b; 35 chng; 36 $startOfHanMarker{ chng; 37 $startOfHanMarker{ chng; 38 $startOfHanMarker{ dio; 39 gn; 40 g; 41 $startOfHanMarker{ g; 42 $startOfHanMarker{ gu; 43 $startOfHanMarker{ hu; 44 $startOfHanMarker{ j; 45 jn; 46 ling; 47 $startOfHanMarker{ m; 48 $startOfHanMarker{ nin; 49 $startOfHanMarker{ u; 50 $startOfHanMarker{ p; 51 qi; 52 $startOfHanMarker{ rn; 53 $startOfHanMarker{ shn; 54 $startOfHanMarker{ sho; 55 $startOfHanMarker{ sh; 56 $startOfHanMarker{ sh; 57 $startOfHanMarker{ shn; 58 sh; 59 wi; 60 $startOfHanMarker{ xi; 61 xn; 62 $startOfHanMarker{ yn; 63 $startOfHanMarker{ y; 64 $startOfHanMarker{ yu; 65 $startOfHanMarker{ yn; 66 $startOfHanMarker{ zh; 67 zhi; 68 zng; 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