Well, this looks like it is going into the discussion direction, but I will chip in my thoughts on this anyhow.
We are also right now in the process of thinking about on how to best turn an EE and CT powered ecommerce into a multi-language site.
I believe to have researched all apporoaches out there and at the moment I tend to devide the sites in different langauges from each other - completly. No MSM, no multi-language Module.
Why? I have the feeling that all solutions will turn into a thick impenetrable bushwork eventually. Of course it depends on the piloted size of the site and the desired amount of different languages. I am aiming pretty high at the moment and want to find a solution in which I can easily say at any time: we need another language? No problemo!
I have also bought and looked at Publisher which looks like a really good, extensive and profound solution to me, also having a workflow solution on board which could come in handy if content for articles will be entered and edited by a team (this feature can also be activated by itself).
So, like I said I think it can become tricky and tedious in the long run to maintain all different language versions. Sure, the CP is no problem. All the channel entries can also be managed good with Publisher, Phrases and the such with Low Variables. At the moment I am not sure on how to handle (client/visitor) error messages the best. I also believe that running a webiste in another language, especially an ecommerce site should be hosted at a native url for best Google/SEO results. Also think about the Google Shopping Feeds that need to be targeted specifically for each language/country you want to operate in. What about User Comments/Ratings? How to best handle those for each language? What about product(images)? Maybe you want to show explanatory text IN the image or as a title underneath the picture.
And I also believe that - let's say a customer from France is always more compelled to click on a link like domain.fr than on a domain like domain.com/fr or even worse (like in our case) domain.de/fr.
Also this hard-seperation-approach will give you the opportunity to target products/bundles whatever tailored to a countries audience. Maybe you have products that just don't or can't be selled in a country (eg by law). You couldn't simply set an entry to closed.
And if you are going the whole nine yards it would probably a good consideration to also seperate the sites serverwise. This would distribute the risk of downtimes or worse.
Oh, there is another caveat: I haven't found a smart way to deliver language specific purchase and product shipped email notifications for example.
Yup, that's pretty much it at the moment. I am aware that this approach comes with doubled licence and probably servercosts and with more work probaly too. Using Focus Labs Master Config and Git should cut down on the workload, though.