Created
May 22, 2022 18:43
-
-
Save jonahaung/f0aea093b29b5e3a09cc04a08a876dc2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
public class MyanmarNames { | |
private var keyValues = [String: String]() | |
public static let shared = MyanmarNames() | |
private init() { | |
dataString.components(separatedBy: .newlines).forEach { line in | |
let parts = line.components(separatedBy: ",") | |
if let mmPart = parts.last { | |
parts.forEach { part in | |
if part != mmPart { | |
keyValues[part] = mmPart | |
} | |
} | |
} | |
} | |
} | |
public func myanmar(_ string: String) -> String { | |
var results = [String]() | |
string.components(separatedBy: .whitespaces).forEach { word in | |
if let myanmar = keyValues[word.lowercased()] { | |
results.append(myanmar) | |
} else { | |
results.append(word) | |
} | |
} | |
return results.joined() | |
} | |
public func english(_ string: String) -> String { | |
var results = [String]() | |
Resegment.myanmar(string).forEach { word in | |
guard word.count > 0 else { return } | |
let keys = keyValues.allKeys(forValue: word) | |
if let first = keys.first { | |
results.append(first.capitalized) | |
} | |
} | |
return results.joined(separator: " ") | |
} | |
} | |
private extension Dictionary where Value: Equatable { | |
func allKeys(forValue val: Value) -> [Key] { | |
return self.filter { $1 == val }.map { $0.0 } | |
} | |
} | |
private struct Resegment { | |
static let myanmarPattern: NSRegularExpression = { | |
do { | |
return try NSRegularExpression(pattern: "(?:(?<!္)([က-ဪဿ၊-၏]|[၀-၉]+|[^က-၏]+)(?![ှျ]?[့္်]))", options: [.caseInsensitive]) | |
}catch { | |
fatalError() | |
} | |
}() | |
public static func myanmar(_ string : String) -> [String] { | |
let outputs = myanmarPattern.stringByReplacingMatches(in: string, options: [], range: NSRange.init(string.startIndex..<string.endIndex, in: string), withTemplate: "𝕊$1") | |
return outputs.components(separatedBy: "𝕊") | |
} | |
} | |
private let dataString = """ | |
kyaw,ကျော် | |
thwin,သွင် | |
than,သန်း | |
maung,မောင် | |
tin,တင် | |
win,ဝင်း | |
zaw,ဇော် | |
col,ဗိုလ်မှူး | |
thet,သက် | |
wai,ဝေ | |
myint,မြင့် | |
swe,ဆွေ | |
dr,ဒေါက်တာ | |
saw,စော | |
bei,ဘိုင် | |
htoo,ထူး | |
aye,အေး | |
soe,စိုး | |
kyi,ကြည် | |
thein,သိန်း | |
hla,လှ | |
aung,အောင် | |
chit,ချစ် | |
yi,ရီ | |
lwin,လွင် | |
sein,စိန် | |
gun,ဂွန်း | |
nyunt,ညွန့် | |
hsan,ဆန်း | |
wain,ဝိန် | |
tun,ထွန်း | |
lt,ဗိုလ်မှူးကြီး | |
san,စန်း | |
baw,ဘော် | |
kyaung,ကြောင်း | |
naing,နိုင် | |
mya,မြ | |
min,မင်း | |
ko,ကို | |
ohn,အုန်း | |
ngwe,ငွေ | |
daw,ဒေါ် | |
thain,သိမ်း | |
han,ဟန် | |
ba,ဘ | |
bwa,ဘွာ | |
ye,ရဲ | |
htay,ဌေး | |
nyein,ငြိမ်း | |
khaing,ခိုင် | |
khin,ခင် | |
oo,ဦး | |
mar,မာ | |
ga,ဂွ | |
tha,သ | |
brig,ဘရစ် | |
gen,ဂျန် | |
tint,တင့် | |
moe,မိုး | |
pu,ပု | |
htwe,ထွေး | |
kam,ခမ် | |
twe,တွယ် | |
thaung,သောင်း | |
mo,မို | |
ngin,ငစ် | |
po,ပို | |
yin,ယဥ် | |
zay,ဇေ | |
yar,ရာ | |
shwe,ရွှေ | |
shein,ရှိန်း | |
cho,ချို | |
hlaing,လှိုင် | |
myo,မျိုး | |
thwe,သွယ် | |
truman,ထရမ်မန်း | |
zan,ဇန် | |
yu,ယု | |
maj,မေဂျာ | |
tommy,တော်မီ | |
j.m, | |
nolla,နိုလာ | |
phauyam,ဖူးရမ် | |
kamtwe,ကမ်တွယ် | |
maw,မော် | |
kyaing,ကြိုင် | |
nay,နေ | |
pe,ပီ | |
chain,ချိန်း | |
hin,ဟင် | |
seinn,စိန်း | |
nai,နေ | |
pan,ပန် | |
bo,ဘို | |
kya,ကျ | |
gyi,ကြီး | |
capt,ကပ္ပတိန် | |
kyin,ကျင် | |
paw,ပေါ် | |
tar,တာ | |
rutu,ရုတ | |
reh,ရ | |
hta,ထ | |
ru,ရု | |
edward,အက်ဒ၀က် | |
pyu,ပု | |
pha,ဖ | |
bu,ဘု | |
dereh,ဒီရာ | |
victor,ဗစ်တာ | |
lay,လေး | |
mying,မြိုင် | |
wari,ဝါရိ | |
thin,သင်း | |
din,ဒင် | |
sha,ရှ | |
teddy,တက်ဒီ | |
buyi,ဘိုင်ရီ | |
sao,စို | |
phyu,ဖြူ | |
mirei,မီရာ | |
shin,ရှင်း | |
ku,ကု | |
du,ဒု | |
thant,သန့် | |
sin,စင် | |
yan,ရန် | |
naung,နောင် | |
kywe,ကြွယ် | |
htut,ထွဋ် | |
paik,ပိုက် | |
chon,ချွန် | |
myaing,မြိုင် | |
p,ပီ | |
zin,ဇင် | |
ant,အံ့ | |
chan,ချန်း | |
nyi,ညီ | |
salai,ဆလိုင် | |
pru,ပီရူး | |
wan,ဝမ် | |
nyo,ညို | |
htaik,ထိပ် | |
thu,သု | |
ya,ယ | |
ni,နီ | |
hkun,ခွန် | |
r.p, | |
melvin,မယ်လ်ဗင် | |
a,အေ | |
clive,ကလဖ် | |
mahn,မှန်း | |
lu,လု | |
kan,ခန် | |
phone,ဖုန်း | |
za,ဇ | |
arnt,အန် | |
sann,စန်း | |
htin,ထင် | |
si,စည် | |
shwi,ရွှီ | |
byit,ဘရစ် | |
tu,သု | |
duwa,ဒုဝ | |
lawan,လဝန် | |
li,လီ | |
lakwai,လက်ဝေ | |
gyaung,ဂျောင် | |
sai,စိုင်း | |
paung,ပေါင် | |
n,အန် | |
wam,ဝမ် | |
kham,ခမ် | |
zau,ဇု | |
tawng,သွမ် | |
kamang,ခမန်း | |
gam,ဂမ် | |
ayar,ဧရာ | |
kho,ခို | |
kyee,ကြီး | |
nang,နန်း | |
pwint,ပွင့် | |
khun,ခွန် | |
kyo,ကြိုး | |
nyan,ညဏ် | |
c.k, | |
taikwell,တိုက်ဝဲ | |
im,အမ် | |
htawng,ထောင် | |
wong,ဝန် | |
zahle,ဇဟဲလ် | |
htan,ထန်း | |
no,နို | |
zam,ဇမ် | |
liam,လိုင်ယမ် | |
bwe,ဘွဲ့ | |
taik,တိုက် | |
moung,မောဝ် | |
ok,အုပ် | |
vam,ဗမ် | |
hare,ဟယ်ရီ | |
kio,ကိုင်အို | |
mang,မန်း | |
hmu,မှူး | |
tang,တောင် | |
non,နော် | |
hmon,မွှန်း | |
tan,တန် | |
lian,လိုင်ယမ် | |
pau,ပု | |
khang,ခိုင် | |
ngint,ငု | |
wont,ဝံ့ | |
kap,ကပ် | |
cin,ချင် | |
kyint,ကျင့် | |
htang,ထန် | |
c,စည် | |
vin,ဗင် | |
kyu,ကျု | |
do,ဒို | |
nan,နန်း | |
soon,စွန်း | |
htein,သိမ်း | |
kha,ခ | |
pa,ပ | |
wunna,ဝဏ္ဏ | |
thura,သူရ | |
latt,လက် | |
dan,ဒန် | |
moses,မိုးစက် | |
lin,လင်း | |
lun,လွန် | |
mehm,မှမ်း | |
david,ဒေးဗစ် | |
sit,စစ် | |
htain,ထိန်း | |
jelson,ဂျလ်စန် | |
chaw,ချော | |
may,မေ | |
hnin,နှင်း | |
mushin,မှူးရှင် | |
hsaik,စိတ် | |
peter,ပီတာ | |
linpin,လင်းပင် | |
thee,သီ | |
mung,မွန်း | |
yein,ယိမ်း | |
bawng,ဘန် | |
yaini,ရနီ | |
jip,ဂျပ် | |
sa,စ | |
saing,စိုင် | |
yun,ယွန်း | |
labya,လက်ဗျား | |
gan,ဂန် | |
ai,အိုင် | |
sam,ဆမ် | |
m,အမ် | |
hsaung,ဆောင်း | |
hsi,စည် | |
ottama,ဥတ္တမ | |
khant,ခန့် | |
khan,ခန်း | |
thang,သောင်း | |
sint,စင့် | |
thakin,သခင် | |
nur,နော် | |
arlom,အာေလာမ် | |
abul,အဗူး | |
tahail,တဟေးလ် | |
myaint,မြင့် | |
kyar,ကြာ | |
phyo,ဖြိုး | |
johnny,ဂျော်နီ | |
bi,ဘိုင် | |
minn,မင်း | |
pyin,ပြင် | |
hpe,ဖီ | |
kaung,ကောင်း | |
leik,လိခ် | |
hkam,ခမ် | |
mi,မီ | |
om,အုံ | |
hsin,စင် | |
soom,စွန်း | |
hsaing,ဆိုင်း | |
lon,လွန် | |
nwe,နွယ် | |
aik,အိုက် | |
kyauk,ကျောက် | |
daniel,ဒနိုင်ရယ် | |
thi,သီ | |
phoo,ဖူး | |
tawt,တွက် | |
wonn,ဝန်း | |
nu,နု | |
uk,အုတ် | |
hse,စည် | |
arsee,အာစီး | |
dija,ဒီဂျာ | |
yaw,ရော် | |
s,အစ် | |
htaung,ထောင် | |
mong,မုန် | |
lal,လည် | |
bit,ဘစ် | |
alian,အလိုင် | |
zanan,ဇနန်း | |
suan,စူယန် | |
htar,ထား | |
yo,ရို | |
hto,ထူ | |
yon,ယွန် | |
k,ကေ | |
t,တီ | |
phaing,ပိုင် | |
hsa,ဆ | |
wa,ဝ | |
khe,ခဲ | |
tein,တိန်း | |
kauk,ခေါက် | |
ban,ဘန် | |
lein,လိန် | |
ha,ဟ | |
ling,လိုင် | |
ge,ဂျီ | |
kywin,ကြွင် | |
mra,မာရ | |
htwee,ထွီး | |
ain,အိန် | |
mapang,မပန်း | |
jonas,ဂျိုးနက်စ် | |
r,အာ | |
gudee,ဂူဒီး | |
lanang,လနိုင် | |
bawk,ဘောက် | |
ding,ဒင် | |
ra,ရ | |
d,ဒီ | |
khamda,ခမ်ဒ | |
brang,ဘရန် | |
shaung,ဆောင်း | |
yau,ယု | |
tung,တန် | |
pansa,ပန်ဆာ | |
ram,ရမ် | |
sar,ဆာ | |
ebrahim,ဧဗရာဟမ် | |
noor,နော် | |
alam,အလမ် | |
mohamed,မိုဟာမက် | |
hussein,ဟူစိန် | |
fazul,ဖာဇူး | |
ahmed,အေမက် | |
nurul,နုရယ် | |
haq,ဟက် | |
rafee,ရာဖီ | |
faiz,ဖိတ်ဇ် | |
khapo,ခပို | |
kailon,ကိုင်လွန် | |
dwe,ဒွယ် | |
pawt,ပွက် | |
law,လော် | |
g,ဂျီ | |
hlan,လှန် | |
raw,ရော် | |
bon,ဘွန် | |
khaw,ခေါ် | |
sawng,စောင် | |
mok,မုခ် | |
myaw,မော် | |
khawng,ခွမ်း | |
gau,ဂု | |
dawng,ဒွန် | |
zawng,ဇောင် | |
bau,ဘု | |
gyone,ဂျောင် | |
hawng,ဟွမ် | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment