Вклад в проект
Caution
Текущие сопровождающие проекта исследуют автоматизацию интернационализации документации. Поэтому любые PR, связанные с интернационализацией/переводом документации, НЕ будут приниматься!
Пожалуйста, НЕ отправляйте PR, связанные с интернационализацией/переводом документации!
Спасибо за ваш интерес к этому проекту! Прежде чем начать вносить свой вклад, пожалуйста, уделите немного времени, чтобы прочитать следующие рекомендации, чтобы ваш вклад мог быть легко принят.
Типы вкладов, которые не принимаются
- Интернационализация/перевод документации
- Вклад в основную инфраструктуру, например, HTTP API и т. д.
- Проблемы, явно помеченные как "No help needed" (включая проблемы в репозиториях Byaidu/PDFMathTranslate и PDFMathTranslate-next/PDFMathTranslate-next).
- Другие вклады, которые модераторы сочтут неуместными.
- Вклад в документацию, но изменение документации на языках, отличных от английского.
- PR, требующие изменения файлов PDF.
- PR, изменяющие файл
pdf2zh_next/gui_translation.yaml.
Пожалуйста, НЕ отправляйте PR, связанные с вышеуказанными типами.
Note
Если вы хотите внести вклад в документацию, пожалуйста, изменяйте только английскую версию документации. Другие языковые версии переводятся самими участниками.
- Any changes to the core functionality of pdf2zh (including, but not limited to, changes to the translation engine, changes to the translation process, etc.)
- Any changes to the CLI interface
- Any changes to the configuration file format
- Any changes to the output file format
- Any changes to the project structure
OUTPUT
PR, которые рекомендуется обсудить с сопровождающими через Issue перед отправкой
- Любые изменения в основной функциональности pdf2zh (включая, но не ограничиваясь, изменениями в механизме перевода, изменениями в процессе перевода и т.д.)
- Любые изменения в интерфейсе CLI
- Любые изменения в формате файла конфигурации
- Любые изменения в формате выходного файла
-
Любые изменения в структуре проекта
-
Any changes to the core functionality of pdf2zh (including, but not limited to, changes to the translation engine, changes to the translation process, etc.)
- Any changes to the CLI interface
- Any changes to the configuration file format
- Any changes to the output file format
- Any changes to the project structure
OUTPUT
Для следующих типов PR рекомендуется сначала обсудить их с сопровождающими перед отправкой: - [ ] Любые изменения в основной функциональности pdf2zh (включая, но не ограничиваясь, изменениями в механизме перевода, изменениями в процессе перевода и т.д.) - [ ] Любые изменения в интерфейсе CLI - [ ] Любые изменения в формате файла конфигурации - [ ] Любые изменения в формате выходного файла - [ ] Любые изменения в структуре проекта
- PRs related to the addition of new translation engines (especially those requiring API keys). (This project aims to provide open-source, free translation engines. If you wish to add a new translation engine, please ensure it is open-source and free. If you need to use paid engines, please fork the project and use it yourself).
- PRs related to the addition of new file formats. (This project is focused on PDF to Markdown conversion. If you need to convert other file formats, please use other tools).
- PRs that significantly alter the project's direction or add new features that are not aligned with the project's goals.
OUTPUT
- PR, связанные с функциональностью многопользовательского доступа. (Этот проект в первую очередь предназначен для использования одним пользователем и не планирует внедрять полноценную многопользовательскую систему).
- PR, связанные с добавлением новых механизмов перевода (особенно тех, которые требуют API-ключи). (Этот проект нацелен на предоставление открытых и бесплатных механизмов перевода. Если вы хотите добавить новый механизм перевода, убедитесь, что он является открытым и бесплатным. Если вам необходимо использовать платные механизмы, пожалуйста, форкните проект и используйте его самостоятельно).
- PR, связанные с добавлением новых форматов файлов. (Этот проект сфокусирован на конвертации из PDF в Markdown. Если вам необходимо конвертировать другие форматы файлов, пожалуйста, используйте другие инструменты).
- PR, которые значительно изменяют направление проекта или добавляют новые функции, не соответствующие целям проекта.
Процесс внесения вклада
- Форкните этот репозиторий и клонируйте его локально.
- Создайте новую ветку:
git checkout -b feature/<feature-name>. - Разрабатывайте и убедитесь, что ваш код соответствует требованиям.
- Зафиксируйте изменения:
- Отправьте изменения в ваш репозиторий:
git push origin feature/<feature-name>. - Создайте PR на GitHub, предоставьте подробное описание и запросите проверку у @awwaawwa.
- Убедитесь, что все автоматические проверки пройдены.
Tip
Вам не нужно ждать, пока разработка будет полностью завершена, чтобы создать PR. Создание PR на раннем этапе позволяет нам проверить вашу реализацию и дать рекомендации.
Если у вас есть вопросы по исходному коду или связанным вопросам, пожалуйста, свяжитесь с сопровождающим по адресу [email protected].
Файлы ресурсов для версии 2.0 доступны в BabelDOC. Код для загрузки связанных ресурсов находится в BabelDOC. Если вы хотите добавить новые файлы ресурсов, пожалуйста, свяжитесь с сопровождающим BabelDOC по адресу [email protected].
Основные требования
1. Рабочий процесс
- Пожалуйста, создайте форк из ветки
mainи разрабатывайте на своей форкнутой ветке. - При отправке Pull Request (PR) предоставьте подробное описание ваших изменений.
- Если ваш PR не проходит автоматические проверки (обозначается как
checks failedс красным крестиком), пожалуйста, просмотрите соответствующиеdetailsи внесите изменения в свою заявку, чтобы новый PR прошел все проверки.
2. Разработка и тестирование
- Для разработки и тестирования используйте команду
pip install -e ..
3. Форматирование кода
- Настройте инструмент
pre-commitи включитеblackиflake8для форматирования кода.
4. Обновление зависимостей
- Если вы добавляете новые зависимости, пожалуйста, своевременно обновляйте список зависимостей в файле
pyproject.toml.
5. Обновления документации
- Если вы добавляете новые параметры командной строки, пожалуйста, обновите список параметров командной строки во всех языковых версиях файла
README.mdсоответствующим образом.
6. Сообщения коммитов
- Используйте Conventional Commits, например:
feat(translator): add openai.
7. Стиль кодирования
- Убедитесь, что ваш код соответствует базовым стандартам стиля кодирования.
- Используйте либо snake_case, либо camelCase для именования переменных.
8. Форматирование документации
- Для форматирования
README.mdследуйте Chinese Copywriting Guidelines. - Убедитесь, что документация на английском и китайском языках всегда актуальна; обновления документации на других языках необязательны.
Добавление движка перевода
- Добавьте новый класс конфигурации переводчика в файл
pdf2zh/config/translate_engine_model.py. - Добавьте экземпляр нового класса конфигурации переводчика в псевдоним типа
TRANSLATION_ENGINE_SETTING_TYPEв том же файле. - Добавьте новый класс реализации переводчика в папку
pdf2zh/translator/translator_impl.
Note
Этот проект не предназначен для поддержки каких-либо движков перевода с RPS (запросов в секунду) ниже 4. Пожалуйста, не предлагайте поддержку для таких движков. Следующие типы переводчиков также не будут интегрированы: - Переводчики, поддержка которых прекращена вышестоящими разработчиками (например, deeplx) - Переводчики с большими зависимостями (например, те, которые зависят от pytorch) - Нестабильные переводчики - Переводчики, основанные на обратном инжиниринге API
Если вы не уверены, соответствует ли переводчик требованиям, вы можете создать issue для обсуждения с сопровождающими.
Структура проекта
- config folder: Система конфигурации.
- translator folder: Реализации, связанные с переводчиком.
- gui.py: Предоставляет графический интерфейс.
- const.py: Некоторые константы.
- main.py: Предоставляет инструмент командной строки.
- high_level.py: Высокоуровневые интерфейсы на основе BabelDOC.
- http_api.py: Предоставляет HTTP API (не запущено).
Спросите ИИ, чтобы понять проект: DeepWiki
Свяжитесь с нами
Если у вас есть какие-либо вопросы, отправьте отзыв через Issue или присоединяйтесь к нашей группе в Telegram. Спасибо за ваш вклад!
Tip
Immersive Translate спонсирует ежемесячные коды Pro-подписки для активных участников этого проекта. Подробности смотрите здесь: Правила вознаграждения участников BabelDOC/PDFMathTranslate