]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/data/translit/Han_Latin_Names.txt
ICU-62141.0.1.tar.gz
[apple/icu.git] / icuSources / data / translit / Han_Latin_Names.txt
old mode 100755 (executable)
new mode 100644 (file)
index be34f92..406a9ef
@@ -1,19 +1,30 @@
-# ***************************************************************************
-# *
-# *  Copyright (C) 2004-2014, International Business Machines
-# *  Corporation; Unicode, Inc.; and others.  All Rights Reserved.
-# *
-# ***************************************************************************
+# © 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html#License
+#
 # File: Han_Latin_Names.txt
-# Generated from CLDR 
+# Generated from CLDR
 #
+
+# This transform is primarily intended to produce readings for Chinese surnames, or for full
+# Chinese personal names - surname first - that occur at the beginning of a contiguous Han substring
+# (i.e. at the beginning of text, or immediately preceded by space or other non-Han characters).
+# Several Han characters have different readings in surnames, than the readings found in Han-Latin.
+# ----
+# Insert marker at start of each Han sequence (including Han after space).
+# Do this before ::Han-Spacedhan() to catch Han after space in original text,
+# and to apply before all other rules.
 $startOfHanMarker = \uFDD1;
 [:^script=Han:] { ([:script=Han:]) → $startOfHanMarker $1;
+# Need Spacedhan so the name transliterations get spaced properly
 ::Han-Spacedhan();
+# Convert special name readings that depend on next character
 令 } \u0020? 狐 →líng;
 万 } \u0020? 俟 →mò;
 澹 } \u0020? 台 →tán;
+# The following maps 长 to the standard Han-Latin reading zhǎng for this case,
+# to override the normal Han-Latin/Names reading 长→cháng further below
 $startOfHanMarker{ 长 } \u0020? 孙 →zhǎng;
+# Convert single characters with special name readings
 $startOfHanMarker{ 秘→bì;
 $startOfHanMarker{ 卜→bǔ;
 长→cháng;
@@ -27,7 +38,9 @@ $startOfHanMarker{ 过→guō;
 $startOfHanMarker{ 华→huà;
 $startOfHanMarker{ 纪→jǐ;
 筠→jūn;
+靓→liàng;
 $startOfHanMarker{ 牟→mù;
+$startOfHanMarker{ 粘→nián;
 $startOfHanMarker{ 区→ōu;
 $startOfHanMarker{ 繁→pó;
 仇→qiú;
@@ -48,7 +61,11 @@ $startOfHanMarker{ 员→yùn;
 $startOfHanMarker{ 查→zhā;
 翟→zhái;
 曾→zēng;
+# Convert $startOfHanMarkers to space, or to nothing if they are at the beginning of text.
+# Need to do this as a separate pass to get the spacing right.
 ::Null();
 [^$]{ $startOfHanMarker →\u0020;
 $startOfHanMarker →;
+# Then run the normal Han-Latin transform for the rest
 ::Han-Latin();
+