Simple translation frontend, forked from
You cannot 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 b0c5f2c81d *: run go fmt 2 years ago
static web: add a nicer error page 2 years ago
templates web: add a nicer error page 2 years ago
.gitignore Initial 2 years ago
LICENSE Initial 2 years ago Update description 2 years ago
api.go Move writeError to api.go 2 years ago
go.mod Initial 2 years ago
go.sum Initial 2 years ago
languages.go *: run go fmt 2 years ago
main.go Use <select> for language selection 2 years ago
translate.go Move request logic to a different function 2 years ago
web.go *: run go fmt 2 years ago


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


git clone
cd gtranslate

go build

Then run the server with


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 path/to/gtranslate/templates \
  --static-dir    path/to/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 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.