Si vous avez déjà cloné le dépôt et que vous savez que vous devez vous plonger dans le code, voici quelques directives pour mettre en place votre environnement.
Si celui-ci montre le binaire pip à env/bin/pip, alors ça a fonctionné. 🎉
Tip
Chaque fois que vous installez un nouveau paquet avec pip sous cet environnement, activez à nouveau l'environnement.
Cela permet de s'assurer que si vous utilisez un programme terminal installé par ce paquet (comme flit), vous utilisez celui de votre environnement local et pas un autre qui pourrait être installé globalement.
Si vous créez un fichier Python qui importe et utilise FastAPI, et que vous l'exécutez avec le Python de votre environnement local, il utilisera votre code source FastAPI local.
Et si vous mettez à jour le code source local de FastAPI, tel qu'il est installé avec --symlink (ou --pth-file sous Windows), lorsque vous exécutez à nouveau ce fichier Python, il utilisera la nouvelle version de FastAPI que vous venez d'éditer.
De cette façon, vous n'avez pas à "installer" votre version locale pour pouvoir tester chaque changement.
Il effectuera également un tri automatique de touts vos imports.
Pour qu'il puisse les trier correctement, vous devez avoir FastAPI installé localement dans votre environnement, avec la commande dans la section ci-dessus en utilisant --symlink (ou --pth-file sous Windows).
Comme il exécute une commande après l'autre et modifie et inverse de nombreux fichiers, il prend un peu plus de temps à s'exécuter, il pourrait donc être plus facile d'utiliser fréquemment scripts/format.sh et scripts/format-imports.sh seulement avant de commit.
Les instructions ici vous montrent comment utiliser le script à ./scripts/docs.py avec le programme python directement.
Mais vous pouvez également utiliser Typer CLI, et vous obtiendrez l'auto-complétion dans votre terminal pour les commandes après l'achèvement de l'installation.
Si vous installez Typer CLI, vous pouvez installer la complétion avec :
fast →typer --install-completion zsh completion installed in /home/user/.bashrc. Completion will take effect once you restart the terminal.
Vérifiez dans issues pour voir s'il y a une personne qui coordonne les traductions pour votre langue.
Ajoutez une seule pull request par page traduite. Il sera ainsi beaucoup plus facile pour les autres de l'examiner.
Pour les langues que je ne parle pas, je vais attendre plusieurs autres reviews de la traduction avant de merge.
Vous pouvez également vérifier s'il existe des traductions pour votre langue et y ajouter une review, ce qui m'aidera à savoir si la traduction est correcte et je pourrai la fusionner.
Utilisez les mêmes exemples en Python et ne traduisez que le texte des documents. Vous n'avez pas besoin de changer quoi que ce soit pour que cela fonctionne.
Utilisez les mêmes images, noms de fichiers et liens. Vous n'avez pas besoin de changer quoi que ce soit pour que cela fonctionne.
Pour vérifier le code à 2 lettres de la langue que vous souhaitez traduire, vous pouvez utiliser le tableau Liste des codes ISO 639-1.
Disons que vous voulez traduire une page pour une langue qui a déjà des traductions pour certaines pages, comme l'espagnol.
Dans le cas de l'espagnol, le code à deux lettres est es. Ainsi, le répertoire des traductions espagnoles se trouve à l'adresse docs/es/.
Tip
La langue principale ("officielle") est l'anglais, qui se trouve à l'adresse "docs/en/".
Maintenant, lancez le serveur en live pour les documents en espagnol :
fast →💬 Use the command "live" and pass the language code as a CLI argumentpython ./scripts/docs.py live es [INFO] Serving on http://127.0.0.1:8008 [INFO] Start watching changes [INFO] Start detecting changes
Vous pouvez maintenant aller sur http://127.0.0.1:8008 et voir vos changements en direct.
Si vous regardez le site web FastAPI docs, vous verrez que chaque langue a toutes les pages. Mais certaines pages ne sont pas traduites et sont accompagnées d'une notification concernant la traduction manquante.
Mais si vous le gérez localement de cette manière, vous ne verrez que les pages déjà traduites.
Disons maintenant que vous voulez ajouter une traduction pour la section Features.
Copiez le fichier à :
docs/en/docs/features.md
Collez-le exactement au même endroit mais pour la langue que vous voulez traduire, par exemple :
docs/es/docs/features.md
Tip
Notez que le seul changement dans le chemin et le nom du fichier est le code de langue, qui passe de en à es.
Ouvrez maintenant le fichier de configuration de MkDocs pour l'anglais à
docs/en/docs/mkdocs.yml
Trouvez l'endroit où cette docs/features.md se trouve dans le fichier de configuration. Quelque part comme :
site_name:FastAPI# More stuffnav:-FastAPI:index.md-Languages:-en:/-es:/es/-features.md
Ouvrez le fichier de configuration MkDocs pour la langue que vous éditez, par exemple :
docs/es/docs/mkdocs.yml
Ajoutez-le à l'endroit exact où il se trouvait pour l'anglais, par exemple :
site_name:FastAPI# More stuffnav:-FastAPI:index.md-Languages:-en:/-es:/es/-features.md
Assurez-vous que s'il y a d'autres entrées, la nouvelle entrée avec votre traduction est exactement dans le même ordre que dans la version anglaise.
Si vous allez sur votre navigateur, vous verrez que maintenant les documents montrent votre nouvelle section. 🎉
Vous pouvez maintenant tout traduire et voir à quoi cela ressemble au fur et à mesure que vous enregistrez le fichier.
Disons que vous voulez ajouter des traductions pour une langue qui n'est pas encore traduite, pas même quelques pages.
Disons que vous voulez ajouter des traductions pour le Créole, et que ce n'est pas encore dans les documents.
En vérifiant le lien ci-dessus, le code pour "Créole" est ht.
L'étape suivante consiste à exécuter le script pour générer un nouveau répertoire de traduction :
fast →💬 Use the command new-lang, pass the language code as a CLI argumentpython ./scripts/docs.py new-lang ht Successfully initialized: docs/ht Updating ht Updating en
Si, lors de l'exécution du script du serveur en direct, vous obtenez une erreur indiquant que la langue n'est pas prise en charge, quelque chose comme :
Lorsque vous utilisez le script à ./scripts/docs.py avec la commande live, il n'affiche que les fichiers et les traductions disponibles pour la langue courante.
Mais une fois que vous avez terminé, vous pouvez tester le tout comme il le ferait en ligne.
Pour ce faire, il faut d'abord construire tous les documents :
fast →💬 Use the command "build-all", this will take a bitpython ./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
Cela génère tous les documents à ./docs_build/ pour chaque langue. Cela inclut l'ajout de tout fichier dont la traduction est manquante, avec une note disant que "ce fichier n'a pas encore de traduction". Mais vous n'avez rien à faire avec ce répertoire.
Ensuite, il construit tous ces sites MkDocs indépendants pour chaque langue, les combine, et génère le résultat final à ./site/.
Ensuite, vous pouvez servir cela avec le commandement serve:
fast →💬 Use the command "serve" after running "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
Cette commande génère un répertoire ./htmlcov/, si vous ouvrez le fichier ./htmlcov/index.html dans votre navigateur, vous pouvez explorer interactivement les régions de code qui sont couvertes par les tests, et remarquer s'il y a une région manquante.