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