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: 12352 $"/>
     10 	<transforms>
     11 		<transform source="und_FONIPA" target="fa" direction="forward" alias="fa-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 Farsi or Arabic, but when transliterating
     17 # foreign words and names, it is strongly preferred to vowel marks.
     18 # Short schwa [] and a few other, schwa-like vowels get omitted entirely
     19 # unless at the end of the word, in which case we emit  whose Farsi
     20 # word-final pronunciation comes close to []. At the beginning of words,
     21 # Farsi speakers prefer to see  for [] and a few other similar-sounding
     22 # dark vowels; note that this use of  is quite different from Arabic.
     23 
     24 $IVowel = [i  e {e}];
     25 $UVowel = [y {} {}  u  {} {} {} {}   o {} {} {o}  w {w}  ];
     26 $AVowel = [    ];
     27 $DarkAVowel = [ a     {} {}];  #  instead of  at beginning of words
     28 $SchwaVowel = [   {}];
     29 $Click = [         ];
     30 $Boundary =  [^[:L:][:M:][:N:]];
     31 
     32 ::NFD;
     33 [                                   ]  ;
     34   j;
     35   m;
     36   n;
     37   ;
     38 ::NFC;
     39 
     40 # TODO: Diphthongs probably need more work.
     41 
     42 # Romanian [sekujesk]  [sekujask], for emitting  not 
     43 $UVowel [j $IVowel] [e {e} $SchwaVowel]  uia;
     44 
     45 # Kazakh  [jyz]  [jiuz], to emit  not 
     46 y  iu;
     47 
     48 ::NULL;
     49 
     50 # Vowels
     51 $Boundary {$SchwaVowel ?}  ;
     52 $SchwaVowel   ;
     53 {[$SchwaVowel e {e}]} [^[:L:][:M:][:N:][\.]]  ;
     54 $SchwaVowel  ;
     55 
     56 $Boundary {$IVowel ?}  ;
     57 $IVowel ? j?  ;
     58 
     59 $Boundary {$UVowel ?}  ;
     60 $UVowel ?  ;
     61 
     62 $Boundary {$AVowel ?}  ;
     63 $AVowel ?  ;
     64 
     65 $Boundary {$DarkAVowel ?}  ;
     66 $DarkAVowel ?  ;
     67 
     68 # Shadda for long (geminated) consonants
     69   ;
     70 
     71 # Affricates
     72 [{t} ]  ;
     73 
     74 # Clicks
     75 [ g  k] $Click  ;
     76 [n ]? $Click  ;
     77 
     78 # Nasal stops
     79 [{m} m ]  ;
     80 [{n} {n} {n} n {}  {} {} ]  ;
     81 [{}  {} ] k  ;
     82 [{}  {} ] [ g]?  ;
     83 
     84 # Non-nasal stops
     85 [p {p}]  ;
     86 [b {b} ]  ;
     87 [{d} d  ]  ;
     88 [{t} t]  ;
     89 []  ;
     90 []  ;
     91 c  ;
     92   ;
     93 k  ;
     94 [ g ]  ;
     95 [q   ]  ;
     96   ;
     97 
     98 # Sibilant fricatives
     99 s  ;
    100 z  ;
    101 [   ]  ;
    102 [  ]  ;
    103 
    104 # Non-sibilant fricatives
    105 [ f]  ;
    106 [ v]  ;
    107 [{}  {}]  ;
    108 [{}  {}]  ;
    109   ;
    110  $IVowel? ?  ;
    111 [x ]  ;
    112 [ ]  ;
    113   ;
    114   ;
    115 [h  {}]  ;
    116 
    117 # Approximants, trills, flaps
    118   ;
    119   ;
    120 {r}  ;
    121 [{} {} {} {} {}  {}  {r} {r} r]  ;
    122 [{} ]  ;
    123   ;
    124   ;
    125 j $IVowel? ?  ;
    126 
    127 # Laterals
    128   ;
    129   ;
    130 {[{} ]} [^ $IVowel j ]  ;
    131 [{l} {l} l {}  {} ]  ;
    132 [ {}]  ;
    133 
    134 # Independent pass for misc cleanup.
    135 ::NULL;
    136 
    137 # Strip off syllable markers
    138 \.  ;  
    139 
    140 # Sequences of three or more  look very confusing; we shorten them.
    141 # Polish Darowo [darwv]    
    142 +  ;
    143 
    144 			]]></tRule>
    145 		</transform>
    146 	</transforms>
    147 </supplementalData>
    148