Dealing with multilingual

I am wondering how you guys deal with multiple languages. As an example we can get the sec_groups table generated by Security Module. The group names are created upon running the module first time. Obviously only 2 groups are created and we can add more. Even with the two: REGISTERED, ADMINISTRATOR one might need to add other languages to the project, right ? When we add another language these groups remain the same and if the word “REGISTERED” sound dofferent in another language the user might not understand it.
I see two options here:

  1. add column Language and populate it with multiple entries for the same group, while having different language i.e.
    2,registered,EN
    5,zarejestrowany,PL
    7,registrada, SP
    etc
    then filter the group list always based on the language
    this however complexity of dealing with the group ID upon working with App permissions (altrhough it is doable).

  2. addin extra columns to the sec_groups, ie.e
    GroupID,Decription,Language1, Language2, Language3,…and so on…

This allows to keep only one set of group IDs but practically limits number of columns for the language.
If there are less than (say) 12 languages this should work OK, but if one needs 60 or 100 this table would be insanely big.

For all other cases when I need to show data from so called lookup tables (ie. selection drop-downs) I usually use the 1-st method. I wonder however how to translate security groups and I would like to see if anybody has implented any other solutions. Scriptcase translation and claim it can deal with multiple languages is very overhyped and there is lots of limitations (not to mention the character sets).

How you people deal with this ?