Contribution
Le dépôt est Hoyasumii/librétranslate, géré avec pnpm (Node.js 20 ou plus).
pnpm install # dependencies, plus the git hooks (husky)
pnpm build # tsc → dist/ (CommonJS + .d.ts)
pnpm test:unit # jest, with a fake LibreTranslate on node:http (no network)
pnpm test:live # against a real instance (.env.test, from env.example)
pnpm check:types # tsc --noEmit over src, tests and scripts
pnpm check:lint # oxlint (`pnpm fix:lint` fixes what it can)
pnpm check:format # oxfmt, 120 columns (`pnpm fix:format` rewrites)
pnpm check:knip # unused files, exports and dependencies
Chaque script est multiplateforme : non rm, $VAR ou VAR=1 cmd. .gitattributes garde LF, avec .cmd/.vbs en
CRLF.
Les chèques passent localement par les crochets git. pre-commit pistes check:lint et check:format, commit-msg
exécute commitlint avec la configuration conventionnelle (feat: …, fix(mcp): …), et pre-push pistes check:types,
check:knip et test:unit.
Chaque poussée vers main exécute le workflow de livraison continue (.github/workflows/cd.yml) . Il exécute les mêmes
vérifications et la construction, puis:
- publie
package.jsonversion à npm lorsque cette version n'est pas encore dans le registre (par Trusted Publishing, avec provenance), l'étiquettev<version>et ouvre une GitHub libération; - construit le site et le déploie
gh-pagesbranche quand la poussée touchewebsite/ousrc/(une opération manuelle du workflow le déploie toujours).
Pour libérer, bosse version en package.json et fusionner à main.
Code produit
pnpm codegen # spec/openapi.yml → src/generated/ (orval) and src/mcp/generated/catalog.json
pnpm codegen:mcp # only the MCP catalog (a unit test fails when it is stale)
spec/openapi.yml est la source unique: un OpenAPI 3.1 description des LibreTranslate API écrite pour ce paquet à
partir de la documentation publique API et les réponses d'une instance en cours d'exécution. orval.config.ts génère la
fetch fonctions (par src/transport.ts), les types de modèles et zod Les schémas. Ne jamais modifier src/generated/
à la main: changer les spécifications et courir pnpm codegen.
Pour suivre un changement dans l'API : mettre à jour les spécifications, lancer pnpm codegen, ajuster src/client.ts
et les outils si une méthode change, et le vérifier contre une instance réelle avec pnpm test:live.
Ce paquet est MIT et reste indépendant: il décrit l'API à partir de sa documentation et son comportement observable, et ne copie jamais le code de la LibreTranslate projet ou son serveur MCP (les deux AGPL-3.0) .
Ce site
Le site est un Docusaurus paquet espace de travail dans website/, en anglais et portugais (Brésil).
pnpm docs:dev # preview (append `--locale pt-BR` for the translation)
pnpm docs:build # build every locale into website/build/
pnpm docs:serve # serve the build (search only works on a build)
GIT_USER=<user> pnpm docs:deploy # build and push to the gh-pages branch
- Les guides sont simples Markdown in
website/docs/, page miroir pour la page danswebsite/i18n/pt-BR/docusaurus-plugin-content-docs/current/: changer les deux ensemble. - Les Référence API est généré à partir de
src/index.tsetsrc/mcp/index.tspar TypeDoc sur chaque construction anglaise. llms.txtetllms-full.txtsont générés à la racine du site à partir des guides anglais sur chaque construction.