diff --git a/.gitignore b/.gitignore
index 4f3a167a..40b9ba38 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,11 @@
/freegames.egg-info/
.DS_Store
+
+
+.vscode/
+
+#unnecessary files
+*.mo
+*.pot
+/freegames/oop
diff --git a/docs/Makefile b/docs/Makefile
index 359209f0..b7540d92 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -3,18 +3,42 @@
# You can set these variables from the command line.
SPHINXOPTS =
-SPHINXBUILD = python -msphinx
+SPHINXBUILD = python3 -msphinx
+SPHINXINTL = python3 -msphinx_intl
SPHINXPROJ = FreeGames
SOURCEDIR = .
BUILDDIR = _build
+LOCALES = $(patsubst locale/%,%,$(wildcard locale/*))
+
+MV = mv
+RM = rm -r
+
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-.PHONY: help Makefile
+.PHONY: help Makefile update-po
+
+update-po: gettext
+ $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(0)
+
+translated:
+ @for locale in $(LOCALES); do \
+ SPHINXOPTS="-D language=$$locale"; \
+ BUILDDIR="$(BUILDDIR)/$$locale"; \
+ TARGETDIR="$(BUILDDIR)/$(TARGET)/$$locale"; \
+ $(SPHINXBUILD) -M "$(TARGET)" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \
+ $(MV) "$$BUILDDIR/$(TARGET)" "$$TARGETDIR"; \
+ $(RM) "$$BUILDDIR"; \
+ echo "$$locale docs was moved to $$TARGETDIR directory"; \
+ done
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+ @if [ $@ != clean -a $@ != gettext ]; then \
+ TARGET=$@ make translated; \
+ fi
diff --git a/docs/_templates/gumroad.html b/docs/_templates/gumroad.html
index c9c9687e..2a0ad8c5 100644
--- a/docs/_templates/gumroad.html
+++ b/docs/_templates/gumroad.html
@@ -1,5 +1,5 @@
-
Donate
-If you or your organization uses Free Games, consider donating:
+{{ _('Donate') }}
+{{ _('If you or your organization uses Free Games, consider donating:') }}
- Donate to Free Python Games
+ {{ _('Donate to Free Python Games') }}
diff --git a/docs/conf.py b/docs/conf.py
index 0c339e44..eeae7b6e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -199,3 +199,7 @@
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
+
+# Gettext / i18n
+locale_dirs = ['locale/']
+gettext_compact = False
diff --git a/docs/development.rst b/docs/development.rst
index 9bebb26b..0e2bde2d 100644
--- a/docs/development.rst
+++ b/docs/development.rst
@@ -73,3 +73,13 @@ simply run::
The test argument to setup.py will download a minimal testing infrastructure
and run the tests.
+
+Translate
+----------
+
+Translation files are available in the locale/ directory, if you want to contribute a translation make changes to its content.
+
+if you want to translate to another language, you need to create the lang folder. To update the lang folder you need to use the command:
+
+ $ make update-po
+
diff --git a/docs/locale/pt_BR/LC_MESSAGES/ant.po b/docs/locale/pt_BR/LC_MESSAGES/ant.po
new file mode 100644
index 00000000..0bf1fadc
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/ant.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:34-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../ant.rst:2
+msgid "Ant"
+msgstr "Formiga"
+
+#: ../../ant.rst:4
+msgid "Ant, simple animation demo."
+msgstr "Formiga, demonstração de animação simples."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/api.po b/docs/locale/pt_BR/LC_MESSAGES/api.po
new file mode 100644
index 00000000..a2f829f0
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/api.po
@@ -0,0 +1,133 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-11 19:47-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../api.rst:2
+msgid "Free Python Games API Reference"
+msgstr "Referência da API do Free Python Games"
+
+#: ../../api.rst:4
+msgid ""
+":doc:`Free Python Games ` includes a few helpful utilities. The best "
+"way to expose beginners to these functions is with Python's built-in help "
+"function. Learners should be able to understand and write the drawing "
+"functions themselves."
+msgstr ""
+":doc:`Free Python Games ` inclui alguns utilitários úteis. A melhor "
+"maneira de expor os iniciantes a essas funções é com a função de ajuda "
+"integrada do Python. Os alunos devem ser capazes de compreender e escrever as "
+"funções de desenho por si mesmos."
+
+#: ../../api.rst:13
+msgid "Drawing Functions"
+msgstr "Funções de Desenho"
+
+#: freegames.utils.line:1 of
+msgid "Draw line from `(a, b)` to `(x, y)`."
+msgstr "Desenhe uma linha de (a, b) a (x, y)."
+
+#: freegames.utils.square:1 of
+msgid "Draw square at `(x, y)` with side length `size` and fill color `name`."
+msgstr ""
+"Desenhe um quadrado em (x, y) com o `tamanho` do comprimento lateral e "
+"preencha o `nome` da cor."
+
+#: freegames.utils.square:3 of
+msgid "The square is oriented so the bottom left corner is at (x, y)."
+msgstr ""
+"O quadrado é orientado de forma que o canto esquerdo inferior esteja em (x, y)."
+
+#: ../../api.rst:20
+msgid "Helper Functions"
+msgstr "Funções de ajuda"
+
+#: freegames.utils.floor:1 of
+msgid "Floor of `value` given `size` and `offset`."
+msgstr "Piso de `valor` dado `tamanho` e `deslocamento`."
+
+#: freegames.utils.floor:3 of
+msgid "The floor function is best understood with a diagram of the number line::"
+msgstr "A função do piso é melhor compreendida com um diagrama da reta numérica:"
+
+#: freegames.utils.floor:8 of
+msgid ""
+"The number line shown has offset 200 denoted by the left-hand tick mark at "
+"-200 and size 100 denoted by the tick marks at -100, 0, 100, and 200. The "
+"floor of a value is the left-hand tick mark of the range where it lies. So for "
+"the points show above: ``floor(x)`` is -200, ``floor(y)`` is 0, and "
+"``floor(z)`` is 100."
+msgstr ""
+"A linha de número mostrada tem deslocamento 200 denotado pela marca de escala "
+"à esquerda em -200 e o tamanho 100 indicado pelas marcas de escala em -100, 0, "
+"100 e 200. O piso de um valor é a marca de escala à esquerda do intervalo onde "
+"se encontra. Portanto, para os pontos mostrados acima: o ``piso(x)`` é -200, o "
+"``piso(y)`` é 0 e o ``piso(z)`` é 100."
+
+#: freegames.utils.path:1 of
+msgid "Return full path to `filename` in freegames module."
+msgstr "Retorna o caminho completo para o `nome do arquivo` no módulo freegames."
+
+#: ../../api.rst:27
+msgid "Vectors"
+msgstr "Vetores"
+
+#: freegames.utils.vector:1 of
+msgid "Two-dimensional vector."
+msgstr "Vetor bidimensional."
+
+#: freegames.utils.vector:3 of
+msgid "Vectors can be modified in-place."
+msgstr "Os vetores podem ser modificados no local."
+
+#: freegames.utils.vector.__init__:1 of
+msgid "Initialize vector with coordinates: x, y."
+msgstr "Inicialize o vetor com as coordenadas: x, y."
+
+#: freegames.utils.vector.__add__:1 of
+msgid "v.__add__(w) -> v + w"
+msgstr "v.__add__(w) -> v + w"
+
+#: freegames.utils.vector.__mul__:1 of
+msgid "v.__mul__(w) -> v * w"
+msgstr "v.__mul__(w) -> v * w"
+
+#: freegames.utils.vector.copy:1 of
+msgid "Return copy of vector."
+msgstr "Retorna a cópia do vetor."
+
+#: freegames.utils.vector.move:1 of
+msgid "Move vector by other (in-place)."
+msgstr "Move o vetor por outro (no local)."
+
+#: freegames.utils.vector.rotate:1 of
+msgid "Rotate vector counter-clockwise by angle (in-place)."
+msgstr "Gire o vetor no sentido anti-horário pelo ângulo (no local)."
+
+#: freegames.utils.vector.scale:1 of
+msgid "Scale vector by other (in-place)."
+msgstr "Escala o vetor por outro (no local)."
+
+#: freegames.vector.x:1 of
+msgid "X-axis component of vector."
+msgstr "Componente do eixo X do vetor."
+
+#: freegames.vector.y:1 of
+msgid "Y-axis component of vector."
+msgstr "Componente do eixo Y do vetor."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/bagels.po b/docs/locale/pt_BR/LC_MESSAGES/bagels.po
new file mode 100644
index 00000000..1527bb27
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/bagels.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:31-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../bagels.rst:2
+msgid "Bagels"
+msgstr "Bagels"
+
+#: ../../bagels.rst:4
+msgid "Bagels, a number puzzle game."
+msgstr "Bagels, um jogo de quebra-cabeça de números."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/bounce.po b/docs/locale/pt_BR/LC_MESSAGES/bounce.po
new file mode 100644
index 00000000..f31ae53c
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/bounce.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:39-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../bounce.rst:2
+msgid "Bounce"
+msgstr "Bounce"
+
+#: ../../bounce.rst:4
+msgid "Bounce, a simple animation demo."
+msgstr "Bounce, uma demonstração de animação simples."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/cannon.po b/docs/locale/pt_BR/LC_MESSAGES/cannon.po
new file mode 100644
index 00000000..aca82d89
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/cannon.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:38-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../cannon.rst:2
+msgid "Cannon"
+msgstr "Canhão"
+
+#: ../../cannon.rst:4
+msgid "Cannon, hitting targets with projectiles."
+msgstr "Canhão, atingindo alvos com projéteis."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/connect.po b/docs/locale/pt_BR/LC_MESSAGES/connect.po
new file mode 100644
index 00000000..6b7981b6
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/connect.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:46-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../connect.rst:2
+msgid "Connect Four"
+msgstr "Connect Four"
+
+#: ../../connect.rst:4
+msgid "Connect Four, two-player connection game."
+msgstr "Connect Four, jogo de conexão para dois jogadores."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/crypto.po b/docs/locale/pt_BR/LC_MESSAGES/crypto.po
new file mode 100644
index 00000000..ba9b0129
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/crypto.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:23-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../crypto.rst:2
+msgid "Crypto"
+msgstr "Crypto"
+
+#: ../../crypto.rst:4
+msgid "Crypto: tool for encrypting and decrypting messages."
+msgstr "Crypto: ferramenta para criptografar e descriptografar mensagens."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/curriculum.po b/docs/locale/pt_BR/LC_MESSAGES/curriculum.po
new file mode 100644
index 00000000..585e777e
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/curriculum.po
@@ -0,0 +1,512 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-09 20:11-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../curriculum.rst:2
+msgid "Free Python Games Curriculum"
+msgstr "Currículo Free Python Games"
+
+#: ../../curriculum.rst:4
+msgid ""
+"What follows are notes for a week-long curriculum developed for Maker Camp at "
+"The River Church Community. Maker Camp was a summer day camp for Middle School "
+"students in the California Bay Area."
+msgstr ""
+"O que se segue são notas para um currículo de uma semana desenvolvido para o "
+"Maker Camp na Comunidade da Igreja River. Maker Camp era um acampamento de "
+"verão para estudantes do Ensino Médio na área da baía da Califórnia."
+
+#: ../../curriculum.rst:8
+msgid "Each game has exercises at the top."
+msgstr "Cada jogo tem exercícios no topo."
+
+#: ../../curriculum.rst:9
+msgid "Visualize code with http://pythontutor.com"
+msgstr "Visualize o código com http://pythontutor.com"
+
+#: ../../curriculum.rst:10
+msgid "Extras: $ python3 -m turtledemo"
+msgstr "Extras: $ python3 -m turtledemo"
+
+#: ../../curriculum.rst:14
+msgid "Day 1"
+msgstr "Dia 1"
+
+#: ../../curriculum.rst:16
+msgid "What is a computer? Calculator + Clock."
+msgstr "O que é um computador? Calculadora + Relógio."
+
+#: ../../curriculum.rst:17
+msgid "Discuss Alan Turing and Turing Machines."
+msgstr "Discuta Alan Turing e a Máquina de Turing."
+
+#: ../../curriculum.rst:18
+msgid "Discuss John Von Neumann and Von Neumann Machines."
+msgstr "Discuta John Von Neumann e Máquinas Von Neumann."
+
+#: ../../curriculum.rst:19
+msgid "What is a program? Computer Recipe."
+msgstr "O que é um programa? Receita do Computador."
+
+#: ../../curriculum.rst:20
+msgid "Introduce Terminal, black background, give the computer commands."
+msgstr "Introduza o terminal, plano de fundo preto, dê comandos ao computador."
+
+#: ../../curriculum.rst:21
+msgid "Introduce Python Shell, white background, write Python statements."
+msgstr ""
+"Introduza o Python Shell, plano de fundo branco, escreva instruções python."
+
+#: ../../curriculum.rst:22
+msgid "Activity: connect and decorate computers."
+msgstr "Atividade: conectar e decorar computadores."
+
+#: ../../curriculum.rst:23
+msgid "Problem solving: divide and conquer."
+msgstr "Resolução de problemas: dividir e conquistar."
+
+#: ../../curriculum.rst:24
+msgid "Statements: assignment, if/elif/else, while, import"
+msgstr "Declarações: assignment, if/elif/else, while, import"
+
+#: ../../curriculum.rst:25
+msgid "Data types: int, str"
+msgstr "Tipos de dados: int, str"
+
+#: ../../curriculum.rst:26
+msgid "Functions: print, help, int"
+msgstr "Funções: print, help, int"
+
+#: ../../curriculum.rst:27
+msgid "Modules: random"
+msgstr "Módulos: random"
+
+#: ../../curriculum.rst:30 ../../curriculum.rst:70 ../../curriculum.rst:115
+#: ../../curriculum.rst:157 ../../curriculum.rst:184
+msgid "Games"
+msgstr "Jogos"
+
+#: ../../curriculum.rst:32
+msgid ":doc:`guess`.py - Guess number within range."
+msgstr ":doc:`guess`.py - Adivinhar um número dentro de um intervalo."
+
+#: ../../curriculum.rst:34
+msgid "Explain: from random import randint"
+msgstr "Explique: from random import randint"
+
+#: ../../curriculum.rst:35
+msgid "randint(...)"
+msgstr "randint(...)"
+
+#: ../../curriculum.rst:36
+msgid "Variables"
+msgstr "Variáveis"
+
+#: ../../curriculum.rst:37
+msgid "Equality"
+msgstr "Igualdade"
+
+#: ../../curriculum.rst:38
+msgid "print(...)"
+msgstr "print(...)"
+
+#: ../../curriculum.rst:39
+msgid "Inequality"
+msgstr "Desigualdade"
+
+#: ../../curriculum.rst:40
+msgid "input(...)"
+msgstr "input(...)"
+
+#: ../../curriculum.rst:41
+msgid "int(...)"
+msgstr "int(...)"
+
+#: ../../curriculum.rst:42
+msgid "Increase range to 1,000 and guess the number."
+msgstr "Aumente o intervalo para 1.000 e adivinhe o número."
+
+#: ../../curriculum.rst:43
+msgid "Discuss method of guessing. That's an algorithm!"
+msgstr "Discuta o método de adivinhação. Isso é um algoritmo!"
+
+#: ../../curriculum.rst:45
+msgid ":doc:`snake`.py - Classic arcade game."
+msgstr ":doc:`snake`.py - Jogo clássico de arcade."
+
+#: ../../curriculum.rst:48 ../../curriculum.rst:97 ../../curriculum.rst:139
+#: ../../curriculum.rst:166 ../../curriculum.rst:191
+msgid "Bible Story"
+msgstr "História da Bíblia"
+
+#: ../../curriculum.rst:50
+msgid "Genesis 1 - God the Creator (Creation)"
+msgstr "Gênesis 1 - Deus, o Criador (Criação)"
+
+#: ../../curriculum.rst:52
+msgid "What did God do at the beginning?"
+msgstr "O que Deus fez no início?"
+
+#: ../../curriculum.rst:53
+msgid "What did God see in creation?"
+msgstr "O que Deus viu na criação?"
+
+#: ../../curriculum.rst:54
+msgid "What is special about people?"
+msgstr "O que há de especial nas pessoas?"
+
+#: ../../curriculum.rst:55
+msgid "Why do we create things?"
+msgstr "Por que criamos coisas?"
+
+#: ../../curriculum.rst:59
+msgid "Day 2"
+msgstr "Dia 2"
+
+#: ../../curriculum.rst:61
+msgid "Activity: Blind partner obstacle course."
+msgstr "Atividade: Pista de obstáculos para parceiros cegos."
+
+#: ../../curriculum.rst:62
+msgid "Problem solving: brute-force."
+msgstr "Resolução de problemas: força bruta."
+
+#: ../../curriculum.rst:63
+msgid "Famous Christian programmer: Donald Knuth"
+msgstr "Programador cristão famoso: Donald Knuth"
+
+#: ../../curriculum.rst:64
+msgid "Statements: try/except, for, def"
+msgstr "Declarações: try/except, for, def"
+
+#: ../../curriculum.rst:65
+msgid "Data types: float, bool"
+msgstr "Tipos de dados: float, bool"
+
+#: ../../curriculum.rst:66
+msgid "Functions: type, dir, str, ord, chr"
+msgstr "Funções: type, dir, str, ord, chr"
+
+#: ../../curriculum.rst:67
+msgid "Modules: turtle"
+msgstr "Módulos: turtle"
+
+#: ../../curriculum.rst:72
+msgid ":doc:`crypto`.py - Encrypt, decrypt and decode messages."
+msgstr ":doc:`crypto`.py - Criptografar, descriptografar e decodificar mensagens."
+
+#: ../../curriculum.rst:74
+msgid "ord function and chr function"
+msgstr "função ord e função chr"
+
+#: ../../curriculum.rst:75
+msgid "modulo operator"
+msgstr "módulo operador"
+
+#: ../../curriculum.rst:76
+msgid "Write decode function"
+msgstr "Função de decodificação de escrita"
+
+#: ../../curriculum.rst:77
+msgid "Encrypt numbers"
+msgstr "Criptografar números"
+
+#: ../../curriculum.rst:79
+msgid ":doc:`paint`.py - Draw shapes."
+msgstr ":doc:`paint`.py - Desenhe formas."
+
+#: ../../curriculum.rst:81
+msgid "Draw line"
+msgstr "Desenhar linha"
+
+#: ../../curriculum.rst:82
+msgid "Draw square"
+msgstr "Desenhar quadrado"
+
+#: ../../curriculum.rst:83
+msgid "for-statement, range function."
+msgstr "declaração for, função de alcance."
+
+#: ../../curriculum.rst:84
+msgid "Draw five-pointed star: forward(50); right(144) (x5)"
+msgstr ""
+"Desenhar uma estrela de cinco pontas: para a frente(50); direita(144) (x5)"
+
+#: ../../curriculum.rst:85
+msgid "Draw six-pointed star: forward(50); left(60); forward(50); right(120) (x6)"
+msgstr ""
+"Desenhar uma estrela de seis pontas: para a frente(50); esquerda(60); para a "
+"frente(50); direita(120) (x6)"
+
+#: ../../curriculum.rst:86
+msgid "help(...)"
+msgstr "help(...)"
+
+#: ../../curriculum.rst:87
+msgid "undo(...)"
+msgstr "undo(...)"
+
+#: ../../curriculum.rst:88
+msgid "def-statement, refactor code to star function"
+msgstr "declaração def, refatorar código para função estrela"
+
+#: ../../curriculum.rst:89
+msgid "color('green'); color('blue', 'yellow')"
+msgstr "cor ('verde'); cor ('azul', 'amarelo')"
+
+#: ../../curriculum.rst:90
+msgid "begin_fill(); end_fill()"
+msgstr "begin_fill(); end_fill()"
+
+#: ../../curriculum.rst:91
+msgid "width function"
+msgstr "função de largura"
+
+#: ../../curriculum.rst:92
+msgid "Write polygon(sides, length) function"
+msgstr "Escrever função polígono(lados, comprimento)"
+
+#: ../../curriculum.rst:94
+msgid ":doc:`flappy`.py - Flappy Bird inspired game."
+msgstr ":doc:`flappy`.py - Jogo inspirado em Flappy Bird."
+
+#: ../../curriculum.rst:99
+msgid "Genesis 6:5-22 - God the Engineer (Noah)"
+msgstr "Gênesis 6:5-22 - Deus, o Engenheiro (Noé)"
+
+#: ../../curriculum.rst:101
+msgid "Why did God regret making people?"
+msgstr "Por que Deus se arrependeu de ter feito as pessoas?"
+
+#: ../../curriculum.rst:102
+msgid "How was Noah different?"
+msgstr "Qual era a diferença de Noé?"
+
+#: ../../curriculum.rst:103
+msgid "What was God's plan?"
+msgstr "Qual era o plano de Deus?"
+
+#: ../../curriculum.rst:104
+msgid "How are we washed today?"
+msgstr "Como estamos lavados hoje?"
+
+#: ../../curriculum.rst:108
+msgid "Day 3"
+msgstr "Dia 3"
+
+#: ../../curriculum.rst:110
+msgid "Activity: Simon Says"
+msgstr "Atividade: Simon Says"
+
+#: ../../curriculum.rst:111
+msgid "Famous Christian programmer: Fred Brooks"
+msgstr "Programador cristão famoso: Fred Brooks"
+
+#: ../../curriculum.rst:112
+msgid "Functions: onscreenclick, onkey, ontimer"
+msgstr "Funções: onscreenclick, onkey, ontimer"
+
+#: ../../curriculum.rst:117
+msgid ":doc:`bagels`.py - Digit guessing puzzle."
+msgstr ":doc:`bagels`.py - Quebra-cabeça de adivinhação de dígitos."
+
+#: ../../curriculum.rst:118
+msgid "Animation"
+msgstr "Animação"
+
+#: ../../curriculum.rst:120
+msgid "Draw arc: circle(100, 90)"
+msgstr "Desenhar um arco: círculo (100, 90)"
+
+#: ../../curriculum.rst:121
+msgid "flower(...)"
+msgstr "flor(...)"
+
+#: ../../curriculum.rst:122
+msgid "Draw flower and rotate"
+msgstr "Desenhe uma flor e gire"
+
+#: ../../curriculum.rst:123
+msgid "ontimer(...)"
+msgstr "ontimer(...)"
+
+#: ../../curriculum.rst:124
+msgid "hideturtle(); tracer(False); polygon(4, 200); update()"
+msgstr "hideturtle(); marcador(False); polígono(4, 200); atualização()"
+
+#: ../../curriculum.rst:126
+msgid ":doc:`tictactoe`.py - Tic-tac-toe."
+msgstr ":doc:`tictactoe`.py - Jogo da velha."
+
+#: ../../curriculum.rst:128
+msgid "line(...)"
+msgstr "linha(...)"
+
+#: ../../curriculum.rst:129
+msgid "grid(...)"
+msgstr "grade(...)"
+
+#: ../../curriculum.rst:130
+msgid "drawx(...)"
+msgstr "desenharx(...)"
+
+#: ../../curriculum.rst:131
+msgid "drawo(...)"
+msgstr "desenharo(...)"
+
+#: ../../curriculum.rst:132
+msgid "floor(...)"
+msgstr "piso(...)"
+
+#: ../../curriculum.rst:133
+msgid "onscreenclick(goto)"
+msgstr "onscreenclick(goto)"
+
+#: ../../curriculum.rst:135
+msgid ":doc:`simonsays`.py - Simon Says"
+msgstr ":doc:`simonsays`.py - Simon Says"
+
+#: ../../curriculum.rst:136
+msgid ":doc:`cannon`.py - Hitting targets with projectiles."
+msgstr ":doc:`cannon`.py - Atingir alvos com projéteis."
+
+#: ../../curriculum.rst:141
+msgid "Mark 1:1-18 - God the Programmer (\"fishers of people\")"
+msgstr "Marcos 1:1-18 - Deus, o programador (\"pescadores de pessoas\")"
+
+#: ../../curriculum.rst:143
+msgid "What did Isaiah say would happen?"
+msgstr "O que Isaías disse que aconteceria?"
+
+#: ../../curriculum.rst:144
+msgid "What did John the Baptist say would happen?"
+msgstr "O que João Batista disse que aconteceria?"
+
+#: ../../curriculum.rst:145
+msgid "What did God say about Jesus? When?"
+msgstr "O que Deus disse sobre Jesus? Quando?"
+
+#: ../../curriculum.rst:146
+msgid "How did Jesus give his disciples new jobs?"
+msgstr "Como Jesus deu novos empregos a seus discípulos?"
+
+#: ../../curriculum.rst:150
+msgid "Day 4"
+msgstr "Dia 4"
+
+#: ../../curriculum.rst:152
+msgid "Activity: Collage of concepts."
+msgstr "Atividade: Colagem de conceitos."
+
+#: ../../curriculum.rst:153
+msgid "Famous Christian programmer: Larry Wall"
+msgstr "Programador cristão famoso: Larry Wall"
+
+#: ../../curriculum.rst:154
+msgid "Data types: list, dict, vector"
+msgstr "Tipos de dados: list, dict, vector"
+
+#: ../../curriculum.rst:159
+msgid ":doc:`bounce`.py - Simple animation demo."
+msgstr ":doc:`bounce`.py - Demonstração de animação simples."
+
+#: ../../curriculum.rst:160
+msgid ":doc:`pong`.py - Classic arcade game."
+msgstr ":doc:`pong`.py - Jogo clássico de arcade."
+
+#: ../../curriculum.rst:161
+msgid ":doc:`ant`.py - Simple animation demo."
+msgstr ":doc:`ant`.py - Demonstração de animação simples."
+
+#: ../../curriculum.rst:162
+msgid ":doc:`tron`.py - Classic arcade game."
+msgstr ":doc:`tron`.py - Jogo clássico de arcade."
+
+#: ../../curriculum.rst:163
+msgid ":doc:`tiles`.py - Puzzle game of number shuffling."
+msgstr ":doc:`tiles`.py - Jogo de quebra-cabeça de embaralhamento de números."
+
+#: ../../curriculum.rst:168
+msgid "John 9:1-33 - God the Debugger (Blind Man and Jesus)"
+msgstr "João 9:1-33 - Deus, o Depurador (Homem Cego e Jesus)"
+
+#: ../../curriculum.rst:170
+msgid "What does Jesus tell the disciples?"
+msgstr "O que Jesus disse aos discípulos?"
+
+#: ../../curriculum.rst:171
+msgid "What does the man tell the Pharisees?"
+msgstr "O que o homem disse aos fariseus?"
+
+#: ../../curriculum.rst:172
+msgid "What does the man believe about Jesus?"
+msgstr "O que o homem acredita sobre Jesus?"
+
+#: ../../curriculum.rst:173
+msgid "What do you believe about Jesus?"
+msgstr "O que você acredita sobre Jesus?"
+
+#: ../../curriculum.rst:177
+msgid "Day 5"
+msgstr "Dia 5"
+
+#: ../../curriculum.rst:179
+msgid "Activity: Make or modify your own game."
+msgstr "Atividade: Faça ou modifique seu próprio jogo."
+
+#: ../../curriculum.rst:180
+msgid "Famous Christian programmer: Jon Skeet"
+msgstr "Programador cristão famoso: Jon Skeet"
+
+#: ../../curriculum.rst:181
+msgid "Answer: What next?"
+msgstr "Resposta: O que vem a seguir?"
+
+#: ../../curriculum.rst:186
+msgid ":doc:`connect`.py - Connect Four"
+msgstr ":doc:`connect`.py - Conecte quatro"
+
+#: ../../curriculum.rst:187
+msgid ":doc:`memory`.py - Puzzle game of number pairs."
+msgstr ":doc:`memory`.py - Jogo de quebra-cabeça de pares de números."
+
+#: ../../curriculum.rst:188
+msgid ":doc:`pacman`.py - Classic arcade game."
+msgstr ":doc:`pacman`.py - Jogo clássico de arcade."
+
+#: ../../curriculum.rst:193
+msgid "Revelation 21 - God the Restorer (New Heaven and New Earth)"
+msgstr "Apocalipse 21 - Deus, o Restaurador (Novo Céu e Nova Terra)"
+
+#: ../../curriculum.rst:195
+msgid "What does God make? When?"
+msgstr "O que Deus faz? Quando?"
+
+#: ../../curriculum.rst:196
+msgid "Who is the Lamb and the Bride?"
+msgstr "Quem é o Cordeiro e a Noiva?"
+
+#: ../../curriculum.rst:197
+msgid "What is special about the city?"
+msgstr "O que há de especial na cidade?"
+
+#: ../../curriculum.rst:198
+msgid "How can we live in the Holy City?"
+msgstr "Como podemos viver na Cidade Santa?"
diff --git a/docs/locale/pt_BR/LC_MESSAGES/development.po b/docs/locale/pt_BR/LC_MESSAGES/development.po
new file mode 100644
index 00000000..8e1466fd
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/development.po
@@ -0,0 +1,210 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-12 14:17-0300\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../development.rst:2
+msgid "Free Python Games Development"
+msgstr "Desenvolvimento de Free Python Games"
+
+#: ../../development.rst:4
+msgid ""
+":doc:`Free Python Games ` development is lead by Grant Jenks "
+"."
+msgstr ""
+":doc:O desenvolvimento de `Free Python Games ` é liderado por Grant "
+"Jenks ."
+
+#: ../../development.rst:8
+msgid "Collaborators Welcome"
+msgstr "Colaboradores são bem-vindos"
+
+#: ../../development.rst:10
+msgid "Search issues or open a new issue to start a discussion around a bug."
+msgstr ""
+"Pesquise issues ou abra uma nova issue para iniciar uma discussão sobre um "
+"bug."
+
+#: ../../development.rst:11
+msgid "Fork the `GitHub repository`_ and make your changes in a new branch."
+msgstr ""
+"Faça um fork do `repositório no GitHub`_ e faça suas alterações em um novo "
+"branch."
+
+#: ../../development.rst:12
+msgid "Write a test which shows the bug was fixed."
+msgstr "Escreva um teste que mostre que o bug foi corrigido."
+
+#: ../../development.rst:13
+msgid ""
+"Send a pull request and message the development lead until its merged and "
+"published."
+msgstr ""
+"Envie um pull request e uma mensagem ao líder de desenvolvimento até que "
+"seja mesclado e publicado."
+
+#: ../../development.rst:19
+msgid "Requests for Contributions"
+msgstr "Pedidos de contribuições"
+
+#: ../../development.rst:21
+msgid "Simplifications to existing games."
+msgstr "Simplificações de jogos existentes."
+
+#: ../../development.rst:22
+msgid "Refactoring to simplify games."
+msgstr "Refatoração para simplificar os jogos."
+
+#: ../../development.rst:23
+msgid "Improved documentation."
+msgstr "Melhoria da documentação."
+
+#: ../../development.rst:24
+msgid "Additional games. Requirements for new games:"
+msgstr "Jogos adicionais. Requisitos para novos jogos:"
+
+#: ../../development.rst:26
+msgid "Fun to play."
+msgstr "Divertido de jogar."
+
+#: ../../development.rst:27
+msgid "Matching code style."
+msgstr "Estilo de código correspondente."
+
+#: ../../development.rst:28
+msgid "Limited Python feature set."
+msgstr "Conjunto limitado de recursos do Python."
+
+#: ../../development.rst:29
+msgid "Short (less than 100 lines of code)."
+msgstr "Curto (menos de 100 linhas de código)."
+
+#: ../../development.rst:32
+msgid "Get the Code"
+msgstr "Obtenha o código"
+
+#: ../../development.rst:34
+msgid ""
+":doc:`Free Python Games ` is actively developed in a `GitHub "
+"repository`_."
+msgstr ""
+":doc:`Free Python Games ` é desenvolvido ativamente em um "
+"`repositório no GitHub`_."
+
+#: ../../development.rst:37
+msgid "You can either clone the public repository::"
+msgstr "Você pode clonar o repositório público::"
+
+#: ../../development.rst:41
+msgid ""
+"Download the `tarball `_::"
+msgstr ""
+"Baixe o `tarball `_::"
+
+#: ../../development.rst:45
+msgid ""
+"Or, download the `zipball `_::"
+msgstr ""
+"Ou, faça o download do `zipball `_::"
+
+#: ../../development.rst:50
+msgid "Installing Dependencies"
+msgstr "Instalação de dependências"
+
+#: ../../development.rst:52
+msgid ""
+"Install development dependencies with `pip `_::"
+msgstr ""
+"Instale as dependências de desenvolvimento com `pip `_::"
+
+#: ../../development.rst:56
+msgid ""
+"All packages for running tests and building documentation will be "
+"installed."
+msgstr ""
+"Todos os pacotes para a execução de testes e documentação de construção "
+"serão instalados."
+
+#: ../../development.rst:59
+msgid "Testing"
+msgstr "Testando"
+
+#: ../../development.rst:61
+msgid ""
+":doc:`Free Python Games ` currently tests against three versions of "
+"Python:"
+msgstr ""
+":doc:`Free Python Games ` é atualmente testado em três versões do "
+"Python:"
+
+#: ../../development.rst:64
+msgid "CPython 3.4"
+msgstr "CPython 3.4"
+
+#: ../../development.rst:65
+msgid "CPython 3.5"
+msgstr "CPython 3.5"
+
+#: ../../development.rst:66
+msgid "CPython 3.6"
+msgstr "CPython 3.6"
+
+#: ../../development.rst:68
+msgid ""
+"Testing uses `tox `_. If you don't want "
+"to install all the development requirements, then, after downloading, you "
+"can simply run::"
+msgstr ""
+"Os testes usam `tox `_. Se você não "
+"deseja instalar todos os requisitos de desenvolvimento, então, após o "
+"download, você pode simplesmente executar::"
+
+#: ../../development.rst:74
+msgid ""
+"The test argument to setup.py will download a minimal testing "
+"infrastructure and run the tests."
+msgstr ""
+<<<<<<< HEAD
+"O argumento de teste para setup.py irá baixar uma infraestrutura mínima de "
+"testes e executar os testes."
+=======
+
+#: ../../development.rst:78
+msgid "Translate"
+msgstr ""
+
+#: ../../development.rst:80
+msgid ""
+"inside the locale/ folder, a folder must be created manually, for "
+"the ::"
+msgstr ""
+
+#: ../../development.rst:84
+msgid "command to generate the PO files for all langauges."
+msgstr ""
+
+>>>>>>> 6809c02 (Update development.po)
diff --git a/docs/locale/pt_BR/LC_MESSAGES/fidget.po b/docs/locale/pt_BR/LC_MESSAGES/fidget.po
new file mode 100644
index 00000000..ac1f6905
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/fidget.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:49-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../fidget.rst:2
+msgid "Fidget"
+msgstr "Fidget"
+
+#: ../../fidget.rst:4
+msgid "Fidget, inspired by fidget spinners."
+msgstr "Fidget, inspirado nos fidget spinners."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/flappy.po b/docs/locale/pt_BR/LC_MESSAGES/flappy.po
new file mode 100644
index 00000000..155139d6
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/flappy.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:30-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../flappy.rst:2
+msgid "Flappy"
+msgstr "Flappy"
+
+#: ../../flappy.rst:4
+msgid "Flappy, game inspired by Flappy Bird."
+msgstr "Flappy, jogo inspirado em Flappy Bird."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/give-gift-python.po b/docs/locale/pt_BR/LC_MESSAGES/give-gift-python.po
new file mode 100644
index 00000000..a15fd92b
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/give-gift-python.po
@@ -0,0 +1,212 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 10:38-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../give-gift-python.rst:2
+msgid "Give the Gift of Python"
+msgstr "Dê a Dádiva de Python"
+
+#: ../../give-gift-python.rst:4
+msgid "*Talk given at SF Python Holiday Party on December 5, 2018.*"
+msgstr "*Palestra proferida na SF Python Holiday Party em 5 de dezembro de 2018.*"
+
+#: ../../give-gift-python.rst:7
+msgid "Who am I?"
+msgstr "Quem eu sou?"
+
+#: ../../give-gift-python.rst:9
+msgid "Python programmer."
+msgstr "Programador Python."
+
+#: ../../give-gift-python.rst:10
+msgid "Hundreds of hours of classroom instruction."
+msgstr "Muitas horas de instrução em sala de aula."
+
+#: ../../give-gift-python.rst:13
+msgid "What we need?"
+msgstr "O que nós precisamos?"
+
+#: ../../give-gift-python.rst:15
+msgid "Interest!"
+msgstr "Interesse!"
+
+#: ../../give-gift-python.rst:16
+msgid "Typing skills."
+msgstr "Saber digitar."
+
+#: ../../give-gift-python.rst:17
+msgid "Math: Arithmetic, Algebra, Geometry"
+msgstr "Matemática: aritmética, álgebra, geometria"
+
+#: ../../give-gift-python.rst:20
+msgid "Setup"
+msgstr "Configuração"
+
+#: ../../give-gift-python.rst:22
+msgid "Install Python, https://www.python.org/"
+msgstr "Instale Python, https://www.python.org/"
+
+#: ../../give-gift-python.rst:23
+msgid "Run IDLE, ``$ python -m idlelib.idle``"
+msgstr "Execute IDLE, ``$ python -m idlelib.idle``"
+
+#: ../../give-gift-python.rst:24
+msgid "Write code."
+msgstr "Escreva o código."
+
+#: ../../give-gift-python.rst:27
+msgid "Open the Turtle Window"
+msgstr "Abra a janela Turtle"
+
+#: ../../give-gift-python.rst:35
+msgid "Commands"
+msgstr "Comandos"
+
+#: ../../give-gift-python.rst:49
+msgid "Loops"
+msgstr "Repetições"
+
+#: ../../give-gift-python.rst:59
+msgid "Shapes"
+msgstr "Formas"
+
+#: ../../give-gift-python.rst:71
+msgid "Dots"
+msgstr "Pontos"
+
+#: ../../give-gift-python.rst:79
+msgid "Functions"
+msgstr "Funções"
+
+#: ../../give-gift-python.rst:93
+msgid "Colors"
+msgstr "Cores"
+
+#: ../../give-gift-python.rst:102
+msgid "Locations"
+msgstr "Localizações"
+
+#: ../../give-gift-python.rst:113
+msgid "Inputs"
+msgstr "Entradas"
+
+#: ../../give-gift-python.rst:115
+msgid "listen"
+msgstr "listen"
+
+#: ../../give-gift-python.rst:116
+msgid "onclick"
+msgstr "onclick"
+
+#: ../../give-gift-python.rst:117
+msgid "onkey"
+msgstr "onkey"
+
+#: ../../give-gift-python.rst:120
+msgid "Animation"
+msgstr "Animação"
+
+#: ../../give-gift-python.rst:122
+msgid "ontimer"
+msgstr "ontimer"
+
+#: ../../give-gift-python.rst:123
+msgid "hideturtle"
+msgstr "hideturtle"
+
+#: ../../give-gift-python.rst:124
+msgid "tracer"
+msgstr "tracer"
+
+#: ../../give-gift-python.rst:125
+msgid "clear"
+msgstr "clear"
+
+#: ../../give-gift-python.rst:126
+msgid "update"
+msgstr "update"
+
+#: ../../give-gift-python.rst:139
+msgid "Tips"
+msgstr "Dicas"
+
+#: ../../give-gift-python.rst:141
+msgid "help(...)"
+msgstr "help(...)"
+
+#: ../../give-gift-python.rst:142
+msgid "undo(...)"
+msgstr "undo(...)"
+
+#: ../../give-gift-python.rst:143
+msgid "Embrace copy/paste"
+msgstr "Abraçar copiar/colar"
+
+#: ../../give-gift-python.rst:144
+msgid "Close window/reset()"
+msgstr "Fechar aba / reinicializar()"
+
+#: ../../give-gift-python.rst:147
+msgid "Activities"
+msgstr "Atividades"
+
+#: ../../give-gift-python.rst:149
+msgid "Spell your name."
+msgstr "Soletre o seu nome."
+
+#: ../../give-gift-python.rst:150
+msgid "``python -m pip install freegames``"
+msgstr "``python -m pip install freegames``"
+
+#: ../../give-gift-python.rst:153
+msgid "Notes"
+msgstr "Notas"
+
+#: ../../give-gift-python.rst:155
+msgid "Start simple! Start easy! Start plain!"
+msgstr "Comece simples! Comece facilmente! Comece bem!"
+
+#: ../../give-gift-python.rst:156
+msgid "Focus on fun! No PEP8. No Pylint."
+msgstr "Concentre-se na diversão! Sem PEP8. Sem Pylint."
+
+#: ../../give-gift-python.rst:157
+msgid "Make it readable! Say it aloud."
+msgstr "Torne-o legível! Diga-o em voz alta."
+
+#: ../../give-gift-python.rst:158
+msgid "No special shells! No IPython."
+msgstr "Sem shells especiais! Sem IPython."
+
+#: ../../give-gift-python.rst:159
+msgid "Show them mistakes! Red is your favorite color!"
+msgstr "Mostre-lhes erros! Vermelho é a sua cor favorita!"
+
+#: ../../give-gift-python.rst:160
+msgid "No virtual environments!"
+msgstr "Sem ambientes virtuais!"
+
+#: ../../give-gift-python.rst:161
+msgid "If they're not ready, don't push them!"
+msgstr "Se eles não estiverem prontos, não os empurre!"
+
+#: ../../give-gift-python.rst:162
+msgid "No dunder methods or attributes! No __name__ or __main__."
+msgstr "Sem métodos ou atributos dunder! Sem __name__ or __main__."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/guess.po b/docs/locale/pt_BR/LC_MESSAGES/guess.po
new file mode 100644
index 00000000..d8571e3d
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/guess.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:18-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../guess.rst:2
+msgid "Guess"
+msgstr "Adivinhação"
+
+#: ../../guess.rst:4
+msgid "Guess a number within a range."
+msgstr "Adivinhe um número dentro de um intervalo."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/index.po b/docs/locale/pt_BR/LC_MESSAGES/index.po
new file mode 100644
index 00000000..a4089fc4
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/index.po
@@ -0,0 +1,606 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+
+#: ../../../README.rst:2
+msgid "Free Python Games"
+msgstr "Free Python Games"
+
+#: ../../../README.rst:4
+msgid ""
+"`Free Python Games`_ is an Apache2 licensed collection of free Python "
+"games intended for education and fun. The games are written in simple "
+"Python code and designed for experimentation and changes. Simplified "
+"versions of several classic arcade games are included."
+msgstr ""
+"`Free Python Games`_ é uma coleção de jogos gratuita feita em Python "
+"destinados à educação e à diversão licenciada com Apache2. Os jogos "
+"são escritos em códigos simples de Python e projetados para experimentação "
+"e mudanças. Estão inclusas versões simplificadas de vários jogos de arcade "
+"clássicos."
+
+#: ../../../README.rst:9
+msgid ""
+"Python is one of the top-five most popular programming languages in the "
+"world and available for free from `Python.org "
+"`_. Python includes an extensive Standard "
+"Library distributed with your installation. The Standard Library has a "
+"module called Turtle which is a popular way to introduce programming to "
+"kids. Turtle was part of the original Logo programming language developed"
+" by Wally Feurzig and Seymour Papert in 1966. All of the games in `Free "
+"Python Games`_ are implemented using Python and its Turtle module."
+msgstr ""
+"Python é uma das cinco linguagens de programação mais populares do mundo "
+"e está disponível gratuitamente em `Python.org. "
+"`_. Python inclui uma ampla biblioteca "
+" padrão distribuída com sua instalação. A biblioteca padrão tem um módulo "
+"chamado Turtle, que é uma forma popular de apresentar programação às crianças. "
+"Turtle fazia parte da linguagem de programação Logo original, desenvolvida"
+" por Wally Feurzig e Seymor Papert em 1966. Todos os jogos em `Free "
+"Python Games`_ são implementados usando Python e seu módulo Turtle."
+
+#: ../../../README.rst:17
+msgid ""
+"Starting in 2012, `Free Python Games`_ began as an after school program "
+"to teach programming to inner-city youth. The goal was to have fun as "
+"much as it was to learn. Since then the games have been improved and used"
+" in a variety of settings ranging from classrooms to summer day-camps."
+msgstr ""
+"A partir de 2012, `Free Python Games`_ começou como um programa pós-escola "
+"para ensinar programação aos jovens do centro da cidade. O objetivo era "
+"se divertir tanto quanto aprender. Desde então, os jogos foram melhorados e usados"
+" em uma variedade de ambientes que vão de salas de aulas a acampamentos de verão."
+
+#: ../../../README.rst:22
+msgid ""
+"The games run anywhere Python can be installed which includes desktop "
+"computers running Windows, Mac OS, or Linux and older or low-power "
+"hardware such as the Raspberry Pi. Kids across the United States in "
+"grades 6th-12th have enjoyed learning about topics such as encryption and"
+" projectile motion through games."
+msgstr ""
+"Os jogos são executados em qualquer lugar que o Python possa ser instalado, "
+"o que inclui computadores desktop com Windows, Mac OS ou Linux e hardware "
+"mais “velhos” e de baixa potência, como Raspberry Pi. Crianças nos Estados Unidos, "
+"da 6ª à 12ª série, gostaram de aprender tópicos sobre criptografia e movimento de"
+" projétil através dos jogos."
+
+#: ../../../README.rst:27
+msgid ""
+"Each game is entirely independent from the others and includes comments "
+"along with a list of exercises to work through with students. Creativity "
+"and flexibility is important. There is no right or wrong way to implement"
+" a new feature or behavior! You never know which games students will "
+"engage with best."
+msgstr ""
+"Cada jogo é inteiramente independente dos outros e inclui comentários "
+"com uma lista de exercícios para trabalhar com os estudantes. Criatividade "
+"e flexibilidade são importantes. Não há forma certa ou errada de implementar"
+" uma nova característica ou comportamento! Você nunca sabe com quais jogos os "
+"estudantes se engajarão melhor."
+
+#: ../../../README.rst:36
+msgid "Testimonials"
+msgstr "Relatos"
+
+#: ../../../README.rst:38
+msgid ""
+"*\"I love Free Python Games because the games are fun and they're easy to"
+" understand and change. I like making my own games now.\"*"
+msgstr ""
+"*\"Eu amo Free Python Games porque os jogos são divertidos e eles são fáceis"
+" de entender e mudar. Eu gosto de fazer meus próprios jogos agora. \"*"
+
+#: ../../../README.rst:41
+msgid "-- Luke Martin, Student"
+msgstr "-- Luke Martin, estudante"
+
+#: ../../../README.rst:43
+msgid ""
+"*\"Free Python Games inspired and introduced a new hobby to our son. "
+"Thank you so much for exposing him to coding. He is having so much "
+"fun!\"*"
+msgstr ""
+"*\"Free Python Games inspirou e introduziu um novo passatempo para o "
+"nosso filho. Muito obrigada por apresentar ele à programação. Ele está "
+"se divertindo bastante!\"*"
+
+#: ../../../README.rst:46
+msgid "-- Mary Lai, Parent"
+msgstr "-- Mary Lai, mãe"
+
+#: ../../../README.rst:48
+msgid ""
+"*\"Free Python Games are great because they really engage students and "
+"let them learn at their own pace.\"*"
+msgstr ""
+"*\"Free Python Games é ótimo por envolver os alunos e permitir que "
+"aprendam em seu próprio ritmo.\"*"
+
+#: ../../../README.rst:51
+msgid "-- Rick Schertle, Teacher, Steindorf STEAM School"
+msgstr "-- Rick Schertle, professor da Steindorf STEAM School"
+
+#: ../../../README.rst:53
+msgid ""
+"*\"Free Python Games combines play and learning in a flexible environment"
+" that reduces the stress of a difficult topic like programming.\"*"
+msgstr ""
+"*\"Free Python Games combina brincadeira e aprendizagem em um ambiente flexível"
+" que reduz o estresse de um tópico difícil como a programação.\"*"
+
+#: ../../../README.rst:56
+msgid "-- Brett Bymaster, Youth Pastor, The River Church Community"
+msgstr "-- Brett Bymaster, Pastor de jovens, Comunidade da The River Church"
+
+#: ../../../README.rst:58
+msgid ""
+"*\"Free Python Games is great for students, is highly organized and "
+"flexible, and seeks to unleash inquiry and understanding.\"*"
+msgstr ""
+"*\"Free Python Games é ótimo para estudantes, é altamente organizado e "
+"flexível e procura liberar a investigação e a compreensão.\"*"
+
+#: ../../../README.rst:61
+msgid "-- Terri Furton, Principal, Downtown College Prep"
+msgstr "-- Terri Furton, Diretor da Downton College Prep"
+
+#: ../../../README.rst:65
+msgid "Features"
+msgstr "Características"
+
+#: ../../../README.rst:67
+msgid "Fun to play!"
+msgstr "Divertido de jogar"
+
+#: ../../../README.rst:68
+msgid "Simple Python code"
+msgstr "Código de Python simples"
+
+#: ../../../README.rst:69
+msgid "Easy to install"
+msgstr "Fácil de instalar"
+
+#: ../../../README.rst:70
+msgid "Designed for education"
+msgstr "Projetado para educação"
+
+#: ../../../README.rst:71
+msgid "Depends only on the Python Standard Library"
+msgstr "Depende apenas da biblioteca padrão de Python"
+
+#: ../../../README.rst:72
+msgid "Used in hundreds of hours of classroom instruction"
+msgstr "Usado em centenas de horas de instrução em sala de aula"
+
+#: ../../../README.rst:73
+msgid "Fully Documented"
+msgstr "Completamente documentado"
+
+#: ../../../README.rst:74
+msgid "100% Test Coverage"
+msgstr "100% de cobertura de teste"
+
+#: ../../../README.rst:75
+msgid "Developed on Python 3.7"
+msgstr "Desenvolvido em Python 3.7"
+
+#: ../../../README.rst:76
+msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7"
+msgstr "Testado em CPython 2.7, 3.4, 3.5, 3.6 e 3.7"
+
+#: ../../../README.rst:77
+msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux"
+msgstr "Testado em Windows, Mac OS X, Raspbian (Raspberry Pi) e Linux"
+
+#: ../../../README.rst:78
+msgid "Tested using Travis CI and AppVeyor CI"
+msgstr "Testado usando Travis CI and AppVeyor CI"
+
+#: ../../../README.rst:88
+msgid "Quickstart"
+msgstr "Começo rápido"
+
+#: ../../../README.rst:90
+msgid ""
+"Installing Free Python Games is simple with `pip "
+"`_::"
+msgstr ""
+"Instalar o Free Python Games é simples com `pip:"
+"`_::"
+
+#: ../../../README.rst:95
+msgid ""
+"Free Python Games supports a command-line interface (CLI). Help for the "
+"CLI is available using::"
+msgstr ""
+"Free Python Games oferece suporte a uma interface de linha de comandos "
+"(CLI - Command Line Interface). A ajuda para a CLI está disponível usando::"
+
+#: ../../../README.rst:100
+msgid ""
+"The CLI supports three commands: list, copy, and show. For a list of all "
+"games run::"
+msgstr ""
+"A CLI suporta três comandos: list, copy e show. Para obter uma lista "
+"de todos os jogos, execute::"
+
+#: ../../../README.rst:105
+msgid ""
+"Any of the listed games may be played by executing the Python module from"
+" the command-line. To reference the Python module, combine \"freegames\" "
+"with the name of the game. For example, to play the \"snake\" game run::"
+msgstr ""
+"Qualquer um dos jogos listados pode ser jogado executando-se o módulo"
+" Python na linha de comando. Para fazer referência ao módulo Python, "
+"combine \"freegames\" com o nome do jogo. Por exemplo, para jogar o jogo \"snake\" execute::"
+
+#: ../../../README.rst:111
+msgid ""
+"Games can be modified by copying their source code. The copy command will"
+" create a Python file in your local directory which you can edit. For "
+"example, to copy and play the \"snake\" game run::"
+msgstr ""
+"Os jogos podem ser modificados copiando-se seu código fonte. O comando copy"
+" criará um arquivo Python, em seu diretório local, que você pode editar. "
+"Por exemplo, para copiar e jogar o jogo \"snake\" execute::"
+
+#: ../../../README.rst:118
+msgid ""
+"Python includes a built-in text editor named IDLE which can also execute "
+"Python code. To launch the editor and make changes to the \"snake\" game "
+"run::"
+msgstr ""
+"Python inclui um editor de texto integrado chamado IDLE, que também pode executar "
+"código Python. Para iniciar o editor e fazer alterações no jogo \"snake\" execute::"
+
+#: ../../../README.rst:123
+msgid ""
+"You can also access documentation in the interpreter with Python's built-"
+"in help function::"
+msgstr ""
+"Você também pode acessar a documentação no interpretador com a função "
+"embutida no Python help::"
+
+
+#: ../../../README.rst:131
+msgid "Free Games"
+msgstr "Jogos Livres"
+
+#: ../../../README.rst:134
+msgid "Paint"
+msgstr "Paint"
+
+#: ../../../README.rst:136
+msgid ""
+"`Paint`_ -- draw lines and shapes on the screen. Click to mark the start "
+"of a shape and click again to mark its end. Different shapes and colors "
+"can be selected using the keyboard."
+msgstr ""
+"`Paint`_ -- desenhe linhas e formas na tela. Clique para marcar o início "
+"e uma forma e clique novamente para marcar o seu final. Diferentes formas "
+"e cores podem ser selecionadas usando o teclado."
+
+msgid "Paint Free Python Game"
+msgstr "Paint Free Python Game"
+
+#: ../../../README.rst:146
+msgid "Snake"
+msgstr "Snake"
+
+#: ../../../README.rst:148
+msgid ""
+"`Snake`_ -- classic arcade game. Use the arrow keys to navigate and eat "
+"the green food. Each time the food is consumed, the snake grows one "
+"segment longer. Avoid eating yourself or going out of bounds!"
+msgstr ""
+"`Snake`_ -- jogo de arcade clássico. Use as setas do teclado para navegar e comer "
+"a comida verde. Cada vez que o alimento é consumido, a cobra cresce um "
+"segmento a mais. Evite comer você mesmo ou bater nas bordas!"
+
+msgid "Snake Free Python Game"
+msgstr "Snake Free Python Game"
+
+#: ../../../README.rst:158
+msgid "Pacman"
+msgstr "Pacman"
+
+#: ../../../README.rst:160
+msgid ""
+"`Pacman`_ -- classic arcade game. Use the arrow keys to navigate and eat "
+"all the white food. Watch out for red ghosts that roam the maze."
+msgstr ""
+"`Pacman`_ -- jogo de arcade clássico. Use as setas do teclado para navegar e comer "
+"toda a comida branca. Cuidado com os fantasmas vermelhos que vagam pelo labirinto."
+
+msgid "Pacman Free Python Game"
+msgstr "Pacman Free Python Game"
+
+#: ../../../README.rst:169
+msgid "Cannon"
+msgstr "Canhão"
+
+#: ../../../README.rst:171
+msgid ""
+"`Cannon`_ -- projectile motion. Click the screen to fire your "
+"cannnonball. The cannonball pops blue balloons in its path. Pop all the "
+"balloons before they can cross the screen."
+msgstr ""
+"`Canhão`_ -- movimento de projétil. Clique na tela para disparar sua bala de canhão."
+"A bala de canhão estoura balões azuis em seu caminho. Estoure todos os balões "
+"antes que eles possam cruzar a tela."
+
+msgid "Cannon Free Python Game"
+msgstr "Canhão Free Python Game"
+
+#: ../../../README.rst:181
+msgid "Connect"
+msgstr "Connect"
+
+#: ../../../README.rst:183
+msgid ""
+"`Connect`_ -- Connect 4 game. Click a row to drop a disc. The first "
+"player to connect four discs vertically, horizontally, or diagonally "
+"wins!"
+msgstr ""
+"`Connect`_ -- Jogo Ligue 4. Clique em uma linha para soltar um disco. O primeiro"
+"jogador a conectar quatro discos verticalmente, horizontalmente ou diagonalmente vence!"
+
+msgid "Connect 4 Free Python Game"
+msgstr "Connect 4 Free Python Game"
+
+#: ../../../README.rst:192
+msgid "Flappy"
+msgstr "Flappy"
+
+#: ../../../README.rst:194
+msgid ""
+"`Flappy`_ -- Flappy-bird inspired game. Click the screen to flap your "
+"wings. Watch out for black ravens as you fly across the screen."
+msgstr ""
+"`Flappy`_ -- Jogo inspirado em Flappy-bird. Clique na tela para "
+"bater suas asas. Cuidado com os corvos negros enquanto voa pela tela."
+
+msgid "Flappy Bird Free Python Game"
+msgstr "Flappy Bird Free Python Game"
+
+#: ../../../README.rst:203
+msgid "Memory"
+msgstr "Memória"
+
+#: ../../../README.rst:205
+msgid ""
+"`Memory`_ -- puzzle game of number pairs. Click a tile to reveal a "
+"number. Match two numbers and the tiles will disappear to reveal an "
+"image."
+msgstr ""
+"`Memória`_ -- jogo de quebra-cabeça de pares de números. Clique em um ladrilho para "
+"revelar um número. Combine dois números e as peças desaparecerão para revelar uma imagem."
+
+msgid "Memory Free Python Game"
+msgstr "Memória Free Python Game"
+
+#: ../../../README.rst:214
+msgid "Pong"
+msgstr "Pong"
+
+#: ../../../README.rst:216
+msgid ""
+"`Pong`_ -- classic arcade game. Use the keyboard to move your paddle up "
+"and down. The first player to miss the ball loses."
+msgstr ""
+"`Pong`_ -- jogo de arcade clássico. Use o teclado para mover a raquete para "
+"cima e para baixo. O primeiro jogador a perder a bola perde."
+
+msgid "Pong Free Python Game"
+msgstr "Pong Free Python Game"
+
+#: ../../../README.rst:225
+msgid "Simon Says"
+msgstr "Simon Says"
+
+#: ../../../README.rst:227
+msgid ""
+"`Simon Says`_ -- classic memory puzzle game. Click the screen to start. "
+"Watch the pattern and then click the tiles in the same order. Each time "
+"you get the sequence right the pattern gets one step longer."
+msgstr ""
+"`Simon Says`_ -- jogo clássico de quebra-cabeça de memória. Clique na tela para começar."
+"Observe o padrão e clique nas peças na mesma ordem. Cada vez que você acerta a sequência, "
+"o padrão fica um passo mais longo."
+
+msgid "Simon Says Free Python Game"
+msgstr "Simon Says Free Python Game"
+
+#: ../../../README.rst:237
+msgid "Tic Tac Toe"
+msgstr "Jogo da Velha"
+
+#: ../../../README.rst:239
+msgid ""
+"`Tic Tac Toe`_ -- classic game. Click the screen to place an X or O. "
+"Connect three in a row and you win!"
+msgstr ""
+"`Jogo da Velha`_ -- jogo clássico. Clique na tela para colocar um X ou O. "
+"Conecte três em uma linha e você ganha!"
+
+msgid "Tic Tac Toe Free Python Game"
+msgstr "Jogo da Velha Free Python Game"
+
+#: ../../../README.rst:248
+msgid "Tiles"
+msgstr "Tiles"
+
+#: ../../../README.rst:250
+msgid ""
+"`Tiles`_ -- puzzle game of sliding numbers into place. Click a tile "
+"adjacent to the empty square to swap positions. Can you make the tiles "
+"count one to fifteen from left to right and bottom to top?"
+msgstr ""
+"`Tiles`_ -- jogo de quebra-cabeça de números deslizantes. Clique em um ladrilho "
+"adjacente ao quadrado vazio para trocar de posição. Você pode fazer as "
+"peças contarem de um a quinze da esquerda para a direita e de baixo para cima?"
+
+msgid "Tiles Free Python Game"
+msgstr "Tiles Free Python Game"
+
+#: ../../../README.rst:260
+msgid "Tron"
+msgstr "Tron"
+
+#: ../../../README.rst:262
+msgid ""
+"`Tron`_ -- classic arcade game. Use the keyboard to change the direction "
+"of your Tron player. Avoid touching the line drawn by your opponent."
+msgstr ""
+"`Tron`_ -- jogo clássico de arcade. Utilize o teclado para mudar a direção "
+"do seu jogador em Tron. Evite tocar na linha desenhada pelo seu oponente."
+
+msgid "Tron Free Python Game"
+msgstr "Tron Free Python Game"
+
+#: ../../../README.rst:271
+msgid "Life"
+msgstr "Jogo da vida"
+
+#: ../../../README.rst:273
+msgid ""
+"`Life`_ -- Conway's Game of Life. The classic, zero-player, cellular "
+"automation created in 1970 by John Conway."
+msgstr ""
+"`Life`_ -- Jogo da vida de Conway. A clássica automação celular, zero-player, "
+"criada em 1970 por John Conway."
+
+msgid "Game of Life Free Python Game"
+msgstr "Jogo da Vida Free Python Game"
+
+#: ../../../README.rst:282
+msgid "Maze"
+msgstr "Maze"
+
+#: ../../../README.rst:284
+msgid ""
+"`Maze`_ -- move from one side to another. Inspired by `A Universe in One "
+"Line of Code with 10 PRINT`_. Tap the screen to trace a path from one "
+"side to another."
+msgstr ""
+"`Maze`_ -- Mover de um lado para o outro. Inspirado por `A Universe in One "
+"Line of Code with 10 PRINT`_. Toque na tela para traçar um caminho de um lado para o outro."
+
+msgid "Maze Free Python Game"
+msgstr "Maze Free Python Game"
+
+#: ../../../README.rst:295
+msgid "Fidget"
+msgstr "Fidget"
+
+#: ../../../README.rst:297
+msgid ""
+"`Fidget`_ -- fidget spinner inspired animation. Click the screen to "
+"accelerate the fidget spinner."
+msgstr ""
+"`Fidget`_ -- Animação inspirada nos brinquedos fidget spinner. Clique "
+"na tela para acelerar o fidget spinner."
+
+msgid "Fidget Spinner Free Python Game"
+msgstr "Fidget Free Python Game"
+
+#: ../../../README.rst:307
+msgid "User Guide"
+msgstr "Guia do Usuário"
+
+#: ../../../README.rst:309
+msgid ""
+"For those wanting more details, this part of the documentation describes "
+"curriculum, API, and development."
+msgstr ""
+"Para aqueles que procuram mais detalhes, essa parte da documentação descreve "
+"o currículo, API, e desenvolvimento."
+
+#: ../../../README.rst:312
+msgid "`Talk: Give the Gift of Python`_"
+msgstr "`Palestra: Dê o presente de Python`_"
+
+#: ../../../README.rst:313
+msgid "`Free Python Games Curriculum`_"
+msgstr "`Currículo Free Python Games`_"
+
+#: ../../../README.rst:314
+msgid "`Free Python Games API Reference`_"
+msgstr "`Referência da API do Free Python Games`_"
+
+#: ../../../README.rst:315
+msgid "`Free Python Games Development`_"
+msgstr "`Desenvolvimento do Free Python Games`_"
+
+#: ../../../README.rst:324
+msgid "References"
+msgstr "Referências"
+
+#: ../../../README.rst:326
+msgid "`Free Python Games Documentation`_"
+msgstr "`Documentação do Free Python Games`_ "
+
+#: ../../../README.rst:327
+msgid "`Free Python Games at PyPI`_"
+msgstr "`Free Python Games no PyPI`_"
+
+#: ../../../README.rst:328
+msgid "`Free Python Games at GitHub`_"
+msgstr "`Free Python Games no GitHub`_"
+
+#: ../../../README.rst:329
+msgid "`Free Python Games Issue Tracker`_"
+msgstr "`Rastreador de issues do Free Python Games`_"
+
+#: ../../../README.rst:338
+msgid "Free Python Games License"
+msgstr "Licença do Free Python Games"
+
+#: ../../../README.rst:340
+msgid "Copyright 2017-2020 Grant Jenks"
+msgstr "Direitos autorais 2017 - 2020 Grant Jenks"
+
+#: ../../../README.rst:342
+msgid ""
+"Licensed under the Apache License, Version 2.0 (the \"License\"); you may"
+" not use this file except in compliance with the License. You may obtain"
+" a copy of the License at"
+msgstr ""
+"Licenciado pela licença Apache, Versão 2.0( A \"Licença\"); Você não pode usar"
+" esse documento exceto se estiver em concordância com a Licença. Pode obter a"
+" cópia da licença em"
+
+#: ../../../README.rst:346
+msgid "http://www.apache.org/licenses/LICENSE-2.0"
+msgstr "http://www.apache.org/licenses/LICENSE-2.0"
+
+#: ../../../README.rst:348
+msgid ""
+"Unless required by applicable law or agreed to in writing, software "
+"distributed under the License is distributed on an \"AS IS\" BASIS, "
+"WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."
+" See the License for the specific language governing permissions and "
+"limitations under the License."
+msgstr ""
+"A menos que exigido pela lei aplicável ou acordado por escrito, o software "
+"distribuído sob a Licença é distribuído \"COMO ESTÁ\", SEM GARANTÍAS OU CONDIÇÕES DE "
+"QUALQUER TIPO, expressas ou implícitas. Consulte a licença para as permissões e"
+"limitações que regem o idioma específico sob a Licença."
+"
diff --git a/docs/locale/pt_BR/LC_MESSAGES/life.po b/docs/locale/pt_BR/LC_MESSAGES/life.po
new file mode 100644
index 00000000..bbe0636c
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/life.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:41-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../life.rst:2
+msgid "Life"
+msgstr "Life"
+
+#: ../../life.rst:4
+msgid "Game of Life simulation."
+msgstr "Simulação do jogo da vida."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/maze.po b/docs/locale/pt_BR/LC_MESSAGES/maze.po
new file mode 100644
index 00000000..22418aef
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/maze.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:28-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../maze.rst:2
+msgid "Maze"
+msgstr "Labirinto"
+
+#: ../../maze.rst:4
+msgid "Maze, move from one side to another."
+msgstr "Labirinto, mova-se de um lado para o outro."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/memory.po b/docs/locale/pt_BR/LC_MESSAGES/memory.po
new file mode 100644
index 00000000..46ab2ee3
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/memory.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:48-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../memory.rst:2
+msgid "Memory"
+msgstr "Memória"
+
+#: ../../memory.rst:4
+msgid "Memory, puzzle game of number pairs."
+msgstr "Memória, jogo de quebra-cabeça de pares de números."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/pacman.po b/docs/locale/pt_BR/LC_MESSAGES/pacman.po
new file mode 100644
index 00000000..605df687
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/pacman.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:48-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../pacman.rst:2
+msgid "Pacman"
+msgstr "Pacman"
+
+#: ../../pacman.rst:4
+msgid "Pacman, classic arcade game."
+msgstr "Pacman, jogo clássico de arcade."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/paint.po b/docs/locale/pt_BR/LC_MESSAGES/paint.po
new file mode 100644
index 00000000..b10a19a4
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/paint.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:24-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../paint.rst:2
+msgid "Paint"
+msgstr "Paint"
+
+#: ../../paint.rst:4
+msgid "Paint, for drawing shapes."
+msgstr "Paint, para desenhar formas."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/pong.po b/docs/locale/pt_BR/LC_MESSAGES/pong.po
new file mode 100644
index 00000000..c3758553
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/pong.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:40-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../pong.rst:2
+msgid "Pong"
+msgstr "Pong"
+
+#: ../../pong.rst:4
+msgid "Pong, classic arcade game."
+msgstr "Pong, jogo clássico de arcade."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/simonsays.po b/docs/locale/pt_BR/LC_MESSAGES/simonsays.po
new file mode 100644
index 00000000..43a1d90f
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/simonsays.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:36-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../simonsays.rst:2
+msgid "Simon Says"
+msgstr "Simon Says"
+
+#: ../../simonsays.rst:4
+msgid "A game of watching and recalling patterns."
+msgstr "Um jogo de observar e relembrar padrões."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/snake.po b/docs/locale/pt_BR/LC_MESSAGES/snake.po
new file mode 100644
index 00000000..fbd202c2
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/snake.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:22-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../snake.rst:2
+msgid "Snake"
+msgstr "Snake"
+
+#: ../../snake.rst:4
+msgid "Snake, classic arcade game."
+msgstr "Snake, jogo clássico de arcade."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/sphinx.po b/docs/locale/pt_BR/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..9d5205c8
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/sphinx.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-21 08:45-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: Pedro Henrique de Brito Gomes \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 2.3\n"
+
+#: ../../_templates/gumroad.html:1
+msgid "Donate"
+msgstr "Doações"
+
+#: ../../_templates/gumroad.html:2
+msgid "If you or your organization uses Free Games, consider donating:"
+msgstr "Se você ou sua organização usa Free Games, considere fazer uma doação:"
+
+#: ../../_templates/gumroad.html:4
+msgid "Donate to Free Python Games"
+msgstr "Doe para Free Python games"
+
+#: ../../_templates/pagetoc.html:11
+msgid "Contents"
+msgstr "Conteúdo"
+
+#: ../../_templates/search.html:14 ../../_templates/search.html:17
+msgid "Search"
+msgstr "Busca"
diff --git a/docs/locale/pt_BR/LC_MESSAGES/tictactoe.po b/docs/locale/pt_BR/LC_MESSAGES/tictactoe.po
new file mode 100644
index 00000000..8734ff83
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/tictactoe.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:33-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../tictactoe.rst:2
+msgid "Tic Tac Toe"
+msgstr "Jogo da velha"
+
+#: ../../tictactoe.rst:4
+msgid "A paper-and-pencil game for two players."
+msgstr "Um jogo de papel e lápis para dois jogadores."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/tiles.po b/docs/locale/pt_BR/LC_MESSAGES/tiles.po
new file mode 100644
index 00000000..fc89834b
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/tiles.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:44-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../tiles.rst:2
+msgid "Tiles"
+msgstr "Tiles"
+
+#: ../../tiles.rst:4
+msgid "Tiles, number swapping game."
+msgstr "Tiles, jogo de troca de números."
diff --git a/docs/locale/pt_BR/LC_MESSAGES/tron.po b/docs/locale/pt_BR/LC_MESSAGES/tron.po
new file mode 100644
index 00000000..a6833467
--- /dev/null
+++ b/docs/locale/pt_BR/LC_MESSAGES/tron.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2017-2020, Grant Jenks
+# This file is distributed under the same license as the Free Python Games
+# package.
+# FIRST AUTHOR , 2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Free Python Games 2.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-24 21:25-0300\n"
+"PO-Revision-Date: 2021-10-08 08:41-0300\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.9.1\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pt_BR\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../../tron.rst:2
+msgid "Tron"
+msgstr "Tron"
+
+#: ../../tron.rst:4
+msgid "Tron, classic arcade game."
+msgstr "Tron, jogo clássico de arcade."
diff --git a/docs/requirements-doc.txt b/docs/requirements-doc.txt
new file mode 100644
index 00000000..1054d912
--- /dev/null
+++ b/docs/requirements-doc.txt
@@ -0,0 +1,2 @@
+sphinx
+sphinx-intl