 |
Polyglot is an open source project for a command line tool (called, predictably, "polyglot"). It is intended to help developers manage applications that contain many localizations. Some of Stick Software's products are localized for more than 10 languages, which makes for a complicated task of verifying the correctness of all of the localizations for each release. Polyglot helps with this by examining a built application and generating warnings about any discrepancies it sees. It should be usable as part of the build process in Project Builder, in order to automate this checking with every build. (We have not figured out how to make Project Builder do this, however; adding build phases seems to be disabled in our copy of PB).
Polyglot can do a number of different checks (and while here we say "English.lproj" for simplicity, it should be noted that the baseline language may be specified with a command line option to polyglot):
- It will warn you if a file is in your English.lproj but not in some other localization.
- It will warn you if a file is in some other localization, but not in your English.lproj.
- It will check that each file has actually been changed from the English version in other localizations (by comparing contents, for flat files and nibs, or by comparing total sizes, for directories).
- For strings files, it will check that the number of strings defined is the same in every localization and that all of the keys defined are the same.
- It will (optionally) check, for strings files, that the value of every key has been changed from the English version in other localizations (i.e. that every string was actually localized).
- For nibs, it will (optionally) do various checks on the format of the nib (pre-10.2 format, 10.2 format, or mixed), ensuring they are in the format you desire, and match the baseline format.
- It will check that .scriptTerminology files have not been localized, as per Apple policy at this time.
Polyglot also contains options to allow the localizations in built applications to be "optimized":
- It can strip out the parts of nibs that are not needed at runtime, to produce smaller nibs that are not user-editable (which might be considered a good thing or a bad thing).
- It can strip out extraneous information such as comments from strings files, and output them in a form that is smaller and faster to load.
Typical savings for applications can be significant, and since it is the built application that is stripped, your source nibs and strings files can remain unstripped for greater readability and usability, while your end users receive an application of minimal size.
Polyglot is open source. However, it is not public domain; Polyglot is copyright © 2003 Stick Software. It is governed by an open source license called the Artistic License, which is intended to allow others reasonable freedom in using and modifying the sources, while allowing Stick Software to retain creative control over the project. If you intend to use or modify the source code for Polyglot, you must read and follow the license. To join in the development effort to improve Polyglot, please surf to Polyglot's project page on SourceForge.
A few useful links:
This project is hosted by SourceForge, the world's largest Open Source software development web site.
|
 |