I'm looking at making a Multilingual Drupal-6/Ubercart-2 site for Europe and have hit a few problems in terms of how the i18n module does content translations (i.e. has a parallel node for each language):
1. i18n creates a new node for each language you translate of the product. You can use the i18n_sync to keep the basic product values in sync between the two translations (i.e. sell_price, SKU, image etc) but Attributes, Adjustments and Stock levels can't be sync'ed with this module. This becomes a major data entry problem as it leaves much room for error.
2. The i18n_sync modules allows you to create a list fields to sync by node type. Now if you create product Classes to group your attributes in this means you have to duplicate this array of basic variables for each dynamic product type. Workable if you only have a few types of products but painful. I have suggested a fix.
3. I haven't tried the 'node_import' for products yet but I assume there is no option to import content translations. What about things like stock_levels?
I have looked in these threads but found no solution:
http://www.ubercart.org/forum/internationalization/4246/multiple_languag...
http://www.ubercart.org/forum/support/4758/ubercart_multilingual_site_mu...
http://www.ubercart.org/forum/internationalization/29/translation
http://www.ubercart.org/forum/internationalization/8725/translating_prod...
One solution I was toying with but haven't investigated the feasibility of would be at the theme level have a list of fields to translate (instead of a list of what to synchronise) and then load the default language node, swap the fields to translate in the $content array and then render. I guess this would also require redirecting to the original node. If SKU were used as the ID for a product everywhere in UC and not Node ID then this would work as you'd just have the SKU passed to the 'Add to cart' function...?
Really all we want is to translate the product 'Title' and the 'Description' fields and we're forced to deal with this dreadnought of a translation nightmare. Perhaps I should hack together something that just translates these fields on the fly based on the Locate string. I mean, how hard can that be...? ("famous last words")





