#!/usr/bin/python # -*- coding: utf-8 -*- import string,sys DoubleCirilica = { } DoubleCirilica[u'lj']=u'љ' DoubleCirilica[u'Lj']=u'Љ' DoubleCirilica[u'LJ']=u'Љ' DoubleCirilica[u'nj']=u'њ' DoubleCirilica[u'Nj']=u'Њ' DoubleCirilica[u'NJ']=u'Њ' DoubleCirilica[u'dž']=u'џ' DoubleCirilica[u'Dž']=u'Џ' DoubleCirilica[u'DŽ']=u'Џ' #DoubleCirilica[u'dj']=u'ђ' #DoubleCirilica[u'Dj']=u'Ђ' #DoubleCirilica[u'DJ']=u'Ђ' Cirilica = { } Cirilica[u'a']=u'а' Cirilica[u'A']=u'А' Cirilica[u'b']=u'б' Cirilica[u'B']=u'Б' Cirilica[u'v']=u'в' Cirilica[u'V']=u'В' Cirilica[u'g']=u'г' Cirilica[u'G']=u'Г' Cirilica[u'd']=u'д' Cirilica[u'D']=u'Д' Cirilica[u'đ']=u'ђ' Cirilica[u'Đ']=u'Ђ' Cirilica[u'e']=u'е' Cirilica[u'E']=u'Е' Cirilica[u'ž']=u'ж' Cirilica[u'Ž']=u'Ж' Cirilica[u'z']=u'з' Cirilica[u'Z']=u'З' Cirilica[u'i']=u'и' Cirilica[u'I']=u'И' Cirilica[u'j']=u'ј' Cirilica[u'J']=u'Ј' Cirilica[u'k']=u'к' Cirilica[u'K']=u'К' Cirilica[u'l']=u'л' Cirilica[u'L']=u'Л' Cirilica[u'm']=u'м' Cirilica[u'M']=u'М' Cirilica[u'n']=u'н' Cirilica[u'N']=u'Н' Cirilica[u'o']=u'о' Cirilica[u'O']=u'О' Cirilica[u'p']=u'п' Cirilica[u'P']=u'П' Cirilica[u'r']=u'р' Cirilica[u'R']=u'Р' Cirilica[u's']=u'с' Cirilica[u'S']=u'С' Cirilica[u't']=u'т' Cirilica[u'T']=u'Т' Cirilica[u'ć']=u'ћ' Cirilica[u'Ć']=u'Ћ' Cirilica[u'u']=u'у' Cirilica[u'U']=u'У' Cirilica[u'f']=u'ф' Cirilica[u'F']=u'Ф' Cirilica[u'h']=u'х' Cirilica[u'H']=u'Х' Cirilica[u'c']=u'ц' Cirilica[u'C']=u'Ц' Cirilica[u'č']=u'ч' Cirilica[u'Č']=u'Ч' Cirilica[u'š']=u'ш' Cirilica[u'Š']=u'Ш' WordChars = u"ABVGDĐEŽZIJKLLJMNNJOPRSTĆUFHCČDŽŠabvgdđežzijklljmnnjoprstćufhcčdžš0123456789QWYXqwyx/" def lat_u_cir(text): for slovo in DoubleCirilica.keys(): text = text.replace(slovo,DoubleCirilica[slovo]) for slovo in Cirilica.keys(): text = text.replace(slovo,Cirilica[slovo]) return text def part_of_word(char): if char in WordChars: return 1 else: return 0 def needs_conversion(word): NoConversion = [ "IBM", "Sun", "Dell", "root", "Microsoft" ] if ("x" in word) or ("y" in word) or ("w" in word) or ("q" in word) or \ ("X" in word) or ("Y" in word) or ("W" in word) or ("Q" in word) or (word in NoConversion): return 0 return 1 def special_cases(word): # nadživeo SpecialCases = { u"nadživeti" : u"надживети", u"konjugacija" : u"конјугација" } if word in SpecialCases.keys(): return SpecialCases[word] else: return 0 import fileinput for line in fileinput.input(): input = line.decode('utf-8') word = "" for char in input: if part_of_word(char): word += char else: spc = special_cases(word) if spc: sys.stdout.write(spc.encode('utf-8')) elif needs_conversion(word): sys.stdout.write(lat_u_cir(word).encode('utf-8')) else: sys.stdout.write(word.encode('utf-8')) word = "" sys.stdout.write(char.encode('utf-8'))