Simple translation frontend, forked from
Go to file
Alexey Yerin b0c5f2c81d *: run go fmt 2021-05-11 11:33:29 +03:00
static web: add a nicer error page 2021-05-10 20:09:50 +03:00
templates web: add a nicer error page 2021-05-10 20:09:50 +03:00
.gitignore Initial 2021-01-17 23:19:52 +03:00
LICENSE Initial 2021-01-17 23:19:52 +03:00 Update description 2021-05-10 18:09:47 +03:00
api.go Move writeError to api.go 2021-05-10 20:10:51 +03:00
go.mod Initial 2021-01-17 23:19:52 +03:00
go.sum Initial 2021-01-17 23:19:52 +03:00
languages.go *: run go fmt 2021-05-11 11:33:29 +03:00
main.go Use <select> for language selection 2021-02-04 17:27:11 +03:00
translate.go Move request logic to a different function 2021-01-18 23:25:21 +03:00
web.go *: run go fmt 2021-05-11 11:33:29 +03:00


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.