1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd"> 3<!-- 4Copyright © 1991-2021 Unicode, Inc. 5CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) 6For terms of use, see http://www.unicode.org/copyright.html 7--> 8<supplementalData> 9 <version number="$Revision$"/> 10 <transforms> 11 <transform source="my" target="Zawgyi" direction="forward" alias="my-t-my-d0-zawgyi"> 12 <tRule><![CDATA[ 13# This transform converts Unicode Burmese text into Zawgyi font encoded 14# form. Zawgyi is a popular, non-standard encoding scheme in Myanmar 15# that uses the same code range as Myanmar Unicode but assigns different 16# characters or glyphs to some codepoints. In addition to character remapping, 17# context-based reordering of codepoints is needed to give readable 18# output when the output is displayed with a Zawgyi font such as 19# ZawgyiOne.ttf or ZawgyiOne2008.ttf. 20# 21# The transform is done in two main stages: 22# (1) Map all Unicode codepoints to their Zawgyi counterparts. 23# (2) Perform reordering. 24 25# Modern Burmese digits and Unicode code points. 26$nondigits = [^\u1040-\u1049]; 27$consonant = [\u1000-\u1021]; 28$narrowconsonant = [\u1001\u1002\u1004\u1005\u1007\u100b-\u100e\u1012\u1013\u1015-\u1017\u1019\u101d\u1020\u1025\u1026\u108f]; 29$wideconsonant = [\u1000\u1003\u1006\u1009\u100a\u100f\u1010\u1011\u1018\u101c\u101e\u101f\u1021]; 30$widenya = [\u100a\u106b]; 31$othernya = [\u1009\u106a]; 32$vowelsign = [\u102B-\u1030\u1032]; 33$vowelmedial = [\u102B-\u1030\u1032\u103c-\u103F]; 34$ukinzi = [\u1004\u101b\u105a]\u103A\u1039; 35 36$medialraZ = [\u103b\u107e-\u1084]; 37$lowsignZ = [\u102f\u1030\u1037\u103c\u103d\u1087-\u108a]; 38$highsignZ = [\u102d\u102e\u1032\u1036\u1039\u1064]; 39$subscriptitem = [\u1060-\u1063\u1064-\u1068\u106c\u106d\u1070-\u107c\u1085\u1093\u1096]; 40 41$vowelsAndConsonants = [\u1000-\u102a]; 42 43#### Phase 0: CODEPOINT MAPPING FROM UNICODE TO ZAWGYI 44$ukinzi ($consonant) \u103B > $1 \u103A \u1064 ; 45 46$ukinzi ($consonant) \u102D \u1036 > $1 \u108e ; 47$ukinzi ($consonant) \u102D > $1 \u108b ; 48$ukinzi ($consonant) \u102E > $1 \u108C ; 49$ukinzi ($consonant) \u1036 > $1 \u108D ; 50$ukinzi ($consonant) \u1031 > $1 \u1031 \u1064 ; 51$ukinzi ($consonant) \u103B \u102D \u102F > $1 \u103A \u1033 \u108B ; 52$ukinzi ($consonant) \u103B \u102D > $1 \u103A \u108b ; 53$ukinzi ($consonant) \u103B \u102E \u102F > $1 \u103A \u108C \u1033 ; 54$ukinzi ($consonant) \u103B \u102E > $1 \u103A \u108C ; 55$ukinzi ($consonant) \u103B \u1036 > $1 \u103A \u108D ; 56 57$ukinzi ($consonant) \u103c > $1 \u103b \u1064; # Kinzi + medial ra 58 59$ukinzi \u102D > \u108B ; 60$ukinzi \u102E > \u108C ; 61$ukinzi \u1036 > \u108D ; 62 63$ukinzi ($consonant) > $1 \u1064 ; 64 65\u1025 ($vowelsign) \u1038 > \u106A $1 \u1038 ; 66\u1025 \u102f \u1036 > \u1025 \u1036 \u1033 ; 67 68\u102D \u1036 > \u108E ; 69 70# Some composed lower output 71\u103d \u103e > \u108a ; 72 73\u103e \u102f > \u1088 ; 74 75\u103E \u1030 > \u1089 ; 76 77\u103A > \u1039 ; 78\u103B > \u103A ; 79\u103C > \u103B ; 80\u103D > \u103C ; 81\u103E > \u103D ; 82\u103F > \u1086 ; 83 84([\u1019]) \u103e \u1030 > $1 \u103d \u1034; # A special case with signs. 85 86\u102B \u103A > \u105A ; 87 88\u1039 \u1010 \u103d > \u1096 ; # Very special case 89 90\u1039 \u1000 > \u1060 ; 91\u1039 \u1001 > \u1061 ; 92\u1039 \u1002 > \u1062 ; 93\u1039 \u1003 > \u1063 ; 94\u1039 \u1005 > \u1065 ; 95\u1039 \u1006 > \u1067 ; 96\u1039 \u1007 > \u1068 ; 97\u1039 \u1008 > \u1069 ; 98\u1039 \u100B > \u106C ; 99\u1039 \u100C > \u106D ; 100 101\u1039 \u100F > \u1070 ; 102\u1039 \u1010 > \u1072 ; 103\u1039 \u1011 > \u1074 ; 104\u1039 \u1012 > \u1075 ; 105\u1039 \u1013 > \u1076 ; 106\u1039 \u1014 > \u1077 ; 107\u1039 \u1015 > \u1078 ; 108\u1039 \u1016 > \u1079 ; 109\u1039 \u1017 > \u107A ; 110\u1039 \u1018 > \u1093 ; 111\u1039 \u1019 > \u107C ; 112\u1039 \u101C > \u1085 ; 113 114\u100d\u1039\u100D > \u106E ; 115\u100d\u1039\u100E > \u106F ; 116\u100F\u1039\u100D > \u1091 ; 117\u100B\u1039\u100C > \u1092 ; 118\u100B\u1039\u100B > \u1097 ; 119\u104E\u1004\u103A\u1038 > \u104E ; 120 121#### PHASE 1: Everything is now in Zawgyi code points. REORDERING RULES. 122::Null; 123 124# Handle Na with lower modifiers, medial ra. 125\u1014 ($subscriptitem) ($highsignZ*) \u103b > \u103b \u108f $1 $2; 126\u1014 \u103b ([\u103c\u103d]*) (\u1031*) > $2 \u103b \u108f $1; 127 128# E Vowel + medial ra. Move the e vowel 129($consonant) \u103b ([\u103c\u103d]*) \u1031 > \u1031 \u103b $1 $2; 130 131($consonant) \u103b > \u103b $1 ; 132 133($consonant) \u103d \u1031 \u1037 > \u1031 $1 \u1094 \u103D ; 134 135($consonant) (\u108a) \u1031 > \u1031 $1 $2 ; 136 137# Ra + kinzi 138($consonant) \u1064 \u103b > \u103b $1 \u1064 ; 139 140# E vowel plus medials 141($consonant) ([\u103a\u103c-\u103d]+) \u1031 > \u1031 $1 $2 ; 142 143# Handle consonant, subscripted consonant, medial ra 144($consonant) ($subscriptitem) ($highsignZ*) \u103b > \u103b $1 $2 $3 ; 145 146# No medials intervening. 147($vowelsAndConsonants) \u1031 > \u1031 $1 ; 148 149# Handle Na with lower modifiers. 150\u1014 ($subscriptitem) > \u108f $1 ; 151 152\u1014 ($lowsignZ) ($highsignZ) \u1037 > \u108f $1 $2 \u1094; 153\u1014 ($highsignZ) ($lowsignZ) \u1037 > \u108f $1 $2 \u1094; 154\u1014 ($highsignZ) \u1037 > \u1014 $1 \u1094; 155 156# a special case 157\u1014 \u1032 \u1037 > \u1014 \u1032 \u1094; 158\u1014 \u1037 > \u1014 \u1094; 159 160\u1014 \u1032 ($lowsignZ) \u1037 > \u108f $1 \u1032 \u1094; 161\u1014 ($highsignZ) ($lowsignZ) > \u108f $1 $2; 162\u1014 ($lowsignZ) ($highsignZ) > \u108f $1 $2; 163 164\u1014 ($lowsignZ) \u1037 > \u108f $1 \u1094; 165 166\u1014 ($lowsignZ) > \u108f $1; 167 168# Move 1037 dot to right with other descenders. 169($lowsignZ) ($highsignZ*) \u1037 > $1 $2 \u1094; 170 171($nondigits) \u1040 ([\u102B-\u103F]) > $1 \u101D $2; 172# Handle lack of 104E ၎ MYANMAR SYMBOL AFOREMENTIONED 173($nondigits) \u104e > $1 \u1044; 174\u1031 \u1040 ($nondigits) > \u1031 \u101D $1; 175\u1009 \u103A > \u1025 \u103A; 176\u1025 \u102E > \u1026; 177\u1037 \u103A > \u103A \u1037; 178 179([\u102B\u102C\u102F\u1030]) ([\u102D\u102E\u1032]) > $2 $1; 180 181## Phase 2: Further adjustments 182::Null; 183 184# Two medials 185\u103a \u103c > \u103c \u107d; 186 187\u103c \u1094 > \u103c \u1095 ; 188 189# Medial ra variations, context dependent 190$medialraZ ($narrowconsonant) ($subscriptitem) ($highsignZ) > \u1083 $1 $2 $3 ; 191$medialraZ ($wideconsonant) ($subscriptitem) ($highsignZ) > \u1084 $1 $2 $3; 192$medialraZ ($narrowconsonant) ($subscriptitem) > \u1081 $1 $2 ; 193$medialraZ ($wideconsonant) ($subscriptitem) > \u1082 $1 $2 ; 194 195$medialraZ ($narrowconsonant) ([\u103c\u108a]) ($highsignZ) > \u1083 $1 $2 $3 ; 196$medialraZ ($wideconsonant) ([\u103c\u108a]) ($highsignZ) > \u1084 $1 $2 $3 ; 197 198$medialraZ ($narrowconsonant) \u103d ($highsignZ) > \u107f $1 \u1087 $2; 199$medialraZ ($wideconsonant) \u103d ($highsignZ) > \u1080 $1 \u1087 $2; 200 201$medialraZ ($narrowconsonant) \u102f ($highsignZ) > \u107f $1 \u1033 $2; 202$medialraZ ($wideconsonant) \u102f ($highsignZ) > \u1080 $1 \u1033 $2; 203 204$medialraZ ($narrowconsonant) \u1030 ($highsignZ) > \u107f $1 \u1034 $2; 205$medialraZ ($wideconsonant) \u1030 ($highsignZ) > \u1080 $1 \u1034 $2; 206 207$medialraZ ($narrowconsonant) ($lowsignZ*) ($highsignZ) > \u107f $1 $2 $3; 208$medialraZ ($wideconsonant) ($lowsignZ*) ($highsignZ) > \u1080 $1 $2 $3; 209 210$medialraZ ($narrowconsonant) ([\u103c\u108a]) > \u1081 $1 $2 ; 211$medialraZ ($wideconsonant) ([\u103c\u108a]) > \u1082 $1 $2 ; 212 213$medialraZ ($narrowconsonant) \u103d > \u103b $1 \u1087; 214$medialraZ ($wideconsonant) \u103d > \u107e $1 \u1087; 215 216$medialraZ ($narrowconsonant) \u102f > \u103b $1 \u1033; 217$medialraZ ($wideconsonant) \u102f > \u107e $1 \u1033; 218 219$medialraZ ($narrowconsonant) \u1030 > \u103b $1 \u1034; 220$medialraZ ($wideconsonant) \u1030 > \u107e $1 \u1034; 221 222$medialraZ ($widenya) > \u1082 $1 ; 223$medialraZ ($othernya) > \u103b \u106a ; 224 225$medialraZ ($narrowconsonant) > \u103b $1 ; 226$medialraZ ($wideconsonant) > \u107e $1 ; 227 228\u1009 ($lowsignZ) > \u106a $1; 229 230\u100A ($lowsignZ)> \u106B $1 ; ## NYA and NNYA 231 232\u103d \u102d > \u102d \u103d; 233 234\u103a ($highsignZ) \u102f [\u1037\u1094\u1095] > \u103a $1 \u1033 \u1095; 235\u103a \u102f [\u1037\u1094\u1095] > \u103a \u1033 \u1095; 236 237\u103a \u102f > \u103a \u1033; 238# Kinzi combo 239\u1064 \u102e > \u108c ; 240 241##### Phase 3 242::Null; 243 244\u1037 ([\u102D-\u1030\u1032\u1036]) > $1 \u1037; 245($consonant) ([\u102B-\u1032\u1036\u103B-\u103E]) \u103A ($consonant)> $1 \u103A $2 $3; 246 247# Combine vowel and consonant signs 248\u103d \u102f > \u1088; 249 250\u1033 \u1094 > \u1033 \u1095; # Wider spacing on lower dot 251 252($medialraZ) ($narrowconsonant) ($lowsignZ*) ($highsignZ*) \u102f > $1 $2 $3 $4 \u1033; 253($medialraZ) ($wideconsonant) ($lowsignZ*) ($highsignZ*) \u102f > $1 $2 $3 $4 \u1033; 254 255($medialraZ) ($narrowconsonant) ($lowsignZ*) ($highsignZ*) \u1030 > $1 $2 $3 $4 \u1034; 256($medialraZ) ($wideconsonant) ($lowsignZ*) ($highsignZ*) \u1030 > $1 $2 $3 $4 \u1034; 257 258##### Phase 4. More reorderings of medials 259::Null; 260 261([\u103D\u103E]) \u103C > \u103C $1; 262\u103E\u103D > \u103D\u103E ; 263\u1038 ($vowelmedial) > $1 \u1038; 264\u1038 ([\u1036\u1037\u103A]) > $1 \u1038; 265 266\u103a ([\u1064\u108b-\u108e]) \u102d \u102f > \u103a $1 \u102d \u1033; 267\u103a \u102d \u102f > \u103a \u102d \u1033; 268 269#### Phase 5 270::Null; 271($consonant) \u103B \u103A > $1 \u103A \u103B; 272([\u103C\u103D\u103E]) \u103B > \u103B $1; 273([\u103D\u103E]) \u103C > \u103C $1; 274\u103E\u103D > \u103D\u103E ; 275([\u102D-\u1030\u1032]) \u103A ($consonant) \u103A > $1 $2 \u103A; 276\u102D \u103A > \u102D; 277\u102E \u103A > \u102E; 278\u102F \u103A > \u102F; 279\u102D \u102E > \u102E; 280\u102F \u1030 > \u102F; 281\u102B \u102B+ > \u102B; 282\u102C \u102C+ > \u102C; 283\u102D \u102D+ > \u102D; 284\u102E \u102E+ > \u102E; 285\u102F \u102F+ > \u102F; 286\u1030 \u1030+ > \u1030; 287\u1031 \u1031+ > \u1031; 288\u1032 \u1032+ > \u1032; 289\u1036 \u1036+ > \u1036; 290\u103A \u103A+ > \u103A; 291\u103B \u103B+ > \u103B; 292\u103C \u103C+ > \u103C; 293\u103D \u103D+ > \u103D; 294\u103E \u103E+ > \u103E; 295 296# Visually identical orderings - standardize 297([\u102f\u1033]) \u102D > \u102D $1 ; 298([\u102f\u1033]) \u1036 > \u1036 $1 ; 299\u1037 \u1039 > \u1039 \u1037; 300\u1032 \u103c > \u103c \u1032 ; 301\u102e \u103c > \u103c \u102e ; 302 303\u103d \u1088 > \u1088 ; 304 ]]></tRule> 305 </transform> 306 </transforms> 307</supplementalData> 308