En las aplicaciones por Internet cada vez es más popular el soportar varios idiomas a la vez. Existe una reglamentación el ISO-639 que regula el idioma. Tiene que ser dos dígitos y en minúsculas.

La lista está en : http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt

 Existe otro reglamento el ISO-3166 que regula los países. Tienen que ser dos dígitos y en mayúsculas.

La lista está en : http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html   
 
 Para indicar un idioma y un país en concreto se unen los dos dígitos en minusculas del idioma y los dos dígitos del país en mayúsculas unidos por un guión _.

Varios ejemplos :

  • «es_ES»   Español es España.
  • «ca_ES»   Catalán en España. 
  • ‘es_MX»  Español en Mexico.

Todo esto lo explico porque cada vez más se implementan los idiomas en lenguajes de programación orientados a Objetos como el JAVA , C++ y el PHP, que pueden tener la clase locale para gestionar los idiomas, dicha clase se regula según la reglamentación ISO-639 e ISO-3166.

Les dejo abajo todas las posibles combinaciones que existen entre los idiomas y los paises :

Value Description   Value Description
ar Arabic   fi Finnish
ar_AE Arabic (United Arab Emirates)   fi_FI Finnish (Finland)
ar_BH Arabic (Bahrain)   fr French
ar_DZ Arabic (Algeria)   fr_BE French (Belgium)
ar_EG Arabic (Egypt)   fr_CA French (Canada)
ar_IQ Arabic (Iraq)   fr_CH French (Switzerland)
ar_JO Arabic (Jordan)   fr_FR French (France)
ar_KW Arabic (Kuwait)   fr_LU French (Luxembourg)
ar_LB Arabic (Lebanon)   hi_IN Hindi (India)
ar_LY Arabic (Libya)   hr Croatian
ar_MA Arabic (Morocco)   hr_HR Croatian (Croatia)
ar_OM Arabic (Oman)   hu Hungarian
ar_QA Arabic (Qatar)   hu_HU Hungarian (Hungary)
ar_SA Arabic (Saudi Arabia)   id Indonesian
ar_SD Arabic (Sudan)   is Icelandic
ar_SY Arabic (Syria)   is_IS Icelandic (Iceland)
ar_TN Arabic (Tunisia)   it Italian
ar_YE Arabic (Yemen)   it_CH Italian (Switzerland)
be Belarusian   it_IT Italian (Italy)
be_BY Belarusian (Belarus)   iw Hebrew
bg Bulgarian   iw_IL Hebrew (Israel)
bg_BG Bulgarian (Bulgaria)   ja Japanese
ca Catalan   ja_JP Japanese (Japan)
ca_ES Catalan (Spain)   ko Korean
cs Czech   ko_KR Korean (Korea)
cs_CZ Czech (Czech Republic)   lt Lithuanian
da Danish   lt_LT Lithuanian (Lithuania)
da_DK Danish (Denmark)   lv Latvian
de German   lv_LV Latvian (Latvia)
de_AT German (Austria)   mk Macedonian
de_CH German (Switzerland)   mk_MK Macedonian (Macedonia)
de_DE German (Germany)   nl Dutch
de_LU German (Luxembourg)   nl_BE Dutch (Belgium)
el Greek   nl_NL Dutch (Netherlands)
el_GR Greek (Greece)   no Norwegian
en English   no_NO Norwegian (Norway)
en_AT English (Austria)   no_NO_NY Norwegian (Norway,Nynorsk)
en_AU English (Australia)   pl Polish
en_BR English (Brazil)   pl_PL Polish (Poland)
en_CA English (Canada)   pt Portuguese
en_CH English (Switzerland)   pt_BR Portuguese (Brazil)
en_DE English (Germany)   pt_PT Portuguese (Portugal)
en_DK English (Demark)   ro Romanian
en_ES English (Spain)   ro_RO Romanian (Romania)
en_FI English (Finland)   ru Russian
en_FR English (France)   ru_RU Russian (Russia)
en_GB English (Great Britain)   sk Slovak
en_HK English (Hong Kong)   sk_SK Slovak (Slovakia)
en_IE English (Ireland)   sl Slovenian
en_IN English (India)   sl_SI Slovenian (Slovenia)
en_IT English (Italy)   sq Albanian
en_JP English (Japan)   sq_AL Albanian (Albania)
en_KR English (Korea)   sr Serbian
en_MX English (Mexico)   sv Swedish
en_NL English (Netherlands)   sv_SE Swedish (Sweden)
en_NO English (Norway)   th Thai
en_NZ English (New Zealand)   th_TH Thai (Thailand)
en_SE English (Sweden)   tr Turkish
en_SG English (Singapore)   tr_TR Turkish (Turkey)
en_TW English (Taiwan)   uk Ukrainian
en_US English (United States)   uk_UA Ukrainian (Ukraine)
en_ZA English (South Africa)   vi Vietnamese
es Spanish   vi_VN Vietnamese (Vietnam)
es_AR Spanish (Argentina)   zh Chinese
es_BO Spanish (Bolivia)   zh_CN Chinese (China)
es_CL Spanish (Chile)   zh_HK Chinese (Hong Kong)
es_CO Spanish (Colombia)   zh_TW Chinese (Taiwan)
es_CR Spanish (Costa Rica)      
es_DO Spanish (Dominican)      
es_EC Spanish (Ecuador)      
es_ES Spanish (Spain)      
es_GT Spanish (Guatemala)      
es_HN Spanish (Honduras)      
es_MX Spanish (Mexico)      
es_NI Spanish (Nicaragua)      
es_PA Spanish (Panama)      
es_PE Spanish (Peru)      
es_PR Spanish (Puerto Rico)      
es_PY Spanish (Paraguay)      
es_SV Spanish (El Salvador)      
es_UY Spanish (Uruguay)      
es_VE Spanish (Venezuela)      
et Estonian      
et_EE Estonian (Estonia)