diff --git a/doc/source/infra.rst b/doc/source/infra.rst
index 977aa56..4640ff1 100644
--- a/doc/source/infra.rst
+++ b/doc/source/infra.rst
@@ -2,13 +2,67 @@
Translation infrastructure
==========================
-Translation jobs status
-=======================
+A series of scripts in OpenStack infrastructure is used to manage translation
+changes in Zanata. Without running the scripts, translation changes will not
+be reflected into OpenStack projects. This page explains how the infrastructure
+scripts runs as Jenkins jobs and monitor the jobs status.
+
+Translation jobs
+================
We have two types of Jenkins jobs for translations: syncing Zanata with the
latest repositories and pushing translations into the repositories.
+The first job is for Zanata-side updates. It enables Zanata to have up-to-date
+texts to be translated by comparing OpenStack project repositories and Zanata.
+On the other hand, the second job is aimed to reflect changes related to
+translations. For example, if you contribute translations in Zanata, the
+translation results need to be pushed to the corresponding repositories.
+
+To find updates for both Zanata and OpenStack project repositories,
+Jenkins starts to run scripts everyday at **6:00 UTC**.
+
+Note that not all translation changes are the target for translation jobs.
+Currently, we define that the jobs only download new files that are at least
+**75 percent** translated and if files grow over time but do not get new
+translations (or strings change too much), they will be removed again from the
+project with a threshold of **20 percent**. For the glossary
+(openstack-manuals/doc/glossary) and common (openstack-manuals/doc/common)
+directories, the download limit is **8 percent** because these documents are
+large and only a part is used. The purpose of thresholds is to reduce the
+amount of patches that go into a project.
+
+Monitoring translation jobs status
+==================================
+
`OpenStack Health `__
dashboard provides us a convenient way to check the translation job status.
-* `Post jobs - syncing to Zanata `__
+* `Post jobs - Syncing to Zanata `__
* `Periodic jobs: Syncing into repos `__
+
+Translation infrastructure scripts
+==================================
+
+Translation infrastructure scripts are stored and managed in
+`openstack-infra/project-config `__
+repository.
+
+* `upstream_translation_update.sh `__
+
+ * Implements the first Jenkins job (Syncing to Zanata).
+
+* `propose_translation_update.sh `__
+
+ * Carries out the second Jenkins job (Syncing into repos).
+
+* `common_translation_update.sh `__
+
+ * Common code used by **propose_translation_update.sh** and
+ **upstream_translation_update.sh**
+
+* `create-zanata-xml.py `__
+
+ * Python script to setup projects for Zanata
+
+Note that the scripts use `zanata-cli `__
+to pull and push translation content.