]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add docs lang selector widget (#2542)
authorSebastián Ramírez <tiangolo@gmail.com>
Sat, 19 Dec 2020 19:54:02 +0000 (20:54 +0100)
committerGitHub <noreply@github.com>
Sat, 19 Dec 2020 19:54:02 +0000 (20:54 +0100)
* ✨ Add language selector widget

* 🔧 Update script to re-generate MkDocs configs, including langs widget

* 🔧 Update languages MkDocs configs, with lang selector widget

13 files changed:
docs/en/mkdocs.yml
docs/es/mkdocs.yml
docs/fr/mkdocs.yml
docs/it/mkdocs.yml
docs/ja/mkdocs.yml
docs/ko/mkdocs.yml
docs/pt/mkdocs.yml
docs/ru/mkdocs.yml
docs/sq/mkdocs.yml
docs/tr/mkdocs.yml
docs/uk/mkdocs.yml
docs/zh/mkdocs.yml
scripts/docs.py

index 314f81140064d71a16ea7048e6238e53a1db5c4e..804813df259a2719f0da1eb19494e5380fc026f6 100644 (file)
@@ -183,6 +183,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - css/termynal.css
 - css/custom.css
index ae178487d681bd1a67bfd80863fe7382e2443f96..16a6301a891bff0c01209bf277d34862d6e7428a 100644 (file)
@@ -87,6 +87,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index 5ce390c261a3ce820b3d2802227abfdfdd3e0aa0..ad3aa6303b00cf83fc8ba2a669b64384e3b2bd46 100644 (file)
@@ -80,6 +80,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index 11c4a2e4d6ec66ee1d652b98d3a05cb1612ed977..9a234987b987c1a4ac3e9d994f86210db1653da0 100644 (file)
@@ -80,6 +80,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index ea591d41d17dcd6420ebd21286ee63d928e7a264..c264230af36bdf5d7993ddbe02bebb5444cf0a81 100644 (file)
@@ -102,6 +102,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index f196175ce71f83d753b45ff41cdf5ccba1970b9e..6607887d09a617ae8c04256408b2c4d9d692ddb1 100644 (file)
@@ -80,6 +80,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index b1e813ec5101fec39a40a6fc785c2d9e66e2a978..acb50b95cf0847c37c42b9ee2ad89281bed01c34 100644 (file)
@@ -88,6 +88,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index 695363a5b94a545ebdbab9ae95d06f3d4a3c6950..dae88dc07c6e475240e264c09af7a1495f4eb43e 100644 (file)
@@ -80,6 +80,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index 2bab20d24b29a5dad16a0e1cf2bc69e7b23f15bb..f447c13399df375b06a772d98109052a5bf4a419 100644 (file)
@@ -80,6 +80,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index a26b255d68f384ad92128d7a44cf597dd5d2fe8c..6579cda913b25a04a219272c06ea5901725fbf97 100644 (file)
@@ -80,6 +80,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index a4d095a93e30eb01ef4a0fac870aaca66ace463e..bc19ac946efad4db99301019cb9e6a54462e7bd9 100644 (file)
@@ -80,6 +80,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index 99916e4c2ca2b704d2a1fe5465a3a24220582cdd..f02bc7d886f8d752cb7833f6e02042d7b2c1458f 100644 (file)
@@ -107,6 +107,31 @@ extra:
     link: https://medium.com/@tiangolo
   - icon: fontawesome/solid/globe
     link: https://tiangolo.com
+  alternate:
+  - link: /
+    name: en - English
+  - link: /es/
+    name: es - español
+  - link: /fr/
+    name: fr - français
+  - link: /it/
+    name: it - italiano
+  - link: /ja/
+    name: ja - 日本語
+  - link: /ko/
+    name: ko - 한국어
+  - link: /pt/
+    name: pt - português
+  - link: /ru/
+    name: ru - русский язык
+  - link: /sq/
+    name: sq - shqip
+  - link: /tr/
+    name: tr - Türkçe
+  - link: /uk/
+    name: uk - українська мова
+  - link: /zh/
+    name: zh - 汉语
 extra_css:
 - https://fastapi.tiangolo.com/css/termynal.css
 - https://fastapi.tiangolo.com/css/custom.css
index b8d162f6387eff41d1fcf90cfd842c7ebe86c749..b206e9157d1181da3923431ca07963923c0e22ec 100644 (file)
@@ -4,7 +4,7 @@ import shutil
 from http.server import HTTPServer, SimpleHTTPRequestHandler
 from multiprocessing import Pool
 from pathlib import Path
-from typing import Dict, Optional, Tuple
+from typing import Dict, List, Optional, Tuple
 
 import mkdocs.commands.build
 import mkdocs.commands.serve
@@ -364,12 +364,24 @@ def update_config(lang: str):
         config["nav"] = current_config["nav"]
         config["theme"]["language"] = current_config["theme"]["language"]
     languages = [{"en": "/"}]
-    for lang in get_lang_paths():
-        if lang.name == "en" or not lang.is_dir():
+    alternate: List[Dict[str, str]] = config["extra"].get("alternate", [])
+    alternate_dict = {alt["link"]: alt["name"] for alt in alternate}
+    new_alternate: List[Dict[str, str]] = []
+    for lang_path in get_lang_paths():
+        if lang_path.name == "en" or not lang_path.is_dir():
             continue
-        name = lang.name
+        name = lang_path.name
         languages.append({name: f"/{name}/"})
+    for lang_dict in languages:
+        name = list(lang_dict.keys())[0]
+        url = lang_dict[name]
+        if url not in alternate_dict:
+            new_alternate.append({"link": url, "name": name})
+        else:
+            use_name = alternate_dict[url]
+            new_alternate.append({"link": url, "name": use_name})
     config["nav"][1] = {"Languages": languages}
+    config["extra"]["alternate"] = new_alternate
     config_path.write_text(
         yaml.dump(config, sort_keys=False, width=200, allow_unicode=True),
         encoding="utf-8",