title: Best practice: How to name i18n translation strings
body: <p>I am building a multilingual site using <code>django</code>. I am wondering what is the best practice for naming the strings in <code>gettext</code> functions.</p>
  
  <p>I see the following possibilities:</p>
  
  <ol>
  <li><p>Use English words and Translator comments</p>
  
  <pre><code># Translators: This is the login button text
  login = ugettext('Login')
  </code></pre>
  
  <p>Here I see the problem, that I will end up using <a href="https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#contextual-markers" rel="nofollow"><code>pgettext</code></a> most of the time to specify the context. </p></li>
  <li><p>Use some kind of unique identifier and Translator comments</p>
  
  <pre><code># Translators: This is the login button text
  login = ugettext('login_view_buttontext')
  </code></pre>
  
  <p>Is there some kind of naming convention? This one has the obvious downside during development. </p></li>
  </ol>