# Changing the language Material for MkDocs supports internationalization (i18n) and provides translations for template variables and labels in 50+ languages. Additionally, the site search can be configured to use a language-specific stemmer, if available. ## Configuration ### Site language [:octicons-tag-24: 1.12.0][Site language support] · :octicons-milestone-24: Default: `en` You can set the site language in `mkdocs.yml` with: ``` yaml theme: language: en # (1)! ``` 1. HTML5 only allows to set a [single language per document], which is why Material for MkDocs only supports setting a canonical language for the entire project, i.e. one per `mkdocs.yml`. The easiest way to build a multi-language documentation is to create one project in a subfolder per language, and then use the [language selector] to interlink those projects. The following languages are supported: Note that some languages will produce unreadable anchor links due to the way the default slug function works. Consider using a [Unicode-aware slug function]. !!! tip "Translations missing? Help us out, it takes only 5 minutes" Material for MkDocs relies on outside contributions for adding and updating translations for the almost 60 languages it supports. If your language shows that some translations are missing, click on the link to add them. If your language is not in the list, click here to [add a new language]. [Site language support]: https://github.com/squidfunk/mkdocs-material/releases/tag/1.12.0 [single language per document]: https://www.w3.org/International/questions/qa-html-language-declarations.en#attributes [language selector]: #site-language-selector [Unicode-aware slug function]: extensions/python-markdown.md#toc-slugify [add a new language]: https://github.com/squidfunk/mkdocs-material/issues/new?template=04-add-a-translation.yml&title=Add+translations+for+... ### Site language selector [:octicons-tag-24: 7.0.0][Site language selector support] · :octicons-milestone-24: Default: _none_ If your documentation is available in multiple languages, a language selector pointing to those languages can be added to the header. Alternate languages can be defined via `mkdocs.yml`. ``` yaml extra: alternate: - name: English link: /en/ # (1)! lang: en - name: Deutsch link: /de/ lang: de ``` 1. Note that this must be an absolute link. If it includes a domain part, it's used as defined. Otherwise the domain part of the [`site_url`][site_url] as set in `mkdocs.yml` is prepended to the link. The following properties are available for each alternate language: [`name`](#+alternate.name){ #+alternate.name } : :octicons-milestone-24: Default: _none_ · :octicons-alert-24: __Required__ – This value of this property is used inside the language selector as the name of the language and must be set to a non-empty string. [`link`](#+alternate.link){ #+alternate.link } : :octicons-milestone-24: Default: _none_ · :octicons-alert-24: __Required__ – This property must be set to an absolute link, which might also point to another domain or subdomain not necessarily generated with MkDocs. [`lang`](#+alternate.lang){ #+alternate.lang } : :octicons-milestone-24: Default: _none_ · :octicons-alert-24: __Required__ – This property must contain an [ISO 639-1 language code] and is used for the `hreflang` attribute of the link, improving discoverability via search engines. [![Language selector preview]][Language selector preview] [Site language selector support]: https://github.com/squidfunk/mkdocs-material/releases/tag/7.0.0 [site_url]: https://www.mkdocs.org/user-guide/configuration/#site_url [ISO 639-1 language code]: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes [Language selector preview]: ../assets/screenshots/language-selection.png ### Directionality [:octicons-tag-24: 2.5.0][Directionality support] · :octicons-milestone-24: Default: _automatically set_ While many languages are read `ltr` (left-to-right), Material for MkDocs also supports `rtl` (right-to-left) directionality which is deduced from the selected language, but can also be set with: ``` yaml theme: direction: ltr ``` Click on a tile to change the directionality: