# These users were blocked because they are spammers, and therefore shouldn't be
# included in the credits section.
watabas
p.karlsen
Julpetter
viki19822
jjroot19
mattiasxxpersson
JeremyMaloney

# These users joined the project but didn't make any translation, so they
# shouldn't be credited neither.
# NOTE: This list should be revisited in the future in case they actually
# contribute.
yolandarobinson3838
ema168rutter
bsiwanon
nlmyst-35

# These users joined the project and submitted translations, but all of them
# are incorrect (e.g. they were submitted to the wrong language).
# We block them so they aren't listed with the wrong language.
# NOTE: Once their translations have been cleaned/moved, each translator should
# be removed from this list.
mikkosaarinentapani

# This is the extension creator, so he shouldn't be credited as a translator
# neither.
avm99963
