title: How to support Multi-Languages approach in DataBase Schema?
body: <p><strong>I want my database to support multi Languages for all text values in its tables.</strong></p>
  
  <p>So what is the best approach to do that?.</p>
  
  <p><strong><em>Edit1::</em></strong></p>
  
  <blockquote>
    <p>E.G.</p>
    
    <p>I've this "Person" table:</p>
  </blockquote>
  
  <pre><code>ID int
  FirstName  nvarchar(20)
  LastName   nvarchar(20)
  Notes      nvarchar(max)
  BirthDate  date
  ...........
  </code></pre>
  
  <p>So if i want my program to support new language "let say French".</p>
  
  <p>should i add new column every time i add new language ?
  So my "Person" table will look like this</p>
  
  <pre><code>ID int
  FirstName_en  nvarchar(20)
  FirstName_fr  nvarchar(20)
  LastName_en   nvarchar(20)
  LastName_fr   nvarchar(20)
  Notes_en      nvarchar(max)
  Notes_fr      nvarchar(max)
  BirthDate     date
  ...........
  </code></pre>
  
  <p><strong>Or should i add 2 new tables one for languages and other for "Person_Languages" values ?</strong></p>
  
  <p>So this will look like :
  " <strong><em>Languages</em></strong> " table:</p>
  
  <pre><code>ID           int
  Lang-symbol  nvarchar(4)
  </code></pre>
  
  <p>" <strong><em>Person</em></strong> " Table:</p>
  
  <pre><code>ID         int
  BirthDate  Date
  </code></pre>
  
  <p>and finally " <strong><em>Person_Translation</em></strong> " table:</p>
  
  <pre><code>LangID        int
  PersonID      int
  Translation   nvarchar(max)
  </code></pre>
  
  <h2>Or there is something better ??</h2>
  
  <p>.</p>