2020-07-17 00:15:59 +02:00
|
|
|
|
---
|
|
|
|
|
template: overrides/main.html
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Changing the language
|
|
|
|
|
|
|
|
|
|
Material for MkDocs supports internationalization (i18n) and provides
|
2020-07-17 13:08:27 +02:00
|
|
|
|
translations for template variables and labels in 40+ languages. Additionally,
|
2020-07-26 14:46:09 +02:00
|
|
|
|
the site search can be configured to use a language-specific stemmer (if
|
|
|
|
|
available).
|
2020-07-17 00:15:59 +02:00
|
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
|
|
### Site language
|
|
|
|
|
|
2020-07-20 15:18:09 +02:00
|
|
|
|
[:octicons-file-code-24: Source][1] · :octicons-milestone-24: Default: `en`
|
2020-07-17 00:15:59 +02:00
|
|
|
|
|
2020-07-23 13:17:50 +02:00
|
|
|
|
You can set the _site language_ in `mkdocs.yml` with:
|
2020-07-17 00:15:59 +02:00
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
theme:
|
|
|
|
|
language: en
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The following languages are supported:
|
|
|
|
|
|
2020-07-19 22:23:26 +02:00
|
|
|
|
<ul class="tx-columns">
|
2020-07-21 13:33:44 +02:00
|
|
|
|
<li><code>af</code> – Afrikaans</li>
|
|
|
|
|
<li><code>ar</code> – Arabic</li>
|
|
|
|
|
<li><code>bn</code> – Bengali (Bangla)</li>
|
|
|
|
|
<li><code>ca</code> – Catalan</li>
|
|
|
|
|
<li><code>cs</code> – Czech</li>
|
|
|
|
|
<li><code>da</code> – Danish</li>
|
|
|
|
|
<li><code>de</code> – German</li>
|
|
|
|
|
<li><code>en</code> – English</li>
|
2020-08-26 20:15:26 +02:00
|
|
|
|
<li><code>eo</code> – Esperanto</li>
|
2020-07-21 13:33:44 +02:00
|
|
|
|
<li><code>es</code> – Spanish</li>
|
|
|
|
|
<li><code>et</code> – Estonian</li>
|
|
|
|
|
<li><code>fa</code> – Persian (Farsi)</li>
|
|
|
|
|
<li><code>fi</code> – Finnish</li>
|
|
|
|
|
<li><code>fr</code> – French</li>
|
|
|
|
|
<li><code>gl</code> – Galician</li>
|
|
|
|
|
<li><code>gr</code> – Greek</li>
|
|
|
|
|
<li><code>he</code> – Hebrew</li>
|
|
|
|
|
<li><code>hi</code> – Hindi</li>
|
|
|
|
|
<li><code>hr</code> – Croatian</li>
|
|
|
|
|
<li><code>hu</code> – Hungarian</li>
|
|
|
|
|
<li><code>id</code> – Indonesian</li>
|
|
|
|
|
<li><code>it</code> – Italian</li>
|
|
|
|
|
<li><code>ja</code> – Japanese</li>
|
|
|
|
|
<li><code>kr</code> – Korean</li>
|
|
|
|
|
<li><code>my</code> – Burmese</li>
|
|
|
|
|
<li><code>nl</code> – Dutch</li>
|
|
|
|
|
<li><code>nn</code> – Norwegian (Nynorsk)</li>
|
|
|
|
|
<li><code>no</code> – Norwegian</li>
|
|
|
|
|
<li><code>pl</code> – Polish</li>
|
|
|
|
|
<li><code>pt</code> – Portuguese</li>
|
|
|
|
|
<li><code>ro</code> – Romanian</li>
|
|
|
|
|
<li><code>ru</code> – Russian</li>
|
|
|
|
|
<li><code>sh</code> – Serbo-Croatian</li>
|
|
|
|
|
<li><code>si</code> – Slovenian</li>
|
|
|
|
|
<li><code>sk</code> – Slovak</li>
|
|
|
|
|
<li><code>sr</code> – Serbian</li>
|
|
|
|
|
<li><code>sv</code> – Swedish</li>
|
|
|
|
|
<li><code>th</code> – Thai</li>
|
|
|
|
|
<li><code>tr</code> – Turkish</li>
|
|
|
|
|
<li><code>uk</code> – Ukrainian</li>
|
|
|
|
|
<li><code>vi</code> – Vietnamese</li>
|
|
|
|
|
<li><code>zh</code> – Chinese (Simplified)</li>
|
|
|
|
|
<li><code>zh-Hant</code> – Chinese (Traditional)</li>
|
|
|
|
|
<li><code>zh-TW</code> – Chinese (Taiwanese)</li>
|
2020-07-17 00:15:59 +02:00
|
|
|
|
<li>
|
|
|
|
|
<a href="https://bit.ly/38F5RCa">
|
|
|
|
|
Add language
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2020-09-06 13:35:18 +02: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]._
|
|
|
|
|
|
2020-07-17 00:15:59 +02:00
|
|
|
|
[1]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/language/en.html
|
2020-09-06 13:36:25 +02:00
|
|
|
|
[2]: setting-up-navigation.md#slugify
|
2020-07-17 00:15:59 +02:00
|
|
|
|
|
2020-07-19 22:23:26 +02:00
|
|
|
|
### Site search language
|
2020-07-17 00:15:59 +02:00
|
|
|
|
|
2020-09-06 13:35:18 +02:00
|
|
|
|
[:octicons-file-code-24: Source][3] ·
|
2020-07-20 15:18:09 +02:00
|
|
|
|
:octicons-milestone-24: Default: _automatically set_
|
2020-07-17 00:15:59 +02:00
|
|
|
|
|
2020-07-17 13:08:27 +02:00
|
|
|
|
Some languages, like Arabic or Japanese, need dedicated stemmers for search to
|
2020-09-06 13:35:18 +02:00
|
|
|
|
work properly. Material for MkDocs relies on [lunr-languages][4] to provide this
|
|
|
|
|
functionality. See the guide detailing how to [set up site search][5] for
|
2020-07-20 19:28:13 +02:00
|
|
|
|
more information.
|
2020-07-17 13:08:27 +02:00
|
|
|
|
|
2020-09-06 13:35:18 +02:00
|
|
|
|
[3]: https://github.com/squidfunk/mkdocs-material/blob/master/src/assets/javascripts/integrations/search/worker/main/index.ts#L49-L69
|
|
|
|
|
[4]: https://github.com/MihaiValentin/lunr-languages
|
|
|
|
|
[5]: setting-up-site-search.md
|
2020-07-17 13:08:27 +02:00
|
|
|
|
|
|
|
|
|
### Directionality
|
|
|
|
|
|
2020-09-06 13:35:18 +02:00
|
|
|
|
[:octicons-file-code-24: Source][6] ·
|
2020-07-20 15:18:09 +02:00
|
|
|
|
:octicons-milestone-24: Default: _automatically set_
|
2020-07-17 13:08:27 +02:00
|
|
|
|
|
2020-07-17 00:15:59 +02:00
|
|
|
|
While many languages are read `ltr` (left-to-right), Material for MkDocs also
|
2020-07-21 13:33:44 +02:00
|
|
|
|
supports `rtl` (right-to-left) _directionality_ which is inferred from the
|
2020-07-17 00:15:59 +02:00
|
|
|
|
selected language, but can also be set with:
|
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
theme:
|
|
|
|
|
direction: ltr
|
|
|
|
|
```
|
|
|
|
|
|
2020-07-26 14:46:09 +02:00
|
|
|
|
:material-cursor-default-click-outline: Click on a tile to change the
|
2020-07-17 00:15:59 +02:00
|
|
|
|
directionality:
|
|
|
|
|
|
2020-07-19 22:23:26 +02:00
|
|
|
|
<div class="tx-switch">
|
|
|
|
|
<button data-md-dir="ltr"><code>ltr</code></button>
|
|
|
|
|
<button data-md-dir="rtl"><code>rtl</code></button>
|
|
|
|
|
</div>
|
2020-07-17 00:15:59 +02:00
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
var buttons = document.querySelectorAll("button[data-md-dir]")
|
|
|
|
|
buttons.forEach(function(button) {
|
|
|
|
|
button.addEventListener("click", function() {
|
2020-07-17 13:08:27 +02:00
|
|
|
|
var attr = this.getAttribute("data-md-dir")
|
|
|
|
|
document.body.dir = attr
|
2020-07-17 00:15:59 +02:00
|
|
|
|
var name = document.querySelector("#__code_1 code span:nth-child(5)")
|
2020-07-17 13:08:27 +02:00
|
|
|
|
name.textContent = attr
|
2020-07-17 00:15:59 +02:00
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|
|
2020-09-06 13:35:18 +02:00
|
|
|
|
[6]: https://github.com/squidfunk/mkdocs-material/blob/master/src/base.html#L168
|
2020-07-17 14:33:52 +02:00
|
|
|
|
|
|
|
|
|
## Customization
|
|
|
|
|
|
2020-07-23 13:17:50 +02:00
|
|
|
|
### Custom translations
|
2020-07-21 16:01:22 +02:00
|
|
|
|
|
2020-07-20 15:18:09 +02:00
|
|
|
|
[:octicons-file-code-24: Source][1] ·
|
2020-07-21 16:01:22 +02:00
|
|
|
|
:octicons-mortar-board-24: Difficulty: _easy_
|
2020-07-20 15:18:09 +02:00
|
|
|
|
|
2020-07-17 14:33:52 +02:00
|
|
|
|
If you want to customize some (or all) of the translations for your language,
|
2020-09-06 13:35:18 +02:00
|
|
|
|
you may follow the guide on [theme extension][7] and create a new partial in
|
2020-07-17 14:33:52 +02:00
|
|
|
|
`partials/language`, e.g. `en-custom.html`. Next, look up the translation you
|
2020-07-23 13:17:50 +02: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 14:33:52 +02:00
|
|
|
|
|
2020-07-27 14:44:47 +02:00
|
|
|
|
``` html
|
2020-07-17 14:33:52 +02:00
|
|
|
|
{% macro t(key) %}{{ {
|
|
|
|
|
"toc.title": "On this page"
|
|
|
|
|
}[key] }}{% endmacro %}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Then, add the following lines to `mkdocs.yml`:
|
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
theme:
|
|
|
|
|
language: en-custom
|
|
|
|
|
```
|
|
|
|
|
|
2020-09-06 13:35:18 +02:00
|
|
|
|
[7]: ../customization.md#extending-the-theme
|