Best approach for multilingual website?

Hello there!

I’m quite new to Ghost and I’m planning to use it for a multilingual website. After reading the documentation, I understand that the recommended approach is to have two separate Ghost installs, one for each language.

I’m looking for the best way to ensure users are directed to the correct language version / or are able to choose their language easily. My audience consists of users who do not speak English at all, so simplicity and clarity are key. Here are the ideas I’ve come up with so far:

  • A: The default site (websiteDOTcom) is the EN version, but it will automatically redirect users to the FR version if their browser language is set to French. I’ll also include a language switcher in the header, so users can manually change the language if needed.
  • B: The default site (websiteDOTcom) is the EN version, but instead of automatic redirects, it will just have a language switcher (could be flags, a dropdown menu, or a simple “EN | FR” text). I’d hope users will find and use it easily.
  • C: The default site (websiteDOTcom) is a one-page landing page with a simple headline like “Choose Your Language” and two images or buttons: one for English and one for ** Français**. Users can click their preferred option to proceed. I’m not sure if a landing page like this is still considered modern web design, and I also wonder if it’s technically possible to install Ghost this way if both the @ and www versions of my domain point to a separate landing page, outside of Ghost.

I’m wondering if I’ve missed anything or if there’s a better solution out there. Which approach would you choose? If you’re bilingual, what would you prefer as a user?

Oh and I have no clue about coding, so I plan to contact one of the Ghost Experts on the website and ask them to help me to set that up, but first I’d love to know what you think :)

Thanks for any advice or insights!

Hi Shinu, I’ve set up a nine-language site with Ghost and can share some ideas

I’d say separate Ghost instances is ideal, you can localize all UX elements (menu, buttons, forms etc) and the XML sitemap is fully localized. You can also have native editors fine-tune the translated posts.

Here is a possible set-up

Then we need the initial language switcher, sending new visitors to what is most likely the correct language version.

I used geo-targeting on the root-domain, website.com and www.website.com

nginx, the web server, has great geo-targeting capabilities, and can re-direct on country-code, which it derives from the IP-adress of the visitor.

Set up a nginx server which only does the redirect, you can use Digital Ocean / Hetzner / Contabo etc for a few dollars/euros a month.

website.comfr.website.com
or
website.comen.website.com

…depending on geographic location.

In nginx config it looks like this, here I send visitors from France, Luxembourg, and Monaco to the French version, everyone else gets English.

map $geoip_country_code $country_redirect {
default "https://en.website.com";
FR "https://fr.website.com/";
LU "https://fr.website.com/";
MC "https://fr.website.com/";
}

Then you also need a way to write and post in one language and have the post translated and published on the other site. I used Make & DeepL for this, I think Zapier has a translation function, and I’m sure you can use chatGPT or Google Gemini for the translation work.

Feel free to ask any further questions, glad if I can help.

/magnus

2 Likes

Hi @shinu and @mheland ,
I just recently expressed my opinion on similar topic. So, I want to also share it here:

I want to add a note. That I belive that having multiple instances will be hard for me as for one person who has a hobby blog. In case if there is a team involved - all should be much more easier

1 Like