# This is a mapping of names to be translated through translate-contributors.py
# The format expected on each line should be: <old name> - <new name>
CodingCat - Nan Zhu
CrazyJvm - Chao Chen
EugenCepoi - Eugen Cepoi
GraceH - Jie Huang
JerryLead - Lijie Xu
Leolh - Liu Hao
Lewuathe - Kai Sasaki
RongGu - Rong Gu
Shiti - Shiti Saxena
Victsm - Min Shen
WangTaoTheTonic - Wang Tao
XuTingjun - Tingjun Xu
YanTangZhai - Yantang Zhai
alexdebrie - Alex DeBrie
alokito - Alok Saldanha
anantasty - Anant Asthana
andrewor14 - Andrew Or
aniketbhatnagar - Aniket Bhatnagar
arahuja - Arun Ahuja
brkyvz - Burak Yavuz
chesterxgchen - Chester Chen
chiragaggarwal - Chirag Aggarwal
chouqin - Qiping Li
cocoatomo - Tomohiko K.
coderfi - Fairiz Azizi
coderxiang - Shuo Xiang
davies - Davies Liu
epahomov - Egor Pahomov
falaki - Hossein Falaki
freeman-lab - Jeremy Freeman
industrial-sloth - Jascha Swisher
jackylk - Jacky Li
jayunit100 - Jay Vyas
jerryshao - Saisai Shao
jkbradley - Joseph Bradley
lianhuiwang - Lianhui Wang
lirui-intel - Rui Li
luluorta - Lu Lu
luogankun - Gankun Luo
maji2014 - Derek Ma
mccheah - Matthew Cheah
mengxr - Xiangrui Meng
nartz - Nathan Artz
odedz - Oded Zimerman
ravipesala - Ravindra Pesala
roxchkplusony - Victor Tso
scwf - Wang Fei
shimingfei - Shiming Fei
surq - Surong Quan
suyanNone - Su Yan
tedyu - Ted Yu
tigerquoll - Dale Richardson
wangxiaojing - Xiaojing Wang
watermen - Yadong Qi
witgo - Guoqiang Li
xinyunh - Xinyun Huang
zsxwing - Shixiong Zhu
Bilna - Bilna P
DoingDone9 - Doing Done
Earne - Ernest
FlytxtRnD - Meethu Mathew
GenTang - Gen TANG
JoshRosen - Josh Rosen
MechCoder - Manoj Kumar
OopsOutOfMemory - Sheng Li
Peishen-Jia - Peishen Jia
SaintBacchus - Huang Zhaowei
azagrebin - Andrey Zagrebin
bzz - Alexander Bezzubov
fjiang6 - Fan Jiang
gasparms - Gaspar Munoz
guowei2 - Guo Wei
hhbyyh - Yuhao Yang
hseagle - Peng Xu
javadba - Stephen Boesch
jbencook - Ben Cook
kul - Kuldeep
ligangty - Gang Li
marsishandsome - Liangliang Gu
medale - Markus Dale
nemccarthy - Nathan McCarthy
nxwhite-str - Nate Crosswhite
seayi - Xiaohua Yi
tianyi - Yi Tian
uncleGen - Uncle Gen
viper-kun - Xu Kun
x1- - Yuri Saito
zapletal-martin - Martin Zapletal
zuxqoj - Shekhar Bansal
mingyukim - Mingyu Kim
sigmoidanalytics - Mayur Rustagi
AiHe - Ai He
BenFradet - Ben Fradet
FavioVazquez - Favio Vazquez
JaysonSunshine - Jayson Sunshine
Liuchang0812 - Liu Chang
Sephiroth-Lin - Sephiroth Lin
dobashim - Masaru Dobashi
ehnalis - Zoltan Zvara
emres - Emre Sevinc
gchen - Guancheng Chen
haiyangsea - Haiyang Sea
hlin09 - Hao Lin
hqzizania - Qian Huang
jeanlyn - Jean Lyn
jerluc - Jeremy A. Lucas
jrabary - Jaonary Rabarisoa
judynash - Judy Nash
kaka1992 - Chen Song
ksonj - Kalle Jepsen
kuromatsu-nobuyuki - Nobuyuki Kuromatsu
lazyman500 - Dong Xu
leahmcguire - Leah McGuire
mbittmann - Mark Bittmann
mbonaci - Marko Bonaci
meawoppl - Matthew Goodman
nyaapa - Arsenii Krasikov
phatak-dev - Madhukara Phatak
prabeesh - Prabeesh K
rakeshchalasani - Rakesh Chalasani
rekhajoshm - Rekha Joshi
sisihj - June He
szheng79 - Shuai Zheng
texasmichelle - Michelle Casbon
vinodkc - Vinod KC
yongtang - Yong Tang
ypcat - Pei-Lun Lee
zhichao-li - Zhichao Li
zzcclp - Zhichao Zhang
979969786 - Yuming Wang
Rosstin - Rosstin Murphy
ameyc - Amey Chaugule
animeshbaranawal - Animesh Baranawal
cafreeman - Chris Freeman
lee19 - Lee
lockwobr - Brian Lockwood
navis - Navis Ryu
pparkkin - Paavo Parkkinen
