Setting up the languages
In order for the site to include contents in multiple languages, these languages must first be added.
Navigate to /admin/settings/language and select "Add language". Add all the desired languages.

Note the warning about setting the default language. It is important that you decide this early. See the note in the discussion about translating user defined strings (at the bottom of the page).
Once you've added all the languages go to Configure and select the desire language negotiation settings. If you are not sure try "Path Prefix Only". This will allow the language to be selected by a prefix in the url.
Example: "/de/contact" sets presentation language to German based on the use of "de" within the path.

Kommentare
This is good for website with
This is good for website with English as default.
What if i will like to have English, Spanish and say Hindi on the site and set Spanish as the site default?
1. Setting non-English language as default cause many issues in string and later translation..
2. Now drupal handles languages landing page negotiation per browser language, but a lot of the browsers world wide are in English, even if English is not the native language of the user.
ip2local can be a solution but is overkill for most cases that will just like to have a site default language and other languages on the site.
good scenario is website that only need a good infrastructure for future languages, and for the start will like to have a non-english language.
3. Their is no option for clean path for non-default language (not /es)
What will be you're solution for all this?