A multilingual site has more than 1 language that users interact with. Two common terms you will hear used with multilingual sites are internationalization, abbreviated as i18n, and localization, abbreviated as l10n. Internationalization is the underlying structure that allows software to be adapted to different languages, and localization is the process of actually translating the software for use by a specific locale.
In Drupal there are 4 main ways of working with language on your site. You can choose how much or how little of each you wish to use on your site.
- Language: adding and choosing the languages
- Interface Translation: text that is hard-coded into the website, like administrative interfaces from core and contributed modules. There is a large selection of community-contributed interface translations for core and contributed projects.
- Content Translation: text that is created as an entity, like content types or users
- Configuration Translation: text that is created by configuration settings, like the site name
- Assign a language to a piece of content
- Allow a user to change the site language
- Translate content
- Translate the website interface
This is a stable core feature without significant changes since 8.0.
We are still filling out our Drupal 8 library and this page will be updated with new tutorials as they are created.
While focused on Drupal 7, this covers most of the concepts you need to understand. Combined with a look at the changes that came in Drupal 8 (see above tutorial) you can get a solid foundation in how Drupal works with languages.