If your using gettext in an svn environment, you probably have had the following problem: You and your colleague add some code and some translations. Now you check in your work. What will happen is that the last one o the two who checked in has a major problem. He has a conflict in the po and mo, as they differ. But his mo and po are also completely wrong, as they are based on a now old version of your application. To make things worse, subversion does an extremely bad job in resolving this, as it tries to juggle the three versions.
Luckally I added something to the latest version of my gettext generators plugin: the svnmerge rake task. It works as follows:
rake gettext:pomerge FOLDER=/po/nl-NL/ APP=moves VER1=mine VER2=r318
What this does is create a new po and mo file so that they reflect you current mess. It then fills the new po translation with translations coming from the two conflicting versions (the mine and the r.318) in this example. It does this by using msgmerge in a smart way (so you need msgmerge for this).
After this is done, mark your po, pot and mo as resolved, run rake gettext:makemo and check your source in with a smile.
This was brought to you live from the lounge of Railsconf europe 2007 :).