03/19: Changes and Features

March 19, 2010

It’s about time to post an update on my recent work in the Localization Suite. Lately, I have been implementing a major architectural change that we very long overdue: Switching the database files to a bundle-based format. Here’s the details:

Bundle-based documents: The previous file format of the databases (the files you edit in the Manager, suffix .ldb) was a keyed archived file. The problems are obvious: as it’s binary, no diffs can be made for version control system, all contents have to be uploaded on every commit and one cannot have a look inside. Additionally, if you wanted to store extra files (like backups of the reference language files needed for incremental localization), they would have to be encoded and stored inside this archived object tree, unnecessarily increasing file size.
This is different now: storing the projects as bundles allows the file to separate the actual contents (like objects, indexes, data) from the auxiliary information like backups or attachments (see later). This format is somewhat like the already present Localizer bundle format, where these things were already kept separate.

File versions: One major drawback of the old format was that only one version of backed-up files could be stored. This is very problematic for incremental localization, where you need the exact old reference file for each language variant. When now two localized files are based on different versions of the reference file, we have to store the backups for both versions. This is now possible in the current file format, resulting in much better results of “Synchronize”.

Attachments: Now that the file format allows auxiliary files to be stored separately, it is also possible to have additional information persisted. A long-requested feature was the ability to attach additional media files to key object. These could be for example images of strings being used in context. Imagine having a progress sheet where the status text is loaded dynamically. Currently, the context was only able to be conveyed using comments describing where and how it’s used. However, in some applications not only the context, but also the sizing is important — take the iPhone. You’re now able to attach a screen shot to the key objects for the displayed strings, allowing the translator to get a better view on how it will be used and how much space he or she has.

All these features are available in the current nightly build. So much for today, read you soon.

Fatal error: Call to undefined function the_flattr_permalink() in /home/wordcrafts/sites/www.loc-suite.org/public_html/blog/wp-content/themes/locsuite/single.php on line 26