How to use xliff or po l10n file formats in .net (C#/ASP.Net) development

You could also consider the i18n package by Daniel Crenna, available from nuGet. It uses PO files as its default store for localized text.


PO and XLIFF files usually work differently:

  • PO files are resource files that get complied into a binary format and then accessed using gettext() libraries. Sometimes PO is used as an extraction format like XLIFF, but that is not its original purpose.

  • XLIFF are extraction files that get created by extracting your resource file (e.g. resx) into XLIFF, and then merged back into the original format.

so for XLIFF you should be looking for a tools doing resx -> xliff -> resx rather than xlif -> resx.

The tools that extract/merge XLIFF files are usually called filters. There are quite a few commercial translation tools that will accept XLIFF, and some that can also create XLIFF (Swordfish, Trados Studio, etc.).

There are also a few open-source tools that can extract/merge XLIFF: File2XLIFF4j for example (but I don't think it supports resx).

Rainbow, from the Okapi project, does support resx. The "old" .net version (Rainbow 5: Okapi on SourceForge) has a filter dedicated to resx file and can handle them very well; even with binary data. It may run into problem with third party controls though (See http://okapi.sourceforge.net/Release/Filters/Help/netres.htm for details).

The new java version (Rainbow 6: http://code.google.com/p/okapi/) support resx through its XML filter and works fine with simple resx, but if you have binary data in them the text in those entries will not be extracted.

-ys