I don't use Structure that much so here is the process and add-ons I use to develop multilingual sites in EE in case someone is looking for an alternative:
Language Framework:
I usually use Biber Multi Language Support for this although I will probably be trying Transcribe on my next project. In the case of Biber it will allow you to define your languages and appends the languages' two character ISO code to your URL, Example: "http://example.com/es/". The language code is then also available as an early parsed variable {language_code}
which you can use in your entries tags. Biber also includes the option to include static content variables for bits of text that you would not put into a channel (more on that below).
Channel Content:
I first define what channel content will be "mirrored" (content will be translated 1-to-1 in all languages) and which is not. From here I begin to plan out channels and field types.
If I know the content will be mirrored, I will create one channel for it and assign a field group to it that has separate text fields for each language. To avoid confusion for the content editor I usually group these fields in a tab for each language in the edit form, separating them from any non-language specific fields in that channel as well. The naming convention for fields I use would be, as an example: "product_summary_xx" with the "xx" part being the two letter ISO language code for that language. In your template you would then call the appropriate language field in your entries tag with the name of the field and the language variable : {product_summary_{language_code}}
If the content will be different for each language, I will create a channel for each language and then assign 1 field group with the text fields necessary to all the language channels. The naming convention for the channel would then be for example: "products_xx", again with the "xx" being the language code. To call the correct language channel in the entries tag you would then use something like this: {exp:channel:entries channel='products_{language_code}' ...}
Static Content
Static content that needs to be in multiple languages (i.e.; "Send", "Your Name", "Back", etc... basically all the bits of static texts included in your templates).
Depending on the complexity, and necessary access to the content editor of this data, I will usually use a combination of the following Add-ons:
Low Variables - If the project has content that will need to be editable by the client but it does not warrant a channel all to it's self, I will usually use Low Variables to group the multilingual semi-static data here by language, again to prevent confusion. Since you can specify early parse orders on variables you can also setup date, and number formatting strings for each language as well here. Again, the naming convention for these variables would be something like "lv_home_intro_xx" and you would call the correct language in your template like so: {lv_home_intro_{language_code}}
Biber Multi Language Support - For all remaining static texts that the client does not need to be meddling with, I use Biber's functionality for static multilingual phrases and close it off for only Super Admins and any higher level Member groups that would require access to it or member groups for translators. To output in the correct language in your templates you don't need to worry about the language code here, just the Biber variable name : {bbr-mls-special_offers}
Navigation
For creating multiple language navigation schemes I have been using Navee to create separate ones for each language. The interface is pretty intuitive which is great when you need to allow your client access to it. Creating separate navigation menus will also cover you if the site requires non-mirrored content in the navigation. You then would use the {language_code}
variable again to call the correct navigation menu in your template. Example: {exp:navee nav_title='main_navigation_{language_code}'}
For language switching, the Biber add-on includes tags to output a language switcher and listings of all current languages that you can iterate through if you want to create your own markup for it.