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