スポンサーリンク

FreeType2でフォントファイルのSFNT Nameを読んでフォント名などを取り出す(2)

SFNT Nameを調べるために作ったテーブルをせっかくなのでおいておく。

main.cpp

#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("");



}

disp-sfnt-name.hpp

#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 " };
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: