Create output strictly according to the specification for .properties files. This will use escaped Unicode for any non-ASCII characters. Thus the following string found in a PO file:
Will appear as follows in the output .properties file:
Mozilla has made slight adjustments to the Java .properties spec. Mozilla will accept UTF-8 encoded strings in the property file and thus does not need escaped Unicode. Thus the above string – ṽḁḽṻḝ – will not be escaped. Mozilla property files are thus more useful for non-Latin languages in that they are actually readable.
Of course this style of file is only used by Mozilla and should not be used for other projects that follow the Java spec more strictly.
Skype .lang files are .properties files in UTF-16. The & is used as an accelerator (marked in the PO header).
Flex follows the Mozilla approach, a UTF-8 encoded file with no escaped unicode. We include it as its own dialect for ease of use.
Much Mac OS X and iPhone software is translated using .strings files. These are quite different from properties files and we treat them here as key value files.
The files are in UTF-16 with a few minor escaping conventions.