What would be a good way to handle URLs on a website that offers multiple languages, but has one primary language (in my case, English).
What should be the address of the home page in English? http://example.com/? http://example.com/en/? http://example.com/english/? Other?
What should be the address of the home page in another language, say, German? http://example.com/german/? http://example.com/de/? http://example.com/deutsch/?
Would the use of language-specific subdomains be appropriate? What would you do and why?
It kind of depends on the structure of your site:
If every language is considered a completely different site, use sub-domains for the language.
This is because different sub-domains is considered different sites by many technologies. Wikipedia does this (http://de.wikipedia.org/) to separate content for different languages entirely.
I wouldn't recommend you to choose this option unless your site is very big.
If every language has its own structure, but is still considered to be versions of the same site, use a top-level "directory" for languages.
For the sake of consistency, I would say that you should also have one for the default language (and omitting it would cause a redirect to the appropriate structure.) I would recommend you to use /en/, /de/, etc. since it's short and concise, and also the standard way of indicating languages.
This is probably your best bet.
If the structure of the site is identical no matter what language it is, and only content on the pages changes depending on the language, you could also consider putting the language modifier as a parameter: /home?lang=en
Google does this, for example: http://www.google.com/search?hl=de&q=foo (they also separate languages by TLD, though.)
Away from the question of how the international URLs should be styled (as that has been covered adequately already)...
One thing that I would personally do is make the site's 'main' domain (i.e. http://example.com) redirect the user appropriately depending on the Accept-Language HTTP header passed by the browser. This is what google.com does, for example.
If you do this, however, make sure that it's possible to switch to another language easily - and save the settings via some other mechanism to allow persistent override (cookies!).
What should be the address of the home page
Would the use of language-specific subdomains be appropriate?
How you like it, doesn't really matter. Design it to be intuitive to the users.
Language names encrypted in URLs won't matter for SEO because nobody will be searching for "en", "de". The names of the products you're offering however will matter very much, because people will be searching for products like "gifts" or "geschenke".
I think that the better stylish solution is to use the address in the format http://yourdomain.com as the home page URL, and identify the localized web pages with ISO 639-1 language codes
Related
URLs are a user interface, but they are also used to implement the site technically. Compare the following two URLs:
http://example.com/2012/my-article-name/
http://example.com/static/jquery.js
The first is a permalink; part of the "API" if you like. The second is just an addressing mechanism that makes the site work. I might decide to change the second one if I upgrade my site's backend, but I want the first to remain constant for as long as the content at that location exists.
So what are the conventions for indicating that a URL is to be considered part of the site's private technical implementation, rather than part of the public user interface? I've used one above (the word "static"). Another might be an underscore like this:
http://example.com/_/jquery.js
I'm looking for advice, best practice, etc. on this concept.
As far as I know, there is no standard convention for this. And even if there was, I wouldn't bother with it, because:
Who is going to view http://example.com/static/jquery.js?
JavaScript files and "files that make the site work", if you view them, don't display like regular webpages. Users can use that distinction that those files are part of the "technical implementation" of a site.
Visible URL's may be considered part of the user's interface. Just a few years ago, they needed to be unique for every piece of content in the website, or SEO would suffer. Today most search engines support the rel=canonical tag, but still it's a good practice to keep them constant and as logical for the user as possible.
I'm creating a site to be available in multiple languages.
What's the best way to do this? Some sites check the browser language setting and redirect to
/english_Version/some/path
My question is, is there a better way? Is the /english_Version/ part necessary or can that be hidden away? What's the best practice here?
The language specific URL is not required, but if you don't use this mechanism, you need some kind of other mechanism to track the user language.
This can be done through cookies, parameters on the URL (other than the directory structure), hidden form fields and other tricks of the trade.
You can also simply look at the browser settings and serve accordingly (without redirection).
However, it is best to give the user a choice in the matter - they might be in a foreign country (think Internet cafe) and want to browse in a different language than that advertised by the browser.
I've been told to understand how to maximize the visibility of an upcoming web application that is initially available in multiple languages, specifically French and English.
I am interested in understanding how the robots, like the google bot, scrapes a site that is available in multiple language.
I have a few questions concerning the behaviour of robots and indexing engines:
Should a web site specify the language in the URL?
Will a robot scrape a site in both language if the language is set through cookies (supposing a link that can change the language)?
Should I use a distinct domain for each language?
What meta tag could be used to help a robot in understanding the language of a web site?
Am I missing anything that I should be aware of?
Yes
No
Not necessarily, Google will infer the language. But if you use different TLD you probably get better exposure in specific countries, but you loss PageRank diluted in different domains.
<meta http-equiv="content-language" content="en">
a. You should add a link in every page, to the same page in the other languages of the
site.
b. For SEO, it's better to use www.mysite.com/en/ that en.mysite.com because the PageRank is not diluted in different domains.
Should a web site specify the language in the URL?
No, not necessarily.
Will a robot scrape a site in both language if the language is set through cookies (supposing a link that can change the language)?
No. You should use a content-language attribute as suggested by Eduardo. Alternatively, <html lang='en'> will do the same job AFAIK.
What meta tag could be used to help a robot in understanding the language of a web site?
See above
Should I use a distinct domain for each language?
The Stack Overflow consensus (I'm sorry, I can't find for the life of me find the relevant questions! We had huge discussions on this, maybe they were closed as not programming related), is: Yes, have a different domain for each country if you want to maximize search engine visibility for that country.
How can create multilingual Django site?
Is it a good idea to create template set for each language?
How should I use that sets of templates (if it's a good idea)?
Take a look at this question: How to localize Content of a Django application
I'd say try to maintain the same template for each language. However, if you must, or if you feel it is reasonable, you can certainly use a set of different templates for certain other languages. For instance, I know that Arabic is read from right to left, so perhaps a different template is worthwhile in that case.
How to implement the multilingual umbraco 3.0?
There are two different approaches to this.
The documentation on the Umbraco website describes how to do 1:1 multingual sites. This means that you have one site structure and different language tabs in a single document type for each translation od the content. This is then selected by using an on page selector on the website (a flag icon or the like).
Here's an example of a 1:1 site
This is the most efficient set up if you have lots of shared content i.e. the content and structure is exactly the same, the language is just different.
The second approach is to use separate page structures for each language, such as:
International Homepage
------> English Homepage
------------> English content page
------> French Homepage
------------> French content page
The advantage of this structure is that it is very easy to set up, but if you share lots of content it can be cumbersome to manage. It also has the advantage that you can lock the editing permissions down for country/language specific editors.
With the above structure you can also point individual URLs to the country pages.
Without knowing more about what exactly your requirements are it's hard to answer more fully as to which is the best approach. It may also be possible to create a hybrid solution.
Here are some links which may help:
http://forum.umbraco.org/yaf_postst2209_Multilingual-structure-in-umbraco.aspx
http://www.nibble.be/?p=32