[MY PAIN] Multiple languages website. Is there any hope?

I want to share my pain.
I have to create sites with many languages.
The only acceptable method is the one proposed by Eldar and I use. How to Build Multilingual Website in Blocs 3 - YouTube
The essence of the method - create a site in one language, then copy pages, translate them and create a custom header and footer for each language. You can do this as through editing the menu - or turn the header menu simply into links, which is what Eldar recommends everyone to do in his videos.

But in any case the result is the same - we get huge number of pages - three languages and 40 pages - we have more than 120 pages in total.
And now imagine that you have to make changes in the footer for example. For 40 pages the footer and header will be global. At least it is not global for 80 pages - so they need to be edited manually. The same applies to the header - if you make changes in 80 pages you will be changing everything manually. I will not say that this is hell - but the pleasure of the work clearly does not add.

Is there some kind of a tiphack to simplify all this? Maybe you can make more than one global footer and header zone? Or what to do with it all in general?

I would make a primary language site first and upload it to your domain root. Next, open your project file again and use “save as” to create a new language version of the site. Edit the new project to reflect the language and upload it to a sub-folder on your domain. You should use the ISO country code to name your sub-folders. Repeat this for each language variant.

When creating your primary language site, put a language selector in the header and set it up to point to language specific folders followed by the page name. EG ge/index.html for a german version of the site. You should change the page name on each page of your site so that it directs to the appropriate page (note: page names can be the same in each language variant).

By adopting this method you can add a piece of code to your pages that automatically detect a users system language and directs them to the appropriate language version of the site.

When it comes to future editing, just fire up the appropriate language version, edit it and upload/overwrite the files in the specific language folder. This keeps your project files small and allows you to progressively change the different language versions without having the whole site opening in a single project.

3 Likes

I tried this approach, it does help a little bit.
But only if there is already an established design - and only the text changes. If the structure of the site changes - then from a way to simplify the work it turns into a way to complicate it.
In other words, the only convenient scenario for this kind of work is when you made the site - then just copied what came out - and translated it.
For convenient work when the edits are also made to the design itself - this method is poorly suited.
The only issue is that we don’t really have a choice.

I’m in the progress of building a multilanguage site. I’m building one project per language. I do the redirects based upon the browser language via a .htaccess rule.

The structure looks somewhat like this:

== root of the website ==
.htaccess
/nl/
-------- index.html
-------- home.html
/fr/
-------- index.html
-------- home.html
/en/
-------- index.html
-------- home.html
/de/
-------- index.html
-------- home.html

The index file in each of the language folders is a age check page, that also gives them the option to manually change the language (if detection was incorrect).

Once entering, the go over to a home page

The rules in my htaccess:

# language starts with DE
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/ [L,R=301]

# language starts with FR
RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^$ /fr/ [L,R=301]

# language starts with NL
RewriteCond %{HTTP:Accept-Language} ^nl [NC]
RewriteRule ^$ /nl/ [L,R=301]

# else redirect to the English version
RewriteRule ^$ /en/ [L,R=301]

I hope this could be a solution for you too :slight_smile:

8 Likes

Thanks for the tip. I’ll use it for a coming 2 languages site I have to do :smiley:

But for @Newbie I would suggest using a CMS.

We have to accept that a website builder like Blocs has its limits, especially for bigger sites or when you need to edit menu labels on different languages.

The biggest advantage of the CMS is that every single page is associated with the same page in each language. You are not redirected on the home page if you change language while browsing the site. Also, when you are entering the translation it is much quicker as you are like in a word processor. In Blocs, you have to double-click each item to edit and paste translation.

I’ve made various multilanguage site with Joomla and I will now use Blocs (which I love) for small to medium websites when they don’t have more than 2 languages.

But maybe I’m missing something.

1 Like

I also do it this way. Blocs or Joomla, depending on what makes more sense. WordPress never makes sense for me :grinning:

Except… WordPress has actually solutions for multilingual sites which do not involve creating a bunch of duplicates which hold hardcoded content!

:stuck_out_tongue:

Note, I also cannot with WP anymore the more time goes by, but for this WP is literally one of the best solutions there is, coupled with plugins like WPML.

I however don’t think Blocs is ready for it, unfortunately, since all strings it outputs are not localised. So it would need some PHP editing as well.

The only other solution I would use, is native PHP translation (gettext). This still avoids huge duplications, but requires actual programming, so probably not a solution for most.

As for @wolfganghofer I sticked with Joomla and never was attracted for WP, even though it has improved a lot the last year and is the number 1 CMS around. Joomla has multilingual website built-in and with v4, they improved it even more. But you still have to duplicate articles and menus, change labels and translate content.

True, but the workflow is logical and fast.

I haven’t used Joomla since the early days of version 3. I remember the “fun” with the 2 to 3 updates :grin:.

I should check it out again

1 Like

I think it would be a good solution if there was a way to create templates for the “Global Areas”, i.e. navigation and footer. Then it should be possible to assign these templates to specific pages.

If the footer then has to be changed in a language, only the template of the respective language has to be changed.



1 Like

Please tell me if you offer a solution - or this is just your wish @Norm ?

Because the way things are now with sites in two three languages is just hell.

The trick with redirection is not bad - but if you change something in the design - you need to copy the blocks somehow and paste them into another project. This is frankly even worse than just having one project.

Multi language sites are a lot of work to do properly. For a small basic site building it as a static site is ok. But really a CMS is much easier to manage.

Don’t forget to add hreflang tags, which are great for SEO and will help Google suggest the correct page based on language. Also stops it mis-identifying duplicate pages.

If you’re not familiar with them, Google is your friend.

Here is a good reason why anyway.

You can save a bloc in your bloc library.

That’s what I mean. The top and bottom areas of the pages remain empty. They are then filled by assigning the templates.
For changes in the top or bottom area, only the template needs to be changed.

2 Likes

I’m only going to mention it one more time. But a CMS is the solution. Design in blocs and implement it into one of many CMS options. A lot of CMS’s handle localisation and making minor changes will be easy.

2 Likes

Although I agree CMS is the way for multilingual sites, my strategy with Blocs for small websites would be to do it in one language, then duplicate the entire site and translate the content. With just one language selector which obviously would direct to the home page for the language selected.

I know it’s not a real solution since there is no links between every pages but it is still acceptable because who would anyway switch language except when he first get to the site. Moreover, the automatic selection of the language according to the system should, normally, select our system language.

1 Like

OP might have found their solution a while ago, but I just wanted to mention this here: I use Weglot for all my site translations. This is by far the easiest and fastest way I have discovered so far. Not only for tools like Blocs that don’t have native support for multiple languages, but in general. You just need to inject the Weglot code into the header of the site, which will make a language selector available. As soon as a visitor changes the language (or if it gets automatically changed based on their browser language), the site gets automatically translated. The translation quality is superb, but you can also adjust and verify all your translations in the Weglot dashboard.
If you are building a small website, you can use Weglot pretty much for free. If you need multiple languages, it will cost some amounts, though.

3 Likes

No, I haven’t found any solution.
I still do everything by hand. Volt CMS was not suitable for full-fledged customize.

Wordpress I could not master for intellectual reasons) How to create themes for wordpress I have not understood.

What do you understand exactly when saying “customize” ?

1 Like