Contribuir al proyecto
Caution
Los mantenedores actuales del proyecto están investigando la internacionalización automatizada de la documentación. Por lo tanto, ¡NO se aceptarán PRs relacionados con la internacionalización/traducción de la documentación!
¡Por favor, NO envíes PRs relacionados con la internacionalización/traducción de la documentación!
Gracias por tu interés en este proyecto. Antes de empezar a contribuir, por favor tómate un tiempo para leer las siguientes pautas para asegurar que tu contribución pueda ser aceptada sin problemas.
Tipos de contribuciones no aceptadas
- Internacionalización/traducción de documentación
- Contribuciones relacionadas con la infraestructura central, como API HTTP, etc.
- Problemas marcados explícitamente como "No se necesita ayuda" (incluyendo problemas en los repositorios Byaidu/PDFMathTranslate y PDFMathTranslate/PDFMathTranslate-next).
- Otras contribuciones consideradas inapropiadas por los mantenedores.
- Contribuir a la documentación, pero modificando la documentación en idiomas distintos al inglés.
- PRs que requieran modificar archivos PDF.
- PRs que modifiquen el archivo
pdf2zh_next/gui_translation.yaml
.
Por favor, NO envíes PRs relacionados con los tipos mencionados anteriormente.
Note
Si deseas contribuir con la documentación, por favor solo modifiques la versión en inglés de la documentación. Las versiones en otros idiomas son traducidas por los propios colaboradores.
Proceso de contribución
- Haz un fork de este repositorio y clónalo localmente.
- Crea una nueva rama:
git checkout -b feature/<feature-name>
. - Desarrolla y asegúrate de que tu código cumpla con los requisitos.
- Confirma tus cambios:
- Sube los cambios a tu repositorio:
git push origin feature/<feature-name>
. - Crea un PR en GitHub, proporciona una descripción detallada y solicita una revisión a @awwaawwa.
- Asegúrate de que todas las verificaciones automatizadas pasen.
Tip
No es necesario esperar hasta que tu desarrollo esté completamente terminado para crear un PR. Crear uno temprano nos permite revisar tu implementación y proporcionar sugerencias.
Si tienes alguna pregunta sobre el código fuente o asuntos relacionados, por favor contacta al mantenedor en [email protected].
Los archivos de recursos para la versión 2.0 se comparten con BabelDOC. El código para descargar los recursos relacionados está en BabelDOC. Si deseas agregar nuevos archivos de recursos, por favor contacta al mantenedor de BabelDOC en [email protected].
Requisitos básicos
1. Flujo de trabajo
- Por favor, haz un fork desde la rama
main
y desarrolla en tu rama bifurcada. - Al enviar una Pull Request (PR), proporciona una descripción detallada de tus cambios.
- Si tu PR no pasa las verificaciones automatizadas (indicadas por
checks failed
y una cruz roja), revisa losdetails
correspondientes y modifica tu envío para asegurar que la nueva PR pase todas las verificaciones.
2. Desarrollo y Pruebas
- Usa el comando
pip install -e .
para desarrollo y pruebas.
3. Formato de código
- Configura la herramienta
pre-commit
y habilitablack
yflake8
para el formato del código.
4. Actualizaciones de dependencias
- Si introduces nuevas dependencias, actualiza la lista de dependencias en el archivo
pyproject.toml
de manera oportuna.
5. Actualizaciones de documentación
- Si agregas nuevas opciones de línea de comandos, por favor actualiza la lista de opciones de línea de comandos en todas las versiones de idioma del archivo
README.md
correspondientemente.
6. Mensajes de commit
- Usa Conventional Commits, por ejemplo:
feat(translator): add openai
.
7. Estilo de codificación
- Asegúrate de que el código enviado cumpla con los estándares básicos de estilo de codificación.
- Utiliza snake_case o camelCase para el nombrado de variables.
8. Formato de documentación
- Para el formato de
README.md
, sigue las Directrices de redacción en chino. - Asegúrate de que tanto la documentación en inglés como en chino estén siempre actualizadas; las actualizaciones de la documentación en otros idiomas son opcionales.
Agregar un motor de traducción
- Agrega una nueva clase de configuración de traductor en el archivo
pdf2zh/config/translate_engine_model.py
. - Agrega una instancia de la nueva clase de configuración de traductor al alias de tipo
TRANSLATION_ENGINE_SETTING_TYPE
en el mismo archivo. - Agrega la nueva clase de implementación de traductor en la carpeta
pdf2zh/translator/translator_impl
.
Note
Este proyecto no tiene la intención de admitir ningún motor de traducción con un RPS (solicitudes por segundo) inferior a 4. Por favor, no envíe soporte para dichos motores. Los siguientes tipos de traductores tampoco se integrarán: - Traductores que han sido discontinuados por los mantenedores upstream (como deeplx) - Traductores con grandes dependencias (como aquellos que dependen de pytorch) - Traductores inestables - Traductores basados en API de ingeniería inversa
Cuando no esté seguro de si un traductor cumple con los requisitos, puede enviar un problema para discutirlo con los mantenedores.
Estructura del proyecto
- config folder: Sistema de configuración.
- translator folder: Implementaciones relacionadas con el traductor.
- gui.py: Proporciona la interfaz gráfica de usuario.
- const.py: Algunas constantes.
- main.py: Proporciona la herramienta de línea de comandos.
- high_level.py: Interfaces de alto nivel basadas en BabelDOC.
- http_api.py: Proporciona API HTTP (no iniciado).
Contáctanos
Si tienes alguna pregunta, por favor envía tus comentarios a través de Issue o únete a nuestro Grupo de Telegram. ¡Gracias por tu contribución!
Tip
Immersive Translate patrocina códigos de membresía Pro mensuales para los contribuyentes activos de este proyecto. Para más detalles, consulta: Reglas de recompensa para contribuyentes de BabelDOC/PDFMathTranslate