// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the License "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
// e32\include\e32lang.h
// 
//

#ifndef __E32LANG_H__
#define __E32LANG_H__


/**
* 
* Extended Languages (aka three-digit locales)
*
* In order to support language variants for specific network operators, the
* language can be extended to 16 bits by pairing it with a dialect. Up to 1024 
* languages and 63 dialects are supported. For example, American Sprint is 
* ELangAmerican with EDialectSprint = 10 + 1024 = 1034.
*
* The locale-specific resource files have a file extension of the form RNNNNN,
* where NNNNN is five digits. For compatibility reasons, any leading zeros are
* ignored, so that .R10 and R00010 are considered identical.
* The locale content for American Sprint is stored in .R1034 (or .R01034)
*/

/**
@publishedAll
@released

Language identity enumeration. 

Each value in the enumeration uniquely identifies a language.

If another value is needed, one of the following actions should be taken: Either
the Internationalization Technology Architect in Symbian should be contacted or
a defect should be raised against EUser. Unallocated values should not have
meanings inferred or extrapolated from already allocated values.

@see BaflUtils::NearestLanguageFile
@see BaflUtils::GetDowngradePath
*/
enum TLanguage
	{
	/**
	Enumerated value used for testing - does not represent a language.
	*/
	ELangTest = 0,
	
	/** UK English. */
	ELangEnglish = 1,
	
	/** French. */
	ELangFrench = 2,
	
	/** German. */
	ELangGerman = 3,
	
	/** Spanish. */
	ELangSpanish = 4,
	
	/** Italian. */
	ELangItalian = 5,
	
	/** Swedish. */
	ELangSwedish = 6,
	
	/** Danish. */
	ELangDanish = 7,
	
	/** Norwegian. */
	ELangNorwegian = 8,
	
	/** Finnish. */
	ELangFinnish = 9,
	
	/** American. */
	ELangAmerican = 10,
	
	/** Swiss French. */
	ELangSwissFrench = 11,
	
	/** Swiss German. */
	ELangSwissGerman = 12,
	
	/** Portuguese. */
	ELangPortuguese = 13,
	
	/** Turkish. */
	ELangTurkish = 14,
	
	/** Icelandic. */
	ELangIcelandic = 15,
	
	/** Russian. */
	ELangRussian = 16,
	
	/** Hungarian. */
	ELangHungarian = 17,
	
	/** Dutch. */
	ELangDutch = 18,
	
	/** Belgian Flemish. */
	ELangBelgianFlemish = 19,
	
	/** Australian English. */
	ELangAustralian = 20,
	
	/** Belgian French. */
	ELangBelgianFrench = 21,
	
	/** Austrian German. */
	ELangAustrian = 22,
	
	/** New Zealand English. */
	ELangNewZealand = 23,
	
	/** International French. */
	ELangInternationalFrench = 24,
	
	/** Czech. */
	ELangCzech = 25,
	
	/** Slovak. */
	ELangSlovak = 26,
	
	/** Polish. */
	ELangPolish = 27,
	
	/** Slovenian. */
	ELangSlovenian = 28,
	
	/** Taiwanese Chinese. */
	ELangTaiwanChinese = 29,
	
	/** Hong Kong Chinese. */
	ELangHongKongChinese = 30,
	
	/** Peoples Republic of China's Chinese. */
	ELangPrcChinese = 31,

	/** Japanese. */
	ELangJapanese = 32,

	/** Thai. */
	ELangThai = 33,

	/** Afrikaans. */
	ELangAfrikaans = 34,

	/** Albanian. */
	ELangAlbanian = 35,

	/** Amharic. */
	ELangAmharic = 36,

	/** Arabic. */
	ELangArabic = 37,

	/** Armenian. */
	ELangArmenian = 38,

	/** Tagalog. */
	ELangTagalog = 39,

	/** Belarussian. */
	ELangBelarussian = 40,

	/** Bengali. */
	ELangBengali = 41,

	/** Bulgarian. */
	ELangBulgarian = 42,

	/** Burmese. */
	ELangBurmese = 43,

	/** Catalan. */
	ELangCatalan = 44,

	/** Croatian. */
	ELangCroatian = 45,

	/** Canadian English. */
	ELangCanadianEnglish = 46,

	/** International English. */
	ELangInternationalEnglish = 47,

	/** South African English. */
	ELangSouthAfricanEnglish = 48,

	/** Estonian. */
	ELangEstonian = 49,

	/** Farsi. */
	ELangFarsi = 50,

	/** Canadian French. */
	ELangCanadianFrench = 51,

	/** Gaelic. */
	ELangScotsGaelic = 52,

	/** Georgian. */
	ELangGeorgian = 53,

	/** Greek. */
	ELangGreek = 54,

	/** Cyprus Greek. */
	ELangCyprusGreek = 55,

	/** Gujarati. */
	ELangGujarati = 56,

	/** Hebrew. */
	ELangHebrew = 57,

	/** Hindi. */
	ELangHindi = 58,

	/** Indonesian. */
	ELangIndonesian = 59,

	/** Irish. */
	ELangIrish = 60,

	/** Swiss Italian. */
	ELangSwissItalian = 61,

	/** Kannada. */
	ELangKannada = 62,

	/** Kazakh. */
	ELangKazakh = 63,

	/** Khmer. */
	ELangKhmer = 64,

	/** Korean. */
	ELangKorean = 65,

	/** Lao. */
	ELangLao = 66,

	/** Latvian. */
	ELangLatvian = 67,

	/** Lithuanian. */
	ELangLithuanian = 68,

	/** Macedonian. */
	ELangMacedonian = 69,

	/** Malay. */
	ELangMalay = 70,

	/** Malayalam. */
	ELangMalayalam = 71,

	/** Marathi. */
	ELangMarathi = 72,

	/** Moldavian. */
	ELangMoldavian = 73,

	/** Mongolian. */
	ELangMongolian = 74,

	/** Norwegian Nynorsk. */
	ELangNorwegianNynorsk = 75,

	/** Brazilian Portuguese. */
	ELangBrazilianPortuguese = 76,

	/** Punjabi. */
	ELangPunjabi = 77,

	/** Romanian. */
	ELangRomanian = 78,

	/** Serbian. */
	ELangSerbian = 79,

	/** Sinhalese. */
	ELangSinhalese = 80,

	/** Somali. */
	ELangSomali = 81,

	/** International Spanish. */
	ELangInternationalSpanish = 82,

	/** American Spanish. */
	ELangLatinAmericanSpanish = 83,

	/** Swahili. */
	ELangSwahili = 84,

	/** Finland Swedish. */
	ELangFinlandSwedish = 85,

	/** Reserved, not in use. */
	ELangReserved1 = 86,		// This enum should not be used for new languages, see INC110543

	/** Tamil. */
	ELangTamil = 87,

	/** Telugu. */
	ELangTelugu = 88,

	/** Tibetan. */
	ELangTibetan = 89,

	/** Tigrinya. */
	ELangTigrinya = 90,

	/** Cyprus Turkish. */
	ELangCyprusTurkish = 91,

	/** Turkmen. */
	ELangTurkmen = 92,

	/** Ukrainian. */
	ELangUkrainian = 93,

	/** Urdu. */
	ELangUrdu = 94,

	/** Reserved, not in use. */
	ELangReserved2 = 95,		// This enum should not be used for new languages, see INC110543

	/** Vietnamese. */
	ELangVietnamese = 96,

	/** Welsh. */
	ELangWelsh = 97,

	/** Zulu. */
	ELangZulu = 98,

	/**
	@deprecated
	
	Use of this value is deprecated.
	*/
	ELangOther = 99,

	/** English with terms as used by the device manufacturer, if this needs to
	be distinct from the English used by the UI vendor. */
	ELangManufacturerEnglish = 100,

	/** South Sotho.
	
	A language of Lesotho also called Sesotho. SIL code sot. */
	ELangSouthSotho = 101,
	
	/** Basque. */
	ELangBasque = 102,
	
	/** Galician. */
	ELangGalician = 103,
	
	/** Javanese. */
	ELangJavanese = 104,
	
	/** Maithili. */
	ELangMaithili = 105,
	
	/** Azerbaijani(Latin alphabet). */
	ELangAzerbaijani_Latin = 106,
	
	/** Azerbaijani(Cyrillic alphabet). */
	ELangAzerbaijani_Cyrillic = 107,
	
	/** Oriya. */
	ELangOriya = 108,
	
	/** Bhojpuri. */
	ELangBhojpuri = 109,
	
	/** Sundanese. */
	ELangSundanese = 110,
	
	/** Kurdish(Latin alphabet). */
	ELangKurdish_Latin = 111,
	
	/** Kurdish(Arabic alphabet). */
	ELangKurdish_Arabic = 112,
	
	/** Pashto. */
	ELangPashto = 113,
	
	/** Hausa. */
	ELangHausa = 114,
	
	/** Oromo. */
	ELangOromo = 115,
	
	/** Uzbek(Latin alphabet). */
	ELangUzbek_Latin = 116,
	
	/** Uzbek(Cyrillic alphabet). */
	ELangUzbek_Cyrillic = 117,
	
	/** Sindhi(Arabic alphabet). */
	ELangSindhi_Arabic = 118,
	
	/** Sindhi(using Devanagari script). */
	ELangSindhi_Devanagari = 119,
	
	/** Yoruba. */
	ELangYoruba = 120,
	
	/** Cebuano. */
	ELangCebuano = 121,
	
	/** Igbo. */
	ELangIgbo = 122,
	
	/** Malagasy. */
	ELangMalagasy = 123,
	
	/** Nepali. */ 
	ELangNepali = 124,
	
	/** Assamese. */
	ELangAssamese = 125,
	
	/** Shona. */
	ELangShona = 126,
	
	/** Zhuang. */
	ELangZhuang = 127,
	
	/** Madurese. */
	ELangMadurese = 128,
	
	/** English as appropriate for use in Asia-Pacific regions. */
	ELangEnglish_Apac=129,

	/** English as appropriate for use in Taiwan. */
	ELangEnglish_Taiwan=157,

	/** English as appropriate for use in Hong Kong. */
	ELangEnglish_HongKong=158,

	/** English as appropriate for use in the Peoples Republic of China. */
	ELangEnglish_Prc=159,

	/** English as appropriate for use in Japan. */
	ELangEnglish_Japan=160,

	/** English as appropriate for use in Thailand. */
	ELangEnglish_Thailand=161,
	
	/** Fulfulde, also known as Fula */
	ELangFulfulde = 162,
	
	/** Tamazight. */
	ELangTamazight = 163,

	/** Bolivian Quechua. */
	ELangBolivianQuechua = 164,
	
	/** Peru Quechua. */
	ELangPeruQuechua = 165,
	
	/** Ecuador Quechua. */
	ELangEcuadorQuechua = 166,
	
	/** Tajik(Cyrillic alphabet). */
	ELangTajik_Cyrillic = 167,
	
	/** Tajik(using Perso-Arabic script). */
	ELangTajik_PersoArabic = 168,
	
	/** Nyanja, also known as Chichewa or Chewa. */
	ELangNyanja = 169,
	
	/** Haitian Creole. */
	ELangHaitianCreole = 170,
	
	/** Lombard. */
	ELangLombard = 171,

	/** Koongo, also known as Kongo or KiKongo. */
	ELangKoongo = 172, 
	
	/** Akan. */
	ELangAkan = 173,
	
	/** Hmong. */
	ELangHmong = 174,

	/** Yi. */
	ELangYi = 175,
	
	/** Tshiluba, also known as Luba-Kasai */
	ELangTshiluba = 176,

	/** Ilocano, also know as Ilokano or Iloko. */
	ELangIlocano = 177,
	
	/** Uyghur. */
	ELangUyghur = 178,
	
	/** Neapolitan. */
	ELangNeapolitan = 179,

	/** Rwanda, also known as Kinyarwanda */
	ELangRwanda = 180,
	
	/** Xhosa. */
	ELangXhosa = 181,

	/** Balochi, also known as Baluchi */
	ELangBalochi = 182,
	
	/** Hiligaynon. */
	ElangHiligaynon = 183,
	
	/** Minangkabau. */
	ELangMinangkabau = 184,
	
	/** Makhuwa. */
	ELangMakhuwa = 185,
	
	/** Santali. */
	ELangSantali = 186,

	/** Gikuyu, sometimes written Kikuyu. */
	ELangGikuyu = 187,
	
	/** Mòoré, also known as Mossi or More. */
	ELangMoore = 188,
	
	/** Guaraní. */
	ELangGuarani = 189, 
	
	/** Rundi, also known as Kirundi. */
	ELangRundi = 190,

	/** Romani(Latin alphabet). */
	ELangRomani_Latin = 191,
	
	/** Romani(Cyrillic alphabet). */
	ELangRomani_Cyrillic = 192,
	
	/** Tswana. */
	ELangTswana = 193,
	
	/** Kanuri. */
	ELangKanuri = 194,
	
	/** Kashmiri(using Devanagari script). */
	ELangKashmiri_Devanagari = 195,
	
	/** Kashmiri(using Perso-Arabic script). */
	ELangKashmiri_PersoArabic = 196,
	
	/** Umbundu. */
	ELangUmbundu = 197,
	
	/** Konkani. */
	ELangKonkani = 198,
	
	/** Balinese, a language used in Indonesia (Java and Bali). */
	ELangBalinese = 199,
	
	/** Northern Sotho. */
	ELangNorthernSotho = 200,
	
	/** Wolof. */
	ELangWolof = 201,
	
	/** Bemba. */
	ELangBemba = 202,

	/** Tsonga. */
	ELangTsonga = 203,
	
	/** Yiddish. */
	ELangYiddish = 204,
	
	/** Kirghiz, also known as Kyrgyz. */
	ELangKirghiz = 205,
	
	/** Ganda, also known as Luganda. */
	ELangGanda = 206,

	/** Soga, also known as Lusoga. */
	ELangSoga = 207,
	
	/** Mbundu, also known as Kimbundu. */
	ELangMbundu = 208,
	
	/** Bambara. */
	ELangBambara = 209,
	
	/** Central Aymara. */
	ELangCentralAymara = 210,

	/** Zarma. */
	ELangZarma = 211,
	
	/** Lingala. */
	ELangLingala = 212,
	
	/** Bashkir. */
	ELangBashkir = 213,
	
	/** Chuvash. */
	ELangChuvash = 214,

	/** Swati. */
	ELangSwati = 215,

	/** Tatar. */
	ELangTatar = 216,
	
	/** Southern Ndebele. */
	ELangSouthernNdebele = 217,
	
	/** Sardinian. */
	ELangSardinian = 218,
	
	/** Scots. */
	ELangScots = 219,

	/** Meitei, also known as Meithei or Manipuri */
	ELangMeitei = 220,
	
	/** Walloon. */
	ELangWalloon = 221,
	
	/** Kabardian. */
	ELangKabardian = 222,
	
	/** Mazanderani, also know as Mazandarani or Tabri. */
	ELangMazanderani = 223,
	
	/** Gilaki. */
	ELangGilaki = 224,
	
	/** Shan. */
	ELangShan = 225,
	
	/** Luyia. */
	ELangLuyia = 226,
	
	/** Luo, also known as Dholuo, a language of Kenya. */
	ELanguageLuo = 227,
	
	/** Sukuma, also known as Kisukuma. */
	ELangSukuma = 228,
	
	/** Aceh, also known as Achinese. */
	ELangAceh = 229,

	/** English used in India. */
    ELangEnglish_India = 230,
	
	/** Malay as appropriate for use in Asia-Pacific regions. */
	ELangMalay_Apac=326,
	
	/** Indonesian as appropriate for use in Asia-Pacific regions. */
	ELangIndonesian_Apac=327,

	/**
	Indicates the final language in the language downgrade path.
	
	@see BaflUtils::NearestLanguageFile
	@see BaflUtils::GetDowngradePath
	*/
	ELangNone = 0xFFFF, // up to 1023 languages * 16 dialects, in 16 bits
	ELangMaximum = ELangNone // This must always be equal to the last (largest) TLanguage enum.
	};


#endif /* __E32LANG_H__ */
