SFNT Nameを調べるために作ったテーブルをせっかくなのでおいておく。
#pragma warning(disable:4996) #include <iostream> #include <ft2build.h> #include FT_FREETYPE_H #pragma comment(lib,"freetype.lib") #include "disp-sfnt-name.hpp" ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // 各テーブル std::unordered_map<unsigned int, NameID> nameIDTable; std::unordered_map<unsigned int, LanguageID> languageIDTable; std::unordered_map<unsigned int, PlatformID> platformIDTable; std::unordered_map<unsigned int, EncodingID_Apple> encodingIDAppleTable; std::unordered_map<unsigned int, EncodingID_MACINTOSH> encodingIDMacTable; std::unordered_map<unsigned int, EncodingID_ISO> encodingIDISOTable; std::unordered_map<unsigned int, EncodingID_Microsoft> encodingIDMicrosoftTable; std::unordered_map<unsigned int, EncodingID_Adobe> encodingIDAdobeTable; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // 表示用関数 void disp_sfnt(const FT_SfntName& sname); ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// int main() { setlocale(LC_ALL, ""); //テーブルを作成 create_language_id_list(languageIDTable); create_name_id_list(nameIDTable); create_platform_id_list(platformIDTable); create_encoding_id_apple(encodingIDAppleTable); create_encoding_id_MAC(encodingIDMacTable); create_encoding_id_iso(encodingIDISOTable); create_encoding_id_Microsoft(encodingIDMicrosoftTable); create_encoding_id_Adobe(encodingIDAdobeTable); FT_Library library; // handle to library FT_Error error; error = FT_Init_FreeType(&library); if (error) return -1; FT_Face face; // handle to face object // フォントファイル読み込み error = FT_New_Face( library, //"C:\\Windows\\Fonts\\ALGER.ttf", //"C:\\Windows\\Fonts\\meiryo.ttc", "C:\\Windows\\Fonts\\msmincho.ttc", 0, &face ); FT_Int count = FT_Get_Sfnt_Name_Count(face); FT_SfntName sfnt_name; for (FT_Int i = 0; i < count; i++) { FT_Get_Sfnt_Name(face, i, &sfnt_name); switch (sfnt_name.platform_id) { case TT_PLATFORM_APPLE_UNICODE: if (0) { printf("%s / ", platformIDTable[sfnt_name.platform_id].macro.c_str()); ; printf("%s / ", encodingIDAppleTable[sfnt_name.encoding_id].macro.c_str()); disp_sfnt(sfnt_name); } break; case TT_PLATFORM_MACINTOSH: if (0) { printf("%s / ", platformIDTable[sfnt_name.platform_id].macro.c_str()); ; printf("%s / ", encodingIDMacTable[sfnt_name.encoding_id].macro.c_str()); disp_sfnt(sfnt_name); } break; case TT_PLATFORM_ISO: if (0) { printf("%s / ", platformIDTable[sfnt_name.platform_id].macro.c_str()); ; printf("%s / ", encodingIDISOTable[sfnt_name.encoding_id].macro.c_str()); disp_sfnt(sfnt_name); } break; case TT_PLATFORM_MICROSOFT: if (1) { printf("%s / ", platformIDTable[sfnt_name.platform_id].macro.c_str()); ; printf("%s / ", encodingIDMicrosoftTable[sfnt_name.encoding_id].macro.c_str()); disp_sfnt(sfnt_name); } break; case TT_PLATFORM_CUSTOM: break; case TT_PLATFORM_ADOBE: if (0) { printf("%s / ", platformIDTable[sfnt_name.platform_id].macro.c_str()); ; printf("%s / ", encodingIDAdobeTable[sfnt_name.encoding_id].macro.c_str()); disp_sfnt(sfnt_name); } break; } } // FreeType2の解放 FT_Done_Face(face); FT_Done_FreeType(library); } void disp_sfnt( const FT_SfntName& sname) { printf("%s / ", nameIDTable[sname.name_id].macro.c_str()); printf("%s / ", languageIDTable[sname.language_id].Primary_Language.c_str()); std::string astr; std::wstring wstr; printf("::name=="); switch (sname.encoding_id) { case 0: for (size_t i = 0; i < sname.string_len; i++) { astr += sname.string[i]; } printf("%s", astr.c_str()); break; default: for (size_t i = 0; i < sname.string_len; i+=2) { char16_t w = *((char16_t*)&sname.string[i]); unsigned char* p = (unsigned char*)&w; // UTF16BEなので2バイトを反転する std::swap(p[0], p[1]); wstr += w; } printf("%ls", wstr.c_str()); } puts(""); }
#pragma once #include <unordered_map> //FT_Get_Sfnt_Name_Count #include<freetype/ftsnames.h> // プラットフォーム TT_PLATFORM_XXX の定義 #include<freetype/ttnameid.h> struct LanguageID { unsigned int LCID; std::string macro; std::string Primary_Language; std::string Region; }; struct NameID { int ID; std::string macro; }; struct PlatformID { int ID; std::string macro; }; struct EncodingID_Apple { int ID; std::string macro; }; struct EncodingID_MACINTOSH { int ID; std::string macro; }; struct EncodingID_ISO { int ID; std::string macro; }; struct EncodingID_Microsoft { int ID; std::string macro; }; struct EncodingID_Adobe { int ID; std::string macro; }; void create_platform_id_list(std::unordered_map<unsigned int, PlatformID>& m) { m[TT_PLATFORM_APPLE_UNICODE] = PlatformID{ TT_PLATFORM_APPLE_UNICODE,"TT_PLATFORM_APPLE_UNICODE" }; m[TT_PLATFORM_MACINTOSH] = PlatformID{ TT_PLATFORM_MACINTOSH ,"TT_PLATFORM_MACINTOSH" }; m[TT_PLATFORM_ISO] = PlatformID{ TT_PLATFORM_ISO ,"TT_PLATFORM_ISO" }; m[TT_PLATFORM_MICROSOFT] = PlatformID{ TT_PLATFORM_MICROSOFT ,"TT_PLATFORM_MICROSOFT" }; m[TT_PLATFORM_CUSTOM] = PlatformID{ TT_PLATFORM_CUSTOM ,"TT_PLATFORM_CUSTOM" }; m[TT_PLATFORM_ADOBE] = PlatformID{ TT_PLATFORM_ADOBE ,"TT_PLATFORM_ADOBE" }; } void create_language_id_list(std::unordered_map<unsigned int, LanguageID>& m) { m[TT_MS_LANGID_ENGLISH_PHILIPPINES] = LanguageID{ TT_MS_LANGID_ENGLISH_PHILIPPINES, "TT_MS_LANGID_ENGLISH_PHILIPPINES","English","Republic of the Philippines" }; m[TT_MS_LANGID_ARABIC_TUNISIA] = LanguageID{ TT_MS_LANGID_ARABIC_TUNISIA, "TT_MS_LANGID_ARABIC_TUNISIA","Arabic","Tunisia" }; m[TT_MS_LANGID_ARABIC_ALGERIA] = LanguageID{ TT_MS_LANGID_ARABIC_ALGERIA, "TT_MS_LANGID_ARABIC_ALGERIA","Arabic","Algeria" }; m[TT_MS_LANGID_ENGLISH_CARIBBEAN] = LanguageID{ TT_MS_LANGID_ENGLISH_CARIBBEAN, "TT_MS_LANGID_ENGLISH_CARIBBEAN","English","Caribbean" }; m[TT_MS_LANGID_SWEDISH_FINLAND] = LanguageID{ TT_MS_LANGID_SWEDISH_FINLAND, "TT_MS_LANGID_SWEDISH_FINLAND","Sweden","Finland" }; m[TT_MS_LANGID_ARABIC_EGYPT] = LanguageID{ TT_MS_LANGID_ARABIC_EGYPT, "TT_MS_LANGID_ARABIC_EGYPT","Arabic","Egypt" }; m[TT_MS_LANGID_ENGLISH_TRINIDAD] = LanguageID{ TT_MS_LANGID_ENGLISH_TRINIDAD, "TT_MS_LANGID_ENGLISH_TRINIDAD","English","Trinidad and Tobago" }; m[TT_MS_LANGID_BENGALI_BANGLADESH] = LanguageID{ TT_MS_LANGID_BENGALI_BANGLADESH, "TT_MS_LANGID_BENGALI_BANGLADESH","Bengali","Bangladesh" }; m[TT_MS_LANGID_ARABIC_SAUDI_ARABIA] = LanguageID{ TT_MS_LANGID_ARABIC_SAUDI_ARABIA, "TT_MS_LANGID_ARABIC_SAUDI_ARABIA","Arabic","Saudi Arabia" }; m[TT_MS_LANGID_ENGLISH_SINGAPORE] = LanguageID{ TT_MS_LANGID_ENGLISH_SINGAPORE, "TT_MS_LANGID_ENGLISH_SINGAPORE","English","Singapore" }; m[TT_MS_LANGID_ENGLISH_UNITED_KINGDOM] = LanguageID{ TT_MS_LANGID_ENGLISH_UNITED_KINGDOM, "TT_MS_LANGID_ENGLISH_UNITED_KINGDOM","English","United Kingdom" }; m[TT_MS_LANGID_ARABIC_OMAN] = LanguageID{ TT_MS_LANGID_ARABIC_OMAN, "TT_MS_LANGID_ARABIC_OMAN","Arabic","Oman" }; m[TT_MS_LANGID_ENGLISH_ZIMBABWE] = LanguageID{ TT_MS_LANGID_ENGLISH_ZIMBABWE, "TT_MS_LANGID_ENGLISH_ZIMBABWE","English","Zimbabwe" }; m[TT_MS_LANGID_ISIZULU_SOUTH_AFRICA] = LanguageID{ TT_MS_LANGID_ISIZULU_SOUTH_AFRICA, "TT_MS_LANGID_ISIZULU_SOUTH_AFRICA","isiZulu","South Africa" }; m[TT_MS_LANGID_ARABIC_MOROCCO] = LanguageID{ TT_MS_LANGID_ARABIC_MOROCCO, "TT_MS_LANGID_ARABIC_MOROCCO","Arabic","Morocco" }; m[TT_MS_LANGID_ARABIC_LIBYA] = LanguageID{ TT_MS_LANGID_ARABIC_LIBYA, "TT_MS_LANGID_ARABIC_LIBYA","Arabic","Libya" }; m[TT_MS_LANGID_ENGLISH_JAMAICA] = LanguageID{ TT_MS_LANGID_ENGLISH_JAMAICA, "TT_MS_LANGID_ENGLISH_JAMAICA","English","Jamaica" }; m[TT_MS_LANGID_CZECH_CZECH_REPUBLIC] = LanguageID{ TT_MS_LANGID_CZECH_CZECH_REPUBLIC, "TT_MS_LANGID_CZECH_CZECH_REPUBLIC","Czech","Czech Republic" }; m[TT_MS_LANGID_BENGALI_INDIA] = LanguageID{ TT_MS_LANGID_BENGALI_INDIA, "TT_MS_LANGID_BENGALI_INDIA","Bengali","India" }; m[TT_MS_LANGID_ARABIC_IRAQ] = LanguageID{ TT_MS_LANGID_ARABIC_IRAQ, "TT_MS_LANGID_ARABIC_IRAQ","Arabic","Iraq" }; m[TT_MS_LANGID_INDONESIAN_INDONESIA] = LanguageID{ TT_MS_LANGID_INDONESIAN_INDONESIA, "TT_MS_LANGID_INDONESIAN_INDONESIA","Indonesian","Indonesia" }; m[TT_MS_LANGID_ENGLISH_AUSTRALIA] = LanguageID{ TT_MS_LANGID_ENGLISH_AUSTRALIA, "TT_MS_LANGID_ENGLISH_AUSTRALIA","English","Australia" }; m[TT_MS_LANGID_ARABIC_YEMEN] = LanguageID{ TT_MS_LANGID_ARABIC_YEMEN, "TT_MS_LANGID_ARABIC_YEMEN","Arabic","Yemen" }; m[TT_MS_LANGID_ENGLISH_INDIA] = LanguageID{ TT_MS_LANGID_ENGLISH_INDIA, "TT_MS_LANGID_ENGLISH_INDIA","English","India" }; m[TT_MS_LANGID_ARABIC_SYRIA] = LanguageID{ TT_MS_LANGID_ARABIC_SYRIA, "TT_MS_LANGID_ARABIC_SYRIA","Arabic","Syria" }; m[TT_MS_LANGID_ENGLISH_MALAYSIA] = LanguageID{ TT_MS_LANGID_ENGLISH_MALAYSIA, "TT_MS_LANGID_ENGLISH_MALAYSIA","English","Malaysia" }; m[TT_MS_LANGID_ENGLISH_UNITED_STATES] = LanguageID{ TT_MS_LANGID_ENGLISH_UNITED_STATES, "TT_MS_LANGID_ENGLISH_UNITED_STATES","English","United States" }; m[TT_MS_LANGID_ARABIC_JORDAN] = LanguageID{ TT_MS_LANGID_ARABIC_JORDAN, "TT_MS_LANGID_ARABIC_JORDAN","Arabic","Jordan" }; m[TT_MS_LANGID_ENGLISH_IRELAND] = LanguageID{ TT_MS_LANGID_ENGLISH_IRELAND, "TT_MS_LANGID_ENGLISH_IRELAND","English","Ireland" }; m[TT_MS_LANGID_ARABIC_LEBANON] = LanguageID{ TT_MS_LANGID_ARABIC_LEBANON, "TT_MS_LANGID_ARABIC_LEBANON","Arabic","Lebanon" }; m[TT_MS_LANGID_ENGLISH_SOUTH_AFRICA] = LanguageID{ TT_MS_LANGID_ENGLISH_SOUTH_AFRICA, "TT_MS_LANGID_ENGLISH_SOUTH_AFRICA","English","South Africa" }; m[TT_MS_LANGID_TIBETAN_PRC] = LanguageID{ TT_MS_LANGID_TIBETAN_PRC, "TT_MS_LANGID_TIBETAN_PRC","Tibetan","PRC" }; m[TT_MS_LANGID_ARABIC_KUWAIT] = LanguageID{ TT_MS_LANGID_ARABIC_KUWAIT, "TT_MS_LANGID_ARABIC_KUWAIT","Arabic","Kuwait" }; m[TT_MS_LANGID_ENGLISH_CANADA] = LanguageID{ TT_MS_LANGID_ENGLISH_CANADA, "TT_MS_LANGID_ENGLISH_CANADA","English","Canada" }; m[TT_MS_LANGID_ARABIC_UAE] = LanguageID{ TT_MS_LANGID_ARABIC_UAE, "TT_MS_LANGID_ARABIC_UAE","Arabic","U.A.E." }; m[TT_MS_LANGID_ENGLISH_NEW_ZEALAND] = LanguageID{ TT_MS_LANGID_ENGLISH_NEW_ZEALAND, "TT_MS_LANGID_ENGLISH_NEW_ZEALAND","English","New Zealand" }; m[TT_MS_LANGID_ARABIC_BAHRAIN] = LanguageID{ TT_MS_LANGID_ARABIC_BAHRAIN, "TT_MS_LANGID_ARABIC_BAHRAIN","Arabic","Bahrain" }; m[TT_MS_LANGID_ENGLISH_BELIZE] = LanguageID{ TT_MS_LANGID_ENGLISH_BELIZE, "TT_MS_LANGID_ENGLISH_BELIZE","English","Belize" }; m[TT_MS_LANGID_ARABIC_QATAR] = LanguageID{ TT_MS_LANGID_ARABIC_QATAR, "TT_MS_LANGID_ARABIC_QATAR","Arabic","Qatar" }; m[TT_MS_LANGID_OCCITAN_FRANCE] = LanguageID{ TT_MS_LANGID_OCCITAN_FRANCE, "TT_MS_LANGID_OCCITAN_FRANCE","Occitan","France" }; m[TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC] = LanguageID{ TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC, "TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC","Spanish","Dominican Republic" }; m[TT_MS_LANGID_BULGARIAN_BULGARIA] = LanguageID{ TT_MS_LANGID_BULGARIAN_BULGARIA, "TT_MS_LANGID_BULGARIAN_BULGARIA","Bulgarian","Bulgaria" }; m[TT_MS_LANGID_GERMAN_LUXEMBOURG] = LanguageID{ TT_MS_LANGID_GERMAN_LUXEMBOURG, "TT_MS_LANGID_GERMAN_LUXEMBOURG","German","Luxembourg" }; m[TT_MS_LANGID_CATALAN_CATALAN] = LanguageID{ TT_MS_LANGID_CATALAN_CATALAN, "TT_MS_LANGID_CATALAN_CATALAN","Catalan","Catalan" }; m[TT_MS_LANGID_CHINESE_TAIWAN] = LanguageID{ TT_MS_LANGID_CHINESE_TAIWAN, "TT_MS_LANGID_CHINESE_TAIWAN","Chinese","Taiwan" }; m[TT_MS_LANGID_CHINESE_PRC] = LanguageID{ TT_MS_LANGID_CHINESE_PRC, "TT_MS_LANGID_CHINESE_PRC","Chinese","People’s Republic of China" }; m[TT_MS_LANGID_CHINESE_HONG_KONG] = LanguageID{ TT_MS_LANGID_CHINESE_HONG_KONG, "TT_MS_LANGID_CHINESE_HONG_KONG","Chinese","Hong Kong S.A.R." }; m[TT_MS_LANGID_YI_PRC] = LanguageID{ TT_MS_LANGID_YI_PRC, "TT_MS_LANGID_YI_PRC","Yi","PRC" }; m[TT_MS_LANGID_CHINESE_SINGAPORE] = LanguageID{ TT_MS_LANGID_CHINESE_SINGAPORE, "TT_MS_LANGID_CHINESE_SINGAPORE","Chinese","Singapore" }; m[TT_MS_LANGID_LAO_LAOS] = LanguageID{ TT_MS_LANGID_LAO_LAOS, "TT_MS_LANGID_LAO_LAOS","Lao","Lao P.D.R." }; m[TT_MS_LANGID_ITALIAN_SWITZERLAND] = LanguageID{ TT_MS_LANGID_ITALIAN_SWITZERLAND, "TT_MS_LANGID_ITALIAN_SWITZERLAND","Italian","Switzerland" }; m[TT_MS_LANGID_CHINESE_MACAO] = LanguageID{ TT_MS_LANGID_CHINESE_MACAO, "TT_MS_LANGID_CHINESE_MACAO","Chinese","Macao S.A.R." }; m[TT_MS_LANGID_SPANISH_VENEZUELA] = LanguageID{ TT_MS_LANGID_SPANISH_VENEZUELA, "TT_MS_LANGID_SPANISH_VENEZUELA","Spanish","Venezuela" }; m[TT_MS_LANGID_DANISH_DENMARK] = LanguageID{ TT_MS_LANGID_DANISH_DENMARK, "TT_MS_LANGID_DANISH_DENMARK","Danish","Denmark" }; m[TT_MS_LANGID_GERMAN_GERMANY] = LanguageID{ TT_MS_LANGID_GERMAN_GERMANY, "TT_MS_LANGID_GERMAN_GERMANY","German","Germany" }; m[TT_MS_LANGID_ARMENIAN_ARMENIA] = LanguageID{ TT_MS_LANGID_ARMENIAN_ARMENIA, "TT_MS_LANGID_ARMENIAN_ARMENIA","Armenian","Armenia" }; m[TT_MS_LANGID_GERMAN_SWITZERLAND] = LanguageID{ TT_MS_LANGID_GERMAN_SWITZERLAND, "TT_MS_LANGID_GERMAN_SWITZERLAND","German","Switzerland" }; m[TT_MS_LANGID_DUTCH_BELGIUM] = LanguageID{ TT_MS_LANGID_DUTCH_BELGIUM, "TT_MS_LANGID_DUTCH_BELGIUM","Dutch","Belgium" }; m[TT_MS_LANGID_GERMAN_AUSTRIA] = LanguageID{ TT_MS_LANGID_GERMAN_AUSTRIA, "TT_MS_LANGID_GERMAN_AUSTRIA","German","Austria" }; m[TT_MS_LANGID_GERMAN_LIECHTENSTEIN] = LanguageID{ TT_MS_LANGID_GERMAN_LIECHTENSTEIN, "TT_MS_LANGID_GERMAN_LIECHTENSTEIN","German","Liechtenstein" }; m[TT_MS_LANGID_IRISH_IRELAND] = LanguageID{ TT_MS_LANGID_IRISH_IRELAND, "TT_MS_LANGID_IRISH_IRELAND","Irish","Ireland" }; m[TT_MS_LANGID_GREEK_GREECE] = LanguageID{ TT_MS_LANGID_GREEK_GREECE, "TT_MS_LANGID_GREEK_GREECE","Greek","Greece" }; m[TT_MS_LANGID_SPANISH_EL_SALVADOR] = LanguageID{ TT_MS_LANGID_SPANISH_EL_SALVADOR, "TT_MS_LANGID_SPANISH_EL_SALVADOR","Spanish","El Salvador" }; m[TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT] = LanguageID{ TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT, "TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT","Spanish (Traditional Sort)","Spain" }; m[TT_MS_LANGID_MARATHI_INDIA] = LanguageID{ TT_MS_LANGID_MARATHI_INDIA, "TT_MS_LANGID_MARATHI_INDIA","Marathi","India" }; m[TT_MS_LANGID_SPANISH_MEXICO] = LanguageID{ TT_MS_LANGID_SPANISH_MEXICO, "TT_MS_LANGID_SPANISH_MEXICO","Spanish","Mexico" }; m[TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT] = LanguageID{ TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT, "TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT","Spanish (Modern Sort)","Spain" }; m[TT_MS_LANGID_SPANISH_GUATEMALA] = LanguageID{ TT_MS_LANGID_SPANISH_GUATEMALA, "TT_MS_LANGID_SPANISH_GUATEMALA","Spanish","Guatemala" }; m[TT_MS_LANGID_SYRIAC_SYRIA] = LanguageID{ TT_MS_LANGID_SYRIAC_SYRIA, "TT_MS_LANGID_SYRIAC_SYRIA","Syriac","Syria" }; m[TT_MS_LANGID_SPANISH_COSTA_RICA] = LanguageID{ TT_MS_LANGID_SPANISH_COSTA_RICA, "TT_MS_LANGID_SPANISH_COSTA_RICA","Spanish","Costa Rica" }; m[TT_MS_LANGID_SPANISH_PANAMA] = LanguageID{ TT_MS_LANGID_SPANISH_PANAMA, "TT_MS_LANGID_SPANISH_PANAMA","Spanish","Panama" }; m[TT_MS_LANGID_SPANISH_COLOMBIA] = LanguageID{ TT_MS_LANGID_SPANISH_COLOMBIA, "TT_MS_LANGID_SPANISH_COLOMBIA","Spanish","Colombia" }; m[TT_MS_LANGID_SPANISH_PERU] = LanguageID{ TT_MS_LANGID_SPANISH_PERU, "TT_MS_LANGID_SPANISH_PERU","Spanish","Peru" }; m[TT_MS_LANGID_SPANISH_ARGENTINA] = LanguageID{ TT_MS_LANGID_SPANISH_ARGENTINA, "TT_MS_LANGID_SPANISH_ARGENTINA","Spanish","Argentina" }; m[TT_MS_LANGID_SPANISH_ECUADOR] = LanguageID{ TT_MS_LANGID_SPANISH_ECUADOR, "TT_MS_LANGID_SPANISH_ECUADOR","Spanish","Ecuador" }; m[TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM] = LanguageID{ TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM, "TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM","Malay","Brunei Darussalam" }; m[TT_MS_LANGID_SPANISH_CHILE] = LanguageID{ TT_MS_LANGID_SPANISH_CHILE, "TT_MS_LANGID_SPANISH_CHILE","Spanish","Chile" }; m[TT_MS_LANGID_MALAY_MALAYSIA] = LanguageID{ TT_MS_LANGID_MALAY_MALAYSIA, "TT_MS_LANGID_MALAY_MALAYSIA","Malay","Malaysia" }; m[TT_MS_LANGID_SPANISH_URUGUAY] = LanguageID{ TT_MS_LANGID_SPANISH_URUGUAY, "TT_MS_LANGID_SPANISH_URUGUAY","Spanish","Uruguay" }; m[TT_MS_LANGID_UKRAINIAN_UKRAINE] = LanguageID{ TT_MS_LANGID_UKRAINIAN_UKRAINE, "TT_MS_LANGID_UKRAINIAN_UKRAINE","Ukrainian","Ukraine" }; m[TT_MS_LANGID_SPANISH_PARAGUAY] = LanguageID{ TT_MS_LANGID_SPANISH_PARAGUAY, "TT_MS_LANGID_SPANISH_PARAGUAY","Spanish","Paraguay" }; m[TT_MS_LANGID_SPANISH_BOLIVIA] = LanguageID{ TT_MS_LANGID_SPANISH_BOLIVIA, "TT_MS_LANGID_SPANISH_BOLIVIA","Spanish","Bolivia" }; m[TT_MS_LANGID_SPANISH_HONDURAS] = LanguageID{ TT_MS_LANGID_SPANISH_HONDURAS, "TT_MS_LANGID_SPANISH_HONDURAS","Spanish","Honduras" }; m[TT_MS_LANGID_SPANISH_NICARAGUA] = LanguageID{ TT_MS_LANGID_SPANISH_NICARAGUA, "TT_MS_LANGID_SPANISH_NICARAGUA","Spanish","Nicaragua" }; m[TT_MS_LANGID_SPANISH_PUERTO_RICO] = LanguageID{ TT_MS_LANGID_SPANISH_PUERTO_RICO, "TT_MS_LANGID_SPANISH_PUERTO_RICO","Spanish","Puerto Rico" }; m[TT_MS_LANGID_SPANISH_UNITED_STATES] = LanguageID{ TT_MS_LANGID_SPANISH_UNITED_STATES, "TT_MS_LANGID_SPANISH_UNITED_STATES","Spanish","United States" }; m[TT_MS_LANGID_FINNISH_FINLAND] = LanguageID{ TT_MS_LANGID_FINNISH_FINLAND, "TT_MS_LANGID_FINNISH_FINLAND","Finnish","Finland" }; m[TT_MS_LANGID_FRENCH_FRANCE] = LanguageID{ TT_MS_LANGID_FRENCH_FRANCE, "TT_MS_LANGID_FRENCH_FRANCE","French","France" }; m[TT_MS_LANGID_ROMANIAN_ROMANIA] = LanguageID{ TT_MS_LANGID_ROMANIAN_ROMANIA, "TT_MS_LANGID_ROMANIAN_ROMANIA","Romanian","Romania" }; m[TT_MS_LANGID_FRENCH_BELGIUM] = LanguageID{ TT_MS_LANGID_FRENCH_BELGIUM, "TT_MS_LANGID_FRENCH_BELGIUM","French","Belgium" }; m[TT_MS_LANGID_FRENCH_CANADA] = LanguageID{ TT_MS_LANGID_FRENCH_CANADA, "TT_MS_LANGID_FRENCH_CANADA","French","Canada" }; m[TT_MS_LANGID_FRENCH_SWITZERLAND] = LanguageID{ TT_MS_LANGID_FRENCH_SWITZERLAND, "TT_MS_LANGID_FRENCH_SWITZERLAND","French","Switzerland" }; m[TT_MS_LANGID_FRENCH_LUXEMBOURG] = LanguageID{ TT_MS_LANGID_FRENCH_LUXEMBOURG, "TT_MS_LANGID_FRENCH_LUXEMBOURG","French","Luxembourg" }; m[TT_MS_LANGID_FRENCH_MONACO] = LanguageID{ TT_MS_LANGID_FRENCH_MONACO, "TT_MS_LANGID_FRENCH_MONACO","French","Principality of Monoco" }; m[TT_MS_LANGID_HEBREW_ISRAEL] = LanguageID{ TT_MS_LANGID_HEBREW_ISRAEL, "TT_MS_LANGID_HEBREW_ISRAEL","Hebrew","Israel" }; m[TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN] = LanguageID{ TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN, "TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN","Serbian (Latin)","Bosnia and Herzegovina" }; m[TT_MS_LANGID_HUNGARIAN_HUNGARY] = LanguageID{ TT_MS_LANGID_HUNGARIAN_HUNGARY, "TT_MS_LANGID_HUNGARIAN_HUNGARY","Hungarian","Hungary" }; m[TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC] = LanguageID{ TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC, "TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC","Uzbek (Cyrillic)","Uzbekistan" }; m[TT_MS_LANGID_ICELANDIC_ICELAND] = LanguageID{ TT_MS_LANGID_ICELANDIC_ICELAND, "TT_MS_LANGID_ICELANDIC_ICELAND","Icelandic","Iceland" }; m[TT_MS_LANGID_ITALIAN_ITALY] = LanguageID{ TT_MS_LANGID_ITALIAN_ITALY, "TT_MS_LANGID_ITALIAN_ITALY","Italian","Italy" }; m[TT_MS_LANGID_JAPANESE_JAPAN] = LanguageID{ TT_MS_LANGID_JAPANESE_JAPAN, "TT_MS_LANGID_JAPANESE_JAPAN","Japanese","Japan" }; m[TT_MS_LANGID_KOREAN_KOREA] = LanguageID{ TT_MS_LANGID_KOREAN_KOREA, "TT_MS_LANGID_KOREAN_KOREA","Korean","Korea" }; m[TT_MS_LANGID_DUTCH_NETHERLANDS] = LanguageID{ TT_MS_LANGID_DUTCH_NETHERLANDS, "TT_MS_LANGID_DUTCH_NETHERLANDS","Dutch","Netherlands" }; m[TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL] = LanguageID{ TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL, "TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL","Norwegian (Bokmal)","Norway" }; m[TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK] = LanguageID{ TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK, "TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK","Norwegian (Nynorsk)","Norway" }; m[TT_MS_LANGID_POLISH_POLAND] = LanguageID{ TT_MS_LANGID_POLISH_POLAND, "TT_MS_LANGID_POLISH_POLAND","Polish","Poland" }; m[TT_MS_LANGID_PORTUGUESE_BRAZIL] = LanguageID{ TT_MS_LANGID_PORTUGUESE_BRAZIL, "TT_MS_LANGID_PORTUGUESE_BRAZIL","Portuguese","Brazil" }; m[TT_MS_LANGID_FRISIAN_NETHERLANDS] = LanguageID{ TT_MS_LANGID_FRISIAN_NETHERLANDS, "TT_MS_LANGID_FRISIAN_NETHERLANDS","Frisian","Netherlands" }; m[TT_MS_LANGID_PORTUGUESE_PORTUGAL] = LanguageID{ TT_MS_LANGID_PORTUGUESE_PORTUGAL, "TT_MS_LANGID_PORTUGUESE_PORTUGAL","Portuguese","Portugal" }; m[TT_MS_LANGID_SAMI_NORTHERN_SWEDEN] = LanguageID{ TT_MS_LANGID_SAMI_NORTHERN_SWEDEN, "TT_MS_LANGID_SAMI_NORTHERN_SWEDEN","Sami (Northern)","Sweden" }; m[TT_MS_LANGID_ROMANSH_SWITZERLAND] = LanguageID{ TT_MS_LANGID_ROMANSH_SWITZERLAND, "TT_MS_LANGID_ROMANSH_SWITZERLAND","Romansh","Switzerland" }; m[TT_MS_LANGID_RUSSIAN_RUSSIA] = LanguageID{ TT_MS_LANGID_RUSSIAN_RUSSIA, "TT_MS_LANGID_RUSSIAN_RUSSIA","Russian","Russia" }; m[TT_MS_LANGID_CROATIAN_CROATIA] = LanguageID{ TT_MS_LANGID_CROATIAN_CROATIA, "TT_MS_LANGID_CROATIAN_CROATIA","Croatian","Croatia" }; m[TT_MS_LANGID_AMHARIC_ETHIOPIA] = LanguageID{ TT_MS_LANGID_AMHARIC_ETHIOPIA, "TT_MS_LANGID_AMHARIC_ETHIOPIA","Amharic","Ethiopia" }; m[TT_MS_LANGID_SERBIAN_SERBIA_LATIN] = LanguageID{ TT_MS_LANGID_SERBIAN_SERBIA_LATIN, "TT_MS_LANGID_SERBIAN_SERBIA_LATIN","Serbian (Latin)","Serbia" }; m[TT_MS_LANGID_TURKMEN_TURKMENISTAN] = LanguageID{ TT_MS_LANGID_TURKMEN_TURKMENISTAN, "TT_MS_LANGID_TURKMEN_TURKMENISTAN","Turkmen","Turkmenistan" }; m[TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC] = LanguageID{ TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC, "TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC","Serbian (Cyrillic)","Serbia" }; m[TT_MS_LANGID_LATVIAN_LATVIA] = LanguageID{ TT_MS_LANGID_LATVIAN_LATVIA, "TT_MS_LANGID_LATVIAN_LATVIA","Latvian","Latvia" }; m[TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA] = LanguageID{ TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA, "TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA","Croatian (Latin)","Bosnia and Herzegovina" }; m[TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA] = LanguageID{ TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA, "TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA","Bosnian (Latin)","Bosnia and Herzegovina" }; m[TT_MS_LANGID_SETSWANA_SOUTH_AFRICA] = LanguageID{ TT_MS_LANGID_SETSWANA_SOUTH_AFRICA, "TT_MS_LANGID_SETSWANA_SOUTH_AFRICA","Setswana","South Africa" }; m[TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC] = LanguageID{ TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC, "TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC","Serbian (Cyrillic)","Bosnia and Herzegovina" }; m[TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC] = LanguageID{ TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC, "TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC","Bosnian (Cyrillic)","Bosnia and Herzegovina" }; m[TT_MS_LANGID_SLOVAK_SLOVAKIA] = LanguageID{ TT_MS_LANGID_SLOVAK_SLOVAKIA, "TT_MS_LANGID_SLOVAK_SLOVAKIA","Slovak","Slovakia" }; m[TT_MS_LANGID_ALBANIAN_ALBANIA] = LanguageID{ TT_MS_LANGID_ALBANIAN_ALBANIA, "TT_MS_LANGID_ALBANIAN_ALBANIA","Albanian","Albania" }; m[TT_MS_LANGID_SWEDISH_SWEDEN] = LanguageID{ TT_MS_LANGID_SWEDISH_SWEDEN, "TT_MS_LANGID_SWEDISH_SWEDEN","Swedish","Sweden" }; m[TT_MS_LANGID_THAI_THAILAND] = LanguageID{ TT_MS_LANGID_THAI_THAILAND, "TT_MS_LANGID_THAI_THAILAND","Thai","Thailand" }; m[TT_MS_LANGID_TURKISH_TURKEY] = LanguageID{ TT_MS_LANGID_TURKISH_TURKEY, "TT_MS_LANGID_TURKISH_TURKEY","Turkish","Turkey" }; m[TT_MS_LANGID_URDU_PAKISTAN] = LanguageID{ TT_MS_LANGID_URDU_PAKISTAN, "TT_MS_LANGID_URDU_PAKISTAN","Urdu","Islamic Republic of Pakistan" }; m[TT_MS_LANGID_BELARUSIAN_BELARUS] = LanguageID{ TT_MS_LANGID_BELARUSIAN_BELARUS, "TT_MS_LANGID_BELARUSIAN_BELARUS","Belarusian","Belarus" }; m[TT_MS_LANGID_SLOVENIAN_SLOVENIA] = LanguageID{ TT_MS_LANGID_SLOVENIAN_SLOVENIA, "TT_MS_LANGID_SLOVENIAN_SLOVENIA","Slovenian","Slovenia" }; m[TT_MS_LANGID_ESTONIAN_ESTONIA] = LanguageID{ TT_MS_LANGID_ESTONIAN_ESTONIA, "TT_MS_LANGID_ESTONIAN_ESTONIA","Estonian","Estonia" }; m[TT_MS_LANGID_LITHUANIAN_LITHUANIA] = LanguageID{ TT_MS_LANGID_LITHUANIAN_LITHUANIA, "TT_MS_LANGID_LITHUANIAN_LITHUANIA","Lithuanian","Lithuania" }; m[TT_MS_LANGID_TAJIK_TAJIKISTAN] = LanguageID{ TT_MS_LANGID_TAJIK_TAJIKISTAN, "TT_MS_LANGID_TAJIK_TAJIKISTAN","Tajik (Cyrillic)","Tajikistan" }; m[TT_MS_LANGID_VIETNAMESE_VIET_NAM] = LanguageID{ TT_MS_LANGID_VIETNAMESE_VIET_NAM, "TT_MS_LANGID_VIETNAMESE_VIET_NAM","Vietnamese","Vietnam" }; m[TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN] = LanguageID{ TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN, "TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN","Azeri (Latin)","Azerbaijan" }; m[TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS] = LanguageID{ TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS, "TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS","Faroese","Faroe Islands" }; m[TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC] = LanguageID{ TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC, "TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC","Azeri (Cyrillic)","Azerbaijan" }; m[TT_MS_LANGID_BASQUE_BASQUE] = LanguageID{ TT_MS_LANGID_BASQUE_BASQUE, "TT_MS_LANGID_BASQUE_BASQUE","Basque","Basque" }; m[TT_MS_LANGID_UPPER_SORBIAN_GERMANY] = LanguageID{ TT_MS_LANGID_UPPER_SORBIAN_GERMANY, "TT_MS_LANGID_UPPER_SORBIAN_GERMANY","Upper Sorbian","Germany" }; m[TT_MS_LANGID_LOWER_SORBIAN_GERMANY] = LanguageID{ TT_MS_LANGID_LOWER_SORBIAN_GERMANY, "TT_MS_LANGID_LOWER_SORBIAN_GERMANY","Lower Sorbian","Germany" }; m[TT_MS_LANGID_MACEDONIAN_MACEDONIA] = LanguageID{ TT_MS_LANGID_MACEDONIAN_MACEDONIA, "TT_MS_LANGID_MACEDONIAN_MACEDONIA","Macedonian (FYROM)","Former Yugoslav Republic of Macedonia" }; m[TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA] = LanguageID{ TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA, "TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA","isiXhosa","South Africa" }; m[TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA] = LanguageID{ TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA, "TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA","Afrikaans","South Africa" }; m[TT_MS_LANGID_GEORGIAN_GEORGIA] = LanguageID{ TT_MS_LANGID_GEORGIAN_GEORGIA, "TT_MS_LANGID_GEORGIAN_GEORGIA","Georgian","Georgia" }; m[TT_MS_LANGID_HINDI_INDIA] = LanguageID{ TT_MS_LANGID_HINDI_INDIA, "TT_MS_LANGID_HINDI_INDIA","Hindi","India" }; m[TT_MS_LANGID_MALTESE_MALTA] = LanguageID{ TT_MS_LANGID_MALTESE_MALTA, "TT_MS_LANGID_MALTESE_MALTA","Maltese","Malta" }; m[TT_MS_LANGID_SAMI_NORTHERN_NORWAY] = LanguageID{ TT_MS_LANGID_SAMI_NORTHERN_NORWAY, "TT_MS_LANGID_SAMI_NORTHERN_NORWAY","Sami (Northern)","Norway" }; m[TT_MS_LANGID_PASHTO_AFGHANISTAN] = LanguageID{ TT_MS_LANGID_PASHTO_AFGHANISTAN, "TT_MS_LANGID_PASHTO_AFGHANISTAN","Pashto","Afghanistan" }; m[TT_MS_LANGID_SAMI_NORTHERN_FINLAND] = LanguageID{ TT_MS_LANGID_SAMI_NORTHERN_FINLAND, "TT_MS_LANGID_SAMI_NORTHERN_FINLAND","Sami (Northern)","Finland" }; m[TT_MS_LANGID_SAMI_LULE_NORWAY] = LanguageID{ TT_MS_LANGID_SAMI_LULE_NORWAY, "TT_MS_LANGID_SAMI_LULE_NORWAY","Sami (Lule)","Norway" }; m[TT_MS_LANGID_KANNADA_INDIA] = LanguageID{ TT_MS_LANGID_KANNADA_INDIA, "TT_MS_LANGID_KANNADA_INDIA","Kannada","India" }; m[TT_MS_LANGID_SAMI_LULE_SWEDEN] = LanguageID{ TT_MS_LANGID_SAMI_LULE_SWEDEN, "TT_MS_LANGID_SAMI_LULE_SWEDEN","Sami (Lule)","Sweden" }; m[TT_MS_LANGID_SAMI_SOUTHERN_NORWAY] = LanguageID{ TT_MS_LANGID_SAMI_SOUTHERN_NORWAY, "TT_MS_LANGID_SAMI_SOUTHERN_NORWAY","Sami (Southern)","Norway" }; m[TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN] = LanguageID{ TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN, "TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN","Sami (Southern)","Sweden" }; m[TT_MS_LANGID_SAMI_SKOLT_FINLAND] = LanguageID{ TT_MS_LANGID_SAMI_SKOLT_FINLAND, "TT_MS_LANGID_SAMI_SKOLT_FINLAND","Sami (Skolt)","Finland" }; m[TT_MS_LANGID_SAMI_INARI_FINLAND] = LanguageID{ TT_MS_LANGID_SAMI_INARI_FINLAND, "TT_MS_LANGID_SAMI_INARI_FINLAND","Sami (Inari)","Finland" }; m[TT_MS_LANGID_KAZAKH_KAZAKHSTAN] = LanguageID{ TT_MS_LANGID_KAZAKH_KAZAKHSTAN, "TT_MS_LANGID_KAZAKH_KAZAKHSTAN","Kazakh","Kazakhstan" }; m[TT_MS_LANGID_KYRGYZ_KYRGYZSTAN] = LanguageID{ TT_MS_LANGID_KYRGYZ_KYRGYZSTAN, "TT_MS_LANGID_KYRGYZ_KYRGYZSTAN","Kyrgyz","Kyrgyzstan" }; m[TT_MS_LANGID_KISWAHILI_KENYA] = LanguageID{ TT_MS_LANGID_KISWAHILI_KENYA, "TT_MS_LANGID_KISWAHILI_KENYA","Kiswahili","Kenya" }; m[TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN] = LanguageID{ TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN, "TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN","Uzbek (Latin)","Uzbekistan" }; m[TT_MS_LANGID_TATAR_RUSSIA] = LanguageID{ TT_MS_LANGID_TATAR_RUSSIA, "TT_MS_LANGID_TATAR_RUSSIA","Tatar","Russia" }; m[TT_MS_LANGID_PUNJABI_INDIA] = LanguageID{ TT_MS_LANGID_PUNJABI_INDIA, "TT_MS_LANGID_PUNJABI_INDIA","Punjabi","India" }; m[TT_MS_LANGID_QUECHUA_ECUADOR] = LanguageID{ TT_MS_LANGID_QUECHUA_ECUADOR, "TT_MS_LANGID_QUECHUA_ECUADOR","Quechua","Ecuador" }; m[TT_MS_LANGID_GUJARATI_INDIA] = LanguageID{ TT_MS_LANGID_GUJARATI_INDIA, "TT_MS_LANGID_GUJARATI_INDIA","Gujarati","India" }; m[TT_MS_LANGID_ODIA_INDIA] = LanguageID{ TT_MS_LANGID_ODIA_INDIA, "TT_MS_LANGID_ODIA_INDIA","Odia (formerly Oriya)","India" }; m[TT_MS_LANGID_TAMIL_INDIA] = LanguageID{ TT_MS_LANGID_TAMIL_INDIA, "TT_MS_LANGID_TAMIL_INDIA","Tamil","India" }; m[TT_MS_LANGID_TELUGU_INDIA] = LanguageID{ TT_MS_LANGID_TELUGU_INDIA, "TT_MS_LANGID_TELUGU_INDIA","Telugu","India" }; m[TT_MS_LANGID_MALAYALAM_INDIA] = LanguageID{ TT_MS_LANGID_MALAYALAM_INDIA, "TT_MS_LANGID_MALAYALAM_INDIA","Malayalam","India" }; m[TT_MS_LANGID_ASSAMESE_INDIA] = LanguageID{ TT_MS_LANGID_ASSAMESE_INDIA, "TT_MS_LANGID_ASSAMESE_INDIA","Assamese","India" }; m[TT_MS_LANGID_SANSKRIT_INDIA] = LanguageID{ TT_MS_LANGID_SANSKRIT_INDIA, "TT_MS_LANGID_SANSKRIT_INDIA","Sanskrit","India" }; m[TT_MS_LANGID_MONGOLIAN_MONGOLIA] = LanguageID{ TT_MS_LANGID_MONGOLIAN_MONGOLIA, "TT_MS_LANGID_MONGOLIAN_MONGOLIA","Mongolian (Cyrillic)","Mongolia" }; m[TT_MS_LANGID_MONGOLIAN_PRC] = LanguageID{ TT_MS_LANGID_MONGOLIAN_PRC, "TT_MS_LANGID_MONGOLIAN_PRC","Mongolian (Traditional)","People’s Republic of China" }; m[TT_MS_LANGID_WELSH_UNITED_KINGDOM] = LanguageID{ TT_MS_LANGID_WELSH_UNITED_KINGDOM, "TT_MS_LANGID_WELSH_UNITED_KINGDOM","Welsh","United Kingdom" }; m[TT_MS_LANGID_QUECHUA_PERU] = LanguageID{ TT_MS_LANGID_QUECHUA_PERU, "TT_MS_LANGID_QUECHUA_PERU","Quechua","Peru" }; m[TT_MS_LANGID_KHMER_CAMBODIA] = LanguageID{ TT_MS_LANGID_KHMER_CAMBODIA, "TT_MS_LANGID_KHMER_CAMBODIA","Khmer","Cambodia" }; m[TT_MS_LANGID_GALICIAN_GALICIAN] = LanguageID{ TT_MS_LANGID_GALICIAN_GALICIAN, "TT_MS_LANGID_GALICIAN_GALICIAN","Galician","Galician" }; m[TT_MS_LANGID_KONKANI_INDIA] = LanguageID{ TT_MS_LANGID_KONKANI_INDIA, "TT_MS_LANGID_KONKANI_INDIA","Konkani","India" }; m[TT_MS_LANGID_SINHALA_SRI_LANKA] = LanguageID{ TT_MS_LANGID_SINHALA_SRI_LANKA, "TT_MS_LANGID_SINHALA_SRI_LANKA","Sinhala","Sri Lanka" }; m[TT_MS_LANGID_INUKTITUT_CANADA] = LanguageID{ TT_MS_LANGID_INUKTITUT_CANADA, "TT_MS_LANGID_INUKTITUT_CANADA","Inuktitut","Canada" }; m[TT_MS_LANGID_INUKTITUT_CANADA_LATIN] = LanguageID{ TT_MS_LANGID_INUKTITUT_CANADA_LATIN, "TT_MS_LANGID_INUKTITUT_CANADA_LATIN","Inuktitut (Latin)","Canada" }; m[TT_MS_LANGID_TAMAZIGHT_ALGERIA] = LanguageID{ TT_MS_LANGID_TAMAZIGHT_ALGERIA, "TT_MS_LANGID_TAMAZIGHT_ALGERIA","Tamazight (Latin)","Algeria" }; m[TT_MS_LANGID_NEPALI_NEPAL] = LanguageID{ TT_MS_LANGID_NEPALI_NEPAL, "TT_MS_LANGID_NEPALI_NEPAL","Nepali","Nepal" }; m[TT_MS_LANGID_FILIPINO_PHILIPPINES] = LanguageID{ TT_MS_LANGID_FILIPINO_PHILIPPINES, "TT_MS_LANGID_FILIPINO_PHILIPPINES","Filipino","Philippines" }; m[TT_MS_LANGID_DHIVEHI_MALDIVES] = LanguageID{ TT_MS_LANGID_DHIVEHI_MALDIVES, "TT_MS_LANGID_DHIVEHI_MALDIVES","Divehi","Maldives" }; m[TT_MS_LANGID_HAUSA_NIGERIA] = LanguageID{ TT_MS_LANGID_HAUSA_NIGERIA, "TT_MS_LANGID_HAUSA_NIGERIA","Hausa (Latin)","Nigeria" }; m[TT_MS_LANGID_YORUBA_NIGERIA] = LanguageID{ TT_MS_LANGID_YORUBA_NIGERIA, "TT_MS_LANGID_YORUBA_NIGERIA","Yoruba","Nigeria" }; m[TT_MS_LANGID_QUECHUA_BOLIVIA] = LanguageID{ TT_MS_LANGID_QUECHUA_BOLIVIA, "TT_MS_LANGID_QUECHUA_BOLIVIA","Quechua","Bolivia" }; m[TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA] = LanguageID{ TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA, "TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA","Sesotho sa Leboa","South Africa" }; m[TT_MS_LANGID_BASHKIR_RUSSIA] = LanguageID{ TT_MS_LANGID_BASHKIR_RUSSIA, "TT_MS_LANGID_BASHKIR_RUSSIA","Bashkir","Russia" }; m[TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG] = LanguageID{ TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG, "TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG","Luxembourgish","Luxembourg" }; m[TT_MS_LANGID_GREENLANDIC_GREENLAND] = LanguageID{ TT_MS_LANGID_GREENLANDIC_GREENLAND, "TT_MS_LANGID_GREENLANDIC_GREENLAND","Greenlandic","Greenland" }; m[TT_MS_LANGID_IGBO_NIGERIA] = LanguageID{ TT_MS_LANGID_IGBO_NIGERIA, "TT_MS_LANGID_IGBO_NIGERIA","Igbo","Nigeria" }; m[TT_MS_LANGID_MAPUDUNGUN_CHILE] = LanguageID{ TT_MS_LANGID_MAPUDUNGUN_CHILE, "TT_MS_LANGID_MAPUDUNGUN_CHILE","Mapudungun","Chile" }; m[TT_MS_LANGID_MOHAWK_MOHAWK] = LanguageID{ TT_MS_LANGID_MOHAWK_MOHAWK, "TT_MS_LANGID_MOHAWK_MOHAWK","Mohawk","Mohawk" }; m[TT_MS_LANGID_BRETON_FRANCE] = LanguageID{ TT_MS_LANGID_BRETON_FRANCE, "TT_MS_LANGID_BRETON_FRANCE","Breton","France" }; m[TT_MS_LANGID_UIGHUR_PRC] = LanguageID{ TT_MS_LANGID_UIGHUR_PRC, "TT_MS_LANGID_UIGHUR_PRC","Uighur","PRC" }; m[TT_MS_LANGID_MAORI_NEW_ZEALAND] = LanguageID{ TT_MS_LANGID_MAORI_NEW_ZEALAND, "TT_MS_LANGID_MAORI_NEW_ZEALAND","Maori","New Zealand" }; m[TT_MS_LANGID_CORSICAN_FRANCE] = LanguageID{ TT_MS_LANGID_CORSICAN_FRANCE, "TT_MS_LANGID_CORSICAN_FRANCE","Corsican","France" }; m[TT_MS_LANGID_ALSATIAN_FRANCE] = LanguageID{ TT_MS_LANGID_ALSATIAN_FRANCE, "TT_MS_LANGID_ALSATIAN_FRANCE","Alsatian","France" }; m[TT_MS_LANGID_YAKUT_RUSSIA] = LanguageID{ TT_MS_LANGID_YAKUT_RUSSIA, "TT_MS_LANGID_YAKUT_RUSSIA","Yakut","Russia" }; m[TT_MS_LANGID_KICHE_GUATEMALA] = LanguageID{ TT_MS_LANGID_KICHE_GUATEMALA, "TT_MS_LANGID_KICHE_GUATEMALA","K’iche","Guatemala" }; m[TT_MS_LANGID_KINYARWANDA_RWANDA] = LanguageID{ TT_MS_LANGID_KINYARWANDA_RWANDA, "TT_MS_LANGID_KINYARWANDA_RWANDA","Kinyarwanda","Rwanda" }; m[TT_MS_LANGID_WOLOF_SENEGAL] = LanguageID{ TT_MS_LANGID_WOLOF_SENEGAL, "TT_MS_LANGID_WOLOF_SENEGAL","Wolof","Senegal" }; m[TT_MS_LANGID_DARI_AFGHANISTAN] = LanguageID{ TT_MS_LANGID_DARI_AFGHANISTAN, "TT_MS_LANGID_DARI_AFGHANISTAN","Dari","Afghanistan" }; } void create_name_id_list(std::unordered_map<unsigned int, NameID>& m) { m[TT_NAME_ID_COPYRIGHT] = NameID{ TT_NAME_ID_COPYRIGHT ,"TT_NAME_ID_COPYRIGHT" }; m[TT_NAME_ID_FONT_FAMILY] = NameID{ TT_NAME_ID_FONT_FAMILY ,"TT_NAME_ID_FONT_FAMILY" }; m[TT_NAME_ID_FONT_SUBFAMILY] = NameID{ TT_NAME_ID_FONT_SUBFAMILY ,"TT_NAME_ID_FONT_SUBFAMILY" }; m[TT_NAME_ID_UNIQUE_ID] = NameID{ TT_NAME_ID_UNIQUE_ID ,"TT_NAME_ID_UNIQUE_ID" }; m[TT_NAME_ID_FULL_NAME] = NameID{ TT_NAME_ID_FULL_NAME ,"TT_NAME_ID_FULL_NAME" }; m[TT_NAME_ID_VERSION_STRING] = NameID{ TT_NAME_ID_VERSION_STRING ,"TT_NAME_ID_VERSION_STRING" }; m[TT_NAME_ID_PS_NAME] = NameID{ TT_NAME_ID_PS_NAME ,"TT_NAME_ID_PS_NAME" }; m[TT_NAME_ID_TRADEMARK] = NameID{ TT_NAME_ID_TRADEMARK ,"TT_NAME_ID_TRADEMARK" }; /* the following values are from the OpenType spec */ m[TT_NAME_ID_MANUFACTURER] = NameID{ TT_NAME_ID_MANUFACTURER,"TT_NAME_ID_MANUFACTURER" }; m[TT_NAME_ID_DESIGNER] = NameID{ TT_NAME_ID_DESIGNER ,"TT_NAME_ID_DESIGNER" }; m[TT_NAME_ID_DESCRIPTION] = NameID{ TT_NAME_ID_DESCRIPTION ,"TT_NAME_ID_DESCRIPTION" }; m[TT_NAME_ID_VENDOR_URL] = NameID{ TT_NAME_ID_VENDOR_URL ,"TT_NAME_ID_VENDOR_URL" }; m[TT_NAME_ID_DESIGNER_URL] = NameID{ TT_NAME_ID_DESIGNER_URL,"TT_NAME_ID_DESIGNER_URL" }; m[TT_NAME_ID_LICENSE] = NameID{ TT_NAME_ID_LICENSE ,"TT_NAME_ID_LICENSE" }; m[TT_NAME_ID_LICENSE_URL] = NameID{ TT_NAME_ID_LICENSE_URL ,"TT_NAME_ID_LICENSE_URL" }; /* number 15 is reserved */ m[TT_NAME_ID_TYPOGRAPHIC_FAMILY] = NameID{ TT_NAME_ID_TYPOGRAPHIC_FAMILY ,"TT_NAME_ID_TYPOGRAPHIC_FAMILY" }; m[TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY] = NameID{ TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY,"TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY" }; m[TT_NAME_ID_MAC_FULL_NAME] = NameID{ TT_NAME_ID_MAC_FULL_NAME ,"TT_NAME_ID_MAC_FULL_NAME" }; /* The following code is new as of 2000-01-21 */ m[TT_NAME_ID_SAMPLE_TEXT] = NameID{ TT_NAME_ID_SAMPLE_TEXT,"TT_NAME_ID_SAMPLE_TEXT" }; /* This is new in OpenType 1.3 */ m[TT_NAME_ID_CID_FINDFONT_NAME] = NameID{ TT_NAME_ID_CID_FINDFONT_NAME,"TT_NAME_ID_CID_FINDFONT_NAME" }; /* This is new in OpenType 1.5 */ m[TT_NAME_ID_WWS_FAMILY] = NameID{ TT_NAME_ID_WWS_FAMILY,"TT_NAME_ID_WWS_FAMILY" }; m[TT_NAME_ID_WWS_SUBFAMILY] = NameID{ TT_NAME_ID_WWS_SUBFAMILY,"TT_NAME_ID_WWS_SUBFAMILY" }; /* This is new in OpenType 1.7 */ m[TT_NAME_ID_LIGHT_BACKGROUND] = NameID{ TT_NAME_ID_LIGHT_BACKGROUND,"TT_NAME_ID_LIGHT_BACKGROUND" }; m[TT_NAME_ID_DARK_BACKGROUND] = NameID{ TT_NAME_ID_DARK_BACKGROUND,"TT_NAME_ID_DARK_BACKGROUND" }; /* This is new in OpenType 1.8 */ m[TT_NAME_ID_VARIATIONS_PREFIX] = NameID{ TT_NAME_ID_VARIATIONS_PREFIX,"TT_NAME_ID_VARIATIONS_PREFIX" }; /* these two values are deprecated */ m[TT_NAME_ID_PREFERRED_FAMILY] = NameID{ TT_NAME_ID_PREFERRED_FAMILY,"TT_NAME_ID_PREFERRED_FAMILY" }; m[TT_NAME_ID_PREFERRED_SUBFAMILY] = NameID{ TT_NAME_ID_PREFERRED_SUBFAMILY,"TT_NAME_ID_PREFERRED_SUBFAMILY" }; } //TT_PLATFORM_APPLE_UNICODE void create_encoding_id_apple( std::unordered_map<unsigned int, EncodingID_Apple>& m) { m[TT_APPLE_ID_DEFAULT] = EncodingID_Apple{ TT_APPLE_ID_DEFAULT ,"TT_APPLE_ID_DEFAULT" }; m[TT_APPLE_ID_UNICODE_1_1] = EncodingID_Apple{ TT_APPLE_ID_UNICODE_1_1 ,"TT_APPLE_ID_UNICODE_1_1" }; m[TT_APPLE_ID_ISO_10646] = EncodingID_Apple{ TT_APPLE_ID_ISO_10646 ,"TT_APPLE_ID_ISO_10646" }; m[TT_APPLE_ID_UNICODE_2_0] = EncodingID_Apple{ TT_APPLE_ID_UNICODE_2_0 ,"TT_APPLE_ID_UNICODE_2_0" }; m[TT_APPLE_ID_UNICODE_32] = EncodingID_Apple{ TT_APPLE_ID_UNICODE_32 ,"TT_APPLE_ID_UNICODE_32" }; m[TT_APPLE_ID_VARIANT_SELECTOR] = EncodingID_Apple{ TT_APPLE_ID_VARIANT_SELECTOR,"TT_APPLE_ID_VARIANT_SELECTOR" }; m[TT_APPLE_ID_FULL_UNICODE] = EncodingID_Apple{ TT_APPLE_ID_FULL_UNICODE ,"TT_APPLE_ID_FULL_UNICODE" }; } // TT_PLATFORM_MACINTOSH void create_encoding_id_MAC( std::unordered_map<unsigned int, EncodingID_MACINTOSH>& m ) { m[TT_MAC_ID_ROMAN] = EncodingID_MACINTOSH{ TT_MAC_ID_ROMAN ,"TT_MAC_ID_ROMAN" }; m[TT_MAC_ID_JAPANESE] = EncodingID_MACINTOSH{ TT_MAC_ID_JAPANESE ,"TT_MAC_ID_JAPANESE" }; m[TT_MAC_ID_TRADITIONAL_CHINESE] = EncodingID_MACINTOSH{ TT_MAC_ID_TRADITIONAL_CHINESE ,"TT_MAC_ID_TRADITIONAL_CHINESE" }; m[TT_MAC_ID_KOREAN] = EncodingID_MACINTOSH{ TT_MAC_ID_KOREAN ,"TT_MAC_ID_KOREAN" }; m[TT_MAC_ID_ARABIC] = EncodingID_MACINTOSH{ TT_MAC_ID_ARABIC ,"TT_MAC_ID_ARABIC" }; m[TT_MAC_ID_HEBREW] = EncodingID_MACINTOSH{ TT_MAC_ID_HEBREW ,"TT_MAC_ID_HEBREW" }; m[TT_MAC_ID_GREEK] = EncodingID_MACINTOSH{ TT_MAC_ID_GREEK ,"TT_MAC_ID_GREEK" }; m[TT_MAC_ID_RUSSIAN] = EncodingID_MACINTOSH{ TT_MAC_ID_RUSSIAN ,"TT_MAC_ID_RUSSIAN" }; m[TT_MAC_ID_RSYMBOL] = EncodingID_MACINTOSH{ TT_MAC_ID_RSYMBOL ,"TT_MAC_ID_RSYMBOL" }; m[TT_MAC_ID_DEVANAGARI] = EncodingID_MACINTOSH{ TT_MAC_ID_DEVANAGARI ,"TT_MAC_ID_DEVANAGARI" }; m[TT_MAC_ID_GURMUKHI] = EncodingID_MACINTOSH{ TT_MAC_ID_GURMUKHI ,"TT_MAC_ID_GURMUKHI" }; m[TT_MAC_ID_GUJARATI] = EncodingID_MACINTOSH{ TT_MAC_ID_GUJARATI ,"TT_MAC_ID_GUJARATI" }; m[TT_MAC_ID_ORIYA] = EncodingID_MACINTOSH{ TT_MAC_ID_ORIYA ,"TT_MAC_ID_ORIYA" }; m[TT_MAC_ID_BENGALI] = EncodingID_MACINTOSH{ TT_MAC_ID_BENGALI ,"TT_MAC_ID_BENGALI" }; m[TT_MAC_ID_TAMIL] = EncodingID_MACINTOSH{ TT_MAC_ID_TAMIL ,"TT_MAC_ID_TAMIL" }; m[TT_MAC_ID_TELUGU] = EncodingID_MACINTOSH{ TT_MAC_ID_TELUGU ,"TT_MAC_ID_TELUGU" }; m[TT_MAC_ID_KANNADA] = EncodingID_MACINTOSH{ TT_MAC_ID_KANNADA ,"TT_MAC_ID_KANNADA" }; m[TT_MAC_ID_MALAYALAM] = EncodingID_MACINTOSH{ TT_MAC_ID_MALAYALAM ,"TT_MAC_ID_MALAYALAM" }; m[TT_MAC_ID_SINHALESE] = EncodingID_MACINTOSH{ TT_MAC_ID_SINHALESE ,"TT_MAC_ID_SINHALESE" }; m[TT_MAC_ID_BURMESE] = EncodingID_MACINTOSH{ TT_MAC_ID_BURMESE ,"TT_MAC_ID_BURMESE" }; m[TT_MAC_ID_KHMER] = EncodingID_MACINTOSH{ TT_MAC_ID_KHMER ,"TT_MAC_ID_KHMER" }; m[TT_MAC_ID_THAI] = EncodingID_MACINTOSH{ TT_MAC_ID_THAI ,"TT_MAC_ID_THAI" }; m[TT_MAC_ID_LAOTIAN] = EncodingID_MACINTOSH{ TT_MAC_ID_LAOTIAN ,"TT_MAC_ID_LAOTIAN" }; m[TT_MAC_ID_GEORGIAN] = EncodingID_MACINTOSH{ TT_MAC_ID_GEORGIAN ,"TT_MAC_ID_GEORGIAN" }; m[TT_MAC_ID_ARMENIAN] = EncodingID_MACINTOSH{ TT_MAC_ID_ARMENIAN ,"TT_MAC_ID_ARMENIAN" }; m[TT_MAC_ID_MALDIVIAN] = EncodingID_MACINTOSH{ TT_MAC_ID_MALDIVIAN ,"TT_MAC_ID_MALDIVIAN" }; m[TT_MAC_ID_SIMPLIFIED_CHINESE] = EncodingID_MACINTOSH{ TT_MAC_ID_SIMPLIFIED_CHINESE ,"TT_MAC_ID_SIMPLIFIED_CHINESE" }; m[TT_MAC_ID_TIBETAN] = EncodingID_MACINTOSH{ TT_MAC_ID_TIBETAN ,"TT_MAC_ID_TIBETAN" }; m[TT_MAC_ID_MONGOLIAN] = EncodingID_MACINTOSH{ TT_MAC_ID_MONGOLIAN ,"TT_MAC_ID_MONGOLIAN" }; m[TT_MAC_ID_GEEZ] = EncodingID_MACINTOSH{ TT_MAC_ID_GEEZ ,"TT_MAC_ID_GEEZ" }; m[TT_MAC_ID_SLAVIC] = EncodingID_MACINTOSH{ TT_MAC_ID_SLAVIC ,"TT_MAC_ID_SLAVIC" }; m[TT_MAC_ID_VIETNAMESE] = EncodingID_MACINTOSH{ TT_MAC_ID_VIETNAMESE ,"TT_MAC_ID_VIETNAMESE" }; m[TT_MAC_ID_SINDHI] = EncodingID_MACINTOSH{ TT_MAC_ID_SINDHI ,"TT_MAC_ID_SINDHI" }; m[TT_MAC_ID_UNINTERP] = EncodingID_MACINTOSH{ TT_MAC_ID_UNINTERP ,"TT_MAC_ID_UNINTERP" }; } // TT_PLATFORM_ISO void create_encoding_id_iso( std::unordered_map<unsigned int, EncodingID_ISO>& m ) { m[TT_ISO_ID_7BIT_ASCII] = EncodingID_ISO{ TT_ISO_ID_7BIT_ASCII,"TT_ISO_ID_7BIT_ASCII" }; m[TT_ISO_ID_10646] = EncodingID_ISO{ TT_ISO_ID_10646 ,"TT_ISO_ID_10646" }; m[TT_ISO_ID_8859_1] = EncodingID_ISO{ TT_ISO_ID_8859_1 ,"TT_ISO_ID_8859_1" }; } //TT_PLATFORM_MICROSOFT void create_encoding_id_Microsoft( std::unordered_map<unsigned int, EncodingID_Microsoft>& m ) { m[TT_MS_ID_SYMBOL_CS] = EncodingID_Microsoft{ TT_MS_ID_SYMBOL_CS ,"TT_MS_ID_SYMBOL_CS" }; m[TT_MS_ID_UNICODE_CS] = EncodingID_Microsoft{ TT_MS_ID_UNICODE_CS,"TT_MS_ID_UNICODE_CS" }; m[TT_MS_ID_SJIS] = EncodingID_Microsoft{ TT_MS_ID_SJIS ,"TT_MS_ID_SJIS" }; m[TT_MS_ID_PRC] = EncodingID_Microsoft{ TT_MS_ID_PRC ,"TT_MS_ID_PRC" }; m[TT_MS_ID_BIG_5] = EncodingID_Microsoft{ TT_MS_ID_BIG_5 ,"TT_MS_ID_BIG_5" }; m[TT_MS_ID_WANSUNG] = EncodingID_Microsoft{ TT_MS_ID_WANSUNG ,"TT_MS_ID_WANSUNG" }; m[TT_MS_ID_JOHAB] = EncodingID_Microsoft{ TT_MS_ID_JOHAB ,"TT_MS_ID_JOHAB" }; m[TT_MS_ID_UCS_4] = EncodingID_Microsoft{ TT_MS_ID_UCS_4 ,"TT_MS_ID_UCS_4" }; m[TT_MS_ID_GB2312] = EncodingID_Microsoft{ TT_MS_ID_GB2312 ,"TT_MS_ID_GB2312" }; } //TT_PLATFORM_ADOBE void create_encoding_id_Adobe( std::unordered_map<unsigned int, EncodingID_Adobe>& m ) { m[TT_ADOBE_ID_STANDARD] = EncodingID_Adobe{ TT_ADOBE_ID_STANDARD,"TT_ADOBE_ID_STANDARD" }; m[TT_ADOBE_ID_EXPERT] = EncodingID_Adobe{ TT_ADOBE_ID_EXPERT ,"TT_ADOBE_ID_EXPERT " }; m[TT_ADOBE_ID_CUSTOM] = EncodingID_Adobe{ TT_ADOBE_ID_CUSTOM ,"TT_ADOBE_ID_CUSTOM " }; m[TT_ADOBE_ID_LATIN_1] = EncodingID_Adobe{ TT_ADOBE_ID_LATIN_1 ,"TT_ADOBE_ID_LATIN_1 " }; }