Today I tried to merge two git branches of a Qt project. Both branches had added some new strings and new translations for them. Now Qt's lupdate tool stores the line number of the source file where the translation is needed in the .ts files. As you can imagine the line numbers are not identical for two branches and when both translation files have been updated, this leads to hundreds of merge conflicts like this, for every single translation file:
<<<<<<< HEAD
+ <location filename="../../src/network/mail/CSmtp.cpp" line="856"/>
=======
+ <location filename="../../src/network/mail/CSmtp.cpp" line="860"/>
>>>>>>> master
You might say just use one of the versions and run lupdate again, but that way you lose all new translations from one of the branches.
Other tools, like gettext, don't not have this problem, since they do not store line numbers.
What are some good approaches to avoid this problem in Qt?