MySQL database development with internationalization

I am going to start work on a medium application and I am planning its db design. The only thing I'm not sure about. I will have many tables that will require internationalization, such as: "membership_options, gender_options, language_options, etc."

Each of these tables will share common i18n fields, for example: "title, alternative_title, short_description, description"

In your opinion, what is the best way to do this? Is there an i18n table with the same fields for each table they need?

or do something like:

Membership table     Gender table
----------------     --------------
id | created_at       id | created_at
1  -  22.03.2001       1 - 14.08.2002
2  -  22.03.2001       2 - 14.08.2002


General translation table
-------------------------
record_id | table_name | string_name | alternative_title| .... |id_language
 1        - membership   regular         null                     1 (english)
 1        - membership   normale         null                     2 (italian)
 1        - gender       man             null                     1(english)
 1        -gender        uomo           null                      2(italian)

This would allow me not to repeat something like:

membership_translation table
-----------------------------
membership_id | name | alternative_title | id_lang
1               regular  null             1
1               normale  null             2

gender_translation table
-----------------------------
gender_id | name | alternative_title | id_lang
1           man     null                1
1           uomo    null                2

.., , , db, . , , , .

+5
2

, , membership membership_ml, ml, . . , , , , _ml- .

, , . , , , "" . , - RI , .

, ( , ).

+4

All Articles