added some character sets and the rest of the country codes
added case insensitive trait and changed country and language codes back to enums