Class: DetranslitRules
- Inherits:
-
Object
- Object
- DetranslitRules
- Defined in:
- lib/detranslit_rules.rb
Constant Summary collapse
- RULES =
arrays: [output, predecessor-rule, successor-rule, softener-if-0]
{ 'a' => [ ['а', /.*/, /.*/, 1] ], 'b' => [ ['б', /.*/, /.*/, 1], ['бь', /.*/, /[a,e,i,ja,ya,ju,yu]|^$/, 0] ], 'c' => [ ['ц', /.*/, /.*/, 1] ], 'd' => [ ['д', /.*/, /.*/, 1], ['дь', /.*/, /[ja,e,m,b,k,ju,yu,s]|^$/, 0] ], 'e' => [ ['е', /.*/, /.*/, 1] ], 'f' => [ ['ф', /.*/, /.*/, 1], ['фь', /.*/, /[ja,ya,e,je,o]|^$/, 0] ], 'g' => [ ['г', /.*/, /.*/, 1] ], 'h' => [ ['х', /.*/, /.*/, 1] ], 'i' => [ ['и', /.*/, /.*/, 1], ['ы', /.+/, /.*/, 1], ['ий', /.+/, /^$/, 1] ], 'j' => [ ['й', /.*/, /.*/, 1] ], 'k' => [ ['к', /.*/, /.*/, 1], ['кь', /.*/, /[ja,ya]/, 0] # ], 'l' => [ ['л', /.*/, /.*/, 1] ], 'm' => [ ['м', /.*/, /.*/, 1]#, # ['мь', /[a,e,i,o,u,ju,yu,ja,ya]/, /[e,ja,ya,d,s,ju,yu]|^$/, 0] # ['мь', /[e]/, /[e]/, 0] ], 'n' => [ ['н',/.*/,/.*/, 1], # ['нь', /[a,e,o,u,i,y,ja,ya,ju,yu,z,r,s,g]/, /[k,e,ja,sh,sch,o,i,g,-,ju,yu,zh,ch,tsch,b,d,s]|^$/, 0] ['нь', /[a,e,o,u,i,y,ja,ya]/, /[k,e,ja,sh,sch,o,i,g]|^$/, 0] ], 'o' => [ ['о', /.*/, /.*/, 1] ], 'p' => [ ['п', /.*/, /.*/, 1], ['пь', /.*/, /[ja,ya,e,ju,yu]|^$/, 0] ], 'q' => [ ['', /.*/, /.*/, 1] ], 'r' => [ ['р', /.*/, /.*/, 1], # ['рь', /[a,o,e,u,y,i,b,ja,ju,t,p,kh,ch]/, /[e,k,ja,ya,m,c,-,i,b,tsch,ch,g]|^$/, 0] ['рь', /[a,o,e,u,y,i,b]/, /[e,k,ja,ya,m]|^$/, 0] ], 's' => [ ['с', /.*/, /.*/, 1], # ['сь', /.*/, /[m,e,k,b,ja,ya,ju,yu,o]|^$/, 0] ['сь', /[i,o,e]/, /[m,e]|^$/, 0] ], 't' => [ ['т', /.*/, /.*/, 1], # ['ть', /[a,i,s,ja,ya,u,e,y,o,z,r,l,f,n]/, /[s,e,ja,ya,ju,yu,i,-,b,m,f,k,d,u,v,w]|^$/, 0], ['ть', /[a,i,s,ja,ya,u,e,y,o,z,r]/, /[s,e,ja,ya,ju,yu,i,-]|^$/, 0], ], 'u' => [ ['у', /.*/, /.*/, 1] ], 'v' => [ ['в', /.*/, /.*/, 1], ['вь', /.*/, /[ju,yu,e,i]|^$/, 0] ], 'w' => [ ['в', /.*/, /.*/, 1], ['вь', /.+/, /[ju,yu,e,i]|^$/, 0], ['вь', /.*/, /[ju,yu,e,i]/, 0] ], 'x' => [ ['кс', /.*/, /.*/, 1] ], 'y' => [ ['ы', /.*/, /.*/, 1] ], 'z' => [ ['з', /.*/, /.*/, 1], ['зь', /.*/, /[ja,ya,b,e,m,k]|^$/, 0] ], "'" => [ ['ь', /.+/, /.*/, 0] ], # english letter combinations 'ch' => [ ['ч', /.*/, /.*/, 1], ['чь', /.*/, /[s,e,i,ja,ya,ju,yu,-]|^$/, 0] ], 'кн' => [ ['х', /.*/, /.*/, 1] ], 'yu' => [ ['ю', /.*/, /.*/, 1] ], 'ya' => [ ['я', /.*/, /.*/, 1] ], 'yo' => [ ['е', /.*/, /.*/, 1] ], 'sh' => [ ['ш', /.*/, /.*/, 1], ['шь', /.*/, /[ja,ya,e,s]|^$/, 0] ], 'shch' => [ ['щ', /.*/, /.*/, 1], ['щь', /.*/, /^$/, 0] ], 'ts' => [ ['ц', /.*/, /.*/, 1] ], 'zh' => [ ['ж', /.*/, /.*/, 1], ['жь', /.*/, /[e,i,ja,ya]|^$/, 0] ], # german letter combinations 'sch' => [ ['ш', /.*/, /.*/, 1], #de ['щ', /.*/, /.*/, 1], #en ['шь', /.*/, /^$/, 0] #maschadov ? ], 'tsch' => [ ['ч', /.*/, /.*/, 1], ['чь', /.*/, /[s,e,i,ja,ya,ju,yu,-]|^$/, 0] ], 'schtsch' => [ ['щ', /.*/, /.*/, 1] ], 'ju' => [ ['ю', /.*/, /.*/, 1] ], 'ja' => [ ['я', /.*/, /.*/, 1] ], # 'je' => [ # ['е', /.*/, /.*/, 1], # ['же', /.*/, /.*/, 1], # ], 'jo' => [ ['е', /.*/, /.*/, 1] ], 'ä' => [ ['я', /.*/, /.*/, 1] ], 'ö' => [ ['ё', /.*/, /.*/, 1] ], 'ü' => [ ['ю', /.*/, /.*/, 1] ], 'ß' => [ ['с', /.*/, /.*/, 1] ], 'je' => [ ['е', /.*/, /.*/, 1], #['йе', /.*/, /.*/, 1], ['же', /^$/, /.*/, 1] ] # TODO scientific letter combinations }
Class Method Summary collapse
Class Method Details
.rules ⇒ Object
4 5 6 |
# File 'lib/detranslit_rules.rb', line 4 def self.rules RULES end |