Locales used by Zanata and Publican can be slightly different. BZ#1072685 lists some of the mappings. This information should be captured in the entities config so there is a single place to manage and find which locale has which code when used in these different contexts.
With this we need to take into account that multiple different translation/build systems might have different mappings.
Actually just noticed, this information shouldn't be captured in Entities.properties as that is exclusively for mapping entity id's. It should either go in it's own file or application.properties.
The core of this work has been done in 1.9-SNAPSHOT build 201408171956. The missing component is the mappings for multiple different translation/build systems. There is now a Locale table that has a "value", "translationValue" and "buildValue". All references to the old locale strings are migrated to use the new table when the 1.9 is first started (it's part of the liquibase update mechanism). The locales are still returned as part of the server settings, but they also have the following new REST endpoints: GET /1/locale/get/json/{id} POST /1/locale/update/json/{id} POST /1/locale/create/json/{id} GET /1/locales/get/json POST /1/locales/update/json POST /1/locales/create/json