import re from num_thai.thainumbers import NumThai num = NumThai() # List of (Latin alphabet, Thai) pairs: _latin_to_thai = [(re.compile('%s' % x[0], re.IGNORECASE), x[1]) for x in [ ('a', 'เอ'), ('b','บี'), ('c','ซี'), ('d','ดี'), ('e','อี'), ('f','เอฟ'), ('g','จี'), ('h','เอช'), ('i','ไอ'), ('j','เจ'), ('k','เค'), ('l','แอล'), ('m','เอ็ม'), ('n','เอ็น'), ('o','โอ'), ('p','พี'), ('q','คิว'), ('r','แอร์'), ('s','เอส'), ('t','ที'), ('u','ยู'), ('v','วี'), ('w','ดับเบิลยู'), ('x','เอ็กซ์'), ('y','วาย'), ('z','ซี') ]] def num_to_thai(text): return re.sub(r'(?:\d+(?:,?\d+)?)+(?:\.\d+(?:,?\d+)?)?', lambda x: ''.join(num.NumberToTextThai(float(x.group(0).replace(',', '')))), text) def latin_to_thai(text): for regex, replacement in _latin_to_thai: text = re.sub(regex, replacement, text) return text