title: What's the best way to add i18n to a web application?
body: <p>I'm looking to i18n-ize a web app. The site will be constantly changing: text will be rewritten, new stuff added etc. The web app is written in PHP, but the same applies to any language.</p>
  
  <p>Basically I want: </p>
  
  <p>1) The code to be readable and maintainable
  2) Translators to be sent an email when new stuff is added in English OR the English is changed 
  3) To know whether something is up-to-date or not.
  4) Translators be able to update things online</p>
  
  <p>I guess the best idea is to store everything in a database and handle things that way rtaher than PO files and gettext. But what's the best way:</p>
  
  <p>$lang('contactus') has the disadvantage of being unreadable (code-wise), and slower to develop (as all English needs to be given a unique key and stored in the database)</p>
  
  <p>$lang('Please contact us for more information') is readable and quicker, but if the English changes (typo, grammar edit, updated) then the translation disappears entirely.</p>
  
  <p>How do other apps/frameworks handle it?</p>