CultureInfo.TwoLetterISOLanguageName Property

Definition

Gets the ISO 639-1 two-letter or ISO 639-3 three-letter code for the language of the current CultureInfo.

public:
 virtual property System::String ^ TwoLetterISOLanguageName { System::String ^ get(); };
public virtual string TwoLetterISOLanguageName { get; }
member this.TwoLetterISOLanguageName : string
Public Overridable ReadOnly Property TwoLetterISOLanguageName As String

Property Value

The ISO 639-1 two-letter code for the language of the current CultureInfo. If no two-letter code is available, the three-letter code from ISO 639-3 is used.

Examples

The following example lists the cultures whose TwoLetterISOLanguageName property does not consist of a two-letter language code.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Get all available cultures on the current system.
      CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);

      Console.WriteLine("{0,-32} {1,-13} {2,-6}\n", "Display Name",
                        "Name", "TwoLetterISOLanguageName");

      foreach (var culture in cultures) {
         // Exclude custom cultures.
         if ((culture.CultureTypes & CultureTypes.UserCustomCulture) == CultureTypes.UserCustomCulture)
            continue;

         // Exclude all two-letter codes.
         if (culture.TwoLetterISOLanguageName.Length == 2)
            continue;

         Console.WriteLine("{0,-32} {1,-13} {2,-6}", culture.DisplayName,
                           culture.Name, culture.TwoLetterISOLanguageName);
      }
   }
}
// The example output like the following:
//       Display Name                     Name          TwoLetterISOLanguageName
//
//       Upper Sorbian                    hsb           hsb
//       Konkani                          kok           kok
//       Syriac                           syr           syr
//       Tamazight                        tzm           tzm
//       Filipino                         fil           fil
//       Quechua                          quz           quz
//       Sesotho sa Leboa                 nso           nso
//       Mapudungun                       arn           arn
//       Mohawk                           moh           moh
//       Alsatian                         gsw           gsw
//       Sakha                            sah           sah
//       K'iche                           qut           qut
//       Dari                             prs           prs
//       Upper Sorbian (Germany)          hsb-DE        hsb
//       Konkani (India)                  kok-IN        kok
//       Syriac (Syria)                   syr-SY        syr
//       Filipino (Philippines)           fil-PH        fil
//       Quechua (Bolivia)                quz-BO        quz
//       Sesotho sa Leboa (South Africa)  nso-ZA        nso
//       Mapudungun (Chile)               arn-CL        arn
//       Mohawk (Mohawk)                  moh-CA        moh
//       Alsatian (France)                gsw-FR        gsw
//       Sakha (Russia)                   sah-RU        sah
//       K'iche (Guatemala)               qut-GT        qut
//       Dari (Afghanistan)               prs-AF        prs
//       Lower Sorbian (Germany)          dsb-DE        dsb
//       Tamazight (Latin, Algeria)       tzm-Latn-DZ   tzm
//       Quechua (Ecuador)                quz-EC        quz
//       Quechua (Peru)                   quz-PE        quz
//       Sami, Lule (Norway)              smj-NO        smj
//       Sami, Lule (Sweden)              smj-SE        smj
//       Sami, Southern (Norway)          sma-NO        sma
//       Sami, Southern (Sweden)          sma-SE        sma
//       Sami, Skolt (Finland)            sms-FI        sms
//       Sami, Inari (Finland)            smn-FI        smn
//       Sami (Inari)                     smn           smn
//       Sami (Skolt)                     sms           sms
//       Sami (Southern)                  sma           sma
//       Lower Sorbian                    dsb           dsb
//       Sami (Lule)                      smj           smj
//       Tamazight (Latin)                tzm-Latn      tzm
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Get all available cultures on the current system.
      Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)

      Console.WriteLine("{0,-32} {1,-13} {2,-6}", "Display Name", 
                        "Name", "TwoLetterISOLanguageName")
      Console.WriteLine()
      For Each culture In cultures
         ' Exclude custom cultures.
         If (culture.CultureTypes And CultureTypes.UserCustomCulture) = CultureTypes.UserCustomCulture Then 
            Continue For
         End If
         
         ' Exclude all two-letter codes.
         If culture.TwoLetterISOLanguageName.Length = 2 Then Continue For
         
         Console.WriteLine("{0,-32} {1,-13} {2,-6}", culture.DisplayName,
                           culture.Name, culture.TwoLetterISOLanguageName)
      Next   
   End Sub
End Module
' The example output like the following:
'       Display Name                     Name          TwoLetterISOLanguageName
'       
'       Upper Sorbian                    hsb           hsb
'       Konkani                          kok           kok
'       Syriac                           syr           syr
'       Tamazight                        tzm           tzm
'       Filipino                         fil           fil
'       Quechua                          quz           quz
'       Sesotho sa Leboa                 nso           nso
'       Mapudungun                       arn           arn
'       Mohawk                           moh           moh
'       Alsatian                         gsw           gsw
'       Sakha                            sah           sah
'       K'iche                           qut           qut
'       Dari                             prs           prs
'       Upper Sorbian (Germany)          hsb-DE        hsb
'       Konkani (India)                  kok-IN        kok
'       Syriac (Syria)                   syr-SY        syr
'       Filipino (Philippines)           fil-PH        fil
'       Quechua (Bolivia)                quz-BO        quz
'       Sesotho sa Leboa (South Africa)  nso-ZA        nso
'       Mapudungun (Chile)               arn-CL        arn
'       Mohawk (Mohawk)                  moh-CA        moh
'       Alsatian (France)                gsw-FR        gsw
'       Sakha (Russia)                   sah-RU        sah
'       K'iche (Guatemala)               qut-GT        qut
'       Dari (Afghanistan)               prs-AF        prs
'       Lower Sorbian (Germany)          dsb-DE        dsb
'       Tamazight (Latin, Algeria)       tzm-Latn-DZ   tzm
'       Quechua (Ecuador)                quz-EC        quz
'       Quechua (Peru)                   quz-PE        quz
'       Sami, Lule (Norway)              smj-NO        smj
'       Sami, Lule (Sweden)              smj-SE        smj
'       Sami, Southern (Norway)          sma-NO        sma
'       Sami, Southern (Sweden)          sma-SE        sma
'       Sami, Skolt (Finland)            sms-FI        sms
'       Sami, Inari (Finland)            smn-FI        smn
'       Sami (Inari)                     smn           smn
'       Sami (Skolt)                     sms           sms
'       Sami (Southern)                  sma           sma
'       Lower Sorbian                    dsb           dsb
'       Sami (Lule)                      smj           smj
'       Tamazight (Latin)                tzm-Latn      tzm

Remarks

For example, the two-letter abbreviation for English is "en". The TwoLetterISOLanguageName property value for the invariant culture is "iv".

Note

When communicating between processes or persisting data it is usually better to use the full CultureInfo.Name. Using just the language can lose context and data.

If ISO 639-1 does not define a two-letter language code for a particular culture, the TwoLetterISOLanguageName property returns a string that consists of three or more letters. For more information, see the example.

Applies to

See also