Если Вы уже склонировали репозиторий и знаете, что Вам нужно более глубокое погружение в код фреймворка, то здесь представлены некоторые инструкции по настройке виртуального окружения.
Эта команда создаст директорию ./env/ с бинарными (двоичными) файлами Python, а затем Вы сможете скачивать и устанавливать необходимые библиотеки в изолированное виртуальное окружение.
Каждый раз, перед установкой новой библиотеки в виртуальное окружение при помощи pip, не забудьте активировать это виртуальное окружение.
Это гарантирует, что если Вы используете библиотеку, установленную этим пакетом, то Вы используете библиотеку из Вашего локального окружения, а не любую другую, которая может быть установлена глобально.
Если Вы создаёте Python файл, который импортирует и использует FastAPI,а затем запускаете его интерпретатором Python из Вашего локального окружения, то он будет использовать код из локального FastAPI.
И, так как при вводе вышеупомянутой команды был указан флаг -e, если Вы измените код локального FastAPI, то при следующем запуске этого файла, он будет использовать свежую версию локального FastAPI, который Вы только что изменили.
Таким образом, Вам не нужно "переустанавливать" Вашу локальную версию, чтобы протестировать каждое изменение.
Чтобы он сортировал их правильно, необходимо, чтобы FastAPI был установлен локально в Вашей среде, с помощью команды из раздела выше, использующей флаг -e.
Проверьте проблемы и вопросы, чтобы узнать, есть ли кто-то, координирующий переводы для Вашего языка.
Добавляйте один пул-реквест для каждой отдельной переведённой страницы. Это значительно облегчит другим его просмотр.
Для языков, которые я не знаю, прежде чем добавить перевод в основную ветку, я подожду пока несколько других участников сообщества проверят его.
Вы также можете проверить, есть ли переводы для Вашего языка и добавить к ним отзыв, который поможет мне убедиться в правильности перевода. Тогда я смогу объединить его с основной веткой.
Используйте те же самые примеры кода Python. Переводите только текст документации. Вам не нужно ничего менять, чтобы эти примеры работали.
Используйте те же самые изображения, имена файлов и ссылки. Вы не должны менять ничего для сохранения работоспособности.
Чтобы узнать 2-буквенный код языка, на который Вы хотите сделать перевод, Вы можете воспользоваться таблицей Список кодов языков ISO 639-1.
Допустим, Вы хотите перевести страницу на язык, на котором уже есть какие-то переводы, например, на испанский.
Кодом испанского языка является es. А значит директория для переводов на испанский язык: docs/es/.
Подсказка
Главный ("официальный") язык - английский, директория для него docs/en/.
Вы можете запустить сервер документации на испанском:
fast →💬 Используйте команду "live" и передайте код языка в качестве аргумента командной строкиpython ./scripts/docs.py live es [INFO] Serving on http://127.0.0.1:8008 [INFO] Start watching changes [INFO] Start detecting changes
Теперь Вы можете перейти по адресу: http://127.0.0.1:8008 и наблюдать вносимые Вами изменения вживую.
Если Вы посмотрите на сайт документации FastAPI, то увидите, что все страницы есть на каждом языке. Но некоторые страницы не переведены и имеют уведомление об отсутствующем переводе.
Но когда Вы запускаете сайт локально, Вы видите только те страницы, которые уже переведены.
Предположим, что Вы хотите добавить перевод страницы Основные свойства.
Скопируйте файл:
docs/en/docs/features.md
Вставьте его точно в то же место, но в директорию языка, на который Вы хотите сделать перевод, например:
docs/es/docs/features.md
Подсказка
Заметьте, что в пути файла мы изменили только код языка с en на es.
Теперь откройте файл конфигурации MkDocs для английского языка, расположенный тут:
docs/en/mkdocs.yml
Найдите в файле конфигурации место, где расположена строка docs/features.md. Похожее на это:
site_name:FastAPI# More stuffnav:-FastAPI:index.md-Languages:-en:/-es:/es/-features.md
Откройте файл конфигурации MkDocs для языка, на который Вы переводите, например:
docs/es/mkdocs.yml
Добавьте строку docs/features.md точно в то же место, как и в случае для английского, как-то так:
site_name:FastAPI# More stuffnav:-FastAPI:index.md-Languages:-en:/-es:/es/-features.md
Убедитесь, что при наличии других записей, новая запись с Вашим переводом находится точно в том же порядке, что и в английской версии.
Если Вы зайдёте в свой браузер, то увидите, что в документации стал отображаться Ваш новый раздел.🎉
Теперь Вы можете переводить эту страницу и смотреть, как она выглядит при сохранении файла.
Допустим, Вы хотите добавить перевод для языка, на который пока что не переведена ни одна страница.
Скажем, Вы решили сделать перевод для креольского языка, но его еще нет в документации.
Перейдите в таблицу кодов языков по ссылке указанной выше, где найдёте, что кодом креольского языка является ht.
Затем запустите скрипт, генерирующий директорию для переводов на новые языки:
fast →💬 Используйте команду new-lang и передайте код языка в качестве аргумента командной строкиpython ./scripts/docs.py new-lang ht Successfully initialized: docs/ht Updating ht Updating en
Когда Вы запускаете скрипт ./scripts/docs.py с командой live, то будут показаны файлы и переводы для указанного языка.
Но когда Вы закончите, то можете посмотреть, как это будет выглядеть по-настоящему.
Для этого сначала создайте всю документацию:
fast →💬 Используйте команду "build-all", это займёт немного времениpython ./scripts/docs.py build-all Updating es Updating en Building docs for: en Building docs for: es Successfully built docs for: es Copying en index.md to README.md
Скрипт сгенерирует ./docs_build/ для каждого языка. Он добавит все файлы с отсутствующими переводами с пометкой о том, что "у этого файла еще нет перевода". Но Вам не нужно ничего делать с этим каталогом.
Затем он создаст независимые сайты MkDocs для каждого языка, объединит их и сгенерирует конечный результат на ./site/.
После чего Вы сможете запустить сервер со всеми языками командой serve:
fast →💬 Используйте команду "serve" после того, как отработает команда "build-all"python ./scripts/docs.py serve Warning: this is a very simple server. For development, use mkdocs serve instead. This is here only to preview a site with translations already built. Make sure you run the build-all command first. Serving at: http://127.0.0.1:8008
Эта команда создаст директорию ./htmlcov/, в которой будет файл ./htmlcov/index.html. Открыв его в Вашем браузере, Вы можете в интерактивном режиме изучить, все ли части кода охвачены тестами.