---
title: NonEnglish
---

Some of this documentation may be out of date.

## Belarusian - Беларуская

  * [faq-be](http://www.designcontest.com/show/faq-be) - Frequently Asked Questions.

## Brazilian Portuguese - Português brasileiro

  * [A Tour of Go](https://go-tour-br.appspot.com/)
  * [golangbr.org](http://golangbr.org/) - Go documentation and news.

## Chinese - 中文

  * [Go 语言之旅](https://tour.go-zh.org/)
  * [Go 编程语言](https://go-zh.org/) - Chinese Translation of tip.golang.org
  * [Effective Go and (old) Tutorial (Deprecated)](http://code.google.com/p/ac-me/downloads/detail?name=fango.pdf)

## Czech - Čeština

  * [Pravidla reflexe](http://www.abclinuxu.cz/clanky/google-go-pravidla-reflexe) - a translation of [The Laws of Reflection](https://go.dev/blog/2011/09/laws-of-reflection.html).

## French - Français

  * [golang-france](http://code.google.com/p/golang-france/) - Go documentation.

## German - Deutsch

  * [Deutschsprachige Go Themenseite - German Go resource page](https://github.com/hweidner/golang-de/wiki)
  * [Deutschsprachiges Diskussionsforum - German discussion forum](https://mewe.com/group/5c4b0dcb1c1ea52d0c45b6b0) on [MeWe](https://mewe.com)
    ([Invitation link](https://mewe.com/join/golang-de)) (requires free registration on MeWe.com).

## Indonesia

  * [Komunitas Pengguna Go Indonesia](https://golang-id.org)

## Japanese - 日本語

  * [A Tour of Go](https://go-tour-jp.appspot.com/)
  * [CodeReviewComments](https://knsh14.github.io/translations/go-codereview-comments/)

## Korean - 한국어

  * [A Tour of Go](http://go-tour-kr.appspot.com)
  * [golang-kr wiki](http://github.com/golang-kr/golang-doc/wiki) - Korean Translation of golang.org/doc

## Russian - русский язык

  * [Effective Go](https://github.com/Konstantin8105/Effective_Go_RU/blob/master/README.md)
  * [Contribution Guide](https://github.com/Konstantin8105/Contribution_Guide_RU)

## Spanish - español
  * [Video course: Go Course from 0 to 100](https://www.youtube.com/watch?v=7SIIyt5-XK0&list=PLl_hIu4u7P64MEJpR3eVwQ1l_FtJq4a5g)
  * [Workshop video: Creating a wiki with Go](https://www.youtube.com/watch?v=0fYb43gIl6I&list=PLfHn_OMWQAHDNxoA3BRWs5NHcstZMAY_B)
  * [Sitio web: Go con ejemplos](http://goconejemplos.com/)
  * [Apuntes: Aprender de Go desde Cero](https://apuntes.de/golang/)

## Thai - ไทย

  * [A Tour of Go](https://go-tour-th.appspot.com)

## Turkish - Türkçe

  * [A Tour of Go](https://go-tour-turkish.appspot.com)

## Vietnamese - Tiếng Việt

 * [A Tour of Go](http://go-tour-vi.appspot.com/)

## Uzbek — Ўзбекча

 * [A Tour of Go](http://go-tour-uz.appspot.com/)
