Deal with the construction of a multi-regional sites

the Problem of creating sites with different versions of languages and countries is not new, almost all major web sites already bumped into her. Each company chooses its decision, we briefly discuss the main options and see how to solve this problem in the best way.


Options for building URLS

Of course, in life there are more groups, for example, some sites keep regional settings in cookies, other transmit parameter ?lang=EN, but this unpopular decision and the main ones are:

1. Version of the site on another domain:

the
example.com, example.ru
the Most dramatic way. This option can be convenient for companies that have local offices in different countries and work relatively independently from the main office, for example, to another engine of the site.

2. Version of the site on the subdomain:

the
ru.example.com, ua.example.com
Very similar to the previous option, but easier to administer. These two options are easily implemented on physically different hosts, so they can be located in different countries.


3. Version of the site in a subdirectory:

the
example.com/ru/, example.com/ua/
the easiest way, but divide into different servers more difficult.

Question often arises, especially for administrators facing the task of creation of Multiregional website is which approach to choose to build the URL structure. To give a definite answer is impossible, too many different factors affect the decision, however, the subjective opinion is: if your site for different countries and languages will work on one engine, use the third option. It is much easier to use for a typical project, besides, for this scheme to work and such giants as microsoft, ibm, apple and many others. Detailed information for building the URL structure is easily found on the websites of search engines, and therefore describe it makes no sense.

the Concept of Multiregional website

So, we want to create a website that is suppose to work in Russia, Ukraine and the United States. Languages on our website are Russian, Ukrainian and English. To build a URL-structure to take a third option.

Usually the examples in Google and Yandex appear simple and limited schemes of work, such as in the United States show the website in English, in Russia — in Russian, in France — in French and so on:

the
example.com/en-us/
example.com/ru-ru/
example.com/fr-fr/


However, in real life there are more questions. What to do for Ukraine what language will show? There are Russian and Ukrainian. Well, no problem, add a new twist

the
example.com/uk-ua/


But if you need to run the version of the site still in Canada? Added more options with English and French:

the
example.com/en-ca/
example.com/fr-ca/


In short, find out what languages will provide for the needed site and add a link "language — country".

Under this scheme, by the way, work and the websites of the companies mentioned:

Microsoft: www.microsoft.com/home/en-ca/locale.aspx
Apple: www.apple.com/choose-your-country
IBM: www.ibm.com/planetwide/select/selector.html

It would seem, here it, the ideal scheme, especially the largest companies working on it — and there's some smart minds here, and they kind of thought of everything. However, it is not so simple. Although we are close to the construction of a Multiregional site, we still have problems that in light of the growing cosmopolitanism and internationalization will become more and more important.


the Problem with immigrants and highly mobile people

Back to our original example. It is obvious that the United States is home to many Russian-speaking and work many of them would prefer a Russian version of your website. The version of "let it pass to the Russian version of the site example.com/ru-ru/" is wrong, because they want to see, for example, the price of your website in dollars, to see an American phone number, address and other contact information, in General, to see what visitors see example.com/en-us but at the same time that everything was in Russian.
Well, you can create another bunch of language with the country:

the
example.com/ru-us/


Yes, but there are Ukrainian immigrants, who would prefer to work for the American versions, using the Ukrainian-language version of the site. Of course, many at this stage, wave his hand and say, "they are few, will be". However, what is the point of reducing the usability of the website, because the convenience of the user attachment to your site, if people prefer to read in Ukrainian, he will surely prefer your website similar to a competitor's site. Moreover, we already have a translation in Ukrainian, what a problem to add it? Well, make another version:

the
example.com/uk-us/


Wait, but there are also those who moved from the US to Russia, why not to give them the opportunity to work in English? But perhaps there is a Ukrainian living in Russia. All these examples lead us to what the correct scheme of the website it turns out then when I can choose language and region.

Here, for example, the Microsoft. A simple analysis shows that only we are invited 96 ligaments "language — country", while languages — 38, and a — 93. That is, to choose a different language for only a few countries, such as Canada (English and French). It's funny, but in a vast number of Russian-speaking residents in Ukraine, you can only choose:

Russia — Russian
Ukraine — Ukrainian

And that's all! Select the "Ukraine — Russian" simply not possible, despite the fact that most of the population speaks Russian. If Microsoft offered all possible languages for any country, he would have had on the post 93 × 38 = 3534 bundles "language — country". Naturally, to find the right page with this sheet of text will be difficult.

The same rigid structure works for the mentioned Apple and IBM.


And the conclusion?

And the conclusion is very simple — no need to create tough cords of languages and countries. In the first entry on the main page, we automatically determine the IP of the user and his country. Because in almost all cases it will be sufficient to determine only the country (the city we don't need yet), you can use the free database provided, for example, MaxMind. Based on the country of the visitor we show him a version of the website on most popular language in the country. And then users choose which language they prefer to work with.


And how search engines will react to this diversity?

Google and Yandex give the website owner the opportunity to explain to the search engine that the website works for different countries and languages, supporting the rel="alternate" hreflang="x". Thus, if your site uses free choice of country and language, all possible options need to add to each page. This should help the search engine understand what the page in the search results need to show to the user. For our example will be:

the
<link rel="alternate" hreflang="x-default" href="http://example.com/"> 
<link rel="alternate" hreflang="EN-us" href="http://example.com/ru-ru/">
<link rel="alternate" hreflang="EN-us" href="http://example.com/ru-us/">
<link rel="alternate" hreflang="EN-ua" href="http://example.com/ru-ua/">
<ink rel="alternate" hreflang="uk-EN" href="http://example.com/uk-ru/">
<ink rel="alternate" hreflang="uk-us" href="http://example.com/uk-us/">
<ink rel="alternate" hreflang="uk-ua" href="http://example.com/uk-ua/">
<link rel="alternate" hreflang="en-EN" href="http://example.com/en-ru/">
<link rel="alternate" hreflang="en-us" href="http://example.com/en-us/">
<link rel="alternate" hreflang="en-ua" href="http://example.com/en-ua/">


upd. In the case Microsoft would have to add 3535 lines on every page of your website. Not to add that many tags to the page, place them in the site map. It seems that this only works for Google. Response to the request in Yandex: "regional markup in the sitemap at the moment we don't support."

If it is necessary to support both search engines, a viable option in this case is seen closing from indexing all pages except the main sheaves "language — the country". Then, for example, instead of the last three lines of the example above will only
the
<link rel="alternate" hreflang="en-us" href="http://example.com/en-us/">


Of course, this leads to the fact that the Russian-speaking user in the US will not see in the search results page

the
example.com/ru-us/


Most likely, he will be offered one of these pages:

the
example.com/ru-ru/
if you will search in Russian, and

the
example.com/en-us/
if you will search in English.

However, even in this case, we leave the possibility to change the language or country for the desired user, therefore, ultimately, the localization problem will be solved.

Most of the sites implied their work in several countries and a maximum of 3-4 languages, so you can easily sacrifice extra adding a dozen lines with the tags for all versions of the site. With Wikipedia you can take the proper codes languages and countries.
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

Monitoring PostgreSQL + php-fpm + nginx + disk using Zabbix

Templates ESKD and GOST 7.32 for Lyx 1.6.x

Customize your Google