#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright 1999-2018 Alibaba Group Holding Ltd.
#
# 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
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

"""
This file folds Chinese po files by hacking babel.messages.pofile.normalize
using jieba text segment library instead of regex
"""

import datetime
import os

from babel.messages import pofile
from babel.messages.pofile import escape


def _zh_len(s):
    """
    Calculate text length in Chinese
    """
    try:
        return len(s.encode('gb2312'))
    except ValueError:
        return len(s)


def _zh_split(s):
    """
    Split text length in Chinese
    """
    import jieba
    try:
        s.encode('ascii')
        has_zh = False
    except ValueError:
        has_zh = True

    if has_zh:
        return list(jieba.cut(s))
    else:
        return pofile.WORD_SEP.split(s)


# code modified from babel.messages.pofile (hash 359ecffca479dfe032d0f7210d5cd8160599c816)
def _normalize(string, prefix='', width=76):
    r"""Convert a string into a format that is appropriate for .po files.
    >>> print(normalize('''Say:
    ...   "hello, world!"
    ... ''', width=None))
    ""
    "Say:\n"
    "  \"hello, world!\"\n"
    >>> print(normalize('''Say:
    ...   "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
    ... ''', width=32))
    ""
    "Say:\n"
    "  \"Lorem ipsum dolor sit "
    "amet, consectetur adipisicing"
    " elit, \"\n"
    :param string: the string to normalize
    :param prefix: a string that should be prepended to every line
    :param width: the maximum line width; use `None`, 0, or a negative number
                  to completely disable line wrapping
    """

    if width and width > 0:
        prefixlen = _zh_len(prefix)
        lines = []
        for line in string.splitlines(True):
            if _zh_len(escape(line)) + prefixlen > width:
                chunks = _zh_split(line)
                chunks.reverse()
                while chunks:
                    buf = []
                    size = 2
                    while chunks:
                        l = _zh_len(escape(chunks[-1])) - 2 + prefixlen  # noqa: E741
                        if size + l < width:
                            buf.append(chunks.pop())
                            size += l
                        else:
                            if not buf:
                                # handle long chunks by putting them on a
                                # separate line
                                buf.append(chunks.pop())
                            break
                    lines.append(u''.join(buf))
            else:
                lines.append(line)
    else:
        lines = string.splitlines(True)

    if len(lines) <= 1:
        return escape(string)

    # Remove empty trailing line
    if lines and not lines[-1]:
        del lines[-1]
        lines[-1] += '\n'
    return u'""\n' + u'\n'.join([(prefix + escape(line)) for line in lines])


def main():
    try:
        import jieba  # noqa: F401
    except ImportError:
        return

    pofile.normalize = _normalize
    for root, dirs, files in os.walk('.'):
        if 'zh' not in root:
            continue
        for f in files:
            if not f.endswith('.po'):
                continue
            path = os.path.join(root, f)

            # only modify recent-changed files
            modify_time = datetime.datetime.fromtimestamp(os.path.getmtime(path))
            if (datetime.datetime.now() - modify_time).total_seconds() > 1800:
                continue

            with open(path, 'rb') as inpf:
                catalog = pofile.read_po(inpf)
            with open(path, 'wb') as outf:
                pofile.write_po(outf, catalog)


if __name__ == '__main__':
    main()

docs/source/norm_zh.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright 1999-2018 Alibaba Group Holding Ltd.
#
# 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
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

"""
This file folds Chinese po files by hacking babel.messages.pofile.normalize
using jieba text segment library instead of regex
"""

import datetime
import os

from babel.messages import pofile
from babel.messages.pofile import escape


def _zh_len(s):
    """
    Calculate text length in Chinese
    """
    try:
        return len(s.encode('gb2312'))
    except ValueError:
        return len(s)


def _zh_split(s):
    """
    Split text length in Chinese
    """
    import jieba
    try:
        s.encode('ascii')
        has_zh = False
    except ValueError:
        has_zh = True

    if has_zh:
        return list(jieba.cut(s))
    else:
        return pofile.WORD_SEP.split(s)


# code modified from babel.messages.pofile (hash 359ecffca479dfe032d0f7210d5cd8160599c816)
def _normalize(string, prefix='', width=76):
    r"""Convert a string into a format that is appropriate for .po files.
    >>> print(normalize('''Say:
    ...   "hello, world!"
    ... ''', width=None))
    ""
    "Say:\n"
    "  \"hello, world!\"\n"
    >>> print(normalize('''Say:
    ...   "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
    ... ''', width=32))
    ""
    "Say:\n"
    "  \"Lorem ipsum dolor sit "
    "amet, consectetur adipisicing"
    " elit, \"\n"
    :param string: the string to normalize
    :param prefix: a string that should be prepended to every line
    :param width: the maximum line width; use `None`, 0, or a negative number
                  to completely disable line wrapping
    """

    if width and width > 0:
        prefixlen = _zh_len(prefix)
        lines = []
        for line in string.splitlines(True):
            if _zh_len(escape(line)) + prefixlen > width:
                chunks = _zh_split(line)
                chunks.reverse()
                while chunks:
                    buf = []
                    size = 2
                    while chunks:
                        l = _zh_len(escape(chunks[-1])) - 2 + prefixlen  # noqa: E741
                        if size + l < width:
                            buf.append(chunks.pop())
                            size += l
                        else:
                            if not buf:
                                # handle long chunks by putting them on a
                                # separate line
                                buf.append(chunks.pop())
                            break
                    lines.append(u''.join(buf))
            else:
                lines.append(line)
    else:
        lines = string.splitlines(True)

    if len(lines) <= 1:
        return escape(string)

    # Remove empty trailing line
    if lines and not lines[-1]:
        del lines[-1]
        lines[-1] += '\n'
    return u'""\n' + u'\n'.join([(prefix + escape(line)) for line in lines])


def main():
    try:
        import jieba  # noqa: F401
    except ImportError:
        return

    pofile.normalize = _normalize
    for root, dirs, files in os.walk('.'):
        if 'zh' not in root:
            continue
        for f in files:
            if not f.endswith('.po'):
                continue
            path = os.path.join(root, f)

            # only modify recent-changed files
            modify_time = datetime.datetime.fromtimestamp(os.path.getmtime(path))
            if (datetime.datetime.now() - modify_time).total_seconds() > 120:
                continue

            with open(path, 'rb') as inpf:
                catalog = pofile.read_po(inpf)
            with open(path, 'wb') as outf:
                pofile.write_po(outf, catalog)


if __name__ == '__main__':
    main()

docs/source/norm_zh.py
diff --git a/docs/Makefile b/docs/Makefile
index e6c03e83a8..b684193665 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -13,6 +13,9 @@ BUILDDIR      = build
 I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCEDIR)
 I18NSPHINXLANGS = -l zh_CN
 
+# make mars code available for sphinx builder
+export PYTHONPATH := ../
+
 # Put it first so that "make" without argument is like "make help".
 help:
 	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst
index 29b37c296b..e6c7ff8e5b 100644
--- a/docs/source/contributing.rst
+++ b/docs/source/contributing.rst
@@ -128,3 +128,13 @@ After that you can translate Mars documents into your language. Note that when
 you run ``make gettext`` again, translations will be broken into a fixed-width
 text. For Chinese translators, you need to install ``jieba`` to get this
 effect.
+
+When you finish translation, you can run
+
+.. code-block:: bash
+
+    cd docs
+    # change LANG into the language you want to build
+    make -e SPHINXOPTS="-D language='LANG'" html
+
+to build the document in the language you just translated into.
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/contributing.po b/docs/source/locale/zh_CN/LC_MESSAGES/contributing.po
index 3748c41bf9..dfdc2de1cb 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/contributing.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/contributing.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-02-15 19:14+0800\n"
+"POT-Creation-Date: 2019-03-13 13:14+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -209,3 +209,11 @@ msgstr ""
 "make gettext``，翻译后的文字将被转为固定宽度文字。对于中文译者，为达到该"
 "效果，需要安装 ``jieba`` 分词包。"
 
+#: ../../source/contributing.rst:132
+msgid "When you finish translation, you can run"
+msgstr "在完成翻译后，你可以执行"
+
+#: ../../source/contributing.rst:140
+msgid "to build the document in the language you just translated into."
+msgstr "以使用你刚才翻译的语言编译文档。"
+
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/distributed/fault-tolerance.po b/docs/source/locale/zh_CN/LC_MESSAGES/distributed/fault-tolerance.po
index a93248cb9e..12c20a2c3f 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/distributed/fault-tolerance.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/distributed/fault-tolerance.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-02-19 13:49+0800\n"
+"POT-Creation-Date: 2019-03-13 11:41+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -27,7 +27,7 @@ msgid ""
 "worker-level. Scheduler-level support is not implemented now."
 msgstr ""
 "当下，Mars 在两个层面上有容错支持：进程级别容错和 Worker 级别容错，尚未"
-"实现 Scheduler 级别容错"
+"实现 Scheduler 级别容错。"
 
 #: ../../source/distributed/fault-tolerance.rst:8
 msgid "Process-level Fault Tolerance"
@@ -51,8 +51,8 @@ msgid "Worker-level Fault Tolerance"
 msgstr "Worker 容错"
 
 #: ../../source/distributed/fault-tolerance.rst:20
-msgid "New in version 0.2.0a3"
-msgstr ""
+msgid "New in version 0.2.0a2"
+msgstr "自 0.2.0a2 起支持"
 
 #: ../../source/distributed/fault-tolerance.rst:22
 msgid ""
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/index.po b/docs/source/locale/zh_CN/LC_MESSAGES/index.po
index 5dc6ea6629..1edd211345 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/index.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/index.po
@@ -23,7 +23,7 @@ msgstr "Mars"
 
 #: ../../source/index.rst:9
 msgid "Mars is a tensor-based unified framework for large-scale data computation."
-msgstr "Mars 是基于张量的，用来进行大规模数据计算的统一计算框架"
+msgstr "Mars 是基于张量的，用于进行大规模数据计算的统一计算框架"
 
 #: ../../source/index.rst:12
 msgid "Mars tensor"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/install.po b/docs/source/locale/zh_CN/LC_MESSAGES/install.po
index 5f7dbf4d46..8be388ecda 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/install.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/install.po
@@ -120,12 +120,13 @@ msgid ""
 "computed."
 msgstr ""
 "Mars Worker 管理两个不同部分的内存，第一部分为每个进程的私有内存，第二"
-"部分是使用 Apache Arrow <https://arrow.apache.org/docs/python/plasma.html"
-">`_ 管理的共享内存。当 Mars Worker 启动，它将默认使用当前可用内存的 50% "
-"作为共享内存，将剩余部分作为各进程私有内存使用。与此同时，Mars 为内存分配"
-"提供了软限制和硬限制，分别默认为 75% 和 90%。如果这些选项不满足你的需要，"
-"你可以使用 ``--cache-mem`` 参数配置共享内存的大小，使用 ``--phy-mem`` "
-"参数配置总内存大小，软限制和硬限制将从这些数值计算。"
+"部分是使用 `Apache Arrow 中的 plasma_store <https://arrow.apache.org/docs"
+"/python/plasma.html>`_ 管理的共享内存。当 Mars Worker 启动，它将默认使用"
+"当前可用内存的 50% 作为共享内存，将剩余部分作为各进程私有内存使用。"
+"与此同时，Mars 为内存分配提供了软限制和硬限制，分别默认为 75% 和 90%。"
+"如果这些选项不满足你的需要，你可以使用 ``--cache-mem`` 参数配置共享内存的"
+"大小，使用 ``--phy-mem`` 参数配置总内存大小，软限制和硬限制将从这些数值"
+"计算。"
 
 #: ../../source/install.rst:129
 msgid "For instance, by using"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/binary.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/binary.po
index 4d2a0d96d0..6ae92526d6 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/binary.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/binary.po
@@ -19,7 +19,7 @@ msgstr ""
 
 #: ../../source/tensor/binary.rst:2
 msgid "Binary Operations"
-msgstr "二元操作"
+msgstr "二元运算"
 
 #: ../../source/tensor/binary.rst:5
 msgid "Elementwise bit operations"
@@ -31,7 +31,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the bit-wise AND of two tensors element-wise."
-msgstr ""
+msgstr "按元素对两个张量按位求与"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.bitwise_or <mars.tensor.bitwise_or>`"
@@ -39,7 +39,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the bit-wise OR of two tensors element-wise."
-msgstr ""
+msgstr "按元素对两个张量按位求或"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.bitwise_xor <mars.tensor.bitwise_xor>`"
@@ -47,7 +47,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the bit-wise XOR of two arrays element-wise."
-msgstr ""
+msgstr "按元素对两个张量按位求异或"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.invert <mars.tensor.invert>`"
@@ -55,7 +55,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute bit-wise inversion, or bit-wise NOT, element-wise."
-msgstr ""
+msgstr "按元素对张量按位求反"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.left_shift <mars.tensor.left_shift>`"
@@ -63,7 +63,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Shift the bits of an integer to the left."
-msgstr ""
+msgstr "按元素对张量按位左移"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.right_shift <mars.tensor.right_shift>`"
@@ -71,5 +71,5 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Shift the bits of an integer to the right."
-msgstr ""
+msgstr "按元素对张量按位右移"
 
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/creation.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/creation.po
index 5ee50e2705..4cee58411c 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/creation.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/creation.po
@@ -10,7 +10,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-05-04 11:27+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -19,11 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/creation.rst:2
 msgid "Tensor Creation Routines"
-msgstr "Tensor创建例程"
+msgstr "创建 Tensor"
 
 #: ../../source/tensor/creation.rst:5
 msgid "Basic creation routines"
-msgstr "基本的创建例程"
+msgstr "基本的创建函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.empty <mars.tensor.empty>`"
@@ -99,7 +99,7 @@ msgstr ""
 
 #: ../../source/tensor/creation.rst:23
 msgid "Creation from other data"
-msgstr ""
+msgstr "从其他数据创建"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.array <mars.tensor.array>`"
@@ -119,7 +119,7 @@ msgstr ""
 
 #: ../../source/tensor/creation.rst:34
 msgid "Numerical ranges"
-msgstr ""
+msgstr "从数值范围创建"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.arange <mars.tensor.arange>`"
@@ -159,7 +159,7 @@ msgstr ""
 
 #: ../../source/tensor/creation.rst:48
 msgid "Building matrices"
-msgstr ""
+msgstr "构建矩阵"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.diag <mars.tensor.diag>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/datasource.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/datasource.po
index fb1d673562..a9c466c063 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/datasource.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/datasource.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-01-11 15:52+0800\n"
+"POT-Creation-Date: 2019-03-13 12:47+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,17 +19,17 @@ msgstr ""
 
 #: ../../source/tensor/datasource.rst:2
 msgid "Create Mars tensor"
-msgstr "创建Mars张量"
+msgstr "创建 Mars 张量"
 
 #: ../../source/tensor/datasource.rst:4
 msgid ""
 "You can create mars tensor from Python array like object just like Numpy,"
 " or create from Numpy array directly. More details on :doc:`array "
-"creation routine <routines/creation>` and :doc:`random sampling "
-"<routines/random>`."
+"creation routine <creation>` and :doc:`random sampling <random>`."
 msgstr ""
-"您可以像Numpy一样从Python数组对象中创建mars张量，"
-"或者直接从Numpy数组创建。关于 :doc:`数组创建例程<routines/creation>` 和 :doc:`随机抽样<routines/random>` 的更多细节。
+"您可以像 Numpy 一样从 Python 数组创建 Mars 张量，或者直接从 Numpy 数组"
+"创建。关于 :doc:`从数组创建 <creation>` 和 :doc:`随机抽样 <random>` 的更"
+"多细节"
 
 #: ../../source/tensor/datasource.rst:14:<autosummary>:1
 msgid ":obj:`mars.tensor.tensor <mars.tensor.tensor>`"
@@ -45,14 +45,15 @@ msgstr "创建一个张量"
 
 #: ../../source/tensor/datasource.rst:16
 msgid "Create tensor on GPU"
-msgstr "在GPU上创建张量"
+msgstr "在 GPU 上创建张量"
 
 #: ../../source/tensor/datasource.rst:18
 msgid ""
 "Mars tensor can run on GPU, for tensor creation, just add a ``gpu`` "
 "parameter, and set it to ``True``."
 msgstr ""
-"Mars张量可以在GPU上运行，用于张量创建，只需添加一个 ``gpu`` 参数，然后将其设置为 ``True`` 。"
+"Mars张量可以在GPU上运行，用于张量创建，只需添加一个 ``gpu`` 参数，然后将"
+"其设置为 ``True`` 。"
 
 #: ../../source/tensor/datasource.rst:28
 msgid "Create sparse tensor"
@@ -63,7 +64,8 @@ msgid ""
 "Mars tensor can be sparse, unfortunately, only 2-D sparse tensors are "
 "supported for now, multi-dimensional tensor will be supported later soon."
 msgstr ""
-"Mars张量可以是稀疏的，不幸的是，现在只支持二维稀疏张量，很快就会支持多维张量。"
+"Mars 张量可以是稀疏的，但目前只支持二维稀疏张量，在不远的将来将会支持多维"
+"张量。"
 
 #: ../../source/tensor/datasource.rst:41
 msgid "Chunks"
@@ -78,43 +80,39 @@ msgid ""
 "fact is that chunk's size may effect heavily on the performance of "
 "execution."
 msgstr ""
-"Mars 张量中，我们将张量分块处理。"
-" ``chunk_size`` 不是必须的，对于默认设置，块的字节占用将为128M。"
-"但是，用户可以根据数据规模以更灵活的方式指定每个块的大小。"
-"事实是，块的大小可能会严重影响执行的性能。"
+"Mars 张量中，我们将张量分块处理。 ``chunk_size`` 不是必须的，对于默认设置"
+"，块的字节占用将为128M。用户也可以根据数据规模以更灵活的方式指定每个块的"
+"大小。需要注意的是，块的大小可能会严重影响执行的性能。"
 
 #: ../../source/tensor/datasource.rst:48
 msgid ""
 "The options or arguments which will effect the chunk's size are listed "
 "below:"
-msgstr ""
-"下面列出了影响块大小的选项或参数："
+msgstr "下面列出了影响块大小的选项或参数："
 
 #: ../../source/tensor/datasource.rst:50
 msgid ""
 "Change ``options.tensor.chunk_size_limit`` which is 128*1024*1024(128M) "
 "by default."
 msgstr ""
-" ``options.tensor.chunk_size_limit`` 默认情况下更改为128 * 1024 * 1024(128M)。"
+" ``options.tensor.chunk_size_limit`` 默认情况下更改为128 * 1024 * 1024("
+"128M)。"
 
 #: ../../source/tensor/datasource.rst:51
 msgid ""
 "Specify ``chunk_size`` as integer, like ``5000``, means chunk's size is "
 "5000 at most for all dimensions"
-msgstr ""
-"指定 ``chunk_size`` 为整数， ``5000`` 表示所有维度的块大小最多为5000"
+msgstr "指定 ``chunk_size`` 为整数， ``5000`` 表示所有维度的块大小最多为 5000"
 
 #: ../../source/tensor/datasource.rst:52
 msgid "Specify ``chunk_size`` as tuple, like ``(5000, 3000)``"
-msgstr ""
-"指定 ``chunk_size`` 为元组，如 ``(5000, 3000)`` "
+msgstr "指定 ``chunk_size`` 为元组，如 ``(5000, 3000)`` "
 
 #: ../../source/tensor/datasource.rst:53
 msgid ""
 "Explicitly define sizes of all chunks along all dimensions, like "
 "``((5000, 5000, 2000), (2000, 1000))``"
-msgstr ""
-"明确定义所有维度的所有块的大小，例如 ((5000, 5000, 2000), (2000, 1000))"
+msgstr "明确定义所有维度的所有块的大小，例如 ((5000, 5000, 2000), (2000, 1000))"
 
 #: ../../source/tensor/datasource.rst:56
 msgid "Chunks Examples"
@@ -122,13 +120,11 @@ msgstr "块的例子"
 
 #: ../../source/tensor/datasource.rst:58
 msgid "Assume we have such a tensor with the data shown below."
-msgstr ""
-"假设我们有包含如下数据的张量"
+msgstr "假设我们有包含如下数据的张量"
 
 #: ../../source/tensor/datasource.rst:71
-msgid "We will show how different ``chunk_size=`` arguments will tile the tensor."
-msgstr ""
-"我们将展示不同的  ``chunk_size=`` 如何影响张量的分块。"
+msgid "We will show how different ``chunk_size`` arguments will tile the tensor."
+msgstr "我们将展示不同的  ``chunk_size`` 如何影响张量的分块。"
 
 #: ../../source/tensor/datasource.rst:73
 msgid "``chunk_size=3``:"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/eager-mode.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/eager-mode.po
index c1f09829b7..abd882c727 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/eager-mode.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/eager-mode.po
@@ -23,35 +23,31 @@ msgstr "Eager 模式"
 
 #: ../../source/tensor/eager-mode.rst:4
 msgid "New in version 0.2.0a2"
-msgstr ""
+msgstr "自 0.2.0a2 起支持"
 
 #: ../../source/tensor/eager-mode.rst:6
 msgid ""
 "Mars supports eager mode which makes it friendly for developing and easy "
 "to debug."
-msgstr ""
-"Mars支持eager模式，使其易于开发和易于调试。"
+msgstr "Mars 支持 Eager 模式以方便开发和调试。"
 
 #: ../../source/tensor/eager-mode.rst:9
 msgid ""
 "Users can enable the eager mode by options, set options at the beginning "
 "of the program or console session."
-msgstr ""
-"用户可以通过选项启用eager模式，在程序开头或控制台会话中设置选项。"
+msgstr "用户可以通过选项启用 Eager 模式，在程序开头或控制台会话中设置选项。"
 
 #: ../../source/tensor/eager-mode.rst:18
 msgid "Or use a context."
-msgstr ""
-"或者使用上下文。"
+msgstr "或者使用上下文。"
 
 #: ../../source/tensor/eager-mode.rst:29
 msgid ""
 "If eager mode is on, tensor will be executed immediately by default "
 "session once it is created."
-msgstr ""
-"如果打开了eager模式，则会在创建默认会话后立即执行tensor。"
+msgstr "如果打开了 Eager 模式，则会在创建默认会话后立即执行 tensor。"
 
 #: ../../source/tensor/eager-mode.rst:43
 msgid "Use ``fetch`` to obtain numpy value from a tensor:"
-msgstr ""
-"使用 ``fetch`` 从张量中获取numpy值："
\ No newline at end of file
+msgstr "使用 ``fetch`` 从张量中获取 Numpy 值："
+
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/execution.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/execution.po
index 6f2e8b8a2e..695a2623a8 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/execution.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/execution.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-11-28 19:54+0800\n"
+"POT-Creation-Date: 2019-03-13 13:07+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -23,53 +23,55 @@ msgstr "本地执行"
 
 #: ../../source/tensor/execution.rst:4
 msgid ""
-"Mars tensor will not be executed unless users call ``execute`` or "
-"``session.run`` methods."
+"When :doc:`eager mode <eager-mode>` is not enabled, which is the default "
+"behavior, Mars tensor will not be executed unless users call ``execute`` "
+"or ``session.run`` methods."
 msgstr ""
-"除非用户调用 ``execute`` 或使用 ``session.run`` 方法，否则不会执行Mars张量。"
+"默认情况下，Mars 的 :doc:`Eager 模式 <eager-mode>` 处于关闭状态。此时，"
+"除非用户显示调用 ``execute`` 或使用 ``session.run`` 方法，Mars 张量不会"
+"执行。"
 
-#: ../../source/tensor/execution.rst:6
+#: ../../source/tensor/execution.rst:8
 msgid ""
 "If no session is created explicitly, the ``execute`` will create a local "
 "session, and mark it as a default session."
 msgstr ""
-"如果没有显式创建会话， ``execute`` 方法会创建一个本地会话，并将其标记为默认会话。"
+"如果没有显式创建会话， ``execute`` 方法会创建一个本地会话，并将其标记为"
+"默认会话。"
 
-#: ../../source/tensor/execution.rst:9
+#: ../../source/tensor/execution.rst:12
 msgid "Session"
 msgstr "会话"
 
-#: ../../source/tensor/execution.rst:11
+#: ../../source/tensor/execution.rst:14
 msgid ""
 "Users can create a new session by ``new_session`` method, if no argument "
 "is provided, a local session will be generated."
 msgstr ""
-"用户可以通过 ``new_session`` 方法创建新会话，如果未提供参数，则将生成本地会话。"
+"用户可以通过 ``new_session`` 方法创建新会话，如果未提供参数，则将生成本地"
+"会话。"
 
-#: ../../source/tensor/execution.rst:21
+#: ../../source/tensor/execution.rst:24
 msgid ""
 "By calling ``as_default`` of a session, the session will be marked as the"
 " default session."
-msgstr ""
-"通过调用会话的  ``as_default`` 方法，该会话将被标记为默认会话。"
+msgstr "通过调用会话的 ``as_default`` 方法，该会话将被标记为默认会话。"
 
-#: ../../source/tensor/execution.rst:29
+#: ../../source/tensor/execution.rst:33
 msgid ""
 "More than one mars tensors can be passed to ``session.run``, and "
 "calculate the results for each tensor."
-msgstr ""
-"可以传递多个mars张量给 ``session.run`` ，并计算每个张量的结果。"
+msgstr "可以传递多个mars张量给 ``session.run`` ，并计算每个张量的结果。"
 
-#: ../../source/tensor/execution.rst:49
+#: ../../source/tensor/execution.rst:54
 msgid "Execute a tensor"
 msgstr "执行张量"
 
-#: ../../source/tensor/execution.rst:51
+#: ../../source/tensor/execution.rst:56
 msgid "For a single tensor, ``execute`` can be called."
-msgstr ""
-"可以调用张量的 ``execute`` 方法来执行单个张量。"
+msgstr "可以调用张量的 ``execute`` 方法来执行单个张量。"
+
+#: ../../source/tensor/execution.rst:64
+msgid "Session can be specified by the argument ``session``."
+msgstr "会话可以由参数 ``session`` 指定。"
 
-#: ../../source/tensor/execution.rst:59
-msgid "Session can be specified by the argument ``session=``."
-msgstr ""
-"会话可以由参数 ``session=`` 指定。"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/fft.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/fft.po
index 11e45b830b..9cd4d8aff1 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/fft.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/fft.po
@@ -19,13 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/fft.rst:4
 msgid "Discrete Fourier Transform"
-msgstr ""
-"离散傅立叶变换"
+msgstr "离散傅立叶变换"
 
 #: ../../source/tensor/fft.rst:8
 msgid "Standard FFTs"
-msgstr ""
-"标准离散傅立叶变换"
+msgstr "标准快速傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.fft <mars.tensor.fft.fft>`"
@@ -33,7 +31,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the one-dimensional discrete Fourier Transform."
-msgstr ""
+msgstr "计算一维离散傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.ifft <mars.tensor.fft.ifft>`"
@@ -41,7 +39,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the one-dimensional inverse discrete Fourier Transform."
-msgstr ""
+msgstr "计算一维离散傅立叶逆变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.fft2 <mars.tensor.fft.fft2>`"
@@ -49,7 +47,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the 2-dimensional discrete Fourier Transform"
-msgstr ""
+msgstr "计算二维离散傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.ifft2 <mars.tensor.fft.ifft2>`"
@@ -57,7 +55,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the 2-dimensional inverse discrete Fourier Transform."
-msgstr ""
+msgstr "计算二维离散傅立叶逆变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.fftn <mars.tensor.fft.fftn>`"
@@ -65,7 +63,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the N-dimensional discrete Fourier Transform."
-msgstr ""
+msgstr "计算N维离散傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.ifftn <mars.tensor.fft.ifftn>`"
@@ -73,11 +71,11 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the N-dimensional inverse discrete Fourier Transform."
-msgstr ""
+msgstr "计算N维离散傅立叶逆变换"
 
 #: ../../source/tensor/fft.rst:23
 msgid "Real FFTs"
-msgstr ""
+msgstr "实数快速傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.rfft <mars.tensor.fft.rfft>`"
@@ -85,7 +83,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the one-dimensional discrete Fourier Transform for real input."
-msgstr ""
+msgstr "对实数输入计算一维离散傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.irfft <mars.tensor.fft.irfft>`"
@@ -93,7 +91,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the inverse of the n-point DFT for real input."
-msgstr ""
+msgstr "对实数输入的N点一维傅立叶变换结果计算逆变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.rfft2 <mars.tensor.fft.rfft2>`"
@@ -101,7 +99,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the 2-dimensional FFT of a real tensor."
-msgstr ""
+msgstr "对实数输入计算二维离散傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.irfft2 <mars.tensor.fft.irfft2>`"
@@ -109,7 +107,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the 2-dimensional inverse FFT of a real array."
-msgstr ""
+msgstr "对实数输入计算二维离散傅立叶逆变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.rfftn <mars.tensor.fft.rfftn>`"
@@ -117,7 +115,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the N-dimensional discrete Fourier Transform for real input."
-msgstr ""
+msgstr "对实数输入计算N维离散傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.irfftn <mars.tensor.fft.irfftn>`"
@@ -125,11 +123,11 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the inverse of the N-dimensional FFT of real input."
-msgstr ""
+msgstr "对实数输入计算N维离散傅立叶逆变换"
 
 #: ../../source/tensor/fft.rst:38
 msgid "Hermitian FFTs"
-msgstr ""
+msgstr "Hermitian 快速傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.hfft <mars.tensor.fft.hfft>`"
@@ -139,7 +137,7 @@ msgstr ""
 msgid ""
 "Compute the FFT of a signal that has Hermitian symmetry, i.e., a real "
 "spectrum."
-msgstr ""
+msgstr "对具备 Hermitian 对称性的信号，例如实频谱，计算傅立叶变换"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.ihfft <mars.tensor.fft.ihfft>`"
@@ -147,11 +145,11 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Compute the inverse FFT of a signal that has Hermitian symmetry."
-msgstr ""
+msgstr "对具备 Hermitian 对称信号 的傅立叶变换结果计算逆变换"
 
 #: ../../source/tensor/fft.rst:49
 msgid "Helper routines"
-msgstr ""
+msgstr "辅助函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.fftfreq <mars.tensor.fft.fftfreq>`"
@@ -159,7 +157,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the Discrete Fourier Transform sample frequencies."
-msgstr ""
+msgstr "返回离散傅立叶变换的采样频率"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.rfftfreq <mars.tensor.fft.rfftfreq>`"
@@ -169,7 +167,7 @@ msgstr ""
 msgid ""
 "Return the Discrete Fourier Transform sample frequencies (for usage with "
 "rfft, irfft)."
-msgstr ""
+msgstr "返回离散傅立叶变换的采样频率（适用于实数变换和逆变换）"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.fftshift <mars.tensor.fft.fftshift>`"
@@ -177,7 +175,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Shift the zero-frequency component to the center of the spectrum."
-msgstr ""
+msgstr "将0频率成分移动到频谱中心"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.fft.ifftshift <mars.tensor.fft.ifftshift>`"
@@ -185,5 +183,5 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "The inverse of `fftshift`."
-msgstr ""
+msgstr "`fftshift` 的逆操作"
 
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/generated/mars.tensor.core.Tensor.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/generated/mars.tensor.core.Tensor.po
index 1304a7e76a..53887f9298 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/generated/mars.tensor.core.Tensor.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/generated/mars.tensor.core.Tensor.po
@@ -8,14 +8,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-02-21 15:10+0800\n"
+"POT-Creation-Date: 2019-03-13 11:41+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:2
 msgid "mars.tensor.core.Tensor"
@@ -176,7 +176,7 @@ msgid "Dot product of two arrays."
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
-msgid ":obj:`Tensor.execute <Tensor.execute>`\\"
+msgid ":obj:`execute <mars.tensor.core.Tensor.execute>`\\ \\(\\[session\\]\\)"
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
@@ -264,7 +264,11 @@ msgid "Return the product of tensor elements over a given axis."
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
-msgid ":obj:`Tensor.ravel <Tensor.ravel>`\\"
+msgid ":obj:`ravel <mars.tensor.core.Tensor.ravel>`\\ \\(\\)"
+msgstr ""
+
+#: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
+msgid "Return a flattened tensor."
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
@@ -284,7 +288,13 @@ msgid "Repeat elements of a tensor."
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
-msgid ":obj:`Tensor.reshape <Tensor.reshape>`\\"
+msgid ""
+":obj:`reshape <mars.tensor.core.Tensor.reshape>`\\ \\(shape\\, "
+"\\*shapes\\)"
+msgstr ""
+
+#: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
+msgid "Returns a tensor containing the same data with a new shape."
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
@@ -372,7 +382,11 @@ msgid ":obj:`Tensor.tosparse <Tensor.tosparse>`\\"
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
-msgid ":obj:`Tensor.transpose <Tensor.transpose>`\\"
+msgid ":obj:`transpose <mars.tensor.core.Tensor.transpose>`\\ \\(\\*axes\\)"
+msgstr ""
+
+#: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
+msgid "Returns a view of the tensor with axes transposed."
 msgstr ""
 
 #: ../../source/tensor/generated/mars.tensor.core.Tensor.rst:77:<autosummary>:1
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/generated/mars.tensor.inner.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/generated/mars.tensor.inner.po
new file mode 100644
index 0000000000..f1ce987f54
--- /dev/null
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/generated/mars.tensor.inner.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2014-2018, The Alibaba Group Holding Ltd.
+# This file is distributed under the same license as the mars package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: mars \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-03-13 14:24+0800\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.6.0\n"
+
+#: ../../source/tensor/generated/mars.tensor.inner.rst:2
+msgid "mars.tensor.inner"
+msgstr ""
+
+#: mars.tensor.inner:1 of
+msgid "Returns the inner product of a and b for arrays of floating point types."
+msgstr ""
+
+#: mars.tensor.inner:3 of
+msgid ""
+"Like the generic NumPy equivalent the product sum is over the last "
+"dimension of a and b. The first argument is not conjugated."
+msgstr ""
+
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/index.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/index.po
index 7f6167a0d0..f458febb43 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/index.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/index.po
@@ -19,5 +19,5 @@ msgstr ""
 
 #: ../../source/tensor/index.rst:2
 msgid "Mars tensor - distributed tensor with NumPy-like API"
-msgstr ""
-"Mars tensor - 提供类似 Numpy API 的分布式张量库"
+msgstr "Mars tensor - 提供类似 Numpy API 的分布式张量库"
+
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/indexing.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/indexing.po
index 6550f51f04..44e7f9cd47 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/indexing.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/indexing.po
@@ -19,12 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/indexing.rst:2
 msgid "Indexing Routines"
-msgstr "索引例程"
+msgstr "索引"
 
 #: ../../source/tensor/indexing.rst:5
 msgid "Generating index arrays"
-msgstr ""
-"生成索引数组"
+msgstr "生成索引数组"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.nonzero <mars.tensor.nonzero>`"
@@ -70,7 +69,7 @@ msgstr ""
 
 #: ../../source/tensor/indexing.rst:19
 msgid "Indexing-like opeartions"
-msgstr ""
+msgstr "类似索引的操作"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.take <mars.tensor.take>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/linalg.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/linalg.po
index 9f1e7f6b33..773eb45ae0 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/linalg.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/linalg.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-05-07 17:08+0800\n"
+"POT-Creation-Date: 2019-03-13 14:24+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,83 +18,90 @@ msgstr ""
 "Generated-By: Babel 2.6.0\n"
 
 #: ../../source/tensor/linalg.rst:2
-msgid "Linear Algebra (``mars.tensor.linalg``)"
-msgstr ""
-"线性代数 (``mars.tensor.linalg``)"
+msgid "Linear Algebra"
+msgstr "线性代数"
 
 #: ../../source/tensor/linalg.rst:5
 msgid "Matrix and vector products"
-msgstr ""
+msgstr "矩阵和向量乘法"
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid ":obj:`mars.tensor.dot <mars.tensor.dot>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid "Dot product of two arrays."
-msgstr ""
+msgstr "计算两个数组的点积"
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid ":obj:`mars.tensor.vdot <mars.tensor.vdot>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid "Return the dot product of two vectors."
+msgstr "计算两个向量的点积"
+
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
+msgid ":obj:`mars.tensor.inner <mars.tensor.inner>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
+msgid "Returns the inner product of a and b for arrays of floating point types."
+msgstr "对两个数组计算内积"
+
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid ":obj:`mars.tensor.matmul <mars.tensor.matmul>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid "Matrix product of two tensors."
-msgstr ""
+msgstr "计算两个张量的乘法"
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid ":obj:`mars.tensor.tensordot <mars.tensor.tensordot>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:16:<autosummary>:1
 msgid "Compute tensor dot product along specified axes for tensors >= 1-D."
-msgstr ""
+msgstr "沿指定的坐标计算张量点乘"
 
-#: ../../source/tensor/linalg.rst:17
+#: ../../source/tensor/linalg.rst:18
 msgid "Decompositions"
-msgstr ""
+msgstr "矩阵分解"
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:28:<autosummary>:1
 msgid ":obj:`mars.tensor.linalg.cholesky <mars.tensor.linalg.cholesky>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:28:<autosummary>:1
 msgid "Cholesky decomposition."
-msgstr ""
+msgstr "Cholesky 分解"
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:28:<autosummary>:1
 msgid ":obj:`mars.tensor.linalg.qr <mars.tensor.linalg.qr>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:28:<autosummary>:1
 msgid "Compute the qr factorization of a matrix."
-msgstr ""
+msgstr "计算矩阵的 QR 分解"
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:28:<autosummary>:1
 msgid ":obj:`mars.tensor.linalg.svd <mars.tensor.linalg.svd>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:28:<autosummary>:1
 msgid "Singular Value Decomposition."
-msgstr ""
+msgstr "奇异值分解（SVD）"
 
-#: ../../source/tensor/linalg.rst:29
+#: ../../source/tensor/linalg.rst:30
 msgid "Norms and other numbers"
-msgstr ""
+msgstr "范数和其他数值"
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:38:<autosummary>:1
 msgid ":obj:`mars.tensor.linalg.norm <mars.tensor.linalg.norm>`"
 msgstr ""
 
-#: ../../<autosummary>:1
+#: ../../source/tensor/linalg.rst:38:<autosummary>:1
 msgid "Matrix or vector norm."
-msgstr ""
+msgstr "计算矩阵或向量的范数"
 
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/logic.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/logic.po
index b2366e720f..d17e056fcd 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/logic.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/logic.po
@@ -10,7 +10,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-05-07 16:23+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -19,13 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/logic.rst:2
 msgid "Logic Functions"
-msgstr ""
-"逻辑函数"
+msgstr "逻辑函数"
 
 #: ../../source/tensor/logic.rst:5
 msgid "Truth value testing"
-msgstr ""
-"真值测试"
+msgstr "真值判定"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.all <mars.tensor.all>`"
@@ -45,7 +43,7 @@ msgstr ""
 
 #: ../../source/tensor/logic.rst:16
 msgid "Array contents"
-msgstr ""
+msgstr "数组值判定"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.isfinite <mars.tensor.isfinite>`"
@@ -73,7 +71,7 @@ msgstr ""
 
 #: ../../source/tensor/logic.rst:28
 msgid "Array type testing"
-msgstr ""
+msgstr "数组类型判定"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.iscomplex <mars.tensor.iscomplex>`"
@@ -93,7 +91,7 @@ msgstr ""
 
 #: ../../source/tensor/logic.rst:39
 msgid "Logic operations"
-msgstr ""
+msgstr "逻辑运算"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.logical_and <mars.tensor.logical_and>`"
@@ -129,7 +127,7 @@ msgstr ""
 
 #: ../../source/tensor/logic.rst:52
 msgid "Comparison"
-msgstr ""
+msgstr "比较"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.allclose <mars.tensor.allclose>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/manipulation.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/manipulation.po
index bfbcceba05..23b16a6e2d 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/manipulation.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/manipulation.po
@@ -19,13 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:2
 msgid "Tensor Manipulation Routines"
-msgstr ""
-"Tensor操作例程"
+msgstr "Tensor 操作"
 
 #: ../../source/tensor/manipulation.rst:5
 msgid "Basic manipulations"
-msgstr ""
-"基本操作"
+msgstr "基本操作"
 
 #: ../../source/tensor/manipulation.rst:13:<autosummary>:1
 msgid ":obj:`mars.tensor.copyto <mars.tensor.copyto>`"
@@ -37,7 +35,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:15
 msgid "Shape manipulation"
-msgstr ""
+msgstr "形状操作"
 
 #: ../../source/tensor/manipulation.rst:116:<autosummary>:1
 #: ../../source/tensor/manipulation.rst:24:<autosummary>:1
@@ -59,7 +57,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:26
 msgid "Transposition"
-msgstr ""
+msgstr "变换"
 
 #: ../../source/tensor/manipulation.rst:38:<autosummary>:1
 msgid ":obj:`mars.tensor.moveaxis <mars.tensor.moveaxis>`"
@@ -103,7 +101,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:40
 msgid "Edit dimensionalities"
-msgstr ""
+msgstr "修改维度"
 
 #: ../../source/tensor/manipulation.rst:54:<autosummary>:1
 msgid ":obj:`mars.tensor.atleast_1d <mars.tensor.atleast_1d>`"
@@ -163,7 +161,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:56
 msgid "Changing kind of tensor"
-msgstr ""
+msgstr "修改 Tensor 类型"
 
 #: ../../source/tensor/manipulation.rst:64:<autosummary>:1
 msgid ":obj:`mars.tensor.asarray <mars.tensor.asarray>`"
@@ -175,7 +173,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:66
 msgid "Joining tensors"
-msgstr ""
+msgstr "合并 Tensor"
 
 #: ../../source/tensor/manipulation.rst:79:<autosummary>:1
 msgid ":obj:`mars.tensor.concatenate <mars.tensor.concatenate>`"
@@ -227,7 +225,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:81
 msgid "Splitting tensors"
-msgstr ""
+msgstr "拆分 Tensor"
 
 #: ../../source/tensor/manipulation.rst:93:<autosummary>:1
 msgid ":obj:`mars.tensor.split <mars.tensor.split>`"
@@ -267,7 +265,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:95
 msgid "Tiling tensors"
-msgstr ""
+msgstr "对 Tensor 分块"
 
 #: ../../source/tensor/manipulation.rst:104:<autosummary>:1
 msgid ":obj:`mars.tensor.tile <mars.tensor.tile>`"
@@ -287,7 +285,7 @@ msgstr ""
 
 #: ../../source/tensor/manipulation.rst:106
 msgid "Rearranging elements"
-msgstr ""
+msgstr "元素重排"
 
 #: ../../source/tensor/manipulation.rst:116:<autosummary>:1
 msgid ":obj:`mars.tensor.flip <mars.tensor.flip>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/math.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/math.po
index d2c2a1fcdf..fd78300dcc 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/math.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/math.po
@@ -10,7 +10,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-05-07 16:39+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -19,13 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:2
 msgid "Mathematical Functions"
-msgstr ""
-"数学函数"
+msgstr "数学函数"
 
 #: ../../source/tensor/math.rst:5
 msgid "Trigonometric functions"
-msgstr ""
-"三角函数"
+msgstr "三角函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.sin <mars.tensor.sin>`"
@@ -117,7 +115,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:26
 msgid "Hyperbolic functions"
-msgstr ""
+msgstr "双曲函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.sinh <mars.tensor.sinh>`"
@@ -169,7 +167,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:41
 msgid "Rounding"
-msgstr ""
+msgstr "取整"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.around <mars.tensor.around>`"
@@ -225,7 +223,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:57
 msgid "Sums, products, differences"
-msgstr ""
+msgstr "求和、求积和差分"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.prod <mars.tensor.prod>`"
@@ -317,7 +315,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:76
 msgid "Exponential and logarithms"
-msgstr ""
+msgstr "指数和对数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.exp <mars.tensor.exp>`"
@@ -393,7 +391,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:94
 msgid "Other special functions"
-msgstr ""
+msgstr "其他特殊函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.i0 <mars.tensor.i0>`"
@@ -413,7 +411,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:105
 msgid "Floating point routines"
-msgstr ""
+msgstr "浮点数操作"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.signbit <mars.tensor.signbit>`"
@@ -465,7 +463,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:120
 msgid "Arithmetic operations"
-msgstr ""
+msgstr "算数操作"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.add <mars.tensor.add>`"
@@ -585,7 +583,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:144
 msgid "Handling complex numbers"
-msgstr ""
+msgstr "复数操作"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.angle <mars.tensor.angle>`"
@@ -621,7 +619,7 @@ msgstr ""
 
 #: ../../source/tensor/math.rst:157
 msgid "Miscellaneous"
-msgstr ""
+msgstr "其他"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.clip <mars.tensor.clip>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/overview.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/overview.po
index d083d0dbad..cbee76a7e2 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/overview.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/overview.po
@@ -10,7 +10,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-05-07 17:46+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -19,8 +19,7 @@ msgstr ""
 
 #: ../../source/tensor/overview.rst:2
 msgid "Overview"
-msgstr ""
-"概述"
+msgstr "概述"
 
 #: ../../source/tensor/overview.rst:4
 msgid ""
@@ -30,27 +29,23 @@ msgid ""
 "directed graph. This lets us compute on tensors larger than memory and "
 "take advantage of the ability of multi-cores or distributed clusters."
 msgstr ""
-"Mars tensor 对应 Numpy ndarray,它实现了Numpy ndarray接口的一个子集。"
-"它将一个大张量切分成很多小块，并用有向图描述块之间的计算。这使我们可以在大于内存的张量上进行计算，"
-"并利用多核或分布式集群的能力。"
+"Mars tensor 对应 Numpy ndarray，实现了 Numpy ndarray 接口的子集。在执行中"
+"，Mars tensor 将一个大张量切分成很多小块，并用有向图描述块之间的计算。"
+"这使我们可以在大于内存的张量上进行计算，并利用多核或分布式集群的能力。"
 
 #: ../../source/tensor/overview.rst:9
 msgid "The following is a brief overview of supported subset of Numpy interface."
-msgstr ""
-"以下是Numpy接口支持子集的简要概述。"
+msgstr "以下是 Mars tensor 所支持 Numpy 接口子集的概述。"
 
 #: ../../source/tensor/overview.rst:11
 msgid ""
 "Arithmetic and mathematics: ``+``, ``-``, ``*``, ``/``, ``exp``, ``log``,"
 " etc."
-msgstr ""
-"算术和数学：``+``, ``-``, ``*``, ``/``, ``exp``, ``log`` 等"
-
+msgstr "算术和数学函数：``+``、``-``、``*``、``/``、``exp``、``log`` 等"
 
 #: ../../source/tensor/overview.rst:12
 msgid "Reduction along axes (``sum``, ``max``, ``argmax``, etc)."
-msgstr ""
-"沿轴线聚合(``sum``, ``max``, ``argmax``, 等)"
+msgstr "沿坐标聚合（``sum``, ``max``, ``argmax``, 等)"
 
 #: ../../source/tensor/overview.rst:13
 msgid ""
@@ -60,11 +55,9 @@ msgid ""
 "Mars does not only support create array/tensor on GPU, but also support "
 "create sparse tensor."
 msgstr ""
-"大多数的 ` 数组创建程序 "
-"<https://docs.scipy.org/doc/numpy/reference/routines.array-"
-"creation.html>`_ (``empty``, ``ones_like``, ``diag``, 等)。"
-"更重要的是，Mars不仅支持在GPU上创建数组/张量，还支持创建稀疏张量。"
-
+"大多数的 `数组创建方法 <https://docs.scipy.org/doc/numpy/reference/"
+"routines.array-creation.html>`_ （``empty``、``ones_like``、``diag`` 等）"
+"。更重要的是，Mars 不仅支持在 GPU 上创建数组/张量，还支持创建稀疏张量。"
 
 #: ../../source/tensor/overview.rst:16
 msgid ""
@@ -72,9 +65,9 @@ msgid ""
 "<https://docs.scipy.org/doc/numpy/reference/routines.array-"
 "manipulation.html>`_ (``reshape``, ``rollaxis``, ``concatenate``, etc.)"
 msgstr ""
-"大部分的 `数组操作例程 "
-"<https://docs.scipy.org/doc/numpy/reference/routines.array-"
-"manipulation.html>`_ (``reshape``, ``rollaxis``, ``concatenate``, 等)"
+"大部分的 `数组操作例程 <https://docs.scipy.org/doc/numpy/reference/"
+"routines.array-manipulation.html>`_ （``reshape``、``rollaxis``、``"
+"concatenate`` 等）"
 
 #: ../../source/tensor/overview.rst:18
 msgid ""
@@ -82,16 +75,14 @@ msgid ""
 "<https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html>`_ "
 "(indexing by ints, slices, newaxes, and Ellipsis)"
 msgstr ""
-"`基本索引 "
-"<https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html>`_ "
-"(通过整数，切片，添加新维度和省略号进行索引)"
+"`基本索引 <https://docs.scipy.org/doc/numpy/reference/arrays.indexing."
+"html>`_ （通过整数、切片、添加新维度和省略号进行索引）"
 
 #: ../../source/tensor/overview.rst:20
 msgid ""
 "Fancy indexing along single axis with lists or numpy arrays, e.g. x[[1, "
 "4, 8], :5]"
-msgstr ""
-"使用列表或numpy数组沿单轴的花式索引，例如x [[1,4,8], :5]"
+msgstr "使用列表或 Numpy 数组沿单个坐标的花式索引，例如 x[[1,4,8], :5]"
 
 #: ../../source/tensor/overview.rst:21
 msgid ""
@@ -99,8 +90,8 @@ msgid ""
 "<https://docs.scipy.org/doc/numpy/reference/ufuncs.html>`_ for "
 "elementwise operations."
 msgstr ""
-"元素运算的 `通用函数 "
-"<https://docs.scipy.org/doc/numpy/reference/ufuncs.html>`_"
+"元素运算的 `通用函数 <https://docs.scipy.org/doc/numpy/reference/ufuncs."
+"html>`_"
 
 #: ../../source/tensor/overview.rst:23
 msgid ""
@@ -109,10 +100,9 @@ msgid ""
 "including product (``dot``, ``matmul``, etc.) and decomposition "
 "(``cholesky``, ``svd``, etc.)."
 msgstr ""
-"`线性代数函数 "
-"<https://docs.scipy.org/doc/numpy/reference/routines.linalg.html>`_, "
-"包括乘积 (``dot``, ``matmul``, 等)和分解"
-"(``cholesky``, ``svd``, 等)。"
+"`线性代数函数 <https://docs.scipy.org/doc/numpy/reference/routines.linalg"
+".html>`_，包括乘积（``dot``、``matmul`` 等）和分解（``cholesky``、``svd``"
+" 等）"
 
 #: ../../source/tensor/overview.rst:26
 msgid ""
@@ -121,25 +111,22 @@ msgid ""
 "community is sincerely welcomed. The main feature not implemented are "
 "listed below:"
 msgstr ""
-"然而，Mars还没有实现整个Numpy接口，时间限制和难度是主要原因。"
-"我们真诚地欢迎社区的任何贡献。未实现的主要功能如下："
+"然而，Mars 尚未实现 Numpy 的所有接口，时间限制和难度是主要原因。我们"
+"真诚地欢迎社区的任何贡献。未实现的主要功能如下："
 
 #: ../../source/tensor/overview.rst:29
 msgid "Tensor with unknown shape does not support all operations."
-msgstr ""
-"形状未知的张量不支持所有操作"
+msgstr "形状未知的张量不支持所有操作"
 
 #: ../../source/tensor/overview.rst:30
 msgid "Only small subset of ``np.linalg`` are implemented."
-msgstr ""
-"只实现了一小部分 ``np.linalg``"
+msgstr "``np.linalg`` 只实现了一小部分"
 
 #: ../../source/tensor/overview.rst:31
 msgid ""
 "Operations like ``sort`` which is hard to execute in parallel are not "
 "implemented."
-msgstr ""
-"像 ``sort`` 这些操作很难高效并行"
+msgstr "像 ``sort`` 这样不易实现高效并行的操作尚未实现"
 
 #: ../../source/tensor/overview.rst:32
 msgid ""
@@ -147,5 +134,6 @@ msgid ""
 "etc, because the iteration or loops over a large tensor is very "
 "inefficient."
 msgstr ""
-"Mars张量没有实现类似 ``tolist`` 和 ``nditer`` 等接口，"
-"因为迭代或者循环处理巨大的张量非常低效。"
+"Mars 张量没有实现 ``tolist`` 和 ``nditer`` 这样的接口，因为迭代或者循环"
+"处理巨大的张量非常低效"
+
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/random.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/random.po
index ed9a92e29e..070a90a752 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/random.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/random.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-01-11 15:52+0800\n"
+"POT-Creation-Date: 2019-03-13 13:29+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,14 +18,12 @@ msgstr ""
 "Generated-By: Babel 2.6.0\n"
 
 #: ../../source/tensor/random.rst:4
-msgid "Random Sampling (``mars.tensor.random``)"
-msgstr ""
-"随机抽样 (``mars.tensor.random``)"
+msgid "Random Sampling"
+msgstr "随机抽样"
 
 #: ../../source/tensor/random.rst:7
 msgid "Sample random data"
-msgstr ""
-"随机数据样本"
+msgstr "随机数据样本"
 
 #: ../../source/tensor/random.rst:24:<autosummary>:1
 msgid ":obj:`mars.tensor.random.rand <mars.tensor.random.rand>`"
@@ -99,7 +97,7 @@ msgstr ""
 
 #: ../../source/tensor/random.rst:26
 msgid "Distributions"
-msgstr ""
+msgstr "随机分布"
 
 #: ../../source/tensor/random.rst:67:<autosummary>:1
 msgid ":obj:`mars.tensor.random.beta <mars.tensor.random.beta>`"
@@ -399,7 +397,7 @@ msgstr ""
 
 #: ../../source/tensor/random.rst:69
 msgid "Random number generator"
-msgstr ""
+msgstr "生成随机数"
 
 #: ../../source/tensor/random.rst:77:<autosummary>:1
 msgid ":obj:`mars.tensor.random.seed <mars.tensor.random.seed>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/routines.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/routines.po
index 8af78beaa5..75bf6fb6f0 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/routines.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/routines.po
@@ -19,8 +19,7 @@ msgstr ""
 
 #: ../../source/tensor/routines.rst:2
 msgid "Routines"
-msgstr ""
-"例程"
+msgstr "功能"
 
 #: ../../source/tensor/routines.rst:4
 msgid ""
@@ -28,5 +27,6 @@ msgid ""
 "cover a subset of `NumPy routines "
 "<https://docs.scipy.org/doc/numpy/reference/routines.html>`_."
 msgstr ""
-"以下页面描述了与Numpy兼容的例程。这些函数涵盖了 `NumPy例程的子集 "
-"<https://docs.scipy.org/doc/numpy/reference/routines.html>`_ 。"
+"以下页面描述了与 Numpy 兼容的功能。这些函数涵盖了 `NumPy 功能的子集 <"
+"https://docs.scipy.org/doc/numpy/reference/routines.html>`_ 。"
+
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/set.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/set.po
index d7fe7d60ce..08d9865656 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/set.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/set.po
@@ -19,13 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/set.rst:2
 msgid "Set routines"
-msgstr ""
-"集合例程"
+msgstr "集合函数"
 
 #: ../../source/tensor/set.rst:5
 msgid "Boolean operations"
-msgstr ""
-"布尔运算"
+msgstr "布尔运算"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.isin <mars.tensor.isin>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sorting.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sorting.po
index 6596482ddb..a7ab9ec059 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sorting.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sorting.po
@@ -19,13 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/sorting.rst:2
 msgid "Sorting, Searching, and Counting"
-msgstr ""
-"排序、搜索和计数"
+msgstr "排序、搜索和计数"
 
 #: ../../source/tensor/sorting.rst:5
 msgid "Searching"
-msgstr ""
-"搜索"
+msgstr "搜索"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.argmax <mars.tensor.argmax>`"
@@ -105,8 +103,7 @@ msgstr ""
 
 #: ../../source/tensor/sorting.rst:24
 msgid "Counting"
-msgstr ""
-"计数"
+msgstr "计数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.count_nonzero <mars.tensor.count_nonzero>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sparse.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sparse.po
index 3375f31c30..76fa6b06f5 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sparse.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/sparse.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mars \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-11-28 19:54+0800\n"
+"POT-Creation-Date: 2019-03-13 13:07+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,21 +19,18 @@ msgstr ""
 
 #: ../../source/tensor/sparse.rst:2
 msgid "Sparse tensor"
-msgstr ""
-"稀疏张量"
+msgstr "稀疏张量"
 
 #: ../../source/tensor/sparse.rst:4
 msgid ""
 "Mars tensor supports sparse tensor, unfortunately, only 2-D sparse "
-"tensors are available for now. Multi-dimensional sparse tensors will be "
+"tensors are available for now.  Multi-dimensional sparse tensors will be "
 "supported later."
-msgstr ""
-"Mars支持稀疏张量，但不幸的是，目前只支持二维稀疏张量，以后将支持多维稀疏张量"
+msgstr "Mars 支持稀疏张量，但目前只支持二维稀疏张量，未来将支持多维稀疏张量。"
 
 #: ../../source/tensor/sparse.rst:8
 msgid "Functions to create sparse tensor"
-msgstr ""
-"创建稀疏张量的函数"
+msgstr "创建稀疏张量的函数"
 
 #: ../../source/tensor/sparse.rst:18:<autosummary>:1
 msgid ":obj:`mars.tensor.tensor <mars.tensor.tensor>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/statistics.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/statistics.po
index 313ee64ea3..3cf4cf392f 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/statistics.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/statistics.po
@@ -10,7 +10,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-05-07 17:34+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -19,13 +19,11 @@ msgstr ""
 
 #: ../../source/tensor/statistics.rst:2
 msgid "Statistics"
-msgstr ""
-"统计"
+msgstr "统计"
 
 #: ../../source/tensor/statistics.rst:5
 msgid "Order statistics"
-msgstr ""
-"排序统计"
+msgstr "顺序统计量"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.amin <mars.tensor.amin>`"
@@ -71,7 +69,7 @@ msgstr ""
 
 #: ../../source/tensor/statistics.rst:19
 msgid "Average and variances"
-msgstr ""
+msgstr "均值和方差"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.average <mars.tensor.average>`"
@@ -133,7 +131,7 @@ msgstr ""
 
 #: ../../source/tensor/statistics.rst:35
 msgid "Correlating"
-msgstr ""
+msgstr "相关性"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.corrcoef <mars.tensor.corrcoef>`"
@@ -153,7 +151,7 @@ msgstr ""
 
 #: ../../source/tensor/statistics.rst:46
 msgid "Histograms"
-msgstr ""
+msgstr "直方图"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.digitize <mars.tensor.digitize>`"
diff --git a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/ufunc.po b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/ufunc.po
index e260ed67d1..ad6717db0e 100644
--- a/docs/source/locale/zh_CN/LC_MESSAGES/tensor/ufunc.po
+++ b/docs/source/locale/zh_CN/LC_MESSAGES/tensor/ufunc.po
@@ -10,7 +10,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-05-04 10:40+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Chen Quan <ChenQuan@osai.club>\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -19,8 +19,7 @@ msgstr ""
 
 #: ../../source/tensor/ufunc.rst:2
 msgid "Universal Functions (ufunc)"
-msgstr ""
-"通用函数(ufunc)"
+msgstr "通用函数（ufunc）"
 
 #: ../../source/tensor/ufunc.rst:4
 msgid ""
@@ -28,40 +27,36 @@ msgid ""
 " elementwise operations. Mars tensor's ufunc supports following features "
 "of Numpy's one:"
 msgstr ""
-"Mars tensor提供通用函数(也被称为ufuncs)来支持各种元素操作。"
-"Mars tensor的ufunc支持Numpy的以下功能："
+"Mars tensor 提供通用函数（也被称为 ufunc）来支持各种元素操作。Mars "
+"tensor 的通用函数支持 Numpy 的以下功能："
 
 #: ../../source/tensor/ufunc.rst:7
 msgid "Broadcasting"
-msgstr ""
-"广播"
+msgstr "广播"
 
 #: ../../source/tensor/ufunc.rst:8
 msgid "Output type determination"
-msgstr ""
-"输出类型确定"
+msgstr "确定输出类型"
 
 #: ../../source/tensor/ufunc.rst:9
 msgid "Casting rules"
-msgstr ""
-"类型转换规则"
+msgstr "类型转换规则"
 
 #: ../../source/tensor/ufunc.rst:11
 msgid ""
 "Mars tensor's ufunc currently does not support methods like ``reduce``, "
 "``accumulate``, ``reduceat``, ``outer``, and ``at``."
 msgstr ""
-"Mars张量ufunc目前不支持包括方法有 ``accumulate``, ``reduceat``, ``outer`` 和 ``at``。"
+"Mars 张量通用函数目前不支持包括方法有 ``accumulate``、``reduceat``、``"
+"outer`` 和 ``at``。"
 
 #: ../../source/tensor/ufunc.rst:15
 msgid "Available ufuncs"
-msgstr ""
-"可用的ufuncs"
+msgstr "可用的通用函数"
 
 #: ../../source/tensor/ufunc.rst:18
 msgid "Math operations"
-msgstr ""
-"数学运算"
+msgstr "数学运算"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.add <mars.tensor.add>`"
@@ -69,7 +64,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Add arguments element-wise."
-msgstr ""
+msgstr "按元素相加"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.subtract <mars.tensor.subtract>`"
@@ -77,7 +72,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Subtract arguments, element-wise."
-msgstr ""
+msgstr "按元素相减"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.multiply <mars.tensor.multiply>`"
@@ -85,7 +80,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Multiply arguments element-wise."
-msgstr ""
+msgstr "按元素相乘"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.divide <mars.tensor.divide>`"
@@ -93,7 +88,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Divide arguments element-wise."
-msgstr ""
+msgstr "按元素相除"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.logaddexp <mars.tensor.logaddexp>`"
@@ -101,7 +96,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Logarithm of the sum of exponentiations of the inputs."
-msgstr ""
+msgstr "按元素计算以e为底的两个输入指数值之和的对数值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.logaddexp2 <mars.tensor.logaddexp2>`"
@@ -109,7 +104,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Logarithm of the sum of exponentiations of the inputs in base-2."
-msgstr ""
+msgstr "按元素计算以2为底的两个输入指数值之和的对数值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.true_divide <mars.tensor.true_divide>`"
@@ -117,7 +112,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Returns a true division of the inputs, element-wise."
-msgstr ""
+msgstr "按元素计算实数除法"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.floor_divide <mars.tensor.floor_divide>`"
@@ -125,7 +120,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the largest integer smaller or equal to the division of the inputs."
-msgstr ""
+msgstr "按元素计算除法并向下取整"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.negative <mars.tensor.negative>`"
@@ -133,7 +128,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Numerical negative, element-wise."
-msgstr ""
+msgstr "按元素求相反数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.power <mars.tensor.power>`"
@@ -141,7 +136,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "First tensor elements raised to powers from second tensor, element-wise."
-msgstr ""
+msgstr "按元素求幂，前一个张量中的数值作为底数，后一个张量的数值作为指数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.remainder <mars.tensor.remainder>`"
@@ -149,7 +144,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return element-wise remainder of division."
-msgstr ""
+msgstr "按元素返回整数除法的余数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.mod <mars.tensor.mod>`"
@@ -161,7 +156,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the element-wise remainder of division."
-msgstr ""
+msgstr "按元素返回整数除法的余数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.absolute <mars.tensor.absolute>`"
@@ -169,7 +164,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Calculate the absolute value element-wise."
-msgstr ""
+msgstr "按元素计算绝对值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.rint <mars.tensor.rint>`"
@@ -177,7 +172,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Round elements of the tensor to the nearest integer."
-msgstr ""
+msgstr "按元素将张量中的值取整到最接近的整数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.sign <mars.tensor.sign>`"
@@ -185,7 +180,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Returns an element-wise indication of the sign of a number."
-msgstr ""
+msgstr "按元素取符号"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.exp <mars.tensor.exp>`"
@@ -193,7 +188,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Calculate the exponential of all elements in the input tensor."
-msgstr ""
+msgstr "计算所有元素的指数值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.exp2 <mars.tensor.exp2>`"
@@ -201,7 +196,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Calculate `2**p` for all `p` in the input tensor."
-msgstr ""
+msgstr "计算所有元素以2为底的指数值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.log <mars.tensor.log>`"
@@ -209,7 +204,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Natural logarithm, element-wise."
-msgstr ""
+msgstr "按元素求自然对数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.log2 <mars.tensor.log2>`"
@@ -217,7 +212,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Base-2 logarithm of `x`."
-msgstr ""
+msgstr "计算所有元素以2为底的对数值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.log10 <mars.tensor.log10>`"
@@ -225,7 +220,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the base 10 logarithm of the input tensor, element-wise."
-msgstr ""
+msgstr "计算所有元素以10为底的对数值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.expm1 <mars.tensor.expm1>`"
@@ -233,7 +228,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Calculate ``exp(x) - 1`` for all elements in the tensor."
-msgstr ""
+msgstr "对张量中的所有元素计算 ``exp(x) - 1``"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.log1p <mars.tensor.log1p>`"
@@ -241,7 +236,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the natural logarithm of one plus the input tensor, element-wise."
-msgstr ""
+msgstr "对张量中的所有元素计算 ``log(1 + x)``"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.sqrt <mars.tensor.sqrt>`"
@@ -249,7 +244,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the positive square-root of an tensor, element-wise."
-msgstr ""
+msgstr "返回按元素求平方根的结果"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.square <mars.tensor.square>`"
@@ -257,7 +252,7 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the element-wise square of the input."
-msgstr ""
+msgstr "返回按元素求平方的结果"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.reciprocal <mars.tensor.reciprocal>`"
@@ -265,11 +260,11 @@ msgstr ""
 
 #: ../../<autosummary>:1
 msgid "Return the reciprocal of the argument, element-wise."
-msgstr ""
+msgstr "返回按元素求倒数的结果"
 
 #: ../../source/tensor/ufunc.rst:53
 msgid "Trigonometric functions"
-msgstr ""
+msgstr "三角函数和双曲函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.sin <mars.tensor.sin>`"
@@ -401,7 +396,7 @@ msgstr ""
 
 #: ../../source/tensor/ufunc.rst:78
 msgid "Bit-twiddling functions"
-msgstr ""
+msgstr "位运算函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.bitwise_and <mars.tensor.bitwise_and>`"
@@ -453,7 +448,7 @@ msgstr ""
 
 #: ../../source/tensor/ufunc.rst:93
 msgid "Comparison functions"
-msgstr ""
+msgstr "比较函数"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.greater <mars.tensor.greater>`"
@@ -569,7 +564,7 @@ msgstr ""
 
 #: ../../source/tensor/ufunc.rst:116
 msgid "Floating point values"
-msgstr ""
+msgstr "浮点数取值"
 
 #: ../../<autosummary>:1
 msgid ":obj:`mars.tensor.isfinite <mars.tensor.isfinite>`"
diff --git a/docs/source/norm_zh.py b/docs/source/norm_zh.py
index 3e6bf7428f..621efff5e9 100755
--- a/docs/source/norm_zh.py
+++ b/docs/source/norm_zh.py
@@ -130,7 +130,7 @@ def main():
 
             # only modify recent-changed files
             modify_time = datetime.datetime.fromtimestamp(os.path.getmtime(path))
-            if (datetime.datetime.now() - modify_time).total_seconds() > 1800:
+            if (datetime.datetime.now() - modify_time).total_seconds() > 120:
                 continue
 
             with open(path, 'rb') as inpf:
diff --git a/docs/source/tensor/datasource.rst b/docs/source/tensor/datasource.rst
index 172a251ac9..5485bd282a 100644
--- a/docs/source/tensor/datasource.rst
+++ b/docs/source/tensor/datasource.rst
@@ -2,7 +2,7 @@ Create Mars tensor
 ==================
 
 You can create mars tensor from Python array like object just like Numpy, or create from Numpy array directly.
-More details on :doc:`array creation routine <routines/creation>` and :doc:`random sampling <routines/random>`.
+More details on :doc:`array creation routine <creation>` and :doc:`random sampling <random>`.
 
 .. autosummary::
    :toctree: generated/
@@ -68,7 +68,7 @@ Assume we have such a tensor with the data shown below.
     4 2 4 6 2 0
     6 8 2 6 5 4
 
-We will show how different ``chunk_size=`` arguments will tile the tensor.
+We will show how different ``chunk_size`` arguments will tile the tensor.
 
 ``chunk_size=3``:
 
diff --git a/docs/source/tensor/eager-mode.rst b/docs/source/tensor/eager-mode.rst
index 7405d216ed..50a4a3db52 100644
--- a/docs/source/tensor/eager-mode.rst
+++ b/docs/source/tensor/eager-mode.rst
@@ -12,7 +12,6 @@ program or console session.
 .. code-block:: python
 
     >>> from mars.config import options
-
     >>> options.eager_mode = True
 
 Or use a context.
diff --git a/docs/source/tensor/execution.rst b/docs/source/tensor/execution.rst
index 1d6be62492..9b63adc605 100644
--- a/docs/source/tensor/execution.rst
+++ b/docs/source/tensor/execution.rst
@@ -1,15 +1,18 @@
 Local Execution
 ===============
 
-Mars tensor will not be executed unless users call ``execute`` or ``session.run`` methods.
+When :doc:`eager mode <eager-mode>` is not enabled, which is the default
+behavior, Mars tensor will not be executed unless users call ``execute`` or
+``session.run`` methods.
 
-If no session is created explicitly, the ``execute`` will create a local session, and mark it as a default session.
+If no session is created explicitly, the ``execute`` will create a local
+session, and mark it as a default session.
 
 Session
 -------
 
-Users can create a new session by ``new_session`` method, if no argument is provided,
-a local session will be generated.
+Users can create a new session by ``new_session`` method, if no argument is
+provided, a local session will be generated.
 
 .. code-block:: python
 
@@ -18,7 +21,8 @@ a local session will be generated.
     >>> sess = new_session()  # create a session
 
 
-By calling ``as_default`` of a session, the session will be marked as the default session.
+By calling ``as_default`` of a session, the session will be marked as the
+default session.
 
 
 .. code-block:: python
@@ -26,7 +30,8 @@ By calling ``as_default`` of a session, the session will be marked as the defaul
     >>> sess.as_default()
 
 
-More than one mars tensors can be passed to ``session.run``, and calculate the results for each tensor.
+More than one mars tensors can be passed to ``session.run``, and calculate the
+results for each tensor.
 
 .. code-block:: python
 
@@ -56,9 +61,9 @@ For a single tensor, ``execute`` can be called.
    >>> a.sum().execute()
    7.0293719034458455
 
-Session can be specified by the argument ``session=``.
+Session can be specified by the argument ``session``.
 
 .. code-block:: python
 
    >>> a.sum().execute(session=sess)
-   6.12833989477539
\ No newline at end of file
+   6.12833989477539
diff --git a/docs/source/tensor/generated/mars.tensor.inner.rst b/docs/source/tensor/generated/mars.tensor.inner.rst
new file mode 100644
index 0000000000..10084f2de0
--- /dev/null
+++ b/docs/source/tensor/generated/mars.tensor.inner.rst
@@ -0,0 +1,6 @@
+mars.tensor.inner
+=================
+
+.. currentmodule:: mars.tensor
+
+.. autofunction:: inner
\ No newline at end of file
diff --git a/docs/source/tensor/linalg.rst b/docs/source/tensor/linalg.rst
index d73a3ed171..6e1ab0e33f 100644
--- a/docs/source/tensor/linalg.rst
+++ b/docs/source/tensor/linalg.rst
@@ -1,5 +1,5 @@
-Linear Algebra (``mars.tensor.linalg``)
-=======================================
+Linear Algebra
+==============
 
 Matrix and vector products
 --------------------------
@@ -10,6 +10,7 @@ Matrix and vector products
 
    mars.tensor.dot
    mars.tensor.vdot
+   mars.tensor.inner
    mars.tensor.matmul
    mars.tensor.tensordot
 
diff --git a/docs/source/tensor/random.rst b/docs/source/tensor/random.rst
index 5ce1555d20..50a4e8c065 100644
--- a/docs/source/tensor/random.rst
+++ b/docs/source/tensor/random.rst
@@ -1,7 +1,7 @@
 .. module:: mars.tensor.random
 
-Random Sampling (``mars.tensor.random``)
-========================================
+Random Sampling
+===============
 
 Sample random data
 ------------------
diff --git a/docs/source/tensor/sparse.rst b/docs/source/tensor/sparse.rst
index c8a49d2e22..8f80088620 100644
--- a/docs/source/tensor/sparse.rst
+++ b/docs/source/tensor/sparse.rst
@@ -1,8 +1,8 @@
 Sparse tensor
 =============
 
-Mars tensor supports sparse tensor, unfortunately, only 2-D sparse tensors are available for now.
-Multi-dimensional sparse tensors will be supported later.
+Mars tensor supports sparse tensor, unfortunately, only 2-D sparse tensors are
+available for now.  Multi-dimensional sparse tensors will be supported later.
 
 Functions to create sparse tensor
 ---------------------------------

[BUG] Chinese document layout has a link error.
<!--
Thank you for your contribution!

Please review https://github.com/mars-project/mars/blob/master/CONTRIBUTING.rst before opening an issue.
-->

**Describe the bug**
A clear and concise description of what the bug is.

Chinese document layout has a connection error.
doc link:[https://mars-project.readthedocs.io/zh_CN/latest/tensor/overview.html](https://mars-project.readthedocs.io/zh_CN/latest/tensor/overview.html)


![image](https://user-images.githubusercontent.com/20548053/54252653-9e94d900-4586-11e9-998f-3b677dd2b460.png)


