Entities are quite convenient, but they are a nightmare for translation. What if we resolved entities the same way we will be resolving conditional statements, before the payload is generated or the strings are sent to Zanata? This would enable ECS use of entities while alleviating the downsides of entities.
Added in 1.3-SNAPSHOT build 201311211258
When pushing to Zanata the Topic XML is now processed to resolve any custom entities that are defined in the Content Spec "Entities" meta data. When syncing the same logic is applied to the XML before the sync is performed to ensure that the source strings match.
A new field on the TranslatedTopic table has been added to store the custom entities, this means that like conditions, it makes it easy to see what was resolved for the topic from it's base content. It also means that there is a lot less rest calls that are required to be made to find out the original content spec information (3 per topic to be precise).
Custom entities in the Abstract of a content spec are not preprocessed when sent to Zanata e.g. an abstact of
Abstract = <para>&TEST;</para>
Appears in Zanata as
The above was using CSProcessor client version: 1.3-SNAPSHOT, Build 201311251152
Fixed in 1.3-SNAPSHOT build 201311290923
The content spec metadata wasn't being processed at all, so only topics where getting their custom entities resolved. Now all the translatable metadata nodes are processed to resolve any entities before being sent to Zanata.
Tested a push of a spec with custom entities used by the abstract and subtitle, as well as topics that used the entities. All entities were replaced with text in Zanata.
relevant content from a docs perspective noted in topic 25747