title: Workflow / best practices for XLIFF
body: <p>I am using a command line tool (<code>ng-xi18n</code>) to extract the i18n strings from an angular 2 app I wrote. The output of this command is a <code>messages.xlf</code> file. Coming from a <code>.po</code> background, and being not familiar with <code>.xlf</code>, I assumed that this file is the equivalent to the <code>.pot</code> file (correct me if I am wrong).</p>
  
  <p>I then assumed that if I want to translate my app, I had to <code>cp messages.xlf messages.de.xlf</code> to have a copy (<code>messages.de.xlf</code>) of the template file (<code>messages.xlf</code>) where I can translate each message into German (hence the <code>.de.xlf</code>).</p>
  
  <p>After translating some dummy texts and running the app, I saw that it worked as expected, so I quit translating and continued developing the app. After some time, I added more i18n strings, and eventually thought that I had to update my template. And this is where things got hardly maintainable. I updated the template <code>messages.xlf</code> file, and quickly was wondering how I could update the new strings to my already translated <code>messages.de.xlf</code> file without loosing my progress. </p>
  
  <p>When I was developing using <code>.po</code> files, this was no problem thanks to good tools like poEdit, but I didn't find anything comparable for <code>.xlf</code>. After trying some tools, I thought that the best choice would be Lokalize, but I didn't find a possibility to merge the template file to already translated (but outdated) files either. </p>
  
  <hr>
  
  <p>Up to now, this was rather an essay than a question, so here's a quick summary:</p>
  
  <ul>
  <li>Is the workflow of dealing with <code>.xlf</code> files really comparable to <code>.po</code> as I initially thought (described above), or is it completely different?</li>
  <li>How am I suppose to update my already translated files?</li>
  <li>What are the best practices dealing with <code>.xlf</code> files?</li>
  <li>What are proof of concept tools to work with <code>.xlf</code>?</li>
  </ul>
  
  <hr>
  
  <p>Sidenotes:</p>
  
  <ul>
  <li>The Lokalize handbook was not helpful at all. I see a lot of functions that sound promising, like:
  
  <ul>
  <li>"File" > "Update file from template". I did not find anything in the handbook to explain this function. If I click on this, nothing happens.</li>
  <li>"Sync" > "Open file for sync/merge". This seems to be a function to merge two similar files (by multiple translators) rather than a tool to update the translation file from a template. Even though there is a tooltip in Lokalize's primary sync tab, notifying me about "x unmatched entries", I just couldn't find anything to append those unmatched entries to my <code>.de.xlf</code> file.</li>
  <li><strong>[Update]</strong> Turns out, I had similar issues as in <a href="https://askubuntu.com/questions/806053/lokalize-does-not-work-well-in-ubuntu-16-04">this question</a>. After downgrading my version of Lokalize to the suggested one, many issues (including the ones mentioned in the question) disappeared. However, now the "Update file from template" option is greyed out, and I don't know why.</li>
  </ul></li>
  <li>I also tried OmegaT, which does not work at all on my platform (Ubuntu 16.04).</li>
  <li><strong>[Update]</strong> Virtaal works great for merging new strings from a template, but the UI in general is very poorly designed...</li>
  <li>Googling did not help, as every hit seems to be related to XCode or something. </li>
  </ul>
  
  <hr>
  
  <p>Thanks for any help in advance, I really appreciate it</p>