2020-07-17 01:15:59 +03:00
|
|
|
|
---
|
|
|
|
|
template: overrides/main.html
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Changing the language
|
|
|
|
|
|
|
|
|
|
Material for MkDocs supports internationalization (i18n) and provides
|
2020-07-17 14:08:27 +03:00
|
|
|
|
translations for template variables and labels in 40+ languages. Additionally,
|
2020-07-26 15:46:09 +03:00
|
|
|
|
the site search can be configured to use a language-specific stemmer (if
|
|
|
|
|
available).
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
|
|
### Site language
|
|
|
|
|
|
2020-07-20 16:18:09 +03:00
|
|
|
|
[:octicons-file-code-24: Source][1] · :octicons-milestone-24: Default: `en`
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
2020-07-23 14:17:50 +03:00
|
|
|
|
You can set the _site language_ in `mkdocs.yml` with:
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
theme:
|
|
|
|
|
language: en
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The following languages are supported:
|
|
|
|
|
|
2021-02-24 20:02:09 +03:00
|
|
|
|
<div class="mdx-columns" markdown="1">
|
2020-12-21 19:38:58 +03:00
|
|
|
|
|
|
|
|
|
- `af` – Afrikaans
|
|
|
|
|
- `ar` – Arabic
|
2021-01-26 12:48:59 +03:00
|
|
|
|
- `bg` – Bulgarian
|
2020-12-21 19:38:58 +03:00
|
|
|
|
- `bn` – Bengali (Bangla)
|
|
|
|
|
- `ca` – Catalan
|
|
|
|
|
- `cs` – Czech
|
|
|
|
|
- `da` – Danish
|
|
|
|
|
- `de` – German
|
|
|
|
|
- `en` – English
|
|
|
|
|
- `eo` – Esperanto
|
|
|
|
|
- `es` – Spanish
|
|
|
|
|
- `et` – Estonian
|
|
|
|
|
- `fa` – Persian (Farsi)
|
|
|
|
|
- `fi` – Finnish
|
|
|
|
|
- `fr` – French
|
|
|
|
|
- `gl` – Galician
|
|
|
|
|
- `gr` – Greek
|
|
|
|
|
- `he` – Hebrew
|
|
|
|
|
- `hi` – Hindi
|
|
|
|
|
- `hr` – Croatian
|
|
|
|
|
- `hu` – Hungarian
|
|
|
|
|
- `id` – Indonesian
|
2021-03-05 12:36:46 +03:00
|
|
|
|
- `is` – Icelandic
|
2020-12-21 19:38:58 +03:00
|
|
|
|
- `it` – Italian
|
|
|
|
|
- `ja` – Japanese
|
|
|
|
|
- `ka` – Georgian
|
|
|
|
|
- `kr` – Korean
|
2021-05-30 12:52:16 +03:00
|
|
|
|
- `mn` – Mongolian
|
2020-12-21 19:38:58 +03:00
|
|
|
|
- `my` – Burmese
|
|
|
|
|
- `nl` – Dutch
|
|
|
|
|
- `nn` – Norwegian (Nynorsk)
|
|
|
|
|
- `no` – Norwegian
|
|
|
|
|
- `pl` – Polish
|
|
|
|
|
- `pt` – Portuguese
|
|
|
|
|
- `ro` – Romanian
|
|
|
|
|
- `ru` – Russian
|
|
|
|
|
- `sh` – Serbo-Croatian
|
2021-02-14 19:36:39 +03:00
|
|
|
|
- `si` – Sinhalese
|
2020-12-21 19:38:58 +03:00
|
|
|
|
- `sk` – Slovak
|
2021-02-14 19:36:39 +03:00
|
|
|
|
- `sl` – Slovenian
|
2020-12-21 19:38:58 +03:00
|
|
|
|
- `sr` – Serbian
|
|
|
|
|
- `sv` – Swedish
|
|
|
|
|
- `th` – Thai
|
|
|
|
|
- `tr` – Turkish
|
|
|
|
|
- `uk` – Ukrainian
|
|
|
|
|
- `vi` – Vietnamese
|
|
|
|
|
- `zh` – Chinese (Simplified)
|
|
|
|
|
- `zh-Hant` – Chinese (Traditional)
|
|
|
|
|
- `zh-TW` – Chinese (Taiwanese)
|
|
|
|
|
- [Add language](https://bit.ly/38F5RCa)
|
|
|
|
|
|
|
|
|
|
</div>
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
2020-09-06 14:35:18 +03:00
|
|
|
|
_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,
|
|
|
|
|
as [documented here][2]._
|
|
|
|
|
|
2021-01-26 12:48:59 +03:00
|
|
|
|
[1]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/languages/en.html
|
2020-09-06 14:36:25 +03:00
|
|
|
|
[2]: setting-up-navigation.md#slugify
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
2020-12-06 19:41:10 +03:00
|
|
|
|
### Site language selector
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
2020-09-06 14:35:18 +03:00
|
|
|
|
[:octicons-file-code-24: Source][3] ·
|
2021-02-22 22:08:49 +03:00
|
|
|
|
:octicons-beaker-24: Experimental
|
2020-12-06 19:41:10 +03:00
|
|
|
|
|
|
|
|
|
If your documentation is available in multiple languages, a _language selector_
|
2021-02-23 00:27:30 +03:00
|
|
|
|
can be added to the header next to the search bar. Alternate languages can be
|
|
|
|
|
defined via `mkdocs.yml`:
|
2020-12-06 19:41:10 +03:00
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
extra:
|
|
|
|
|
alternate:
|
2020-12-21 19:38:58 +03:00
|
|
|
|
|
|
|
|
|
# Switch to English
|
2020-12-06 19:41:10 +03:00
|
|
|
|
- name: English
|
2020-12-21 19:38:58 +03:00
|
|
|
|
link: <your-site>/en/
|
2020-12-06 19:41:10 +03:00
|
|
|
|
lang: en
|
2020-12-21 19:38:58 +03:00
|
|
|
|
|
|
|
|
|
# Switch to German
|
2020-12-06 19:41:10 +03:00
|
|
|
|
- name: Deutsch
|
2020-12-21 19:38:58 +03:00
|
|
|
|
link: <your-site>/de/
|
2020-12-06 19:41:10 +03:00
|
|
|
|
lang: de
|
2020-12-21 19:38:58 +03:00
|
|
|
|
|
|
|
|
|
# Switch to Japanese
|
2020-12-06 19:41:10 +03:00
|
|
|
|
- name: 日本語
|
2020-12-21 19:38:58 +03:00
|
|
|
|
link: <your-site>/ja/
|
|
|
|
|
lang: ja
|
2020-12-06 19:41:10 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
This will render a language selector in the header next to the search bar:
|
|
|
|
|
|
2020-12-21 19:38:58 +03:00
|
|
|
|
[![Language selection][4]][4]
|
2020-12-06 19:41:10 +03:00
|
|
|
|
|
2021-02-22 22:08:49 +03:00
|
|
|
|
[3]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/header.html
|
2020-12-06 19:41:10 +03:00
|
|
|
|
[4]: ../assets/screenshots/language-selection.png
|
|
|
|
|
|
|
|
|
|
### Site search language
|
|
|
|
|
|
|
|
|
|
[:octicons-file-code-24: Source][5] ·
|
2020-07-20 16:18:09 +03:00
|
|
|
|
:octicons-milestone-24: Default: _automatically set_
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
2020-07-17 14:08:27 +03:00
|
|
|
|
Some languages, like Arabic or Japanese, need dedicated stemmers for search to
|
2020-12-06 19:41:10 +03:00
|
|
|
|
work properly. Material for MkDocs relies on [lunr-languages][6] to provide this
|
|
|
|
|
functionality. See the guide detailing how to [set up site search][7] for
|
2020-07-20 20:28:13 +03:00
|
|
|
|
more information.
|
2020-07-17 14:08:27 +03:00
|
|
|
|
|
2020-12-21 19:38:58 +03:00
|
|
|
|
[5]: https://github.com/squidfunk/mkdocs-material/blob/master/src/assets/javascripts/integrations/search/worker/main/index.ts
|
2020-12-06 19:41:10 +03:00
|
|
|
|
[6]: https://github.com/MihaiValentin/lunr-languages
|
|
|
|
|
[7]: setting-up-site-search.md
|
2020-07-17 14:08:27 +03:00
|
|
|
|
|
|
|
|
|
### Directionality
|
|
|
|
|
|
2020-12-06 19:41:10 +03:00
|
|
|
|
[:octicons-file-code-24: Source][8] ·
|
2020-07-20 16:18:09 +03:00
|
|
|
|
:octicons-milestone-24: Default: _automatically set_
|
2020-07-17 14:08:27 +03:00
|
|
|
|
|
2020-07-17 01:15:59 +03:00
|
|
|
|
While many languages are read `ltr` (left-to-right), Material for MkDocs also
|
2020-07-21 14:33:44 +03:00
|
|
|
|
supports `rtl` (right-to-left) _directionality_ which is inferred from the
|
2020-07-17 01:15:59 +03:00
|
|
|
|
selected language, but can also be set with:
|
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
theme:
|
|
|
|
|
direction: ltr
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-21 19:38:58 +03:00
|
|
|
|
Click on a tile to change the directionality:
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
2021-02-24 20:02:09 +03:00
|
|
|
|
<div class="mdx-switch">
|
2020-07-19 23:23:26 +03:00
|
|
|
|
<button data-md-dir="ltr"><code>ltr</code></button>
|
|
|
|
|
<button data-md-dir="rtl"><code>rtl</code></button>
|
|
|
|
|
</div>
|
2020-07-17 01:15:59 +03:00
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
var buttons = document.querySelectorAll("button[data-md-dir]")
|
|
|
|
|
buttons.forEach(function(button) {
|
|
|
|
|
button.addEventListener("click", function() {
|
2020-07-17 14:08:27 +03:00
|
|
|
|
var attr = this.getAttribute("data-md-dir")
|
|
|
|
|
document.body.dir = attr
|
2020-07-17 01:15:59 +03:00
|
|
|
|
var name = document.querySelector("#__code_1 code span:nth-child(5)")
|
2020-07-17 14:08:27 +03:00
|
|
|
|
name.textContent = attr
|
2020-07-17 01:15:59 +03:00
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|
|
2020-12-21 19:38:58 +03:00
|
|
|
|
[8]: https://github.com/squidfunk/mkdocs-material/blob/master/src/base.html
|
2020-07-17 15:33:52 +03:00
|
|
|
|
|
|
|
|
|
## Customization
|
|
|
|
|
|
2020-07-23 14:17:50 +03:00
|
|
|
|
### Custom translations
|
2020-07-21 17:01:22 +03:00
|
|
|
|
|
2020-07-20 16:18:09 +03:00
|
|
|
|
[:octicons-file-code-24: Source][1] ·
|
2020-07-21 17:01:22 +03:00
|
|
|
|
:octicons-mortar-board-24: Difficulty: _easy_
|
2020-07-20 16:18:09 +03:00
|
|
|
|
|
2021-09-20 19:38:36 +03:00
|
|
|
|
If you want to customize some of the translations for a language, just follow
|
2021-03-21 19:14:32 +03:00
|
|
|
|
the guide on [theme extension][9] and create a new partial in
|
2021-01-26 12:48:59 +03:00
|
|
|
|
`partials/languages`, e.g. `en-custom.html`. Next, look up the translation you
|
2020-07-23 14:17:50 +03:00
|
|
|
|
want to change in the [base translation][1] and add it to the partial.
|
|
|
|
|
|
|
|
|
|
Let's say you want to change "__Table of contents__" to "__On this page__":
|
2020-07-17 15:33:52 +03:00
|
|
|
|
|
2020-07-27 15:44:47 +03:00
|
|
|
|
``` html
|
2021-09-20 19:38:36 +03:00
|
|
|
|
<!-- Use en language as fallback -->
|
|
|
|
|
{% import "partials/languages/en.html" as fallback %}
|
|
|
|
|
{% macro override(key) %}{{ {
|
2020-07-17 15:33:52 +03:00
|
|
|
|
"toc.title": "On this page"
|
|
|
|
|
}[key] }}{% endmacro %}
|
2021-09-20 19:38:36 +03:00
|
|
|
|
|
|
|
|
|
<!-- Re-export the translation macro for mkbuild-material to use -->
|
|
|
|
|
{% macro t(key) %}{{ override(key) or fallback.t(key) }}{% endmacro %}
|
2020-07-17 15:33:52 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Then, add the following lines to `mkdocs.yml`:
|
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
theme:
|
|
|
|
|
language: en-custom
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-06 19:41:10 +03:00
|
|
|
|
[9]: ../customization.md#extending-the-theme
|