Home | History | Annotate | Download | only in transforms
      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