Home | History | Annotate | Download | only in transforms
      1 <?xml version="1.0" encoding="UTF-8" ?>
      2 <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
      3 <!--
      4 Copyright  1991-2016 Unicode, Inc.
      5 CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
      6 For terms of use, see http://www.unicode.org/copyright.html
      7 -->
      8 <supplementalData>
      9 	<version number="$Revision: 12385 $"/>
     10 	<transforms>
     11 		<transform source="und_FONIPA" target="ar" direction="forward" alias="ar-t-und-fonipa">
     12 		  <tRule><![CDATA[
     13 # Vowels
     14 # ------
     15 # In these rules, we produce    both for short and for long vowels.
     16 # This would be wrong for writing Arabic, but when transliterating
     17 # foreign words and names, it is strongly preferred to vowel marks.
     18 # However, we emit short schwa [] and a few other, schwa-like vowels.
     19 
     20 $IVowel = [i  e {e}];
     21 $UVowel = [y {} {}  u  {} {} {} {}   o {} {} {o}   w {w}  ];
     22 $AVowel = [      a  {} {}  ];
     23 $SchwaVowel = [   {}];
     24 $Vowel = [$IVowel $UVowel $AVowel $SchwaVowel];
     25 $Click = [         ];
     26 $Boundary =  [^[:L:][:M:][:N:]];
     27 
     28 ::NFD;
     29 [                                   ]  ;
     30   j;
     31   m;
     32   n;
     33   ;
     34 ::NFC;
     35 
     36 # TODO: Diphthongs probably need more work.
     37 
     38 # Romanian [sekujesk]  [sekujask], for emitting  not 
     39 $UVowel [j $IVowel] [e {e} $SchwaVowel]  uia;
     40 
     41 # Kazakh  [jyz]  [jiuz], to emit TODO
     42 y  iu;
     43 
     44 ::NULL;
     45 
     46 # Vowels
     47 $Boundary {? $IVowel }  ;
     48 $Boundary {? $IVowel}  ;
     49 {$IVowel } $Boundary  ;
     50 {$IVowel  } $Boundary  ;
     51 {$IVowel  } [$Vowel]  ;
     52 $IVowel ?  ;
     53 
     54 $Boundary {? $UVowel }  ;
     55 $Boundary {? $UVowel}  ;
     56 {$UVowel } $Boundary  ;
     57 {$UVowel  } $Boundary  ;
     58 $UVowel ?  ;
     59 
     60 $Boundary {? $AVowel }  ;
     61 $Boundary {? $AVowel}  ;
     62 {$AVowel } $Boundary  ;
     63 {$AVowel  } $Boundary  ;
     64 $AVowel ?  $AVowel ?  ;
     65 $AVowel ?  ;
     66 
     67 $Boundary {? $SchwaVowel }  ;
     68 $Boundary {? $SchwaVowel}  ;
     69 $SchwaVowel   ;
     70 $SchwaVowel  ;
     71 
     72 # TODO: Handle glottal stop.
     73   ;
     74 
     75 # Shadda for long (geminated) consonants
     76   ;
     77 
     78 # Affricates
     79 [{t} ]  ;
     80 
     81 # Clicks
     82 [ g  k] $Click  ;
     83 $Click  ;
     84 
     85 # Nasal stops
     86 [{m} m ]  ;
     87 [{n} {n} {n} n {}  {} {} ]  ;
     88 [{}  {} ] k  ;
     89 [{}  {} ] [ g ]?  ;
     90 
     91 # Non-nasal stops
     92 [p b {p} {b} ]  ;
     93 [{d} d  ]  ;
     94 [{t} t]  ;
     95 []  ;
     96 []  ;
     97 c  ;
     98   ;
     99 k  ;
    100 [ g ]  ;
    101 [q   ]  ;
    102 
    103 # Sibilant fricatives
    104 s  ;
    105 z  ;
    106 [   ]  ;
    107 [  ]  ;
    108 
    109 # Non-sibilant fricatives
    110 [ f v]  ;
    111   ;
    112 [{}  {}]  ;
    113 [{}  {}]  ;
    114   ;
    115  $IVowel? ?  ;
    116 [x ]  ;
    117 [ ]  ;
    118   ;
    119   ;
    120 [h  {}]  ;
    121 
    122 # Approximants, trills, flaps
    123   ;
    124   ;
    125 {r}  ;
    126 [{} {} {} {} {}  {}  {r} {r} r]  ;
    127 [{} ]  ;
    128   ;
    129   ;
    130 j $IVowel? ?  ;
    131 
    132 # Laterals
    133   ;
    134   ;
    135 {[{} ]} [^ $IVowel j ]  ;
    136 [{l} {l} l {}  {} ]  ;
    137 [ {}]  ;
    138 
    139 # Independent pass for misc cleanup.
    140 ::NULL;
    141 
    142 # Strip off syllable markers
    143 \.  ;  
    144 
    145 # Sequences of three or more  look very confusing; we shorten them.
    146 # Polish Darowo [darwv]    
    147 +  ;
    148 			]]></tRule>
    149 		</transform>
    150 	</transforms>
    151 </supplementalData>
    152