Dnn 5.6.2 has an inbuilt localization system - - u turn on localization in the system settings and setup the language template for the new language - in the language section. If the localization skin object is on your skin it will become active and show flages or a dropdown depending on what you have set.
There is some good info on the system here http://www.dotnetnuke.com/Resources/LanguagePacks/tabid/933/Default.aspx
As for how to implement multiple flags and such - once localization is active - it would be easy to setup your own flag buttons as links instead of using the default skin object,
Its really just a matter of making the flag link back to the same page with a Language parameter.
Say for example you are on you HOME page:
www.dnnwerk.de/Home/tabid/38/Language/de-DE/Default.aspx
A link click on that page that does this
www.dnnwerk.de/Home/tabid/38/Language/de-DE/Default.aspx would change to german version
www.dnnwerk.de/Home/tabid/38/Language/de-DE/Default.aspx would change to english version
Would be relatively easy with a couple of lines of Javascript to set the flag links appropriately at run time yourself.
As for the menu - well - where to start on that one I guess.
While the dnn menu is very functional working with it can be somewhat of an arcane art.
There are a couple of 3rd part menus that may provide a better starting place:
http://dnn-menu.com/help/GetStarted.aspx --- free and one of the nicer experience that the core
The other option and maybe the better one long term is DDRMenu
http://www.dnngarden.com/
- which is also great AND has one major bonus up its sleeve.
When DNN 6.0 is released it will come with DDRMenu installed by default as the new core menu system.
Both work with template based systems and have a good set of examples
Westa