I dig a bit UpdateEntArea to see how to use description from the Text_LS instead of hardcoded ones. So, approach with <%=TXXXX%> actually needs function to get description for caption according to its ID. Something like that (got it from OrbiterGen/OGText.cpp):
Row_Text_LS *CGText::GetText_LS(int PK_Text,OrbiterGenerator *pOrbiterGen)
{
Database_pluto_main *mds = pOrbiterGen->m_spDatabase_pluto_main.get();
Row_Text_LS *pRow_Text_LS = mds->Text_LS_get()->GetRow(PK_Text,pOrbiterGen->m_pRow_Language->PK_Language_get());
if( pRow_Text_LS==NULL )
pRow_Text_LS=mds->Text_LS_get()->GetRow(PK_Text,0);
if( pRow_Text_LS==NULL )
pRow_Text_LS=mds->Text_LS_get()->GetRow(PK_Text,1);
if( pRow_Text_LS==NULL )
{
LoggerWrapper::GetInstance()->Write(LV_CRITICAL,"Warning! Text Object: %d no text",PK_Text);
pRow_Text_LS=mds->Text_LS_get()->GetRow(TEXT_USR_ENTRY_CONST,1); // Generic text object
}
return pRow_Text_LS;
}
As you may see it takes PK_Text and OrbiterGenerator as parameters. OrbiterGenerator is needed to get database handler and language ID used for the specific Orbiter. So, database handler exists in the UpdateEntArea. But I cannot find a way to get used language. Tom, maybe you can have some idea how to do that?