When I'm browsing the normal pages, I can see that the language part of the url (http://mysite/sv/anypage/) gets picked up from examining Thread.CurrentThread.CultureCulture (sv-SE).
However in the product page links that I retrieve from ResolveUrl(StoreHelper.GetEntryUrl((Entry)Container.DataItem)), there are no /sv/ part of the url. If I go to a product page and add /se to it, like this:
I can't see anywhere that the sv-SE has been picked up. It's only en-US.
Here's what logging tells me:
 2012-05-10 16:36:17,893  DEBUG EPiServer.Web.UrlRewriteModuleBase [(null)] - Starting request with Url http://localhost:17000/sv/Canon-PowerShot-Pro-Series-S5-IS-80MP-Digital-Camera-with-12x-Optical-Image-Stabilized-Zoom.aspx  2012-05-10 16:36:17,900  DEBUG EPiServer.Web.UrlRewriteModule [(null)] - Returning URL http://localhost:17000/Templates/MyProject/Pages/Product.aspx?ec=013803079616&id=9__CatalogPageProvider&epslanguage=EN-US as PageReference http://localhost:17000/Templates/MyProject/Pages/Product.aspx?ec=013803079616&id=9__CatalogPageProvider&epslanguage=EN-US  2012-05-10 16:36:17,901  DEBUG EPiServer.Web.UrlRewriteModuleBase [(null)] - 17.1.3 UrlRewriteModule rewrites from 'http://localhost:17000/sv/Canon-PowerShot-Pro-Series-S5-IS-80MP-Digital-Camera-with-12x-Optical-Image-Stabilized-Zoom.aspx' to 'http://localhost:17000/Templates/MyProject/Pages/Product.aspx?ec=013803079616&id=9__CatalogPageProvider&epslanguage=EN-US'
What should I do to get the Product page to work with languages?
Which version of EPiServer Commerce do you have installed?
5.2 build 377
It is highly recommended, if possible, that you upgrade to Commerce 1.0 R2 SP2 as it contains fixes for multi-language product page URLs.
I have now upgraded to Commerce 1.0 R2 SP2 and the issue is still the same.
It also seems that if I'm on localhost:17000/es-ES/Product-Listing all the links (except product links) goes to localhost:17000:/en-US/Product-Listing.
The product links doesn't get any language prefix.
If I add the following code to ProductListing the links (except product links) keep the current language code:
protected override void InitializeCulture()
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
There url for the product detail page is mainted in the url of the seo tab of the product. If you use the same url you will need to set the current ui cultire like u have above.
Sorry, but I don't understand how it's supposed to work. How should I create links to the product pages and how do I get the content there localized?
You need to set the seo url on the seo tab of the product / sku as explaned here
If you want to test the lanaguage then either switch the Thread.CurrentThread.CurrentUICulture or create a new seo url for each lanaguage of the product