﻿# © 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
#

# 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;
$startOfHanMarker{ 种→chóng;
$startOfHanMarker{ 重→chóng;
$startOfHanMarker{ 刀→diāo;
干→gān;
葛→gě;
$startOfHanMarker{ 盖→gě;
$startOfHanMarker{ 过→guō;
$startOfHanMarker{ 华→huà;
$startOfHanMarker{ 纪→jǐ;
筠→jūn;
$startOfHanMarker{ 牟→mù;
$startOfHanMarker{ 区→ōu;
$startOfHanMarker{ 繁→pó;
仇→qiú;
$startOfHanMarker{ 任→rén;
$startOfHanMarker{ 单→shàn;
$startOfHanMarker{ 召→shào;
$startOfHanMarker{ 折→shé;
$startOfHanMarker{ 舍→shè;
$startOfHanMarker{ 沈→shěn;
峙→shì;
隗→wěi;
$startOfHanMarker{ 解→xiè;
莘→xīn;
$startOfHanMarker{ 燕→yān;
$startOfHanMarker{ 尉→yù;
$startOfHanMarker{ 乐→yuè;
$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();

