Translation is not Localization – Multi Country E-Commerce Tips

Translation is not Localization – Multi Country E-Commerce Tips

In our latest video tutorial, besides rocking my MailChimp shirt, I explain how to properly think about multi country and multi language E-Commerce setups. These tips can be applied to any E-Commerce solution, not just Magento.

I noticed many people think about multi-country set-up as a translation job, which is a completely wrong way of looking at it. Find out more in the video below:

And here is the promised link to the study.

Related Inchoo Services

You made it all the way down here so you must have enjoyed this post! You may also like:

Magento 2 SEO Expert Advice Straight To Your Fingertips Lucija Majstrovic
, | 3

Magento 2 SEO Expert Advice Straight To Your Fingertips

What Is Link Building: Link Building Basics 101 Davorin Cernoga
Davorin Cernoga, | 6

What Is Link Building: Link Building Basics 101

How accurate is fresh data in Search Console reports? Davorin Cernoga
Davorin Cernoga, | 1

How accurate is fresh data in Search Console reports?

14 comments

  1. I love your vidoes. Maybe you can do one on good localization tools exclusively. I am using https://poeditor.com/ and find it really nice and simple to use. There are plenty of tools on the market, and a comparison between them would be really helpful for translators and developers alike. Thanks!

  2. Hi,

    I solve this bug and work fine, but … but not completely.

    in my instalation:

    1 data base
    1 domain.com with 3 translations es, en, pt
    2 territorial domais, domain.es and domain.pt

    the territorial domais ever have store code and there is no a clear solution to hide this code.

  3. Hi Toni,

    I try to edit change my store codes via to Manage Shops panel and ever have the same error:

    The store code may contain only letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter

    You know how solve this?

    thanks!!

  4. Hi Mike,

    A newie question, if i change my actual urls for our recomendation, i lose my position in searchers?

  5. @Turko

    I agree, in fact that is what I said 😉

    shop.nl = The Netherlands in Dutch
    shop.nl/de = The Netherlands in German
    shop.nl/en = The Netherlands in English

    shop.de = Germany in German
    shop.de/nl = Germany in Dutch
    shop.de/en = Germany in English

    shop.eu = Europe (global) in English
    shop.nl/nl = Europe (global) in Dutch
    shop.nl/de = Europe (global) in German

    shop.com = Global in English
    shop.com/nl = Global in Dutch
    shop.com/de = Global in German

    and (but you have to define the right territory in Google Webmaster Tools for Google Search Engine):

    nl.shop.com = The Netherlands in Dutch
    nl.shop.com/de = The Netherlands in German
    nl.shop.com/en = The Netherlands in English

    de.shop.com = Germany in German
    de.shop.com/nl = Germany in Dutch
    de.shop.com/en = Germany in English

    The main language of the territorial domain should be on the root (of the territorial domain), alternative languages one level higher /en /de etc.

    @antrax13

    As stated before, do not use .es/es but .es for es and .es/en .es/pt .pt .pt/en .pt/es etc.

  6. Hi,

    I have a questions about this theme, my site have the next configuration:

    1 data base
    1 domain.com with 3 translations es, en, pt
    2 territorial domais, domain.es and domain.pt

    I use to my domain.com translations the next store view codes ue_es, ue_en, ue_pt.

    But i think this isn´t a good idea and and the right code should be es-ES, en-EN, pt-PT for example.

    in my territorial domains i use this codes, domain.es/es/ and domain.pt/pt/

    What is your opinion? and what is the best way to position in search engine?

    Thanks!!

  7. I would recommend to host your default language under the root / of the domain because putting everything under for i.e. /en/ lowers your overall SEO performance for your website.
    As for getting the CCTLD (country code top level domain) for each target country, it is good if you are not selling a branded product and your goal is to hit higher for local generic terms. Otherwise it’s better to have only one domain (i.e. shop.com), put the default language on the root / and put the other languages on /fr, /es, etc… As for localization you can manage it through a session.

  8. “In case of an average online store, I wouldn’t recommend translating the regional websites. The need for a .nl store to have English translation is an edge case and I’m quite sure your ROI would be bigger if you lose that sale but gain much more due to better SEO.”

    I agree, but:

    If I add a new global product with say three languages, I have this one product with thee translations (en, nl, de). If I go to shop.de/nl this product must show the dutch (nl) translation on the german (DE) shop. shop.nl/en the english (en) product translation on the netherlands (NL) shop while the price could be higher in germany (DE) than the netherlands (NL). So someone in germany (DE) can order a product in germany nomather the translation. Some products are for example NL and DE territories but not for FR (france). So I miss a territorial scope with global translations on Magento.

    About SEO… Search engines see shop.nl and shop.de as different territories thus websites, shop.nl and shop.de/nl are both dutch but are different websites (for the customer and search engine) but the price can be different and the product translation is exactly the same in three flavors (en, nl, de)

  9. Dell and Apple don’t care about SEO as it’s a non-factor to them, they only go for branded keywords which they can’t lose. In case of an average online store, I wouldn’t recommend translating the regional websites. The need for a .nl store to have English translation is an edge case and I’m quite sure your ROI would be bigger if you lose that sale but gain much more due to better SEO. It could vary from case to case, but on avarage, I think this approach would be better. I can’t tell you exactly what I’d do if I were you unless I spent a lot of time with your Analytics data.

  10. Your comment is exactly my problem with Magento.

    Like I said, in other words if a non-Dutch speaking (for example german [de]) person lives in The Netherlands [NL] and wants to order and goes to shop.de he has the Germany [DE] regulations and payment options which is wrong! Het needs the “The Netherlands” [NL] website translated in German [de].

    The other way the same. If a non-German speaking person lives in Germany [DE] he visits shop.de and clicks the Dutch [nl] (shop.de/nl) or English [en] (shop.de/en) flag and gets the Germany [DE] (shop.de) (territory) translated. It is wrong if this person (for example dutch speaking) [nl] vistits the “The Netherlands”[NL] shop.nl because the regulations, territorial product prices, shipping methods and cms pages, helpdesk, faq, etc. may be different. Magento is made for one distribution in one country. If you have in each or most countries (territories) a distribution center you may have different shipping and productprices and even product ranges. So what you want is an extra scope territory in Magento. And pull the translation from the website scope. You translate a product and not a scope for example.

    Take a big shop as example, Dell or Apple, they have territorial shops and each shop have different languages and next to the standard products different extra products, different pages. But they share a lot of information.

  11. Mike,

    If you own example.nl, example.de, example.eu, example.com, why would you have translations on each of them?

    Use example.nl for NL, example.de for DE, example.com for EN. Don’t translate them. If someone is on .nl and wants German language, send him to example.de. Don’t just translate, localize 😉

  12. This is what I mean:

    shop.nl = The Netherlands in Dutch
    shop.nl/de = The Netherlands in German
    shop.nl/en = The Netherlands in English

    shop.de = Germany in German
    shop.de/nl = Germany in Dutch
    shop.de/en = Germany in English

    shop.eu = Europe (global) in English
    shop.nl/nl = Europe (global) in Dutch
    shop.nl/de = Europe (global) in German

    shop.com = Global in English
    shop.com/nl = Global in Dutch
    shop.com/de = Global in German

    I try to find (the best and complete) Magento settings to have ONE website (sharing all products and customers) with FOUR Stores (as territorial scopes with optionally different products, categories and/or themes) with for each store all supported languages (English, Dutch and German for example).

    What I really miss in Magento is for example when you add a CMS Page you need to have ONE page with multiple translations. The current method in Magento is not focused on translations but on country scope (territorial). If you have (for example) a specific cms page (territorial topic), this page differs for each territory but also the language. So what I need is four pages with each three translations.

    Anyone has a solution or a link to a solution to this problem?

  13. Mike, that’s exactly what this video is talking about. You shouldn’t be on shop.nl and have a language .de, you should use .de instead and build a whole different experience for .de instead of just translating the .nl. Meaning, two separate websites.

  14. (from The Netherlands)

    Fantastic explanation!

    Now let’s put this into action for Magento.

    How to setup one !!! Shop with multiple languages and multiple countries?

    With all the setup examples I’ve seen it is not possible to be on the (for example) Shop (NL) and have the language (de) [www.shop.nl/de]. Or be on the Shop (DE) and have the language (nl) [www.shop.de/nl].

    Notice the case, nl_NL, nl = language and NL = territory

    Or did I overlook one or more fantastic Magento configuration examples for this problem?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.

Tell us about your project

Drop us a line. We'd love to know more about your project.