You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Alexey Yerin 8e73e63a55 Update link formatting in README 1 month ago
static Add dark theme 1 month ago
templates Use <select> for language selection 2 months ago
.gitignore Initial 3 months ago
LICENSE Initial 3 months ago
README.md Update link formatting in README 1 month ago
api.go api: use fmt.Fprint/Fprintln 1 month ago
go.mod Initial 3 months ago
go.sum Initial 3 months ago
languages.go Use <select> for language selection 2 months ago
main.go Use <select> for language selection 2 months ago
translate.go Move request logic to a different function 3 months ago
utils.go api: use fmt.Fprint/Fprintln 1 month ago
web.go web, api: terminate request on parse error 1 month ago

README.md

gtranslate

Better front-end for Google Translate that doesn't track you and works without JavaScript.

Installation

git clone https://git.sr.ht/~yerinalexey/gtranslate
cd gtranslate

go build

Then run the server with

./gtranslate

If you want to use a different port:

./gtranslate -b :3000 # will run on port 3000

Note: if you're running it outside of development environment, you should pass --templates-dir and --static-dir arguments pointing to templates and static directories:

./gtranslate \
  --templates-dir /usr/share/webapps/gtranslate/templates \
  --static-dir    /usr/share/webapps/gtranslate/static

Other settings (available with ./gtranslate --help):

Usage of ./gtranslate:
  -b, --bind string            Address to bind the server to, [addr]:port (default ":5000")
      --proxy string           Proxy URL, with no scheme http is assumed
      --static-dir string      Static files directory (default "./static")
      --templates-dir string   Templates directory (default "./templates")
      --user-agent string      User-Agent header to use

Using Tor

Routing requests through Tor has its benefits:

  • Google will have a hard time tracking gtranslate servers as they act like normal Tor users
  • You probably won't get banned as requests are made from different IPs

Despite that, it has some drawbacks:

  • Much slower response time
  • Might get capcha or some other junk that will block requests
  • If doing the wrong thing, you might get your server compromised (in terms of anonymity)
  • This feature is not tested in development

First of, you need to set up Tor daemon on the server. Here's a guide on ArchWiki: Tor.

With default settings, it should start a SOCKS5 proxy on localhost, port 9050.

Also, to minimize fingerprint, you need to use a very common user agent on Tor network. And, you guessed it, get it straight from Tor Browser. If you have one, you can just open https://httpbin.org/headers and copy it from there. If not, the latest available is provided here: Tor Browser's User-Agent.

Full setup:

./gtranslate \
  --user-agent "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0" \
  --proxy "socks5://localhost:9050" \
  ...

If you have managed to set it up or experienced issues with this guide, feel free to shoot an email to my public inbox.