|
import re
|
|
from num_thai.thainumbers import NumThai
|
|
|
|
|
|
num = NumThai()
|
|
|
|
|
|
_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
|
|
|