mirror of
https://github.com/Team-Resurgent/XBMC4Xbox.git
synced 2026-08-15 11:18:13 -07:00
If ever adding the XBMC4Xbox source to GitHub use "git add -f -A" or it wont add all the files.
875 lines
36 KiB
C++
875 lines
36 KiB
C++
/*
|
||
* Copyright (C) 2005-2013 Team XBMC
|
||
* http://xbmc.org
|
||
*
|
||
* This Program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2, or (at your option)
|
||
* any later version.
|
||
*
|
||
* This Program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License
|
||
* along with XBMC; see the file COPYING. If not, see
|
||
* <http://www.gnu.org/licenses/>.
|
||
*
|
||
*/
|
||
#include "system.h"
|
||
#include "utils/LangCodeExpander.h"
|
||
#include "SectionLoader.h"
|
||
|
||
#define MAKECODE(a, b, c, d) ((((long)(a))<<24) | (((long)(b))<<16) | (((long)(c))<<8) | (long)(d))
|
||
typedef struct LCENTRY
|
||
{
|
||
long code;
|
||
const char *name;
|
||
} LCENTRY;
|
||
|
||
extern const struct LCENTRY g_iso639_1[143];
|
||
extern const struct LCENTRY g_iso639_2[536];
|
||
|
||
|
||
CLangCodeExpander g_LangCodeExpander;
|
||
|
||
CLangCodeExpander::CLangCodeExpander(void)
|
||
{}
|
||
|
||
CLangCodeExpander::~CLangCodeExpander(void)
|
||
{
|
||
}
|
||
|
||
void CLangCodeExpander::Clear()
|
||
{
|
||
m_mapUser.clear();
|
||
}
|
||
|
||
void CLangCodeExpander::LoadUserCodes(const TiXmlElement* pRootElement)
|
||
{
|
||
if (pRootElement)
|
||
{
|
||
m_mapUser.clear();
|
||
|
||
CStdString sShort, sLong;
|
||
|
||
const TiXmlNode* pLangCode = pRootElement->FirstChild("code");
|
||
while (pLangCode)
|
||
{
|
||
const TiXmlNode* pShort = pLangCode->FirstChildElement("short");
|
||
const TiXmlNode* pLong = pLangCode->FirstChildElement("long");
|
||
if (pShort && pLong)
|
||
{
|
||
sShort = pShort->FirstChild()->Value();
|
||
sLong = pLong->FirstChild()->Value();
|
||
sShort.ToLower();
|
||
m_mapUser[sShort] = sLong;
|
||
}
|
||
pLangCode = pLangCode->NextSibling();
|
||
}
|
||
}
|
||
}
|
||
|
||
bool CLangCodeExpander::Lookup(CStdString& desc, const CStdString& code)
|
||
{
|
||
int iSplit = code.find("-");
|
||
if (iSplit > 0)
|
||
{
|
||
CStdString strLeft, strRight;
|
||
const bool bLeft = Lookup(strLeft, code.Left(iSplit));
|
||
const bool bRight = Lookup(strRight, code.Mid(iSplit + 1));
|
||
if (bLeft || bRight)
|
||
{
|
||
desc = "";
|
||
if (strLeft.length() > 0)
|
||
desc = strLeft;
|
||
else
|
||
desc = code.Left(iSplit);
|
||
|
||
if (strRight.length() > 0)
|
||
{
|
||
desc += " - ";
|
||
desc += strRight;
|
||
}
|
||
else
|
||
{
|
||
desc += " - ";
|
||
desc += code.Mid(iSplit + 1);
|
||
}
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
else
|
||
{
|
||
if( LookupInMap(desc, code) )
|
||
return true;
|
||
|
||
if( LookupInDb(desc, code) )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
bool CLangCodeExpander::Lookup(CStdString& desc, const int code)
|
||
{
|
||
|
||
char lang[3];
|
||
lang[2] = 0;
|
||
lang[1] = (code & 255);
|
||
lang[0] = (code >> 8) & 255;
|
||
|
||
return Lookup(desc, lang);
|
||
}
|
||
|
||
bool CLangCodeExpander::LookupInMap(CStdString& desc, const CStdString& code)
|
||
{
|
||
STRINGLOOKUPTABLE::iterator it;
|
||
//Make sure we convert to lowercase before trying to find it
|
||
CStdString sCode(code);
|
||
sCode.MakeLower();
|
||
sCode.TrimLeft();
|
||
sCode.TrimRight();
|
||
it = m_mapUser.find(sCode);
|
||
if (it != m_mapUser.end())
|
||
{
|
||
desc = it->second;
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
bool CLangCodeExpander::LookupInDb(CStdString& desc, const CStdString& code)
|
||
{
|
||
long longcode;
|
||
CStdString sCode(code);
|
||
sCode.MakeLower();
|
||
sCode.TrimLeft();
|
||
sCode.TrimRight();
|
||
if(sCode.length() == 2)
|
||
{
|
||
CSectionLoader::Load("LCODE");
|
||
longcode = MAKECODE('\0', '\0', sCode[0], sCode[1]);
|
||
for(unsigned int i = 0; i < sizeof(g_iso639_1) / sizeof(LCENTRY); i++)
|
||
{
|
||
if(g_iso639_1[i].code == longcode)
|
||
{
|
||
desc = g_iso639_1[i].name;
|
||
CSectionLoader::Unload("LCODE");
|
||
return true;
|
||
}
|
||
}
|
||
CSectionLoader::Unload("LCODE");
|
||
}
|
||
else if(code.length() == 3)
|
||
{
|
||
CSectionLoader::Load("LCODE");
|
||
longcode = MAKECODE('\0', sCode[0], sCode[1], sCode[2]);
|
||
for(unsigned int i = 0; i < sizeof(g_iso639_2) / sizeof(LCENTRY); i++)
|
||
{
|
||
if(g_iso639_2[i].code == longcode)
|
||
{
|
||
desc = g_iso639_2[i].name;
|
||
CSectionLoader::Unload("LCODE");
|
||
return true;
|
||
}
|
||
}
|
||
CSectionLoader::Unload("LCODE");
|
||
}
|
||
return false;
|
||
}
|
||
|
||
#ifdef _XBOX
|
||
#pragma const_seg("LC_RDATA")
|
||
#pragma comment(linker, "/merge:LC_RDATA=LCODE")
|
||
#endif
|
||
|
||
extern const LCENTRY g_iso639_1[143] =
|
||
{
|
||
{ MAKECODE('\0','\0','c','c'), "Closed Caption" },
|
||
{ MAKECODE('\0','\0','a','a'), "Afar" },
|
||
{ MAKECODE('\0','\0','a','b'), "Abkhazian" },
|
||
{ MAKECODE('\0','\0','a','f'), "Afrikaans" },
|
||
{ MAKECODE('\0','\0','a','m'), "Amharic" },
|
||
{ MAKECODE('\0','\0','a','r'), "Arabic" },
|
||
{ MAKECODE('\0','\0','a','s'), "Assamese" },
|
||
{ MAKECODE('\0','\0','a','y'), "Aymara" },
|
||
{ MAKECODE('\0','\0','a','z'), "Azerbaijani" },
|
||
{ MAKECODE('\0','\0','b','a'), "Bashkir" },
|
||
{ MAKECODE('\0','\0','b','e'), "Byelorussian" },
|
||
{ MAKECODE('\0','\0','b','g'), "Bulgarian" },
|
||
{ MAKECODE('\0','\0','b','h'), "Bihari" },
|
||
{ MAKECODE('\0','\0','b','i'), "Bislama" },
|
||
{ MAKECODE('\0','\0','b','n'), "Bengali; Bangla" },
|
||
{ MAKECODE('\0','\0','b','o'), "Tibetan" },
|
||
{ MAKECODE('\0','\0','b','r'), "Breton" },
|
||
{ MAKECODE('\0','\0','c','a'), "Catalan" },
|
||
{ MAKECODE('\0','\0','c','o'), "Corsican" },
|
||
{ MAKECODE('\0','\0','c','s'), "Czech" },
|
||
{ MAKECODE('\0','\0','c','y'), "Welsh" },
|
||
{ MAKECODE('\0','\0','d','a'), "Dansk" },
|
||
{ MAKECODE('\0','\0','d','e'), "Deutsch" },
|
||
{ MAKECODE('\0','\0','d','z'), "Bhutani" },
|
||
{ MAKECODE('\0','\0','e','l'), "Greek" },
|
||
{ MAKECODE('\0','\0','e','n'), "English" },
|
||
{ MAKECODE('\0','\0','e','o'), "Esperanto" },
|
||
{ MAKECODE('\0','\0','e','s'), "Espanol" },
|
||
{ MAKECODE('\0','\0','e','t'), "Estonian" },
|
||
{ MAKECODE('\0','\0','e','u'), "Basque" },
|
||
{ MAKECODE('\0','\0','f','a'), "Persian" },
|
||
{ MAKECODE('\0','\0','f','i'), "Finnish" },
|
||
{ MAKECODE('\0','\0','f','j'), "Fiji" },
|
||
{ MAKECODE('\0','\0','f','o'), "Faroese" },
|
||
{ MAKECODE('\0','\0','f','r'), "Francais" },
|
||
{ MAKECODE('\0','\0','f','y'), "Frisian" },
|
||
{ MAKECODE('\0','\0','g','a'), "Irish" },
|
||
{ MAKECODE('\0','\0','g','d'), "Scots Gaelic" },
|
||
{ MAKECODE('\0','\0','g','l'), "Galician" },
|
||
{ MAKECODE('\0','\0','g','n'), "Guarani" },
|
||
{ MAKECODE('\0','\0','g','u'), "Gujarati" },
|
||
{ MAKECODE('\0','\0','h','a'), "Hausa" },
|
||
{ MAKECODE('\0','\0','h','e'), "Hebrew" },
|
||
{ MAKECODE('\0','\0','h','i'), "Hindi" },
|
||
{ MAKECODE('\0','\0','h','r'), "Hrvatski" },
|
||
{ MAKECODE('\0','\0','h','u'), "Hungarian" },
|
||
{ MAKECODE('\0','\0','h','y'), "Armenian" },
|
||
{ MAKECODE('\0','\0','i','a'), "Interlingua" },
|
||
{ MAKECODE('\0','\0','i','d'), "Indonesian" },
|
||
{ MAKECODE('\0','\0','i','e'), "Interlingue" },
|
||
{ MAKECODE('\0','\0','i','k'), "Inupiak" },
|
||
{ MAKECODE('\0','\0','i','n'), "Indonesian" },
|
||
{ MAKECODE('\0','\0','i','s'), "Islenska" },
|
||
{ MAKECODE('\0','\0','i','t'), "Italiano" },
|
||
{ MAKECODE('\0','\0','i','u'), "Inuktitut" },
|
||
{ MAKECODE('\0','\0','i','w'), "Hebrew" },
|
||
{ MAKECODE('\0','\0','j','a'), "Japanese" },
|
||
{ MAKECODE('\0','\0','j','i'), "Yiddish" },
|
||
{ MAKECODE('\0','\0','j','w'), "Javanese" },
|
||
{ MAKECODE('\0','\0','k','a'), "Georgian" },
|
||
{ MAKECODE('\0','\0','k','k'), "Kazakh" },
|
||
{ MAKECODE('\0','\0','k','l'), "Greenlandic" },
|
||
{ MAKECODE('\0','\0','k','m'), "Cambodian" },
|
||
{ MAKECODE('\0','\0','k','n'), "Kannada" },
|
||
{ MAKECODE('\0','\0','k','o'), "Korean" },
|
||
{ MAKECODE('\0','\0','k','s'), "Kashmiri" },
|
||
{ MAKECODE('\0','\0','k','u'), "Kurdish" },
|
||
{ MAKECODE('\0','\0','k','y'), "Kirghiz" },
|
||
{ MAKECODE('\0','\0','l','a'), "Latin" },
|
||
{ MAKECODE('\0','\0','l','n'), "Lingala" },
|
||
{ MAKECODE('\0','\0','l','o'), "Laothian" },
|
||
{ MAKECODE('\0','\0','l','t'), "Lithuanian" },
|
||
{ MAKECODE('\0','\0','l','v'), "Latvian, Lettish" },
|
||
{ MAKECODE('\0','\0','m','g'), "Malagasy" },
|
||
{ MAKECODE('\0','\0','m','i'), "Maori" },
|
||
{ MAKECODE('\0','\0','m','k'), "Macedonian" },
|
||
{ MAKECODE('\0','\0','m','l'), "Malayalam" },
|
||
{ MAKECODE('\0','\0','m','n'), "Mongolian" },
|
||
{ MAKECODE('\0','\0','m','o'), "Moldavian" },
|
||
{ MAKECODE('\0','\0','m','r'), "Marathi" },
|
||
{ MAKECODE('\0','\0','m','s'), "Malay" },
|
||
{ MAKECODE('\0','\0','m','t'), "Maltese" },
|
||
{ MAKECODE('\0','\0','m','y'), "Burmese" },
|
||
{ MAKECODE('\0','\0','n','a'), "Nauru" },
|
||
{ MAKECODE('\0','\0','n','e'), "Nepali" },
|
||
{ MAKECODE('\0','\0','n','l'), "Nederlands" },
|
||
{ MAKECODE('\0','\0','n','o'), "Norsk" },
|
||
{ MAKECODE('\0','\0','o','c'), "Occitan" },
|
||
{ MAKECODE('\0','\0','o','m'), "(Afan) Oromo" },
|
||
{ MAKECODE('\0','\0','o','r'), "Oriya" },
|
||
{ MAKECODE('\0','\0','p','a'), "Punjabi" },
|
||
{ MAKECODE('\0','\0','p','l'), "Polish" },
|
||
{ MAKECODE('\0','\0','p','s'), "Pashto, Pushto" },
|
||
{ MAKECODE('\0','\0','p','t'), "Portugues" },
|
||
{ MAKECODE('\0','\0','q','u'), "Quechua" },
|
||
{ MAKECODE('\0','\0','r','m'), "Rhaeto-Romance" },
|
||
{ MAKECODE('\0','\0','r','n'), "Kirundi" },
|
||
{ MAKECODE('\0','\0','r','o'), "Romanian" },
|
||
{ MAKECODE('\0','\0','r','u'), "Russian" },
|
||
{ MAKECODE('\0','\0','r','w'), "Kinyarwanda" },
|
||
{ MAKECODE('\0','\0','s','a'), "Sanskrit" },
|
||
{ MAKECODE('\0','\0','s','d'), "Sindhi" },
|
||
{ MAKECODE('\0','\0','s','g'), "Sangho" },
|
||
{ MAKECODE('\0','\0','s','h'), "Serbo-Croatian" },
|
||
{ MAKECODE('\0','\0','s','i'), "Sinhalese" },
|
||
{ MAKECODE('\0','\0','s','k'), "Slovak" },
|
||
{ MAKECODE('\0','\0','s','l'), "Slovenian" },
|
||
{ MAKECODE('\0','\0','s','m'), "Samoan" },
|
||
{ MAKECODE('\0','\0','s','n'), "Shona" },
|
||
{ MAKECODE('\0','\0','s','o'), "Somali" },
|
||
{ MAKECODE('\0','\0','s','q'), "Albanian" },
|
||
{ MAKECODE('\0','\0','s','r'), "Serbian" },
|
||
{ MAKECODE('\0','\0','s','s'), "Siswati" },
|
||
{ MAKECODE('\0','\0','s','t'), "Sesotho" },
|
||
{ MAKECODE('\0','\0','s','u'), "Sundanese" },
|
||
{ MAKECODE('\0','\0','s','v'), "Svenska" },
|
||
{ MAKECODE('\0','\0','s','w'), "Swahili" },
|
||
{ MAKECODE('\0','\0','t','a'), "Tamil" },
|
||
{ MAKECODE('\0','\0','t','e'), "Telugu" },
|
||
{ MAKECODE('\0','\0','t','g'), "Tajik" },
|
||
{ MAKECODE('\0','\0','t','h'), "Thai" },
|
||
{ MAKECODE('\0','\0','t','i'), "Tigrinya" },
|
||
{ MAKECODE('\0','\0','t','k'), "Turkmen" },
|
||
{ MAKECODE('\0','\0','t','l'), "Tagalog" },
|
||
{ MAKECODE('\0','\0','t','n'), "Setswana" },
|
||
{ MAKECODE('\0','\0','t','o'), "Tonga" },
|
||
{ MAKECODE('\0','\0','t','r'), "Turkish" },
|
||
{ MAKECODE('\0','\0','t','s'), "Tsonga" },
|
||
{ MAKECODE('\0','\0','t','t'), "Tatar" },
|
||
{ MAKECODE('\0','\0','t','w'), "Twi" },
|
||
{ MAKECODE('\0','\0','u','g'), "Uighur" },
|
||
{ MAKECODE('\0','\0','u','k'), "Ukrainian" },
|
||
{ MAKECODE('\0','\0','u','r'), "Urdu" },
|
||
{ MAKECODE('\0','\0','u','z'), "Uzbek" },
|
||
{ MAKECODE('\0','\0','v','i'), "Vietnamese" },
|
||
{ MAKECODE('\0','\0','v','o'), "Volapuk" },
|
||
{ MAKECODE('\0','\0','w','o'), "Wolof" },
|
||
{ MAKECODE('\0','\0','x','h'), "Xhosa" },
|
||
{ MAKECODE('\0','\0','y','i'), "Yiddish" },
|
||
{ MAKECODE('\0','\0','y','o'), "Yoruba" },
|
||
{ MAKECODE('\0','\0','z','a'), "Zhuang" },
|
||
{ MAKECODE('\0','\0','z','h'), "Chinese" },
|
||
{ MAKECODE('\0','\0','z','u'), "Zulu" },
|
||
};
|
||
|
||
extern const LCENTRY g_iso639_2[536] =
|
||
{
|
||
{ MAKECODE('\0','a','b','k'), "Abkhazian" },
|
||
{ MAKECODE('\0','a','c','e'), "Achinese" },
|
||
{ MAKECODE('\0','a','c','h'), "Acoli" },
|
||
{ MAKECODE('\0','a','d','a'), "Adangme" },
|
||
{ MAKECODE('\0','a','d','y'), "Adygei" },
|
||
{ MAKECODE('\0','a','d','y'), "Adyghe" },
|
||
{ MAKECODE('\0','a','a','r'), "Afar" },
|
||
{ MAKECODE('\0','a','f','h'), "Afrihili" },
|
||
{ MAKECODE('\0','a','f','r'), "Afrikaans" },
|
||
{ MAKECODE('\0','a','f','a'), "Afro-Asiatic (Other)" },
|
||
{ MAKECODE('\0','a','k','a'), "Akan" },
|
||
{ MAKECODE('\0','a','k','k'), "Akkadian" },
|
||
{ MAKECODE('\0','a','l','b'), "Albanian" },
|
||
{ MAKECODE('\0','s','q','i'), "Albanian" },
|
||
{ MAKECODE('\0','a','l','e'), "Aleut" },
|
||
{ MAKECODE('\0','a','l','g'), "Algonquian languages" },
|
||
{ MAKECODE('\0','t','u','t'), "Altaic (Other)" },
|
||
{ MAKECODE('\0','a','m','h'), "Amharic" },
|
||
{ MAKECODE('\0','a','p','a'), "Apache languages" },
|
||
{ MAKECODE('\0','a','r','a'), "Arabic" },
|
||
{ MAKECODE('\0','a','r','g'), "Aragonese" },
|
||
{ MAKECODE('\0','a','r','c'), "Aramaic" },
|
||
{ MAKECODE('\0','a','r','p'), "Arapaho" },
|
||
{ MAKECODE('\0','a','r','n'), "Araucanian" },
|
||
{ MAKECODE('\0','a','r','w'), "Arawak" },
|
||
{ MAKECODE('\0','a','r','m'), "Armenian" },
|
||
{ MAKECODE('\0','h','y','e'), "Armenian" },
|
||
{ MAKECODE('\0','a','r','t'), "Artificial (Other)" },
|
||
{ MAKECODE('\0','a','s','m'), "Assamese" },
|
||
{ MAKECODE('\0','a','s','t'), "Asturian" },
|
||
{ MAKECODE('\0','a','t','h'), "Athapascan languages" },
|
||
{ MAKECODE('\0','a','u','s'), "Australian languages" },
|
||
{ MAKECODE('\0','m','a','p'), "Austronesian (Other)" },
|
||
{ MAKECODE('\0','a','v','a'), "Avaric" },
|
||
{ MAKECODE('\0','a','v','e'), "Avestan" },
|
||
{ MAKECODE('\0','a','w','a'), "Awadhi" },
|
||
{ MAKECODE('\0','a','y','m'), "Aymara" },
|
||
{ MAKECODE('\0','a','z','e'), "Azerbaijani" },
|
||
{ MAKECODE('\0','a','s','t'), "Bable" },
|
||
{ MAKECODE('\0','b','a','n'), "Balinese" },
|
||
{ MAKECODE('\0','b','a','t'), "Baltic (Other)" },
|
||
{ MAKECODE('\0','b','a','l'), "Baluchi" },
|
||
{ MAKECODE('\0','b','a','m'), "Bambara" },
|
||
{ MAKECODE('\0','b','a','i'), "Bamileke languages" },
|
||
{ MAKECODE('\0','b','a','d'), "Banda" },
|
||
{ MAKECODE('\0','b','n','t'), "Bantu (Other)" },
|
||
{ MAKECODE('\0','b','a','s'), "Basa" },
|
||
{ MAKECODE('\0','b','a','k'), "Bashkir" },
|
||
{ MAKECODE('\0','b','a','q'), "Basque" },
|
||
{ MAKECODE('\0','e','u','s'), "Basque" },
|
||
{ MAKECODE('\0','b','t','k'), "Batak (Indonesia)" },
|
||
{ MAKECODE('\0','b','e','j'), "Beja" },
|
||
{ MAKECODE('\0','b','e','l'), "Belarusian" },
|
||
{ MAKECODE('\0','b','e','m'), "Bemba" },
|
||
{ MAKECODE('\0','b','e','n'), "Bengali" },
|
||
{ MAKECODE('\0','b','e','r'), "Berber (Other)" },
|
||
{ MAKECODE('\0','b','h','o'), "Bhojpuri" },
|
||
{ MAKECODE('\0','b','i','h'), "Bihari" },
|
||
{ MAKECODE('\0','b','i','k'), "Bikol" },
|
||
{ MAKECODE('\0','b','y','n'), "Bilin" },
|
||
{ MAKECODE('\0','b','i','n'), "Bini" },
|
||
{ MAKECODE('\0','b','i','s'), "Bislama" },
|
||
{ MAKECODE('\0','b','y','n'), "Blin" },
|
||
{ MAKECODE('\0','n','o','b'), "Bokmål, Norwegian" },
|
||
{ MAKECODE('\0','b','o','s'), "Bosnian" },
|
||
{ MAKECODE('\0','b','r','a'), "Braj" },
|
||
{ MAKECODE('\0','b','r','e'), "Breton" },
|
||
{ MAKECODE('\0','b','u','g'), "Buginese" },
|
||
{ MAKECODE('\0','b','u','l'), "Bulgarian" },
|
||
{ MAKECODE('\0','b','u','a'), "Buriat" },
|
||
{ MAKECODE('\0','b','u','r'), "Burmese" },
|
||
{ MAKECODE('\0','m','y','a'), "Burmese" },
|
||
{ MAKECODE('\0','c','a','d'), "Caddo" },
|
||
{ MAKECODE('\0','c','a','r'), "Carib" },
|
||
{ MAKECODE('\0','s','p','a'), "Castilian" },
|
||
{ MAKECODE('\0','c','a','t'), "Catalan" },
|
||
{ MAKECODE('\0','c','a','u'), "Caucasian (Other)" },
|
||
{ MAKECODE('\0','c','e','b'), "Cebuano" },
|
||
{ MAKECODE('\0','c','e','l'), "Celtic (Other)" },
|
||
{ MAKECODE('\0','c','h','g'), "Chagatai" },
|
||
{ MAKECODE('\0','c','m','c'), "Chamic languages" },
|
||
{ MAKECODE('\0','c','h','a'), "Chamorro" },
|
||
{ MAKECODE('\0','c','h','e'), "Chechen" },
|
||
{ MAKECODE('\0','c','h','r'), "Cherokee" },
|
||
{ MAKECODE('\0','n','y','a'), "Chewa" },
|
||
{ MAKECODE('\0','c','h','y'), "Cheyenne" },
|
||
{ MAKECODE('\0','c','h','b'), "Chibcha" },
|
||
{ MAKECODE('\0','n','y','a'), "Chichewa" },
|
||
{ MAKECODE('\0','c','h','i'), "Chinese" },
|
||
{ MAKECODE('\0','z','h','o'), "Chinese" },
|
||
{ MAKECODE('\0','c','h','n'), "Chinook jargon" },
|
||
{ MAKECODE('\0','c','h','p'), "Chipewyan" },
|
||
{ MAKECODE('\0','c','h','o'), "Choctaw" },
|
||
{ MAKECODE('\0','z','h','a'), "Chuang" },
|
||
{ MAKECODE('\0','c','h','u'), "Church Slavonic" },
|
||
{ MAKECODE('\0','c','h','k'), "Chuukese" },
|
||
{ MAKECODE('\0','c','h','v'), "Chuvash" },
|
||
{ MAKECODE('\0','n','w','c'), "Classical Nepal Bhasa" },
|
||
{ MAKECODE('\0','n','w','c'), "Classical Newari" },
|
||
{ MAKECODE('\0','c','o','p'), "Coptic" },
|
||
{ MAKECODE('\0','c','o','r'), "Cornish" },
|
||
{ MAKECODE('\0','c','o','s'), "Corsican" },
|
||
{ MAKECODE('\0','c','r','e'), "Cree" },
|
||
{ MAKECODE('\0','m','u','s'), "Creek" },
|
||
{ MAKECODE('\0','c','r','p'), "Creoles and pidgins (Other)" },
|
||
{ MAKECODE('\0','c','p','e'), "English-based (Other)" },
|
||
{ MAKECODE('\0','c','p','f'), "French-based (Other)" },
|
||
{ MAKECODE('\0','c','p','p'), "Portuguese-based (Other)" },
|
||
{ MAKECODE('\0','c','r','h'), "Crimean Tatar" },
|
||
{ MAKECODE('\0','c','r','h'), "Crimean Turkish" },
|
||
{ MAKECODE('\0','s','c','r'), "Croatian" },
|
||
{ MAKECODE('\0','h','r','v'), "Croatian" },
|
||
{ MAKECODE('\0','c','u','s'), "Cushitic (Other)" },
|
||
{ MAKECODE('\0','c','z','e'), "Czech" },
|
||
{ MAKECODE('\0','c','e','s'), "Czech" },
|
||
{ MAKECODE('\0','d','a','k'), "Dakota" },
|
||
{ MAKECODE('\0','d','a','n'), "Danish" },
|
||
{ MAKECODE('\0','d','a','r'), "Dargwa" },
|
||
{ MAKECODE('\0','d','a','y'), "Dayak" },
|
||
{ MAKECODE('\0','d','e','l'), "Delaware" },
|
||
{ MAKECODE('\0','d','i','n'), "Dinka" },
|
||
{ MAKECODE('\0','d','i','v'), "Divehi" },
|
||
{ MAKECODE('\0','d','o','i'), "Dogri" },
|
||
{ MAKECODE('\0','d','g','r'), "Dogrib" },
|
||
{ MAKECODE('\0','d','r','a'), "Dravidian (Other)" },
|
||
{ MAKECODE('\0','d','u','a'), "Duala" },
|
||
{ MAKECODE('\0','d','u','t'), "Dutch" },
|
||
{ MAKECODE('\0','n','l','d'), "Dutch" },
|
||
{ MAKECODE('\0','d','u','m'), "Dutch, Middle (ca. 1050-1350)" },
|
||
{ MAKECODE('\0','d','y','u'), "Dyula" },
|
||
{ MAKECODE('\0','d','z','o'), "Dzongkha" },
|
||
{ MAKECODE('\0','e','f','i'), "Efik" },
|
||
{ MAKECODE('\0','e','g','y'), "Egyptian (Ancient)" },
|
||
{ MAKECODE('\0','e','k','a'), "Ekajuk" },
|
||
{ MAKECODE('\0','e','l','x'), "Elamite" },
|
||
{ MAKECODE('\0','e','n','g'), "English" },
|
||
{ MAKECODE('\0','e','n','m'), "English, Middle (1100-1500)" },
|
||
{ MAKECODE('\0','a','n','g'), "English, Old (ca.450-1100)" },
|
||
{ MAKECODE('\0','m','y','v'), "Erzya" },
|
||
{ MAKECODE('\0','e','p','o'), "Esperanto" },
|
||
{ MAKECODE('\0','e','s','t'), "Estonian" },
|
||
{ MAKECODE('\0','e','w','e'), "Ewe" },
|
||
{ MAKECODE('\0','e','w','o'), "Ewondo" },
|
||
{ MAKECODE('\0','f','a','n'), "Fang" },
|
||
{ MAKECODE('\0','f','a','t'), "Fanti" },
|
||
{ MAKECODE('\0','f','a','o'), "Faroese" },
|
||
{ MAKECODE('\0','f','i','j'), "Fijian" },
|
||
{ MAKECODE('\0','f','i','l'), "Filipino" },
|
||
{ MAKECODE('\0','f','i','n'), "Finnish" },
|
||
{ MAKECODE('\0','f','i','u'), "Finno-Ugrian (Other)" },
|
||
{ MAKECODE('\0','d','u','t'), "Flemish" },
|
||
{ MAKECODE('\0','n','l','d'), "Flemish" },
|
||
{ MAKECODE('\0','f','o','n'), "Fon" },
|
||
{ MAKECODE('\0','f','r','e'), "French" },
|
||
{ MAKECODE('\0','f','r','a'), "French" },
|
||
{ MAKECODE('\0','f','r','m'), "French, Middle (ca.1400-1600)" },
|
||
{ MAKECODE('\0','f','r','o'), "French, Old (842-ca.1400)" },
|
||
{ MAKECODE('\0','f','r','y'), "Frisian" },
|
||
{ MAKECODE('\0','f','u','r'), "Friulian" },
|
||
{ MAKECODE('\0','f','u','l'), "Fulah" },
|
||
{ MAKECODE('\0','g','a','a'), "Ga" },
|
||
{ MAKECODE('\0','g','l','a'), "Gaelic" },
|
||
{ MAKECODE('\0','g','l','g'), "Gallegan" },
|
||
{ MAKECODE('\0','l','u','g'), "Ganda" },
|
||
{ MAKECODE('\0','g','a','y'), "Gayo" },
|
||
{ MAKECODE('\0','g','b','a'), "Gbaya" },
|
||
{ MAKECODE('\0','g','e','z'), "Geez" },
|
||
{ MAKECODE('\0','g','e','o'), "Georgian" },
|
||
{ MAKECODE('\0','k','a','t'), "Georgian" },
|
||
{ MAKECODE('\0','g','e','r'), "German" },
|
||
{ MAKECODE('\0','d','e','u'), "German" },
|
||
{ MAKECODE('\0','n','d','s'), "German, Low" },
|
||
{ MAKECODE('\0','g','m','h'), "German, Middle High (ca.1050-1500)" },
|
||
{ MAKECODE('\0','g','o','h'), "German, Old High (ca.750-1050)" },
|
||
{ MAKECODE('\0','g','e','m'), "Germanic (Other)" },
|
||
{ MAKECODE('\0','k','i','k'), "Gikuyu" },
|
||
{ MAKECODE('\0','g','i','l'), "Gilbertese" },
|
||
{ MAKECODE('\0','g','o','n'), "Gondi" },
|
||
{ MAKECODE('\0','g','o','r'), "Gorontalo" },
|
||
{ MAKECODE('\0','g','o','t'), "Gothic" },
|
||
{ MAKECODE('\0','g','r','b'), "Grebo" },
|
||
{ MAKECODE('\0','g','r','c'), "Greek, Ancient (to 1453)" },
|
||
{ MAKECODE('\0','g','r','e'), "Greek, Modern (1453-)" },
|
||
{ MAKECODE('\0','e','l','l'), "Greek, Modern (1453-)" },
|
||
{ MAKECODE('\0','k','a','l'), "Greenlandic" },
|
||
{ MAKECODE('\0','g','r','n'), "Guarani" },
|
||
{ MAKECODE('\0','g','u','j'), "Gujarati" },
|
||
{ MAKECODE('\0','g','w','i'), "Gwich´in" },
|
||
{ MAKECODE('\0','h','a','i'), "Haida" },
|
||
{ MAKECODE('\0','h','a','t'), "Haitian" },
|
||
{ MAKECODE('\0','h','a','t'), "Haitian Creole" },
|
||
{ MAKECODE('\0','h','a','u'), "Hausa" },
|
||
{ MAKECODE('\0','h','a','w'), "Hawaiian" },
|
||
{ MAKECODE('\0','h','e','b'), "Hebrew" },
|
||
{ MAKECODE('\0','h','e','r'), "Herero" },
|
||
{ MAKECODE('\0','h','i','l'), "Hiligaynon" },
|
||
{ MAKECODE('\0','h','i','m'), "Himachali" },
|
||
{ MAKECODE('\0','h','i','n'), "Hindi" },
|
||
{ MAKECODE('\0','h','m','o'), "Hiri Motu" },
|
||
{ MAKECODE('\0','h','i','t'), "Hittite" },
|
||
{ MAKECODE('\0','h','m','n'), "Hmong" },
|
||
{ MAKECODE('\0','h','u','n'), "Hungarian" },
|
||
{ MAKECODE('\0','h','u','p'), "Hupa" },
|
||
{ MAKECODE('\0','i','b','a'), "Iban" },
|
||
{ MAKECODE('\0','i','c','e'), "Icelandic" },
|
||
{ MAKECODE('\0','i','s','l'), "Icelandic" },
|
||
{ MAKECODE('\0','i','d','o'), "Ido" },
|
||
{ MAKECODE('\0','i','b','o'), "Igbo" },
|
||
{ MAKECODE('\0','i','j','o'), "Ijo" },
|
||
{ MAKECODE('\0','i','l','o'), "Iloko" },
|
||
{ MAKECODE('\0','s','m','n'), "Inari Sami" },
|
||
{ MAKECODE('\0','i','n','c'), "Indic (Other)" },
|
||
{ MAKECODE('\0','i','n','e'), "Indo-European (Other)" },
|
||
{ MAKECODE('\0','i','n','d'), "Indonesian" },
|
||
{ MAKECODE('\0','i','n','h'), "Ingush" },
|
||
{ MAKECODE('\0','i','n','a'), "Auxiliary Language Association)" },
|
||
{ MAKECODE('\0','i','l','e'), "Interlingue" },
|
||
{ MAKECODE('\0','i','k','u'), "Inuktitut" },
|
||
{ MAKECODE('\0','i','p','k'), "Inupiaq" },
|
||
{ MAKECODE('\0','i','r','a'), "Iranian (Other)" },
|
||
{ MAKECODE('\0','g','l','e'), "Irish" },
|
||
{ MAKECODE('\0','m','g','a'), "Irish, Middle (900-1200)" },
|
||
{ MAKECODE('\0','s','g','a'), "Irish, Old (to 900)" },
|
||
{ MAKECODE('\0','i','r','o'), "Iroquoian languages" },
|
||
{ MAKECODE('\0','i','t','a'), "Italian" },
|
||
{ MAKECODE('\0','j','p','n'), "Japanese" },
|
||
{ MAKECODE('\0','j','a','v'), "Javanese" },
|
||
{ MAKECODE('\0','j','r','b'), "Judeo-Arabic" },
|
||
{ MAKECODE('\0','j','p','r'), "Judeo-Persian" },
|
||
{ MAKECODE('\0','k','b','d'), "Kabardian" },
|
||
{ MAKECODE('\0','k','a','b'), "Kabyle" },
|
||
{ MAKECODE('\0','k','a','c'), "Kachin" },
|
||
{ MAKECODE('\0','k','a','l'), "Kalaallisut" },
|
||
{ MAKECODE('\0','x','a','l'), "Kalmyk" },
|
||
{ MAKECODE('\0','k','a','m'), "Kamba" },
|
||
{ MAKECODE('\0','k','a','n'), "Kannada" },
|
||
{ MAKECODE('\0','k','a','u'), "Kanuri" },
|
||
{ MAKECODE('\0','k','r','c'), "Karachay-Balkar" },
|
||
{ MAKECODE('\0','k','a','a'), "Kara-Kalpak" },
|
||
{ MAKECODE('\0','k','a','r'), "Karen" },
|
||
{ MAKECODE('\0','k','a','s'), "Kashmiri" },
|
||
{ MAKECODE('\0','c','s','b'), "Kashubian" },
|
||
{ MAKECODE('\0','k','a','w'), "Kawi" },
|
||
{ MAKECODE('\0','k','a','z'), "Kazakh" },
|
||
{ MAKECODE('\0','k','h','a'), "Khasi" },
|
||
{ MAKECODE('\0','k','h','m'), "Khmer" },
|
||
{ MAKECODE('\0','k','h','i'), "Khoisan (Other)" },
|
||
{ MAKECODE('\0','k','h','o'), "Khotanese" },
|
||
{ MAKECODE('\0','k','i','k'), "Kikuyu" },
|
||
{ MAKECODE('\0','k','m','b'), "Kimbundu" },
|
||
{ MAKECODE('\0','k','i','n'), "Kinyarwanda" },
|
||
{ MAKECODE('\0','k','i','r'), "Kirghiz" },
|
||
{ MAKECODE('\0','t','l','h'), "Klingon" },
|
||
{ MAKECODE('\0','k','o','m'), "Komi" },
|
||
{ MAKECODE('\0','k','o','n'), "Kongo" },
|
||
{ MAKECODE('\0','k','o','k'), "Konkani" },
|
||
{ MAKECODE('\0','k','o','r'), "Korean" },
|
||
{ MAKECODE('\0','k','o','s'), "Kosraean" },
|
||
{ MAKECODE('\0','k','p','e'), "Kpelle" },
|
||
{ MAKECODE('\0','k','r','o'), "Kru" },
|
||
{ MAKECODE('\0','k','u','a'), "Kuanyama" },
|
||
{ MAKECODE('\0','k','u','m'), "Kumyk" },
|
||
{ MAKECODE('\0','k','u','r'), "Kurdish" },
|
||
{ MAKECODE('\0','k','r','u'), "Kurukh" },
|
||
{ MAKECODE('\0','k','u','t'), "Kutenai" },
|
||
{ MAKECODE('\0','k','u','a'), "Kwanyama, Kuanyama" },
|
||
{ MAKECODE('\0','l','a','d'), "Ladino" },
|
||
{ MAKECODE('\0','l','a','h'), "Lahnda" },
|
||
{ MAKECODE('\0','l','a','m'), "Lamba" },
|
||
{ MAKECODE('\0','l','a','o'), "Lao" },
|
||
{ MAKECODE('\0','l','a','t'), "Latin" },
|
||
{ MAKECODE('\0','l','a','v'), "Latvian" },
|
||
{ MAKECODE('\0','l','t','z'), "Letzeburgesch" },
|
||
{ MAKECODE('\0','l','e','z'), "Lezghian" },
|
||
{ MAKECODE('\0','l','i','m'), "Limburgan" },
|
||
{ MAKECODE('\0','l','i','m'), "Limburger" },
|
||
{ MAKECODE('\0','l','i','m'), "Limburgish" },
|
||
{ MAKECODE('\0','l','i','n'), "Lingala" },
|
||
{ MAKECODE('\0','l','i','t'), "Lithuanian" },
|
||
{ MAKECODE('\0','j','b','o'), "Lojban" },
|
||
{ MAKECODE('\0','n','d','s'), "Low German" },
|
||
{ MAKECODE('\0','n','d','s'), "Low Saxon" },
|
||
{ MAKECODE('\0','d','s','b'), "Lower Sorbian" },
|
||
{ MAKECODE('\0','l','o','z'), "Lozi" },
|
||
{ MAKECODE('\0','l','u','b'), "Luba-Katanga" },
|
||
{ MAKECODE('\0','l','u','a'), "Luba-Lulua" },
|
||
{ MAKECODE('\0','l','u','i'), "Luiseno" },
|
||
{ MAKECODE('\0','s','m','j'), "Lule Sami" },
|
||
{ MAKECODE('\0','l','u','n'), "Lunda" },
|
||
{ MAKECODE('\0','l','u','o'), "Luo (Kenya and Tanzania)" },
|
||
{ MAKECODE('\0','l','u','s'), "Lushai" },
|
||
{ MAKECODE('\0','l','t','z'), "Luxembourgish" },
|
||
{ MAKECODE('\0','m','a','c'), "Macedonian" },
|
||
{ MAKECODE('\0','m','k','d'), "Macedonian" },
|
||
{ MAKECODE('\0','m','a','d'), "Madurese" },
|
||
{ MAKECODE('\0','m','a','g'), "Magahi" },
|
||
{ MAKECODE('\0','m','a','i'), "Maithili" },
|
||
{ MAKECODE('\0','m','a','k'), "Makasar" },
|
||
{ MAKECODE('\0','m','l','g'), "Malagasy" },
|
||
{ MAKECODE('\0','m','a','y'), "Malay" },
|
||
{ MAKECODE('\0','m','s','a'), "Malay" },
|
||
{ MAKECODE('\0','m','a','l'), "Malayalam" },
|
||
{ MAKECODE('\0','m','l','t'), "Maltese" },
|
||
{ MAKECODE('\0','m','n','c'), "Manchu" },
|
||
{ MAKECODE('\0','m','d','r'), "Mandar" },
|
||
{ MAKECODE('\0','m','a','n'), "Mandingo" },
|
||
{ MAKECODE('\0','m','n','i'), "Manipuri" },
|
||
{ MAKECODE('\0','m','n','o'), "Manobo languages" },
|
||
{ MAKECODE('\0','g','l','v'), "Manx" },
|
||
{ MAKECODE('\0','m','a','o'), "Maori" },
|
||
{ MAKECODE('\0','m','r','i'), "Maori" },
|
||
{ MAKECODE('\0','m','a','r'), "Marathi" },
|
||
{ MAKECODE('\0','c','h','m'), "Mari" },
|
||
{ MAKECODE('\0','m','a','h'), "Marshallese" },
|
||
{ MAKECODE('\0','m','w','r'), "Marwari" },
|
||
{ MAKECODE('\0','m','a','s'), "Masai" },
|
||
{ MAKECODE('\0','m','y','n'), "Mayan languages" },
|
||
{ MAKECODE('\0','m','e','n'), "Mende" },
|
||
{ MAKECODE('\0','m','i','c'), "Micmac" },
|
||
{ MAKECODE('\0','m','i','c'), "Mi'kmaq" },
|
||
{ MAKECODE('\0','m','i','n'), "Minangkabau" },
|
||
{ MAKECODE('\0','m','w','l'), "Mirandese" },
|
||
{ MAKECODE('\0','m','i','s'), "Miscellaneous languages" },
|
||
{ MAKECODE('\0','m','o','h'), "Mohawk" },
|
||
{ MAKECODE('\0','m','d','f'), "Moksha" },
|
||
{ MAKECODE('\0','m','o','l'), "Moldavian" },
|
||
{ MAKECODE('\0','m','k','h'), "Mon-Khmer (Other)" },
|
||
{ MAKECODE('\0','l','o','l'), "Mongo" },
|
||
{ MAKECODE('\0','m','o','n'), "Mongolian" },
|
||
{ MAKECODE('\0','m','o','s'), "Mossi" },
|
||
{ MAKECODE('\0','m','u','l'), "Multiple languages" },
|
||
{ MAKECODE('\0','m','u','n'), "Munda languages" },
|
||
{ MAKECODE('\0','n','a','h'), "Nahuatl" },
|
||
{ MAKECODE('\0','n','a','u'), "Nauru" },
|
||
{ MAKECODE('\0','n','a','v'), "Navaho, Navajo" },
|
||
{ MAKECODE('\0','n','a','v'), "Navajo" },
|
||
{ MAKECODE('\0','n','d','e'), "Ndebele, North" },
|
||
{ MAKECODE('\0','n','b','l'), "Ndebele, South" },
|
||
{ MAKECODE('\0','n','d','o'), "Ndonga" },
|
||
{ MAKECODE('\0','n','a','p'), "Neapolitan" },
|
||
{ MAKECODE('\0','n','e','w'), "Nepal Bhasa" },
|
||
{ MAKECODE('\0','n','e','p'), "Nepali" },
|
||
{ MAKECODE('\0','n','e','w'), "Newari" },
|
||
{ MAKECODE('\0','n','i','a'), "Nias" },
|
||
{ MAKECODE('\0','n','i','c'), "Niger-Kordofanian (Other)" },
|
||
{ MAKECODE('\0','s','s','a'), "Nilo-Saharan (Other)" },
|
||
{ MAKECODE('\0','n','i','u'), "Niuean" },
|
||
{ MAKECODE('\0','n','o','g'), "Nogai" },
|
||
{ MAKECODE('\0','n','o','n'), "Norse, Old" },
|
||
{ MAKECODE('\0','n','a','i'), "North American Indian (Other)" },
|
||
{ MAKECODE('\0','s','m','e'), "Northern Sami" },
|
||
{ MAKECODE('\0','n','s','o'), "Northern Sotho" },
|
||
{ MAKECODE('\0','n','d','e'), "North Ndebele" },
|
||
{ MAKECODE('\0','n','o','r'), "Norwegian" },
|
||
{ MAKECODE('\0','n','o','b'), "Norwegian Bokmål" },
|
||
{ MAKECODE('\0','n','n','o'), "Norwegian Nynorsk" },
|
||
{ MAKECODE('\0','n','u','b'), "Nubian languages" },
|
||
{ MAKECODE('\0','n','y','m'), "Nyamwezi" },
|
||
{ MAKECODE('\0','n','y','a'), "Nyanja" },
|
||
{ MAKECODE('\0','n','y','n'), "Nyankole" },
|
||
{ MAKECODE('\0','n','n','o'), "Nynorsk, Norwegian" },
|
||
{ MAKECODE('\0','n','y','o'), "Nyoro" },
|
||
{ MAKECODE('\0','n','z','i'), "Nzima" },
|
||
{ MAKECODE('\0','o','c','i'), "Occitan (post 1500)" },
|
||
{ MAKECODE('\0','o','j','i'), "Ojibwa" },
|
||
{ MAKECODE('\0','c','h','u'), "Old Bulgarian" },
|
||
{ MAKECODE('\0','c','h','u'), "Old Church Slavonic" },
|
||
{ MAKECODE('\0','n','w','c'), "Old Newari" },
|
||
{ MAKECODE('\0','c','h','u'), "Old Slavonic" },
|
||
{ MAKECODE('\0','o','r','i'), "Oriya" },
|
||
{ MAKECODE('\0','o','r','m'), "Oromo" },
|
||
{ MAKECODE('\0','o','s','a'), "Osage" },
|
||
{ MAKECODE('\0','o','s','s'), "Ossetian" },
|
||
{ MAKECODE('\0','o','s','s'), "Ossetic" },
|
||
{ MAKECODE('\0','o','t','o'), "Otomian languages" },
|
||
{ MAKECODE('\0','p','a','l'), "Pahlavi" },
|
||
{ MAKECODE('\0','p','a','u'), "Palauan" },
|
||
{ MAKECODE('\0','p','l','i'), "Pali" },
|
||
{ MAKECODE('\0','p','a','m'), "Pampanga" },
|
||
{ MAKECODE('\0','p','a','g'), "Pangasinan" },
|
||
{ MAKECODE('\0','p','a','n'), "Panjabi" },
|
||
{ MAKECODE('\0','p','a','p'), "Papiamento" },
|
||
{ MAKECODE('\0','p','a','a'), "Papuan (Other)" },
|
||
{ MAKECODE('\0','n','s','o'), "Pedi" },
|
||
{ MAKECODE('\0','p','e','r'), "Persian" },
|
||
{ MAKECODE('\0','f','a','s'), "Persian" },
|
||
{ MAKECODE('\0','p','e','o'), "Persian, Old (ca.600-400 B.C.)" },
|
||
{ MAKECODE('\0','p','h','i'), "Philippine (Other)" },
|
||
{ MAKECODE('\0','p','h','n'), "Phoenician" },
|
||
{ MAKECODE('\0','f','i','l'), "Pilipino" },
|
||
{ MAKECODE('\0','p','o','n'), "Pohnpeian" },
|
||
{ MAKECODE('\0','p','o','l'), "Polish" },
|
||
{ MAKECODE('\0','p','o','r'), "Portuguese" },
|
||
{ MAKECODE('\0','p','r','a'), "Prakrit languages" },
|
||
{ MAKECODE('\0','o','c','i'), "Provençal" },
|
||
{ MAKECODE('\0','p','r','o'), "Provençal, Old (to 1500)" },
|
||
{ MAKECODE('\0','p','a','n'), "Punjabi" },
|
||
{ MAKECODE('\0','p','u','s'), "Pushto" },
|
||
{ MAKECODE('\0','q','u','e'), "Quechua" },
|
||
{ MAKECODE('\0','r','o','h'), "Raeto-Romance" },
|
||
{ MAKECODE('\0','r','a','j'), "Rajasthani" },
|
||
{ MAKECODE('\0','r','a','p'), "Rapanui" },
|
||
{ MAKECODE('\0','r','a','r'), "Rarotongan" },
|
||
// { "qaa-qtz", "Reserved for local use" },
|
||
{ MAKECODE('\0','r','o','a'), "Romance (Other)" },
|
||
{ MAKECODE('\0','r','u','m'), "Romanian" },
|
||
{ MAKECODE('\0','r','o','n'), "Romanian" },
|
||
{ MAKECODE('\0','r','o','m'), "Romany" },
|
||
{ MAKECODE('\0','r','u','n'), "Rundi" },
|
||
{ MAKECODE('\0','r','u','s'), "Russian" },
|
||
{ MAKECODE('\0','s','a','l'), "Salishan languages" },
|
||
{ MAKECODE('\0','s','a','m'), "Samaritan Aramaic" },
|
||
{ MAKECODE('\0','s','m','i'), "Sami languages (Other)" },
|
||
{ MAKECODE('\0','s','m','o'), "Samoan" },
|
||
{ MAKECODE('\0','s','a','d'), "Sandawe" },
|
||
{ MAKECODE('\0','s','a','g'), "Sango" },
|
||
{ MAKECODE('\0','s','a','n'), "Sanskrit" },
|
||
{ MAKECODE('\0','s','a','t'), "Santali" },
|
||
{ MAKECODE('\0','s','r','d'), "Sardinian" },
|
||
{ MAKECODE('\0','s','a','s'), "Sasak" },
|
||
{ MAKECODE('\0','n','d','s'), "Saxon, Low" },
|
||
{ MAKECODE('\0','s','c','o'), "Scots" },
|
||
{ MAKECODE('\0','g','l','a'), "Scottish Gaelic" },
|
||
{ MAKECODE('\0','s','e','l'), "Selkup" },
|
||
{ MAKECODE('\0','s','e','m'), "Semitic (Other)" },
|
||
{ MAKECODE('\0','n','s','o'), "Sepedi" },
|
||
{ MAKECODE('\0','s','c','c'), "Serbian" },
|
||
{ MAKECODE('\0','s','r','p'), "Serbian" },
|
||
{ MAKECODE('\0','s','r','r'), "Serer" },
|
||
{ MAKECODE('\0','s','h','n'), "Shan" },
|
||
{ MAKECODE('\0','s','n','a'), "Shona" },
|
||
{ MAKECODE('\0','i','i','i'), "Sichuan Yi" },
|
||
{ MAKECODE('\0','s','c','n'), "Sicilian" },
|
||
{ MAKECODE('\0','s','i','d'), "Sidamo" },
|
||
{ MAKECODE('\0','s','g','n'), "Sign languages" },
|
||
{ MAKECODE('\0','b','l','a'), "Siksika" },
|
||
{ MAKECODE('\0','s','n','d'), "Sindhi" },
|
||
{ MAKECODE('\0','s','i','n'), "Sinhala" },
|
||
{ MAKECODE('\0','s','i','n'), "Sinhalese" },
|
||
{ MAKECODE('\0','s','i','t'), "Sino-Tibetan (Other)" },
|
||
{ MAKECODE('\0','s','i','o'), "Siouan languages" },
|
||
{ MAKECODE('\0','s','m','s'), "Skolt Sami" },
|
||
{ MAKECODE('\0','d','e','n'), "Slave (Athapascan)" },
|
||
{ MAKECODE('\0','s','l','a'), "Slavic (Other)" },
|
||
{ MAKECODE('\0','s','l','o'), "Slovak" },
|
||
{ MAKECODE('\0','s','l','k'), "Slovak" },
|
||
{ MAKECODE('\0','s','l','v'), "Slovenian" },
|
||
{ MAKECODE('\0','s','o','g'), "Sogdian" },
|
||
{ MAKECODE('\0','s','o','m'), "Somali" },
|
||
{ MAKECODE('\0','s','o','n'), "Songhai" },
|
||
{ MAKECODE('\0','s','n','k'), "Soninke" },
|
||
{ MAKECODE('\0','w','e','n'), "Sorbian languages" },
|
||
{ MAKECODE('\0','n','s','o'), "Sotho, Northern" },
|
||
{ MAKECODE('\0','s','o','t'), "Sotho, Southern" },
|
||
{ MAKECODE('\0','s','a','i'), "South American Indian (Other)" },
|
||
{ MAKECODE('\0','s','m','a'), "Southern Sami" },
|
||
{ MAKECODE('\0','n','b','l'), "South Ndebele" },
|
||
{ MAKECODE('\0','s','p','a'), "Spanish" },
|
||
{ MAKECODE('\0','s','u','k'), "Sukuma" },
|
||
{ MAKECODE('\0','s','u','x'), "Sumerian" },
|
||
{ MAKECODE('\0','s','u','n'), "Sundanese" },
|
||
{ MAKECODE('\0','s','u','s'), "Susu" },
|
||
{ MAKECODE('\0','s','w','a'), "Swahili" },
|
||
{ MAKECODE('\0','s','s','w'), "Swati" },
|
||
{ MAKECODE('\0','s','w','e'), "Swedish" },
|
||
{ MAKECODE('\0','s','y','r'), "Syriac" },
|
||
{ MAKECODE('\0','t','g','l'), "Tagalog" },
|
||
{ MAKECODE('\0','t','a','h'), "Tahitian" },
|
||
{ MAKECODE('\0','t','a','i'), "Tai (Other)" },
|
||
{ MAKECODE('\0','t','g','k'), "Tajik" },
|
||
{ MAKECODE('\0','t','m','h'), "Tamashek" },
|
||
{ MAKECODE('\0','t','a','m'), "Tamil" },
|
||
{ MAKECODE('\0','t','a','t'), "Tatar" },
|
||
{ MAKECODE('\0','t','e','l'), "Telugu" },
|
||
{ MAKECODE('\0','t','e','r'), "Tereno" },
|
||
{ MAKECODE('\0','t','e','t'), "Tetum" },
|
||
{ MAKECODE('\0','t','h','a'), "Thai" },
|
||
{ MAKECODE('\0','t','i','b'), "Tibetan" },
|
||
{ MAKECODE('\0','b','o','d'), "Tibetan" },
|
||
{ MAKECODE('\0','t','i','g'), "Tigre" },
|
||
{ MAKECODE('\0','t','i','r'), "Tigrinya" },
|
||
{ MAKECODE('\0','t','e','m'), "Timne" },
|
||
{ MAKECODE('\0','t','i','v'), "Tiv" },
|
||
{ MAKECODE('\0','t','l','h'), "tlhIngan-Hol" },
|
||
{ MAKECODE('\0','t','l','i'), "Tlingit" },
|
||
{ MAKECODE('\0','t','p','i'), "Tok Pisin" },
|
||
{ MAKECODE('\0','t','k','l'), "Tokelau" },
|
||
{ MAKECODE('\0','t','o','g'), "Tonga (Nyasa)" },
|
||
{ MAKECODE('\0','t','o','n'), "Tonga (Tonga Islands)" },
|
||
{ MAKECODE('\0','t','s','i'), "Tsimshian" },
|
||
{ MAKECODE('\0','t','s','o'), "Tsonga" },
|
||
{ MAKECODE('\0','t','s','n'), "Tswana" },
|
||
{ MAKECODE('\0','t','u','m'), "Tumbuka" },
|
||
{ MAKECODE('\0','t','u','p'), "Tupi languages" },
|
||
{ MAKECODE('\0','t','u','r'), "Turkish" },
|
||
{ MAKECODE('\0','o','t','a'), "Turkish, Ottoman (1500-1928)" },
|
||
{ MAKECODE('\0','t','u','k'), "Turkmen" },
|
||
{ MAKECODE('\0','t','v','l'), "Tuvalu" },
|
||
{ MAKECODE('\0','t','y','v'), "Tuvinian" },
|
||
{ MAKECODE('\0','t','w','i'), "Twi" },
|
||
{ MAKECODE('\0','u','d','m'), "Udmurt" },
|
||
{ MAKECODE('\0','u','g','a'), "Ugaritic" },
|
||
{ MAKECODE('\0','u','i','g'), "Uighur" },
|
||
{ MAKECODE('\0','u','k','r'), "Ukrainian" },
|
||
{ MAKECODE('\0','u','m','b'), "Umbundu" },
|
||
{ MAKECODE('\0','u','n','d'), "Undetermined" },
|
||
{ MAKECODE('\0','h','s','b'), "Upper Sorbian" },
|
||
{ MAKECODE('\0','u','r','d'), "Urdu" },
|
||
{ MAKECODE('\0','u','i','g'), "Uyghur" },
|
||
{ MAKECODE('\0','u','z','b'), "Uzbek" },
|
||
{ MAKECODE('\0','v','a','i'), "Vai" },
|
||
{ MAKECODE('\0','c','a','t'), "Valencian" },
|
||
{ MAKECODE('\0','v','e','n'), "Venda" },
|
||
{ MAKECODE('\0','v','i','e'), "Vietnamese" },
|
||
{ MAKECODE('\0','v','o','l'), "Volapük" },
|
||
{ MAKECODE('\0','v','o','t'), "Votic" },
|
||
{ MAKECODE('\0','w','a','k'), "Wakashan languages" },
|
||
{ MAKECODE('\0','w','a','l'), "Walamo" },
|
||
{ MAKECODE('\0','w','l','n'), "Walloon" },
|
||
{ MAKECODE('\0','w','a','r'), "Waray" },
|
||
{ MAKECODE('\0','w','a','s'), "Washo" },
|
||
{ MAKECODE('\0','w','e','l'), "Welsh" },
|
||
{ MAKECODE('\0','c','y','m'), "Welsh" },
|
||
{ MAKECODE('\0','w','o','l'), "Wolof" },
|
||
{ MAKECODE('\0','x','h','o'), "Xhosa" },
|
||
{ MAKECODE('\0','s','a','h'), "Yakut" },
|
||
{ MAKECODE('\0','y','a','o'), "Yao" },
|
||
{ MAKECODE('\0','y','a','p'), "Yapese" },
|
||
{ MAKECODE('\0','y','i','d'), "Yiddish" },
|
||
{ MAKECODE('\0','y','o','r'), "Yoruba" },
|
||
{ MAKECODE('\0','y','p','k'), "Yupik languages" },
|
||
{ MAKECODE('\0','z','n','d'), "Zande" },
|
||
{ MAKECODE('\0','z','a','p'), "Zapotec" },
|
||
{ MAKECODE('\0','z','e','n'), "Zenaga" },
|
||
{ MAKECODE('\0','z','h','a'), "Zhuang" },
|
||
{ MAKECODE('\0','z','u','l'), "Zulu" },
|
||
{ MAKECODE('\0','z','u','n'), "Zuni" },
|
||
};
|