Which normalization rule violates the column-per-language approach? I've got the following table, which can store a title and content in German and English. I wonder, which normalization rule it violates?



I started going through the rules and stopped at NF2:


NF1: It's atomic.
NF2: Probably it breaks this rule, because the title and content are not directly dependent on the primary key. They depend on a key in the column name.


Is it correct, that this is against the NF2?
I would classify it as breaking NF2.  The language dependent columns are dependent on the Primary key and the Language.  I normally model these in a child table keyed on the Primary key of the parent table, and a language code (integer or ISO language code). 

The disadvantage of having a child table is that it is difficult to ensure all the languages are provided.  This can be an advantage as you can save the record before you have all translations available.  In some cases, I have used language preferences to retrieve the best (by preference) alternate language for the description.  (HTTP has a header that allows language preferences to be specified.)