I'm currently working on Blog-Software which should offer support for content in multiple languages.
I'm thinking of a way to design my database (MySQL). My first thought was the following:
- Every entry is stored in a table (lets call it
entries
). This table holds information which doesn't change (like the unique ID, if it's published or not and the post-type). - Another table (let's call it
content
) contains the strings (like the content, the headline, the date, and author of the specific language). - They are then joined by the unique entry-id.
The idea of this is that one article can be translated into multiple other languages, but it doesn't need to be. If there is no translation in the native language of the user (determined by his IP or something), he sees the standard language (which would be English).
For me this sounds like a simple multilingual database and I'm sure there is a design pattern for this. Sadly, I didn't find any.
If there is no pattern, how would you go about realizing this? Any input is greatly appreciated.