Warning
Dieses Projekt wird nicht mehr aktiv gepflegt. Letzter funktionaler Stand: März 2024. Externe Abhängigkeiten (Free-Proxy-Listen, Google-Translate-Endpoint) können seitdem gebrochen sein. Code bleibt als Referenz erhalten.
Übersetzt einen Text in viele Sprachen parallel — über einen rotierenden Pool von Elite-Proxies, um Google-Translate-Rate-Limits zu umgehen.
BulkTranslate ist eine PHP-Web-App, die einen Eingabetext in mehrere Zielsprachen gleichzeitig übersetzt. Damit Google Translate die Anfragen nicht als Bot-Last drosselt, läuft jede einzelne Übersetzung über einen anderen Elite-Proxy aus einem dynamisch aufgebauten Pool. Aus Google-Sicht sehen die Anfragen so aus, als kämen sie von vielen verschiedenen Personen an verschiedenen Standorten — was rate-limit-technisch das simuliert, was die Architektur emuliert.
- Proxy-Discovery —
includes/manageProxies.ajax.phpholt frische Proxy-Listen viaProxyFetchervon Anbietern wiesslproxies.orgundgatherproxy.com. Priorität: Elite > Anonymous > Transparent. - Proxy-Validation —
includes/checker.phpprüft jeden Proxy gegen einen Echo-Endpoint und misst Latenz. - Translation-Fan-Out —
includes/uebersetze.ajax.phpnutztstichoza/google-translate-php, weist jeder Zielsprache einen frischen Proxy zu und führt die Übersetzung aus. - Output — Ergebnis erscheint im UI als kopierbare Liste; Achievements (optional, mit Login) werden in MySQL geloggt.
- Parallele Übersetzung in bis zu 40+ Sprachen
- Proxy-Rotation pro Anfrage (Elite/Anonymous/Transparent Fallback)
- HTTPS-Erkennung und automatischer Protokoll-Switch
- Optionales Login (E-Mail) für Achievements (
ach_*-Counter intranslate_logins) - Copy-to-Clipboard pro Übersetzung
- Quellsprache wahlweise Deutsch oder Englisch
| Layer | Technologie |
|---|---|
| Backend | PHP 7.4+ |
| Frontend | jQuery 3.4, SweetAlert2, clipboard.js, FontAwesome |
| Translate-Lib | stichoza/google-translate-php |
| Proxy-Lib | ProxyFetcher (vendored) |
| HTTP | Guzzle 6 |
| DB | MySQL (Logins + Achievements) |
- PHP 7.4 oder höher mit Extensions:
mysqli,curl,json,mbstring - Webserver (Apache/Nginx) mit PHP-Support
- MySQL 5.7+ oder MariaDB 10.3+
- Composer (für Vendor-Updates; Vendor-Verzeichnis ist eingecheckt)
git clone https://github.com/Labushuya/BulkTranslate.git
cd BulkTranslate
# Composer-Deps refreshen (optional — vendor/ ist committed)
cd includes && composer install && cd ..
# Konfiguration aus Template anlegen
cp includes/config.inc.php.example includes/config.inc.php
# config.inc.php editieren: DB-Server, User, Passwort, Datenbank eintragenCREATE TABLE `translate_logins` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`email` VARCHAR(255) NOT NULL UNIQUE,
`disabled` TINYINT(1) DEFAULT 0,
`ach_zaehler` INT DEFAULT 0,
`ach_helloworld` TINYINT(1) DEFAULT 0,
`ach_initialtranslate` TINYINT(1) DEFAULT 0,
`ach_decadetranslate` TINYINT(1) DEFAULT 0,
`ach_centurytranslate` TINYINT(1) DEFAULT 0,
`ach_milleniumtranslate` TINYINT(1) DEFAULT 0,
`ach_decemmilleniumtranslate` TINYINT(1) DEFAULT 0,
`ach_ninja` TINYINT(1) DEFAULT 0,
`ach_troubleshooting` TINYINT(1) DEFAULT 0,
`ach_critical` TINYINT(1) DEFAULT 0,
`ach_maxelite` TINYINT(1) DEFAULT 0,
`ach_noelite` TINYINT(1) DEFAULT 0,
`ach_googlelock` TINYINT(1) DEFAULT 0,
`ach_bonuscatch` TINYINT(1) DEFAULT 0,
`ach_copypasta` TINYINT(1) DEFAULT 0
);Über den Webserver auf index.php zugreifen. Lokal z.B. via php -S localhost:8000 aus dem Repo-Root (Achtung: kein Production-Setup).
BulkTranslate/
├── index.php # Haupt-UI mit Sprachauswahl
├── google_translate_country_codes.txt # Referenzliste unterstützter Sprachen
├── assets/
│ ├── css/ # Styles inkl. FontAwesome
│ ├── js/ # jQuery, SweetAlert2, runtime.js
│ └── webfonts/
└── includes/
├── config.inc.php(.example) # DB-Verbindungsparameter (aus Tracking ausgeschlossen)
├── functions.inc.php # dbconnect()
├── checker.php # Proxy-Validator (Multi-cURL)
├── login.ajax.php # E-Mail-Login-Endpoint
├── logout.ajax.php
├── manageProxies.ajax.php # Proxy-Pool-Aufbau
├── manageAchievements.ajax.php # Achievement-Counter
├── uebersetze.ajax.php # Translate-Endpoint
└── vendor/ # Composer-Deps
- Google Translate hat keine offizielle Free-Tier-API. Das Tool nutzt die
stichoza-Bibliothek, die das öffentliche Web-Endpoint von Google Translate konsumiert — das kann jederzeit brechen oder Captchas auslösen. - Proxy-Qualität schwankt. Free-Proxy-Listen sind volatil; einzelne Proxies können langsam, offline oder kompromittiert sein. Daher die mehrstufige Validierung in
checker.php. - Keine Rate-Limit-Garantie. Auch mit Proxy-Rotation kann Google Translate Verkehrsmuster erkennen und blocken. Bei vielen Anfragen empfohlen: Pausen einbauen oder offizielle Google Cloud Translation API verwenden.
Dieses Projekt richtet sich an legitime Use-Cases wie:
- Bulk-Übersetzung eigener Inhalte für mehrsprachige Websites
- Übersetzungs-Vergleich für Lokalisierungs-Workflows
- Recherche und Lernzwecke
Die Nutzung öffentlicher Proxies und das Umgehen von Rate-Limits kann gegen die Terms of Service der jeweiligen Anbieter verstoßen. Verantwortung für den rechtskonformen Einsatz liegt beim Nutzer. Für produktive Übersetzungs-Workflows ist die kostenpflichtige Google Cloud Translation API die korrekte Wahl.
Siehe LICENSE.
Original checker.php von Samuel Allan, basierend auf der Arbeit von W. Al Maawali (digi77.com).