Language subfolder bug - default domain points to /en

Hi Shopify,

it seems a bug been introduced today where the links on a default domain of a store all incorrectly point to the English subfolder. Notably, Shopify.routes.root also reflects this error:

Example data:

Shopify.locale = “ja”;

Shopify.country = “JP”;

Shopify.routes.root = “/en/”;

Unfortunately, I have not been able to reproduce this issue on my development store, but we’re getting a high amount of reports on this issue from our merchants.

Could you kindly look into this? In case you need any further information, please let me know.

Best Regards,

Vera

Hello togehter, we have the same problem today.

Is there already a solution? No matter what language I select - If I click somewhere in the menu, I am on the English translation.

BR Jochen - eaglefit.de

I can confirm as well, that it’s not only the default language that’s affected, but really any selected language is forced to /en

I can confirm we have the same problem with our shop.

Same for us. Hoping for a quick solution.

same over here. Everything redirected to /en

My client has the same issue

Same issue here since today, on a store with Romanian as the default language (Romania market: / = Romanian, /en = English; separate EU market on /en-eu).

For any visitor without a saved localization, the Romanian pages render with the English root:

Shopify.locale = "ro";
Shopify.routes.root = "/en/";

routes.root_url in Liquid returns /en too, so every link on the Romanian pages (menus, product cards, logo, cart forms) points to /en/.... Returning visitors with an existing session and theme previews (?preview_theme_id=) render correctly with /. It was fine on 25 Sep, and no theme or Markets changes were made since. Turning off “Automatic redirection → Language” doesn’t help.

We’re also contacting Shopify Support. As a stopgap we added a small theme script that, only when request.locale is the default language and routes.root_url != '/', strips the /en prefix from links, forms and Shopify.routes.root. Happy to share it if it helps anyone.

@Shopify, could someone confirm this is being looked at?

We are having the same problem: everything redirected to /en. Hoping for a quick solution from Shopify.

same issue for all our clients!

Same issue here - I had a chat with the support team just now, and they are working on a fix.

We’re seeing this across multiple merchants as well.

From what we’re seeing, the issue is not the initial language selection itself, but that during storefront navigation Shopify is generating the next links with the wrong language path, which sends buyers back to English

It would be greatly appreciated if someone from Shopify could keep this thread updated once a fix is being deployed or has been fully rolled out, since multiple partners and merchants are currently tracking it here cc @Liam-Shopify

Apart from that, if any merchant or partner currently using Orbe Geolocation, enabling Redirect based on language preference can help mitigate the impact on users while Shopify works on a fix

+1 on this bug - we’re seeing it on all our stores.

Shopify.locale = “fr”;
Shopify.country = “CA”;
Shopify.routes.root = “/en-ca/”;

We are also experiencing this issue for several of our merchants.

Same on all of our stores as well.

Tracking this thread :eyes:

Hi,

Same here, we’re reproducing this issue on all of our clients’ stores using language subfolders (agency side, several multi-language Markets setups).

Our observations match what @senabre described: the initial language resolves correctly, but links generated during navigation point to the /en path, so buyers get sent back to English.

+1 on keeping this thread updated once a fix is being rolled out. Happy to share store URLs privately with the Shopify team if it helps the investigation. cc @Liam-Shopify

Experiencing this with all our multilingual setups for 7h+ now. Honestly unacceptable - even more so the response from Shopify so far.

For everyone in desperate need for a workaround:

Capture your theme’s body, check for the default language (in my case “de”), in that case, make a dirty replace of “/en/” to → “/”.

{% endcapture %}
<body>
...
</body>
{% endcapture %}
  {% if localization.language.iso_code == "de" %}
    {{- body_html | replace: "/en/", "/" -}}
  {% else %}
    {{- body_html -}}
{% endif %}

This can break things, but is still better than not having a storefront - lol.

A fix is currently being deployed, estimate is another ~1-2 hour for it to be out across all merchants.