You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2021/12/17 07:29:02 UTC

[pulsar] branch asf-site updated: Updated site at revision 1a56c85

This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new c734563  Updated site at revision 1a56c85
c734563 is described below

commit c7345630563dcd2cf843852d014bf5d1ba466967
Author: Pulsar Site Updater <de...@pulsar.incubator.apache.org>
AuthorDate: Fri Dec 17 07:27:58 2021 +0000

    Updated site at revision 1a56c85
---
 .../pulsar/client/api/MessageRoutingMode.html      |   2 +-
 .../cpp/2.10.0-SNAPSHOT/_message_8h_source.html    |   2 +-
 .../_message_builder_8h_source.html                |   2 +-
 .../classpulsar_1_1_message_builder-members.html   |  21 +-
 .../classpulsar_1_1_message_builder.html           |  29 +-
 .../api/cpp/2.10.0-SNAPSHOT/functions_func_s.html  |   4 +-
 content/api/cpp/2.10.0-SNAPSHOT/functions_s.html   |   4 +-
 content/api/cpp/2.10.0-SNAPSHOT/search/all_11.js   |   2 +-
 .../api/cpp/2.10.0-SNAPSHOT/search/functions_e.js  |   2 +-
 content/api/cpp/html/_message_8h_source.html       |   2 +-
 .../api/cpp/html/_message_builder_8h_source.html   |   2 +-
 .../classpulsar_1_1_message_builder-members.html   |  21 +-
 .../cpp/html/classpulsar_1_1_message_builder.html  |  29 +-
 content/api/cpp/html/functions_func_s.html         |   4 +-
 content/api/cpp/html/functions_s.html              |   4 +-
 content/api/cpp/html/search/all_11.js              |   2 +-
 content/api/cpp/html/search/functions_e.js         |   2 +-
 content/api/python/2.10.0-SNAPSHOT/index.html      |   6 +-
 content/api/python/index.html                      |   6 +-
 .../en/2.2.0/sql-deployment-configurations.html    |   3 +-
 .../2.2.0/sql-deployment-configurations/index.html |   3 +-
 .../en/2.2.1/sql-deployment-configurations.html    |   3 +-
 .../2.2.1/sql-deployment-configurations/index.html |   3 +-
 .../en/2.3.0/sql-deployment-configurations.html    |   3 +-
 .../2.3.0/sql-deployment-configurations/index.html |   3 +-
 .../en/2.3.1/sql-deployment-configurations.html    |   3 +-
 .../2.3.1/sql-deployment-configurations/index.html |   3 +-
 .../en/2.3.2/sql-deployment-configurations.html    |   3 +-
 .../2.3.2/sql-deployment-configurations/index.html |   3 +-
 .../en/2.4.0/sql-deployment-configurations.html    |   3 +-
 .../2.4.0/sql-deployment-configurations/index.html |   3 +-
 .../en/2.4.1/sql-deployment-configurations.html    |   3 +-
 .../2.4.1/sql-deployment-configurations/index.html |   3 +-
 .../en/2.4.2/sql-deployment-configurations.html    |   3 +-
 .../2.4.2/sql-deployment-configurations/index.html |   3 +-
 content/docs/fr/2.4.0/administration-geo.html      |   5 +-
 .../docs/fr/2.4.0/administration-geo/index.html    |   5 +-
 content/docs/fr/2.4.1/administration-geo.html      |   5 +-
 .../docs/fr/2.4.1/administration-geo/index.html    |   5 +-
 content/docs/fr/2.4.2/administration-geo.html      |   5 +-
 .../docs/fr/2.4.2/administration-geo/index.html    |   5 +-
 content/docs/fr/2.5.0/administration-geo.html      |   5 +-
 .../docs/fr/2.5.0/administration-geo/index.html    |   5 +-
 content/docs/fr/2.5.1/administration-geo.html      |   5 +-
 .../docs/fr/2.5.1/administration-geo/index.html    |   5 +-
 content/docs/fr/2.5.2/administration-geo.html      |   5 +-
 .../docs/fr/2.5.2/administration-geo/index.html    |   5 +-
 content/docs/fr/2.6.0/administration-geo.html      |   5 +-
 .../docs/fr/2.6.0/administration-geo/index.html    |   5 +-
 content/docs/fr/2.6.1/administration-geo.html      |   5 +-
 .../docs/fr/2.6.1/administration-geo/index.html    |   5 +-
 content/docs/fr/2.6.2/administration-geo.html      |   5 +-
 .../docs/fr/2.6.2/administration-geo/index.html    |   5 +-
 content/docs/fr/2.6.3/administration-geo.html      |   5 +-
 .../docs/fr/2.6.3/administration-geo/index.html    |   5 +-
 content/docs/fr/2.6.4/administration-geo.html      |   5 +-
 .../docs/fr/2.6.4/administration-geo/index.html    |   5 +-
 content/docs/fr/2.7.0/administration-geo.html      |   5 +-
 .../docs/fr/2.7.0/administration-geo/index.html    |   5 +-
 content/docs/fr/2.7.1/administration-geo.html      |   5 +-
 .../docs/fr/2.7.1/administration-geo/index.html    |   5 +-
 content/docs/fr/2.7.2/administration-geo.html      |   5 +-
 .../docs/fr/2.7.2/administration-geo/index.html    |   5 +-
 content/docs/fr/2.7.3/administration-geo.html      |   5 +-
 .../docs/fr/2.7.3/administration-geo/index.html    |   5 +-
 content/docs/fr/2.8.0/administration-geo.html      |   5 +-
 .../docs/fr/2.8.0/administration-geo/index.html    |   5 +-
 content/docs/fr/administration-geo.html            |   5 +-
 content/docs/fr/administration-geo/index.html      |   5 +-
 content/docs/fr/next/administration-geo.html       |   5 +-
 content/docs/fr/next/administration-geo/index.html |   5 +-
 content/docs/fr/next/functions-runtime.html        |   3 +
 content/docs/fr/next/functions-runtime/index.html  |   3 +
 content/docs/fr/next/reference-configuration.html  |   2 +-
 .../fr/next/reference-configuration/index.html     |   2 +-
 content/docs/ja/2.4.0/administration-geo.html      |   5 +-
 .../docs/ja/2.4.0/administration-geo/index.html    |   5 +-
 content/docs/ja/2.4.1/administration-geo.html      |   5 +-
 .../docs/ja/2.4.1/administration-geo/index.html    |   5 +-
 content/docs/ja/2.4.2/administration-geo.html      |   5 +-
 .../docs/ja/2.4.2/administration-geo/index.html    |   5 +-
 content/docs/ja/2.5.0/administration-geo.html      |   5 +-
 .../docs/ja/2.5.0/administration-geo/index.html    |   5 +-
 content/docs/ja/2.5.1/administration-geo.html      |   5 +-
 .../docs/ja/2.5.1/administration-geo/index.html    |   5 +-
 content/docs/ja/2.5.2/administration-geo.html      |   5 +-
 .../docs/ja/2.5.2/administration-geo/index.html    |   5 +-
 content/docs/ja/2.6.0/administration-geo.html      |   5 +-
 .../docs/ja/2.6.0/administration-geo/index.html    |   5 +-
 content/docs/ja/2.6.1/administration-geo.html      |   5 +-
 .../docs/ja/2.6.1/administration-geo/index.html    |   5 +-
 content/docs/ja/2.6.2/administration-geo.html      |   5 +-
 .../docs/ja/2.6.2/administration-geo/index.html    |   5 +-
 content/docs/ja/2.6.3/administration-geo.html      |   5 +-
 .../docs/ja/2.6.3/administration-geo/index.html    |   5 +-
 content/docs/ja/2.6.4/administration-geo.html      |   5 +-
 .../docs/ja/2.6.4/administration-geo/index.html    |   5 +-
 content/docs/ja/2.7.0/administration-geo.html      |   5 +-
 .../docs/ja/2.7.0/administration-geo/index.html    |   5 +-
 content/docs/ja/2.7.1/administration-geo.html      |   5 +-
 .../docs/ja/2.7.1/administration-geo/index.html    |   5 +-
 content/docs/ja/2.7.2/administration-geo.html      |   5 +-
 .../docs/ja/2.7.2/administration-geo/index.html    |   5 +-
 content/docs/ja/2.7.3/administration-geo.html      |   5 +-
 .../docs/ja/2.7.3/administration-geo/index.html    |   5 +-
 content/docs/ja/2.8.0/administration-geo.html      |   5 +-
 .../docs/ja/2.8.0/administration-geo/index.html    |   5 +-
 content/docs/ja/administration-geo.html            |   5 +-
 content/docs/ja/administration-geo/index.html      |   5 +-
 content/docs/ja/next/administration-geo.html       |   5 +-
 content/docs/ja/next/administration-geo/index.html |   5 +-
 content/docs/ja/next/functions-runtime.html        |   3 +
 content/docs/ja/next/functions-runtime/index.html  |   3 +
 content/docs/ja/next/reference-configuration.html  |   2 +-
 .../ja/next/reference-configuration/index.html     |   2 +-
 content/docs/ko/2.4.0/administration-geo.html      |   5 +-
 .../docs/ko/2.4.0/administration-geo/index.html    |   5 +-
 content/docs/ko/2.4.1/administration-geo.html      |   5 +-
 .../docs/ko/2.4.1/administration-geo/index.html    |   5 +-
 content/docs/ko/2.4.2/administration-geo.html      |   5 +-
 .../docs/ko/2.4.2/administration-geo/index.html    |   5 +-
 content/docs/ko/2.5.0/administration-geo.html      |   5 +-
 .../docs/ko/2.5.0/administration-geo/index.html    |   5 +-
 content/docs/ko/2.5.1/administration-geo.html      |   5 +-
 .../docs/ko/2.5.1/administration-geo/index.html    |   5 +-
 content/docs/ko/2.5.2/administration-geo.html      |   5 +-
 .../docs/ko/2.5.2/administration-geo/index.html    |   5 +-
 content/docs/ko/2.6.0/administration-geo.html      |   5 +-
 .../docs/ko/2.6.0/administration-geo/index.html    |   5 +-
 content/docs/ko/2.6.1/administration-geo.html      |   5 +-
 .../docs/ko/2.6.1/administration-geo/index.html    |   5 +-
 content/docs/ko/2.6.2/administration-geo.html      |   5 +-
 .../docs/ko/2.6.2/administration-geo/index.html    |   5 +-
 content/docs/ko/2.6.3/administration-geo.html      |   5 +-
 .../docs/ko/2.6.3/administration-geo/index.html    |   5 +-
 content/docs/ko/2.6.4/administration-geo.html      |   5 +-
 .../docs/ko/2.6.4/administration-geo/index.html    |   5 +-
 content/docs/ko/2.7.0/administration-geo.html      |   5 +-
 .../docs/ko/2.7.0/administration-geo/index.html    |   5 +-
 content/docs/ko/2.7.1/administration-geo.html      |   5 +-
 .../docs/ko/2.7.1/administration-geo/index.html    |   5 +-
 content/docs/ko/2.7.2/administration-geo.html      |   5 +-
 .../docs/ko/2.7.2/administration-geo/index.html    |   5 +-
 content/docs/ko/2.7.3/administration-geo.html      |   5 +-
 .../docs/ko/2.7.3/administration-geo/index.html    |   5 +-
 content/docs/ko/2.8.0/administration-geo.html      |   5 +-
 .../docs/ko/2.8.0/administration-geo/index.html    |   5 +-
 content/docs/ko/administration-geo.html            |   5 +-
 content/docs/ko/administration-geo/index.html      |   5 +-
 content/docs/ko/next/administration-geo.html       |   5 +-
 content/docs/ko/next/administration-geo/index.html |   5 +-
 content/docs/ko/next/functions-runtime.html        |   3 +
 content/docs/ko/next/functions-runtime/index.html  |   3 +
 content/docs/ko/next/reference-configuration.html  |   2 +-
 .../ko/next/reference-configuration/index.html     |   2 +-
 .../docs/zh-CN/2.1.0-incubating/pulsar-admin.html  |  20 +-
 .../zh-CN/2.1.0-incubating/pulsar-admin/index.html |  20 +-
 .../docs/zh-CN/2.1.1-incubating/pulsar-admin.html  |  20 +-
 .../zh-CN/2.1.1-incubating/pulsar-admin/index.html |  20 +-
 content/docs/zh-CN/2.2.0/pulsar-admin.html         |  32 +-
 content/docs/zh-CN/2.2.0/pulsar-admin/index.html   |  32 +-
 content/docs/zh-CN/2.2.1/pulsar-admin.html         |  32 +-
 content/docs/zh-CN/2.2.1/pulsar-admin/index.html   |  32 +-
 content/docs/zh-CN/2.3.0/pulsar-admin.html         |  32 +-
 content/docs/zh-CN/2.3.0/pulsar-admin/index.html   |  32 +-
 content/docs/zh-CN/2.3.1/pulsar-admin.html         |  32 +-
 content/docs/zh-CN/2.3.1/pulsar-admin/index.html   |  32 +-
 content/docs/zh-CN/2.3.2/pulsar-admin.html         | 200 +++---
 content/docs/zh-CN/2.3.2/pulsar-admin/index.html   | 200 +++---
 content/docs/zh-CN/2.4.0/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.4.0/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.4.0/pulsar-admin.html         | 200 +++---
 content/docs/zh-CN/2.4.0/pulsar-admin/index.html   | 200 +++---
 content/docs/zh-CN/2.4.1/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.4.1/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.4.1/pulsar-admin.html         | 170 ++---
 content/docs/zh-CN/2.4.1/pulsar-admin/index.html   | 170 ++---
 content/docs/zh-CN/2.4.2/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.4.2/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.4.2/pulsar-admin.html         | 170 ++---
 content/docs/zh-CN/2.4.2/pulsar-admin/index.html   | 170 ++---
 content/docs/zh-CN/2.5.0/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.5.0/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.5.0/pulsar-admin.html         | 176 ++---
 content/docs/zh-CN/2.5.0/pulsar-admin/index.html   | 176 ++---
 content/docs/zh-CN/2.5.1/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.5.1/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.5.1/pulsar-admin.html         | 176 ++---
 content/docs/zh-CN/2.5.1/pulsar-admin/index.html   | 176 ++---
 content/docs/zh-CN/2.5.2/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.5.2/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.5.2/pulsar-admin.html         | 176 ++---
 content/docs/zh-CN/2.5.2/pulsar-admin/index.html   | 176 ++---
 content/docs/zh-CN/2.6.0/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.6.0/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.6.0/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.6.0/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.6.1/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.6.1/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.6.1/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.6.1/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.6.2/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.6.2/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.6.2/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.6.2/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.6.3/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.6.3/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.6.3/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.6.3/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.6.4/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.6.4/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.6.4/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.6.4/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.7.0/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.7.0/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.7.0/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.7.0/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.7.1/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.7.1/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.7.1/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.7.1/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.7.2/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.7.2/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.7.2/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.7.2/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.7.3/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.7.3/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.7.3/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.7.3/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/2.8.0/administration-geo.html   |   5 +-
 .../docs/zh-CN/2.8.0/administration-geo/index.html |   5 +-
 content/docs/zh-CN/2.8.0/pulsar-admin.html         | 182 ++---
 content/docs/zh-CN/2.8.0/pulsar-admin/index.html   | 182 ++---
 content/docs/zh-CN/administration-geo.html         |   5 +-
 content/docs/zh-CN/administration-geo/index.html   |   5 +-
 content/docs/zh-CN/next/administration-geo.html    |   5 +-
 .../docs/zh-CN/next/administration-geo/index.html  |   5 +-
 content/docs/zh-CN/next/deploy-dcos.html           |  18 +-
 content/docs/zh-CN/next/deploy-dcos/index.html     |  18 +-
 content/docs/zh-CN/next/functions-runtime.html     |   3 +
 .../docs/zh-CN/next/functions-runtime/index.html   |   3 +
 content/docs/zh-CN/next/pulsar-admin.html          | 172 ++---
 content/docs/zh-CN/next/pulsar-admin/index.html    | 172 ++---
 .../docs/zh-CN/next/reference-configuration.html   |   2 +-
 .../zh-CN/next/reference-configuration/index.html  |   2 +-
 content/docs/zh-CN/pulsar-admin.html               | 182 ++---
 content/docs/zh-CN/pulsar-admin/index.html         | 182 ++---
 content/docs/zh-TW/2.4.0/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.4.0/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.4.1/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.4.1/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.4.2/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.4.2/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.5.0/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.5.0/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.5.1/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.5.1/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.5.2/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.5.2/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.6.0/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.6.0/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.6.1/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.6.1/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.6.2/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.6.2/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.6.3/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.6.3/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.6.4/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.6.4/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.7.0/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.7.0/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.7.1/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.7.1/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.7.2/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.7.2/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.7.3/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.7.3/administration-geo/index.html |   5 +-
 content/docs/zh-TW/2.8.0/administration-geo.html   |   5 +-
 .../docs/zh-TW/2.8.0/administration-geo/index.html |   5 +-
 content/docs/zh-TW/administration-geo.html         |   5 +-
 content/docs/zh-TW/administration-geo/index.html   |   5 +-
 content/docs/zh-TW/next/administration-geo.html    |   5 +-
 .../docs/zh-TW/next/administration-geo/index.html  |   5 +-
 content/docs/zh-TW/next/functions-runtime.html     |   3 +
 .../docs/zh-TW/next/functions-runtime/index.html   |   3 +
 .../docs/zh-TW/next/reference-configuration.html   |   2 +-
 .../zh-TW/next/reference-configuration/index.html  |   2 +-
 content/swagger/2.10.0-SNAPSHOT/swagger.json       | 722 ++++++++++----------
 .../swagger/2.10.0-SNAPSHOT/swaggerfunctions.json  | 226 +++---
 .../swagger/2.10.0-SNAPSHOT/swaggerpackages.json   | 122 ++--
 content/swagger/2.10.0-SNAPSHOT/swaggersink.json   | 122 ++--
 content/swagger/2.10.0-SNAPSHOT/swaggersource.json | 122 ++--
 content/swagger/2.10.0-SNAPSHOT/v2/swagger.json    | 760 ++++++++++-----------
 .../2.10.0-SNAPSHOT/v3/swaggerfunctions.json       | 234 +++----
 .../2.10.0-SNAPSHOT/v3/swaggerpackages.json        | 130 ++--
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersink.json    | 130 ++--
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersource.json  | 130 ++--
 content/swagger/master/swagger.json                | 722 ++++++++++----------
 content/swagger/master/swaggerfunctions.json       | 226 +++---
 content/swagger/master/swaggerpackages.json        | 122 ++--
 content/swagger/master/swaggersink.json            | 122 ++--
 content/swagger/master/swaggersource.json          | 122 ++--
 content/swagger/master/v2/swagger.json             | 760 ++++++++++-----------
 content/swagger/master/v3/swaggerfunctions.json    | 234 +++----
 content/swagger/master/v3/swaggerpackages.json     | 130 ++--
 content/swagger/master/v3/swaggersink.json         | 130 ++--
 content/swagger/master/v3/swaggersource.json       | 130 ++--
 307 files changed, 7201 insertions(+), 6595 deletions(-)

diff --git a/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode.html b/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode.html
index 34cbb10..e7aefef 100644
--- a/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode.html
+++ b/content/api/client/2.10.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode.html
@@ -124,7 +124,7 @@ public enum <span class="typeNameLabel">MessageRoutingMode</span>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/pulsar/client/api/MessageRoutingMode.html" title="enum in org.apache.pulsar.client.api">MessageRoutingMode</a>&gt;</pre>
 <div class="block">Default routing mode for messages to partition.
 
- <p>This logic is applied when the application is not setting a key <code>MessageBuilder#setKey(String)</code>
+ <p>This logic is applied when the application is not setting a key <a href="../../../../../org/apache/pulsar/client/api/TypedMessageBuilder.html#key-java.lang.String-"><code>TypedMessageBuilder.key(String)</code></a>
  on a particular message.</div>
 </li>
 </ul>
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/_message_8h_source.html b/content/api/cpp/2.10.0-SNAPSHOT/_message_8h_source.html
index 71eabd7..f6a539e 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/_message_8h_source.html
+++ b/content/api/cpp/2.10.0-SNAPSHOT/_message_8h_source.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!--header-->
 <div class="contents">
 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_HPP_</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_HPP_</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name= [...]
-<div class="ttc" id="classpulsar_1_1_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageBuilder.h:30</div></div>
+<div class="ttc" id="classpulsar_1_1_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageBuilder.h:32</div></div>
 <div class="ttc" id="namespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:30</div></div>
 <div class="ttc" id="classpulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:42</div></div>
 <div class="ttc" id="classpulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:32</div></div>
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/_message_builder_8h_source.html b/content/api/cpp/2.10.0-SNAPSHOT/_message_builder_8h_source.html
index 895d39f..542b9ca 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/_message_builder_8h_source.html
+++ b/content/api/cpp/2.10.0-SNAPSHOT/_message_builder_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">MessageBuilder.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line [...]
 <div class="ttc" id="namespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:30</div></div>
 <div class="ttc" id="classpulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:42</div></div>
 </div><!-- fragment --></div><!-- contents -->
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder-members.html b/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder-members.html
index d3656d8..53c409d 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder-members.html
+++ b/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder-members.html
@@ -103,16 +103,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ae991bf6b34952c2ee0fee1c756b269cf">setAllocatedContent</a>(void *data, size_t size)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8">setContent</a>(const void *data, size_t size)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991">setContent</a>(const std::string &amp;data)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155">setDeliverAfter</a>(const std::chrono::milliseconds delay)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#aed86cebe1662c5f917ee87f63b3c375f">setDeliverAt</a>(uint64_t deliveryTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a445ac7f5cac5282ef8248df399995338">setEventTimestamp</a>(uint64_t eventTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a88fa0cdb4ecd0c7d7c3aad076e968006">setOrderingKey</a>(const std::string &amp;orderingKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a44d4f29591490129f10e370fc379fc55">setPartitionKey</a>(const std::string &amp;partitionKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a648ad88a75f576abb87dcab5fcb04e07">setProperties</a>(const StringMap &amp;properties)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a81a20821afe64d6222f1ba6bd026a6b4">setProperty</a>(const std::string &amp;name, const std::string &amp;value)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a4debd882e7450dee0b83ac0bdfdee775">setReplicationClusters</a>(const std::vector&lt; std::string &gt; &amp;clusters)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ae1c62a5fb7a064714b615be585d5bf92">setSequenceId</a>(int64_t sequenceId)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>StringMap</b> typedef (defined in <a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523">setContent</a>(std::string &amp;&amp;data)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155">setDeliverAfter</a>(const std::chrono::milliseconds delay)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#aed86cebe1662c5f917ee87f63b3c375f">setDeliverAt</a>(uint64_t deliveryTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a445ac7f5cac5282ef8248df399995338">setEventTimestamp</a>(uint64_t eventTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a88fa0cdb4ecd0c7d7c3aad076e968006">setOrderingKey</a>(const std::string &amp;orderingKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a44d4f29591490129f10e370fc379fc55">setPartitionKey</a>(const std::string &amp;partitionKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a648ad88a75f576abb87dcab5fcb04e07">setProperties</a>(const StringMap &amp;properties)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a81a20821afe64d6222f1ba6bd026a6b4">setProperty</a>(const std::string &amp;name, const std::string &amp;value)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a4debd882e7450dee0b83ac0bdfdee775">setReplicationClusters</a>(const std::vector&lt; std::string &gt; &amp;clusters)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ae1c62a5fb7a064714b615be585d5bf92">setSequenceId</a>(int64_t sequenceId)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>StringMap</b> typedef (defined in <a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder.html b/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder.html
index cec37d2..f96753e 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder.html
+++ b/content/api/cpp/2.10.0-SNAPSHOT/classpulsar_1_1_message_builder.html
@@ -112,6 +112,8 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ab88fc9caf6c2406ba7b34a1770484df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6661ff74ca3c036aff23fcec49871991"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991">setContent</a> (const std::string &amp;data)</td></tr>
 <tr class="separator:a6661ff74ca3c036aff23fcec49871991"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab49bef464033d018e3a405973e13c523"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523">setContent</a> (std::string &amp;&amp;data)</td></tr>
+<tr class="separator:ab49bef464033d018e3a405973e13c523"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae991bf6b34952c2ee0fee1c756b269cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#ae991bf6b34952c2ee0fee1c756b269cf">setAllocatedContent</a> (void *data, size_t size)</td></tr>
 <tr class="separator:ae991bf6b34952c2ee0fee1c756b269cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a81a20821afe64d6222f1ba6bd026a6b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#a81a20821afe64d6222f1ba6bd026a6b4">setProperty</a> (const std::string &amp;name, const std::string &amp;value)</td></tr>
@@ -248,7 +250,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Set content of the message. The message contents will be managed by the system. </p>
+<p>Set content of the message. The given data is copied into message. </p>
 
 </div>
 </div>
@@ -268,7 +270,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
 <p>Set the content of the message</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramname">data</td><td>the content of the message </td></tr>
+    <tr><td class="paramname">data</td><td>the content of the message. </td></tr>
   </table>
   </dd>
 </dl>
@@ -276,6 +278,29 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
 
 </div>
 </div>
+<a class="anchor" id="ab49bef464033d018e3a405973e13c523"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; pulsar::MessageBuilder::setContent </td>
+          <td>(</td>
+          <td class="paramtype">std::string &amp;&amp;&#160;</td>
+          <td class="paramname"><em>data</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the content of the message</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">data</td><td>the content of the message. The given data is moved into message. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
 <a class="anchor" id="a07e1f9b3bde32334ddc54c230c851155"></a>
 <div class="memitem">
 <div class="memproto">
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/functions_func_s.html b/content/api/cpp/2.10.0-SNAPSHOT/functions_func_s.html
index 6097fd1..4d0ff86 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/functions_func_s.html
+++ b/content/api/cpp/2.10.0-SNAPSHOT/functions_func_s.html
@@ -394,13 +394,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classpulsar_1_1_client.html#aecac8bf91b474339455fe0519f6ba71e">pulsar::Client</a>
 </li>
 <li>subscribe()
-: <a class="el" href="classpulsar_1_1_client.html#a9188d5fafbb23da16f859592316947e4">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a9f32b4d1101f8f2fb5029013c87779ab">pulsar::Client</a>
 </li>
 <li>subscribeAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a85d82595856f515b22acb623e84daa4b">pulsar::Client</a>
 </li>
 <li>subscribeWithRegex()
-: <a class="el" href="classpulsar_1_1_client.html#a086549ca0d057be1e9d00ca483995621">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a11016481c032f7d07e3ab5be341c9344">pulsar::Client</a>
 </li>
 <li>subscribeWithRegexAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a49a6024ae4ff44e1e02a59bc08d28c7a">pulsar::Client</a>
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/functions_s.html b/content/api/cpp/2.10.0-SNAPSHOT/functions_s.html
index db88cf3..30ab392 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/functions_s.html
+++ b/content/api/cpp/2.10.0-SNAPSHOT/functions_s.html
@@ -395,13 +395,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classpulsar_1_1_client.html#aecac8bf91b474339455fe0519f6ba71e">pulsar::Client</a>
 </li>
 <li>subscribe()
-: <a class="el" href="classpulsar_1_1_client.html#a9188d5fafbb23da16f859592316947e4">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a9f32b4d1101f8f2fb5029013c87779ab">pulsar::Client</a>
 </li>
 <li>subscribeAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a85d82595856f515b22acb623e84daa4b">pulsar::Client</a>
 </li>
 <li>subscribeWithRegex()
-: <a class="el" href="classpulsar_1_1_client.html#a086549ca0d057be1e9d00ca483995621">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a11016481c032f7d07e3ab5be341c9344">pulsar::Client</a>
 </li>
 <li>subscribeWithRegexAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a49a6024ae4ff44e1e02a59bc08d28c7a">pulsar::Client</a>
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/search/all_11.js b/content/api/cpp/2.10.0-SNAPSHOT/search/all_11.js
index 63488fe..1baeb96 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/search/all_11.js
+++ b/content/api/cpp/2.10.0-SNAPSHOT/search/all_11.js
@@ -27,7 +27,7 @@ var searchData=
   ['setconsumereventlistener',['setConsumerEventListener',['../classpulsar_1_1_consumer_configuration.html#a7d4372914cecd70e77025eae08d0660e',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumername',['setConsumerName',['../classpulsar_1_1_consumer_configuration.html#a9a9c38d660aabc9162295de38bc26b77',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumertype',['setConsumerType',['../classpulsar_1_1_consumer_configuration.html#ace6b2f1da486fcffacc4e877e5533268',1,'pulsar::ConsumerConfiguration']]],
-  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)']]],
+  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)'],['../classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523',1,'pulsar::MessageBuilder::setContent(std::string &amp;&amp;data)']]],
   ['setcryptofailureaction',['setCryptoFailureAction',['../classpulsar_1_1_consumer_configuration.html#a6baa4dbfe938c813385d263ef5dc1e04',1,'pulsar::ConsumerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_producer_configuration.html#aba3cf7628c250b54e55bfbb89fa0cc4a',1,'pulsar::ProducerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_reader_configuration.html#a6040e935a25509a864d86518f3ebea5f',1,'pulsar::ReaderConfiguration::setCryptoFailureAction()']]],
   ['setcryptokeyreader',['setCryptoKeyReader',['../classpulsar_1_1_consumer_configuration.html#aa9c36fc44ee17ab41a36a6e53cb5dd23',1,'pulsar::ConsumerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_producer_configuration.html#aea9e5f80540eef4e8ce4c61ffd9a4e91',1,'pulsar::ProducerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_reader_configuration.html#a7ab4857034cf253af8e4b81695205a1b',1,'pulsar::ReaderConfiguration::setCryptoKeyReader()']]],
   ['setdeliverafter',['setDeliverAfter',['../classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155',1,'pulsar::MessageBuilder']]],
diff --git a/content/api/cpp/2.10.0-SNAPSHOT/search/functions_e.js b/content/api/cpp/2.10.0-SNAPSHOT/search/functions_e.js
index 4f7e677..fc8170f 100644
--- a/content/api/cpp/2.10.0-SNAPSHOT/search/functions_e.js
+++ b/content/api/cpp/2.10.0-SNAPSHOT/search/functions_e.js
@@ -25,7 +25,7 @@ var searchData=
   ['setconsumereventlistener',['setConsumerEventListener',['../classpulsar_1_1_consumer_configuration.html#a7d4372914cecd70e77025eae08d0660e',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumername',['setConsumerName',['../classpulsar_1_1_consumer_configuration.html#a9a9c38d660aabc9162295de38bc26b77',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumertype',['setConsumerType',['../classpulsar_1_1_consumer_configuration.html#ace6b2f1da486fcffacc4e877e5533268',1,'pulsar::ConsumerConfiguration']]],
-  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)']]],
+  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)'],['../classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523',1,'pulsar::MessageBuilder::setContent(std::string &amp;&amp;data)']]],
   ['setcryptofailureaction',['setCryptoFailureAction',['../classpulsar_1_1_consumer_configuration.html#a6baa4dbfe938c813385d263ef5dc1e04',1,'pulsar::ConsumerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_producer_configuration.html#aba3cf7628c250b54e55bfbb89fa0cc4a',1,'pulsar::ProducerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_reader_configuration.html#a6040e935a25509a864d86518f3ebea5f',1,'pulsar::ReaderConfiguration::setCryptoFailureAction()']]],
   ['setcryptokeyreader',['setCryptoKeyReader',['../classpulsar_1_1_consumer_configuration.html#aa9c36fc44ee17ab41a36a6e53cb5dd23',1,'pulsar::ConsumerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_producer_configuration.html#aea9e5f80540eef4e8ce4c61ffd9a4e91',1,'pulsar::ProducerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_reader_configuration.html#a7ab4857034cf253af8e4b81695205a1b',1,'pulsar::ReaderConfiguration::setCryptoKeyReader()']]],
   ['setdeliverafter',['setDeliverAfter',['../classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155',1,'pulsar::MessageBuilder']]],
diff --git a/content/api/cpp/html/_message_8h_source.html b/content/api/cpp/html/_message_8h_source.html
index 71eabd7..f6a539e 100644
--- a/content/api/cpp/html/_message_8h_source.html
+++ b/content/api/cpp/html/_message_8h_source.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!--header-->
 <div class="contents">
 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_HPP_</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_HPP_</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name= [...]
-<div class="ttc" id="classpulsar_1_1_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageBuilder.h:30</div></div>
+<div class="ttc" id="classpulsar_1_1_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageBuilder.h:32</div></div>
 <div class="ttc" id="namespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:30</div></div>
 <div class="ttc" id="classpulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:42</div></div>
 <div class="ttc" id="classpulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:32</div></div>
diff --git a/content/api/cpp/html/_message_builder_8h_source.html b/content/api/cpp/html/_message_builder_8h_source.html
index 895d39f..542b9ca 100644
--- a/content/api/cpp/html/_message_builder_8h_source.html
+++ b/content/api/cpp/html/_message_builder_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">MessageBuilder.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_BUILDER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line [...]
 <div class="ttc" id="namespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:30</div></div>
 <div class="ttc" id="classpulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:42</div></div>
 </div><!-- fragment --></div><!-- contents -->
diff --git a/content/api/cpp/html/classpulsar_1_1_message_builder-members.html b/content/api/cpp/html/classpulsar_1_1_message_builder-members.html
index d3656d8..53c409d 100644
--- a/content/api/cpp/html/classpulsar_1_1_message_builder-members.html
+++ b/content/api/cpp/html/classpulsar_1_1_message_builder-members.html
@@ -103,16 +103,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ae991bf6b34952c2ee0fee1c756b269cf">setAllocatedContent</a>(void *data, size_t size)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8">setContent</a>(const void *data, size_t size)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991">setContent</a>(const std::string &amp;data)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155">setDeliverAfter</a>(const std::chrono::milliseconds delay)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#aed86cebe1662c5f917ee87f63b3c375f">setDeliverAt</a>(uint64_t deliveryTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a445ac7f5cac5282ef8248df399995338">setEventTimestamp</a>(uint64_t eventTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a88fa0cdb4ecd0c7d7c3aad076e968006">setOrderingKey</a>(const std::string &amp;orderingKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a44d4f29591490129f10e370fc379fc55">setPartitionKey</a>(const std::string &amp;partitionKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a648ad88a75f576abb87dcab5fcb04e07">setProperties</a>(const StringMap &amp;properties)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a81a20821afe64d6222f1ba6bd026a6b4">setProperty</a>(const std::string &amp;name, const std::string &amp;value)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a4debd882e7450dee0b83ac0bdfdee775">setReplicationClusters</a>(const std::vector&lt; std::string &gt; &amp;clusters)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ae1c62a5fb7a064714b615be585d5bf92">setSequenceId</a>(int64_t sequenceId)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>StringMap</b> typedef (defined in <a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523">setContent</a>(std::string &amp;&amp;data)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155">setDeliverAfter</a>(const std::chrono::milliseconds delay)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#aed86cebe1662c5f917ee87f63b3c375f">setDeliverAt</a>(uint64_t deliveryTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a445ac7f5cac5282ef8248df399995338">setEventTimestamp</a>(uint64_t eventTimestamp)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a88fa0cdb4ecd0c7d7c3aad076e968006">setOrderingKey</a>(const std::string &amp;orderingKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a44d4f29591490129f10e370fc379fc55">setPartitionKey</a>(const std::string &amp;partitionKey)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a648ad88a75f576abb87dcab5fcb04e07">setProperties</a>(const StringMap &amp;properties)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a81a20821afe64d6222f1ba6bd026a6b4">setProperty</a>(const std::string &amp;name, const std::string &amp;value)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#a4debd882e7450dee0b83ac0bdfdee775">setReplicationClusters</a>(const std::vector&lt; std::string &gt; &amp;clusters)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html#ae1c62a5fb7a064714b615be585d5bf92">setSequenceId</a>(int64_t sequenceId)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>StringMap</b> typedef (defined in <a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/html/classpulsar_1_1_message_builder.html b/content/api/cpp/html/classpulsar_1_1_message_builder.html
index cec37d2..f96753e 100644
--- a/content/api/cpp/html/classpulsar_1_1_message_builder.html
+++ b/content/api/cpp/html/classpulsar_1_1_message_builder.html
@@ -112,6 +112,8 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ab88fc9caf6c2406ba7b34a1770484df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6661ff74ca3c036aff23fcec49871991"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991">setContent</a> (const std::string &amp;data)</td></tr>
 <tr class="separator:a6661ff74ca3c036aff23fcec49871991"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab49bef464033d018e3a405973e13c523"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523">setContent</a> (std::string &amp;&amp;data)</td></tr>
+<tr class="separator:ab49bef464033d018e3a405973e13c523"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae991bf6b34952c2ee0fee1c756b269cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#ae991bf6b34952c2ee0fee1c756b269cf">setAllocatedContent</a> (void *data, size_t size)</td></tr>
 <tr class="separator:ae991bf6b34952c2ee0fee1c756b269cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a81a20821afe64d6222f1ba6bd026a6b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html#a81a20821afe64d6222f1ba6bd026a6b4">setProperty</a> (const std::string &amp;name, const std::string &amp;value)</td></tr>
@@ -248,7 +250,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Set content of the message. The message contents will be managed by the system. </p>
+<p>Set content of the message. The given data is copied into message. </p>
 
 </div>
 </div>
@@ -268,7 +270,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
 <p>Set the content of the message</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramname">data</td><td>the content of the message </td></tr>
+    <tr><td class="paramname">data</td><td>the content of the message. </td></tr>
   </table>
   </dd>
 </dl>
@@ -276,6 +278,29 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
 
 </div>
 </div>
+<a class="anchor" id="ab49bef464033d018e3a405973e13c523"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; pulsar::MessageBuilder::setContent </td>
+          <td>(</td>
+          <td class="paramtype">std::string &amp;&amp;&#160;</td>
+          <td class="paramname"><em>data</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the content of the message</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">data</td><td>the content of the message. The given data is moved into message. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
 <a class="anchor" id="a07e1f9b3bde32334ddc54c230c851155"></a>
 <div class="memitem">
 <div class="memproto">
diff --git a/content/api/cpp/html/functions_func_s.html b/content/api/cpp/html/functions_func_s.html
index 6097fd1..4d0ff86 100644
--- a/content/api/cpp/html/functions_func_s.html
+++ b/content/api/cpp/html/functions_func_s.html
@@ -394,13 +394,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classpulsar_1_1_client.html#aecac8bf91b474339455fe0519f6ba71e">pulsar::Client</a>
 </li>
 <li>subscribe()
-: <a class="el" href="classpulsar_1_1_client.html#a9188d5fafbb23da16f859592316947e4">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a9f32b4d1101f8f2fb5029013c87779ab">pulsar::Client</a>
 </li>
 <li>subscribeAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a85d82595856f515b22acb623e84daa4b">pulsar::Client</a>
 </li>
 <li>subscribeWithRegex()
-: <a class="el" href="classpulsar_1_1_client.html#a086549ca0d057be1e9d00ca483995621">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a11016481c032f7d07e3ab5be341c9344">pulsar::Client</a>
 </li>
 <li>subscribeWithRegexAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a49a6024ae4ff44e1e02a59bc08d28c7a">pulsar::Client</a>
diff --git a/content/api/cpp/html/functions_s.html b/content/api/cpp/html/functions_s.html
index db88cf3..30ab392 100644
--- a/content/api/cpp/html/functions_s.html
+++ b/content/api/cpp/html/functions_s.html
@@ -395,13 +395,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classpulsar_1_1_client.html#aecac8bf91b474339455fe0519f6ba71e">pulsar::Client</a>
 </li>
 <li>subscribe()
-: <a class="el" href="classpulsar_1_1_client.html#a9188d5fafbb23da16f859592316947e4">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a9f32b4d1101f8f2fb5029013c87779ab">pulsar::Client</a>
 </li>
 <li>subscribeAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a85d82595856f515b22acb623e84daa4b">pulsar::Client</a>
 </li>
 <li>subscribeWithRegex()
-: <a class="el" href="classpulsar_1_1_client.html#a086549ca0d057be1e9d00ca483995621">pulsar::Client</a>
+: <a class="el" href="classpulsar_1_1_client.html#a11016481c032f7d07e3ab5be341c9344">pulsar::Client</a>
 </li>
 <li>subscribeWithRegexAsync()
 : <a class="el" href="classpulsar_1_1_client.html#a49a6024ae4ff44e1e02a59bc08d28c7a">pulsar::Client</a>
diff --git a/content/api/cpp/html/search/all_11.js b/content/api/cpp/html/search/all_11.js
index 63488fe..1baeb96 100644
--- a/content/api/cpp/html/search/all_11.js
+++ b/content/api/cpp/html/search/all_11.js
@@ -27,7 +27,7 @@ var searchData=
   ['setconsumereventlistener',['setConsumerEventListener',['../classpulsar_1_1_consumer_configuration.html#a7d4372914cecd70e77025eae08d0660e',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumername',['setConsumerName',['../classpulsar_1_1_consumer_configuration.html#a9a9c38d660aabc9162295de38bc26b77',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumertype',['setConsumerType',['../classpulsar_1_1_consumer_configuration.html#ace6b2f1da486fcffacc4e877e5533268',1,'pulsar::ConsumerConfiguration']]],
-  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)']]],
+  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)'],['../classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523',1,'pulsar::MessageBuilder::setContent(std::string &amp;&amp;data)']]],
   ['setcryptofailureaction',['setCryptoFailureAction',['../classpulsar_1_1_consumer_configuration.html#a6baa4dbfe938c813385d263ef5dc1e04',1,'pulsar::ConsumerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_producer_configuration.html#aba3cf7628c250b54e55bfbb89fa0cc4a',1,'pulsar::ProducerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_reader_configuration.html#a6040e935a25509a864d86518f3ebea5f',1,'pulsar::ReaderConfiguration::setCryptoFailureAction()']]],
   ['setcryptokeyreader',['setCryptoKeyReader',['../classpulsar_1_1_consumer_configuration.html#aa9c36fc44ee17ab41a36a6e53cb5dd23',1,'pulsar::ConsumerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_producer_configuration.html#aea9e5f80540eef4e8ce4c61ffd9a4e91',1,'pulsar::ProducerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_reader_configuration.html#a7ab4857034cf253af8e4b81695205a1b',1,'pulsar::ReaderConfiguration::setCryptoKeyReader()']]],
   ['setdeliverafter',['setDeliverAfter',['../classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155',1,'pulsar::MessageBuilder']]],
diff --git a/content/api/cpp/html/search/functions_e.js b/content/api/cpp/html/search/functions_e.js
index 4f7e677..fc8170f 100644
--- a/content/api/cpp/html/search/functions_e.js
+++ b/content/api/cpp/html/search/functions_e.js
@@ -25,7 +25,7 @@ var searchData=
   ['setconsumereventlistener',['setConsumerEventListener',['../classpulsar_1_1_consumer_configuration.html#a7d4372914cecd70e77025eae08d0660e',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumername',['setConsumerName',['../classpulsar_1_1_consumer_configuration.html#a9a9c38d660aabc9162295de38bc26b77',1,'pulsar::ConsumerConfiguration']]],
   ['setconsumertype',['setConsumerType',['../classpulsar_1_1_consumer_configuration.html#ace6b2f1da486fcffacc4e877e5533268',1,'pulsar::ConsumerConfiguration']]],
-  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)']]],
+  ['setcontent',['setContent',['../classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8',1,'pulsar::MessageBuilder::setContent(const void *data, size_t size)'],['../classpulsar_1_1_message_builder.html#a6661ff74ca3c036aff23fcec49871991',1,'pulsar::MessageBuilder::setContent(const std::string &amp;data)'],['../classpulsar_1_1_message_builder.html#ab49bef464033d018e3a405973e13c523',1,'pulsar::MessageBuilder::setContent(std::string &amp;&amp;data)']]],
   ['setcryptofailureaction',['setCryptoFailureAction',['../classpulsar_1_1_consumer_configuration.html#a6baa4dbfe938c813385d263ef5dc1e04',1,'pulsar::ConsumerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_producer_configuration.html#aba3cf7628c250b54e55bfbb89fa0cc4a',1,'pulsar::ProducerConfiguration::setCryptoFailureAction()'],['../classpulsar_1_1_reader_configuration.html#a6040e935a25509a864d86518f3ebea5f',1,'pulsar::ReaderConfiguration::setCryptoFailureAction()']]],
   ['setcryptokeyreader',['setCryptoKeyReader',['../classpulsar_1_1_consumer_configuration.html#aa9c36fc44ee17ab41a36a6e53cb5dd23',1,'pulsar::ConsumerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_producer_configuration.html#aea9e5f80540eef4e8ce4c61ffd9a4e91',1,'pulsar::ProducerConfiguration::setCryptoKeyReader()'],['../classpulsar_1_1_reader_configuration.html#a7ab4857034cf253af8e4b81695205a1b',1,'pulsar::ReaderConfiguration::setCryptoKeyReader()']]],
   ['setdeliverafter',['setDeliverAfter',['../classpulsar_1_1_message_builder.html#a07e1f9b3bde32334ddc54c230c851155',1,'pulsar::MessageBuilder']]],
diff --git a/content/api/python/2.10.0-SNAPSHOT/index.html b/content/api/python/2.10.0-SNAPSHOT/index.html
index bea272f..c6c67734 100644
--- a/content/api/python/2.10.0-SNAPSHOT/index.html
+++ b/content/api/python/2.10.0-SNAPSHOT/index.html
@@ -3764,7 +3764,7 @@ producers and consumers.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_producer">
-    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f72e633bcd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
+    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3016eb8cd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
     </div>
     
 
@@ -4018,7 +4018,7 @@ batched into single batch message:
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_reader">
-    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f72e54311d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
+    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3015fae1d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
     </div>
     
 
@@ -4235,7 +4235,7 @@ for ongoing operations to complete.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.subscribe">
-    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f72e5431110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
+    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3015fae110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
     </div>
     
 
diff --git a/content/api/python/index.html b/content/api/python/index.html
index bea272f..c6c67734 100644
--- a/content/api/python/index.html
+++ b/content/api/python/index.html
@@ -3764,7 +3764,7 @@ producers and consumers.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_producer">
-    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f72e633bcd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
+    <p>def <span class="ident">create_producer</span>(</p><p>self, topic, producer_name=None, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3016eb8cd0&gt;, initial_sequence_id=None, send_timeout_millis=30000, compression_type=_pulsar.CompressionType.NONE, max_pending_messages=1000, max_pending_messages_across_partitions=50000, block_if_queue_full=False, batching_enabled=False, batching_max_messages=1000, batching_max_allowed_size_in_bytes=131072, batching_max_publish_delay_ms [...]
     </div>
     
 
@@ -4018,7 +4018,7 @@ batched into single batch message:
             
   <div class="item">
     <div class="name def" id="pulsar.Client.create_reader">
-    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f72e54311d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
+    <p>def <span class="ident">create_reader</span>(</p><p>self, topic, start_message_id, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3015fae1d0&gt;, reader_listener=None, receiver_queue_size=1000, reader_name=None, subscription_role_prefix=None, is_read_compacted=False, crypto_key_reader=None)</p>
     </div>
     
 
@@ -4235,7 +4235,7 @@ for ongoing operations to complete.</p></div>
             
   <div class="item">
     <div class="name def" id="pulsar.Client.subscribe">
-    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f72e5431110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
+    <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, schema=&lt;pulsar.schema.schema.BytesSchema object at 0x7f3015fae110&gt;, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, negative_ack_redelivery_delay_ms=60000, is_read_compacted=False, properties=None, pa [...]
     </div>
     
 
diff --git a/content/docs/en/2.2.0/sql-deployment-configurations.html b/content/docs/en/2.2.0/sql-deployment-configurations.html
index 9b1d61e..e1a7f06 100644
--- a/content/docs/en/2.2.0/sql-deployment-configurations.html
+++ b/content/docs/en/2.2.0/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.2.0/sql-deployment-configurations/index.html b/content/docs/en/2.2.0/sql-deployment-configurations/index.html
index 9b1d61e..e1a7f06 100644
--- a/content/docs/en/2.2.0/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.2.0/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.2.1/sql-deployment-configurations.html b/content/docs/en/2.2.1/sql-deployment-configurations.html
index 028f631..c674005 100644
--- a/content/docs/en/2.2.1/sql-deployment-configurations.html
+++ b/content/docs/en/2.2.1/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.2.1/sql-deployment-configurations/index.html b/content/docs/en/2.2.1/sql-deployment-configurations/index.html
index 028f631..c674005 100644
--- a/content/docs/en/2.2.1/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.2.1/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.3.0/sql-deployment-configurations.html b/content/docs/en/2.3.0/sql-deployment-configurations.html
index f150b57..4684ae2 100644
--- a/content/docs/en/2.3.0/sql-deployment-configurations.html
+++ b/content/docs/en/2.3.0/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.3.0/sql-deployment-configurations/index.html b/content/docs/en/2.3.0/sql-deployment-configurations/index.html
index f150b57..4684ae2 100644
--- a/content/docs/en/2.3.0/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.3.0/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.3.1/sql-deployment-configurations.html b/content/docs/en/2.3.1/sql-deployment-configurations.html
index 20c66ee..cb721d9 100644
--- a/content/docs/en/2.3.1/sql-deployment-configurations.html
+++ b/content/docs/en/2.3.1/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.3.1/sql-deployment-configurations/index.html b/content/docs/en/2.3.1/sql-deployment-configurations/index.html
index 20c66ee..cb721d9 100644
--- a/content/docs/en/2.3.1/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.3.1/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.3.2/sql-deployment-configurations.html b/content/docs/en/2.3.2/sql-deployment-configurations.html
index af3a94a..a5760d7 100644
--- a/content/docs/en/2.3.2/sql-deployment-configurations.html
+++ b/content/docs/en/2.3.2/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.3.2/sql-deployment-configurations/index.html b/content/docs/en/2.3.2/sql-deployment-configurations/index.html
index af3a94a..a5760d7 100644
--- a/content/docs/en/2.3.2/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.3.2/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.4.0/sql-deployment-configurations.html b/content/docs/en/2.4.0/sql-deployment-configurations.html
index 0185bb4..d3272a6 100644
--- a/content/docs/en/2.4.0/sql-deployment-configurations.html
+++ b/content/docs/en/2.4.0/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.4.0/sql-deployment-configurations/index.html b/content/docs/en/2.4.0/sql-deployment-configurations/index.html
index 0185bb4..d3272a6 100644
--- a/content/docs/en/2.4.0/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.4.0/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.4.1/sql-deployment-configurations.html b/content/docs/en/2.4.1/sql-deployment-configurations.html
index 5bcfa61..96c6490 100644
--- a/content/docs/en/2.4.1/sql-deployment-configurations.html
+++ b/content/docs/en/2.4.1/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.4.1/sql-deployment-configurations/index.html b/content/docs/en/2.4.1/sql-deployment-configurations/index.html
index 5bcfa61..96c6490 100644
--- a/content/docs/en/2.4.1/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.4.1/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.4.2/sql-deployment-configurations.html b/content/docs/en/2.4.2/sql-deployment-configurations.html
index f316dbd..76a77e8 100644
--- a/content/docs/en/2.4.2/sql-deployment-configurations.html
+++ b/content/docs/en/2.4.2/sql-deployment-configurations.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/en/2.4.2/sql-deployment-configurations/index.html b/content/docs/en/2.4.2/sql-deployment-configurations/index.html
index f316dbd..76a77e8 100644
--- a/content/docs/en/2.4.2/sql-deployment-configurations/index.html
+++ b/content/docs/en/2.4.2/sql-deployment-configurations/index.html
@@ -159,8 +159,7 @@ Options:
 
 </code></pre>
 <p>Also, modify <code>pulsar.broker-service-url</code> and  <code>pulsar.zookeeper-uri</code> configs in <code>${project.root}/conf/presto/catalog/pulsar.properties</code> accordingly</p>
-<p>You can also start the worker by just running:</p>
-<p><code>$ ./bin/pulsar sql-worker run</code></p>
+<p>You can also start the worker by just running: <code>$ ./bin/pulsar sql-worker run</code></p>
 <p>You can check the status of your cluster from the SQL CLI.  To start the SQL CLI:</p>
 <pre><code class="hljs css language-bash">$ ./bin/pulsar sql --server &lt;coordinate_url&gt;
 
diff --git a/content/docs/fr/2.4.0/administration-geo.html b/content/docs/fr/2.4.0/administration-geo.html
index f4b696e..ba1bc3e2 100644
--- a/content/docs/fr/2.4.0/administration-geo.html
+++ b/content/docs/fr/2.4.0/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.4.0/administration-geo/index.html b/content/docs/fr/2.4.0/administration-geo/index.html
index f4b696e..ba1bc3e2 100644
--- a/content/docs/fr/2.4.0/administration-geo/index.html
+++ b/content/docs/fr/2.4.0/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.4.1/administration-geo.html b/content/docs/fr/2.4.1/administration-geo.html
index fd19007..34f827d 100644
--- a/content/docs/fr/2.4.1/administration-geo.html
+++ b/content/docs/fr/2.4.1/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.4.1/administration-geo/index.html b/content/docs/fr/2.4.1/administration-geo/index.html
index fd19007..34f827d 100644
--- a/content/docs/fr/2.4.1/administration-geo/index.html
+++ b/content/docs/fr/2.4.1/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.4.2/administration-geo.html b/content/docs/fr/2.4.2/administration-geo.html
index 93ad81e..bc96817 100644
--- a/content/docs/fr/2.4.2/administration-geo.html
+++ b/content/docs/fr/2.4.2/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.4.2/administration-geo/index.html b/content/docs/fr/2.4.2/administration-geo/index.html
index 93ad81e..bc96817 100644
--- a/content/docs/fr/2.4.2/administration-geo/index.html
+++ b/content/docs/fr/2.4.2/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.5.0/administration-geo.html b/content/docs/fr/2.5.0/administration-geo.html
index 9be50c6..7f06d09 100644
--- a/content/docs/fr/2.5.0/administration-geo.html
+++ b/content/docs/fr/2.5.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.5.0/administration-geo/index.html b/content/docs/fr/2.5.0/administration-geo/index.html
index 9be50c6..7f06d09 100644
--- a/content/docs/fr/2.5.0/administration-geo/index.html
+++ b/content/docs/fr/2.5.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.5.1/administration-geo.html b/content/docs/fr/2.5.1/administration-geo.html
index 4f28f36..1e1fbfc 100644
--- a/content/docs/fr/2.5.1/administration-geo.html
+++ b/content/docs/fr/2.5.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.5.1/administration-geo/index.html b/content/docs/fr/2.5.1/administration-geo/index.html
index 4f28f36..1e1fbfc 100644
--- a/content/docs/fr/2.5.1/administration-geo/index.html
+++ b/content/docs/fr/2.5.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.5.2/administration-geo.html b/content/docs/fr/2.5.2/administration-geo.html
index 48a54fe..209f9e7 100644
--- a/content/docs/fr/2.5.2/administration-geo.html
+++ b/content/docs/fr/2.5.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.5.2/administration-geo/index.html b/content/docs/fr/2.5.2/administration-geo/index.html
index 48a54fe..209f9e7 100644
--- a/content/docs/fr/2.5.2/administration-geo/index.html
+++ b/content/docs/fr/2.5.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.0/administration-geo.html b/content/docs/fr/2.6.0/administration-geo.html
index b95b2a9..50d85ac 100644
--- a/content/docs/fr/2.6.0/administration-geo.html
+++ b/content/docs/fr/2.6.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.0/administration-geo/index.html b/content/docs/fr/2.6.0/administration-geo/index.html
index b95b2a9..50d85ac 100644
--- a/content/docs/fr/2.6.0/administration-geo/index.html
+++ b/content/docs/fr/2.6.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.1/administration-geo.html b/content/docs/fr/2.6.1/administration-geo.html
index fca8916..8198abd 100644
--- a/content/docs/fr/2.6.1/administration-geo.html
+++ b/content/docs/fr/2.6.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.1/administration-geo/index.html b/content/docs/fr/2.6.1/administration-geo/index.html
index fca8916..8198abd 100644
--- a/content/docs/fr/2.6.1/administration-geo/index.html
+++ b/content/docs/fr/2.6.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.2/administration-geo.html b/content/docs/fr/2.6.2/administration-geo.html
index 2b1f59f..2cc6fde 100644
--- a/content/docs/fr/2.6.2/administration-geo.html
+++ b/content/docs/fr/2.6.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.2/administration-geo/index.html b/content/docs/fr/2.6.2/administration-geo/index.html
index 2b1f59f..2cc6fde 100644
--- a/content/docs/fr/2.6.2/administration-geo/index.html
+++ b/content/docs/fr/2.6.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.3/administration-geo.html b/content/docs/fr/2.6.3/administration-geo.html
index 2185a2a..d25e862 100644
--- a/content/docs/fr/2.6.3/administration-geo.html
+++ b/content/docs/fr/2.6.3/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.3/administration-geo/index.html b/content/docs/fr/2.6.3/administration-geo/index.html
index 2185a2a..d25e862 100644
--- a/content/docs/fr/2.6.3/administration-geo/index.html
+++ b/content/docs/fr/2.6.3/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.4/administration-geo.html b/content/docs/fr/2.6.4/administration-geo.html
index a7c2c63..b1c1b9e 100644
--- a/content/docs/fr/2.6.4/administration-geo.html
+++ b/content/docs/fr/2.6.4/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.6.4/administration-geo/index.html b/content/docs/fr/2.6.4/administration-geo/index.html
index a7c2c63..b1c1b9e 100644
--- a/content/docs/fr/2.6.4/administration-geo/index.html
+++ b/content/docs/fr/2.6.4/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.0/administration-geo.html b/content/docs/fr/2.7.0/administration-geo.html
index 1eed0fc..a17d3df 100644
--- a/content/docs/fr/2.7.0/administration-geo.html
+++ b/content/docs/fr/2.7.0/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.0/administration-geo/index.html b/content/docs/fr/2.7.0/administration-geo/index.html
index 1eed0fc..a17d3df 100644
--- a/content/docs/fr/2.7.0/administration-geo/index.html
+++ b/content/docs/fr/2.7.0/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.1/administration-geo.html b/content/docs/fr/2.7.1/administration-geo.html
index 461c676..f1b5f23 100644
--- a/content/docs/fr/2.7.1/administration-geo.html
+++ b/content/docs/fr/2.7.1/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.1/administration-geo/index.html b/content/docs/fr/2.7.1/administration-geo/index.html
index 461c676..f1b5f23 100644
--- a/content/docs/fr/2.7.1/administration-geo/index.html
+++ b/content/docs/fr/2.7.1/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.2/administration-geo.html b/content/docs/fr/2.7.2/administration-geo.html
index 1fd076d..0285671 100644
--- a/content/docs/fr/2.7.2/administration-geo.html
+++ b/content/docs/fr/2.7.2/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.2/administration-geo/index.html b/content/docs/fr/2.7.2/administration-geo/index.html
index 1fd076d..0285671 100644
--- a/content/docs/fr/2.7.2/administration-geo/index.html
+++ b/content/docs/fr/2.7.2/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.3/administration-geo.html b/content/docs/fr/2.7.3/administration-geo.html
index c9486c6..64b1e55 100644
--- a/content/docs/fr/2.7.3/administration-geo.html
+++ b/content/docs/fr/2.7.3/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.7.3/administration-geo/index.html b/content/docs/fr/2.7.3/administration-geo/index.html
index c9486c6..64b1e55 100644
--- a/content/docs/fr/2.7.3/administration-geo/index.html
+++ b/content/docs/fr/2.7.3/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.8.0/administration-geo.html b/content/docs/fr/2.8.0/administration-geo.html
index 2105093..8ba100d 100644
--- a/content/docs/fr/2.8.0/administration-geo.html
+++ b/content/docs/fr/2.8.0/administration-geo.html
@@ -198,7 +198,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/2.8.0/administration-geo/index.html b/content/docs/fr/2.8.0/administration-geo/index.html
index 2105093..8ba100d 100644
--- a/content/docs/fr/2.8.0/administration-geo/index.html
+++ b/content/docs/fr/2.8.0/administration-geo/index.html
@@ -198,7 +198,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/administration-geo.html b/content/docs/fr/administration-geo.html
index e42cc58..0587085 100644
--- a/content/docs/fr/administration-geo.html
+++ b/content/docs/fr/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/administration-geo/index.html b/content/docs/fr/administration-geo/index.html
index e42cc58..0587085 100644
--- a/content/docs/fr/administration-geo/index.html
+++ b/content/docs/fr/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/next/administration-geo.html b/content/docs/fr/next/administration-geo.html
index 1700b2e..cded7fb 100644
--- a/content/docs/fr/next/administration-geo.html
+++ b/content/docs/fr/next/administration-geo.html
@@ -207,7 +207,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/next/administration-geo/index.html b/content/docs/fr/next/administration-geo/index.html
index 1700b2e..cded7fb 100644
--- a/content/docs/fr/next/administration-geo/index.html
+++ b/content/docs/fr/next/administration-geo/index.html
@@ -207,7 +207,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/fr/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/fr/next/functions-runtime.html b/content/docs/fr/next/functions-runtime.html
index d2e8c5d..13973cd 100644
--- a/content/docs/fr/next/functions-runtime.html
+++ b/content/docs/fr/next/functions-runtime.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/fr/next/functions-runtime/index.html b/content/docs/fr/next/functions-runtime/index.html
index d2e8c5d..13973cd 100644
--- a/content/docs/fr/next/functions-runtime/index.html
+++ b/content/docs/fr/next/functions-runtime/index.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/fr/next/reference-configuration.html b/content/docs/fr/next/reference-configuration.html
index dee04e9..8d89ea2 100644
--- a/content/docs/fr/next/reference-configuration.html
+++ b/content/docs/fr/next/reference-configuration.html
@@ -209,7 +209,7 @@
 <p>If there are multiple listeners, separate them with commas.</p>
 <p><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerServicePort</code>|/| |internalListenerName|Specify the internal listener name for the broker.</p>
 <p><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.</p>
-<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
+<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
 <ul>
 <li><p>'producer_request_hold' Policy which holds producer's send request until the resource becomes available (or holding times out)</p></li>
 <li><p>'producer_exception' Policy which throws <code>javax.jms.ResourceAllocationException</code> to the producer</p></li>
diff --git a/content/docs/fr/next/reference-configuration/index.html b/content/docs/fr/next/reference-configuration/index.html
index dee04e9..8d89ea2 100644
--- a/content/docs/fr/next/reference-configuration/index.html
+++ b/content/docs/fr/next/reference-configuration/index.html
@@ -209,7 +209,7 @@
 <p>If there are multiple listeners, separate them with commas.</p>
 <p><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerServicePort</code>|/| |internalListenerName|Specify the internal listener name for the broker.</p>
 <p><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.</p>
-<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
+<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
 <ul>
 <li><p>'producer_request_hold' Policy which holds producer's send request until the resource becomes available (or holding times out)</p></li>
 <li><p>'producer_exception' Policy which throws <code>javax.jms.ResourceAllocationException</code> to the producer</p></li>
diff --git a/content/docs/ja/2.4.0/administration-geo.html b/content/docs/ja/2.4.0/administration-geo.html
index 3d8a999..e970645 100644
--- a/content/docs/ja/2.4.0/administration-geo.html
+++ b/content/docs/ja/2.4.0/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.4.0/administration-dashboard"><span>ダッシュボード</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.4.0/administration-geo/index.html b/content/docs/ja/2.4.0/administration-geo/index.html
index 3d8a999..e970645 100644
--- a/content/docs/ja/2.4.0/administration-geo/index.html
+++ b/content/docs/ja/2.4.0/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.4.0/administration-dashboard"><span>ダッシュボード</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.4.1/administration-geo.html b/content/docs/ja/2.4.1/administration-geo.html
index 4b671d7..b5308cd 100644
--- a/content/docs/ja/2.4.1/administration-geo.html
+++ b/content/docs/ja/2.4.1/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.4.1/administration-dashboard"><span>ダッシュボード</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.4.1/administration-geo/index.html b/content/docs/ja/2.4.1/administration-geo/index.html
index 4b671d7..b5308cd 100644
--- a/content/docs/ja/2.4.1/administration-geo/index.html
+++ b/content/docs/ja/2.4.1/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.4.1/administration-dashboard"><span>ダッシュボード</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.4.2/administration-geo.html b/content/docs/ja/2.4.2/administration-geo.html
index 6017cd5..cc7938b 100644
--- a/content/docs/ja/2.4.2/administration-geo.html
+++ b/content/docs/ja/2.4.2/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.4.2/administration-dashboard"><span>ダッシュボード</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.4.2/administration-geo/index.html b/content/docs/ja/2.4.2/administration-geo/index.html
index 6017cd5..cc7938b 100644
--- a/content/docs/ja/2.4.2/administration-geo/index.html
+++ b/content/docs/ja/2.4.2/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.4.2/administration-dashboard"><span>ダッシュボード</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.5.0/administration-geo.html b/content/docs/ja/2.5.0/administration-geo.html
index b4c1723..411ced8 100644
--- a/content/docs/ja/2.5.0/administration-geo.html
+++ b/content/docs/ja/2.5.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.5.0/administration-geo/index.html b/content/docs/ja/2.5.0/administration-geo/index.html
index b4c1723..411ced8 100644
--- a/content/docs/ja/2.5.0/administration-geo/index.html
+++ b/content/docs/ja/2.5.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.5.1/administration-geo.html b/content/docs/ja/2.5.1/administration-geo.html
index 3cb236f..29a9498 100644
--- a/content/docs/ja/2.5.1/administration-geo.html
+++ b/content/docs/ja/2.5.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.5.1/administration-geo/index.html b/content/docs/ja/2.5.1/administration-geo/index.html
index 3cb236f..29a9498 100644
--- a/content/docs/ja/2.5.1/administration-geo/index.html
+++ b/content/docs/ja/2.5.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.5.2/administration-geo.html b/content/docs/ja/2.5.2/administration-geo.html
index a10373c..d789e51 100644
--- a/content/docs/ja/2.5.2/administration-geo.html
+++ b/content/docs/ja/2.5.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.5.2/administration-geo/index.html b/content/docs/ja/2.5.2/administration-geo/index.html
index a10373c..d789e51 100644
--- a/content/docs/ja/2.5.2/administration-geo/index.html
+++ b/content/docs/ja/2.5.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.0/administration-geo.html b/content/docs/ja/2.6.0/administration-geo.html
index 27f97cf..386abb1 100644
--- a/content/docs/ja/2.6.0/administration-geo.html
+++ b/content/docs/ja/2.6.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.0/administration-geo/index.html b/content/docs/ja/2.6.0/administration-geo/index.html
index 27f97cf..386abb1 100644
--- a/content/docs/ja/2.6.0/administration-geo/index.html
+++ b/content/docs/ja/2.6.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.1/administration-geo.html b/content/docs/ja/2.6.1/administration-geo.html
index 1e6569e..4577a15 100644
--- a/content/docs/ja/2.6.1/administration-geo.html
+++ b/content/docs/ja/2.6.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.1/administration-geo/index.html b/content/docs/ja/2.6.1/administration-geo/index.html
index 1e6569e..4577a15 100644
--- a/content/docs/ja/2.6.1/administration-geo/index.html
+++ b/content/docs/ja/2.6.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.2/administration-geo.html b/content/docs/ja/2.6.2/administration-geo.html
index 71866c2..1cba3d2 100644
--- a/content/docs/ja/2.6.2/administration-geo.html
+++ b/content/docs/ja/2.6.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.2/administration-geo/index.html b/content/docs/ja/2.6.2/administration-geo/index.html
index 71866c2..1cba3d2 100644
--- a/content/docs/ja/2.6.2/administration-geo/index.html
+++ b/content/docs/ja/2.6.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.3/administration-geo.html b/content/docs/ja/2.6.3/administration-geo.html
index 74864e3..beef84f 100644
--- a/content/docs/ja/2.6.3/administration-geo.html
+++ b/content/docs/ja/2.6.3/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.3/administration-geo/index.html b/content/docs/ja/2.6.3/administration-geo/index.html
index 74864e3..beef84f 100644
--- a/content/docs/ja/2.6.3/administration-geo/index.html
+++ b/content/docs/ja/2.6.3/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.4/administration-geo.html b/content/docs/ja/2.6.4/administration-geo.html
index ad4ea0a..89e2b6b 100644
--- a/content/docs/ja/2.6.4/administration-geo.html
+++ b/content/docs/ja/2.6.4/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.6.4/administration-geo/index.html b/content/docs/ja/2.6.4/administration-geo/index.html
index ad4ea0a..89e2b6b 100644
--- a/content/docs/ja/2.6.4/administration-geo/index.html
+++ b/content/docs/ja/2.6.4/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.0/administration-geo.html b/content/docs/ja/2.7.0/administration-geo.html
index ec5af29..5ff7f02 100644
--- a/content/docs/ja/2.7.0/administration-geo.html
+++ b/content/docs/ja/2.7.0/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.0/administration-geo/index.html b/content/docs/ja/2.7.0/administration-geo/index.html
index ec5af29..5ff7f02 100644
--- a/content/docs/ja/2.7.0/administration-geo/index.html
+++ b/content/docs/ja/2.7.0/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.1/administration-geo.html b/content/docs/ja/2.7.1/administration-geo.html
index 3ed0f6a..d91b16d 100644
--- a/content/docs/ja/2.7.1/administration-geo.html
+++ b/content/docs/ja/2.7.1/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.1/administration-geo/index.html b/content/docs/ja/2.7.1/administration-geo/index.html
index 3ed0f6a..d91b16d 100644
--- a/content/docs/ja/2.7.1/administration-geo/index.html
+++ b/content/docs/ja/2.7.1/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.2/administration-geo.html b/content/docs/ja/2.7.2/administration-geo.html
index 428962f..9849694 100644
--- a/content/docs/ja/2.7.2/administration-geo.html
+++ b/content/docs/ja/2.7.2/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.2/administration-geo/index.html b/content/docs/ja/2.7.2/administration-geo/index.html
index 428962f..9849694 100644
--- a/content/docs/ja/2.7.2/administration-geo/index.html
+++ b/content/docs/ja/2.7.2/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.3/administration-geo.html b/content/docs/ja/2.7.3/administration-geo.html
index af7af30..cf3a200 100644
--- a/content/docs/ja/2.7.3/administration-geo.html
+++ b/content/docs/ja/2.7.3/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.7.3/administration-geo/index.html b/content/docs/ja/2.7.3/administration-geo/index.html
index af7af30..cf3a200 100644
--- a/content/docs/ja/2.7.3/administration-geo/index.html
+++ b/content/docs/ja/2.7.3/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.8.0/administration-geo.html b/content/docs/ja/2.8.0/administration-geo.html
index 7d2c6ee..91613a7 100644
--- a/content/docs/ja/2.8.0/administration-geo.html
+++ b/content/docs/ja/2.8.0/administration-geo.html
@@ -198,7 +198,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/2.8.0/administration-geo/index.html b/content/docs/ja/2.8.0/administration-geo/index.html
index 7d2c6ee..91613a7 100644
--- a/content/docs/ja/2.8.0/administration-geo/index.html
+++ b/content/docs/ja/2.8.0/administration-geo/index.html
@@ -198,7 +198,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/administration-geo.html b/content/docs/ja/administration-geo.html
index b114457..4927b5b 100644
--- a/content/docs/ja/administration-geo.html
+++ b/content/docs/ja/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/administration-geo/index.html b/content/docs/ja/administration-geo/index.html
index b114457..4927b5b 100644
--- a/content/docs/ja/administration-geo/index.html
+++ b/content/docs/ja/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/next/administration-geo.html b/content/docs/ja/next/administration-geo.html
index 0fe4c73..f8a9a43 100644
--- a/content/docs/ja/next/administration-geo.html
+++ b/content/docs/ja/next/administration-geo.html
@@ -207,7 +207,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/next/administration-geo/index.html b/content/docs/ja/next/administration-geo/index.html
index 0fe4c73..f8a9a43 100644
--- a/content/docs/ja/next/administration-geo/index.html
+++ b/content/docs/ja/next/administration-geo/index.html
@@ -207,7 +207,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ja/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ja/next/functions-runtime.html b/content/docs/ja/next/functions-runtime.html
index d232c8c..2624f32 100644
--- a/content/docs/ja/next/functions-runtime.html
+++ b/content/docs/ja/next/functions-runtime.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/ja/next/functions-runtime/index.html b/content/docs/ja/next/functions-runtime/index.html
index d232c8c..2624f32 100644
--- a/content/docs/ja/next/functions-runtime/index.html
+++ b/content/docs/ja/next/functions-runtime/index.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/ja/next/reference-configuration.html b/content/docs/ja/next/reference-configuration.html
index 9e631eb..eea504c 100644
--- a/content/docs/ja/next/reference-configuration.html
+++ b/content/docs/ja/next/reference-configuration.html
@@ -209,7 +209,7 @@
 <p>If there are multiple listeners, separate them with commas.</p>
 <p><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerServicePort</code>|/| |internalListenerName|Specify the internal listener name for the broker.</p>
 <p><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.</p>
-<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
+<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
 <ul>
 <li><p>'producer_request_hold' Policy which holds producer's send request until the resource becomes available (or holding times out)</p></li>
 <li><p>'producer_exception' Policy which throws <code>javax.jms.ResourceAllocationException</code> to the producer</p></li>
diff --git a/content/docs/ja/next/reference-configuration/index.html b/content/docs/ja/next/reference-configuration/index.html
index 9e631eb..eea504c 100644
--- a/content/docs/ja/next/reference-configuration/index.html
+++ b/content/docs/ja/next/reference-configuration/index.html
@@ -209,7 +209,7 @@
 <p>If there are multiple listeners, separate them with commas.</p>
 <p><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerServicePort</code>|/| |internalListenerName|Specify the internal listener name for the broker.</p>
 <p><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.</p>
-<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
+<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
 <ul>
 <li><p>'producer_request_hold' Policy which holds producer's send request until the resource becomes available (or holding times out)</p></li>
 <li><p>'producer_exception' Policy which throws <code>javax.jms.ResourceAllocationException</code> to the producer</p></li>
diff --git a/content/docs/ko/2.4.0/administration-geo.html b/content/docs/ko/2.4.0/administration-geo.html
index daf377c..3c06a9c 100644
--- a/content/docs/ko/2.4.0/administration-geo.html
+++ b/content/docs/ko/2.4.0/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.4.0/administration-geo/index.html b/content/docs/ko/2.4.0/administration-geo/index.html
index daf377c..3c06a9c 100644
--- a/content/docs/ko/2.4.0/administration-geo/index.html
+++ b/content/docs/ko/2.4.0/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.4.1/administration-geo.html b/content/docs/ko/2.4.1/administration-geo.html
index 765a480..6904c83 100644
--- a/content/docs/ko/2.4.1/administration-geo.html
+++ b/content/docs/ko/2.4.1/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.4.1/administration-geo/index.html b/content/docs/ko/2.4.1/administration-geo/index.html
index 765a480..6904c83 100644
--- a/content/docs/ko/2.4.1/administration-geo/index.html
+++ b/content/docs/ko/2.4.1/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.4.2/administration-geo.html b/content/docs/ko/2.4.2/administration-geo.html
index 4e0b2a8..c2ab7d8 100644
--- a/content/docs/ko/2.4.2/administration-geo.html
+++ b/content/docs/ko/2.4.2/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.4.2/administration-geo/index.html b/content/docs/ko/2.4.2/administration-geo/index.html
index 4e0b2a8..c2ab7d8 100644
--- a/content/docs/ko/2.4.2/administration-geo/index.html
+++ b/content/docs/ko/2.4.2/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.5.0/administration-geo.html b/content/docs/ko/2.5.0/administration-geo.html
index c8326cb..ce5c677 100644
--- a/content/docs/ko/2.5.0/administration-geo.html
+++ b/content/docs/ko/2.5.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.5.0/administration-geo/index.html b/content/docs/ko/2.5.0/administration-geo/index.html
index c8326cb..ce5c677 100644
--- a/content/docs/ko/2.5.0/administration-geo/index.html
+++ b/content/docs/ko/2.5.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.5.1/administration-geo.html b/content/docs/ko/2.5.1/administration-geo.html
index bdb477d..eb9aa7f 100644
--- a/content/docs/ko/2.5.1/administration-geo.html
+++ b/content/docs/ko/2.5.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.5.1/administration-geo/index.html b/content/docs/ko/2.5.1/administration-geo/index.html
index bdb477d..eb9aa7f 100644
--- a/content/docs/ko/2.5.1/administration-geo/index.html
+++ b/content/docs/ko/2.5.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.5.2/administration-geo.html b/content/docs/ko/2.5.2/administration-geo.html
index 461552a..ef0f1b9 100644
--- a/content/docs/ko/2.5.2/administration-geo.html
+++ b/content/docs/ko/2.5.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.5.2/administration-geo/index.html b/content/docs/ko/2.5.2/administration-geo/index.html
index 461552a..ef0f1b9 100644
--- a/content/docs/ko/2.5.2/administration-geo/index.html
+++ b/content/docs/ko/2.5.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.0/administration-geo.html b/content/docs/ko/2.6.0/administration-geo.html
index 4ce4b70..45dd7ba 100644
--- a/content/docs/ko/2.6.0/administration-geo.html
+++ b/content/docs/ko/2.6.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.0/administration-geo/index.html b/content/docs/ko/2.6.0/administration-geo/index.html
index 4ce4b70..45dd7ba 100644
--- a/content/docs/ko/2.6.0/administration-geo/index.html
+++ b/content/docs/ko/2.6.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.1/administration-geo.html b/content/docs/ko/2.6.1/administration-geo.html
index 3335f0e..9d7fa18 100644
--- a/content/docs/ko/2.6.1/administration-geo.html
+++ b/content/docs/ko/2.6.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.1/administration-geo/index.html b/content/docs/ko/2.6.1/administration-geo/index.html
index 3335f0e..9d7fa18 100644
--- a/content/docs/ko/2.6.1/administration-geo/index.html
+++ b/content/docs/ko/2.6.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.2/administration-geo.html b/content/docs/ko/2.6.2/administration-geo.html
index e0d3302..b6b4233 100644
--- a/content/docs/ko/2.6.2/administration-geo.html
+++ b/content/docs/ko/2.6.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.2/administration-geo/index.html b/content/docs/ko/2.6.2/administration-geo/index.html
index e0d3302..b6b4233 100644
--- a/content/docs/ko/2.6.2/administration-geo/index.html
+++ b/content/docs/ko/2.6.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.3/administration-geo.html b/content/docs/ko/2.6.3/administration-geo.html
index f13158d..c711096 100644
--- a/content/docs/ko/2.6.3/administration-geo.html
+++ b/content/docs/ko/2.6.3/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.3/administration-geo/index.html b/content/docs/ko/2.6.3/administration-geo/index.html
index f13158d..c711096 100644
--- a/content/docs/ko/2.6.3/administration-geo/index.html
+++ b/content/docs/ko/2.6.3/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.4/administration-geo.html b/content/docs/ko/2.6.4/administration-geo.html
index 7912ad4..3d664c0 100644
--- a/content/docs/ko/2.6.4/administration-geo.html
+++ b/content/docs/ko/2.6.4/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.6.4/administration-geo/index.html b/content/docs/ko/2.6.4/administration-geo/index.html
index 7912ad4..3d664c0 100644
--- a/content/docs/ko/2.6.4/administration-geo/index.html
+++ b/content/docs/ko/2.6.4/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.6.4/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.6.4/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.0/administration-geo.html b/content/docs/ko/2.7.0/administration-geo.html
index 7684c1b..ab30141 100644
--- a/content/docs/ko/2.7.0/administration-geo.html
+++ b/content/docs/ko/2.7.0/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.0/administration-geo/index.html b/content/docs/ko/2.7.0/administration-geo/index.html
index 7684c1b..ab30141 100644
--- a/content/docs/ko/2.7.0/administration-geo/index.html
+++ b/content/docs/ko/2.7.0/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.1/administration-geo.html b/content/docs/ko/2.7.1/administration-geo.html
index f710162..7146afa 100644
--- a/content/docs/ko/2.7.1/administration-geo.html
+++ b/content/docs/ko/2.7.1/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.1/administration-geo/index.html b/content/docs/ko/2.7.1/administration-geo/index.html
index f710162..7146afa 100644
--- a/content/docs/ko/2.7.1/administration-geo/index.html
+++ b/content/docs/ko/2.7.1/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.2/administration-geo.html b/content/docs/ko/2.7.2/administration-geo.html
index 28401a6..2c12db3 100644
--- a/content/docs/ko/2.7.2/administration-geo.html
+++ b/content/docs/ko/2.7.2/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.2/administration-geo/index.html b/content/docs/ko/2.7.2/administration-geo/index.html
index 28401a6..2c12db3 100644
--- a/content/docs/ko/2.7.2/administration-geo/index.html
+++ b/content/docs/ko/2.7.2/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.3/administration-geo.html b/content/docs/ko/2.7.3/administration-geo.html
index 3ee2d2d..234c0ce 100644
--- a/content/docs/ko/2.7.3/administration-geo.html
+++ b/content/docs/ko/2.7.3/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.7.3/administration-geo/index.html b/content/docs/ko/2.7.3/administration-geo/index.html
index 3ee2d2d..234c0ce 100644
--- a/content/docs/ko/2.7.3/administration-geo/index.html
+++ b/content/docs/ko/2.7.3/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.7.3/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.7.3/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.8.0/administration-geo.html b/content/docs/ko/2.8.0/administration-geo.html
index 89530c7..d0d65f9 100644
--- a/content/docs/ko/2.8.0/administration-geo.html
+++ b/content/docs/ko/2.8.0/administration-geo.html
@@ -198,7 +198,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/2.8.0/administration-geo/index.html b/content/docs/ko/2.8.0/administration-geo/index.html
index 89530c7..d0d65f9 100644
--- a/content/docs/ko/2.8.0/administration-geo/index.html
+++ b/content/docs/ko/2.8.0/administration-geo/index.html
@@ -198,7 +198,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/2.8.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/2.8.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/administration-geo.html b/content/docs/ko/administration-geo.html
index c643843..af7579d 100644
--- a/content/docs/ko/administration-geo.html
+++ b/content/docs/ko/administration-geo.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/administration-geo/index.html b/content/docs/ko/administration-geo/index.html
index c643843..af7579d 100644
--- a/content/docs/ko/administration-geo/index.html
+++ b/content/docs/ko/administration-geo/index.html
@@ -202,7 +202,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-replication [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/next/administration-geo.html b/content/docs/ko/next/administration-geo.html
index fc923e6..44a713e 100644
--- a/content/docs/ko/next/administration-geo.html
+++ b/content/docs/ko/next/administration-geo.html
@@ -207,7 +207,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/next/administration-geo/index.html b/content/docs/ko/next/administration-geo/index.html
index fc923e6..44a713e 100644
--- a/content/docs/ko/next/administration-geo/index.html
+++ b/content/docs/ko/next/administration-geo/index.html
@@ -207,7 +207,10 @@ producer.newMessage()
 <li>When you disable it, the overhead is zero.</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="limitations"></a><a href="#limitations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</p>
+<ul>
+<li>When you enable replicated subscription, you're creating a consistent distributed snapshot to establish an association between message ids from different clusters. The snapshots are taken periodically. The default value is <code>1 second</code>. It means that a consumer failing over to a different cluster can potentially receive 1 second of duplicates. You can also configure the frequency of the snapshot in the <code>broker.conf</code> file.</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ko/next/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper and BookKeeper</span></a><a class="docs-next button" href="/docs/ko/next/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-geo-replication-works">How geo-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/ko/next/functions-runtime.html b/content/docs/ko/next/functions-runtime.html
index 91a5de0..6466eda 100644
--- a/content/docs/ko/next/functions-runtime.html
+++ b/content/docs/ko/next/functions-runtime.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/ko/next/functions-runtime/index.html b/content/docs/ko/next/functions-runtime/index.html
index 91a5de0..6466eda 100644
--- a/content/docs/ko/next/functions-runtime/index.html
+++ b/content/docs/ko/next/functions-runtime/index.html
@@ -188,6 +188,9 @@ Pulsar supports adding labels to the Kubernetes StatefulSets and services while
   <span class="hljs-attr">narExtractionDirectory:</span>
   <span class="hljs-comment"># The classpath where function instance files stored</span>
   <span class="hljs-attr">functionInstanceClassPath:</span>
+  <span class="hljs-comment"># Upload the builtin sources/sinks to BookKeeper.</span>
+  <span class="hljs-comment"># True by default.</span>
+  <span class="hljs-attr">uploadBuiltinSinksSources:</span> <span class="hljs-literal">true</span>
   <span class="hljs-comment"># the directory for dropping extra function dependencies</span>
   <span class="hljs-comment"># if it is not an absolute path, it is relative to `pulsarRootDir`</span>
   <span class="hljs-attr">extraFunctionDependenciesDir:</span>
diff --git a/content/docs/ko/next/reference-configuration.html b/content/docs/ko/next/reference-configuration.html
index 8b05d25..6a88299 100644
--- a/content/docs/ko/next/reference-configuration.html
+++ b/content/docs/ko/next/reference-configuration.html
@@ -209,7 +209,7 @@
 <p>If there are multiple listeners, separate them with commas.</p>
 <p><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerServicePort</code>|/| |internalListenerName|Specify the internal listener name for the broker.</p>
 <p><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.</p>
-<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
+<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
 <ul>
 <li><p>'producer_request_hold' Policy which holds producer's send request until the resource becomes available (or holding times out)</p></li>
 <li><p>'producer_exception' Policy which throws <code>javax.jms.ResourceAllocationException</code> to the producer</p></li>
diff --git a/content/docs/ko/next/reference-configuration/index.html b/content/docs/ko/next/reference-configuration/index.html
index 8b05d25..6a88299 100644
--- a/content/docs/ko/next/reference-configuration/index.html
+++ b/content/docs/ko/next/reference-configuration/index.html
@@ -209,7 +209,7 @@
 <p>If there are multiple listeners, separate them with commas.</p>
 <p><strong>Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerServicePort</code>|/| |internalListenerName|Specify the internal listener name for the broker.</p>
 <p><strong>Note</strong>: the listener name must be contained in <code>advertisedListeners</code>.</p>
-<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
+<p>If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |enablePersistentTopics| Whether persistent topics are enabled on the broker |true| |enableNonPersistentTopics| Whether non-persistent topics are enabled on the broker |true| [...]
 <ul>
 <li><p>'producer_request_hold' Policy which holds producer's send request until the resource becomes available (or holding times out)</p></li>
 <li><p>'producer_exception' Policy which throws <code>javax.jms.ResourceAllocationException</code> to the producer</p></li>
diff --git a/content/docs/zh-CN/2.1.0-incubating/pulsar-admin.html b/content/docs/zh-CN/2.1.0-incubating/pulsar-admin.html
index 4c7948d..1063ab5 100644
--- a/content/docs/zh-CN/2.1.0-incubating/pulsar-admin.html
+++ b/content/docs/zh-CN/2.1.0-incubating/pulsar-admin.html
@@ -279,7 +279,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -290,12 +290,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -313,7 +313,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -324,12 +324,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -370,11 +370,11 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -801,7 +801,7 @@
 <tbody>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
@@ -845,7 +845,7 @@
 <tr><td><code>--brokerServiceUrl</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.1.0-incubating/pulsar-admin/index.html b/content/docs/zh-CN/2.1.0-incubating/pulsar-admin/index.html
index 4c7948d..1063ab5 100644
--- a/content/docs/zh-CN/2.1.0-incubating/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/pulsar-admin/index.html
@@ -279,7 +279,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -290,12 +290,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -313,7 +313,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -324,12 +324,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -370,11 +370,11 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -801,7 +801,7 @@
 <tbody>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
@@ -845,7 +845,7 @@
 <tr><td><code>--brokerServiceUrl</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.1.1-incubating/pulsar-admin.html b/content/docs/zh-CN/2.1.1-incubating/pulsar-admin.html
index 625b4ae..31b7daa3 100644
--- a/content/docs/zh-CN/2.1.1-incubating/pulsar-admin.html
+++ b/content/docs/zh-CN/2.1.1-incubating/pulsar-admin.html
@@ -279,7 +279,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -290,12 +290,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -313,7 +313,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -324,12 +324,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -370,11 +370,11 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -801,7 +801,7 @@
 <tbody>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
@@ -845,7 +845,7 @@
 <tr><td><code>--brokerServiceUrl</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.1.1-incubating/pulsar-admin/index.html b/content/docs/zh-CN/2.1.1-incubating/pulsar-admin/index.html
index 625b4ae..31b7daa3 100644
--- a/content/docs/zh-CN/2.1.1-incubating/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/pulsar-admin/index.html
@@ -279,7 +279,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -290,12 +290,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -313,7 +313,7 @@
 <tr><td><code>--cpu</code></td><td>The CPU to allocate to each function instance (in number of cores)</td><td></td></tr>
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
-<tr><td><code>--brokerServiceUrl</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--brokerServiceUrl</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--customSerdeInputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--functionConfigFile</code></td><td>The path of the YAML config file used to configure the function</td><td></td></tr>
@@ -324,12 +324,12 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--stateStorageServiceUrl</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -370,11 +370,11 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--outputSerdeClassName</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processingGuarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--subscriptionType</code></td><td>The subscription type used by the function when consuming messages on the input topic(s). Can be either SHARED or EXCLUSIVE</td><td>SHARED</td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--userConfig</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 </tbody>
 </table>
@@ -801,7 +801,7 @@
 <tbody>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
@@ -845,7 +845,7 @@
 <tr><td><code>--brokerServiceUrl</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--className</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--customSerdeInputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--customSerdeInputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the Java jar file for the sink</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.2.0/pulsar-admin.html b/content/docs/zh-CN/2.2.0/pulsar-admin.html
index 92f598e..59a2977 100644
--- a/content/docs/zh-CN/2.2.0/pulsar-admin.html
+++ b/content/docs/zh-CN/2.2.0/pulsar-admin.html
@@ -280,8 +280,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -296,14 +296,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -325,7 +325,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -337,13 +337,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -381,7 +381,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -393,13 +393,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -864,7 +864,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -896,7 +896,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -943,7 +943,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.2.0/pulsar-admin/index.html b/content/docs/zh-CN/2.2.0/pulsar-admin/index.html
index 92f598e..59a2977 100644
--- a/content/docs/zh-CN/2.2.0/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.2.0/pulsar-admin/index.html
@@ -280,8 +280,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -296,14 +296,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -325,7 +325,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -337,13 +337,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -381,7 +381,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -393,13 +393,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -864,7 +864,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -896,7 +896,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -943,7 +943,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.2.1/pulsar-admin.html b/content/docs/zh-CN/2.2.1/pulsar-admin.html
index 700186c..fa162ee 100644
--- a/content/docs/zh-CN/2.2.1/pulsar-admin.html
+++ b/content/docs/zh-CN/2.2.1/pulsar-admin.html
@@ -328,8 +328,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -344,14 +344,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -373,7 +373,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -385,13 +385,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -429,7 +429,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -441,13 +441,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -955,7 +955,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -987,7 +987,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1034,7 +1034,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.2.1/pulsar-admin/index.html b/content/docs/zh-CN/2.2.1/pulsar-admin/index.html
index 700186c..fa162ee 100644
--- a/content/docs/zh-CN/2.2.1/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.2.1/pulsar-admin/index.html
@@ -328,8 +328,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -344,14 +344,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -373,7 +373,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -385,13 +385,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -429,7 +429,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -441,13 +441,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -955,7 +955,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -987,7 +987,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1034,7 +1034,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.3.0/pulsar-admin.html b/content/docs/zh-CN/2.3.0/pulsar-admin.html
index 0a5de28..a86e98f 100644
--- a/content/docs/zh-CN/2.3.0/pulsar-admin.html
+++ b/content/docs/zh-CN/2.3.0/pulsar-admin.html
@@ -358,8 +358,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -374,14 +374,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar). This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -403,7 +403,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -415,13 +415,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -459,7 +459,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -471,13 +471,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -1218,7 +1218,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1250,7 +1250,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1297,7 +1297,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.3.0/pulsar-admin/index.html b/content/docs/zh-CN/2.3.0/pulsar-admin/index.html
index 0a5de28..a86e98f 100644
--- a/content/docs/zh-CN/2.3.0/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.3.0/pulsar-admin/index.html
@@ -358,8 +358,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -374,14 +374,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar). This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -403,7 +403,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -415,13 +415,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -459,7 +459,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -471,13 +471,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -1218,7 +1218,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1250,7 +1250,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1297,7 +1297,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.3.1/pulsar-admin.html b/content/docs/zh-CN/2.3.1/pulsar-admin.html
index 949ba5a..772e9ea 100644
--- a/content/docs/zh-CN/2.3.1/pulsar-admin.html
+++ b/content/docs/zh-CN/2.3.1/pulsar-admin.html
@@ -414,8 +414,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -430,14 +430,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar). This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -459,7 +459,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -471,13 +471,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -515,7 +515,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -527,13 +527,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -1365,7 +1365,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1397,7 +1397,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1444,7 +1444,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.3.1/pulsar-admin/index.html b/content/docs/zh-CN/2.3.1/pulsar-admin/index.html
index 949ba5a..772e9ea 100644
--- a/content/docs/zh-CN/2.3.1/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.3.1/pulsar-admin/index.html
@@ -414,8 +414,8 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -430,14 +430,14 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar). This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -459,7 +459,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -471,13 +471,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -515,7 +515,7 @@
 <tr><td><code>--ram</code></td><td>The RAM to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk space to allocate to each function instance (in bytes)</td><td></td></tr>
 <tr><td><code>--auto-ack</code></td><td>Let the functions framework manage acking</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The name of the function’s class</td><td></td></tr>
 <tr><td><code>--custom-serde-inputs</code></td><td>A map of the input topic to SerDe name</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>A map of the input topic to Schema class name</td><td></td></tr>
@@ -527,13 +527,13 @@
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
 <tr><td><code>--output</code></td><td>The name of the topic to which the function publishes its output (if any)</td><td></td></tr>
 <tr><td><code>--output-serde-classname</code></td><td>The SerDe class used for the function’s output</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCE</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>The path of the Python file containing the function’s processing logic (if the function is written in Python)</td><td></td></tr>
 <tr><td><code>--schema-type</code></td><td>Schema Type to be used for storing output messages</td><td></td></tr>
 <tr><td><code>--sliding-interval-count</code></td><td>Number of messages after which the window ends</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>A user-supplied config value, set as a key/value pair. You can set multiple user config values.</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量,</td><td></td></tr>
@@ -1365,7 +1365,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1397,7 +1397,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1444,7 +1444,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink’s Java class name</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.3.2/pulsar-admin.html b/content/docs/zh-CN/2.3.2/pulsar-admin.html
index 73e183d..199266c 100644
--- a/content/docs/zh-CN/2.3.2/pulsar-admin.html
+++ b/content/docs/zh-CN/2.3.2/pulsar-admin.html
@@ -414,36 +414,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -468,30 +468,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -514,8 +514,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -530,30 +530,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -576,8 +576,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -594,8 +594,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -682,7 +682,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -699,8 +699,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -717,8 +717,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
@@ -1437,7 +1437,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1452,10 +1452,10 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 </tbody>
 </table>
 <h3><a class="anchor" aria-hidden="true" id="update-2"></a><a href="#update-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
@@ -1471,7 +1471,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1486,9 +1486,9 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 </tbody>
 </table>
@@ -1621,7 +1621,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1636,13 +1636,13 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td>false</td></tr>
@@ -1873,9 +1873,9 @@
 <tr><td><code>--source-config-file</code></td><td>The path to a YAML config file specifying the source’s configuration</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The source’s tenant</td><td></td></tr>
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.3.2/pulsar-admin/index.html b/content/docs/zh-CN/2.3.2/pulsar-admin/index.html
index 73e183d..199266c 100644
--- a/content/docs/zh-CN/2.3.2/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.3.2/pulsar-admin/index.html
@@ -414,36 +414,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -468,30 +468,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -514,8 +514,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -530,30 +530,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -576,8 +576,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -594,8 +594,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -682,7 +682,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -699,8 +699,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -717,8 +717,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
@@ -1437,7 +1437,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1452,10 +1452,10 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 </tbody>
 </table>
 <h3><a class="anchor" aria-hidden="true" id="update-2"></a><a href="#update-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
@@ -1471,7 +1471,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1486,9 +1486,9 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 </tbody>
 </table>
@@ -1621,7 +1621,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1636,13 +1636,13 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td>false</td></tr>
@@ -1873,9 +1873,9 @@
 <tr><td><code>--source-config-file</code></td><td>The path to a YAML config file specifying the source’s configuration</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The source’s tenant</td><td></td></tr>
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.4.0/administration-geo.html b/content/docs/zh-CN/2.4.0/administration-geo.html
index 4f39325..04ddbd0 100644
--- a/content/docs/zh-CN/2.4.0/administration-geo.html
+++ b/content/docs/zh-CN/2.4.0/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#运作模式">运作模式</a></li><li><a href="#跨地域复制和- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.4.0/administration-geo/index.html b/content/docs/zh-CN/2.4.0/administration-geo/index.html
index 4f39325..04ddbd0 100644
--- a/content/docs/zh-CN/2.4.0/administration-geo/index.html
+++ b/content/docs/zh-CN/2.4.0/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.0/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#运作模式">运作模式</a></li><li><a href="#跨地域复制和- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.4.0/pulsar-admin.html b/content/docs/zh-CN/2.4.0/pulsar-admin.html
index 29f62cc..86fe51e 100644
--- a/content/docs/zh-CN/2.4.0/pulsar-admin.html
+++ b/content/docs/zh-CN/2.4.0/pulsar-admin.html
@@ -414,36 +414,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -468,30 +468,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -514,8 +514,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -530,30 +530,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -576,8 +576,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -594,8 +594,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -682,7 +682,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -699,8 +699,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -717,8 +717,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
@@ -1437,7 +1437,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1452,10 +1452,10 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 </tbody>
 </table>
 <h3><a class="anchor" aria-hidden="true" id="update-2"></a><a href="#update-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
@@ -1471,7 +1471,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1486,9 +1486,9 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 </tbody>
 </table>
@@ -1621,7 +1621,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1636,13 +1636,13 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td>false</td></tr>
@@ -1873,9 +1873,9 @@
 <tr><td><code>--source-config-file</code></td><td>The path to a YAML config file specifying the source’s configuration</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The source’s tenant</td><td></td></tr>
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.4.0/pulsar-admin/index.html b/content/docs/zh-CN/2.4.0/pulsar-admin/index.html
index 29f62cc..86fe51e 100644
--- a/content/docs/zh-CN/2.4.0/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.4.0/pulsar-admin/index.html
@@ -414,36 +414,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -468,30 +468,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -514,8 +514,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -530,30 +530,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -576,8 +576,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -594,8 +594,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -682,7 +682,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -699,8 +699,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -717,8 +717,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
@@ -1437,7 +1437,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1452,10 +1452,10 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 </tbody>
 </table>
 <h3><a class="anchor" aria-hidden="true" id="update-2"></a><a href="#update-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
@@ -1471,7 +1471,7 @@
 <tbody>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1486,9 +1486,9 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
 </tbody>
 </table>
@@ -1621,7 +1621,7 @@
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
 <tr><td><code>--classname</code></td><td>The sink's class name if archive is file-url-path (file://)</td><td></td></tr>
 <tr><td><code>--cpu</code></td><td>The CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
 <tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema types or class names (as a JSON string)</td><td></td></tr>
 <tr><td><code>--disk</code></td><td>The disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)</td><td></td></tr>
 <tr><td><code>--inputs</code></td><td>The sink’s input topic(s) (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
@@ -1636,13 +1636,13 @@
 <tr><td><code>--sink-type</code></td><td>The built-in sinks's connector provider. 当前内置连接器 <code>sink-type</code> 的参数是由 pulsar-io.yaml 文件中指定的 <code>name</code> 参数的设置决定的。</td><td></td></tr>
 <tr><td><code>--topics-pattern</code></td><td>TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only)</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The sink’s tenant</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
 <tr><td><code>--timeout-ms</code></td><td>The message timeout in milliseconds</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--retain-ordering</code></td><td>Sink consumes and sinks messages in order</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td>false</td></tr>
@@ -1873,9 +1873,9 @@
 <tr><td><code>--source-config-file</code></td><td>The path to a YAML config file specifying the source’s configuration</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The source’s tenant</td><td></td></tr>
 <tr><td><code>--broker-service-url</code></td><td>The URL for the Pulsar broker</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
 <tr><td><code>--tls-allow-insecure</code></td><td>Allow insecure tls connection</td><td>false</td></tr>
 <tr><td><code>--tls-trust-cert-path</code></td><td>The tls trust cert file path</td><td></td></tr>
 <tr><td><code>--use-tls</code></td><td>Use tls connection</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.4.1/administration-geo.html b/content/docs/zh-CN/2.4.1/administration-geo.html
index 5b8da87..4f751b7 100644
--- a/content/docs/zh-CN/2.4.1/administration-geo.html
+++ b/content/docs/zh-CN/2.4.1/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#运作模式">运作模式</a></li><li><a href="#跨地域复制和- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.4.1/administration-geo/index.html b/content/docs/zh-CN/2.4.1/administration-geo/index.html
index 5b8da87..4f751b7 100644
--- a/content/docs/zh-CN/2.4.1/administration-geo/index.html
+++ b/content/docs/zh-CN/2.4.1/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.1/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#运作模式">运作模式</a></li><li><a href="#跨地域复制和- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.4.1/pulsar-admin.html b/content/docs/zh-CN/2.4.1/pulsar-admin.html
index 3b41f1c..72a2b88 100644
--- a/content/docs/zh-CN/2.4.1/pulsar-admin.html
+++ b/content/docs/zh-CN/2.4.1/pulsar-admin.html
@@ -416,36 +416,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -470,30 +470,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -516,8 +516,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -532,30 +532,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -578,8 +578,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -596,8 +596,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -614,8 +614,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -632,8 +632,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -650,8 +650,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -668,8 +668,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,7 +684,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -701,8 +701,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -719,8 +719,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.4.1/pulsar-admin/index.html b/content/docs/zh-CN/2.4.1/pulsar-admin/index.html
index 3b41f1c..72a2b88 100644
--- a/content/docs/zh-CN/2.4.1/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.4.1/pulsar-admin/index.html
@@ -416,36 +416,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -470,30 +470,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -516,8 +516,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -532,30 +532,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -578,8 +578,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -596,8 +596,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -614,8 +614,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -632,8 +632,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -650,8 +650,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -668,8 +668,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,7 +684,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -701,8 +701,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -719,8 +719,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.4.2/administration-geo.html b/content/docs/zh-CN/2.4.2/administration-geo.html
index 3c3ea7d..427ed8f 100644
--- a/content/docs/zh-CN/2.4.2/administration-geo.html
+++ b/content/docs/zh-CN/2.4.2/administration-geo.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#运作模式">运作模式</a></li><li><a href="#跨地域复制和- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.4.2/administration-geo/index.html b/content/docs/zh-CN/2.4.2/administration-geo/index.html
index 3c3ea7d..427ed8f 100644
--- a/content/docs/zh-CN/2.4.2/administration-geo/index.html
+++ b/content/docs/zh-CN/2.4.2/administration-geo/index.html
@@ -169,7 +169,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.2/administration-dashboard"><span>Dashboard</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#运作模式">运作模式</a></li><li><a href="#跨地域复制和- [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.4.2/pulsar-admin.html b/content/docs/zh-CN/2.4.2/pulsar-admin.html
index 9825b9d..e096baf 100644
--- a/content/docs/zh-CN/2.4.2/pulsar-admin.html
+++ b/content/docs/zh-CN/2.4.2/pulsar-admin.html
@@ -416,36 +416,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -470,30 +470,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -516,8 +516,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -532,30 +532,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -578,8 +578,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -596,8 +596,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -614,8 +614,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -632,8 +632,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -650,8 +650,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -668,8 +668,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,7 +684,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -701,8 +701,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -719,8 +719,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.4.2/pulsar-admin/index.html b/content/docs/zh-CN/2.4.2/pulsar-admin/index.html
index 9825b9d..e096baf 100644
--- a/content/docs/zh-CN/2.4.2/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.4.2/pulsar-admin/index.html
@@ -416,36 +416,36 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -470,30 +470,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -516,8 +516,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -532,30 +532,30 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
 <tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
@@ -578,8 +578,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -596,8 +596,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -614,8 +614,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -632,8 +632,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -650,8 +650,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -668,8 +668,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,7 +684,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -701,8 +701,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -719,8 +719,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.5.0/administration-geo.html b/content/docs/zh-CN/2.5.0/administration-geo.html
index 87d346a..34461ec 100644
--- a/content/docs/zh-CN/2.5.0/administration-geo.html
+++ b/content/docs/zh-CN/2.5.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.5.0/administration-geo/index.html b/content/docs/zh-CN/2.5.0/administration-geo/index.html
index 87d346a..34461ec 100644
--- a/content/docs/zh-CN/2.5.0/administration-geo/index.html
+++ b/content/docs/zh-CN/2.5.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.5.0/pulsar-admin.html b/content/docs/zh-CN/2.5.0/pulsar-admin.html
index e70cd9c..be70c4a 100644
--- a/content/docs/zh-CN/2.5.0/pulsar-admin.html
+++ b/content/docs/zh-CN/2.5.0/pulsar-admin.html
@@ -432,37 +432,37 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
@@ -486,31 +486,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -532,8 +532,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -548,31 +548,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -594,8 +594,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,8 +684,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -700,7 +700,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -717,8 +717,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -753,8 +753,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.5.0/pulsar-admin/index.html b/content/docs/zh-CN/2.5.0/pulsar-admin/index.html
index e70cd9c..be70c4a 100644
--- a/content/docs/zh-CN/2.5.0/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.5.0/pulsar-admin/index.html
@@ -432,37 +432,37 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
@@ -486,31 +486,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -532,8 +532,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -548,31 +548,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -594,8 +594,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,8 +684,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -700,7 +700,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -717,8 +717,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -753,8 +753,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.5.1/administration-geo.html b/content/docs/zh-CN/2.5.1/administration-geo.html
index c9840f4..d94425a 100644
--- a/content/docs/zh-CN/2.5.1/administration-geo.html
+++ b/content/docs/zh-CN/2.5.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.5.1/administration-geo/index.html b/content/docs/zh-CN/2.5.1/administration-geo/index.html
index c9840f4..d94425a 100644
--- a/content/docs/zh-CN/2.5.1/administration-geo/index.html
+++ b/content/docs/zh-CN/2.5.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.5.1/pulsar-admin.html b/content/docs/zh-CN/2.5.1/pulsar-admin.html
index c3ac607d..39dbf76 100644
--- a/content/docs/zh-CN/2.5.1/pulsar-admin.html
+++ b/content/docs/zh-CN/2.5.1/pulsar-admin.html
@@ -432,37 +432,37 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
@@ -486,31 +486,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -532,8 +532,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -548,31 +548,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -594,8 +594,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,8 +684,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -700,7 +700,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -717,8 +717,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -753,8 +753,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.5.1/pulsar-admin/index.html b/content/docs/zh-CN/2.5.1/pulsar-admin/index.html
index c3ac607d..39dbf76 100644
--- a/content/docs/zh-CN/2.5.1/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.5.1/pulsar-admin/index.html
@@ -432,37 +432,37 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
@@ -486,31 +486,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -532,8 +532,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -548,31 +548,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -594,8 +594,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,8 +684,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -700,7 +700,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -717,8 +717,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -753,8 +753,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.5.2/administration-geo.html b/content/docs/zh-CN/2.5.2/administration-geo.html
index 04abeb3..7cac67f 100644
--- a/content/docs/zh-CN/2.5.2/administration-geo.html
+++ b/content/docs/zh-CN/2.5.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.5.2/administration-geo/index.html b/content/docs/zh-CN/2.5.2/administration-geo/index.html
index 04abeb3..7cac67f 100644
--- a/content/docs/zh-CN/2.5.2/administration-geo/index.html
+++ b/content/docs/zh-CN/2.5.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.5.2/pulsar-admin.html b/content/docs/zh-CN/2.5.2/pulsar-admin.html
index 6ae9288..2ff2d75 100644
--- a/content/docs/zh-CN/2.5.2/pulsar-admin.html
+++ b/content/docs/zh-CN/2.5.2/pulsar-admin.html
@@ -432,37 +432,37 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
@@ -486,31 +486,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -532,8 +532,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -548,31 +548,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -594,8 +594,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,8 +684,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -700,7 +700,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -717,8 +717,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -753,8 +753,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.5.2/pulsar-admin/index.html b/content/docs/zh-CN/2.5.2/pulsar-admin/index.html
index 6ae9288..2ff2d75 100644
--- a/content/docs/zh-CN/2.5.2/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.5.2/pulsar-admin/index.html
@@ -432,37 +432,37 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
@@ -486,31 +486,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -532,8 +532,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -548,31 +548,31 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
 <tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
@@ -594,8 +594,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -612,8 +612,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -630,8 +630,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -648,8 +648,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -666,8 +666,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -684,8 +684,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -700,7 +700,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -717,8 +717,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -753,8 +753,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.6.0/administration-geo.html b/content/docs/zh-CN/2.6.0/administration-geo.html
index 863d010..9328cd8 100644
--- a/content/docs/zh-CN/2.6.0/administration-geo.html
+++ b/content/docs/zh-CN/2.6.0/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.6.0/administration-geo/index.html b/content/docs/zh-CN/2.6.0/administration-geo/index.html
index 863d010..9328cd8 100644
--- a/content/docs/zh-CN/2.6.0/administration-geo/index.html
+++ b/content/docs/zh-CN/2.6.0/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.0/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.0/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.6.0/pulsar-admin.html b/content/docs/zh-CN/2.6.0/pulsar-admin.html
index 42518af..d656a8b 100644
--- a/content/docs/zh-CN/2.6.0/pulsar-admin.html
+++ b/content/docs/zh-CN/2.6.0/pulsar-admin.html
@@ -436,38 +436,38 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service (by default Apache BookKeeper)</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -490,32 +490,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -536,8 +536,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -552,32 +552,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -598,8 +598,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -616,8 +616,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -634,8 +634,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -652,8 +652,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -670,8 +670,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -688,8 +688,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -704,7 +704,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -721,8 +721,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -757,8 +757,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.6.0/pulsar-admin/index.html b/content/docs/zh-CN/2.6.0/pulsar-admin/index.html
index 42518af..d656a8b 100644
--- a/content/docs/zh-CN/2.6.0/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.6.0/pulsar-admin/index.html
@@ -436,38 +436,38 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service (by default Apache BookKeeper)</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -490,32 +490,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -536,8 +536,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -552,32 +552,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -598,8 +598,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -616,8 +616,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -634,8 +634,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -652,8 +652,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -670,8 +670,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -688,8 +688,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -704,7 +704,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -721,8 +721,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -757,8 +757,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.6.1/administration-geo.html b/content/docs/zh-CN/2.6.1/administration-geo.html
index 58cbc88..751deff 100644
--- a/content/docs/zh-CN/2.6.1/administration-geo.html
+++ b/content/docs/zh-CN/2.6.1/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.6.1/administration-geo/index.html b/content/docs/zh-CN/2.6.1/administration-geo/index.html
index 58cbc88..751deff 100644
--- a/content/docs/zh-CN/2.6.1/administration-geo/index.html
+++ b/content/docs/zh-CN/2.6.1/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.1/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.1/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.6.1/pulsar-admin.html b/content/docs/zh-CN/2.6.1/pulsar-admin.html
index 4e39894..b2e5a6a 100644
--- a/content/docs/zh-CN/2.6.1/pulsar-admin.html
+++ b/content/docs/zh-CN/2.6.1/pulsar-admin.html
@@ -436,38 +436,38 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -490,32 +490,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -536,8 +536,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -552,32 +552,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -598,8 +598,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -616,8 +616,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -634,8 +634,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -652,8 +652,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -670,8 +670,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -688,8 +688,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -704,7 +704,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -721,8 +721,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -757,8 +757,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.6.1/pulsar-admin/index.html b/content/docs/zh-CN/2.6.1/pulsar-admin/index.html
index 4e39894..b2e5a6a 100644
--- a/content/docs/zh-CN/2.6.1/pulsar-admin/index.html
+++ b/content/docs/zh-CN/2.6.1/pulsar-admin/index.html
@@ -436,38 +436,38 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -490,32 +490,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -536,8 +536,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -552,32 +552,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -598,8 +598,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -616,8 +616,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (restart all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -634,8 +634,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (stop all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -652,8 +652,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (start all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -670,8 +670,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-status of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -688,8 +688,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>--instance-id</code></td><td>The function instanceId (Get-stats of all instances if instance-id is not provided)</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -704,7 +704,7 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -721,8 +721,8 @@
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
 <tr><td><code>-k</code>, <code>--key</code></td><td>The key for the state you want to fetch</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>-w</code>, <code>--watch</code></td><td>Watch for changes in the value associated with a key for a Pulsar Function</td><td>false</td></tr>
 </tbody>
@@ -757,8 +757,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 <tr><td><code>--topic</code></td><td>The specific topic name that the function consumes from that you want to inject the data to</td><td></td></tr>
 <tr><td><code>--trigger-file</code></td><td>The path to the file that contains the data with which you'd like to trigger the function</td><td></td></tr>
diff --git a/content/docs/zh-CN/2.6.2/administration-geo.html b/content/docs/zh-CN/2.6.2/administration-geo.html
index 5a9390f..f4f655b 100644
--- a/content/docs/zh-CN/2.6.2/administration-geo.html
+++ b/content/docs/zh-CN/2.6.2/administration-geo.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.6.2/administration-geo/index.html b/content/docs/zh-CN/2.6.2/administration-geo/index.html
index 5a9390f..f4f655b 100644
--- a/content/docs/zh-CN/2.6.2/administration-geo/index.html
+++ b/content/docs/zh-CN/2.6.2/administration-geo/index.html
@@ -199,7 +199,10 @@ producer.newMessage()
 <li>当禁用的时候,它的间接成本为 0。</li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="缺点"></a><a href="#缺点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</p>
+<ul>
+<li>当您启用复制订阅时,您正在创建一致的分布式快照,以建立来自不同集群的消息id之间的关联。 快照是定期备份的, 默认是<code>1秒</code>。 这意味着因为故障而转移到其他集群的使用者可能会收到1秒的重复数据。 你也可以在<code>broker.conf</code>文件中配置快照的频率。</li>
+<li>Only the base line cursor position is synced in replicated subscriptions while the individual acknowledgments are not synced. This means the messages acknowledged out-of-order could end up getting delivered again, in the case of a cluster failover.</li>
+</ul>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.2/administration-zk-bk"><span class="arrow-prev">← </span><span class="function-name-prevnext">ZooKeeper 和 BookKeeper</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.2/administration-pulsar-manager"><span>Pulsar Manager</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#跨地域复制的工作原理">跨地域复制的工作原理</a></li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.6.2/pulsar-admin.html b/content/docs/zh-CN/2.6.2/pulsar-admin.html
index 967b97a..f4c179a 100644
--- a/content/docs/zh-CN/2.6.2/pulsar-admin.html
+++ b/content/docs/zh-CN/2.6.2/pulsar-admin.html
@@ -436,38 +436,38 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--broker-service-url</code></td><td>The URL of the Pulsar broker</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--client-auth-params</code></td><td>Client authentication param</td><td></td></tr>
-<tr><td><code>--client-auth-plugin</code></td><td>Client authentication plugin using which function-process can connect to broker</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--hostname-verification-enabled</code></td><td>Enable hostname verification</td><td>false</td></tr>
-<tr><td><code>--instance-id-offset</code></td><td>Start the instanceIds from this offset</td><td>0</td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--broker-service-url</code></td><td>Pulsar broker 的 URL</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--client-auth-params</code></td><td>客户端身份验证参数。</td><td></td></tr>
+<tr><td><code>--client-auth-plugin</code></td><td>客户端身份验证插件,function 进程需要通过此插件连接到 broker。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--hostname-verification-enabled</code></td><td>启用主机名称验证</td><td>false</td></tr>
+<tr><td><code>--instance-id-offset</code></td><td>从该设置的偏移量启动实例</td><td>0</td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
 <tr><td><code>--state-storage-service-url</code></td><td>The URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed successfully are sent</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -490,32 +490,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -536,8 +536,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
-<tr><td><code>--namespace</code></td><td>The function's namespace</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
+<tr><td><code>--namespace</code></td><td>Function 的命名空间</td><td></td></tr>
 <tr><td><code>--tenant</code></td><td>The function's tenant</td><td></td></tr>
 </tbody>
 </table>
@@ -552,32 +552,32 @@
 <tr><th>参数</th><th>说明</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td><code>--cpu</code></td><td>The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--ram</code></td><td>The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)</td><td></td></tr>
-<tr><td><code>--disk</code></td><td>The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)</td><td></td></tr>
-<tr><td><code>--auto-ack</code></td><td>Whether or not the framework will automatically acknowledge messages</td><td></td></tr>
-<tr><td><code>--subs-name</code></td><td>Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer</td><td></td></tr>
-<tr><td><code>--classname</code></td><td>The function's class name</td><td></td></tr>
-<tr><td><code>--custom-serde-inputs</code></td><td>The map of input topics to SerDe class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--custom-schema-inputs</code></td><td>The map of input topics to Schema class names (as a JSON string)</td><td></td></tr>
-<tr><td><code>--function-config-file</code></td><td>The path to a YAML config file specifying the function's configuration</td><td></td></tr>
-<tr><td><code>--inputs</code></td><td>The function's input topic or topics (multiple topics can be specified as a comma-separated list)</td><td></td></tr>
-<tr><td><code>--log-topic</code></td><td>The topic to which the function's logs are produced</td><td></td></tr>
+<tr><td><code>--cpu</code></td><td>每个 function 实例需要分配的 cpu 核数(仅适用于在 docker 上运行时)</td><td></td></tr>
+<tr><td><code>--ram</code></td><td>每个 function 实例需要分配的 ram 字节数(仅适用于以进程运行或在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--disk</code></td><td>每个 function 实例需要分配的磁盘字节数(仅适用于在 docker 上运行时)。</td><td></td></tr>
+<tr><td><code>--auto-ack</code></td><td>框架是否会自动确认消息</td><td></td></tr>
+<tr><td><code>--subs-name</code></td><td>如果用户想为输入 topic 的消费者设置特定订阅名称,可以使用该参数设置 Pulsar 源订阅名称</td><td></td></tr>
+<tr><td><code>--classname</code></td><td>Function 的类名称</td><td></td></tr>
+<tr><td><code>--custom-serde-inputs</code></td><td>输入 topic 到 SerDe 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--custom-schema-inputs</code></td><td>输入 topic 到 Schema 类名称的映射(以 JSON 字符串的形式)。</td><td></td></tr>
+<tr><td><code>--function-config-file</code></td><td>配置 Pulsar Function 的 YAML 配置文件的路径。</td><td></td></tr>
+<tr><td><code>--inputs</code></td><td>Function 的输入 topic(多个 topic 可以用逗号分隔)</td><td></td></tr>
+<tr><td><code>--log-topic</code></td><td>用于 Function 输出日志的 topic</td><td></td></tr>
 <tr><td><code>--jar</code></td><td>Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
-<tr><td><code>--name</code></td><td>The function's name</td><td></td></tr>
+<tr><td><code>--name</code></td><td>Function 的名称</td><td></td></tr>
 <tr><td><code>--namespace</code></td><td>The function’s namespace</td><td></td></tr>
-<tr><td><code>--output</code></td><td>The function's output topic (If none is specified, no output is written)</td><td></td></tr>
-<tr><td><code>--output-serde-classname</code></td><td>The SerDe class to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--parallelism</code></td><td>The function’s parallelism factor, i.e. the number of instances of the function to run</td><td>1</td></tr>
+<tr><td><code>--output</code></td><td>Function 的输出 topic(如果未指定,则不做输出)</td><td></td></tr>
+<tr><td><code>--output-serde-classname</code></td><td>Function 输出消息时使用的 SerDe 类</td><td></td></tr>
+<tr><td><code>--parallelism</code></td><td>Function 的并行化参数,也就是要运行 function 实例的个数</td><td>1</td></tr>
 <tr><td><code>--processing-guarantees</code></td><td>The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]</td><td>ATLEAST_ONCE</td></tr>
 <tr><td><code>--py</code></td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python)</td><td></td></tr>
-<tr><td><code>--schema-type</code></td><td>The builtin schema type or custom schema class name to be used for messages output by the function</td><td></td></tr>
-<tr><td><code>--sliding-interval-count</code></td><td>The number of messages after which the window slides</td><td></td></tr>
-<tr><td><code>--sliding-interval-duration-ms</code></td><td>The time duration after which the window slides</td><td></td></tr>
-<tr><td><code>--tenant</code></td><td>The function’s tenant</td><td></td></tr>
-<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)</td><td></td></tr>
-<tr><td><code>--user-config</code></td><td>User-defined config key/values</td><td></td></tr>
-<tr><td><code>--window-length-count</code></td><td>The number of messages per window</td><td></td></tr>
+<tr><td><code>--schema-type</code></td><td>Function 用于输出消息的内置 schema 类型或自定义 schema 类名。</td><td></td></tr>
+<tr><td><code>--sliding-interval-count</code></td><td>窗口滑动后的消息数量。</td><td></td></tr>
+<tr><td><code>--sliding-interval-duration-ms</code></td><td>窗口滑动后的持续时间。</td><td></td></tr>
+<tr><td><code>--tenant</code></td><td>Function 的租户</td><td></td></tr>
+<tr><td><code>--topics-pattern</code></td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. 使用 --custom-serde-inputs 配置为模式添加 SerDe 类名称(仅适用于 Java Function)。</td><td></td></tr>
+<tr><td><code>--user-config</code></td><td>用户定义的配置键/值。</td><td></td></tr>
+<tr><td><code>--window-length-count</code></td><td>每个窗口的消息数量</td><td></td></tr>
 <tr><td><code>--window-length-duration-ms</code></td><td>The time duration of the window in milliseconds</td><td></td></tr>
 <tr><td><code>--dead-letter-topic</code></td><td>The topic where all messages which could not be processed</td><td></td></tr>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
@@ -598,8 +598,8 @@
 </thead>
 <tbody>
 <tr><td><code>--fqfn</code></td><td>The Fully Qualified Function Name (FQFN) for the function</td><td></td></tr>
... 17572 lines suppressed ...