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¶
1.12.0 ยท Default: en
You can set the site language in mkdocs.yml
with:
-
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:
- Afrikaans
af
32 translations missing - Arabic
ar
Complete - Armenian
hy
18 translations missing - Bahasa Malaysia
ms
21 translations missing - Bengali (Bangla)
bn
27 translations missing - Bulgarian
bg
Complete - Burmese
my
27 translations missing - Catalan
ca
Complete - Chinese (Simplified)
zh
Complete - Chinese (Taiwanese)
zh-TW
Complete - Chinese (Traditional)
zh-Hant
Complete - Croatian
hr
Complete - Czech
cs
Complete - Danish
da
32 translations missing - Dutch
nl
Complete - English
en
Complete - Esperanto
eo
27 translations missing - Estonian
et
32 translations missing - Finnish
fi
32 translations missing - French
fr
Complete - Galician
gl
20 translations missing - Georgian
ka
27 translations missing - German
de
Complete - Greek
el
18 translations missing - Hebrew
he
Complete - Hindi
hi
Complete - Hungarian
hu
Complete - Icelandic
is
Complete - Indonesian
id
1 translations missing - Italian
it
Complete - Japanese
ja
Complete - Korean
ko
Complete - Kurdish (Soranรฎ)
ku-IQ
13 translations missing - Latvian
lv
20 translations missing - Lithuanian
lt
Complete - Macedonian
mk
20 translations missing - Mongolian
mn
25 translations missing - Norwegian Bokmรฅl
nb
Complete - Norwegian Nynorsk
nn
14 translations missing - Persian (Farsi)
fa
2 translations missing - Polish
pl
Complete - Portuguese
pt
Complete - Portuguese (Brasilian)
pt-BR
Complete - Romanian
ro
Complete - Russian
ru
Complete - Serbian
sr
18 translations missing - Serbo-Croatian
sh
18 translations missing - Sinhalese
si
25 translations missing - Slovak
sk
32 translations missing - Slovenian
sl
14 translations missing - Spanish
es
Complete - Swedish
sv
Complete - Tagalog
tl
18 translations missing - Thai
th
Complete - Turkish
tr
32 translations missing - Ukrainian
uk
Complete - Urdu
ur
Complete - Uzbek
uz
Complete - Vietnamese
vi
Complete
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.
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 selector¶
7.0.0 ยท 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
.
- 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
as set inmkdocs.yml
is prepended to the link.
The following properties are available for each alternate language:
name
-
Default: none ยท 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
-
Default: none ยท 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
-
Default: none ยท 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.
Directionality¶
2.5.0 ยท 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:
Click on a tile to change the directionality:
Customization¶
Custom translations¶
If you want to customize some of the translations for a language, just follow the guide on theme extension and create a new partial in the overrides
folder. Then, import the translations of the language as a fallback and only adjust the ones you want to override:
<!-- Import translations for language and fallback -->
{% import "partials/languages/de.html" as language %}
{% import "partials/languages/en.html" as fallback %} <!-- (1)! -->
<!-- Define custom translations -->
{% macro override(key) %}{{ {
"source.file.date.created": "Erstellt am", <!-- (2)! -->
"source.file.date.updated": "Aktualisiert am"
}[key] }}{% endmacro %}
<!-- Re-export translations -->
{% macro t(key) %}{{
override(key) or language.t(key) or fallback.t(key)
}}{% endmacro %}
-
Note that
en
must always be used as a fallback language, as it's the default theme language. -
Check the list of available languages, pick the translation you want to override for your language and add them here.
Created: April 14, 2023