title: How to get localized punctuation rules in .NET?
body: <p>The .NET Framework has a wide variety of classes to handle culture-specific concerns such as numbers or dates formatting. I was wondering if there was such thing for punctuation.</p>
  
  <p>For example, in English a <code>:</code> is located right after the word it follows like in</p>
  
  <blockquote>
    <p>Example:</p>
  </blockquote>
  
  <p>In French, however, it will be</p>
  
  <blockquote>
    <p>Exemple :</p>
  </blockquote>
  
  <p>Most European languages use <code>.</code> to mark the end of a sentence. But in Chinese, it is <code>。</code>. Same for the quoting characters that may vary from one language to another. I had good hope to find something in the <code>TextInfo</code> class or in the <code>System.Globalization</code> namespace but no luck.</p>
  
  <p>So I was wondering if such a thing exists natively in the .NET Framework or if there was any third-party library hidden somewhere that was dealing with this kind of problems. I couldn't find any. I am using C# 4.0 but I guess the problem is the same for all the languages supported in .NET.</p>
  
  <p>FYI, I encountered this problem while I wanted to display some culture-independent strings followed by some numeric information like in the following:</p>
  
  <pre><code>string.Format("{0}: {1}", this.nameOfAGuy, this.quantityAssociatedWithTheGuy);
  </code></pre>
  
  <p>which is ok in English but not in French.</p>