Standard country-language codes are comprised of two arguments separated by a dash, for example fr-CA is French Canadian.

The first argument is a valid ISO Language Code. These codes are the lower-case two-letter codes as defined by ISO-639. You can find a full list of these codes at a number of sites like here.

The second argument to both constructors is a valid ISO Country Code. These codes are the upper-case two-letter codes as defined by ISO-3166. You can find a full list of these codes at a number of sites like here

Here is a list generated by the .Net framework (code at the bottom), although Microsoft does not seem to follow the two letter convention for langauges (don't ask me why, I just work here - although if you know send me an email):

"Afghanistan - Dari",    "prs-AF"
"Afghanistan - Pashto",    "ps-AF"
"Albania - Albanian",    "sq-AL"
"Algeria - Arabic",    "ar-DZ"
"Algeria - Tamazight (Latin)",    "tzm-DZ"
"Argentina - Spanish",    "es-AR"
"Armenia - Armenian",    "hy-AM"
"Australia - English",    "en-AU"
"Austria - German",    "de-AT"
"Azerbaijan - Azeri (Cyrillic)",    "az-AZ"
"Azerbaijan - Azeri (Latin)",    "az-AZ"
"Bahrain - Arabic",    "ar-BH"
"Bangladesh - Bengali",    "bn-BD"
"Belarus - Belarusian",    "be-BY"
"Belgium - Dutch",    "nl-BE"
"Belgium - French",    "fr-BE"
"Belize - English",    "en-BZ"
"Bolivarian Republic of Venezuela - Spanish",    "es-VE"
"Bolivia - Quechua",    "quz-BO"
"Bolivia - Spanish",    "es-BO"
"Bosnia and Herzegovina - Bosnian (Cyrillic)",    "bs-BA"
"Bosnia and Herzegovina - Bosnian (Latin)",    "bs-BA"
"Bosnia and Herzegovina - Croatian",    "hr-BA"
"Bosnia and Herzegovina - Serbian (Cyrillic)",    "sr-BA"
"Bosnia and Herzegovina - Serbian (Latin)",    "sr-BA"
"Brazil - Portuguese",    "pt-BR"
"Brunei Darussalam - Malay",    "ms-BN"
"Bulgaria - Bulgarian",    "bg-BG"
"Cambodia - Khmer",    "km-KH"
"Canada - English",    "en-CA"
"Canada - French",    "fr-CA"
"Canada - Inuktitut (Latin)",    "iu-CA"
"Canada - Inuktitut (Syllabics)",    "iu-CA"
"Canada - Mohawk",    "moh-CA"
"Caribbean - English",    "en-029"
"Chile - Mapudungun",    "arn-CL"
"Chile - Spanish",    "es-CL"
"Colombia - Spanish",    "es-CO"
"Costa Rica - Spanish",    "es-CR"
"Croatia - Croatian",    "hr-HR"
"Czech Republic - Czech",    "cs-CZ"
"Denmark - Danish",    "da-DK"
"Dominican Republic - Spanish",    "es-DO"
"Ecuador - Quechua",    "quz-EC"
"Ecuador - Spanish",    "es-EC"
"Egypt - Arabic",    "ar-EG"
"El Salvador - Spanish",    "es-SV"
"Estonia - Estonian",    "et-EE"
"Ethiopia - Amharic",    "am-ET"
"Faroe Islands - Faroese",    "fo-FO"
"Finland - Finnish",    "fi-FI"
"Finland - Sami (Inari)",    "smn-FI"
"Finland - Sami (Northern)",    "se-FI"
"Finland - Sami (Skolt)",    "sms-FI"
"Finland - Swedish",    "sv-FI"
"France - Alsatian",    "gsw-FR"
"France - Breton",    "br-FR"
"France - Corsican",    "co-FR"
"France - French",    "fr-FR"
"France - Occitan",    "oc-FR"
"Georgia - Georgian",    "ka-GE"
"Germany - German",    "de-DE"
"Germany - Lower Sorbian",    "dsb-DE"
"Germany - Upper Sorbian",    "hsb-DE"
"Greece - Greek",    "el-GR"
"Greenland - Greenlandic",    "kl-GL"
"Guatemala - K'iche",    "qut-GT"
"Guatemala - Spanish",    "es-GT"
"Honduras - Spanish",    "es-HN"
"Hong Kong S.A.R. - Chinese (Traditional) Legacy",    "zh-HK"
"Hungary - Hungarian",    "hu-HU"
"Iceland - Icelandic",    "is-IS"
"India - Assamese",    "as-IN"
"India - Bengali",    "bn-IN"
"India - English",    "en-IN"
"India - Gujarati",    "gu-IN"
"India - Hindi",    "hi-IN"
"India - Kannada",    "kn-IN"
"India - Konkani",    "kok-IN"
"India - Malayalam",    "ml-IN"
"India - Marathi",    "mr-IN"
"India - Oriya",    "or-IN"
"India - Punjabi",    "pa-IN"
"India - Sanskrit",    "sa-IN"
"India - Tamil",    "ta-IN"
"India - Telugu",    "te-IN"
"Indonesia - Indonesian",    "id-ID"
"Iran - Persian",    "fa-IR"
"Iraq - Arabic",    "ar-IQ"
"Ireland - English",    "en-IE"
"Ireland - Irish",    "ga-IE"
"Islamic Republic of Pakistan - Urdu",    "ur-PK"
"Israel - Hebrew",    "he-IL"
"Italy - Italian",    "it-IT"
"Jamaica - English",    "en-JM"
"Japan - Japanese",    "ja-JP"
"Jordan - Arabic",    "ar-JO"
"Kazakhstan - Kazakh",    "kk-KZ"
"Kenya - Kiswahili",    "sw-KE"
"Korea - Korean",    "ko-KR"
"Kuwait - Arabic",    "ar-KW"
"Kyrgyzstan - Kyrgyz",    "ky-KG"
"Lao P.D.R. - Lao",    "lo-LA"
"Latvia - Latvian",    "lv-LV"
"Lebanon - Arabic",    "ar-LB"
"Libya - Arabic",    "ar-LY"
"Liechtenstein - German",    "de-LI"
"Lithuania - Lithuanian",    "lt-LT"
"Luxembourg - French",    "fr-LU"
"Luxembourg - German",    "de-LU"
"Luxembourg - Luxembourgish",    "lb-LU"
"Macao S.A.R. - Chinese (Traditional) Legacy",    "zh-MO"
"Macedonia (FYROM) - Macedonian (FYROM)",    "mk-MK"
"Malaysia - English",    "en-MY"
"Malaysia - Malay",    "ms-MY"
"Maldives - Divehi",    "dv-MV"
"Malta - Maltese",    "mt-MT"
"Mexico - Spanish",    "es-MX"
"Mongolia - Mongolian (Cyrillic)",    "mn-MN"
"Montenegro - Serbian (Cyrillic)",    "sr-ME"
"Montenegro - Serbian (Latin)",    "sr-ME"
"Morocco - Arabic",    "ar-MA"
"Nepal - Nepali",    "ne-NP"
"Netherlands - Dutch",    "nl-NL"
"Netherlands - Frisian",    "fy-NL"
"New Zealand - English",    "en-NZ"
"New Zealand - Maori",    "mi-NZ"
"Nicaragua - Spanish",    "es-NI"
"Nigeria - Hausa (Latin)",    "ha-NG"
"Nigeria - Igbo",    "ig-NG"
"Nigeria - Yoruba",    "yo-NG"
"Norway - Norwegian (Bokmal)",    "nb-NO"
"Norway - Norwegian (Nynorsk)",    "nn-NO"
"Norway - Sami (Lule)",    "smj-NO"
"Norway - Sami (Northern)",    "se-NO"
"Norway - Sami (Southern)",    "sma-NO"
"Oman - Arabic",    "ar-OM"
"Panama - Spanish",    "es-PA"
"Paraguay - Spanish",    "es-PY"
"People's Republic of China - Chinese (Simplified) Legacy",    "zh-CN"
"People's Republic of China - Mongolian (Traditional Mongolian)",    "mn-CN"
"People's Republic of China - Tibetan",    "bo-CN"
"People's Republic of China - Uyghur",    "ug-CN"
"People's Republic of China - Yi",    "ii-CN"
"Peru - Quechua",    "quz-PE"
"Peru - Spanish",    "es-PE"
"Philippines - Filipino",    "fil-PH"
"Poland - Polish",    "pl-PL"
"Portugal - Portuguese",    "pt-PT"
"Principality of Monaco - French",    "fr-MC"
"Puerto Rico - Spanish",    "es-PR"
"Qatar - Arabic",    "ar-QA"
"Republic of the Philippines - English",    "en-PH"
"Romania - Romanian",    "ro-RO"
"Russia - Bashkir",    "ba-RU"
"Russia - Russian",    "ru-RU"
"Russia - Tatar",    "tt-RU"
"Russia - Yakut",    "sah-RU"
"Rwanda - Kinyarwanda",    "rw-RW"
"Saudi Arabia - Arabic",    "ar-SA"
"Senegal - Wolof",    "wo-SN"
"Serbia - Serbian (Cyrillic)",    "sr-RS"
"Serbia - Serbian (Latin)",    "sr-RS"
"Serbia and Montenegro (Former) - Serbian (Cyrillic)",    "sr-CS"
"Serbia and Montenegro (Former) - Serbian (Latin)",    "sr-CS"
"Singapore - Chinese (Simplified) Legacy",    "zh-SG"
"Singapore - English",    "en-SG"
"Slovakia - Slovak",    "sk-SK"
"Slovenia - Slovenian",    "sl-SI"
"South Africa - Afrikaans",    "af-ZA"
"South Africa - English",    "en-ZA"
"South Africa - isiXhosa",    "xh-ZA"
"South Africa - isiZulu",    "zu-ZA"
"South Africa - Sesotho sa Leboa",    "nso-ZA"
"South Africa - Setswana",    "tn-ZA"
"Spain - Basque",    "eu-ES"
"Spain - Catalan",    "ca-ES"
"Spain - Galician",    "gl-ES"
"Spain - Spanish",    "es-ES"
"Sri Lanka - Sinhala",    "si-LK"
"Sweden - Sami (Lule)",    "smj-SE"
"Sweden - Sami (Northern)",    "se-SE"
"Sweden - Sami (Southern)",    "sma-SE"
"Sweden - Swedish",    "sv-SE"
"Switzerland - French",    "fr-CH"
"Switzerland - German",    "de-CH"
"Switzerland - Italian",    "it-CH"
"Switzerland - Romansh",    "rm-CH"
"Syria - Arabic",    "ar-SY"
"Syria - Syriac",    "syr-SY"
"Taiwan - Chinese (Traditional) Legacy",    "zh-TW"
"Tajikistan - Tajik (Cyrillic)",    "tg-TJ"
"Thailand - Thai",    "th-TH"
"Trinidad and Tobago - English",    "en-TT"
"Tunisia - Arabic",    "ar-TN"
"Turkey - Turkish",    "tr-TR"
"Turkmenistan - Turkmen",    "tk-TM"
"U.A.E. - Arabic",    "ar-AE"
"Ukraine - Ukrainian",    "uk-UA"
"United Kingdom - English",    "en-GB"
"United Kingdom - Scottish Gaelic",    "gd-GB"
"United Kingdom - Welsh",    "cy-GB"
"United States - English",    "en-US"
"United States - Spanish",    "es-US"
"Uruguay - Spanish",    "es-UY"
"Uzbekistan - Uzbek (Cyrillic)",    "uz-UZ"
"Uzbekistan - Uzbek (Latin)",    "uz-UZ"
"Vietnam - Vietnamese",    "vi-VN"
"Yemen - Arabic",    "ar-YE"
"Zimbabwe - English",    "en-ZW"
public static void GenerateLanguageInfo() {
            List<string> list = new List<string>();
            CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
            foreach (CultureInfo culture in cultures) {
                RegionInfo region = new RegionInfo(culture.LCID);
                var text = string.Format("\"{0} - {1}\",    \"{2}-{3}\"",
                    region.EnglishName, culture.Parent.EnglishName, 
                    culture.Parent.TwoLetterISOLanguageName, 
                       region.TwoLetterISORegionName);
                list.Add(text);
            }
            list.Sort();
            list.ForEach(Console.WriteLine);
        }
    }

Also check out http://www.w3.org/International/questions/qa-choosing-language-tags.

Go to Home page. Kindly report errors, typos, or misspellings here.