I have been working with the internationalization of a website that I am building and while researching the various issues with i18n I notice that there is what I believe is an inconsistency with the database design, particularly the relation of some tables and the fact that some have columns for language & tnid and others the language is a variable in the menu_links "options" column.

I have been looking at the menu_links table and the language tables and I have noticed that the language table has a formula column that relates two different nodes in order to provide the various languages, though, I notice that the menu_links table has no column for language? The setting for the language is in a column called 'options'. This does not make any sense to me at all, and is very inconsistent as well as messy in my database.

In the node table there is a column for "language" and "tnid", tnid I assume has to do with translatable, I notice that the menu links table does not have these columns and that makes no sense to me at all. This I believe is causing many issues with translating menus and results in many hacks being created and the resulting confusion.

On the menu translation issue there are scads of issues relating to menu links, not showing up, showing up in the wrong language etc. It would make more sense to me to relate the menu_links in the same fashion that the node table and language table do.

Does this make any sense to anyone else?

I have checked the drupal 7 tables and the issue continues on there as well.

Of course I could just be an idiot that has spent 2 years of my life trying to use drupal.

Comments

kewlguy’s picture

DOH! A better place for this post would have been to the drupal GROUPS!

OUCH!, Me so sorry for messing with your time here in the issues!

kewlguy’s picture

Status: Active » Closed (fixed)