title: C# string translation
body: <p><strong>Does <code>C#</code> offer a way to translate strings on-the-fly or something similiar?</strong></p>
  
  <p><em>I'm now working on some legacy code, which has some parts like this:</em></p>
  
  <pre><code>section.AddParagraph(String.Format("Premise: {0}", currentReport.Tenant.Code));
  section.AddParagraph(String.Format("Description: {0}", currentReport.Tenant.Name));
  
  section.AddParagraph();
  
  section.AddParagraph(String.Format("Issued: #{0:D5}", currentReport.Id));
  section.AddParagraph(String.Format("Date: {0}", currentReport.Timestamp.ToString(
                       "dd MMM yyyy", CultureInfo.InvariantCulture)));
  section.AddParagraph(String.Format("Time: {0:HH:mm}", currentReport.Timestamp));
  </code></pre>
  
  <p>So, I want to implement the <strong>translation</strong> of these strings on-the-fly based on some substitution table <em>(for example, as <code>Qt</code> does).</em></p>
  
  <ul>
  <li><strong>Is this possible (probably, using something what <code>C#</code> already has or using some post-processing - may be possible with <code>PostSharp</code>)?</strong></li>
  <li>Does some generic internalization approach for applications built with <code>C#</code> <em>(from scratch)</em> exist?</li>
  </ul>