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 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


Better front-end for Google Translate that 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 /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 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.