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