We do not store translations data as files. It's all in the database, and fresh files get generated for every export. The msgids from a PO template are represented in a table called POTMsgSet, and a POTMsgSet can be shared by different versions of the same template. Thus individual string translations are, subject to various rules and restrictions, automatically shared between release series of a project, between Ubuntu releases, and where applicable between an upstream project and its Ubuntu packages.
However, the fact that we use a database does not automatically make things easy and efficient. We're dealing with a fair amount of data, with complex relationships. One particular complication for the statistics is that we allow (though we try not to encourage) different versions of one and the same template to use different translations for msgids that they share. Another source of complications is the fact that we support a range of formats that we convert on during export: not all formats have the same data structure where a translation maps English strings to translated strings.
We do not store translations data as files. It's all in the database, and fresh files get generated for every export. The msgids from a PO template are represented in a table called POTMsgSet, and a POTMsgSet can be shared by different versions of the same template. Thus individual string translations are, subject to various rules and restrictions, automatically shared between release series of a project, between Ubuntu releases, and where applicable between an upstream project and its Ubuntu packages.
However, the fact that we use a database does not automatically make things easy and efficient. We're dealing with a fair amount of data, with complex relationships. One particular complication for the statistics is that we allow (though we try not to encourage) different versions of one and the same template to use different translations for msgids that they share. Another source of complications is the fact that we support a range of formats that we convert on during export: not all formats have the same data structure where a translation maps English strings to translated strings.