Contribuire al progetto
Caution
Gli attuali responsabili del progetto stanno ricercando l'internazionalizzazione automatizzata della documentazione. Pertanto, qualsiasi PR relativa all'internazionalizzazione/traduzione della documentazione NON sarà accettata!
Si prega di NON inviare PR relative all'internazionalizzazione/traduzione della documentazione!
Grazie per il tuo interesse in questo progetto! Prima di iniziare a contribuire, ti preghiamo di dedicare un po' di tempo a leggere le seguenti linee guida per assicurarti che il tuo contributo possa essere accettato senza problemi.
Tipi di Contributi Non Accettati
- Documentazione internazionalizzazione/traduzione
- Contributi relativi all'infrastruttura di base, come API HTTP, ecc.
- Problemi contrassegnati esplicitamente come "No help needed" (inclusi i problemi nei repository Byaidu/PDFMathTranslate e PDFMathTranslate-next/PDFMathTranslate-next).
- Altri contributi ritenuti inappropriati dai maintainer.
- Contribuire alla documentazione, ma modificando la documentazione in lingue diverse dall'inglese.
- PR che richiedono la modifica di file PDF.
- PR che modificano il file
pdf2zh_next/gui_translation.yaml.
Per favore NON inviare PR relativi ai tipi sopra menzionati.
Note
Se vuoi contribuire alla documentazione, modifica solo la versione inglese della documentazione. Le altre versioni linguistiche sono tradotte dai contributori stessi.
- New feature or major changes (e.g., adding a new translation service, changing the core architecture, etc.)
- Changes that may affect user experience (e.g., modifying the default configuration, changing the UI/UX, etc.)
- Changes that may affect performance (e.g., modifying the core algorithms, changing the caching strategy, etc.)
- Changes that may affect security (e.g., modifying the authentication mechanism, changing the data storage method, etc.)
- Changes that may affect compatibility (e.g., modifying the API, changing the data format, etc.)
- Changes that may affect the project's long-term maintenance (e.g., modifying the project structure, changing the dependency management method, etc.)
OUTPUT LANGUAGE
it
- New feature or major changes (e.g., adding a new translation service, changing the core architecture, etc.)
- Changes that may affect user experience (e.g., modifying the default configuration, changing the UI/UX, etc.)
- Changes that may affect performance (e.g., modifying the core algorithms, changing the caching strategy, etc.)
- Changes that may affect security (e.g., modifying the authentication mechanism, changing the data storage method, etc.)
- Changes that may affect compatibility (e.g., modifying the API, changing the data format, etc.)
- Changes that may affect the project's long-term maintenance (e.g., modifying the project structure, changing the dependency management method, etc.)
TRANSLATION
Per i seguenti tipi di PR, si consiglia di discutere prima con i maintainer prima dell' invio: - Nuove funzionalità o modifiche importanti (ad esempio, aggiungere un nuovo servizio di traduzione, modificare l' architettura core, ecc.) - Modifiche che potrebbero influenzare l' esperienza utente (ad esempio, modificare la configurazione predefinita, cambiare l' UI/UX, ecc.) - Modifiche che potrebbero influenzare le prestazioni (ad esempio, modificare gli algoritmi core, cambiare la strategia di caching, ecc.) - Modifiche che potrebbero influenzare la sicurezza (ad esempio, modificare il meccanismo di autenticazione, cambiare il metodo di archiviazione dei dati, ecc.) - Modifiche che potrebbero influenzare la compatibilità (ad esempio, modificare l' API, cambiare il formato dei dati, ecc.) - Modifiche che potrebbero influenzare la manutenzione a lungo termine del progetto (ad esempio, modificare la struttura del progetto, cambiare il metodo di gestione delle dipendenze, ecc.)
- PRs that involve modifying the project's core architecture or introducing new dependencies without sufficient justification.
- PRs that involve modifying the project's license or introducing new license restrictions.
- PRs that involve modifying the project's core functionality without sufficient testing or documentation.
TRANSLATED TEXT
- PR relativi alla funzionalità di condivisione multi-utente. (Questo progetto è progettato principalmente per l'uso da parte di un singolo utente e non intende introdurre un sistema multi-utente completo).
- PR che coinvolgono la modifica dell'architettura core del progetto o l'introduzione di nuove dipendenze senza una giustificazione sufficiente.
- PR che coinvolgono la modifica della licenza del progetto o l'introduzione di nuove restrizioni di licenza.
- PR che coinvolgono la modifica della funzionalità core del progetto senza test o documentazione sufficienti.
Processo di Contribuzione
- Forka questo repository e clonalo localmente.
- Crea un nuovo branch:
git checkout -b feature/<feature-name>. - Sviluppa e assicurati che il tuo codice soddisfi i requisiti.
- Esegui il commit del tuo codice:
- Esegui il push sul tuo repository:
git push origin feature/<feature-name>. - Crea una PR su GitHub, fornisci una descrizione dettagliata e richiedi una revisione da @awwaawwa.
- Assicurati che tutti i controlli automatizzati siano superati.
Tip
Non è necessario attendere che lo sviluppo sia completamente terminato per creare una PR. Crearne una in anticipo ci permette di esaminare la tua implementazione e fornire suggerimenti.
Se hai domande sul codice sorgente o su questioni correlate, contatta il maintainer all'indirizzo [email protected].
I file delle risorse per la versione 2.0 sono condivisi con BabelDOC. Il codice per scaricare le risorse correlate si trova in BabelDOC. Se desideri aggiungere nuovi file di risorse, contatta il maintainer di BabelDOC all'indirizzo [email protected].
Requisiti di base
1. Flusso di lavoro
- Si prega di effettuare il fork dal branch
maine sviluppare sul proprio branch forkato. - Quando si invia una Pull Request (PR), fornire una descrizione dettagliata delle modifiche apportate.
- Se la PR non supera i controlli automatizzati (indicati da
checks failede una croce rossa), si prega di rivedere i corrispondentidetailse modificare l'invio per garantire che la nuova PR superi tutti i controlli.
2. Sviluppo e Test
- Utilizzare il comando
pip install -e .per sviluppo e test.
3. Formattazione del Codice
- Configura lo strumento
pre-commite abilitablackeflake8per la formattazione del codice.
4. Aggiornamenti delle dipendenze
- Se introduci nuove dipendenze, aggiorna tempestivamente l'elenco delle dipendenze nel file
pyproject.toml.
5. Aggiornamenti della documentazione
- Se aggiungi nuove opzioni da riga di comando, aggiorna l'elenco delle opzioni da riga di comando in tutte le versioni linguistiche del file
README.mddi conseguenza.
6. Messaggi di Commit
- Utilizzare Conventional Commits, ad esempio:
feat(translator): add openai.
7. Stile di Codifica
- Assicurati che il codice inviato rispetti gli standard di base dello stile di codifica.
- Utilizza snake_case o camelCase per la denominazione delle variabili.
8. Formattazione della Documentazione
- Per la formattazione di
README.md, seguire le Linee guida per la scrittura in cinese. - Assicurarsi che la documentazione in inglese e cinese sia sempre aggiornata; gli aggiornamenti della documentazione in altre lingue sono facoltativi.
Aggiunta di un motore di traduzione
- Aggiungi una nuova classe di configurazione del traduttore nel file
pdf2zh/config/translate_engine_model.py. - Aggiungi un'istanza della nuova classe di configurazione del traduttore all'alias di tipo
TRANSLATION_ENGINE_SETTING_TYPEnello stesso file. - Aggiungi la nuova classe di implementazione del traduttore nella cartella
pdf2zh/translator/translator_impl.
Note
Questo progetto non intende supportare alcun motore di traduzione con un RPS (richieste al secondo) inferiore a 4. Si prega di non inviare supporto per tali motori. Anche i seguenti tipi di traduttori non verranno integrati: - Traduttori che sono stati interrotti dai manutentori upstream (come deeplx) - Traduttori con dipendenze pesanti (come quelli che dipendono da pytorch) - Traduttori instabili - Traduttori basati su API di reverse engineering
Quando non sei sicuro se un traduttore soddisfa i requisiti, puoi inviare un problema per discuterne con i manutentori.
Struttura del progetto
- config folder: Sistema di configurazione.
- translator folder: Implementazioni relative al traduttore.
- gui.py: Fornisce l'interfaccia GUI.
- const.py: Alcune costanti.
- main.py: Fornisce lo strumento da riga di comando.
- high_level.py: Interfacce di alto livello basate su BabelDOC.
-
http_api.py: Fornisce API HTTP (non avviato).
- Getting Start
- Installation
- Command Line
- Usage
- Language Code
- Documentation of Translation Services
- Getting Started
- Advanced
- Supported Languages
- Community
- FAQ
- For Translators
PRs that are recommended to discuss with maintainers via Issue before submission:
- New feature or major changes (e.g., adding a new translation service, changing the core architecture, etc.)
- Changes that may affect user experience (e.g., modifying the default configuration, changing the UI/UX, etc.)
- Changes that may affect performance (e.g., modifying the core algorithms, changing the caching strategy, etc.)
- Changes that may affect security (e.g., modifying the authentication mechanism, changing the data storage method, etc.)
- Changes that may affect compatibility (e.g., modifying the API, changing the data format, etc.)
- Changes that may affect the project's long-term maintenance (e.g., modifying the project structure, changing the dependency management method, etc.)
TRANSLATION
Chiedi all'AI di comprendere il progetto: DeepWiki - Home - Iniziare - Installazione - Riga di comando - Utilizzo - Codice lingua - Documentazione dei servizi di traduzione - Iniziare - Opzioni avanzate - Lingue supportate - Comunità - Domande frequenti - Guida alla contribuzione per le traduzioni
PRs che è consigliato discutere con i maintainer tramite Issue prima della presentazione:
- Nuove funzionalità o modifiche sostanziali (ad esempio, aggiungere un nuovo servizio di traduzione, modificare l'architettura core, ecc.)
- Modifiche che potrebbero influenzare l'esperienza utente (ad esempio, modificare la configurazione predefinita, cambiare l'UI/UX, ecc.)
- Modifiche che potrebbero influenzare le prestazioni (ad esempio, modificare gli algoritmi core, cambiare la strategia di caching, ecc.)
- Modifiche che potrebbero influenzare la sicurezza (ad esempio, modificare il meccanismo di autenticazione, cambiare il metodo di archiviazione dei dati, ecc.)
- Modifiche che potrebbero influenzare la compatibilità (ad esempio, modificare l'API, cambiare il formato dei dati, ecc.)
- Modifiche che potrebbero influenzare la manutenzione a lungo termine del progetto (ad esempio, modificare la struttura del progetto, cambiare il metodo di gestione delle dipendenze, ecc.)
Contattaci
Se hai domande, invia feedback tramite Issue o unisciti al nostro gruppo Telegram. Grazie per il tuo contributo!
Tip
Immersive Translate sponsorizza codici mensili di abbonamento Pro per i contributori attivi a questo progetto. Per i dettagli, consultare: BabelDOC/PDFMathTranslate Regole di ricompensa per i contributori