You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/04/29 16:44:04 UTC

[tomcat] branch 9.0.x updated (147fee4 -> 4469b06)

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

markt pushed a change to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git.


    from 147fee4  Remove reason phrase on WebDAV Multi-Status (207) response
     new e6aa9b0  Back-port updates to English strings
     new 5b0e141  Update French translations (remm)
     new 4469b06  Expand and update Chinese translations

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java/javax/el/LocalStrings_zh_CN.properties        |   2 +
 java/javax/servlet/LocalStrings_zh_CN.properties   |   1 +
 .../servlet/http/LocalStrings_zh_CN.properties     |   2 +
 .../authenticator/LocalStrings_zh_CN.properties    |  16 +++
 .../jaspic/LocalStrings_zh_CN.properties           |   4 +
 .../catalina/connector/LocalStrings_fr.properties  |   1 +
 .../connector/LocalStrings_zh_CN.properties        |  31 +++++
 .../apache/catalina/core/LocalStrings.properties   |  14 +-
 .../catalina/core/LocalStrings_zh_CN.properties    | 149 +++++++++++++++++++++
 .../catalina/deploy/LocalStrings_zh_CN.properties  |   3 +
 .../catalina/filters/LocalStrings_zh_CN.properties |  19 +++
 .../ha/authenticator/LocalStrings_zh_CN.properties |   1 +
 .../ha/backend/LocalStrings_zh_CN.properties       |  17 +++
 .../ha/context/LocalStrings_zh_CN.properties       |   3 +
 .../ha/deploy/LocalStrings_zh_CN.properties        |  21 +++
 .../ha/session/LocalStrings_zh_CN.properties       |  32 ++++-
 .../catalina/ha/tcp/LocalStrings_zh_CN.properties  |  14 ++
 .../catalina/loader/LocalStrings_zh_CN.properties  |  32 +++++
 .../catalina/manager/LocalStrings_fr.properties    |   1 +
 .../catalina/manager/LocalStrings_zh_CN.properties |   4 +-
 .../manager/host/LocalStrings_zh_CN.properties     |   2 +-
 .../catalina/mapper/LocalStrings_zh_CN.properties  |  12 ++
 .../catalina/mbeans/LocalStrings_zh_CN.properties  |  46 +++++++
 .../catalina/realm/LocalStrings_fr.properties      |   1 +
 .../catalina/realm/LocalStrings_zh_CN.properties   |  51 +++++++
 .../security/LocalStrings_zh_CN.properties         |   6 +
 .../servlets/LocalStrings_zh_CN.properties         |  21 +++
 .../catalina/session/LocalStrings_zh_CN.properties |  33 ++++-
 .../catalina/ssi/LocalStrings_zh_CN.properties     |  30 +++++
 .../catalina/startup/LocalStrings_zh_CN.properties |  74 ++++++++--
 .../storeconfig/LocalStrings_zh_CN.properties      |  20 +++
 .../tribes/group/LocalStrings_zh_CN.properties     |   2 +
 .../interceptors/LocalStrings_zh_CN.properties     |  53 ++++++--
 .../tribes/io/LocalStrings_zh_CN.properties        |   4 +
 .../tribes/jmx/LocalStrings_zh_CN.properties       |   3 +
 .../membership/LocalStrings_zh_CN.properties       |  14 ++
 .../membership/cloud/LocalStrings_zh_CN.properties |   5 +
 .../tribes/tipis/LocalStrings_zh_CN.properties     |  19 ++-
 .../tribes/transport/LocalStrings_zh_CN.properties |   3 +
 .../transport/nio/LocalStrings_zh_CN.properties    |  12 ++
 .../tribes/util/LocalStrings_zh_CN.properties      |   5 +
 .../catalina/users/LocalStrings_zh_CN.properties   |   3 +
 .../catalina/util/LocalStrings_zh_CN.properties    |  15 +++
 .../catalina/valves/LocalStrings_zh_CN.properties  |  47 +++++++
 .../valves/rewrite/LocalStrings_zh_CN.properties   |   4 +
 .../webresources/LocalStrings_zh_CN.properties     |  18 +++
 .../apache/coyote/LocalStrings_zh_CN.properties    |  20 +++
 .../coyote/ajp/LocalStrings_zh_CN.properties       |   6 +
 .../coyote/http11/LocalStrings_zh_CN.properties    |  11 ++
 .../http11/filters/LocalStrings_zh_CN.properties   |   2 +
 .../http11/upgrade/LocalStrings_zh_CN.properties   |  10 ++
 .../coyote/http2/LocalStrings_zh_CN.properties     |  66 +++++++++
 .../jasper/resources/LocalStrings_fr.properties    |  12 +-
 .../jasper/resources/LocalStrings_zh_CN.properties | 138 ++++++++++++++++++-
 java/org/apache/naming/LocalStrings_fr.properties  |   2 +-
 .../apache/naming/LocalStrings_zh_CN.properties    |   5 +
 .../naming/factory/LocalStrings_zh_CN.properties   |   7 +
 .../webservices}/LocalStrings_zh_CN.properties     |   2 +-
 .../dbcp/dbcp2/LocalStrings_zh_CN.properties       |   6 +
 .../tomcat/util/LocalStrings_zh_CN.properties      |  10 ++
 .../tomcat/util/buf/LocalStrings_fr.properties     |   2 +
 .../tomcat/util/buf/LocalStrings_zh_CN.properties  |  12 ++
 .../codec/binary}/LocalStrings_zh_CN.properties    |   5 +-
 .../util/descriptor/LocalStrings_zh_CN.properties  |   5 +
 .../descriptor/tld}/LocalStrings_zh_CN.properties  |   2 +-
 .../descriptor/web/LocalStrings_zh_CN.properties   |  25 ++++
 .../util/digester/LocalStrings_zh_CN.properties    |  19 +++
 .../tomcat/util/http/LocalStrings_zh_CN.properties |   7 +
 .../util/http/parser/LocalStrings_zh_CN.properties |   6 +
 .../util/modeler/LocalStrings_zh_CN.properties     |  28 ++++
 .../tomcat/util/net/LocalStrings_zh_CN.properties  |  70 ++++++++++
 .../util/net/jsse/LocalStrings_zh_CN.properties    |  10 ++
 .../util/net/openssl/LocalStrings_zh_CN.properties |  25 ++++
 .../openssl/ciphers}/LocalStrings_zh_CN.properties |   2 +-
 .../tomcat/util/scan/LocalStrings_zh_CN.properties |   2 +
 .../util/security}/LocalStrings_zh_CN.properties   |   2 +-
 .../util/threads/res/LocalStrings_zh_CN.properties |   3 +
 .../tomcat/websocket/LocalStrings_zh_CN.properties |  46 +++++++
 .../websocket/pojo/LocalStrings_zh_CN.properties   |  10 ++
 .../websocket/server/LocalStrings_zh_CN.properties |   9 ++
 webapps/docs/changelog.xml                         |   9 ++
 .../WEB-INF/classes/LocalStrings_zh_CN.properties  |   3 +
 82 files changed, 1414 insertions(+), 55 deletions(-)
 copy java/org/apache/{catalina/valves/rewrite => naming/factory/webservices}/LocalStrings_zh_CN.properties (93%)
 copy java/org/apache/{catalina/ha/authenticator => tomcat/util/codec/binary}/LocalStrings_zh_CN.properties (74%)
 copy java/org/apache/{catalina/ha/backend => tomcat/util/descriptor/tld}/LocalStrings_zh_CN.properties (91%)
 copy java/org/apache/{catalina/valves/rewrite => tomcat/util/net/openssl/ciphers}/LocalStrings_zh_CN.properties (93%)
 copy java/org/apache/{catalina/valves/rewrite => tomcat/util/security}/LocalStrings_zh_CN.properties (93%)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 03/03: Expand and update Chinese translations

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 4469b069318808c0766887497be3b5b920c46f51
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Apr 29 17:43:05 2020 +0100

    Expand and update Chinese translations
---
 java/javax/el/LocalStrings_zh_CN.properties        |   2 +
 java/javax/servlet/LocalStrings_zh_CN.properties   |   1 +
 .../servlet/http/LocalStrings_zh_CN.properties     |   2 +
 .../authenticator/LocalStrings_zh_CN.properties    |  16 +++
 .../jaspic/LocalStrings_zh_CN.properties           |   4 +
 .../connector/LocalStrings_zh_CN.properties        |  31 +++++
 .../catalina/core/LocalStrings_zh_CN.properties    | 149 +++++++++++++++++++++
 .../catalina/deploy/LocalStrings_zh_CN.properties  |   3 +
 .../catalina/filters/LocalStrings_zh_CN.properties |  19 +++
 .../ha/authenticator/LocalStrings_zh_CN.properties |   1 +
 .../ha/backend/LocalStrings_zh_CN.properties       |  17 +++
 .../ha/context/LocalStrings_zh_CN.properties       |   3 +
 .../ha/deploy/LocalStrings_zh_CN.properties        |  21 +++
 .../ha/session/LocalStrings_zh_CN.properties       |  32 ++++-
 .../catalina/ha/tcp/LocalStrings_zh_CN.properties  |  14 ++
 .../catalina/loader/LocalStrings_zh_CN.properties  |  32 +++++
 .../catalina/manager/LocalStrings_zh_CN.properties |   4 +-
 .../manager/host/LocalStrings_zh_CN.properties     |   2 +-
 .../catalina/mapper/LocalStrings_zh_CN.properties  |  12 ++
 .../catalina/mbeans/LocalStrings_zh_CN.properties  |  46 +++++++
 .../catalina/realm/LocalStrings_zh_CN.properties   |  51 +++++++
 .../security/LocalStrings_zh_CN.properties         |   6 +
 .../servlets/LocalStrings_zh_CN.properties         |  21 +++
 .../catalina/session/LocalStrings_zh_CN.properties |  33 ++++-
 .../catalina/ssi/LocalStrings_zh_CN.properties     |  30 +++++
 .../catalina/startup/LocalStrings_zh_CN.properties |  74 ++++++++--
 .../storeconfig/LocalStrings_zh_CN.properties      |  20 +++
 .../tribes/group/LocalStrings_zh_CN.properties     |   2 +
 .../interceptors/LocalStrings_zh_CN.properties     |  53 ++++++--
 .../tribes/io/LocalStrings_zh_CN.properties        |   4 +
 .../tribes/jmx/LocalStrings_zh_CN.properties       |   3 +
 .../membership/LocalStrings_zh_CN.properties       |  14 ++
 .../membership/cloud/LocalStrings_zh_CN.properties |   5 +
 .../tribes/tipis/LocalStrings_zh_CN.properties     |  19 ++-
 .../tribes/transport/LocalStrings_zh_CN.properties |   3 +
 .../transport/nio/LocalStrings_zh_CN.properties    |  12 ++
 .../tribes/util/LocalStrings_zh_CN.properties      |   5 +
 .../catalina/users/LocalStrings_zh_CN.properties   |   3 +
 .../catalina/util/LocalStrings_zh_CN.properties    |  15 +++
 .../catalina/valves/LocalStrings_zh_CN.properties  |  47 +++++++
 .../valves/rewrite/LocalStrings_zh_CN.properties   |   4 +
 .../webresources/LocalStrings_zh_CN.properties     |  18 +++
 .../apache/coyote/LocalStrings_zh_CN.properties    |  20 +++
 .../coyote/ajp/LocalStrings_zh_CN.properties       |   6 +
 .../coyote/http11/LocalStrings_zh_CN.properties    |  11 ++
 .../http11/filters/LocalStrings_zh_CN.properties   |   2 +
 .../http11/upgrade/LocalStrings_zh_CN.properties   |  10 ++
 .../coyote/http2/LocalStrings_zh_CN.properties     |  66 +++++++++
 .../jasper/resources/LocalStrings_zh_CN.properties | 138 ++++++++++++++++++-
 .../apache/naming/LocalStrings_zh_CN.properties    |   5 +
 .../naming/factory/LocalStrings_zh_CN.properties   |   7 +
 .../webservices}/LocalStrings_zh_CN.properties     |   2 +-
 .../dbcp/dbcp2/LocalStrings_zh_CN.properties       |   6 +
 .../tomcat/util/LocalStrings_zh_CN.properties      |  10 ++
 .../tomcat/util/buf/LocalStrings_zh_CN.properties  |  12 ++
 .../codec/binary}/LocalStrings_zh_CN.properties    |   5 +-
 .../util/descriptor/LocalStrings_zh_CN.properties  |   5 +
 .../descriptor/tld}/LocalStrings_zh_CN.properties  |   2 +-
 .../descriptor/web/LocalStrings_zh_CN.properties   |  25 ++++
 .../util/digester/LocalStrings_zh_CN.properties    |  19 +++
 .../tomcat/util/http/LocalStrings_zh_CN.properties |   7 +
 .../util/http/parser/LocalStrings_zh_CN.properties |   6 +
 .../util/modeler/LocalStrings_zh_CN.properties     |  28 ++++
 .../tomcat/util/net/LocalStrings_zh_CN.properties  |  70 ++++++++++
 .../util/net/jsse/LocalStrings_zh_CN.properties    |  10 ++
 .../util/net/openssl/LocalStrings_zh_CN.properties |  25 ++++
 .../openssl/ciphers}/LocalStrings_zh_CN.properties |   2 +-
 .../tomcat/util/scan/LocalStrings_zh_CN.properties |   2 +
 .../util/security}/LocalStrings_zh_CN.properties   |   2 +-
 .../util/threads/res/LocalStrings_zh_CN.properties |   3 +
 .../tomcat/websocket/LocalStrings_zh_CN.properties |  46 +++++++
 .../websocket/pojo/LocalStrings_zh_CN.properties   |  10 ++
 .../websocket/server/LocalStrings_zh_CN.properties |   9 ++
 webapps/docs/changelog.xml                         |   5 +
 .../WEB-INF/classes/LocalStrings_zh_CN.properties  |   3 +
 75 files changed, 1393 insertions(+), 39 deletions(-)

diff --git a/java/javax/el/LocalStrings_zh_CN.properties b/java/javax/el/LocalStrings_zh_CN.properties
index 7b409ee..406d6a9 100644
--- a/java/javax/el/LocalStrings_zh_CN.properties
+++ b/java/javax/el/LocalStrings_zh_CN.properties
@@ -23,12 +23,14 @@ elProcessor.defineFunctionNoMethod=无法找到类[{1}]的公共静态方法[{0}
 elProcessor.defineFunctionNullParams=一个或多个输入参数为null
 
 expressionFactory.cannotCreate=无法创建类型为[{0}]的表达式工厂
+expressionFactory.cannotFind=找不到类型为[{0}]的ExpressionFactory
 expressionFactory.readFailed=无法读取[{0}]
 
 importHandler.ambiguousImport=无法导入类[{0}],因为它与已导入的[{1}]冲突
 importHandler.ambiguousStaticImport=无法处理静态导入[{0}],因为它与已导入的[{1}]冲突
 importHandler.classNotFound=无法导入类[{0}],因为无法找到它
 importHandler.invalidClass=类[{0}]必须是公共的、非抽象的、非接口且(对于Java 9+)在一个导出包
+importHandler.invalidClassName=要导入的类的名称[{0}]必须包含一个包。
 importHandler.invalidClassNameForStatic=为 static import [{1}] 指定的类 [{0}] 不可用
 importHandler.invalidStaticName=导入 [{0}] 的静态方法或字段名称必须包含类
 importHandler.staticNotFound=导入[{2}]的类[{1}]中找不到静态导入[{0}]
diff --git a/java/javax/servlet/LocalStrings_zh_CN.properties b/java/javax/servlet/LocalStrings_zh_CN.properties
index f1ca507..6f983a9 100644
--- a/java/javax/servlet/LocalStrings_zh_CN.properties
+++ b/java/javax/servlet/LocalStrings_zh_CN.properties
@@ -19,6 +19,7 @@ httpConstraintElement.invalidRolesDeny=使用 DENY 时可能未指定角色
 
 httpMethodConstraintElement.invalidMethod=无效的HTTP.方法
 
+value.false=否
 value.true=true
 
 wrapper.nullRequest=请求不能为空
diff --git a/java/javax/servlet/http/LocalStrings_zh_CN.properties b/java/javax/servlet/http/LocalStrings_zh_CN.properties
index 4e8f6b2..d74232e 100644
--- a/java/javax/servlet/http/LocalStrings_zh_CN.properties
+++ b/java/javax/servlet/http/LocalStrings_zh_CN.properties
@@ -14,6 +14,8 @@
 # limitations under the License.
 
 err.cookie_name_blank=Cookie名称不能为null或零长度
+err.cookie_name_is_token=Cookie name[{0}]是一个保留令牌
+err.io.indexOutOfBounds=为大小为[{2}]的数组指定的偏移量[{0}]和/或长度[{1}]无效。
 err.io.nullArray=Null在write方法中传递给字节数组
 err.io.short_read=短.读
 
diff --git a/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties b/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
index 5545b03..68b8427 100644
--- a/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
@@ -15,6 +15,8 @@
 
 authenticator.certificates=此请求中没有客户端证书链
 authenticator.changeSessionId=在身份验证时, 会话 ID 从 [{0} 更改为 [{1}]
+authenticator.check.authorize=用户名[{0}]从连接器获得,并被信任为有效。从Tomcat领域获取此用户的角色。
+authenticator.check.authorizeFail=领域无法识别用户[{0}]。创建具有该名称且没有角色的主体。
 authenticator.check.found=已通过身份验证 [{0}]
 authenticator.check.sso=未经过身份验证但找到了SSO会话ID [{0}]。尝试重新验证。
 authenticator.formlogin=对表单登录页的直接引用无效
@@ -34,23 +36,37 @@ basicAuthenticator.invalidCharset=只允许值为null、空字符串或UTF-8
 
 digestAuthenticator.cacheRemove=已从客户端 nonce 缓存中删除有效条目,以便为新条目腾出空间。重播攻击现在是可能的。为防止重播攻击的可能性,请降低nonceValidity或增加nonceCacheSize。此类型的进一步警告将被抑制5分钟。
 
+formAuthenticator.forwardErrorFail=转发到错误页时出现意外错误。
+formAuthenticator.forwardLogin=使用请求方法GET将使用方法[{1}]发出的对[{0}]的请求转发到上下文[{3}]的登录页[{2}]
+formAuthenticator.forwardLoginFail=转发到登录页时出现意外错误。
 formAuthenticator.noErrorPage=没有为上下文[{0}]中的表单身份验证定义错误页
 formAuthenticator.noLoginPage=在环境[{0}]中,未为FORM认证定义登录页面
 
 singleSignOn.debug.associate=SSO将应用程序会话[{1}]与SSO会话[{0}]关联
+singleSignOn.debug.associateFail=SSO无法关联应用程序会话{0},因为SSO会话{1}不存在。
 singleSignOn.debug.cookieCheck=SSO检查SSO cookie
 singleSignOn.debug.cookieNotFound=SSO没有找到SSO cookie
+singleSignOn.debug.deregister=与SSO会话[{1}]关联的SSO过期应用程序会话[{0}]
 singleSignOn.debug.deregisterFail=SSO撤销登记SSO会话[{0}]失败,因为缓存中不包含这个SSO会话
+singleSignOn.debug.deregisterNone=SSO注销了SSO会话[{0}],但未找到关联的应用程序会话
 singleSignOn.debug.hasPrincipal=找到以前经过身份验证的主体[{0}]
 singleSignOn.debug.invoke=SSO为[{0}]处理请求
 singleSignOn.debug.principalCheck=SSO为SSO会话[{0}]寻找缓存的Principal
 singleSignOn.debug.principalFound=SSO 找到了带着认证类型的缓存代理
 singleSignOn.debug.principalNotFound=SSO未找到缓存的Principal,为会话[{0}]擦除SSO cookie
+singleSignOn.debug.register=使用身份验证类型[{2}]的用户[{1}]的SSO注册SSO会话[{0}]。
 singleSignOn.debug.removeSession=SSO 从 SSO session [{1}] 中删除应用程序会话 [{0}]
+singleSignOn.debug.sessionLogout=SSO正在处理SSO会话[{0}]和应用程序会话[{1}]的注销
+singleSignOn.debug.sessionTimeout=SSO正在处理SSO会话[{0}]和应用程序会话[{1}]的超时
 singleSignOn.debug.update=SSO 更新SSO 会话[{0}] 对认证 类型[{1}]
 singleSignOn.sessionExpire.contextNotFound=SSO无法中止[{0}],因为Context未找到
+singleSignOn.sessionExpire.engineNull=SSO无法使会话[{0}]过期,因为引擎为空。
 singleSignOn.sessionExpire.hostNotFound=因为 Host 丢失,SSO 无法使 session [{0}] 失效
 singleSignOn.sessionExpire.managerError=由于会话管理器在检索会话时抛出异常,导致单点登录无法使会话[{0}]失效
 singleSignOn.sessionExpire.managerNotFound=SSO无法使会话[{0}]过期,因为找不到管理器
+singleSignOn.sessionExpire.sessionNotFound=SSO无法使会话[{0}]过期,因为找不到该会话
 
 spnegoAuthenticator.authHeaderNoToken=客户端发送的协商授权 header 未包含 token
+spnegoAuthenticator.authHeaderNotNego=客户端发送的授权头不是以协商开始的。
+spnegoAuthenticator.serviceLoginFail=无法作为服务主体登录
+spnegoAuthenticator.ticketValidateFail=无法验证客户端提供的票证
diff --git a/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties b/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties
index 04485b4..aed0961 100644
--- a/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties
@@ -14,9 +14,13 @@
 # limitations under the License.
 
 authConfigFactoryImpl.load=从[{0}]加载持久化提供者注册信息
+authConfigFactoryImpl.registerClass=正在为层[{1}]和应用程序上下文[{2}]注册类[{0}]
+authConfigFactoryImpl.registerInstance=正在为层[{1}]和应用程序上下文[{2}]注册类型为[{0}]的实例
 authConfigFactoryImpl.zeroLengthAppContext=:)应用上下文名称的长度为0是无效的
 authConfigFactoryImpl.zeroLengthMessageLayer=零长度的消息层名称是无效的
 
+callbackHandlerImpl.jaspicCallbackMissing=接收到不支持的类型为{0}的JASPIC回调,该回调被忽略
+
 jaspicAuthenticator.authenticate=通过JASPIC验证[{0}]的请求
 
 persistentProviderRegistrations.deleteFail=无法删除临时文件[{0}]
diff --git a/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
index c024ad6..405d80f 100644
--- a/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
@@ -13,49 +13,80 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+coyoteAdapter.accesslogFail=尝试向访问日志添加条目时发生异常。
+coyoteAdapter.asyncDispatch=处理异步请求时发生异常
+coyoteAdapter.authenticate=连接器提供的经过身份验证的用户[{0}]。
 coyoteAdapter.authorize=(:使用Tomcat的领域授权用户[{0}]
+coyoteAdapter.checkRecycled.request=遇到未回收的请求并强制回收。
 coyoteAdapter.checkRecycled.response=遇到非回收的相应并强行回收。
 coyoteAdapter.debug=变量[{0}]的值为[{1}]。
+coyoteAdapter.nullRequest=异步分派只能在现有请求上发生
 
 coyoteConnector.invalidEncoding=编码 [{0}] 不能被 JRE 识别,Connector 将继续使用 [{1}]
 coyoteConnector.invalidPort=连接器不能启动,因为指定的端口 [{0}]无效
+coyoteConnector.notAsciiSuperset=编码[{0}]不是RFC 7230要求的ASCII超集。连接器将继续使用[{1}]
 coyoteConnector.parseBodyMethodNoTrace=方法TRACE禁止包含实体(详情查看RFC 2616 章节 9.6)
+coyoteConnector.protocolHandlerDestroyFailed=协议处理程序销毁失败
+coyoteConnector.protocolHandlerInitializationFailed=协议处理程序初始化失败
 coyoteConnector.protocolHandlerInstantiationFailed=协议处理程序实例化失败
 coyoteConnector.protocolHandlerNoAprLibrary=配置的协议[{0}]需要不可用的APR/本机库
 coyoteConnector.protocolHandlerNoAprListener=配置的协议[{0}]需要不可用的aprlifecycleListener
 coyoteConnector.protocolHandlerPauseFailed=协议处理程序暂停失败
+coyoteConnector.protocolHandlerResumeFailed=协议处理程序恢复失败
 coyoteConnector.protocolHandlerStartFailed=协议处理器启动失败
 coyoteConnector.protocolHandlerStopFailed=协议处理程序.停止失败
 
 coyoteInputStream.nbNotready=在非阻塞模式下,只有之前的读数据完成,并且isReady()方法返回true,你才可以使用 ServletInputStream 读取数据
 
+coyoteOutputStream.nbNotready=在非阻塞模式下,在上一次写入完成且isReady()返回true之前,您不能写入ServletOutputStream
+
+coyoteRequest.alreadyAuthenticated=此请求已通过身份验证
 coyoteRequest.attributeEvent=属性事件侦听器引发的异常
 coyoteRequest.authenticate.ise=):提交响应后无法调用authenticate()
 coyoteRequest.changeSessionId=无法更改 session ID。 没有与此请求关联的 session。
 coyoteRequest.chunkedPostTooLarge=由于请求参数数据太大,导致参数不能解析。因为当前请求是块状请求,后续也不会处理。如果应用程序需要接收大的POST请求,可以使用连接器的maxPostSize解决它。
 coyoteRequest.filterAsyncSupportUnknown=无法确定是否有任何过滤器不支持异步处理
+coyoteRequest.getContextPath.ise=找不到规范上下文路径[{0}]与用户代理[{1}]提供的URI之间的匹配项。
+coyoteRequest.getInputStream.ise=已为此请求调用getReader()
 coyoteRequest.getReader.ise=当前请求已经调用过方法getInputStream()
 coyoteRequest.gssLifetimeFail=为用户主体 [{0}] 获取剩余生命期失败
 coyoteRequest.maxPostSizeExceeded=):大多部分请求包含的参数数据(不包括上载的文件)超过了关联连接器上设置的maxPostSize 的限制
+coyoteRequest.noAsync=无法启动async,因为处理链中的下列类不支持async[{0}]
 coyoteRequest.noMultipartConfig=由于没有提供multi-part配置,无法处理parts
+coyoteRequest.parseParameters=处理发布的参数时引发异常
+coyoteRequest.postTooLarge=未分析参数,因为发布的数据太大。如果应用程序应接受大型post,请使用连接器的maxPostSize属性来解决此问题。
 coyoteRequest.sendfileNotCanonical=无法确定指定用于sendfile的文件[{0}]的规范名称
 coyoteRequest.sessionCreateCommitted=提交响应后无法创建会话
 coyoteRequest.sessionEndAccessFail=在回收请求时,异常触发了对会话的结束访问。
 coyoteRequest.setAttribute.namenull=不能在一个空的名字上调用setAttribute
+coyoteRequest.trailersNotReady=在isTrailerFieldsReady()返回true之前调用getTrailerFields()是非法的
+coyoteRequest.uploadCreate=根据servlet[{1}]的要求创建临时上载位置[{0}]
+coyoteRequest.uploadCreateFail=无法创建上载位置[{0}]
 coyoteRequest.uploadLocationInvalid=临时上传路径[{0}]无效
 
 coyoteResponse.encoding.invalid=JRE无法识别编码[{0}]
+coyoteResponse.getOutputStream.ise=已为此响应调用getWriter()
 coyoteResponse.getWriter.ise=当前响应已经调用了方法getOutputStream()
 coyoteResponse.reset.ise=已经提交响应后无法调用reset()
+coyoteResponse.resetBuffer.ise=提交响应后无法重置缓冲区
 coyoteResponse.sendError.ise=响应提交后无法调用sendError()
+coyoteResponse.sendRedirect.ise=提交响应后无法调用sendRedirect()。
 coyoteResponse.sendRedirect.note=<html><body><p>重定向到<a href="{0}">{0}</a></p></body></html>
+coyoteResponse.setBufferSize.ise=写入数据后无法更改缓冲区大小
 
 inputBuffer.requiresNonBlocking=非阻塞模式下不可用
+inputBuffer.streamClosed=关闭的流。
+
+outputBuffer.writeNull=要写入的字符串参数(String,int,int)不能为空
 
 request.asyncNotSupported=当前链的筛选器或servlet不支持异步操作。
+request.fragmentInDispatchPath=调度路径[{0}]中的片段已被删除
+request.illegalWrap=请求包装器必须包装从getRequest()获得的请求
+request.notAsync=如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyncStarted()返回false)
 
 requestFacade.nullRequest=请求对象已被回收,不再与此facade关联
 
+response.illegalWrap=响应包装器必须包装从getResponse()获得的响应
 response.sendRedirectFail=重定向到[{0}]失败
 
 responseFacade.nullResponse=响应对象已被回收,不再与此外观关联
diff --git a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
index 4f5f86e..5a4bbf8 100644
--- a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
@@ -13,83 +13,170 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+applicationContext.addFilter.ise=无法将筛选器添加到上下文[{0}],因为该上下文已初始化
 applicationContext.addJspFile.iae=JSP 文件 [{0}] 不可用
 applicationContext.addListener.iae.cnfe=无法创建类型为 [{0}] 的实例
+applicationContext.addListener.iae.init=无法将类型为[{0}]的实例添加为侦听器
+applicationContext.addListener.iae.sclNotAllowed=一旦调用了第一个ServletContextListener,就不能再添加ServletContextListener。
 applicationContext.addListener.iae.wrongType=指定的类型[{0}]不是预期的侦听器类型之一
+applicationContext.addListener.ise=无法将侦听器添加到上下文[{0}]中,因为该上下文已初始化
 applicationContext.addRole.ise=上下文被初始化后,角色不能再被添加到[{0}]中
 applicationContext.addServlet.ise=无法将servlet添加到上下文[{0}]中,因为该上下文已初始化
 applicationContext.attributeEvent=属性事件监听器引发的异常
+applicationContext.illegalDispatchPath=应用程序试图获取具有非法路径[{0}]的请求分派器,但该路径被拒绝,因为它包含一个编码的目录遍历尝试
 applicationContext.invalidFilterName=由于筛选器名称[{0}]无效,无法添加筛选器定义。
 applicationContext.invalidServletName=由于servlet名称[{0}]无效,无法添加对应servlet的定义。
+applicationContext.lookup.error=在上下文[{1}]中找不到资源[{0}]
 applicationContext.mapping.error=映射中.的错误
+applicationContext.requestDispatcher.iae=路径[{0}]不以“/”字符开头
 applicationContext.resourcePaths.iae=路径[{0}]不以“/”字符开头
+applicationContext.role.iae=要为上下文[{0}]声明的单个角色不能为空,也不能为空字符串
+applicationContext.roles.iae=要为上下文[{0}]声明的角色数组不能为空
 applicationContext.setAttribute.namenull=Name 不能为 null
+applicationContext.setInitParam.ise=初始化上下文后无法设置初始化参数
+applicationContext.setRequestEncoding.ise=无法为上下文[{0}]设置请求编码,因为该上下文已初始化
+applicationContext.setResponseEncoding.ise=无法为上下文[{0}]设置响应编码,因为该上下文已初始化
 applicationContext.setSessionTimeout.ise=(:无法为上下文[{0}]设置会话超时,因为该上下文已初始化
+applicationContext.setSessionTracking.iae.invalid=该上下文不支持为上下文[{1}]请求的会话跟踪模式[{0}]
 applicationContext.setSessionTracking.iae.ssl=为上下文 [{0}] 请求的 session 跟踪模式包括 SSL 和至少一种其他模式。 SSL可能未配置其他模式。
 applicationContext.setSessionTracking.ise=当上下文正在运行,无法设置上下文[{0}]的会话跟踪模式
 
+applicationDispatcher.allocateException=为servlet[{0}]分配异常
+applicationDispatcher.deallocateException=servlet[{0}]的解除分配异常
+applicationDispatcher.forward.ise=提交响应后无法转发
+applicationDispatcher.isUnavailable=Servlet[{0}]当前不可用
 applicationDispatcher.serviceException=Servlet[{0}]的Servlet.service()抛出异常
+applicationDispatcher.specViolation.request=原始ServletRequest或包装的原始ServletRequest未传递给RequestDispatcher,这违反了SRV.8.2和SRV.14.2.5.1
 applicationDispatcher.specViolation.response=原始的ServletResponse或包装后的ServletResponse未传递给RequestDispatcher,原因:违反了SRV.8.2和SRV.14.2.5.1\n\
 \n
 
+applicationFilterConfig.jmxRegisterFail=类型为[{0}]且名称为[{1}]的筛选器的JMX注册失败
+applicationFilterConfig.jmxUnregister=已完成对类型为[{0}]且名称为[{1}]的筛选器的JMX取消注册。
+applicationFilterConfig.jmxUnregisterFail=类型为[{0}]且名称为[{1}]的筛选器的JMX取消注册失败
 applicationFilterConfig.preDestroy=):为类型为[{1}]的名为[{0}]的筛选器调用preDestroy 失败
 applicationFilterConfig.release=失败的销毁过滤器类型为[{1}]名称为[{0}]
 
+applicationFilterRegistration.nullInitParam=由于名称和/或值为空,无法为筛选器设置初始化参数。名称[{0}],值[{1}]
 applicationFilterRegistration.nullInitParams=由于name和(或)value为null,无法为过滤器设置初始化参数。name为 [{0}],value为 [{1}]
 
+applicationHttpRequest.fragmentInDispatchPath=调度路径[{0}]中的片段已被删除
+
+applicationPushBuilder.methodInvalid=推送请求的HTTP方法必须既可缓存又安全,但是[{0}]不是
 applicationPushBuilder.methodNotToken=HTTP方法必须是令牌(token),但 [{0}] 包含非令牌字符
 
 applicationServletRegistration.setServletSecurity.iae=为部署到名为[{1}]的上下文的Servlet[{0}]指定的空约束
+applicationServletRegistration.setServletSecurity.ise=无法将安全性约束添加到已部署到名称为[{1}]的上下文的servlet [{0}]中,因为上下文已被初始化
+
+applicationSessionCookieConfig.ise=无法将属性{0}添加到上下文{1}的sessioncokieconfig中,因为该上下文已初始化
 
+aprListener.aprDestroy=无法关闭基于APR的Apache Tomcat本机库
+aprListener.aprInit=在java.library.path:[{0}]上找不到基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能
+aprListener.aprInitDebug=在java.library.path[{1}]上使用名称[{0}]找不到基于APR的ApacheTomcat本机库。报告的错误是[{2}]
 aprListener.aprInitError=基于APR的本地库加载失败.错误报告为[{0}]
 aprListener.config=APR/OpenSSL配置:useAprConnector[{0}],useOpenSSL[{1}]
+aprListener.currentFIPSMode=当前FIPS模式:[{0}]。
 aprListener.enterAlreadyInFIPSMode=AprLifecycleListener 配置为强制进入FIPS模式,但库已处于FIPS模式[{0}]
+aprListener.flags=APR功能:IPv6[{0}]、sendfile[{1}]、accept filters[{2}]、random[{3}]。
 aprListener.initializeFIPSFailed=进入FIPS模式失败
 aprListener.initializeFIPSSuccess=成功的进入FIPS 模式
+aprListener.initializedOpenSSL=OpenSSL成功初始化 [{0}]
 aprListener.initializingFIPS=初始化FIPS模式...
+aprListener.requireNotInFIPSMode=AprLifecycleListener配置为要求库已处于FIPS模式,但它未处于FIPS模式
 aprListener.skipFIPSInitialization=已经处于FIPS模式,跳过FIPS初始化
+aprListener.sslInit=无法初始化SSLEngine
 aprListener.tcnInvalid=安装了不兼容的APR(基于Apache Tomcat原生库)版本[{0}],而Tomcat要求版本[{1}]
+aprListener.tcnValid=使用APR版本[{1}]加载了基于APR的Apache Tomcat本机库[{0}]。
 aprListener.tcnVersion=安装了基于APR的Apache Tomcat Native库的旧版本[{0}],而Tomcat建议使用[{1}]的最低版本
 aprListener.tooLateForFIPSMode=无法设置FIPSMode:SSL已初始化
+aprListener.tooLateForSSLEngine=无法设置引擎:SSL已初始化
 aprListener.tooLateForSSLRandomSeed=无法设置 SSLRandomSeed:SSL已经初始化
+aprListener.wrongFIPSMode=AprLifecycleListener的FIPSMode选项的意外值:[{0}]
 
+asyncContextImpl.asyncDispachError=异步调度时出错
+asyncContextImpl.asyncRunnableError=通过AsyncContext.start()处理异步运行时出错
+asyncContextImpl.dispatchingStarted=异步调度操作已经被调用。不允许在同一异步周期内进行其他异步调度操作。
+asyncContextImpl.fireOnComplete=为任何异步侦听器触发onComplete()事件
+asyncContextImpl.fireOnError=为任何异步侦听器触发onError()事件
+asyncContextImpl.fireOnStartAsync=为任何异步侦听器启动onStartAsync()事件
+asyncContextImpl.fireOnTimeout=为任何异步侦听器触发onTimeout()事件
 asyncContextImpl.noAsyncDispatcher=从ServletContext 返回的调度程序不支持异步调度
+asyncContextImpl.onCompleteError=对类型为[{0}]的侦听器的onComplete()调用失败
+asyncContextImpl.onErrorError=对类型为[{0}]的侦听器的onError()调用失败
+asyncContextImpl.onStartAsyncError=对类型为[{0}]的侦听器的onStartAsync()调用失败
+asyncContextImpl.onTimeoutError=对类型为[{0}]的侦听器的onTimeout()调用失败
 asyncContextImpl.request.ise=调用方法complete()后或者任意一个dispatch()方法调用后,调用getRequest()方法是非法的
 asyncContextImpl.requestEnded=AsyncContext关联的请求已经完成处理。
 asyncContextImpl.response.ise=调用complete()或者任何的dispatch()方法后,调用getResponse()方法是非法的。
 
 containerBase.backgroundProcess.cluster=异常处理集群[{0}]后台进程
 containerBase.backgroundProcess.error=处理后台线程异常
+containerBase.backgroundProcess.realm=异常处理领域[{0}]后台进程
 containerBase.backgroundProcess.valve=处理阀门[{0}]后台进程异常
+containerBase.child.destroy=销毁子级时出错
+containerBase.child.notUnique=子名称[{0}]不唯一
+containerBase.child.start=启动子级时出错
+containerBase.child.stop=停止子级时出错
+containerBase.cluster.start=启动新群集时出错
+containerBase.cluster.stop=停止旧群集时出错
 containerBase.nullName=容器名称不能为null
+containerBase.realm.start=启动新领域时出错
+containerBase.realm.stop=停止旧域时出错
 containerBase.threadedStartFailed=子容器启动失败
+containerBase.threadedStopFailed=停止期间子容器失败
 
 defaultInstanceManager.invalidInjection=方法资源注入注解无效
+defaultInstanceManager.postConstructNotFound=类[{1}]的后构造方法[{0}]已在部署描述符中声明,但找不到
+defaultInstanceManager.preDestroyNotFound=类[{1}]的预销毁方法[{0}]已在部署描述符中声明,但找不到
+defaultInstanceManager.restrictedClass=禁止访问类[{0}]。这是一个限制类。必须将web应用程序配置为具有特权才能加载它
 defaultInstanceManager.restrictedContainerServlet=禁止访问类 [{0}]。 它是一个受限制的类(实现了 ContainerServlet 接口)。 必须将 Web 应用程序配置为特权才能加载它
 defaultInstanceManager.restrictedFiltersResource=找不到受限制的过滤器属性文件[{0}]
 defaultInstanceManager.restrictedListenersResource=无法找到RestrictedListener的配置文件[{0}]
+defaultInstanceManager.restrictedServletsResource=找不到受限制的servlets属性文件[{0}]
+defaultInstanceManager.restrictedWrongValue=类名为{1}的受限类属性文件{0}中的值错误。期望值:[restricted],实际值:[{2}]
 
 filterChain.filter=Filter 执行抛出一个异常
 filterChain.servlet=Servlet执行抛出一个异常
 
+jniLifecycleListener.bothPathAndName=可以设置libraryName或libraryPath,但不能同时设置两者
+jniLifecycleListener.load.name=已加载本机库[{0}]
+jniLifecycleListener.load.path=已从[{0}]加载本机库
+jniLifecycleListener.missingPathOrName=必须设置libraryName或libraryPath之一
+
 jreLeakListener.classToInitializeFail=在tomcat启动期间未能加载类[{0}],以防止可能的内存泄漏。
 jreLeakListener.gcDaemonFail=Tomcat开始预防潜在的内存溢出期间,触发GC守护线程失败,在非Sun JVMs上这是正常的。
+jreLeakListener.jarUrlConnCacheFail=默认情况下无法禁用Jar URL连接缓存。
+jreLeakListener.ldapPoolManagerFail=在Tomcat启动期间未能触发com.sun.jndi.ldap.LdapPoolManager类的创建以防止可能的内存泄漏。这在非Sun jvm上是预期的。
+jreLeakListener.xmlParseFail=尝试在XML解析期间防止内存泄漏时出错。
 
 naming.addEnvEntry=添加环境条目 [{0}]
 naming.addResourceEnvRef=添加资源环境引用 [{0}]
+naming.bindFailed=无法绑定对象:[{0}]
 naming.invalidEnvEntryType=环境条目[{0}]没有一个有效哦的类型
+naming.invalidEnvEntryValue=环境项[{0}]的值无效。
 naming.jmxRegistrationFailed=注册到JMX失败:[{0}]
 naming.namingContextCreationFailed=创建上下文名称失败
 naming.unbindFailed=解绑对象[{0}]失败
 naming.wsdlFailed=未找到 wsdl 文件:[{0}]
 
+noPluggabilityServletContext.notAllowed=Servlet 3.0规范的第4.4节不允许从未在web.xml,web-fragment.xml文件中定义或未用@WebListener注释的ServletContextListener调用此方法。
+
+pushBuilder.noPath=在设置路径之前调用push()是非法的
+
 standardContext.applicationListener=配置应用程序监听器[{0}]错误
 standardContext.applicationSkipped=由于以前的错误,已跳过安装应用程序侦听器
+standardContext.backgroundProcess.instanceManager=异常处理实例管理器[{0}]后台进程
 standardContext.backgroundProcess.loader=异常处理加载程序[{0}]后台进程
+standardContext.backgroundProcess.manager=异常处理管理器[{0}]后台进程。
 standardContext.backgroundProcess.resources=异常处理资源[{0}] 后台进程
+standardContext.cluster.managerError=创建新群集会话管理器时出错
 standardContext.cluster.noManager=未发现管理器。检查是否需要集群管理器。集群配置:[{0}],应用程序分配:[{1}]
+standardContext.configurationFail=一个或多个组件将上下文标记为未正确配置
 standardContext.cookieProcessor.null=不允许将上下文的CookieProcessor 设置为null
+standardContext.createWrapper.containerListenerError=为包装创建容器侦听器时出错
+standardContext.createWrapper.error=创建新包装时出错
+standardContext.createWrapper.listenerError=为包装创建生命周期侦听器时出错
 standardContext.duplicateListener=当前上下文已经配置了监听器[{0}],重复的定义将被忽略。
+standardContext.errorPage.error=错误页面位置[{0}]必须以“ /”开头
 standardContext.errorPage.required=ErrorPage不能为null
 standardContext.errorPage.warning=警告:在Servlet 2.4中,错误页位置 [{0}] 必须以"/"开头
 standardContext.extensionValidationError=尝试校验必需的应用程序扩展时发生错误
@@ -103,28 +190,49 @@ standardContext.isUnavailable=此应用程序目前不可用
 standardContext.listenerFail=一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
 standardContext.listenerStart=异常将上下文初始化事件发送到类的侦听器实例.[{0}]
 standardContext.listenerStop=例外情况发送上下文删除事件[{0}],以便列表实例
+standardContext.loadOnStartup.loadException=web应用程序[{0}]中的Servlet[{1}]引发了load()异常
 standardContext.loginConfig.errorPage=表单错误页[{0}]必须以"/"开始
 standardContext.loginConfig.errorWarning=警告:Servlet 2.4中,表单错误页[{0}]必须以"/"开始
 standardContext.loginConfig.loginPage=表单登录页面 [{0}] 必须以''/''开头
 standardContext.loginConfig.loginWarning=警告:在Servlet 2.4 中 Form 登录页[{0}] 必须以 "/" 开头
+standardContext.loginConfig.required=LoginConfig不能为空
 standardContext.manager=配置类为[{0}]的管理器
 standardContext.managerFail=会话管理器无法启动
+standardContext.namingResource.destroy.fail=无法销毁旧的命名资源
 standardContext.namingResource.init.fail=未能初始化新的命名资源
 standardContext.notStarted=名称为[{0}]的上下文还没有启动
+standardContext.notWrapper=上下文的子级必须是包装器
 standardContext.parameter.duplicate=重复的上下文初始化参数[{0}]
+standardContext.parameter.required=参数名和参数值都是必需的
+standardContext.pathInvalid=上下文路径必须是空字符串或以''/''开头,而不能以''/''结尾。路径[{0}]不符合这些条件,已更改为[{1}]
+standardContext.postconstruct.duplicate=类[{0}]的构造后方法定义重复
+standardContext.postconstruct.required=完全限定的类名和方法名都是必需的
 standardContext.predestroy.duplicate=类 [{0}] 的 @PreDestroy 方法定义重复
+standardContext.predestroy.required=完全合格的类名和方法名都是必需的
+standardContext.reloadingCompleted=已完成重新加载名为{0}的上下文
+standardContext.reloadingStarted=已开始重新加载名为[{0}]的上下文
+standardContext.requestListener.requestInit=向类[{0}]的侦听器实例发送请求初始化的生命周期事件的异常
 standardContext.resourcesInit=初始化静态变量错误
 standardContext.resourcesStart=启动静态资源出错
 standardContext.resourcesStop=停止静态资源时出错
+standardContext.sciFail=ServletContainerInitializer处理期间出错
 standardContext.securityConstraint.mixHttpMethod=在相同的web资源集合中不允许混用: <http-method> 和 <http-method-omission>
 standardContext.securityConstraint.pattern=安全约束中的<url-pattern> [{0}] 无效
 standardContext.servletFail=启动时无法加载一个或多个Servlet。 全部的详细信息可在相应的容器日志文件中找到
+standardContext.servletMap.name=Servlet映射指定未知的Servlet名称[{0}]
+standardContext.servletMap.pattern=servlet映射中的<url pattern>[{0}]无效
+standardContext.setLoader.start=启动新加载程序时出错
+standardContext.setLoader.stop=停止旧加载程序时出错
+standardContext.setManager.start=启动新管理器时出错
+standardContext.setManager.stop=停止旧管理器时出错
 standardContext.startFailed=由于之前的错误,Context[{0}]启动失败
 standardContext.startingContext=启动Context[{0}]出现异常
 standardContext.stop.asyncWaitInterrupted=等待卸载延迟毫秒以完成飞行中的异步请求时收到中断。上下文停止将继续,不会有进一步的延迟。
 standardContext.stoppingContext=异常停止的上下文使用名为[{0}]
+standardContext.suspiciousUrl=可疑的URL模式:[{0}]在上下文[{1}]中,请参阅Servlet规范的第12.1节和第12.2节
 standardContext.threadBindingListenerError=上下文[{0}]配置的线程绑定监听器发生错误
 standardContext.urlPattern.patternWarning=警告:在Servlet 2.4中,URL模式[{0}]必须以“/”开头
+standardContext.webappClassLoader.missingProperty=无法将web应用程序类加载器属性[{0}]设置为[{1}],因为该属性不存在。
 standardContext.workCreateException=无法从目录[{0}]和catalina_home[{1}]中为上下文[{2}]确定绝对工作目录
 standardContext.workCreateFail=无法为上下文[{1}]创建工作目录[{0}]
 standardContext.workPath=获取上下文[{0}]的工作路径时发生异常
@@ -136,26 +244,67 @@ standardEngine.notHost=Engine的子节点必须是一个Host
 standardEngine.notParent=引擎不能有父容器
 standardEngine.start=正在启动 Servlet 引擎:[{0}]
 
+standardHost.clientAbort=远程客户端中止请求,IOException:[{0}]。
+standardHost.invalidErrorReportValveClass=无法加载指定的错误报告阀类:[{0}]
 standardHost.noContext=没有配置上下文来处理此请求
 standardHost.notContext=主机的子节点必须有上下文
 standardHost.nullName=主机名是必需的
+standardHost.problematicAppBase=在主机[{0}]上为appBase使用空字符串会将其设置为CATALINA_BASE,这是一个坏主意
+
+standardHostValue.customStatusFailed=无法正确调度自定义错误页[{0}]
 
+standardPipeline.basic.start=启动新基本阀时出错
+standardPipeline.basic.stop=停止旧基本阀时出错
+standardPipeline.valve.destroy=破坏阀门错误
+standardPipeline.valve.start=错误启动阀
+standardPipeline.valve.stop=错误截止阀
+
+standardServer.accept.error=尝试在侦听shutdown命令的套接字上接受IO异常
+standardServer.accept.readError=尝试读取关机命令时发生IO异常
+standardServer.accept.security=试图在侦听shutdown命令的套接字上接受时发生安全错误
 standardServer.accept.timeout=在调用accept()方法之后,侦听shutdown命令的套接字经历了意外的超时[{0}]毫秒。 这是bug 56684的一个例子?
+standardServer.awaitSocket.fail=无法在地址[{0}]和端口[{1}]上创建服务器关闭套接字(基本端口[{2}]和偏移量[{3}])
+standardServer.invalidShutdownCommand=收到无效的关闭命令[{0}]
+standardServer.periodicEventError=发送周期性事件时出错
+standardServer.portOffset.invalid=portOffset [{0}] 值是无效的,因为portOffset不能是负数
+standardServer.shutdownViaPort=通过关闭端口接收到有效的关闭命令。正在停止服务器实例。
+standardServer.storeConfig.contextError=存储上下文[{0}]配置时出错
+standardServer.storeConfig.error=存储服务器配置时出错
 standardServer.storeConfig.notAvailable=没有将StoreConfig实现注册为名为[{0}]的MBean,因此无法保存配置。合适的MBean通常通过StoreConfigLifecycleListener注册。
 
 standardService.engine.startFailed=启动关联的Engine失败
 standardService.engine.stopFailed=失败停止关联的引擎
+standardService.executor.start=启动新执行器时出错
+standardService.executor.stop=停止旧执行器时出错
+standardService.mapperListener.startFailed=无法启动关联的MapperListener
+standardService.mapperListener.stopFailed=无法停止关联的MapperListener
+standardService.start.name=正在启动服务[{0}]
 standardService.stop.name=正在停止服务[{0}]
 
+standardThreadExecutor.notStarted=执行器尚未启动
+standardThreadExecutor.queueFull=执行者的工作队列已满
+
 standardWrapper.allocate=分配一个servlet实例错误
+standardWrapper.allocateException=分配异常的servlet [{0}]
+standardWrapper.deallocateException=servlet[{0}]的解除分配异常
+standardWrapper.destroyException=Servlet[{0}]的Servlet.destroy()引发异常
 standardWrapper.destroyInstance=servlet[{0}]实例管理销毁(destroy) 抛出异常
+standardWrapper.initException=Servlet[{0}]的Servlet.init()引发异常
 standardWrapper.instantiate=实例化Servlet类[{0}]异常
 standardWrapper.isUnavailable=Servlet [{0}]当前不可用。
+standardWrapper.jspMonitorError=注册JSP监视器Mbean[{0}]时出错
 standardWrapper.notChild=Wrapper容器内部不允许有子容器。
 standardWrapper.notClass=未为servlet[{0}]指定servlet类
+standardWrapper.notContext=包装的父容器必须是上下文
 standardWrapper.notFound=Servlet [{0}] 不可用
+standardWrapper.notServlet=类{0}不是Servlet
 standardWrapper.releaseFilters=发布过滤器异常,servlet:[{0}]
 standardWrapper.serviceException=在路径为[{1}]的上下文中,servlet[{0}]的Servlet.service()引发异常
+standardWrapper.serviceExceptionRoot=在路径为{1}的上下文中,Servlet[{0}]的Servlet.service()引发了具有根本原因的异常{2}
+standardWrapper.unavailable=将servlet[{0}]标记为不可用
+standardWrapper.unloadException=Servlet[{0}]引发unload()异常
 standardWrapper.unloading=无法分配servlet [{0}],因为它没有被加载
+standardWrapper.waiting=正在等待为Servlet[{1}]释放[{0}]实例
 
 threadLocalLeakPreventionListener.containerEvent.error=异常处理容器事件[{0}]
+threadLocalLeakPreventionListener.lifecycleEvent.error=处理生命周期事件[{0}]时发生异常
diff --git a/java/org/apache/catalina/deploy/LocalStrings_zh_CN.properties b/java/org/apache/catalina/deploy/LocalStrings_zh_CN.properties
index 6d7f3a8..02e82bf 100644
--- a/java/org/apache/catalina/deploy/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/deploy/LocalStrings_zh_CN.properties
@@ -13,8 +13,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+namingResources.cleanupCloseFailed=无法为容器[{2}]中的资源[{1}]调用方法[{0}],因此未对该资源执行清理
 namingResources.cleanupCloseSecurity=无法检索容器[{2}]中的资源[{1}]的方法[{0}],因此没有对该资源进行清理
 namingResources.cleanupNoClose=容器[{1}]中的资源[{0}]没有[{2}]方法,因此没有对该资源执行清理
+namingResources.cleanupNoContext=无法检索容器[{0}]的JNDI命名上下文,因此未对该容器执行清理
+namingResources.cleanupNoResource=无法检索容器[{1}]的JNDI资源[{0}],因此未对该资源执行清理。
 namingResources.ejbLookupLink=EJB的引用[{0}]同时指定了ejb-link和lookup-name
 namingResources.envEntryLookupValue=环境参数 [{0}] 指定查询名称和值
 namingResources.mbeanCreateFail=为命名资源[{0}]创建MBean失败
diff --git a/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties b/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
index 956688b..3cdf7f6 100644
--- a/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
@@ -13,7 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+addDefaultCharset.unsupportedCharset=不支持指定的字符集[{0}]
+
 corsFilter.invalidPreflightMaxAge=无法解析 preflightMaxAge
+corsFilter.invalidSupportsCredentials=当allowedOrigins=[*]时,不允许配置supportsCredentials=[true]。
 corsFilter.nullRequest=HttpServletRequest 对象为空
 corsFilter.nullRequestType=CORSRequestType对象为空(null)
 corsFilter.onlyHttp=CORS不支持非HTTP请求或响应
@@ -22,13 +25,22 @@ corsFilter.wrongType2=期望类型为[{0}]或[{1}]的HttpServletRequest对象
 
 csrfPrevention.invalidRandomClass=不能使用class [{0}]创建随机源。
 
+expiresFilter.exceptionProcessingParameter=异常处理配置参数[{0}]:[{1}]
+expiresFilter.expirationHeaderAlreadyDefined=请求[{0}]的响应状态为[{1}]内容类型[{2}],已经定义了到期标头
+expiresFilter.filterInitialized=使用配置[{0}]初始化的筛选器
 expiresFilter.invalidDurationNumber=指令[{1}]中的持续时间(数字)[{0}]无效
+expiresFilter.invalidDurationUnit=指令[{1}]中的持续时间单位无效(年|月|周|天|小时|分钟|秒)[{0}]
 expiresFilter.noDurationFound=在指令[{0}]中找不到持续时间
+expiresFilter.noDurationUnitAfterAmount=在指令[{1}]中的amount[{0}]之后找不到持续时间单位
 expiresFilter.noExpirationConfigured=请求[{0}],其响应状态为[{1}]内容类型[{2}],未配置到期日期
 expiresFilter.noExpirationConfiguredForContentType=没有为 content-type [{0}] 找到过期配置
+expiresFilter.numberError=分析逗号分隔列表[{1}中位置[{0}(基于零)处的数字时发生异常
 expiresFilter.responseAlreadyCommited=请求[{0}],无法对已提交的响应应用ExpiresFilter。
+expiresFilter.setExpirationDate=请求{0},响应状态为{1},内容类型为{2},设置过期日期{3}
+expiresFilter.skippedStatusCode=请求{0},响应状态为{1},内容类型为{1},跳过给定状态的过期头生成。
 expiresFilter.startingPointInvalid=在指令[{1}]中无效的起点(访问|现在|修改|a<秒>|m<秒>)[{0}]
 expiresFilter.startingPointNotFound=起始点(access|now|modification|a<seconds>|m<seconds>)未在指令[{0}]中找到
+expiresFilter.unknownParameterIgnored=忽略值为[{1}]的未知参数[{0}]!
 expiresFilter.unsupportedStartingPoint=不支持的起始点 [{0}]
 expiresFilter.useDefaultConfiguration=对内容类型[{1}]使用默认的[{0}]返回[{2}]
 expiresFilter.useMatchingConfiguration=对内容类型[{2}]返回[{3}]使用[{0}]匹配[{1}]
@@ -40,9 +52,16 @@ http.403=禁止访问指定资源 [{0}] 。
 httpHeaderSecurityFilter.clickjack.invalid=为防点击挟持的响应消息头指定了非法值 [{0}]
 httpHeaderSecurityFilter.committed=在进入HttpHeaderSecurityFilter的时候响应消息已经提交导致不能添加响应消息头
 
+remoteCidrFilter.invalid=为{0}提供的配置无效。有关详细信息,请参阅以前的消息。
 remoteCidrFilter.noRemoteIp=客户端没有 IP 地址,请求被拒绝。
 
 remoteIpFilter.invalidHostHeader=HTTP头 [{1}]中,为Host找到一个无效值 [{0}]
 remoteIpFilter.invalidHostWithPort=HTTP头 [{1}]中的Host值 [{0}]包含一个被忽略的端口号
+remoteIpFilter.invalidNumber=参数[{0}]的数字非法:[{1}]
 
 requestFilter.deny=基于属性:[{1}],[{0}]的请求被拒绝。
+
+restCsrfPreventionFilter.invalidNonce=CSRF nonce验证失败
+
+webDavFilter.xpProblem=WebdavFixFilter:已知XP-x64-SP2客户端不使用WebDAV Servlet
+webDavFilter.xpRootContext=WebdavFixFilter:XP-x64-SP2客户端将仅与根上下文一起工作
diff --git a/java/org/apache/catalina/ha/authenticator/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ha/authenticator/LocalStrings_zh_CN.properties
index f4f5ddf..9a0d4b6 100644
--- a/java/org/apache/catalina/ha/authenticator/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/authenticator/LocalStrings_zh_CN.properties
@@ -14,3 +14,4 @@
 # limitations under the License.
 
 clusterSingleSignOn.clusterLoad.fail=在集群加载时, 集群单点登录异常
+clusterSingleSignOn.nocluster=没有群集SingleSignon的群集。
diff --git a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
index 6ccb66e..517f5b3 100644
--- a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
@@ -13,4 +13,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+collectedInfo.noConnector=找不到[{0}]的连接器:[{1}]
+collectedInfo.notInitialized=未初始化
+
+heartbeatListener.errorCollectingInfo=无法初始化信息收集
+heartbeatListener.refreshError=无法收集加载信息
+heartbeatListener.sendError=无法发送收集的加载信息
+heartbeatListener.senderInitError=无法初始化发件人
+
+multiCastSender.multiCastFailed=无法使用多播
 multiCastSender.sendFailed=无法发送多播信息
+
+tcpSender.connectionFailed=无法连接到代理
+tcpSender.invalidProxyList=无效的代理列表
+tcpSender.notInitialized=未初始化
+tcpSender.readError=读取响应内容时出错
+tcpSender.responseError=无法从代理读取响应
+tcpSender.responseErrorCode=代码为[{0}]的响应错误
+tcpSender.sendFailed=无法将收集的加载信息发送到代理
diff --git a/java/org/apache/catalina/ha/context/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ha/context/LocalStrings_zh_CN.properties
index 65e5f3c..5c49312 100644
--- a/java/org/apache/catalina/ha/context/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/context/LocalStrings_zh_CN.properties
@@ -13,4 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+applicationContext.setAttribute.namenull=名称不能为空
+
 replicatedContext.startFailed=启动ReplicatedContext失败:[{0}]
+replicatedContext.startUnable=无法启动ReplicatedContext:[{0}]
diff --git a/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
index 7bdb390..6cc609c 100644
--- a/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
@@ -13,8 +13,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+farmWarDeployer.alreadyDeployed=webapp[{0}]已部署。
 farmWarDeployer.deleteFail=无法删除 [{0}]
+farmWarDeployer.deployEnd=[{0}]中的部署已完成。
+farmWarDeployer.fileCopyFail=无法从[{0}]复制到[{1}]
+farmWarDeployer.fileMessageError=处理文件消息时出错
 farmWarDeployer.hostOnly=FarmWarDeployer 只有做为 host cluster 的子元素是才生效
+farmWarDeployer.hostParentEngine=FarmWarDeployer只能在[{0}]的父级是引擎时工作!
 farmWarDeployer.mbeanNameFail=无法为引擎[{0}]和主机[{1}]构造MBean对象名
 farmWarDeployer.modInstall=从 [{1}] 安装 webapp [{0}]
 farmWarDeployer.modInstallFail=无法安装 WAR 文件
@@ -23,17 +28,33 @@ farmWarDeployer.msgRxDeploy=接收集群部署路径[{0}],战争[{1}]
 farmWarDeployer.msgRxUndeploy=从路径[{0}]接收未部署群集
 farmWarDeployer.removeFailLocal=从[{0}]本地移除失败
 farmWarDeployer.removeFailRemote=本地从[{0}]删除失败,其他经理有app在服务!
+farmWarDeployer.removeLocal=正在删除webapp[{0}]
 farmWarDeployer.removeLocalFail=无法移除WAR文件
+farmWarDeployer.removeStart=群集范围内删除web应用程序[{0}]
+farmWarDeployer.removeTxMsg=从[{0}]发送群集范围的取消部署
 farmWarDeployer.renameFail=将 [{0}] 重命名为 [{1}] 失败
+farmWarDeployer.sendEnd=发送群集war部署路径[{0}],war[{1}]已完成。
 farmWarDeployer.sendFragment=将群集战争片段路径[{0}],战争[{1}]发送到[{2}]
 farmWarDeployer.sendStart=发送集群war部署路径[{0}],war[{1}]已启动
 farmWarDeployer.servicingDeploy=应用程序[{0}]正在服务。再次触摸WAR文件[{1}]!
 farmWarDeployer.servicingUndeploy=正在处理应用程序[{0}],无法从备份群集节点中删除它
+farmWarDeployer.started=群集FarmWarDeployer已启动。
+farmWarDeployer.stopped=群集FarmWarDeployer已停止。
 farmWarDeployer.undeployEnd=从[{0}]取消部署完成。
 farmWarDeployer.undeployLocal=不能部署本地上下文[{0}]
+farmWarDeployer.undeployMessageError=处理取消部署消息时出错
+farmWarDeployer.watchDir=群集部署正在监视[{0}]的更改
 
+fileMessageFactory.cannotRead=无法读取消息,此工厂正在写入
+fileMessageFactory.cannotWrite=无法写入消息,此工厂正在读取
+fileMessageFactory.closed=工厂已经关闭
 fileMessageFactory.deleteFail=无法删除 [{0}]
+fileMessageFactory.duplicateMessage=收到重复消息。发件人超时是否太低?上下文:[{0}]文件名:[{1}]数据:[{2}]数据长度:[{3}]
+
+fileNewFail=无法创建[{0}]
 
 warWatcher.cantListWatchDir=无法列出WatchDir文件夹 [{0}] 中的文件:检查该路径是否为目录且应用具有读取权限。
 warWatcher.checkWarResult=WarInfo.check() 为[{1}]返回[{0}]
 warWatcher.checkingWar=检查 WAR 文件 [{0}]
+warWatcher.checkingWars=正在检查[{0}]中的wars
+warWatcher.listedFileDoesNotExist=[{1}]中检测到[{0}],但不存在。在[{1}]上检查目录权限?
diff --git a/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
index 9ab3a0b..865325f 100644
--- a/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
@@ -18,43 +18,73 @@ backupManager.startFailed=启动BackupManager: [{0}]失败
 backupManager.startUnable=无法启动BackupManager: [{0}]
 backupManager.stopped=管理者[{0}]正在停止。
 
-clusterSessionListener.noManager=Context管理器不存在:[{0}]
+clusterSessionListener.noManager=上下文管理器不存在:[{0}]
 
 deltaManager.createMessage.access=管理器[{0}]:创建会话为会话[{1}]存取消息
+deltaManager.createMessage.accessChangePrimary=管理器{0}:为会话{1}创建更改主节点消息。
+deltaManager.createMessage.allSessionData=管理器[{0}]发送了所有会话数据。
+deltaManager.createMessage.allSessionTransfered=管理器[{0}]发送了所有传输的会话数据
 deltaManager.createMessage.delta=管理器[{0}] ):为会话[{1}]创建增量请求消息
 deltaManager.createMessage.expire=管理器[{0}] (:为会话[{1}]创建会话过期消息
+deltaManager.createMessage.unableCreateDeltaRequest=无法序列化sessionid[{0}]的增量请求
 deltaManager.createSession.newSession=用id[{0}]创建一个扩展会话(DeltaSession),总数为 [{1}]
+deltaManager.dropMessage=管理器[{0}]:将消息[{1}]放入GET_所有会话同步阶段开始日期[{2}]消息日期[{3}]。
+deltaManager.expireSessions=管理器[{0}]关闭时使会话过期
 deltaManager.foundMasterMember=复制主master 成员在上下文中被发现.\n
 deltaManager.loading.cnfe=加载持久化会话 [{0}] 时出现ClassNotFoundException
+deltaManager.loading.existing.session=重载现有会话[{0}]。
 deltaManager.loading.ioe=加载持久 session 时出现 IOException:[{0}]
 deltaManager.managerLoad=从永久存储加载会话时发生异常
+deltaManager.noCluster=启动。。。没有与此上下文关联的群集:[{0}]。
 deltaManager.noContextManager=管理器[{0}]:回复[{1}]发送的“获取所有会话数据”消息,在[{2}] ms后收到“无匹配的上下文管理器”消息
+deltaManager.noMasterMember=启动。。。在域[{1}]没有上下文[{0}]的其他成员
+deltaManager.noMembers=管理器[{0}]:正在跳过状态传输。群集组中没有活动的成员。
 deltaManager.noSessionState=管理者[{0}]:没有收到[{1}]发送的会话状态,在[{2}]毫秒之后超时。
 deltaManager.receiveMessage.accessed=管理器[{0}]:接收会话为会话[{1}]存取消息
 deltaManager.receiveMessage.allSessionDataAfter=Manager [{0}]: session 状态反序列化
 deltaManager.receiveMessage.allSessionDataBegin=管理者[{0}]:接收到所有会话数据状态
+deltaManager.receiveMessage.createNewSession=管理器{0}:已收到会话为会话{1}创建的消息
+deltaManager.receiveMessage.delta=管理器[{0}]:已收到会话[{1}的会话增量消息。
 deltaManager.receiveMessage.delta.unknown=管理器[{0}]:未知会话的接收会话增量[{1}]
+deltaManager.receiveMessage.error=管理器[{0}]:无法通过TCP通道接收消息
+deltaManager.receiveMessage.eventType=管理器[{0}]:从[{2}]接收到类型为[{1}]的SessionMessage
 deltaManager.receiveMessage.expired=管理器[{0}]: 接收到的会话 [{1}] 已过期。
+deltaManager.receiveMessage.noContextManager=从节点[{1}:{2}]接收的管理器[{0}]没有上下文管理器
+deltaManager.receiveMessage.transfercomplete=从节点[{1}:{2}]接收的管理器[{0}]会话状态已传输。
+deltaManager.receiveMessage.unloadingAfter=管理器[{0}]:卸载会话完成
 deltaManager.receiveMessage.unloadingBegin=管理器[{0}]: 开始卸载会话
 deltaManager.registerCluster=将管理器[{0}]注册到名为[{2}]的集群元素[{1}]
 deltaManager.sendMessage.newSession=\ 管理器 [{0}] 发送新的会话 [{1}]
 deltaManager.sessionReceived=管理器[{0}];在[{1}]发送的会话状态在[{2}]毫秒内收到。
+deltaManager.startClustering=在[{0}]启动群集管理器
 deltaManager.stopped=管理器[{0}]已停止
 deltaManager.unableSerializeSessionID=无法序列化会话ID [{0}]
 deltaManager.unloading.ioe=当保存永久回话:[{0}] 时,抛出 IOException
+deltaManager.waitForSessionState=管理器[{0}],正在从[{1}]请求会话状态。如果在[{2}]秒内未收到会话状态,则此操作将超时
 
+deltaRequest.invalidAttributeInfoType=无效的属性信息类型=[{0}]
 deltaRequest.removeUnable=不能移除元素
 deltaRequest.showPrincipal=Principal [{0}] 和session [{1}]产生关联。
 deltaRequest.ssid.mismatch=回话ID不匹配,不执行delta请求
+deltaRequest.ssid.null=setSessionId的会话Id为空
 deltaRequest.wrongPrincipalClass=ClusterManager仅支持GenericPrincipal。 你的Realm使用的Principal类为[{0}]。
 
+deltaSession.notifying=通知群集会话过期:primary=[{0}],sessionId[{1}]
+deltaSession.readSession=readObject()正在加载会话[{0}]
 deltaSession.writeSession=writeObject()存储会话[{0}]
 
+jvmRoute.cannotFindSession=找不到会话[{0}]
 jvmRoute.changeSession=会话从[{0}]切换到[{1}]
+jvmRoute.failover=在会话id[{2}]检测到具有不同jvmRoute的故障转移-原始路由:[{0}]新路由:[{1}]
+jvmRoute.foundManager=在[{1}]找到群集管理器[{0}]
 jvmRoute.missingJvmRouteAttribute=没有配置引擎jvmRoute属性!
+jvmRoute.noCluster=已配置JvmRouterBinderValve,但未使用群集。如果使用了PersistentManager,故障转移仍然有效。
 jvmRoute.notFoundManager=没有在 [{0}] 找到Cluster Manager
 jvmRoute.set.orignalsessionid=在请求属性[{0}]值:[{1}]处设置原始会话ID
+jvmRoute.turnoverInfo=周转检查时间[{0}]msec
 jvmRoute.valve.started=JvmRouteBinderValve 启动
 jvmRoute.valve.stopped=JvmRouteBinderValve停止
 
+standardSession.notSerializable=无法序列化会话[{1}]的会话属性[{0}]。
+standardSession.removeAttribute.ise=removeAttribute:会话已失效。
 standardSession.setAttribute.namenull=setAttribute:名称属性不能为空
diff --git a/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties
index b89e1d4..15727ad 100644
--- a/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties
@@ -13,16 +13,30 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+ReplicationValve.crossContext.add=将跨上下文会话复制容器添加到replicationValve threadlocal
+ReplicationValve.crossContext.registerSession=注册交叉上下文会话id =[{0}]来自上下文[{1}]
+ReplicationValve.crossContext.remove=从replicationValve threadlocal中删除跨上下文会话复制容器
+ReplicationValve.crossContext.sendDelta=从上下文[{0}]发送跨上下文会话增量。
 ReplicationValve.filter.failure=无法编译 filter = [{0}]
+ReplicationValve.filter.loading=正在加载请求筛选器=[{0}]
 ReplicationValve.invoke.uri=在[{0}]上执行同步请求
+ReplicationValve.nocluster=没有为此请求配置群集。
+ReplicationValve.resetDeltaRequest=群集是独立的:在上下文[{0}]处重置会话请求增量
 ReplicationValve.send.failure=无法执行同步请求。
+ReplicationValve.send.invalid.failure=无法通过群集发送会话[id={0}]无效消息。
 ReplicationValve.session.found=上下文[{0}]:找到会话[{1}]但它不是ClusterSession。
+ReplicationValve.session.indicator=上下文[{0}]:请求属性[{2}]中会话[{1}]的优先级为[{3}]。
 ReplicationValve.session.invalid=上下文[{0}]:请求的会话[{1}]在此节点上无效,已删除或未复制。
+ReplicationValve.stats=对于[{2}]请求、[{3}]发送请求、[{4}]跨上下文请求和[{5}]筛选请求,平均请求时间为[{0}]ms,群集开销时间为[{1}]ms(总请求时间为[{6}]ms,总群集请求时间为[{7}]ms)。
 
+simpleTcpCluster.clustermanager.cloneFailed=无法克隆群集管理器,默认为org.apache.catalina.ha.session.DeltaManager。
 simpleTcpCluster.clustermanager.notImplement=连接器 [{0}] 不能继承 ClusterManager,除非集群被停止。
 simpleTcpCluster.member.addFailed=无法连接到复制系统。
 simpleTcpCluster.member.added=添加同步成员:[{0}]
 simpleTcpCluster.member.disappeared=收到成员消失:[{0}]
 simpleTcpCluster.member.removeFailed=无法从复制系统中移除集群节点
 simpleTcpCluster.sendFailed=无法使用集群发送器发送消息
+simpleTcpCluster.start=群集即将启动
+simpleTcpCluster.startUnable=无法启动群集。
 simpleTcpCluster.stopUnable=无法停止集群
+simpleTcpCluster.unableSend.localMember=无法将消息发送到本地成员[{0}]
diff --git a/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
index e8f980f..496f317 100644
--- a/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
@@ -13,18 +13,40 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+webappClassLoader.addExportsRmi=在Java 9上运行时,需要在JVM命令行参数中添加“-add opens=Java.rmi/sun.rmi.transport=ALL-UNNAMED”,以启用rmi目标内存泄漏检测。或者,可以通过禁用RMI目标内存泄漏检测来抑制此警告。
+webappClassLoader.addExportsThreadLocal=在Java 9上运行时,需要在JVM命令行参数中添加“-add opens=Java.base/Java.lang=ALL-UNNAMED”,以启用线程本地内存泄漏检测。或者,可以通过禁用ThreadLocal内存泄漏检测来抑制此警告。
+webappClassLoader.addPermisionNoCanonicalFile=无法从URL[{0}]获取规范文件路径
+webappClassLoader.addPermisionNoProtocol=不支持URL[{1}]中的协议[{0}],因此未授予位于此URL的资源的读取权限
 webappClassLoader.addTransformer=将类文件转换器[{0}]添加到Web应用程序[{1}]。
+webappClassLoader.addTransformer.duplicate=将类文件转换器[{0}]添加到web应用程序[{1}]的重复调用被忽略。
 webappClassLoader.addTransformer.illegalArgument=Web应用程序[{0}]试图添加空类文件转换器。
+webappClassLoader.checkThreadLocalsForLeaks=web应用程序[{0}]创建了一个ThreadLocal,其键类型为[{1}](值为[{2}]),值类型为[{3}](值为[{4}),但在停止web应用程序时未能将其删除。线程将随着时间的推移而更新,以尝试避免可能的内存泄漏
+webappClassLoader.checkThreadLocalsForLeaks.badKey=无法确定类型为[{0}]的键的字符串表示形式
 webappClassLoader.checkThreadLocalsForLeaks.badValue=无法确定类型为 [{0}] 的值的字符串表示形式
 webappClassLoader.checkThreadLocalsForLeaks.unknown=:)未知
 webappClassLoader.checkThreadLocalsForLeaksFail=检查ThreadLocal引用失败,web应用程序:[{0}]
 webappClassLoader.checkThreadLocalsForLeaksNone=web应用程序 [{0}] 创建了1个ThreadLocal变量(键:[{2}] (类型[{1}]) ,值:[{4}](类型[{3}]) )。键仅被ThreadLocal Map弱引用,所以不是内存泄露。
+webappClassLoader.checkThreadLocalsForLeaksNull=web应用程序[{0}]创建了一个ThreadLocal,其键类型为[{1}](值为[{2}])。ThreadLocal已正确设置为null,GC将删除该键
+webappClassLoader.checkThreadsHttpClient=找到使用web应用程序类加载器的HttpClient保持活动线程。通过将线程切换到父类加载器修复。
 webappClassLoader.clearJdbc=Web应用程序 [{0}] 注册了JDBC驱动程序 [{1}],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
+webappClassLoader.clearObjectStreamClassCachesFail=无法清除web应用程序[{0}]的ObjectStreamClass$缓存中的软引用
+webappClassLoader.clearRmi=找到具有存根类类[{0}]和值[{1}]的RMI目标。已强制移除此RMI目标,以防止内存泄漏。
+webappClassLoader.clearRmiFail=无法清除从web应用程序[{0}]的sun.rmi.transport.Target引用的上下文类加载器
+webappClassLoader.clearRmiInfo=找不到类sun.rmi.transport.Target以清除web应用程序[{0}]的上下文类加载器。这在非Sun jvm上是预期的。
 webappClassLoader.getThreadGroupError=无法获得线程组[{0}]的父级。不可能检查所有线程是否存在潜在的内存泄漏。
+webappClassLoader.jarsAdded=一个或多个jar已添加到web应用程序[{0}]
+webappClassLoader.jarsModified=一个或多个jar已在web应用程序中修改[{0}]
 webappClassLoader.jarsRemoved=一个或多个 JAR 已被从 Web 应用程序 [{0}] 中删除
+webappClassLoader.javaseClassLoaderNull=j2seClassLoader属性不能为空
 webappClassLoader.jdbcRemoveFailed=Web应用程序 [{0}] 的JDBC驱动程序注销失败
+webappClassLoader.loadedByThisOrChildFail=无法完全检查[{0}]实例中的条目,看上下文[{1}]中是否存在潜在的内存泄漏
 webappClassLoader.readError=资源读取错误:不能加载 [{0}].
+webappClassLoader.removeTransformer=已从web应用程序[{1}]中删除类文件转换器[{0}]。
+webappClassLoader.resourceModified=资源[{0}]已被修改。上次修改时间是[{1}],现在是[{2}]
+webappClassLoader.restrictedPackage=安全冲突,尝试使用受限类[{0}]
+webappClassLoader.securityException=尝试在findClassInternal[{1}]中查找类[{0}]时出现安全异常
 webappClassLoader.stackTrace=Web应用程序[{0}]似乎启动了一个名为[{1}]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[{2}]
+webappClassLoader.stackTraceRequestThread=web应用程序[{0}]仍在处理一个尚未完成的请求。这很可能会造成内存泄漏。您可以使用标准上下文实现的unloadDelay属性来控制请求完成所允许的时间。请求处理线程的堆栈跟踪:[{2}]
 webappClassLoader.stopThreadFail=为web应用程序[{1}]终止线程[{0}]失败
 webappClassLoader.stopTimerThreadFail=无法终止名为[{0}]的TimerThread,web应用程序:[{1}]
 webappClassLoader.stopped=非法访问:此Web应用程序实例已停止。无法加载[{0}]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
@@ -33,4 +55,14 @@ webappClassLoader.transformError=检测错误:无法转换类[{0}],因为它
 webappClassLoader.warnTimerThread=Web应用程序[{0}]似乎已通过java.util.Timer API启动了名为[{1}]的TimerThread,但未能将其停止。 为防止内存泄漏,计时器(以及相关联的线程)已被强制取消。
 webappClassLoader.wrongVersion=(无法载入的.类 [{0}])
 
+webappClassLoaderParallel.registrationFailed=将org.apache.catalina.loader.ParallelWebappClassLoader注册为能够并行加载类失败
+
+webappLoader.deploy=将类存储库部署到工作目录[{0}]
+webappLoader.noResources=找不到上下文[{0}]的资源
+webappLoader.reloadable=无法将可重载属性设置为[{0}]
 webappLoader.setContext.ise=当加载器启动的时候设置上下文是不被允许的
+webappLoader.startError=启动加载程序时出错
+webappLoader.starting=启动此加载程序
+webappLoader.stopError=停止加载程序时出错
+webappLoader.stopping=停止此加载程序
+webappLoader.unknownClassLoader=类[{1}]的未知类加载器[{0}]
diff --git a/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties b/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
index 8022411..4969790 100644
--- a/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
@@ -91,7 +91,7 @@ htmlManagerServlet.jvmTableTitleMemoryPool=内存.池
 htmlManagerServlet.jvmTableTitleTotal=总共
 htmlManagerServlet.jvmTableTitleType=类型
 htmlManagerServlet.jvmTableTitleUsed=已用
-htmlManagerServlet.jvmTotalMemory=总内存
+htmlManagerServlet.jvmTotalMemory=总内存:
 htmlManagerServlet.list=应用程序列表
 htmlManagerServlet.manager=管理器
 htmlManagerServlet.messageLabel=消息:
@@ -116,6 +116,7 @@ htmlManagerServlet.serverVersion=Tomcat.版本
 htmlManagerServlet.title=Tomcat Web应用程序管理者
 
 jmxProxyServlet.noBeanFound=无法找到名为[{0}]的MBean对象
+jmxProxyServlet.noOperationOnBean=在对象名为{2}的操作{0}中找不到参数为{1}]的操作{0},该操作是{3}
 
 managerServlet.alreadyContext=失败 - 应用程序已存在于路径 [{0}]
 managerServlet.certsNotAvailable=在运行期,无法从连接器中获取认证信息
@@ -162,6 +163,7 @@ managerServlet.resourcesType=OK - [{0}]类型全局资源列入清单
 managerServlet.saveFail=失败 - 配置保存失败:[{0}]
 managerServlet.saved=OK - 服务器配置已保存
 managerServlet.savedContext=OK - 上下文[{0}]配置已保存
+managerServlet.savedContextFail=
 managerServlet.serverInfo=OK - 服务器信息\n\
 Tomcat版本: [{0}]\n\
 操作系统名称: [{1}]\n\
diff --git a/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties b/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
index c9cccbc..b68c873 100644
--- a/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
@@ -57,7 +57,7 @@ htmlHostManagerServlet.addDeployOnStartup=启动.部署
 htmlHostManagerServlet.addDeployXML=部署XML
 htmlHostManagerServlet.addHost=主机
 htmlHostManagerServlet.addManager=管理 App
-htmlHostManagerServlet.addName=名称
+htmlHostManagerServlet.addName=名称:
 htmlHostManagerServlet.addTitle=添加.虚拟主机
 htmlHostManagerServlet.addUnpackWARs=解压WARs
 htmlHostManagerServlet.helpHtmlManager=HTML主机管理器帮助
diff --git a/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties b/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
index 2a67959..6f3ed8a 100644
--- a/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
@@ -13,12 +13,24 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+mapper.addContext.hostIsAlias=找到的主机[{0}]是别名
 mapper.addContext.noHost=找不到主机 [{0}]
+mapper.addHost.sameHost=同一主机[{0}]的重复注册。忽略。
+mapper.addHost.success=注册主机[{0}]
+mapper.addHostAlias.sameHost=为同一主机[{1}]重复注册别名[{0}]。忽略。
 mapper.addHostAlias.success=为虚拟主机 [{1}] 注册了别名 [{0}]
+mapper.duplicateHost=重复的主机[{0}]。主机[{1}已使用该名称。此主机将被忽略。
+mapper.duplicateHostAlias=主机[{1}]中的主机别名[{0}]重复。主机[{2}已使用该名称。将忽略此别名。
+mapper.findContext.noContext=找不到上下文[{0}]
+mapper.findContext.noContextVersion=找不到上下文版本[{0}[{1}]
+mapper.findContext.noHostOrAlias=没有主机[{0}]或是别名
+mapper.removeWrapper=正在从路径为[{1}]的上下文[{0}]中删除包装。
 
 mapperListener.pauseContext=根据服务需要,注册内容[{0}]已经重新加载
+mapperListener.registerContext=为服务[{1}]注册上下文[{0}]
 mapperListener.registerHost=这域名[{1}]注册主机[{0}],服务:[{2}]
 mapperListener.registerWrapper=为服务Service[{2}]在上下文Context[{1}]注册Wrapper[{0}]
+mapperListener.unknownDefaultHost=服务{1}的默认主机{0}未知。Tomcat将无法处理未指定主机名的HTTP/1.0请求。
 mapperListener.unregisterContext=注销服务[{1}]的上下文[{0}]
 mapperListener.unregisterHost=在域[{1}]中.,不能注册主机[{0}]为服务[{2}]
 mapperListener.unregisterWrapper=在上下文[{1}]中注销服务[{2}]的包装程序[{0}]
diff --git a/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties b/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties
index 5b718d7..368398e 100644
--- a/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties
@@ -13,7 +13,53 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+globalResources.createError=处理全局JNDI资源时发生异常
+globalResources.createError.operation=创建MBean时不支持操作
+globalResources.createError.runtime=创建MBean时出现意外错误
+globalResources.createError.userDatabase=无法为资源[{0}]创建用户数据库MBean
+globalResources.createError.userDatabase.group=无法为组[{0}]创建组MBean
+globalResources.createError.userDatabase.role=无法为角色[{0}]创建角色MBean
+globalResources.createError.userDatabase.user=无法为用户[{0}]创建用户MBean
+globalResources.noNamingContext=没有为服务器定义全局命名上下文
+globalResources.userDatabaseCreateError=为[{0}]创建用户数据库MBean时发生异常
+
 jmxRemoteLifecycleListener.createRegistryFailed=无法使用端口[{1}]为[{0}]服务器创建RMI注册表
 jmxRemoteLifecycleListener.createServerFailed=无法为[{0}]服务器创建JMX连接器服务器或启动失败
 jmxRemoteLifecycleListener.invalidSSLConfiguration=SSL配置错误
 jmxRemoteLifecycleListener.invalidURL=为[{0}]服务器[{1}]请求的JMX服务URL无效
+
+mBean.attributeNotFound=找不到属性[{0}]
+mBean.nullAttribute=属性为空
+mBean.nullName=属性名为空
+
+mBeanDumper.getAttributeError=获取对象名[{1}]的属性[{0}]时出错
+
+mBeanFactory.contextDestroyError=上下文[{0}]销毁期间出错
+mBeanFactory.managerContext=管理器组件只能添加到上下文中。
+mBeanFactory.noDeployer=找不到主机[{0}]的部署程序
+mBeanFactory.noService=找不到域为[{0}]的服务
+mBeanFactory.notServer=容器不是服务器
+
+mBeanUtils.noManagedBean=找不到具有[{0}]的ManagedBean
+
+namingResourcesMBean.addAlreadyExists.environment=已存在名为[{0}]的指定环境
+namingResourcesMBean.addAlreadyExists.resource=指定的资源名已存在,名称为[{0}]
+namingResourcesMBean.addAlreadyExists.resourceLink=指定的资源链接已存在,名称为[{0}]
+namingResourcesMBean.createObjectNameError.environment=无法为环境[{0}]创建对象名
+namingResourcesMBean.createObjectNameError.resource=无法为资源[{0}]创建对象名
+namingResourcesMBean.createObjectNameError.resourceLink=无法为资源链接[{0}]创建对象名
+namingResourcesMBean.removeNotFound.environment=名为[{0}]的指定环境不存在
+namingResourcesMBean.removeNotFound.resource=名为[{0}]的指定资源不存在
+namingResourcesMBean.removeNotFound.resourceLink=名为[{0}]的指定资源链接不存在
+
+userMBean.createError.group=无法为组[{0}]创建对象名
+userMBean.createError.role=无法为角色[{0}]创建对象名
+userMBean.createError.user=无法为用户[{0}]创建对象名
+userMBean.createMBeanError.group=创建组[{0}]MBean时发生异常
+userMBean.createMBeanError.role=创建角色[{0}]MBean时发生异常
+userMBean.createMBeanError.user=创建用户[{0}]MBean时发生异常
+userMBean.destroyError.group=销毁组[{0}]MBean时发生异常
+userMBean.destroyError.role=销毁角色[{0}]MBean时发生异常
+userMBean.destroyError.user=销毁用户[{0}]MBean时发生异常
+userMBean.invalidGroup=无效的组名[{0}]
+userMBean.invalidRole=无效的角色名[{0}]
diff --git a/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
index 35521a7..be93cce 100644
--- a/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
@@ -13,40 +13,80 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+combinedRealm.addRealm=添加[{0}]领域,共有[{1}]个领域。
 combinedRealm.authFail=无法使用域[{1}]对用户[{0}]进行身份验证
+combinedRealm.authStart=正在尝试使用领域[{1}]对用户[{0}]进行身份验证
 combinedRealm.authSuccess=认证用户[{0}],权限[{1}]
+combinedRealm.getPassword=永远不应该调用getPassword()方法
 combinedRealm.getPrincipal=方法getPrincipal()永远不应该被调用
+combinedRealm.realmStartFail=无法启动[{0}]领域
+combinedRealm.setCredentialHandler=
+combinedRealm.unexpectedMethod=对组合域上的方法进行了意外调用
 
+credentialHandler.invalidStoredCredential=域提供了无效的存储凭据字符串[{0}],以便与用户提供的凭据匹配
+
+dataSourceRealm.authenticateFailure=用户名[{0}]未成功验证
+dataSourceRealm.authenticateSuccess=用户名[{0}]已成功通过身份验证。
+dataSourceRealm.close=关闭数据库连接时发生异常
 dataSourceRealm.exception=认证异常
 dataSourceRealm.getPassword.exception=获取用户名[{0}]对应的密码失败。
 dataSourceRealm.getRoles.exception=:)检索角色[{0}]异常
 
 jaasCallback.username=返回用户名 [{0}]
 
+jaasMemoryLoginModule.callbackHandlerError=调用回调处理程序时出错:[{0}]
 jaasMemoryLoginModule.invalidCredentials=用户名或密码不正确
+jaasMemoryLoginModule.noCallbackHandler=未指定回调处理程序
+jaasMemoryLoginModule.noCatalinaBase=无法确定要加载文件的Catalina基[{0}]
 jaasMemoryLoginModule.noConfig=无法加载配置文件 [{0}]
+jaasMemoryLoginModule.parseError=处理配置文件[{0}]时出错
+jaasMemoryLoginModule.unknownAuthenticationMethod=未知的身份验证方法
 
+jaasRealm.accountExpired=由于帐户过期,用户名[{0}]未通过身份验证
+jaasRealm.appName=设置JAAS应用程序名称[{0}]
 jaasRealm.authenticateFailure=用户 [{0}] 认证失败
 jaasRealm.authenticateSuccess=用户名 [{0}] 已被成功认证为身份 [{1}] -- 主体也已创建
+jaasRealm.beginLogin=使用应用程序[{1}的LoginContext为用户名[{0}]请求JAASRealm登录
+jaasRealm.checkPrincipal=正在检查主体[{0}[{1}]
 jaasRealm.classNotFound=找不到类 [{0}]
+jaasRealm.credentialExpired=由于凭据过期,用户名[{0}]未通过身份验证
 jaasRealm.failedLogin=由于登录失败,用户名 [{0}] 无法授权
 jaasRealm.loginContextCreated=为用户名创建的JAAS 登陆上下文[{0}]
 jaasRealm.loginException=登录异常,认证用户名  [{0}]
+jaasRealm.notPrincipal=类[{0}]未添加,因为它未实现java.security.Principal
+jaasRealm.rolePrincipalAdd=正在将角色主体[{0}]添加到此用户主体的角色
+jaasRealm.rolePrincipalFailure=找不到有效的角色主体。
+jaasRealm.unexpectedError=意外错误
 jaasRealm.userPrincipalFailure=未发现有效的用户Principal
+jaasRealm.userPrincipalSuccess=主体[{0}]是有效的用户类。我们将其用作用户主体。
 
 jdbcRealm.authenticateFailure=用户名称[{0}]未校验成功
+jdbcRealm.authenticateSuccess=用户名[{0}]已成功通过身份验证
 jdbcRealm.close=关闭数据库连接异常
+jdbcRealm.exception=执行身份验证时发生异常
 jdbcRealm.open=打开数据库连接时发生异常
+jdbcRealm.open.invalidurl=驱动程序[{0}]不支持url[{1}]。
 
 jndiRealm.authenticateFailure=用户名[{0}]没有成功认证
 jndiRealm.authenticateSuccess=用户名[{0}]成功认证
 jndiRealm.cipherSuites=启用 [{0}] 作为 TLS 连接的加密套件。
+jndiRealm.close=关闭目录服务器连接时发生异常
+jndiRealm.emptyCipherSuites=给定密码套件的空字符串。使用默认密码套件
 jndiRealm.exception=执行认证异常
+jndiRealm.exception.retry=执行身份验证时发生异常。正在重试。。。
+jndiRealm.invalidHostnameVerifier=[{0}]不是HostnameVerifier的有效类名
+jndiRealm.invalidSslProtocol=给定的协议[{0}]无效。它必须是[{1}]之一
+jndiRealm.invalidSslSocketFactory=[{0}]不是SSLSocketFactory的有效类名。
 jndiRealm.negotiatedTls=使用协议[{0}]协商的TLS连接
 jndiRealm.open=打开目录服务器链接异常
+jndiRealm.tlsClose=关闭tls响应时出现异常
 
 lockOutRealm.authLockedUser=尝试对锁定的用户[{0}]进行身份验证
+lockOutRealm.removeWarning=用户[{0}]在[{1}]秒后从失败的用户缓存中删除,以将缓存大小保持在限制集内
+
+mdCredentialHandler.unknownEncoding=不支持编码{0},因此仍将使用当前的设置{1}
 
+memoryRealm.authenticateFailure=用户名[{0}]未成功通过身份验证
 memoryRealm.authenticateSuccess=用户名称[{0}]认证成功
 memoryRealm.loadExist=内存数据库文件[{0}]无法读取
 memoryRealm.loadPath=从内存数据库文件 [{0}] 加载用户
@@ -57,10 +97,21 @@ pbeCredentialHandler.invalidKeySpec=无法生成基于密码的密钥
 
 realmBase.algorithm=无效的消息摘要算法[{0}]
 realmBase.authenticateFailure=用户名 [{0}] 认证失败
+realmBase.authenticateSuccess=用户名[{0}]已成功通过身份验证
+realmBase.cannotGetRoles=无法从主体[{0}]获取角色
 realmBase.createUsernameRetriever.ClassCastException=类[{0}] 不是一个X509UsernameRetriever.
+realmBase.createUsernameRetriever.newInstance=无法创建类型为{0}的对象。
+realmBase.credentialNotDelegated=虽然已请求存储,但用户[{0}]的凭据尚未委派
+realmBase.delegatedCredentialFail=无法获取用户[{0}]的委派凭据。
 realmBase.digest=对用户凭证摘要发生错误
 realmBase.forbidden=已拒绝访问所请求的资源
+realmBase.gotX509Username=从X509证书中获取用户名:[{0}]
+realmBase.gssContextNotEstablished=身份验证器实现错误:传递的安全上下文未完全建立
+realmBase.gssNameFail=无法从已建立的GSSContext中提取名称
 realmBase.hasRoleFailure=用户[{0}]没有角色[{1}]
 realmBase.hasRoleSuccess=用户名[{0}] 有角色[{1}]
+realmBase.invalidDigestEncoding=无效的摘要编码[{0}]
+realmBase.unknownAllRolesMode=未知模式[{0}],必须是以下之一:strict、authOnly、strictAuthOnly
 
+userDatabaseRealm.lookup=在键[{0}]下查找用户数据库时发生异常
 userDatabaseRealm.noDatabase=未找到key[{0}]对应的UserDatabase组件。
diff --git a/java/org/apache/catalina/security/LocalStrings_zh_CN.properties b/java/org/apache/catalina/security/LocalStrings_zh_CN.properties
index 53f7274..efc7e2d 100644
--- a/java/org/apache/catalina/security/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/security/LocalStrings_zh_CN.properties
@@ -13,4 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+SecurityListener.checkUmaskFail=尝试使用umask设置[{0}]启动。生命周期侦听器org.apache.catalina.security.security listener(通常在catalina-BASE/conf/server.xml中配置)已阻止在没有umask的情况下运行Tomcat,其限制至少与[{1}]相同
+SecurityListener.checkUmaskNone=在系统属性[{0}]中找不到umask设置。但是,看来Tomcat在支持umask的平台上运行。系统属性通常在CATALINA_HOME / bin / catalina.sh中设置。生命周期侦听器org.apache.catalina.security.SecurityListener(通常在CATALINA_BASE / conf / server.xml中配置)期望umask的限制至少与[{1}]相同
+SecurityListener.checkUmaskParseFail=无法将值[{0}]分析为有效的umask。
 SecurityListener.checkUmaskSkip=无法确定权限。这表示 Tomcat 正在 Windows 上运行,所以跳过权限检查。
+SecurityListener.checkUserWarning=以用户[{0}]身份运行时尝试启动。作为此用户运行Tomcat已被生命周期侦听器org.apache.catalina.security.security listener(通常在catalina_BASE/conf/server.xml中配置)阻止
+
+SecurityUtil.doAsPrivilege=运行privilegedexception块时发生异常。
diff --git a/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties b/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
index 7d8130b..3bf7e35 100644
--- a/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
@@ -13,22 +13,43 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+cgiServlet.emptyEnvVarName=初始化参数中的环境变量名为空[环境变量-]
+cgiServlet.expandCloseFail=无法关闭路径[{0}]处脚本的输入流
+cgiServlet.expandCreateDirFail=无法为脚本扩展创建目标目录[{0}]
 cgiServlet.expandDeleteFail=扩展期间,发生IOException异常后删除文件[{0}]失败
 cgiServlet.expandFail=在路径[{0}] 到[{1}] 展开脚本失败.
+cgiServlet.expandNotFound=无法展开[{0}],因为找不到它。
 cgiServlet.expandOk=从路径[{0}]到[{1}]扩展脚本
+cgiServlet.find.found=找到CGI:name[{0}]、path[{1}]、script name[{2}]和CGI name[{3}]
 cgiServlet.find.location=在 [{0}] 查找文件
 cgiServlet.find.path=在相对于CGI位置[{1}]的路径[{0}]处请求的CGI脚本
+cgiServlet.invalidArgumentDecoded=解码的命令行参数[{0}]与配置的cmdLineArgumentsDecoded模式[{1}]不匹配
+cgiServlet.invalidArgumentEncoded=编码的命令行参数[{0}]与配置的cmdLineArgumentsEncoded模式[{1}]不匹配
+cgiServlet.runBadHeader=标头行[{0}]错误
 cgiServlet.runFail=处理CGI发生I/O问题
 cgiServlet.runHeaderReaderFail=I/O 问题关闭请求头读操作
 cgiServlet.runInvalidStatus=无效状态 [{0}]
 cgiServlet.runOutputStreamFail=关闭输出流时发生I/O问题
 cgiServlet.runReaderInterrupt=对于标准错误的读线程,中断并等待。
+cgiServlet.runStdErr=标准行:[{0}]。
+cgiServlet.runStdErrCount=在stderr上收到了[{0}]行
 cgiServlet.runStdErrFail=I/O标准错误问题
 
+defaultServlet.blockExternalEntity=阻止访问publicId[{0}]和systemId[{0}]的外部实体。
+defaultServlet.blockExternalEntity2=阻止访问名为{0}、publicId[{1}、baseURI[{2}]和systemId[{3}]的外部实体。
 defaultServlet.blockExternalSubset=用名称[{0}]和baseURI[{1}]阻止对外部子集的访问
+defaultServlet.missingResource=请求的资源[{0}]不可用
 defaultServlet.noResources=找不到静态资源
+defaultServlet.readerCloseFailed=无法关闭读卡器
+defaultServlet.skipfail=读取失败,因为只有[{0}]个字节可用,但需要跳过[{1}]个字节才能到达请求范围的开始
+defaultServlet.xslError=XSL转换器错误
 
 directory.filename=文件名
+directory.lastModified=上次修改时间。
+directory.parent=最多[{0}]
 directory.size=大小
+directory.title=[{0}]的目录列表
 
+webdavservlet.enternalEntityIgnored=请求包含对PublicID[{0}]和SystemID[{1}]的外部实体的引用,该引用被忽略。
+webdavservlet.inputstreamclosefail=无法关闭[{0}]的输入流
 webdavservlet.jaxpfailed=JAXP 初始化失败
diff --git a/java/org/apache/catalina/session/LocalStrings_zh_CN.properties b/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
index a1e894e..2354b3f 100644
--- a/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
@@ -18,36 +18,60 @@ JDBCStore.checkConnectionClassNotFoundException=找不到 JDBC 驱动程序类 [
 JDBCStore.checkConnectionDBClosed=数据库连接为空或已关闭。正在尝试重新连接。
 JDBCStore.checkConnectionDBReOpenFail=重新打开数据库失败,数据库可能已经宕机。
 JDBCStore.checkConnectionSQLException=发生 SQL 异常 [{0}]
+JDBCStore.close=关闭数据库连接[{0}]时发生异常
+JDBCStore.commitSQLException=关闭前提交连接的SQLException
 JDBCStore.loading=正在从数据库[{1}]加载会话[{0}]
 JDBCStore.missingDataSourceName=没有给出有效的 JNDI 名称。
+JDBCStore.removing=正在删除数据库{1}上的会话{0}]
 JDBCStore.saving=保存Session [{0}] 到数据库 [{1}]
 JDBCStore.wrongDataSource=无法打开 JNDI 数据源 [{0}]
 
+fileStore.createFailed=无法创建用于存储会话数据的目录[{0}]。
 fileStore.deleteFailed=无法删除阻止创建会话存储位置的文件 [{0}]
 fileStore.deleteSessionFailed=无法删除不再需要的文件[{0}]
+fileStore.loading=正在从文件[{1}]加载会话[{0}]
+fileStore.removing=正在删除文件{1}处的会话{0}]
 fileStore.saving=保存会话[{0}]到文件[{1}]
 
+managerBase.container.noop=添加到上下文以外的容器的管理器将永远不会被使用
 managerBase.contextNull=使用 Manager 之前,必须将 Context 设置为非 null 值
 managerBase.createSession.ise=createSession:活跃session过多
+managerBase.sessionAttributeNameFilter=已跳过名为[{0}]的会话属性,因为它与名称筛选器[{1}]不匹配。
+managerBase.sessionAttributeValueClassNameFilter=已跳过名为[{0}]的会话属性,因为值类型[{1}]与筛选器[{2}]不匹配
 managerBase.sessionNotFound=找不到会话 [{0}]
+managerBase.sessionTimeout=无效的会话超时设置[{0}]
 managerBase.setContextNotNew=如果Manager未处于NEW状态,则调用setContext()以更改与Manager关联的Context是非法的
 
+persistentManager.backupMaxIdle=正在将会话[{0}]备份到存储区,空闲时间为[{1}]秒。
 persistentManager.deserializeError=错误反序列化会话[{0}]: [{1}]
+persistentManager.isLoadedError=检查内存中是否加载了会话{0}时出错
+persistentManager.loading=正在加载[{0}]持久化会话
+persistentManager.removeError=从存储中删除会话[{0}]时出错
+persistentManager.serializeError=错误的序列化会话 [{0}]:[{1}]
+persistentManager.storeClearError=清除存储区中的所有会话时出错
 persistentManager.storeKeysException=不能从 session存储中获取session ID 的列表,假设存储为空
+persistentManager.storeLoadError=从存储区交换会话时出错
+persistentManager.storeLoadKeysError=从存储加载会话密钥时出错
 persistentManager.storeSizeException=无法确定 session 存储区的会话数,假定存储区为空
 persistentManager.swapIn=在表单存储中,交换会话[{0}]
+persistentManager.swapInException=交换期间存储区中出现异常:[{0}]
+persistentManager.swapInInvalid=交换会话[{0}]无效。
 persistentManager.swapMaxIdle=交换会话[{0}]以存储,空闲为[{1}]秒
 persistentManager.swapTooManyActive=太多活跃会话,替换闲置 [{1}] 秒的会话 [{0}]
 persistentManager.tooManyActive=活跃会话太多,[{0}],寻找闲置的会话来交换
+persistentManager.unloading=正在保存[{0}]持续会话
 
 standardManager.deletePersistedFileFail=读取持久会话后无法删除[{0}]。 此文件的持续存在可能导致将来尝试持续会话失败。
+standardManager.loading=正在从[{0}]加载持久化会话
 standardManager.loading.exception=加载持久化会话时发生异常
 standardManager.managerLoad=从持久化存储加载会话发生异常
 standardManager.managerUnload=卸载会话到持久存储的异常
 standardManager.unloading=保存持久化会话到[{0}]
+standardManager.unloading.debug=卸载持续会话
 standardManager.unloading.nosessions=没有要卸载的持久会话
 
 standardSession.attributeEvent=会话属性事件侦听器引发异常
+standardSession.bindingEvent=会话绑定事件侦听器引发异常
 standardSession.getAttribute.ise=getAttribute: 会话已失效
 standardSession.getAttributeNames.ise=getAttributeNames:会话已失效
 standardSession.getCreationTime.ise=getCreataionTime:会话已经无效
@@ -55,10 +79,15 @@ standardSession.getIdleTime.ise=getIdleTime: 已失效的会话
 standardSession.getLastAccessedTime.ise=getLastAccessedTime: 会话已失效
 standardSession.getThisAccessedTime.ise=getThisAccessedTime:会话已经失效
 standardSession.getValueNames.ise=getValueNames:会话已经失效
+standardSession.invalidate.ise=无效:会话已无效。
+standardSession.isNew.ise=isNew:会话已失效
 standardSession.logoutfail=当回话将过期登出用户异常
 standardSession.notDeserializable=无法反序列化会话 [{1}] 的属性 [{0}]
 standardSession.notSerializable=不能序列化会话[{1}]的属性[{0}]
-standardSession.principalNotDeserializable=无法反序列化Principal对象,会话:[{0}]
-standardSession.principalNotSerializable=无法序列化Principal对象,会话:[{0}]
+standardSession.principalNotDeserializable=无法为会话[{0}]反序列化Principal对象
+standardSession.principalNotSerializable=无法为会话[{0}]序列化Principal对象
 standardSession.removeAttribute.ise=删除属性:会话已失效
 standardSession.sessionEvent=会话时间监听抛出异常
+standardSession.setAttribute.iae=setAttribute:不可序列化的属性[{0}]。
+standardSession.setAttribute.ise=setAttribute:会话[{0}]已无效
+standardSession.setAttribute.namenull=setAttribute:name参数不能为空
diff --git a/java/org/apache/catalina/ssi/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ssi/LocalStrings_zh_CN.properties
index 6b2ae6b..062df48 100644
--- a/java/org/apache/catalina/ssi/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ssi/LocalStrings_zh_CN.properties
@@ -14,3 +14,33 @@
 # limitations under the License.
 
 expressionParseTree.extraNodes=创建额外节点
+expressionParseTree.invalidExpression=无效表达式[{0}]
+expressionParseTree.noNodes=未创建节点
+expressionParseTree.unusedOpCodes=存在未使用的节点
+
+ssiCommand.invalidAttribute=无效属性[{0}]
+
+ssiEcho.invalidEncoding=无效编码[{0}]
+
+ssiExec.executeFailed=无法执行文件[{0}]
+
+ssiFlastmod.noLastModified=无法获取文件[{0}]的最后修改日期
+
+ssiFsize.invalidNumChars=字符数不能为负
+ssiFsize.noSize=无法获取文件[{0}]的大小
+
+ssiInclude.includeFailed=不能包含文件[{0}]
+
+ssiMediator.unknownEncoding=未知编码[{0}]
+
+ssiServletExternalResolver.absoluteNonVirtualPath=非虚[{0}]路径不能是绝对路径
+ssiServletExternalResolver.noContext=没有将路径规范化为[{0}]的上下文
+ssiServletExternalResolver.noFile=找不到文件{0}
+ssiServletExternalResolver.noIncludeFile=未找到包含文件[{0}]
+ssiServletExternalResolver.noResource=上下文不包含资源[{0}]
+ssiServletExternalResolver.normalizationError=规范化为路径[{0}]返回了空值
+ssiServletExternalResolver.pathTraversalNonVirtualPath=非虚拟路径[{0}]不能包含路径遍历序列
+ssiServletExternalResolver.removeFilenameError=无法从路径[{0}]中删除文件名
+ssiServletExternalResolver.requestDispatcherError=无法获取路径[{0}]的请求调度程序
+
+ssiSet.noVariable=未指定变量
diff --git a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
index 1966380..44739f5 100644
--- a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
@@ -13,17 +13,28 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+catalina.configFail=无法从[{0}]加载服务器配置
 catalina.incorrectPermissions=权限错误,此文件没有读取权限
 catalina.init=服务器在[{0}]毫秒内初始化
 catalina.initError=初始化 Catalina 时出错
 catalina.noCluster=由于[{0}]未找到群集Ruleset。已禁用群集配置。
+catalina.noNatming=命名环境已禁用
+catalina.noServer=无法启动服务器,服务器实例未配置
 catalina.serverStartFail=所必需的服务组件启动失败,所以无法启动Tomcat
+catalina.shutdownHookFail=关闭挂钩在尝试停止服务器时遇到错误
+catalina.startup=[{0}]毫秒后服务器启动
 catalina.stopError=停止 Catalina 时出错
+catalina.stopServer=未配置关闭端口。通过OS信号关闭服务器。服务器未关闭。
+catalina.stopServer.connectException=无法联系[{0}:{1}](基端口[{2}]和偏移量[{3}])。Tomcat可能不在运行。
 catalina.usage=用法: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop }
 
 catalinaConfigurationSource.cannotObtainURL=无法获取相对路径 [{0}] 的URL。 检查catalina.base是否已设置。
 
+connector.noSetExecutor=连接器[{0}]不支持外部执行器。找不到方法setExecutor(java.util.concurrent.Executor)
+connector.noSetSSLImplementationName=连接器[{0}]不支持更改SSL实现。找不到方法setslimplementationname(String)。
+
 contextConfig.altDDNotFound=未找到 alt-dd 文件 [{0}]
+contextConfig.annotationsStackOverflow=由于StackOverflower错误,无法完成对web应用程序[{0}]的批注的扫描。可能的根本原因包括-Xss的设置过低和非法的循环继承依赖项。正在处理的类层次结构是[{1}]
 contextConfig.applicationMissing=web.xml文件丢失,只使用默认。
 contextConfig.applicationParse=解析应用程序的web.xml错误,位置:[{0}]
 contextConfig.applicationPosition=发生在第[{0}]行,属性[{1}]
@@ -57,10 +68,12 @@ contextConfig.missingRealm=对应的认证领域未配置
 contextConfig.processAnnotationsDir.debug=使用注解 [{0}]扫描目录中的类文件
 contextConfig.processAnnotationsJar.debug=扫描jar文件中注解[{0}]的类文件
 contextConfig.processAnnotationsWebDir.debug=扫描 web 应用程序目录下含有 [{0}] 注解的 class 文件
+contextConfig.resourceJarFail=无法处理在URL[{0}]处找到的JAR,以便将静态资源包含在名为[{1}]的上下文中
 contextConfig.role.auth=在标签<auth-constraint>的子标签<security-role>中没有定义角色名[{0}]
 contextConfig.role.link=<role-link>中使用的安全角色[{0}]未被定义在<security-role>中
 contextConfig.role.runas=<run-as> 中使用的安全角色名 [{0}],未在 <security-role> 中定义
 contextConfig.sci.debug=无法为[{0}]处理ServletContainerInitializer,很可能是由于丢失了一个使用@HandlesTypes注解定义的类
+contextConfig.sci.info=无法处理[{0}]的ServletContainerInitializer。这很可能是由于@handleTypes注释中定义的类丢失所致。为完整堆栈跟踪启用调试级别日志记录。
 contextConfig.servletContainerInitializerFail=无法检测到上下文名称为[{0}]的ServletContainerInitializers
 contextConfig.start=ContextConfig:开始处理
 contextConfig.stop=ContextConfig:停止处理
@@ -73,60 +86,95 @@ contextConfig.xmlSettings=上下文[{0}]将解析web.xml和web-fragment.xml文
 embedded.notmp=在[{0}]找不到指定的临时文件夹
 
 engineConfig.cce=生命周期事件数据对象[{0}]不是一个引擎(Engine)
-engineConfig.stop=配置引擎,处理进程停止。
+engineConfig.start=EngineConfig:处理开始。
+engineConfig.stop=引擎配置:处理进程停止
 
 expandWar.copy=错误的拷贝[{0}] to [{1}]
 expandWar.createFailed=无法创建文件夹[{0}]。
+expandWar.createFileFailed=无法创建文件[{0}]
 expandWar.deleteFailed=[{0}] 无法被彻底删除。其余残留文件可能会导致问题
 expandWar.deleteOld=发现一个展开的目录[{0}],它的最后修改时间与关联的WAR不一致.它将被删除.
 expandWar.illegalPath=归档[{0}]格式错误,将被忽略:条目包含非扩展到[{2}]的非法路径[{1}],因为它超出了定义的docBase [{3}]
+expandWar.lastModifiedFailed=无法为[{0}]设置上次修改时间
 expandWar.missingJarEntry=无法获得 JarEntry [{0}] 的输入流 - WAR 文件是否已损坏?
 
+failedContext.start=无法处理全局,每个主机或特定于上下文的context.xml文件,因此无法启动[{0}]上下文。
+
 hostConfig.appBase=主机[{0}]的应用程序基础[{1}]不存在或不是目录。deployOnStartUp和autoDebug已设置为false,以防止部署错误。其他错误仍然可能发生。
+hostConfig.canonicalizing=试图取消部署[{1}]时,无法确定[{0}]的规范路径
+hostConfig.cce=生命周期事件数据对象[{0}]不是主机
 hostConfig.context.remove=移除上下文[{0}]错误
+hostConfig.context.restart=上下文[{0}]重新启动时出错。
+hostConfig.createDirs=无法为部署创建目录:[{0}]
+hostConfig.deploy.error=部署web应用程序目录[{0}]时发生异常
+hostConfig.deployDescriptor=正在部署部署描述符[{0}]。
 hostConfig.deployDescriptor.blocked=(:未部署上下文路径为[{0}]的Web应用程序,因为它包含一个部署描述符[{1}],该描述符可能包含安全部署应用程序所需的配置,但此主机的DeployXML设置阻止了部署描述符的处理。应该在[{2}]创建适当的描述符来部署此应用程序。
 hostConfig.deployDescriptor.error=部署描述符[{0}]时出错
 hostConfig.deployDescriptor.finished=部署描述符[{0}]的部署已在[{1}]ms内完成
+hostConfig.deployDescriptor.hiddenDir=使用外部docBase部署部署描述符[{0}]意味着appBase中的目录[{1}]将被忽略
+hostConfig.deployDescriptor.hiddenWar=使用外部docBase部署部署描述符[{0}]意味着appBase中的WAR[{1}]将被忽略
 hostConfig.deployDescriptor.localDocBaseSpecified=(:在主机appBase 中指定了docBase [{0}],将被忽略
+hostConfig.deployDescriptor.path=部署描述符[{1}]中值为[{0}]的路径属性已被忽略
+hostConfig.deployDescriptor.threaded.error=等待部署描述符的多线程部署完成时出错
 hostConfig.deployDir=把web 应用程序部署到目录 [{0}]
 hostConfig.deployDir.error=无法部署应用目录 [{0}]
+hostConfig.deployDir.finished=Web应用程序目录[{0}]的部署已在[{1}]毫秒内完成
+hostConfig.deployDir.threaded.error=等待目录的多线程部署完成时出错
+hostConfig.deployWar=正在部署web应用程序存档文件[{0}]
 hostConfig.deployWar.error=部署 Web 应用程序 archive [{0}] 时出错
+hostConfig.deployWar.finished=web应用程序存档文件[{0}]的部署已在[{1}]ms内完成
 hostConfig.deployWar.hiddenDir=将忽略目录[{0}],因为WAR [{1}]优先,unpackWAR为false
 hostConfig.deployWar.threaded.error=等待WAR文件的多线程部署完成时出错
 hostConfig.deploying=部署发现的web应用
 hostConfig.docBaseUrlInvalid=所提供的部署目录无法用URL来表示
+hostConfig.expand=正在扩展web应用程序存档文件[{0}]
 hostConfig.expand.error=解压WEB应用程序文件[{0}]时异常
 hostConfig.ignorePath=忽略appBase中的路径[{0}]以进行自动部署
+hostConfig.illegalWarName=战争名称[{0}]无效。存档将被忽略
+hostConfig.jmx.register=注册上下文[{0}]失败。
 hostConfig.jmx.unregister=移除注册上下文[{0}]失败
+hostConfig.reload=重新加载上下文[{0}]
+hostConfig.resourceNotAbsolute=无法从上下文[{0}]中删除资源,因为[{1}]不是绝对路径
 hostConfig.start=HostConfig: 开始处理
 hostConfig.stop=:)Host配置:停止处理
+hostConfig.undeploy=正在取消部署上下文[{0}]
+hostConfig.undeployVersion=正在取消部署没有活动会话的旧版本上下文[{0}]
+
+listener.createFailed=未启用可选侦听器[{0}]
+
+passwdUserDatabase.readFail=无法从/etc/passwd获取完整的用户集
 
 tomcat.addWebapp.conflictChild=无法在[{0}]处部署到上下文路径[{1}],因为存在上下文[{2}]
 tomcat.addWebapp.conflictFile=由于现有文件[{2}]的存在,无法在[{0}]将战争部署到上下文路径[{1}]
+tomcat.baseDirMakeFail=无法创建用作基本目录的目录{0}
 tomcat.baseDirNotDir=基本目录指定的位置[{0}]不是一个目录
 tomcat.defaultMimeTypeMappingsFail=无法加载默认MIME类型
 tomcat.homeDirMakeFail=无法创建用作主目录的目录 [{0}]
 tomcat.invalidCommandLine=无效的命令行参数 [{0}]
+tomcat.noContextClass=无法为主机[{1}]和url[{2}]实例化上下文类[{0}]
 tomcat.noContextXml=不能找到web 应用的context.xml [{0}]
 
 userConfig.database=加载用户数据库异常
+userConfig.deploy=正在为用户[{0}]部署web应用程序
 userConfig.deploy.threaded.error=等待用户目录的多线程部署完成时出错
 userConfig.deploying=正在部署用户 web 应用程序
 userConfig.error=为用户 [{0}]部署web应用发生错误
 userConfig.start=用户配置:处理开始
+userConfig.stop=UserConfig:处理停止
 
-versionLoggerListener.arg=命令行参数:[{0}]
-versionLoggerListener.catalina.base=CATALINA_BASE:[{0}]
-versionLoggerListener.catalina.home=CATALINA_HOME:         {0}
+versionLoggerListener.arg=命令行参数:{0}
+versionLoggerListener.catalina.base=CATALINA_BASE:     {0}
+versionLoggerListener.catalina.home=CATALINA_HOME:     {0}
 versionLoggerListener.env=环境变量:[{0}] = [{1}]
-versionLoggerListener.java.home=Java 环境变量:         {0}
-versionLoggerListener.os.arch=架构:                  {0}
-versionLoggerListener.os.version=OS.版本:               {0}
-versionLoggerListener.prop=系统属性:       {0} = {1}
-versionLoggerListener.serverInfo.server.built=服务器构建:            {0}
-versionLoggerListener.serverInfo.server.number=服务器版本号(:{0}
-versionLoggerListener.serverInfo.server.version=Server.服务器版本:     {0}
-versionLoggerListener.vm.vendor=JVM.供应商:            {0}
-versionLoggerListener.vm.version=JVM 版本:              {0}
+versionLoggerListener.java.home=Java 环境变量:     {0}
+versionLoggerListener.os.arch=架构:              {0}
+versionLoggerListener.os.name=操作系统名称:      {0}
+versionLoggerListener.os.version=OS.版本:           {0}
+versionLoggerListener.prop=系统属性:            {0} = {1}
+versionLoggerListener.serverInfo.server.built=服务器构建:        {0}
+versionLoggerListener.serverInfo.server.number=服务器版本号(:     {0}
+versionLoggerListener.serverInfo.server.version=Server.服务器版本: {0}
+versionLoggerListener.vm.vendor=JVM.供应商:        {0}
+versionLoggerListener.vm.version=Java虚拟机版本:    {0}
 
 webAnnotationSet.invalidInjection=方法资源注入注解无效。
diff --git a/java/org/apache/catalina/storeconfig/LocalStrings_zh_CN.properties b/java/org/apache/catalina/storeconfig/LocalStrings_zh_CN.properties
index c565187..c02f916 100644
--- a/java/org/apache/catalina/storeconfig/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/storeconfig/LocalStrings_zh_CN.properties
@@ -13,11 +13,31 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+config.emptyObjectName=无效的空对象名
+config.missingContextFile=缺少要存储的上下文[{0}]的配置文件
 config.objectNameNotFound=目标[{0}]未找到
+config.storeContextError=存储上下文[{0}]时出错
+config.storeServerError=存储服务器时出错
+
+factory.storeNoDescriptor=元素类[{0}]的描述符未配置!
+factory.storeTag=存储标记[{0}](对象:[{1}])。
+
+globalNamingResourcesSF.noFactory=找不到NamingResources存储工厂
+globalNamingResourcesSF.wrongElement=错误的元素[{0}]
 
 registry.loadClassFailed=无法加载类 [{0}]
 
 standardContextSF.cannotWriteFile=无法在 [{0}] 写入文件
+standardContextSF.canonicalPathError=无法获取配置文件[{0}]的规范路径
+standardContextSF.moveFailed=[{0}]处的上下文原始文件为空,不是文件或不可写
+standardContextSF.storeContext=将上下文[{0}]配置分别存储在路径[{1}]
+standardContextSF.storeContextWithBackup=将上下文[{0}]配置与备份分别存储在路径[{1}]
+
+storeConfigListener.loadError=加载StoreConfig时出错
+storeConfigListener.notServer=侦听器已添加到服务器以外的组件,因此将被忽略
+storeConfigListener.registerError=注册StoreConfig MBean时出错
+
+storeFactory.noDescriptor=元素[{0}].[{1}]的描述符未配置
 
 storeFileMover.directoryCreationError=无法创建目录 [{0}]
 storeFileMover.renameError=无法将 [{0}] 重命名为 [{1}]
diff --git a/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
index fef5753..d2d634d 100644
--- a/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
@@ -20,6 +20,8 @@ groupChannel.listener.alreadyExist=侦听器已存在:[{0}][{1}]
 groupChannel.noDestination=没有指定目的地
 groupChannel.nullMessage=无法发送空消息
 groupChannel.optionFlag.conflict=拦截器选项标志冲突:[{0}]
+groupChannel.receiving.error=接收消息时出错:
+groupChannel.sendFail.noRpcChannelReply=找不到rpc通道,无法发送NoRpcChannelReply。
 groupChannel.unable.deserialize=无法反序列化消息:[{0}]
 groupChannel.unable.sendHeartbeat=无法通过Tribes拦截器堆栈发送心跳。 会再试一次。
 groupChannel.warn.noUtilityExecutor=没有公共的executor 被设置时,创建一个
diff --git a/java/org/apache/catalina/tribes/group/interceptors/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/group/interceptors/LocalStrings_zh_CN.properties
index 62cf1a1..8fd3f13 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/group/interceptors/LocalStrings_zh_CN.properties
@@ -16,14 +16,22 @@
 domainFilterInterceptor.member.refused=成员被拒绝加入集群 cluster[{0}]
 domainFilterInterceptor.message.refused=从集群[{0}]中接收的消息被拒绝
 
+encryptInterceptor.algorithm.required=加密算法是必需的,充分说明,例如AES / CBC / PKCS5Padding
+encryptInterceptor.algorithm.unsupported-mode=EncryptInterceptor不支持分组密码模式[{0}]
 encryptInterceptor.decrypt.error.short-message=解密消息失败: 结尾消息提前结束
 encryptInterceptor.decrypt.failed=无法解密信息
 encryptInterceptor.encrypt.failed=无法加密信息
 encryptInterceptor.init.failed=初始化EncryptInterceptor失败
+encryptInterceptor.key.required=需要加密密钥
 encryptInterceptor.tcpFailureDetector.ordering=加密拦截器必须位于TCP故障检测器的上游。请重新订购加密拦截器,将其列在通道拦截器管道中的TCP故障检测器之前。
 
-gzipInterceptor.report=:)GZip 拦截器报告[\n\
-\t合计 消息: {0}\n\
+fragmentationInterceptor.fragments.missing=碎片丢失。
+fragmentationInterceptor.heartbeat.failed=无法在frag拦截器中执行心跳清除
+
+gzipInterceptor.compress.failed=无法压缩字节内容
+gzipInterceptor.decompress.failed=无法解压缩字节内容
+gzipInterceptor.report=GZip拦截器报告[\n\
+\t合计消息: {0}\n\
 \tTx 压缩的消息: {1}\n\
 \tTx 未压缩的消息: {2}\n\
 \tRx 压缩的消息: {3}\n\
@@ -36,26 +44,42 @@ gzipInterceptor.report=:)GZip 拦截器报告[\n\
 \tRx 未压缩的字节: {10}\n\
 ]
 
+messageDispatchInterceptor.AsyncMessage.failed=处理异步消息时出错。
+messageDispatchInterceptor.completeMessage.failed=无法报告已完成的邮件。
 messageDispatchInterceptor.errorMessage.failed=无法回传错误信息
 messageDispatchInterceptor.queue.full=异步队列已满,达到 [{0}] 字节的限制,当前:[{1}] 字节
 messageDispatchInterceptor.unableAdd.queue=无法将消息添加到异步队列,队列 bug?
 messageDispatchInterceptor.warning.optionflag=警告!你正在覆盖异步选项标志,这将禁用其它程序可能用到的 Channel.SEND_OPTIONS_ASYNCHRONOUS。
 
+nonBlockingCoordinator.electionMessage.sendfailed=无法将选择消息发送到:[{0}]
 nonBlockingCoordinator.heartbeat.failed=无法执行心跳
 nonBlockingCoordinator.heartbeat.inconsistency=心跳发现不一致,重新启动选举
+nonBlockingCoordinator.memberAdded.failed=添加成员后无法开始选举。
 nonBlockingCoordinator.memberAlive.failed=无法执行成员活动检查,猜测成员下线。
 nonBlockingCoordinator.memberDisappeared.failed=当成员被移除后无法启动选举
 nonBlockingCoordinator.processCoordinationMessage.failed=处理协调消息时出错。 可能是致命的。
+nonBlockingCoordinator.report=协调事件[类型={0}\n\
+本地:{1}\n\
+坐标:{2}\n\
+视图:{3}\n\
+建议视图:{4}\n\
+成员:{5}\n\
+信息:{6}\n\
+]
+
+orderInterceptor.messageAdded.sameCounter=添加的消息具有相同的计数器,同步错误。禁用订单拦截程序
 
 staticMembershipInterceptor.no.failureDetector=没有TcpFailureDetector。 自动检测静态成员无法正常工作。 通过在TcpFailureDetector下定义StaticMembershipInterceptor,可以自动检测静态成员。
 staticMembershipInterceptor.no.pingInterceptor=在没有TcpPingInterceptor的情况下,静态成员的健康检查不会正常工作。只有定义了TcpPingInterceptor,才能使健康检查正常进行。
 staticMembershipInterceptor.sendLocalMember.failed=本地成员通知失败
 staticMembershipInterceptor.sendShutdown.failed=关闭通知失败。
 
+tcpFailureDetector.already.disappeared=验证完成。成员已消失[{0}]。
 tcpFailureDetector.failureDetection.failed=无法进行失败监测,假定成员宕机。[{0}]
 tcpFailureDetector.heartbeat.failed=TCP心跳检测器无法执行心跳
 tcpFailureDetector.member.disappeared=认证完成。成员消失[{0}]
 tcpFailureDetector.memberDisappeared.verify=(:收到的membermissed[{0}]消息。将验证。
+tcpFailureDetector.performBasicCheck.memberAdded=成员已添加,即使我们未收到通知:[{0}]。
 tcpFailureDetector.still.alive=验证完成。成员 [{0}] 仍然存活
 tcpFailureDetector.suspectMember.alive=验证可疑成员服务器还活着。[{0}]
 tcpFailureDetector.suspectMember.dead=可疑对象,确认已死。[{0}]
@@ -63,16 +87,19 @@ tcpFailureDetector.suspectMember.dead=可疑对象,确认已死。[{0}]
 tcpPingInterceptor.ping.failed=无法发送 TCP ping
 tcpPingInterceptor.pingFailed.pingThread=不能从ping 线程发送ping
 
-throughputInterceptor.report=吞吐量拦截器 报告[\n\
-\   传输消息: {0} 消息数.\n\
-\   发送: {1} MB(总共)\n\
-\   发送: {2} MB (应用)\n\
-\   耗时: {3} 秒\n\
-\   传输速率: {4}MB/sec (总共)\n\
-\   传输速率: {5}MB/sec (应用)\n\
-\  错误消息: {6}\n\
-\  接收消息: {7} 消息数\n\
-\  接收速率: {8} MB/sec (从第一个消息开始)\n\
-\  收到: {9}MB]
+throughputInterceptor.report=吞吐量拦截器报告[\n\
+\    传输消息: {0}消息数\n\
+\    发送:{1}MB(总共)\n\
+\    发送:{2}MB (应用)\n\
+\    耗时:{3}秒\n\
+\    传输速率:{4}MB/秒(总共)\n\
+\    传输速率:{5}MB/秒(应用)\n\
+\    错误消息:{6}\n\
+\    接收消息:{7} 消息数\n\
+\    接收速率:{8} MB/秒(从第一个消息开始)\n\
+\    收到:{9}MB]\n\
+\n
 
+twoPhaseCommitInterceptor.expiredMessage=正在删除过期邮件[{0}]
 twoPhaseCommitInterceptor.heartbeat.failed=无法在两阶段提交拦截器上执行心跳。
+twoPhaseCommitInterceptor.originalMessage.missing=收到确认,但原始邮件丢失。Id:[{0}]
diff --git a/java/org/apache/catalina/tribes/io/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/io/LocalStrings_zh_CN.properties
index b21c8b7..3e79933 100644
--- a/java/org/apache/catalina/tribes/io/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/io/LocalStrings_zh_CN.properties
@@ -13,11 +13,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+bufferPool.created=已创建缓冲池,最大大小为:[{0}]字节,类型为:[{1}]
+
 objectReader.retrieveFailed.socketReceiverBufferSize=无法检索套接字接收器缓冲区大小,设置为默认43800字节。
 
 replicationStream.conflict=和非公开接口类加载器冲突
 
+xByteBuffer.discarded.invalidHeader=丢弃了包,头无效。
 xByteBuffer.no.package=XByteBuffer中不存在数据包
 xByteBuffer.size.larger.buffer=大小比现有缓冲区大。
 xByteBuffer.unableCreate=不能创建数据包, buffer 太小
+xByteBuffer.unableTrim=修剪的字节数不能超过可用字节数。长度:[{0}]修剪:[{1}]
 xByteBuffer.wrong.class=消息对应类不符合要求。 它应该实现Serializable,而不是:[{0}]。
diff --git a/java/org/apache/catalina/tribes/jmx/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/jmx/LocalStrings_zh_CN.properties
index c086c48..9e33f58 100644
--- a/java/org/apache/catalina/tribes/jmx/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/jmx/LocalStrings_zh_CN.properties
@@ -14,5 +14,8 @@
 # limitations under the License.
 
 jmxRegistry.no.domain=未指定JMX域
+jmxRegistry.objectName.failed=请求的ObjectName[{0}]无效
 jmxRegistry.registerJmx.failed=无法注册名称为 [{1}] 的对象 [{0}]
+jmxRegistry.registerJmx.notCompliant=请求的对象[{0}]不符合JMX规范
+jmxRegistry.unregisterJmx.failed=无法注销名为[{0}]的MBean
 jmxRegistry.unregisterJmx.notFound=ObjectName[{0}]还未注册到MBeanServer
diff --git a/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties
index 179a660..eea511e 100644
--- a/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties
@@ -13,9 +13,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+McastService.domain=无法发送域更新
 McastService.parseSoTimeout=无法解析SoTimeout:[{0}]
+McastService.parseTTL=无法分析TTL:[{0}]
 McastService.payload=无法发送负载更新
+McastService.stopFail=无法停止mcast服务,级别:[{0}]
 
+mcastService.exceed.maxPacketSize=数据包长度[{0}]超过了最大数据包大小[{1}]字节。
 mcastService.missing.property=McastService:缺少必需属性 [{0}]。
 mcastService.noStart=多路广播发送未启动或未启用
 
@@ -24,7 +28,12 @@ mcastServiceImpl.bind.failed=绑定到多播地址失败。仅绑定到端口。
 mcastServiceImpl.error.receiving=接收mcast包时出错。睡眠500毫秒
 mcastServiceImpl.invalid.startLevel=无效的启动级别。只接受以下级别:Channel.MBR_RX_SEQ或 Channel.MBR_TX_SEQ
 mcastServiceImpl.invalid.stopLevel=无效的停止级别。只有Channel.MBR_RX_SEQ和Channel.MBR_TX_SEQ是可接受的级别
+mcastServiceImpl.memberDisappeared.failed=无法处理成员已消失的消息。
+mcastServiceImpl.packet.tooLong=收到的多播数据包太长,正在删除包:[{0}]
+mcastServiceImpl.receive.running=McastService.receive已经运行。
 mcastServiceImpl.recovery=家族成员,运行恢复线程,广播不是功能。
+mcastServiceImpl.recovery.failed=恢复尝试次数[{0}]失败,请在[{1}]秒内重试
+mcastServiceImpl.recovery.startFailed=恢复线程无法启动成员资格服务。
 mcastServiceImpl.recovery.stopFailed=恢复线程未能停止成员服务。
 mcastServiceImpl.recovery.successful=成员身份恢复成功。
 mcastServiceImpl.send.failed=无法发送多播信息
@@ -37,15 +46,20 @@ mcastServiceImpl.unableReceive.broadcastMessage=无法接收广播消息。
 mcastServiceImpl.waitForMembers.done=休眠完毕,成员已连接,启动等级:[{0}]
 mcastServiceImpl.waitForMembers.start=休眠[{0}]毫秒后启动连接集群,启动登记:[{1}]
 
+memberImpl.invalid.package.begin=无效的包,应以“[{0}”开头。
+memberImpl.invalid.package.end=无效的包,应以“[{0}”结尾
 memberImpl.large.payload=负载太大以至于难以处理
 memberImpl.notEnough.bytes=成员包中的字节不够。
 memberImpl.package.small=成员包太小以至于不能校验。
 
 staticMember.invalid.uuidLength=UUID必须正好是16个字节,而不是:[{0}]
 
+staticMembershipProvider.heartbeat.failed=无法发送StaticMembershipProvider.ping消息。
 staticMembershipProvider.leftOver.ignored=消息 [{0}] 被忽略。
 staticMembershipProvider.pingThread.failed=无法发送ping。
+staticMembershipProvider.replyRequest.ignored=忽略消息[{0}]。
 staticMembershipProvider.startMembership.noReplies=0响应,可能超时
 staticMembershipProvider.stopMembership.sendFailed=无法发送成员消息
 
 staticMembershipService.noLocalMember=静态成员列表中没有本地成员。
+staticMembershipService.stopFail=无法停止静态成员资格服务,级别:[{0}]
diff --git a/java/org/apache/catalina/tribes/membership/cloud/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/membership/cloud/LocalStrings_zh_CN.properties
index a6dddcb..e8cc5d2 100644
--- a/java/org/apache/catalina/tribes/membership/cloud/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/membership/cloud/LocalStrings_zh_CN.properties
@@ -24,5 +24,10 @@ cloudMembershipService.stopFail=无法停止云成员资格服务,级别为:
 dnsMembershipProvider.dnsError=由于命名空间[{0}]导致的多个错误主机地址
 
 kubernetesMembershipProvider.invalidPod=Pod丢失了一些必须的属性
+kubernetesMembershipProvider.invalidPodsList=无效的播客列表:{0}。
+kubernetesMembershipProvider.jsonError=JSON错误
 kubernetesMembershipProvider.memberError=创建成员错误
 kubernetesMembershipProvider.noNamespace=命名空间未设置
+kubernetesMembershipProvider.streamError=无法打开流。
+
+tokenStream.failedConnection=无法使用标记{1}连接到{0}
diff --git a/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
index 14441bd..6d2631b 100644
--- a/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
@@ -14,19 +14,34 @@
 # limitations under the License.
 
 abstractReplicatedMap.broadcast.noReplies=广播收到0回复,可能是超时了。
+abstractReplicatedMap.heartbeat.failed=无法发送AbstractReplicatedMap.ping消息
+abstractReplicatedMap.init.completed=AbstractReplicatedMap[{0}]初始化在[{1}]ms内完成。
+abstractReplicatedMap.init.start=正在初始化上下文名称为:[{0}]的AbstractReplicatedMap
 abstractReplicatedMap.leftOver.ignored=消息[{0}]被忽略
+abstractReplicatedMap.leftOver.pingMsg=PING消息已超过超时时间。映射成员[{0}]可能已从映射成员身份中删除。
 abstractReplicatedMap.mapMember.unavailable=Member[{0}]还不可用
+abstractReplicatedMap.mapMemberAdded.added=已添加映射成员:[{0}]
 abstractReplicatedMap.mapMemberAdded.nullMember=通知的成员未注册:[{0}]
 abstractReplicatedMap.member.disappeared=成员[{0}]已消失。相关的映射项将重新定位到新节点。
+abstractReplicatedMap.ping.stateTransferredMember=成员[{0}]已状态转移,但尚不可用。
+abstractReplicatedMap.ping.timeout=映射[{1}]中的成员[{0}]在ping处理中超时。
+abstractReplicatedMap.relocate.complete=已在[{0}]ms内完成映射项的重新定位。
 abstractReplicatedMap.transferState.noReplies=传输状态,0响应,也许是超时。
-abstractReplicatedMap.unable.get=无法复制 AbstractReplicatedMap.get 操作的数据
+abstractReplicatedMap.unable.deserialize.MapMessage=无法反序列化映射消息。
+abstractReplicatedMap.unable.diffObject=无法区分对象。将复制整个对象。
+abstractReplicatedMap.unable.get=无法复制AbstractReplicatedMap.get操作的数据
 abstractReplicatedMap.unable.put=无法复制AbstractReplicatedMap.Put操作的数据
 abstractReplicatedMap.unable.relocate=无法将[{0}]重新定位到新的备份节点
-abstractReplicatedMap.unable.retrieve=无法获取远程对象,key:[{0}]
+abstractReplicatedMap.unable.remove=无法为AbstractReplicatedMap.remove操作复制数据
+abstractReplicatedMap.unable.replicate=无法复制数据。
+abstractReplicatedMap.unable.retrieve=无法获取远程对象,主键:[{0}]
+abstractReplicatedMap.unable.transferState=无法传输AbstractReplicatedMap状态
+abstractReplicatedMap.unableApply.diff=无法将diff应用于键:[{0}]
 abstractReplicatedMap.unableSelect.backup=无法选择备用节点
 abstractReplicatedMap.unableSend.startMessage=无法发送map启动消息。
 abstractReplicatedMap.unableStart=无法启动复制Map
 
+lazyReplicatedMap.unableReplicate.backup=无法将备份密钥:[{0}]复制到备份:[{1}]。原因:[{2}]
 lazyReplicatedMap.unableReplicate.proxy=不能复制proxy key:[{0}]到备份:[{1}]. 原因是:[{2}]
 
 mapMessage.deserialize.error.key=反序列化MapMessage主键失败
diff --git a/java/org/apache/catalina/tribes/transport/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/transport/LocalStrings_zh_CN.properties
index bd74dd2..cd8a42b 100644
--- a/java/org/apache/catalina/tribes/transport/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/transport/LocalStrings_zh_CN.properties
@@ -15,7 +15,10 @@
 
 PooledSender.senderDisconnectFail=与 sender 断开连接失败
 
+pooledSender.closed.queue=队列已关闭
+
 receiverBase.bind.failed=对内容类型[{2}]返回[{3}]使用[{0}]匹配[{1}]
 receiverBase.socket.bind=服务器套接字接收器绑定到:[{0}]
+receiverBase.udp.bind=绑定到的UDP接收器服务器套接字:[{0}]
 receiverBase.unable.bind=无法绑定套接字端口:{{0}},出现异常
 receiverBase.unable.bind.udp=无法将UDP套接字绑定到:[{0}]抛出错误。
diff --git a/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties
index cb7d2a6..b2f2974 100644
--- a/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties
@@ -16,31 +16,43 @@
 nioReceiver.alreadyStarted=ServerSocketChannel已经被启动
 nioReceiver.cleanup.fail=无法清除关闭的选择器
 nioReceiver.clientDisconnect=复制客户端已断开连接,轮询密钥时出错。忽略客户端。
+nioReceiver.eventsError=处理事件时出错
 nioReceiver.requestError=NioReceiver无法处理请求
 nioReceiver.run.fail=不能允许复制监听器
 nioReceiver.start.fail=无法启动集群接收器
 nioReceiver.stop.fail=无法关闭集群接收的选择器
 nioReceiver.stop.threadRunning=NioReceiver线程没有及时停止。关闭选择器时可能会观察到错误。
 nioReceiver.threadpool.fail=ThreadPool 无法初始化。 监听器未启动。
+nioReceiver.threadsExhausted=通道密钥已注册,但对上一次[{0}]ms没有兴趣的操作(已取消:[{1}]):[{2}]最后一次访问:[{3}]可能的原因:所有使用的线程,请执行线程转储
 
 nioReplicationTask.error.register.key=错误的注册key被读取:[{0}]
+nioReplicationTask.exception.drainChannel=TcpReplicationThread.drainChannel中捕获异常
 nioReplicationTask.process.clusterMsg.failed=处理集群消息失败
 nioReplicationTask.unable.ack=不能通过channel发送ack,channel已经断开?[{0}]
+nioReplicationTask.unable.drainChannel.ioe=复制工作器中的IOException,无法耗尽通道。可能的原因:保持活动套接字关闭[{0}]。
 
 nioSender.already.connected=NioSender已经处于连接状态
 nioSender.datagram.already.established=数据报通道已经建立。连接可能正在进行中。
 nioSender.key.inValid=Key无效,它必须是已经被取消的。
 nioSender.not.connected=NioSender未连接,这是不应该发生的。
+nioSender.receive.failedAck=收到一个失败的ack:org.apache.catalina.tribes.transport.Constants.FAIL_ack_DATA
 nioSender.sender.disconnected=发件人已断开连接,无法处理选择密钥。
+nioSender.socketChannel.already.established=套接字通道已建立。连接可能正在进行中
 nioSender.unable.disconnect=无法断开NioSender,消息=[{0}]
 nioSender.unable.receive.ack=无法接收确认消息。已到达套接字通道上的EOF。
 nioSender.unknown.state=数据处于未知状态。readyOps = [{0}]
 
+parallelNioSender.error.keepalive=对发件人进行keepalive测试时出错:[{0}]。
+parallelNioSender.operation.timedout=操作已超时([{0}]ms)。
+parallelNioSender.send.fail=[{0}]的成员发送失败;设置为可疑
 parallelNioSender.send.fail.retrying=成员发送失败:[{0}]; 设置为怀疑并重试。
 parallelNioSender.send.failed=并行的NIO.发送失败。
 parallelNioSender.sendFailed.attempt=发送失败,尝试: [{0}] 最大: [{1}]
+parallelNioSender.sender.disconnected.notRetry=未重试发送:[{0}];发件人已断开连接。
 parallelNioSender.sender.disconnected.sendFailed=发送失败且sender已断开连接,不再重试。
+parallelNioSender.unable.setup.NioSender=无法设置NioSender。
 
 pooledParallelSender.sender.disconnected=sender 未连接。
 pooledParallelSender.unable.open=无法打开nio选择器。
 pooledParallelSender.unable.retrieveSender=无法从sender池中获取一个sender
+pooledParallelSender.unable.retrieveSender.timeout=无法检索数据发件人,超时([{0}]ms)错误。
diff --git a/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
index f2c0ce9..cd2af0f 100644
--- a/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
@@ -15,6 +15,11 @@
 
 arrays.keyoffset.outOfBounds=key的偏移.超出了界限。
 arrays.length.outOfBounds=当前key下没有足够的元素,长度越界
+arrays.malformed.arrays=字节数组必须表示为{1,3,4,5,6}
+arrays.srcoffset.outOfBounds=srcoffset超出界限。
 
 executorFactory.not.running=执行器没有运行,无法强制把命令送入队列
 executorFactory.queue.full=队列已满
+
+uuidGenerator.createRandom=使用[{0}]创建用于UUID生成的SecureRandom实例花费了[{1}]毫秒。
+uuidGenerator.unable.fit=无法将[{0}]字节放入数组。长度:[{1}]所需长度:[{2}]
diff --git a/java/org/apache/catalina/users/LocalStrings_zh_CN.properties b/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
index c4915d3..9453bd4 100644
--- a/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
@@ -17,6 +17,7 @@ memoryUserDatabase.fileClose=关闭 [{0}] 失败
 memoryUserDatabase.fileDelete=无法删除 [{0}]
 memoryUserDatabase.fileNotFound=指定用户数据库[{0}]未找到
 memoryUserDatabase.notPersistable=用户数据库不可持久化 - 对目录没有写入权限
+memoryUserDatabase.nullGroup=指定的组名为空或零长度。将忽略组。
 memoryUserDatabase.nullRole=指定的角色名为Null或着长度为0。角色将被忽略,
 memoryUserDatabase.nullUser=Null或者零长度的用户名称,忽略这个用户。
 memoryUserDatabase.readOnly=用户数据库已被设为只读。修改无法保存
@@ -25,3 +26,5 @@ memoryUserDatabase.reloadError=从更新后的源 [{1}] 重新加载内存用户
 memoryUserDatabase.renameNew=无法将新文件重命名为 [{0}]
 memoryUserDatabase.renameOld=原文件无法改名为[{0}]
 memoryUserDatabase.restoreOrig=无法往原始文件中保存[{0}]
+memoryUserDatabase.writeException=向[{0}]写入IOException
+memoryUserDatabase.xmlFeatureEncoding=配置digester以允许在XML文件中使用java编码名称时发生异常。只支持IANA编码名称。
diff --git a/java/org/apache/catalina/util/LocalStrings_zh_CN.properties b/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
index adc17eb..4ad7254 100644
--- a/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
@@ -19,20 +19,35 @@ customObjectInputStream.logRequired=使用日志记录进行类名过滤需要
 customObjectInputStream.nomatch=类不能匹配合适的表达式,因为类被允许反序列化
 
 extensionValidator.extension-not-found-error=ExtensionValidator[{0}][{1}]: 请求的拓展[{2}]未找到。
+extensionValidator.extension-validation-error=扩展验证程序[{0}]:找不到[{1}]所需的扩展。
+extensionValidator.failload=加载扩展名[{0}]失败
 extensionValidator.web-application-manifest=web 应用程序清单
 
 introspection.classLoadFailed=加载 class [{0}] 失败
 
+lifecycleBase.alreadyDestroyed=在调用destroy()之后,在组件[{0}]上调用了destroy()方法。第二个呼叫将被忽略。
 lifecycleBase.alreadyStarted=在调用start()之后,在组件[{0}]上调用start()方法。第二个电话将被忽略。
+lifecycleBase.alreadyStopped=在调用stop()之后,对组件[{0}]调用了stop()方法。第二个调用将被忽略。
+lifecycleBase.destroyFail=未能销毁组件[{0}]
 lifecycleBase.destroyStopFail=在失败组件[{0}]上调用Stop()以触发清理,但也失败了
 lifecycleBase.initFail=初始化组件[{0}]失败。
+lifecycleBase.invalidTransition=无效的生命周期转变被尝试 [{0}]) 组件 [{1}] 状态 [{2}]
 lifecycleBase.setState=设置状态从[{0}]到[{1}]
+lifecycleBase.startFail=无法启动组件[{0}]
+lifecycleBase.stopFail=无法停止组件[{0}]
 
 lifecycleMBeanBase.registerFail=在组件初始化期间,无法注册名为{1}的对象{0}]
 
 netmask.cidrNegative=CIDR [{0}]为负数。
+netmask.cidrNotNumeric=CIDR[{0}]不是数字
 netmask.cidrTooBig=CIDR[{0}]大于地址长度[{1}]
 netmask.invalidAddress=地址 [{0}] 无效
 
+parameterMap.locked=不允许修改锁定的参数映射
+
+resourceSet.locked=不允许修改锁定的资源集
+
+sessionIdGeneratorBase.createRandom=使用[{0}]创建会话ID生成的SecureRandom实例花费了[{1}]毫秒。
+sessionIdGeneratorBase.random=初始化类{0}的随机数生成器时发生异常。回到java.secure.SecureRandom
 sessionIdGeneratorBase.randomAlgorithm=使用算法[{0}]初始化随机数生成器时发生异常
 sessionIdGeneratorBase.randomProvider=使用程序提供的初始化随机数生成器异常[{0}]
diff --git a/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties b/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
index e209cad..b5093ec 100644
--- a/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
@@ -13,21 +13,40 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+accessLogValve.alreadyExists=无法将访问日志从{0}重命名为{1},文件已存在
 accessLogValve.closeFail=关闭访问日志文件失败
+accessLogValve.deleteFail=未能删除旧的访问日志[{0}]
 accessLogValve.invalidLocale=无法将区域设置设为 [{0}]
 accessLogValve.invalidPortType=端口类型 [{0}] 无效,使用服务器(本地)端口
+accessLogValve.openDirFail=无法为访问日志创建目录[{0}]。
 accessLogValve.openFail=无法打开访问日志文件[{0}]。
+accessLogValve.renameFail=无法将访问日志从[{0}]重命名为[{1}]。
 accessLogValve.rotateFail=失败的循环切割访问日志.
+accessLogValve.unsupportedEncoding=未能将编码设置为[{0}],将使用系统默认字符集。
 accessLogValve.writeFail=无法写入日志消息[{0}]
 
 errorReportValve.description=描述
+errorReportValve.errorPageIOException=由于出现异常,无法在[{0}]处显示错误页
 errorReportValve.errorPageNotFound=在[{0}]无法找到静态错误页面
+errorReportValve.exception=例外情况
 errorReportValve.exceptionReport=异常报告
 errorReportValve.message=消息
+errorReportValve.noDescription=没有可用的描述
 errorReportValve.note=):注意
+errorReportValve.rootCause=根本原因。
 errorReportValve.rootCauseInLogs=主要问题的全部 stack 信息可以在 server logs 里查看
+errorReportValve.statusHeader=HTTP状态 {0} - {1}
+errorReportValve.statusReport=状态报告
+errorReportValve.type=类型
 errorReportValve.unknownReason=未知的原因
 
+extendedAccessLogValve.badXParam=无效的x参数格式,需要是'x-#(…)
+extendedAccessLogValve.badXParamValue=Servlet请求[{0}]的x参数值无效
+extendedAccessLogValve.decodeError=无法解码以[{0}]开头的其余字符
+extendedAccessLogValve.emptyPattern=模式只是空的或空白的
+extendedAccessLogValve.noClosing=未关闭)在解码中找到
+extendedAccessLogValve.patternParseError=分析模式[{0}]时出错
+
 http.400.desc=由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。
 http.400.reason=错误的请求
 http.401.desc=因为当前请求缺少对目标资源对有效的认证信息,所以它不会实施。
@@ -49,11 +68,15 @@ http.408.reason=请求超时
 http.409.desc=由于和目标资源对当前状态发生冲突,所以请求无法完成。
 http.409.reason=冲突
 http.410.desc=原始服务器上不再可以访问目标资源,并且此条件可能是永久性的。
+http.410.reason=跑了。
+http.411.desc=服务器拒绝接受没有定义内容长度的请求。
 http.411.reason=所需长度
 http.412.desc=在服务器上测试时,请求头字段中给出的一个或多个条件被评估为false。
 http.412.reason=前置条件失败
+http.413.desc=服务器拒绝处理请求,因为请求负载大于服务器愿意或能够处理的负载
 http.413.reason=有效载荷过大
 http.414.desc=服务器拒绝为请求提供服务,因为请求目标比服务器愿意解释的要长。
+http.414.reason=URI太长
 http.415.desc=源服务器拒绝服务请求,因为有效负载的格式在目标资源上此方法不支持。
 http.415.reason=不支持的媒体类型
 http.416.desc=(:请求的范围头字段中的任何范围都没有与选定资源的当前范围重叠,或者请求的范围集由于无效范围或小范围或重叠范围的过度请求而被拒绝。
@@ -61,6 +84,9 @@ http.416.reason=范围不满足
 http.417.desc=(:至少有一个入站服务器无法满足请求的Expect头字段中给定的期望。
 http.417.reason=期望的失败
 http.421.desc=请求被定向到一台无法响应的服务器
+http.421.reason=错误的请求。
+http.422.desc=服务器了解请求实体的内容类型,请求实体的语法正确,但无法处理包含的指令。
+http.422.reason=不可处理实体
 http.423.desc=源或目标资源的方法被锁
 http.423.reason=已锁定
 http.424.desc=这个方法不能在这个资源上执行,因为请求操作依赖另一个操作,但是另一个操作失败了。
@@ -68,31 +94,52 @@ http.424.reason=失败的依赖项
 http.426.desc=服务器拒绝使用当前协议执行请求,但可能愿意在客户端升级到其他协议后执行。
 http.426.reason=需要升级
 http.428.desc=原始服务器要求请求是有条件的。
+http.428.reason=要求先决条件
+http.429.desc=用户在给定的时间内发送了太多请求(“速率限制”)
 http.429.reason=请求过多
+http.431.desc=服务器不愿意处理该请求,因为它的头字段太大。
 http.431.reason=请求头的字段太大
 http.451.desc=服务器出于法律原因拒绝了此请求。
+http.451.reason=因法律原因无法获得。
 http.500.desc=服务器遇到一个意外的情况,阻止它完成请求。
+http.500.reason=内部服务器错误
+http.501.desc=服务器不支持完成请求所需的功能。
+http.501.reason=未实现
 http.502.desc=服务器在充当网关或代理时, 在尝试完成请求时, 从它访问的入站服务器收到无效响应。
+http.502.reason=坏网关
 http.503.desc=由于临时过载或计划维护,服务器当前无法处理请求,这可能会在一些延迟后得到缓解。
+http.503.reason=服务不可用。
 http.504.desc=服务器在充当网关或代理时,没有从上游服务器接收到完成请求所需访问的及时响应。
 http.504.reason=网关超时
+http.505.desc=服务器不支持或拒绝支持请求消息中使用的主要HTTP版本。
 http.505.reason=HTTP 版本不支持
 http.506.desc=服务器内部配置错误:选取的变体资源配置为自身去处理透明的内容协商,因此在协商进程中不是一个合适的终点。
+http.506.reason=变体也协商
 http.507.desc=无法对资源执行该方法,因为服务器无法存储成功完成请求所需的表示。
 http.507.reason=存储空间.不足
+http.508.desc=服务器终止了一个操作,因为它在处理“深度:无限”请求时遇到无限循环
 http.508.reason=监测到循环回路
+http.510.desc=请求中未满足访问资源的策略
 http.510.reason=没有.扩展
 http.511.desc=客户端需要进行身份验证才能获得网络访问权限。
+http.511.reason=需要网络身份验证
+
+jdbcAccessLogValve.close=无法关闭数据库。
+jdbcAccessLogValve.exception=执行插入访问项时发生异常
 
+remoteCidrValve.invalid=为{0}提供的配置无效。有关详细信息,请参阅以前的消息
 remoteCidrValve.noRemoteIp=客户端没有IP地址。请求被拒绝。
 
 remoteIpValve.invalidHostHeader=在HTTP请求头[{1}]中发现Host的无效值[{0}]
+remoteIpValve.invalidHostWithPort=HTTP头[{1}]中的主机值[{0}]包含将被忽略的端口号
 remoteIpValve.invalidPortHeader=HTTP标头[{1}]中的端口找到的值[{0}]无效
 
 requestFilterValve.configInvalid=为Remote [Addr | Host]阀门提供了一个或多个无效配置设置,阻止Valve及其父容器启动
 requestFilterValve.deny=根据[{1}]配置拒绝[{0}]的请求
 
+sslValve.certError=无法处理证书字符串[{0}]以创建java.security.cert.X509Certificate对象
 sslValve.invalidProvider=与此{[0}]请求关联的连接器上指定的SSL提供程序无效。 无法处理证书数据。
 
 stuckThreadDetectionValve.notifyStuckThreadCompleted=线程[{0}](id=[{3}])之前报告为卡住,但是已经完成。它活跃了大概[{1}]毫秒。{2,选择,0#|0< 仍有[{2}]个被Valve监控的线程可能卡住}
 stuckThreadDetectionValve.notifyStuckThreadDetected=线程[{0}](id=[{6}])已处于活动状态[{1}]毫秒(自[{2}]起),以便为[{4}]提供相同的请求,并且可能被卡住(此StuckThreadDetectionValve的配置阈值为[{5}]秒)。总共有{3}个线程受此阀监视,可能被卡住。
+stuckThreadDetectionValve.notifyStuckThreadInterrupted=线程[{0}](id=[{5}])已被中断,因为它在[{1}]毫秒(自[{2}]起)内处于活动状态,以便为[{3}]提供相同的请求,并且可能被卡住(此StuckThreadDetectionValve的配置中断阈值为[{4}]秒)。
diff --git a/java/org/apache/catalina/valves/rewrite/LocalStrings_zh_CN.properties b/java/org/apache/catalina/valves/rewrite/LocalStrings_zh_CN.properties
index bbd2934..1053848 100644
--- a/java/org/apache/catalina/valves/rewrite/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/valves/rewrite/LocalStrings_zh_CN.properties
@@ -13,4 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+rewriteValve.closeError=关闭配置时出错
+rewriteValve.invalidFlags=[{0}]标志[{1}]中的标志无效
+rewriteValve.invalidLine=无效行[{0}]
+rewriteValve.invalidMapClassName=无效的映射类名[{0}]
 rewriteValve.readError=读取配置时发生异常
diff --git a/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties b/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
index e5667c7..6eca519 100644
--- a/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
@@ -16,26 +16,44 @@
 abstractArchiveResourceSet.setReadOnlyFalse=基于存档的WebResourceSets 如基于jar的WebResourceSets 硬编码为只读,并且不能配置为读写
 
 abstractResource.getContentFail=无法把[{0}]作为byte数组返回
+abstractResource.getContentTooLarge=无法返回[{0}]作为字节数组,因为资源的大小[[1]]个字节大于字节数组的最大大小
+
+abstractResourceSet.checkPath=请求的路径[{0}]无效。必须以“/”开头。
 
 cache.addFail=无法将位于[{0}]的资源添加到Web应用程序[{1}]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间。
+cache.backgroundEvictFail=后台缓存收回进程无法释放上下文[{1}的缓存的[{0}]%-请考虑增加缓存的最大大小。在逐出之后,缓存中大约保留了[{2}]KB的数据。
+cache.objectMaxSizeTooBig=objectMaxSize的值[{0}]kB大于maxSize/20的限制,因此已缩减为[{1}]kB
+cache.objectMaxSizeTooBigBytes=为要缓存的最大对象大小[{0}] kB指定的值大于Integer.MAX_VALUE字节,后者是可以缓存的最大大小。该限制将设置为Integer.MAX_VALUE字节。
 
 cachedResource.invalidURL=无法创建CachedResourceURLStreamHandler实例,因为URL[{0}]畸形
 
+classpathUrlStreamHandler.notFound=无法使用线程上下文类加载器或当前类的类加载器加载资源{0}
+
 dirResourceSet.manifestFail=从[{0}]读取manifest失败
 dirResourceSet.notDirectory=基本和内部路径[{0}] {1} [{2}]指定的目录不存在。
+dirResourceSet.writeNpe=输入流不能为空
 
 extractingRoot.jarFailed=解压JAR文件[{0}]失败
 extractingRoot.targetFailed=无法为提取的 JAR 文件创建目录 [{0}]
 
 fileResource.getCanonicalPathFail=不能判断资源的标准路径[{0}]
+fileResource.getCreationFail=无法确定资源 [{0}] 的创建时间
 fileResource.getUrlFail=不能决定一个url 为资源[{0}]
 
+fileResourceSet.notFile=由基路径和内部路径[{0}]{1}[{2}]指定的文件不存在。
+
 jarResource.getInputStreamFail=无法获取JAR[{1}]中的资源文件[{0}]的一个InputStream
 
+jarResourceRoot.invalidWebAppPath=此资源总是引用一个目录,因此提供的webAppPath必须以/结尾,但提供的webAppPath是[{0}]
+
+jarWarResourceSet.codingError=编码错误
+
 standardRoot.checkStateNotStarted=如果当前未启动资源,则可能无法访问这些资源
+standardRoot.createInvalidFile=无法从[{0}]创建WebResourceSet。
 standardRoot.createUnknownType=无法为未知类型[{0}]创建WebResourceSet。
 standardRoot.invalidPath=资源路径[{0}]无效
 standardRoot.invalidPathNormal=资源路径[{0}]已规范化为无效的[{1}]
 standardRoot.lockedFile=Web应用程序[{0}]无法关闭通过以下堆栈跟踪打开的文件[{1}]
 standardRoot.noContext=尚未为WebResourceRoot配置上下文
 standardRoot.startInvalidMain=指定的主资源集 [{0}] 无效
+standardRoot.unsupportedProtocol=此web资源实现不支持URL协议[{0}]
diff --git a/java/org/apache/coyote/LocalStrings_zh_CN.properties b/java/org/apache/coyote/LocalStrings_zh_CN.properties
index 8de8f9a..7c5dc18 100644
--- a/java/org/apache/coyote/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/LocalStrings_zh_CN.properties
@@ -14,17 +14,25 @@
 # limitations under the License.
 
 abstractConnectionHandler.connectionsGet=为套接字[{1}]找到一个处理器[{0}]
+abstractConnectionHandler.error=读取请求时出错,忽略
 abstractConnectionHandler.ioexception.debug=正常的 IOException,忽略
+abstractConnectionHandler.negotiatedProcessor.fail=无法为协商协议[{0}]创建处理器
+abstractConnectionHandler.oome=无法完成请求的处理
+abstractConnectionHandler.process=正在处理状态为[{1}]的套接字[{0}]
 abstractConnectionHandler.processorCreate=创建新处理器[{0}]
 abstractConnectionHandler.processorPop=从缓存中弹出的处理器[{0}]
+abstractConnectionHandler.protocolexception.debug=ProtocolExceptions是正常的,被忽略
 abstractConnectionHandler.socketexception.debug=(:SocketException是正常的,忽略
 abstractConnectionHandler.upgradeCreate=为套接字包装程序[{1}]创建了升级处理器[{0}]
 
 abstractProcessor.fallToDebug=注意:更多的请求解析错误将以DEBUG级别日志进行记录。
 abstractProcessor.hostInvalid=[{0}] 是无效主机
 abstractProcessor.httpupgrade.notsupported=此协议不支持HTTP升级(upgrade)。
+abstractProcessor.noExecute=无法将处理传输到容器线程,因为此处理器当前未与SocketWrapper关联
+abstractProcessor.pushrequest.notsupported=此协议不支持服务器推送请求
 abstractProcessor.socket.ssl=获取SSL属性异常
 
+abstractProtocol.mbeanDeregistrationFailed=无法从MBean服务器[{1}]中注销名为[{0}]的MBean
 abstractProtocol.processorRegisterError=注册请求处理器错误
 abstractProtocol.processorUnregisterError=注销请求处理器错误
 abstractProtocol.waitingProcessor.add=添加处理器[{0}]到等待队列
@@ -33,6 +41,10 @@ abstractProtocol.waitingProcessor.remove=从等待的处理器中移除处理器
 abstractProtocolHandler.asyncTimeoutError=错误的处理异步超时
 abstractProtocolHandler.destroy=正在摧毁协议处理器 [{0}]
 abstractProtocolHandler.init=初始化协议处理器 [{0}]
+abstractProtocolHandler.pause=暂停ProtocolHandler[{0}]
+abstractProtocolHandler.portOffset=ProtocolHandler[{0}]的基本端口为[{1}],端口偏移量为[{2}]
+abstractProtocolHandler.resume=正在恢复ProtocolHandler[{0}]
+abstractProtocolHandler.setAttribute=使用值[{1}]设置属性[{0}]
 abstractProtocolHandler.start=开始协议处理句柄[{0}]
 abstractProtocolHandler.stop=正在停止ProtocolHandler [{0}]
 
@@ -40,5 +52,13 @@ asyncStateMachine.invalidAsyncState=调用[{0}]对于具有异步状态[{1}]的
 
 compressionConfig.ContentEncodingParseFail=检查压缩是否已经在使用时,解析Content-Encoding头失败
 
+request.notAsync=只有在异步处理或HTTP升级处理中切换到非阻塞IO才有效
+request.nullReadListener=传递给setReadListener()的侦听器不能为空
+request.readListenerSet=已设置非阻塞读取侦听器
+
+response.encoding.invalid=JRE无法识别编码[{0}]
+response.noTrailers.notSupported=不能为此响应设置拖车字段供应商。底层协议不支持尾部字段,或者协议要求在提交响应之前设置供应商
+response.notAsync=只有在异步处理或HTTP升级处理中切换到非阻塞IO才有效
 response.notNonBlocking=当响应尚未进入非阻塞模式时,调用 isReady() 无效
+response.nullWriteListener=传递给setWriteListener()的侦听器不能为空
 response.writeListenerSet=非阻塞的写监听已经被设置.
diff --git a/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
index a3b791e..3b4d026 100644
--- a/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
@@ -13,15 +13,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+ajpMessage.invalidPos=请求读取的字节位于位置[{0}],该位置超出了AJP消息的结尾
+
 ajpmessage.invalid=收到无效的带有签名[{0}]的消息
+ajpmessage.invalidLength=接收到长度为[{0}]的无效消息。
 ajpmessage.null=不能赋空值
 ajpmessage.overflow=在缓冲区[{1}]位置添加[{0}]字节时发生溢出错误
 
 ajpprocessor.certs.fail=):证书转换失败
 ajpprocessor.header.error=头部信息解析失败
+ajpprocessor.header.tooLong=已收到长度为[{0}]的头消息,但packetSize仅为[{1}]
 ajpprocessor.readtimeout=从Socket读取数据超时
 ajpprocessor.request.prepare=准备请求错误
 ajpprocessor.request.process=处理请求错误
 
+ajpprotocol.noSSL=AJP不支持SSL。[{0}]的SSL主机配置被忽略
 ajpprotocol.noSecret=AJP连接器配置secretRequired="true",但是属性secret确实空或者空字符串,这样的组合是无效的。
 ajpprotocol.noUpgrade=AJP 不支持升级。[{0}] 的升级协议配置被忽略。
+ajpprotocol.noUpgradeHandler=AJP不支持升级。 HttpUpgradeHandler [{0}]无法处理
diff --git a/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties b/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
index afa039a..b1aa136 100644
--- a/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
@@ -14,28 +14,39 @@
 # limitations under the License.
 
 abstractHttp11Protocol.alpnConfigured=[{0}]连接器已配置为支持通过ALPN与[{1}]协商。
+abstractHttp11Protocol.alpnWithNoAlpn=[{1}]的升级处理程序[{0}]仅支持通过ALPN升级,但已为不支持ALPN的[{2}]连接器配置
+abstractHttp11Protocol.httpUpgradeConfigured=[{0}]连接器已配置为支持HTTP升级到[{1}]
 
+http11processor.fallToDebug=注意:HTTP请求解析错误的进一步发生将记录在DEBUG级别。
 http11processor.header.parse=解析 HTTP 请求 header 错误
+http11processor.request.finish=完成请求时出错
 http11processor.request.inconsistentHosts=请求行中指定的主机与主机头不一致。
 http11processor.request.invalidScheme=HTTP请求包含具有无效方案的绝对URL
 http11processor.request.invalidTransferEncoding=HTTP请求包含了一个无效的Transfer-Encoding头
 http11processor.request.invalidUri=HTTP请求包含一个无效的URI
 http11processor.request.invalidUserInfo=HTTP 请求包含带有无效 userinfo 的绝对 URI
 http11processor.request.multipleContentLength=请求包含了多个content-length请求头参数
+http11processor.request.multipleHosts=请求包含多个主机头
 http11processor.request.noHostHeader=http/1.1请求没有提供主机头
+http11processor.request.nonNumericContentLength=请求包含一个具有非数字值的内容长度头
 http11processor.request.prepare=准备请求时出错
 http11processor.request.process=错误的处理请求
 http11processor.response.finish=错误完成相应
+http11processor.sendfile.error=使用sendfile发送数据时出错。可能是由于起点/终点的请求属性无效引起的
 http11processor.socket.info=获取socket信息异常
 
 iib.available.readFail=尝试确定数据是否可用时,非阻塞读取失败
 iib.eof.error=套接字读取到意外的EOF
+iib.failedread.apr=读取失败,APR/本机错误代码为[{0}]
 iib.filter.npe=你不能添加空过滤器(null)
+iib.invalidHttpProtocol=在HTTP协议中发现无效字符
 iib.invalidPhase=无效的请求行解析阶段[{0}]
+iib.invalidRequestTarget=在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
 iib.invalidheader=HTTP header行 [{0}] 不符合RFC 7230并且已被忽略。
 iib.invalidmethod=在方法名称中发现无效的字符串, HTTP 方法名必须是有效的符号.
 iib.parseheaders.ise.error=意外状态:已解析标头。 缓冲池不回收?
 iib.readtimeout=从套接字读取数据超时
+iib.requestheadertoolarge.error=请求头太大
 
 iob.failedwrite=写入.失败
 iob.failedwrite.ack=无法发送HTTP 100继续响应
diff --git a/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties b/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties
index b9ecd33..7661321 100644
--- a/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties
@@ -16,9 +16,11 @@
 chunkedInputFilter.eos=读取请求主体时流的意外结束
 chunkedInputFilter.eosTrailer=读取 trailer 头时出现意外的流结束
 chunkedInputFilter.error=没有数据可用由于先前的错误
+chunkedInputFilter.invalidCrlf=行尾序列无效(找到除CR或LF以外的字符)
 chunkedInputFilter.invalidCrlfCRCR=无效的结束的行序列(CRCR)
 chunkedInputFilter.invalidCrlfNoCR=无效的行尾结束符序列(LF前缺少CR)
 chunkedInputFilter.invalidCrlfNoData=无效的行尾序列(没有可读取的数据)
+chunkedInputFilter.invalidHeader=无效的块
 chunkedInputFilter.maxExtension=超过最大扩展数
 chunkedInputFilter.maxTrailer=超过最大数
 
diff --git a/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties b/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
index c8e935c..358d8e4 100644
--- a/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
@@ -13,14 +13,24 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+upgrade.sis.errorCloseFail=在上一个错误之后无法干净地关闭InputStream
 upgrade.sis.isFinished.ise=当 ServletInputStream 不处于非阻塞模式时调用 isFinished() 是非法的(即必须首先调用 setReadListener())
+upgrade.sis.isReady.ise=当ServletInputStream未处于非阻塞模式时,调用isReady()是非法的(即必须首先调用setReadListener())
 upgrade.sis.onErrorFail=对注册的readlistener的错误处理触发了这个进一步的错误,该错误被吞入
 upgrade.sis.read.closed=InputStream 已被关闭
 upgrade.sis.read.ise=在非阻塞模式下调用任何read()方法而不首先通过调用isready()检查是否有可用的数据是非法的
+upgrade.sis.readListener.null=向setReadListener()传递null是非法的
 upgrade.sis.readListener.set=在同一个upgraded连接上调用多次setReadListener()函数是非法的
+upgrade.sos.canWrite.ise=当ServletOutputStream未处于非阻塞模式时,调用canWrite()是非法的(即必须首先调用setWriteListener)
+upgrade.sos.errorCloseFail=在上一个错误之后无法干净地关闭OutputStream
 upgrade.sos.onErrorFail=对注册的WriteListener 的错误处理触发了这个进一步的错误,该错误被吞入
 upgrade.sos.write.closed=输出流已被关闭
 upgrade.sos.write.ise=在非阻塞模式下调用任何写()方法都是非法的,而无需首先检查是否有可用的空间,只需调用isreadi()
 upgrade.sos.writeListener.null=对setWriteListener()传递null是非法的
+upgrade.sos.writeListener.set=对于同一个升级的连接,多次调用setWriteListener()是非法的
 
+upgradeProcessor.isCloseFail=无法关闭与升级连接关联的输入流
+upgradeProcessor.osCloseFail=无法关闭与升级连接关联的输出流。
+upgradeProcessor.requiredClose=由于流的closeRequired状态,因此关闭升级的连接:输入[{0}],输出[{1}]
+upgradeProcessor.stop=正在关闭升级的连接,因为传入的套接字状态为“停止”。
 upgradeProcessor.unexpectedState=因传入套接字状态为[{0}]而意外关闭升级连接
diff --git a/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties b/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties
index 6db1b08..a524bb3 100644
--- a/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties
@@ -17,6 +17,7 @@ abstractStream.windowSizeDec=连接[{0}],流[{1}],将流控制窗口减少[{
 abstractStream.windowSizeInc=连接 [{0}], 流 [{1}], 增加流量控制窗口[{2}] 到 [{3}]
 abstractStream.windowSizeTooBig=连接[{0}],流[{1}],窗口大小从[{2}]增加到[{3}],超过了允许的最大值
 
+connectionPrefaceParser.eos=读取打开客户端序字节序列时出现意外的流结尾。只读取了[{0}]个字节。
 connectionPrefaceParser.mismatch=请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符。
 
 connectionSettings.debug=连接[{0}],参数类型[{1}]设置为[{2}]
@@ -32,69 +33,134 @@ frameType.checkStream=无效的帧类型[{0}]
 hpack.integerEncodedOverTooManyOctets=HPACK 可变长度整数编码过多的八位字节,最大值为[{0}]
 hpack.invalidCharacter=代码点[{1}]处的Unicode字符[{0}]无法编码,因为它超出了允许的0到255范围。
 
+hpackEncoder.encodeHeader=编码头[{0}],值为[{1}]
+
 hpackdecoder.headerTableIndexInvalid=头部表索引[{0}]无效,因为有[{1}]个静态实例和[{2}]个动态实例
+hpackdecoder.maxMemorySizeExceeded=头表大小[{0}]超过了最大大小[{1}]
+hpackdecoder.notImplemented=尚未实施
+hpackdecoder.nullHeader=索引[{0}]处的头为空
 hpackdecoder.tableSizeUpdateNotAtStart=任何表大小的更新都必须在头块开始时发送。
+hpackdecoder.zeroNotValidHeaderTableIndex=零不是有效的头表索引
+
+hpackhuffman.huffmanEncodedHpackValueDidNotEndWithEOS=HPACK头中的Huffman编码值没有以EOS填充结束
+hpackhuffman.stringLiteralEOS=包含EOS符号的HPACK头中的Huffman编码值
+hpackhuffman.stringLiteralTooMuchPadding=超过7个bits的EOS填充提供了在一个霍夫曼编码字符串的结束
 
 http2Parser.error=Connection [{0}],Stream [{1}], 框架类型 [{2}], 错误
 http2Parser.headerLimitCount=连接[{0}],流[{1}],标题太多
 http2Parser.headerLimitSize=连接[{0}],Stream[{1}],总的头信息尺寸太大
+http2Parser.headers.wrongFrameType=连接{0},正在处理流{1}的头,但收到了类型为{2}的帧
 http2Parser.headers.wrongStream=连接[{0}], 头部信息对于流[{1}]正在进行但对于流[{2}]的一帧已经收到了。
 http2Parser.invalidBuffers=应使用两个缓冲区进行读取
 http2Parser.nonZeroPadding=连接[{0}],流[{1}],非零填充
+http2Parser.payloadTooBig=有效负载是[{0}]字节长,但最大帧大小是[{1}]。
 http2Parser.preface.invalid=出现无效连接
+http2Parser.preface.io=无法读取连接前言
+http2Parser.processFrame=连接{0}、流{1}、帧类型{2}、标志{3}、负载大小{4}
+http2Parser.processFrame.tooMuchPadding=连接[{0}],流[{1}],填充长度[{2}]对于负载[{3}]太大
 http2Parser.processFrame.unexpectedType=需要帧类型[{0}],但收到帧类型[{1}]
+http2Parser.processFrameContinuation.notExpected=连接{0},当没有头正在进行时,为流{1}接收到连续帧。
+http2Parser.processFrameData.lengths=连接[{0}],流[{1}],数据长度,[{2}],填充长度[{3}]
 http2Parser.processFrameData.window=连接[{0}],客户端发送的数据比流窗口允许的多
 http2Parser.processFrameHeaders.decodingDataLeft=数据在HPACK解码后依然保留 - 它本应该被消费掉
+http2Parser.processFrameHeaders.decodingFailed=对HTTP头进行HPACK解码时出错
 http2Parser.processFrameHeaders.payload=连接:[{0}],流:[{1}],正在处理[{1}]大小的头文件负载
 http2Parser.processFramePriority.invalidParent=连接[{0}],流[{1}],流可能不依赖于自身
 http2Parser.processFramePushPromise=请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符\n\
 \n
+http2Parser.processFrameSettings.ackWithNonZeroPayload=接收到带有ACK标志设置和有效负载的设置帧
+http2Parser.processFrameWindowUpdate.debug=连接[{0}],流[{1}],窗口大小增量[{2}]
+http2Parser.processFrameWindowUpdate.invalidIncrement=接收到的窗口更新帧具有无效的增量大小[{0}]
 http2Parser.swallow.debug=连接:[{0}],流:[{1}],吞下[{2}]字节
 
+pingManager.roundTripTime=连接[{0}]往返时间测量为[{1}]ns
+
 stream.closed=连接[{0}],流[{1}],一旦关闭就无法写入流
+stream.header.case=连接[{0}],流[{1}],HTTP标头名称[{2}]必须小写
+stream.header.connection=HTTP/2请求中不允许连接{0}、流{1}、HTTP头[连接]
+stream.header.contentLength=连接{0},流{1},内容长度头值{2}与接收的数据大小{3}不一致
 stream.header.debug=连接[{0}],流[{1}],HTTP标头[{2}],值[{3}]
+stream.header.duplicate=连接[{0}],流[{1}],收到多个[{3}]头
+stream.header.empty=连接[{0}],流[{1}],无效的空头名称
+stream.header.invalid=连接[{0}],流[{1}],头[{2}]包含无效值[{3}]
 stream.header.noPath=连接[{0}],流[{1}],[:path]伪标头为空
 stream.header.required=连接 [{0}], 流 [{1}], 缺少一个或多个必要的头文件
+stream.header.te=连接{0}、流{1}、HTTP头[te]在HTTP/2请求中不允许有值{2}
+stream.header.unexpectedPseudoHeader=连接[{0}],流[{1}],伪头[{2}]在常规头之后接收
 stream.header.unknownPseudoHeader=收到连接[{0}],流[{1}],未知伪标头[{2}]
+stream.inputBuffer.copy=正在将[{0}]字节从inBuffer复制到outBuffer
+stream.inputBuffer.dispatch=注册读取兴趣时将数据添加到inBuffer中。触发读取分派
+stream.inputBuffer.empty=流输入缓冲区为空。等待更多数据
 stream.inputBuffer.readTimeout=等待从客户端读取数据超时
 stream.inputBuffer.reset=流.重置
 stream.inputBuffer.signal=读线程在等待时,数据被添加到inBuffer中。 发信号通知该线程继续
+stream.notWritable=连接{0},流{1},此流不可写
+stream.outputBuffer.flush.debug=连接{0},流{1},用缓冲区在位置{2}刷新输出,writeInProgress[{3}]并关闭了[{4}]
 stream.reprioritisation.debug=连接[{0}],流[{1}],独占[{2}],父[{3}],权重[{4}]
 stream.reset.fail=连接[{0}],流[{1}],重置流失败
+stream.reset.receive=连接{0},流{1},由于{2}而收到重置
+stream.reset.send=连接{0},流{1},由于{2}重置发送
+stream.trailerHeader.noEndOfStream=连接[{0}],流[{1}],尾部标头不包括流结束标志
 stream.writeTimeout=等待客户端增加流控制窗口以允许写入流数据的超时
 
 streamProcessor.cancel=连接到[{0}],Stream [{1}],
 streamProcessor.error.connection=连接[{0}],Stream[{0}],处理中发生错误,对连接来说是致命的。
+streamProcessor.error.stream=连接{0},流{1},处理过程中发生对流致命的错误
+streamProcessor.flushBufferedWrite.entry=连接[{0}],流[{1}],正在刷新缓冲写入
 streamProcessor.service.error=请求处理期间出错
 
 streamStateMachine.debug.change=(:连接[{0}],流[{1}],状态从[{2}]更改为[{3}]
+streamStateMachine.invalidFrame=连接{0}、流{1}、状态{2}、帧类型{3}
 
+upgradeHandler.allocate.debug=连接[{0}],流[{1}],已分配[{2}]字节
 upgradeHandler.allocate.left=连接[{0}],流[{1}],[{2}]字节未分配 - 尝试分配给子项
 upgradeHandler.allocate.recipient=(:连接[{0}],流[{1}],潜在接收者[{2}],权重为[{3}]
+upgradeHandler.connectionError=连接错误
+upgradeHandler.dependency.invalid=连接{0},流{1},流可能不依赖于自身
 upgradeHandler.goaway.debug=连接[{0}],离开,最后的流[{1}],错误码[{2}],调试数据[{3}]
 upgradeHandler.init=连接[{0}],状态[{1}]
+upgradeHandler.initialWindowSize.invalid=连接{0},初始窗口大小忽略了非法值{1}。
+upgradeHandler.invalidPreface=连接[{0}],连接前言无效
 upgradeHandler.ioerror=连接[{0}]
+upgradeHandler.noAllocation=连接[{0}],流[{1}],等待分配超时
+upgradeHandler.noNewStreams=连接{0},流{1},忽略流,因为此连接上不允许有新的流
+upgradeHandler.pause.entry=连接[{0}]正在暂停
 upgradeHandler.pingFailed=对客户端发送ping 链接失败.
 upgradeHandler.prefaceReceived=连接[{0}],从客户端收到连接准备。
 upgradeHandler.pruneIncomplete=连接[{0}],流[{1}],无法完全修剪连接,因为有[{2}]个活动流太多
+upgradeHandler.pruneStart=连接[{0}]正在开始修剪旧流。限制为[{1}]+10%,当前有[{2}]个流。
+upgradeHandler.pruned=连接[{0}]已修剪完成的流[{1}]
 upgradeHandler.prunedPriority=连接[{0}]已经成为了属于优先级树中未使用的流[{1}]
+upgradeHandler.releaseBacklog=连接[{0}],流[{1}]已从待办事项列表中释放
 upgradeHandler.rst.debug=连接[{0}],流[{1}],错误[{2}],消息[{3}],RST(关闭流)
 upgradeHandler.sendPrefaceFail=连接[{0}],给客户端发送前言失败
 upgradeHandler.socketCloseFailed=关闭 socket 错误
 upgradeHandler.stream.closed=流[{0}]已经关闭了一段时间
 upgradeHandler.stream.even=\ 请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符\n\
 \n
+upgradeHandler.stream.notWritable=连接{0},流{1},此流不可写。
+upgradeHandler.stream.old=请求了新的远程流ID [{0}],但最近的流是[{1}]
+upgradeHandler.tooManyRemoteStreams=客户端试图使用超过[{0}]个活动流。
 upgradeHandler.tooMuchOverhead=连接[{0}],开销过大,连接将关闭
 upgradeHandler.unexpectedAck=连接[{0}],流[{1}],收到一个非预期的设置确认
 upgradeHandler.upgrade=连接[{0}], HTTP/1.1 升级到流[1]
 upgradeHandler.upgrade.fail=):连接[{0}],http/1.1升级失败
 upgradeHandler.upgradeDispatch.entry=条目,连接[{0}],SocketStatus [{1}]
 upgradeHandler.upgradeDispatch.exit=退出,连接[{0}], SocketState[{1}]
+upgradeHandler.windowSizeReservationInterrupted=连接[{0}],流[{1}],保留[{2}]字节
 upgradeHandler.windowSizeTooBig=连接[{0}],流[{1}],窗口太大
 upgradeHandler.writeBody=连接 [{0}],数据流[{1}], 数据长度[{2}]
 upgradeHandler.writeHeaders=连接 [{0}],流 [{1}]
+upgradeHandler.writePushHeaders=连接{0}、流{1}、推送流{2}、EndOfStream{3}
 
+windowAllocationManager.dispatched=连接[{0}],流[{1}],已调度
+windowAllocationManager.notified=连接[{0}],流[{1}],已通知
 windowAllocationManager.notify=连接[{0}], 流[{1}], 等待类型[{2}], 通知类型[{3}]
+windowAllocationManager.waitFor.connection=连接{0},流{1},等待连接流控制窗口(阻塞),超时为{2}]
 windowAllocationManager.waitFor.ise=连接[{0}], 流[{1}], 已经准备好
+windowAllocationManager.waitFor.stream=连接[{0}],流[{1}],等待流控制窗口(阻塞),超时为[{2}]
+windowAllocationManager.waitForNonBlocking.connection=连接[{0}],流[{1}],正在等待连接流控制窗口(非阻塞)
+windowAllocationManager.waitForNonBlocking.stream=连接[{0}],流[{1}],正在等待流控制窗口(非阻塞)
 
+writeStateMachine.endWrite.ise=写入完成后,为新状态指定[{0}]是非法的
 writeStateMachine.ise=处于 [{1}] 状态时调用 [{0}()] 方法是非法的
diff --git a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
index cfecfdf..906955c 100644
--- a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
@@ -15,72 +15,128 @@
 
 jasper.error.emptybodycontent.nonempty=根据 TLD,[{0}] 标签必须为空,但不是
 
+jsp.engine.info=Jasper JSP{0}引擎
+jsp.error.URLMustStartWithSlash=路径[{0}]必须以斜线字符开头
 jsp.error.action.isnottagfile=[{0}]行为只能用于标签文件
 jsp.error.action.istagfile=标签文件中不能使用[{0}]功能
 jsp.error.attempt_to_clear_flushed_buffer=错误:尝试清空已刷新的缓冲区
 jsp.error.attr.quoted=应引用属性值
+jsp.error.attribute.custom.non_rt_with_expr=根据标记文件中的TLD或attribute指令,attribute[{0}]不接受任何表达式
 jsp.error.attribute.deferredmix=不能在同一属性值中同时使用 ${} 和 #{} EL 表达式
 jsp.error.attribute.duplicate=属性限定名在元素中必须是唯一的
+jsp.error.attribute.invalidPrefix=属性前缀[{0}]与任何导入的标记库都不对应
 jsp.error.attribute.noequal=期望的符号是等号
 jsp.error.attribute.noescape=属性值[{0}]引用[{1}],在值内使用时必须被转义。
+jsp.error.attribute.noquote=需要引号。
 jsp.error.attribute.nowhitespace=JSP 规范要求一个属性名字前有空格
+jsp.error.attribute.null_name=空属性名
+jsp.error.attribute.standard.non_rt_with_expr=[{1}]标准操作的[{0}]属性不接受任何表达式
+jsp.error.attribute.unterminated=[{0}]的属性值未正确终止
 jsp.error.backgroundCompilationFailed=后台编译失败
 jsp.error.bad.scratch.dir=你指定的 scratchDir:[{0}] 不可用。
+jsp.error.badStandardAction=无效的标准操作。
 jsp.error.bad_attribute=属性[{0}]无效为tag[{1}] 通过TLD
+jsp.error.bad_tag=在用前缀[{1}]导入的标记库中未定义标记[{0}]
+jsp.error.beans.nomethod=在类型为[{1}]的bean中找不到读取属性[{0}]的方法
+jsp.error.beans.nomethod.setproperty=在类型为[{2}]的bean中找不到用于写入类型为[{1}]的属性[{0}]的方法
 jsp.error.beans.noproperty=在[{1}]类型bean中找不到任何有关属性[{0}]的信息
 jsp.error.beans.nullbean=尝试获取一个bean 操作在一个空对象上.
 jsp.error.beans.property.conversion=无法将字符串[{0}]转换为属性[{2}]的类[{1}]:[{3}]
 jsp.error.beans.propertyeditor.notregistered=属性编辑器未注册到属性编辑管理器
+jsp.error.beans.setproperty.noindexset=无法设置索引属性。
+jsp.error.bug48498=无法显示JSP提取。可能是由于XML解析器错误(有关详细信息,请参阅TomcatBug48498)。
 jsp.error.cannotAddResolver=在第一次请求发生之后不能调用addELResolver
+jsp.error.classname=无法从.class文件确定类名
+jsp.error.coerce_to_type=无法将值[{2}]强制为属性[{0}]的类型[{1}]。
+jsp.error.compilation=编译文件时出错:[{0}[{1}]
+jsp.error.compilation.jdt=编译错误
+jsp.error.compilation.jdtProblemError=处理JDT问题列表时出错
 jsp.error.compilation.source=加载源文件时出错[{0}]
 jsp.error.compiler=没有可用的Java编译器
+jsp.error.compiler.config=没有可用于配置选项的Java编译器compilerClassName:[{0}]和compiler:[{1}]
 jsp.error.config_pagedir_encoding_mismatch=jsp属性组[{0}]中指定的页编码与page指令[{1}]中指定的页编码不同
 jsp.error.corresponding.servlet=生成的servlet错误:\n
 jsp.error.could.not.add.taglibraries=不能增加一个或者多个tag 库.
 jsp.error.data.file.processing=处理文件 [{0}] 错误
+jsp.error.data.file.read=读取文件[{0}]时出错
+jsp.error.data.file.write=写入数据文件时出错
+jsp.error.deferredmethodandvalue=“deferredValue”和“deferredMethod”不能同时为“true”
+jsp.error.deferredmethodsignaturewithoutdeferredmethod=如果“deferredMethod”不是“true”,则无法指定方法签名
 jsp.error.deferredvaluetypewithoutdeferredvalue=如果“deferredValue”的值不是“true”的话,不能指定一个值类型
+jsp.error.directive.isnottagfile=[{0}]指令只能在标记文件中使用
+jsp.error.directive.istagfile=[{0}]指令不能在标记文件中使用
 jsp.error.duplicate.name.jspattribute=标准或自定义操作中指定的属性[{0}]也显示为随附的jsp:属性中name属性的值
+jsp.error.duplicateqname=找到具有重复限定名[{0}]的属性。属性限定名在元素中必须是唯一的。
+jsp.error.dynamic.attributes.not.implemented=[{0}]标记声明它接受动态属性,但未实现所需的接口
+jsp.error.el.parse=[{0}]:[{1}]
 jsp.error.el.template.deferred=#{...} 不允许出现在模板文本中
 jsp.error.el_interpreter_class.instantiation=加载或实例化ELInterpreter类[{0}]失败
 jsp.error.fallback.invalidUse=jsp:fallback必须是jsp:plugin的直接子代
+jsp.error.file.already.registered=文件[{0}]的递归包含
 jsp.error.file.cannot.read=无法读取文件 [{0}]
 jsp.error.file.not.found=文.件[{0}] 未找到
 jsp.error.flush=刷新数据时发生异常
+jsp.error.fragmentwithtype=无法同时指定“片段”和“类型”属性。如果存在“片段”,则“类型”固定为“ {0}”
+jsp.error.function.classnotfound=找不到在TLD中为函数[{1}]指定的类[{0}]:[{2}]
 jsp.error.include.exception=无法包含[{0}]
 jsp.error.include.tag=无效的jsp:include标签
 jsp.error.internal.filenotfound=内部错误:找不到文件 [{0}]
 jsp.error.internal.unexpectedNodeType=节点类型不一致
 jsp.error.invalid.attribute=[{0}]有一个无效属性:[{1}]
+jsp.error.invalid.bean=useBean类属性[{0}]的值无效。
+jsp.error.invalid.directive=无效指令
+jsp.error.invalid.expression=[{0}]包含无效表达式:[{1}]
+jsp.error.invalid.implicit=[{0}]处标记文件的隐式TLD无效
+jsp.error.invalid.implicit.version=[{0}]处标记文件的隐式TLD中定义的JSP版本无效。
 jsp.error.invalid.scope=非法的scope属性值:[{0}](必须是page、request、session或application中的一个)
 jsp.error.invalid.tagdir=标签文件目录 [{0}] 不以"/WEB-INF/tags"开头
 jsp.error.invalid.version=为标签 [{0}] 定义了无效的 JSP 版本号
 jsp.error.ise_on_clear=当缓存大小等于0时调用clear()函数是非法的
+jsp.error.java.line.number=在生成的java文件中的第:[{0}]行发生错误:[{1}]
 jsp.error.javac=Javac异常
+jsp.error.javac.env=环境:
 jsp.error.jspbody.emptybody.only=标签[{}]的标签体内智能包含jsp:attribute
 jsp.error.jspbody.invalidUse=JSP:主体必须是标准或自定义操作的子元素
 jsp.error.jspbody.required=如果使用 jsp:attribute,则必须使用 jsp:body 为 [{0}] 指定标记正文。
 jsp.error.jspc.missingTarget=缺少目标:必须指定-webapp或-uriroot或一个或多个jsp页
+jsp.error.jspc.no_uriroot=未指定uriroot,无法用指定的JSP文件定位
+jsp.error.jspc.uriroot_not_dir=-uriroot选项必须指定一个预先存在的目录
 jsp.error.jspelement.missing.name=XML强制性约束:属性name缺失。
 jsp.error.jspoutput.conflict=&lt; jsp:output&gt;:非法使多个[{0}]出现不同的值(旧:[{1}],新:[{2}])
 jsp.error.jspoutput.doctypenamesystem=&lt;jsp:output&gt;: 'doctype-root-element' 和 'doctype-system' 必须一起出现
+jsp.error.jspoutput.doctypepublicsystem=&amp;lt;jsp:output&amp;gt;:如果显示“doctype public”属性,则必须显示“doctype system”属性
+jsp.error.jspoutput.invalidUse=&amp;lt;jsp:output&amp;gt;不能在标准语法中使用
 jsp.error.jspoutput.nonemptybody=&lt;jsp:output&gt;不能有正文
 jsp.error.jsproot.version.invalid=版本号 [{0}] 无效,版本号必须是"1.2"、"2.0"、"2.1"、"2.2"、"2.3"中的一个
 jsp.error.jsptext.badcontent='&lt;',当出现在&lt; jsp:text&gt;的主体中时,必须封装在CDATA中
 jsp.error.lastModified=无法确定文件 [{0}] 的最后修改日期
 jsp.error.library.invalid=根据库[{0}](:[{1}],jsp页无效
+jsp.error.literal_with_void=为属性[{0}]指定了一个文本值,该属性定义为返回类型为void的延迟方法。在这种情况下,JSP.2.3.4不允许使用文本值。
 jsp.error.loadclass.taghandler=无法为TAG [{1}]加载标记处理程序类[{0}]
 jsp.error.location=行.: [{0}], 列: [{1}]
 jsp.error.mandatory.attribute=[{0}]: 强制性属性 [{1}] 缺失。
+jsp.error.missing.tagInfo=TLD中缺少[{0}]的TagInfo对象
 jsp.error.missing_attribute=根据TLD或标记文件,标记[{1}]必须使用属性[{0}]
+jsp.error.missing_var_or_varReader=缺少“var”或“varReader”属性
+jsp.error.namedAttribute.invalidUse=jsp:属性必须是标准或自定义操作的子元素
+jsp.error.needAlternateJavaEncoding=默认java编码[{0}]在java平台上无效。可以通过JspServlet的“javaEncoding”参数指定备用项。
 jsp.error.negativeBufferSize=缓存大小是负数
+jsp.error.negativeParameter=参数[{0}]不能为负
 jsp.error.nested.jspattribute=jsp:attribute标准操作不能嵌套在另一个jsp:attribute标准操作中
 jsp.error.nested.jspbody=JSP:体标准动作不能嵌套在另一个jsp:body 或者 jsp:属性标准动作中
 jsp.error.nested_jsproot=嵌套的&lt;jsp:root&gt;
+jsp.error.no.jsp=找不到JSP文件[{0}]
+jsp.error.no.more.content=在需要更多分析时到达内容结尾:标记嵌套错误?
 jsp.error.no.scratch.dir=JSP引擎未配置scratch文件夹。\n\
 请在对应上下文Context的servlets.properties文件中添加"jsp.initparams=scratchdir=<dir-name>"。
 jsp.error.no.scriptlets=脚本( &lt;%!, &lt;jsp声明, &lt;%=, &lt;jsp表达式, &lt;%, &lt;jsp脚本变量 )不允许出现在这里
+jsp.error.noFile=找不到文件[{0}]
 jsp.error.noFunction=无法使用指定的前缀找到函数[{0}]
+jsp.error.noFunctionMethod=在类{2}中找不到函数{1}的方法{0}]
+jsp.error.noInstanceManager=ServletContext中没有org.apache.tomcat.InstanceManager集
+jsp.error.non_null_tei_and_var_subelems=标记{0}有一个或多个变量子元素和返回一个或多个变量信息的TagExtraInfo类
 jsp.error.not.in.template=在模板文本体中, [{0}] 是不允许的.
+jsp.error.nullArgument=空参数
 jsp.error.outputfolder=无输出目录
 jsp.error.overflow=错误:JSP缓冲区溢出
 jsp.error.page.conflict.autoflush=页面指令:“ autoFlush”非法多次出现不同值(旧值: [{0}], 新值: [{1}])
@@ -102,88 +158,163 @@ jsp.error.page.invalid.import=页面指令:import 值无效
 jsp.error.page.invalid.iselignored=页面指令:isELIgnored 值无效
 jsp.error.page.invalid.iserrorpage=页面指令:isErrorPage 值无效
 jsp.error.page.invalid.isthreadsafe=页面指令:isThreadSafe 值无效
+jsp.error.page.invalid.scope=无效的作用域
 jsp.error.page.invalid.session=页面指令:session 值无效
 jsp.error.page.invalid.trimdirectivewhitespaces=页面指令:trimDirectiveWhitespaces 值无效
 jsp.error.page.language.nonjava=页面指令:language 属性无效
 jsp.error.page.multi.pageencoding=页指令不能有多次出现的页编码
 jsp.error.page.noSession=无法访问不参与任何会话的页中的会话作用域
 jsp.error.page.nullThrowable=空异常
+jsp.error.page.sessionRequired=页面需要会话,但没有可用的会话
 jsp.error.param.invalidUse=jsp:param 不能在jsp:include、jsp:forward或jsp:params等元素外使用
 jsp.error.paramexpected=使用“name”和“value”属性期望“jsp:param”标准操作
+jsp.error.params.emptyBody=jsp:params必须至少包含一个嵌套的jsp:param
 jsp.error.params.invalidUse=参数jsp:params必须是jsp:plugin的直接孩子参数
+jsp.error.parse.error.in.TLD=标记库描述符中的分析错误:[{0}]
 jsp.error.parse.xml=无法解析 XML 文件 [{0}]
+jsp.error.parse.xml.line=文件[{0}]上的XML解析错误:(第[{1}]行,第[{2}]行)
 jsp.error.parse.xml.scripting.invalid.body=[{0}]元素的主体不能包含任何XML元素
 jsp.error.plugin.badtype=jsp:plugin中“type”属性的值非法:必须是“bean”或“applet”
 jsp.error.plugin.nocode=代码未定义在jsp:plugin中
 jsp.error.plugin.notype=jsp:plugin中未声明type
 jsp.error.precompilation=无法预编译JSP[{0}]
 jsp.error.precompilation.parameter=不能将预编译请求参数[{0}]设置为[{1}]
+jsp.error.prefix.refined=尝试将前缀[{0}]重新定义为[{1}],但当前作用域中已将其定义为[{2}]。
 jsp.error.prefix.use_before_dcl=tag指令中设置的前缀[{0}]之前已被[{1}]文件[{2}]行的一个action使用
 jsp.error.prolog_config_encoding_mismatch=XML prolog [{0}]中指定的页面编码与jsp-property-group [{1}]中指定的页面编码不同
 jsp.error.prolog_pagedir_encoding_mismatch=指定在XML语言[{0}]的网页编码是不同于指定在网页的指令[{1}]。
 jsp.error.quotes.unterminated=未终结的引号
+jsp.error.readContent=无法读取预期长度[{0}]
 jsp.error.reload=servlet重新加载失败
 jsp.error.scripting.variable.missing_name=无法从属性[{0}]确定脚本变量名称
+jsp.error.security=上下文的安全初始化失败
 jsp.error.securityPreload=预加载类时出错
+jsp.error.servlet.destroy.failed=JSP页面的Servlet.destroy()期间出现异常
 jsp.error.servlet.invalid.method=JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS
+jsp.error.setLastModified=无法设置文件[{0}]的上次修改日期
 jsp.error.signature.classnotfound=无法找到TLD中方法签名中为函数[{1}]指定的类[{0}]。[{2}]
 jsp.error.simpletag.badbodycontent=对于一下简单的标记符,用于类[{0}]的标记描述符指定了一个无效的body内容(JSP)中
 jsp.error.single.line.number=JSP文件:[{1}] 的第 [{0}] 行发生了一个错误
 jsp.error.stream.close.failed=流.关闭失败
 jsp.error.stream.closed=流.关闭
+jsp.error.tag.conflict.attr=Tag指令:具有多个具有不同值的属性{0}的重复出现是非法的(旧的:[{1},新的:[{2}])
+jsp.error.tag.conflict.deferredsyntaxallowedasliteral=Tag指令:具有多个具有不同值的“deferredSyntaxAllowedAsLiteral”(旧值:[{0}),新值:[{1})的重复出现是非法的。
 jsp.error.tag.conflict.iselignored=TAG指令:多次出现不同值的“isELIgnored”(旧:[{0}],New:[{1}])
 jsp.error.tag.conflict.language=标签指令:非法出现多次出现的具有不同值的“语言”(旧:[{0}],新:[{1}])
 jsp.error.tag.conflict.trimdirectivewhitespaces=标签指令:非法地多次出现具有不同值的“trimDirectiveWhitespaces”(旧值:[{0}),新值:[{1}])
 jsp.error.tag.invalid.deferredsyntaxallowedasliteral=标签指令):deferredSyntaxAllowedAsLiteral的值无效
 jsp.error.tag.invalid.iselignored=Tag指令:对isELIgnored来说是无效值
-jsp.error.tag.invalid.trimdirectivewhitespaces=TAG指令:trimDirectiveWhitespaces的值无效
+jsp.error.tag.invalid.trimdirectivewhitespaces=Tag指令:trimDirectiveWhitespaces的值无效
+jsp.error.tag.language.nonjava=标记指令:无效的语言属性。
+jsp.error.tag.multi.pageencoding=Tag指令不能多次出现pageencoding
 jsp.error.tagdirective.badbodycontent=标签指令中的无效的内容体[{0}]
+jsp.error.tagfile.badSuffix=在文件路径[{0}]下找不到".tag"的后缀
+jsp.error.tagfile.illegalPath=非法的标记文件路径:[{0}],必须以“/WEB-INF/tags”或“/META-INF/tags”开头。
+jsp.error.tagfile.missingPath=未指定标记文件的路径
 jsp.error.tagfile.nameFrom.badAttribute=属性指令(在行[{1}]中声明并且其name属性为[{0}],此name-from-attribute属性的值)必须是java.lang.String类型,是“required”而不是一个“rtexprvalue”。
 jsp.error.tagfile.nameFrom.noAttribute=找不到具有值[{0}]的name属性的属性指令,该属性是name-from-attribute属性的值。
+jsp.error.tagfile.nameNotUnique=[{0}]的值与第[{2}]行中的[{1}]的值相同。
 jsp.error.taglibDirective.absUriCannotBeResolved=无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[{0}]
+jsp.error.taglibDirective.both_uri_and_tagdir=同时指定了“uri”和“tagdir”属性
 jsp.error.taglibDirective.missing.location='uri'和'tagdir' 属性均未指定。
 jsp.error.taglibDirective.uriInvalid=为标签库[{0}]提供的URI不是有效的URI
 jsp.error.tei.invalid.attributes=来自TagExtraInfo的[{0}]的验证错误消息
 jsp.error.teiclass.instantiation=无法加载或实例化TagExtraInfo类:[{0}]。
 jsp.error.text.has_subelement=&LT; JSP:文本&GT; 不得有任何子元素
+jsp.error.tld.fn.duplicate.name=标记库[{1}]中的函数名[{0}]重复
 jsp.error.tld.fn.invalid.signature=TLD中函数签名的语法无效。 标签库:[{0}],功能:[{1}]
+jsp.error.tld.invalid_tld_file=无效的tld文件:[{0}],有关详细信息,请参阅JSP规范第7.3.1节。
 jsp.error.tld.mandatory.element.missing=TLD [{1}] 中强制 TLD 元素 [{0}] 不存在或为空
+jsp.error.tld.missing=找不到URI:[{1}]的taglib[{0}]
 jsp.error.tld.missing_jar=丢失了包含TLD的JAR资源[{0}]
+jsp.error.tld.unable_to_get_jar=无法获取包含TLD:[{1}]的JAR资源[{0}]
+jsp.error.tld.url=错误的TLD URL[{0}]
 jsp.error.tlv.invalid.page=):[{0}]和[{1}]的TagLibraryValidator的验证错误消息
+jsp.error.tlvclass.instantiation=未能加载或实例化TagLibraryValidator类:[{0}]
+jsp.error.unable.compile=无法为JSP编译类
 jsp.error.unable.deleteClassFile=无法删除class文件[{0}]
+jsp.error.unable.getType=无法从[{0}]提取类型
 jsp.error.unable.load=无法加载JSP的相关类
 jsp.error.unable.renameClassFile=无法重命名类文件[{0}]为[{1}]
 jsp.error.unable.to_find_method=不能为属性:[{0}]找到setter 方法.
 jsp.error.unavailable=JSP已被标记为不可用
 jsp.error.unbalanced.endtag=结束标签&lt;/{0}不对称
+jsp.error.undeclared_namespace=使用未声明的命名空间[{0}]遇到自定义标记
+jsp.error.unexpectedTag=意外的标记[{0}]
 jsp.error.unknown_attribute_type=属性[{0}]的未知属性类型[{1}]。
 jsp.error.unsupported.encoding=不支持的编码:[{0}]
+jsp.error.unterminated=未终止的[{0}]标记。
+jsp.error.usebean.duplicate=useBean:重复的bean名称:[{0}]
+jsp.error.usebean.noSession=当JSP页声明(通过page指令)useBean不参与会话时,useBean使用会话作用域是非法的
+jsp.error.var_and_varReader=只有一个“var”或“varReader”能被指定
+jsp.error.variable.alias=必须在variable指令中指定属性和别名属性中的name或none
 jsp.error.variable.both.name=不能在变量指令的属性属性中同时指定给定的名称和名称
 jsp.error.variable.either.name=必须在变量指令中指定 name-given 或 name-from-attribute 属性
 jsp.error.xml.badStandardAction=无效、标准的action: [{0}]
+jsp.error.xml.bad_tag=在与uri[{1}]关联的标记库中未定义标记[{0}]
 jsp.exception=在 [{1}] 行处理 [{0}] 时发生异常
 jsp.info.ignoreSetting=因为 SecurityManager 被启用,忽略 [{1}] 的 [{0}] 的设置
+jsp.message.dont.modify.servlets=重要提示:不要修改生成的servlet
 jsp.message.jsp_added=增加JSP 为路径[{0}]为上下文[{1}]的队列
+jsp.message.jsp_queue_created=用长度[{0}]上下文[{1}]创建了jsp队列
 jsp.message.jsp_queue_update=在上下文[{1}]队列中更新路径为[{0}]的JSP
 jsp.message.jsp_removed_excess=从上下文[{1}]的队列中移除额外在路径[{0}]中JSP,
 jsp.message.jsp_removed_idle=在[{2}]毫秒之后删除上下文[{1}]中路径[{0}]的空闲JSP
 jsp.message.jsp_unload_check=在context[{0}]中检查未加载的jsp,jsp总共:[{1}]队列长度[{2}]
+jsp.message.parent_class_loader_is=父类加载器是:[{0}]
+jsp.message.scratch.dir.is=JSP引擎的Scratch目录是:[{0}]
 jsp.tldCache.noTldInDir=在目录[{0}]中未找到TLD文件
+jsp.tldCache.noTldInJar=在{0}中找不到TLD文件。考虑将JAR添加到CATALINA_BASE/conf/CATALINA.properties文件中的tomcat.util.scan.StandardJarScanFilter.jarsToSkip属性。
+jsp.tldCache.noTldInResourcePath=在资源路径{0}中找不到TLD文件。
 jsp.tldCache.noTldSummary=至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
 jsp.tldCache.tldInDir=在目录 [{0}]中找到了TLD文件。
+jsp.tldCache.tldInJar=在JAR[{0}]中找到了TLD文件。
+jsp.tldCache.tldInResourcePath=在资源路径{0}中找到TLD文件。
+jsp.warning.bad.urlpattern.propertygroup=web.xml中url模式子元素中的值[{0}]错误
+jsp.warning.checkInterval=警告:initParam checkInterval的值无效。将使用默认值“300”秒
+jsp.warning.classDebugInfo=警告:initParam classdebuginfo的值无效。将使用默认值“false”
+jsp.warning.classpathUrl=在类路径中找到无效的URL。此URL将被忽略
+jsp.warning.compiler.classfile.delete.fail=未能删除生成的类文件[{0}]
 jsp.warning.compiler.classfile.delete.fail.unknown=删除生成的class文件失败
+jsp.warning.compiler.javafile.delete.fail=未能删除生成的Java文件[{0}]
+jsp.warning.development=警告:initParam开发的值无效。将使用默认值“true”。
 jsp.warning.displaySourceFragment=警告:displaySourceFragment初始化参数时参数值无效,将使用默认的值“true”
 jsp.warning.dumpSmap=警告:初始化堆内存的值无效。将使用“false”的默认值
 jsp.warning.enablePooling=警告:initParam enablePooling的值无效。将使用默认值“true”
+jsp.warning.engineOptionsClass=未能加载引擎选项类[{0}]
 jsp.warning.fork=警告:initParam的值无效。将使用“true”的默认值
+jsp.warning.genchararray=警告:initParam genstringascharray的值无效。将使用默认值“false”
+jsp.warning.jspIdleTimeout=警告:initParam jspIdleTimeout的值无效。将使用默认值“-1”
+jsp.warning.keepgen=警告:initParam keepgenerated的值无效。将使用默认值“false”
+jsp.warning.loadSmap=无法加载类[{0}]的SMAP数据
+jsp.warning.mappedFile=警告:initParam mappedFile的值无效。将使用默认值“false”
+jsp.warning.maxLoadedJsps=警告:initParam maxLoadedJsps的值无效。将使用默认值“-1”。
+jsp.warning.modificationTestInterval=警告:initParam modificationTestInterval的值无效。将使用默认值“4”秒
 jsp.warning.noJarScanner=警告:ServletContext中没有设置org.apache.tomcat.JarScaner。回到默认的JarScaner实现。
+jsp.warning.quoteAttributeEL=警告:initParam quoteattribeel的值无效。将使用默认值“false”
+jsp.warning.recompileOnFail=警告:initParam recompileOnFail的值无效。将使用默认值“false”
 jsp.warning.strictQuoteEscaping=警告:对initParam strictQuoteEscaping来说无效的值,将会使用默认值“true”
 jsp.warning.suppressSmap=警告:suppressSmap的初始化参数无效。将使用默认值“false”
+jsp.warning.tagPreDestroy=处理标记实例的preDestroy时出错[{0}]
+jsp.warning.tagRelease=处理[{0}]的标记实例上的释放时出错
+jsp.warning.unknown.sourceVM=忽略未知源VM[{0}]
+jsp.warning.unknown.targetVM=忽略未知目标VM[{0}]
+jsp.warning.unsupported.sourceVM=不支持的源VM[{0}]请求,使用[{1}]
+jsp.warning.unsupported.targetVM=不支持请求的目标VM[{0}],使用[{1}]
+jsp.warning.xpoweredBy=警告:initParam xpoweredBy的值无效。将使用默认值“false”
 
 jspc.delete.fail=无法删除文件 [{0}]
+jspc.error.compilation=编译错误
 jspc.error.fileDoesNotExist=文件参数 [{0}] 不存在
+jspc.error.generalException=错误文件[{0}]生成以下常规异常:
+jspc.error.invalidFragment=由于web片段中的错误而中止预编译
+jspc.error.invalidWebXml=由于web.xml中的错误而中止预编译
+jspc.error.minThreadCount=必须至少有一个线程[{0}]
 jspc.error.parseThreadCount=不能够转换的线程数[{0}]
+jspc.error.unknownOption=无法识别的选项[{0}]。使用-帮助获取帮助。
 jspc.errorCount=错误计数:[{0}]
+jspc.generation.result=生成在[{1}]毫秒内完成,出现[{0}]个错误
+jspc.implicit.uriRoot=uriRoot隐式设置为[{0}]
 jspc.usage=用法: jspc <选项> [--] <jsp 目录>\n\
 jsp.文件在哪\n\
 \    -webapp <dir>         包含Web.应用程序的目录, 哪个jsp页面\n\
@@ -221,6 +352,7 @@ jsp.文件在哪\n\
 \    -target <version>     设置-target.参数到编译器(默认1.8)\n\
 \    -threadCount <count>  编译使用的线程数.\n\
 \                          ("2.0C" 意味着每个内核有两个线程)\n
+jspc.warning.tldInWebInfLib=TLD文件不应放在/WEB-INF/lib中”
 jspc.webfrg.footer=\n\
 </web-fragment>\n\
 \n
@@ -268,6 +400,10 @@ jstl.OSAfterWriter=如果已使用写入程序,则无法使用输出流
 jstl.urlMustStartWithSlash=在指定了“context”属性的URL标记中,“url”和“context”都必须以斜杠字符开头
 jstl.writerAfterOS=如果已使用输出流,则无法使用编写器
 
+org.apache.jasper.compiler.ELParser.invalidQuotesForStringLiteral=字符串文本[{0}]无效。它必须包含在单引号或双引号中。
+org.apache.jasper.compiler.ELParser.invalidQuoting=表达式[{0}]无效。在带引号的字符串中,只有[],['']和[“]可以用[]转义。
 org.apache.jasper.compiler.TldCache.servletContextNull=提供的 ServletContext 为 null
+org.apache.jasper.servlet.JasperInitializer.onStartup=正在初始化上下文[{0}]的Jasper
 org.apache.jasper.servlet.TldScanner.webxmlAdd=从资源路径[{0} ]加载URI[{1}]的TLD
 org.apache.jasper.servlet.TldScanner.webxmlFailPathDoesNotExist=无法使用路径 [{0}] 和 URI [{1}] 处理TLD。指定的路径不存在。
+org.apache.jasper.servlet.TldScanner.webxmlSkip=跳过从资源路径{0}加载URI[{1}]的TLD,因为它已在<jsp config>中定义
diff --git a/java/org/apache/naming/LocalStrings_zh_CN.properties b/java/org/apache/naming/LocalStrings_zh_CN.properties
index 7bae775..822482f 100644
--- a/java/org/apache/naming/LocalStrings_zh_CN.properties
+++ b/java/org/apache/naming/LocalStrings_zh_CN.properties
@@ -17,8 +17,13 @@ contextBindings.noContextBoundToCL=没有绑定到此类加载器的命名上下
 contextBindings.noContextBoundToThread=没有绑定到此线程的命名上下文
 contextBindings.unknownContext=未知.上下文名:[{0}]
 
+namingContext.alreadyBound=名称[{0}]已在此上下文中绑定
 namingContext.contextExpected=上下文Context未绑定名称name
 namingContext.failResolvingReference=解析引用时意外异常
+namingContext.invalidName=名称无效
+namingContext.nameNotBound=名称[{0}]未在此上下文中绑定。找不到[{1}]。
+namingContext.noAbsoluteName=无法为此命名空间生成绝对名称
+namingContext.readOnly=上下文是只读的
 
 selectorContext.methodUsingName=用[{1}]的name属性调用方法[{0}]
 selectorContext.methodUsingString=使用字符串[{1}]调用方法[{0}]
diff --git a/java/org/apache/naming/factory/LocalStrings_zh_CN.properties b/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
index fb99e01..4891b49 100644
--- a/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
+++ b/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
@@ -13,13 +13,20 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+dataSourceLinkFactory.badWrapper=不是类型[{0}]的包装
+
 factoryBase.factoryClassError=无法加载资源工厂类
 factoryBase.factoryCreationError=无法创建资源工厂实例
 factoryBase.instanceCreationError=无法创建资源实例
 
+lookupFactory.circularReference=找到一个涉及[{0}]的循环引用
 lookupFactory.createFailed=无法创建JNDI查找工厂类实例
 lookupFactory.loadFailed=无法加载JNDI查找工厂类
 lookupFactory.typeMismatch=期望JNDI引用[{0}]的类型为[{1}],但查找[{2}]返回类型为[{3}]的对象
 
+resourceFactory.factoryCreationError=无法创建资源工厂实例
+
+resourceLinkFactory.invalidGlobalContext=调用方提供的全局上下文无效
 resourceLinkFactory.nullType=引用全局资源 [{1}] 的本地资源链接 [{0}] 未指定所需的属性类型
 resourceLinkFactory.unknownType=引用全局资源[{1}]的本地资源链接[{0}]指定了未知类型[{2}]
+resourceLinkFactory.wrongType=引用全局资源[{1}]的本地资源链接[{0}]应返回[{2}]的实例,但返回了[{3}]的实例
diff --git a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties b/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
similarity index 93%
copy from java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
copy to java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
index 6ccb66e..08d3248 100644
--- a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
+++ b/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-multiCastSender.sendFailed=无法发送多播信息
+serviceProxy.portNotFound=找不到端口组件ref[{0}]
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/dbcp/dbcp2/LocalStrings_zh_CN.properties
index d981065..f557591 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/dbcp/dbcp2/LocalStrings_zh_CN.properties
@@ -13,8 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+connectionFactory.lifetimeExceeded=连接的生存期[{0}]毫秒超过了允许的最大值[{1}]毫秒。
+
+pool.close.fail=无法关闭连接池。
+
 poolableConnection.validate.fastFail=此连接上预先抛出了致命的 SQLException。
 
+poolableConnectionFactory.validateObject.fail=无法验证可共用连接。
+
 poolingDataSource.factoryConfig=PoolableConnectionFactory 未连接到连接池。请调用 setPool() 修复此配置。
 
 swallowedExceptionLogger.onSwallowedException=一个内部对象池吞并了一个异常。
diff --git a/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
index 6a3d8d9..f6edc24 100644
--- a/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
@@ -18,8 +18,18 @@ diagnostics.vmInfoClassCompilation=:)class汇编
 diagnostics.vmInfoClassLoading=类加载中
 diagnostics.vmInfoGarbageCollectors=垃圾收集器[{0}]
 diagnostics.vmInfoLogger=日志记录器(Logger)信息
+diagnostics.vmInfoMemory=内存信息
+diagnostics.vmInfoMemoryManagers=内存管理器[{0}]
+diagnostics.vmInfoMemoryPools=内存池[{0}]
 diagnostics.vmInfoOs=操作系统信息
+diagnostics.vmInfoPath=路径信息
 diagnostics.vmInfoRuntime=运行时信息
+diagnostics.vmInfoStartup=启动参数
 diagnostics.vmInfoSystem=系统.属性
 diagnostics.vmInfoThreadCounts=线程数
 diagnostics.vmInfoThreadMxBean=ThreadMXBean功能
+
+introspectionUtils.conversionError=将[{0}]转换为类型[{1}]时出错
+introspectionUtils.getPropertyError=获取类[{1}]的属性[{0}]时出错
+introspectionUtils.nullParameter=方法名、参数和对象目标参数不能为空
+introspectionUtils.setPropertyError=在类[{2}]上将属性[{0}]设置为[{1}]时出错
diff --git a/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
index 3424dbb..ede140a 100644
--- a/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
@@ -16,6 +16,18 @@
 asn1Parser.lengthInvalid=无效长度 [{0}]字节报告,但是输入数据的长度是 [{1}]字节
 asn1Parser.tagMismatch=期望找到值 [{0}]但是却找到值 [{1}]
 
+b2cConverter.unknownEncoding=不支持字符编码[{0}]
+
+byteBufferUtils.cleaner=无法使用直接ByteBuffer清洁剂,可能会发生内存泄漏
+
+chunk.overflow=缓冲区溢出且未设置接收器,请限制[{0}]和缓冲区长度[{1}]
+
+encodedSolidusHandling.invalid=
+
 hexUtils.fromHex.nonHex=输入只能由十六进制数字组成
+hexUtils.fromHex.oddDigits=输入必须由偶数个十六进制数字组成
 
+uDecoder.eof=文件结尾(EOF)
+uDecoder.noSlash=不允许使用编码的斜杠字符
 uDecoder.urlDecode.conversionError=使用编码[{1}]解码[{0}]失败
+uDecoder.urlDecode.missingDigit=无法解码[{0}],因为%字符必须后跟两个十六进制数字。
diff --git a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/codec/binary/LocalStrings_zh_CN.properties
similarity index 74%
copy from java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
copy to java/org/apache/tomcat/util/codec/binary/LocalStrings_zh_CN.properties
index 6ccb66e..0624dec 100644
--- a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/codec/binary/LocalStrings_zh_CN.properties
@@ -13,4 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-multiCastSender.sendFailed=无法发送多播信息
+base64.impossibleModulus=不可能的模[{0}]
+base64.inputTooLarge=输入数组太大,输出数组将比指定的最大大小[{1}]大[{0}]
+base64.lineSeparator=行分隔符不能包含base64个字符[{0}]
+base64.nullEncodeParameter=不能用空参数编码整数
diff --git a/java/org/apache/tomcat/util/descriptor/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/descriptor/LocalStrings_zh_CN.properties
index 37298fe..c7bc72e 100644
--- a/java/org/apache/tomcat/util/descriptor/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/descriptor/LocalStrings_zh_CN.properties
@@ -14,3 +14,8 @@
 # limitations under the License.
 
 digesterFactory.missingSchema=XML模型[{0}]未找到,如果XML校验功能开启了的话,这很可能终止XML校验
+
+localResolver.unresolvedEntity=不能解决XML资源[{0}]与公共ID[{1}],系统ID[{2}]和基础URI[{3}]到一个已知,当地的实体。
+
+xmlErrorHandler.error=非致命错误[{0}]报告正在处理[{1}]。
+xmlErrorHandler.warning=警告[{0}]报告处理[{1}]。
diff --git a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/descriptor/tld/LocalStrings_zh_CN.properties
similarity index 91%
copy from java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
copy to java/org/apache/tomcat/util/descriptor/tld/LocalStrings_zh_CN.properties
index 6ccb66e..7999008 100644
--- a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/descriptor/tld/LocalStrings_zh_CN.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-multiCastSender.sendFailed=无法发送多播信息
+implicitTldRule.elementNotAllowed=隐式.tld文件中不允许元素[{0}]
diff --git a/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties
index df89aad..e63839f 100644
--- a/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties
@@ -15,23 +15,47 @@
 
 filterDef.invalidFilterName=过滤器定义中的<filter-name> [{0}] 无效。
 
+securityConstraint.uncoveredHttpMethod=对于URL模式为[{0}]的安全约束,只包括HTTP方法[{1}]。所有其他方法都没有涉及。
+securityConstraint.uncoveredHttpMethodFix=添加URL模式为[{0}]的安全约束,以拒绝使用未覆盖的HTTP方法进行访问,这些方法不是下列方法之一[{1}]。
 securityConstraint.uncoveredHttpOmittedMethod=对于URL模式[{0}]的安全性约束,将发现HTTP方法[{1}]。
 securityConstraint.uncoveredHttpOmittedMethodFix=添加url模式为[{0}]的安全约束以拒绝使用未覆盖的http方法[{1}]的访问
 
+servletDef.invalidServletName=servlet定义中的<servlet name>[{0}]无效。
+
 webRuleSet.absoluteOrdering=<绝对值排序>元素在web片段xml中无效,将被忽略。
+webRuleSet.absoluteOrderingCount=<absolute ordering>元素限制为1次出现
 webRuleSet.nameCount=<name>元素只能出现1次
 webRuleSet.postconstruct.duplicate=class [{0}] 有重复的 post 构造方法声明
+webRuleSet.predestroy.duplicate=类[{0}]的@PreDestroy方法定义重复
+webRuleSet.relativeOrdering=<ordering>元素在web.xml中无效,将被忽略
+webRuleSet.relativeOrderingCount=<ordering>元素限制为1次出现。
 
 webXml.duplicateEnvEntry=重复的env-entry 名 [{0}]
 webXml.duplicateFilter=重复的过滤器名称 [{0}]
+webXml.duplicateFragment=找到多个名为{0}的片段。这是不合法的相对排序。有关详细信息,请参阅Servlet规范的第8.2.2 2c节。考虑使用绝对排序。
+webXml.duplicateMessageDestination=重复的邮件目标名称[{0}]。
+webXml.duplicateMessageDestinationRef=重复的消息目标引用名称[{0}]
+webXml.duplicateResourceEnvRef=重复的资源env ref name[{0}]
+webXml.duplicateResourceRef=重复的资源引用名称[{0}]
 webXml.duplicateServletMapping=名为 [{0}]和 [{1}] 的servlet不能映射为一个url模式(url-pattern) [{2}]
+webXml.duplicateTaglibUri=重复的标记库URI[{0}]
 webXml.mergeConflictDisplayName=显示名称在多个片段中被定义,这些片段包含不同的值,包括位于[{1}]的[{0}]的片段。
 webXml.mergeConflictFilter=筛选器[{0}]在多个片段中定义不一致,包括位于[{2}]的名为[{1}]的片段
+webXml.mergeConflictLoginConfig=在多个片段中定义的LoginConfig不一致,其中包括位于[{1}]的名为[{0}]的片段
 webXml.mergeConflictOrder=片段相对顺序包含循环引用。这可以通过在web.xml中使用绝对排序来解决。
+webXml.mergeConflictResource=资源[{0}]在多个片段中定义不一致,包括位于[{2}]的名为[{1}]的片段。
 webXml.mergeConflictServlet=Servlet[{0}]在多个片段中的定义不一致,包括位于[{2}]的名为[{1}]的片段
+webXml.mergeConflictSessionCookieComment=会话cookie注释在多个具有不同值的片段中定义不一致,包括位于{1}的名为{0}]的片段
+webXml.mergeConflictSessionCookieDomain=会话cookie域在多个具有不同值的片段中定义不一致,包括位于[{1}]的名为[{0}]的片段
+webXml.mergeConflictSessionCookieHttpOnly=会话cookie http only标志在多个具有不同值的片段中定义不一致,包括位于[{1}]的名为[{0}]的片段
+webXml.mergeConflictSessionCookieMaxAge=会话cookie max age在多个具有不同值的片段中定义不一致,包括位于[{1}]的名为[{0}]的片段
 webXml.mergeConflictSessionCookieName=会话cookie名称在多个具有不同值的片段中定义不一致,包括位于 [{1}] 的片段 [{0}]
+webXml.mergeConflictSessionCookiePath=会话cookie路径在多个具有不同值的片段中定义不一致,包括位于[{1}]的名为[{0}]的片段
+webXml.mergeConflictSessionCookieSecure=会话cookie安全标志在多个具有不同值的片段中定义不一致,包括位于{1}的名为{0}]的片段
 webXml.mergeConflictSessionTimeout=会话超时以不同值的多个片段不一致地定义,这些片段包括位于[{1}]的具有名称[{0}]的片段。
 webXml.mergeConflictSessionTrackingMode=会话跟踪模式在多个片段中定义不一致,包括位于[{1}]的名称为[{0}]的片段
+webXml.mergeConflictString=名称为{1}的{0}在多个片段中定义不一致,包括位于{3}的名称为{2}的片段
+webXml.multipleOther=嵌套在<ordering>元素中的多个<others>条目
 webXml.reservedName=使用保留名称[{0}]检测到web.xml文件。 此片段将忽略name元素。
 webXml.unrecognisedPublicId=对于web.xml文件,公共ID[{0}]不匹配任何已知的公共ID‘,因此无法识别版本。
 webXml.version.unknown=未知版本字符串 [{0}]。将使用默认版本。
@@ -39,3 +63,4 @@ webXml.wrongFragmentName=在web.xml绝对排序标签上使用了错误的片段
 
 webXmlParser.applicationParse=解析应用web.xml错误,路径:[{0}]
 webXmlParser.applicationPosition=出现在第 [{0}] 行 第 [{1}] 列
+webXmlParser.applicationStart=正在分析位于[{0}]的应用程序web.xml文件
diff --git a/java/org/apache/tomcat/util/digester/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/digester/LocalStrings_zh_CN.properties
index ab63255..0a4b817 100644
--- a/java/org/apache/tomcat/util/digester/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/digester/LocalStrings_zh_CN.properties
@@ -13,5 +13,24 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+digester.createParserError=创建SAX分析器时出错
+digester.emptyStack=空堆栈,返回空值
+digester.emptyStackError=空堆栈
 digester.encodingInvalid=JRE无法识别 [{0}]编码,将被忽略
+digester.error.begin=开始事件引发异常
+digester.error.body=正文事件引发异常
+digester.error.end=结束事件引发异常
+digester.error.finish=完成事件引发异常
+digester.errorLocation=行{0}列{1}]处出错:[{2}]
 digester.failedToUpdateAttributes=属性[{0}]更新失败,旧数据为[{1}]
+digester.failedToUpdateSystemProperty=系统属性[{0}]更新失败,仍为[{1}]
+digester.noLocator=没有定位器
+digester.noRulesFound=找不到匹配的规则[{0}]
+digester.parseError=在第[{0}]行第[{1}]列处出现分析错误
+digester.parseErrorFatal=分析第[{0}]行第[{1}]列处的致命错误
+digester.parseWarning=在第[{0}]行第[{1}]列处分析警告
+digester.propertySourceLoadError=加载属性源[{0}]时出错
+
+rule.createError=创建对象时出错:[{0}]
+rule.noClassName=没有为[{0}[{1}]指定类名
+rule.noProperty=Match[{0}]无法将属性[{1}]设置为[{2}]
diff --git a/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
index 331826a..703308b 100644
--- a/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
@@ -13,7 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+cookies.fallToDebug=␣注意:将在调试级别记录进一步出现的Cookie错误。
 cookies.invalidCookieToken=Cookie:cookie无效。值不是令牌或引用值
+cookies.invalidSameSiteCookies=未知设置[{0}],必须是以下之一:unset、none、lax、strict。默认值为unset。
 cookies.invalidSpecial=Cookies:未知特殊的Cookie
 cookies.maxCountFail=检测到超过Cookie最大允许的数量[{0}]
 
@@ -22,10 +24,15 @@ headers.maxCountFail=检测到超过了允许设置的最大header 数[{0}]
 parameters.bytes=开始处理输入[{0}]
 parameters.copyFail=无法创建以调试日志记录为目的的原始参数值的副本
 parameters.decodeFail.debug=字符解码失败.参数 [{0}]和值 [{1}]被忽略
+parameters.decodeFail.info=字符解码失败。值为[{1}]的参数[{0}]已被忽略。请注意,此处引用的名称和值可能由于解码失败而损坏。使用调试级别日志记录查看原始的、未损坏的值。
 parameters.emptyChunk=忽略空参数块
 parameters.fallToDebug=注:更多的参数错误将以DEBUG级别日志进行记录。
+parameters.invalidChunk=从字节[{0}]开始到字节[{1}]结束的无效块,忽略值[{2}]
 parameters.maxCountFail=检测到单个请求([{0}])的最大请求参数数(GET加POST)。 超出此限制的任何参数都被忽略。 要更改此限制,请在Connector上设置maxParameterCount属性。
 parameters.maxCountFail.fallToDebug=注意:更多的错误信息只在debug级别日志中记录
+parameters.multipleDecodingFail=字符解码失败。总共检测到[{0}]个失败,但只记录了第一个失败。为此记录器启用调试级别日志记录以记录所有故障。
 parameters.noequal=):参数从位置[{0}]开始,到位置[{1}]结束,值为[{2}],后面没有“=”字符
 
+rfc6265CookieProcessor.invalidCharInValue=Cookie值中存在无效字符[{0}]
+rfc6265CookieProcessor.invalidDomain=为此cookie指定的域[{0}]无效
 rfc6265CookieProcessor.invalidPath=这个cookie被指定了一个无效的路径 [{0}]
diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings_zh_CN.properties
index d8d08db..f90af7e 100644
--- a/java/org/apache/tomcat/util/http/parser/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_zh_CN.properties
@@ -13,9 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+cookie.fallToDebug=␣注意:此错误的进一步出现将记录在调试级别。
+cookie.invalidCookieValue=收到包含无效cookie的cookie头[{0}]。将忽略该cookie。
+cookie.invalidCookieVersion=使用无法识别的[{0}] cookie版本接收到cookie标头。标头及其包含的cookie将被忽略。
 cookie.valueNotPresent=<不存在>
 
 http.closingBracket=在非IPv6主机名中找到了右括号']'。
+http.illegalAfterIpv6=不允许字符[{0}]跟随主机名中的IPv6地址。
+http.illegalCharacterDomain=字符[{0}]在域名中永远无效。
 http.illegalCharacterIpv4=字符[{0}]为非法的IPv4地址。
 http.illegalCharacterIpv6=字符[{0}]为非法的IPv6地址。
 http.invalidCharacterDomain.afterColon=字符 [{0}] 在域名中的冒号后无效。
@@ -37,3 +42,4 @@ http.singleColonStart=一个IPv6地址也许不是以单个冒号":"开头的。
 http.tooFewHextets=一个IPv6地址必须包含8个16进制数,但是这个IP地址包含了[(0)]个16进制数,并且无“::”序列表示一个或多个0个16进制数
 http.tooManyColons=IPv6地址不能包含超过2个连续冒号字符。
 http.tooManyDoubleColons=一个IPv6地址只能包含一个 '::' 序列。
+http.tooManyHextets=IPv6地址包含[{0}]个十六进制数,但有效的IPv6地址不能超过8个。
diff --git a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
index 00344f5..b193af5 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
@@ -13,8 +13,36 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+baseModelMBean.cnfeForSignature=找不到[{0}]的类
+baseModelMBean.invokeError=调用方法[{0}]时发生异常
+baseModelMBean.notificationError=发送通知时出错[{0}]
+baseModelMBean.nullAttribute=属性为空
+baseModelMBean.nullAttributeName=属性名为空
+baseModelMBean.nullAttributeNameList=属性名列表为空
 baseModelMBean.nullListener=监听器为空
+baseModelMBean.nullMessage=消息为空
+baseModelMBean.nullMethodName=方法名为空
+baseModelMBean.nullNotification=通知为空
+baseModelMBean.nullResource=托管资源为空
 
+managedMBean.cannotInstantiateClass=无法实例化类[{0}]的ModelMBean
+managedMBean.cannotLoadClass=无法加载ModelMBean类[{0}]
+managedMBean.inconsistentArguments=参数和签名不一致
+managedMBean.noAttribute=在资源[{1}]上找不到属性[{0}]
+managedMBean.noGet=在资源[{1}]上找不到getter方法[{0}]
+managedMBean.noMethod=找不到具有此签名的方法[{0}]
+managedMBean.noOperation=找不到操作[{0}]
+managedMBean.noSet=在资源[{1}]上找不到setter方法[{0}]
+
+modules.digesterParseError=分析注册表数据时出错
 modules.readDescriptorsError=读取描述文件出错
 
+registry.initError=初始化[{0}]时出错
+registry.loadError=从[{0}]加载描述符时出错
+registry.noDisable=无法禁用MBean注册表,因为它已初始化
+registry.noMetadata=找不到对象[{0}]的元数据
+registry.noTypeMetadata=找不到类型[{0}]的元数据
+registry.nullBean=无法为[{0}]注册空bean
+registry.objectNameCreateError=创建对象名时出错
 registry.registerError=注册 MBean 出错
+registry.unregisterError=注销MBean时出错
diff --git a/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
index 6b3dc3e..71a353c 100644
--- a/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
@@ -13,22 +13,36 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+channel.nio.interrupted=当前线程被中断。
+channel.nio.ssl.appInputNotEmpty=应用程序输入缓冲区仍然包含数据。数据将会丢失。
 channel.nio.ssl.appOutputNotEmpty=应用程序输出缓冲区仍包含数据。数据可能会丢失。
+channel.nio.ssl.closeSilentError=如所料,尝试完全关闭连接时出现异常。
 channel.nio.ssl.closing=通道处于关闭状态
 channel.nio.ssl.eofDuringHandshake=握手期间EOF
 channel.nio.ssl.expandNetInBuffer=增加网络入口缓冲到[{0}]字节
+channel.nio.ssl.expandNetOutBuffer=正在将网络输出缓冲区扩展到[{0}]字节。
 channel.nio.ssl.foundHttp=找到一个明文HTTP请求,它应该是一个加密的TLS连接
+channel.nio.ssl.handshakeError=握手错误。
+channel.nio.ssl.incompleteHandshake=握手未完成,您必须在读取数据之前完成握手。
 channel.nio.ssl.invalidCloseState=无效的关闭状态,不会发送网络数据。
+channel.nio.ssl.invalidStatus=意外状态[{0}]。
+channel.nio.ssl.netInputNotEmpty=网络输入缓冲区仍然包含数据。握手会失败的。
+channel.nio.ssl.netOutputNotEmpty=网络输出缓冲区仍然包含数据。握手会失败的。
 channel.nio.ssl.notHandshaking=握手认证期间NOT_HANDSHAKING
+channel.nio.ssl.pendingWriteDuringClose=挂起写入,因此网络缓冲区中的剩余数据无法发送SSL close消息,套接字已关闭
 channel.nio.ssl.remainingDataDuringClose=网络缓冲区中的剩余数据,无法发送SSL关闭消息,套接字仍将关闭
 channel.nio.ssl.sniDefault=无法缓冲足够的数据来确定请求的SNI主机名。使用默认值
 channel.nio.ssl.sniHostName=连接[{0}]中提取的SNI主机名称是[{1}]
 channel.nio.ssl.timeoutDuringHandshake=握手期间超时。
+channel.nio.ssl.unexpectedStatusDuringUnwrap=握手展开期间出现意外状态[{0}]。
 channel.nio.ssl.unexpectedStatusDuringWrap=握手WRAP期间出现意外状态[{0}]。
 channel.nio.ssl.unwrapFail=无法解包数据,无效状态 [{0}]
 channel.nio.ssl.unwrapFailResize=由于缓冲区太小无法解包数据,无效状态 [{0}]
+channel.nio.ssl.wrapException=包装期间握手失败
+channel.nio.ssl.wrapFail=无法包装数据,状态无效[{0}]
 
 endpoint.accept.fail=套接字接受失败
+endpoint.alpn.fail=无法使用[{0}]为ALPN配置终结点。
 endpoint.alpn.negotiated=使用ALPN协商的[{0}]协议
 endpoint.apr.applyConf=正将OpenSSLConfCmd应用在SSL Context上。
 endpoint.apr.checkConf=检查配置OpenSSLConf
@@ -39,53 +53,107 @@ endpoint.apr.failSslContextMake=无法创建SSLContext。检查AprLifecycleListe
 endpoint.apr.invalidSslProtocol=为SSLProtocol属性提供了无效值[{0}]
 endpoint.apr.maxConnections.running=):APR终结点在运行时不支持MaxConnections的设置。[{0}]的现有值将继续使用。
 endpoint.apr.maxConnections.unlimited=APR终结点不支持无限连接。[{0}]的现有值将继续使用。
+endpoint.apr.noSendfileWithSSL=启用SSL时,APR/native连接器不支持Sendfile
 endpoint.apr.pollAddInvalid=无效企图向一个轮询器中添加一个套接字[{0}]
 endpoint.apr.pollError=Poller失败,异常[{0}]:[{1}]
+endpoint.apr.pollMergeEvents=为套接字[{0}]创建合并事件[{2}]的合并轮询器事件[{1}]
+endpoint.apr.pollUnknownEvent=从轮询器返回的套接字具有无法识别的事件[{0}]
+endpoint.apr.remoteport=APR套接字[{0}]已打开,远程端口为[{1}]
 endpoint.apr.tooManyCertFiles=证书文件配置超过了
 endpoint.debug.channelCloseFail=关闭频道失败
 endpoint.debug.destroySocket=将销毁socket [{0}]
+endpoint.debug.handlerRelease=处理程序无法释放套接字包装
+endpoint.debug.pollerAdd=添加到addList socket[{0}],timeout[{1}],flags[{2}]
+endpoint.debug.pollerAddDo=添加到轮询器套接字[{0}]
 endpoint.debug.pollerProcess=为事件[{1}]处理套接字[{0}]
+endpoint.debug.pollerRemove=正在尝试从轮询器中删除[{0}]。
+endpoint.debug.pollerRemoved=已从轮询器中删除[{0}]
+endpoint.debug.registerRead=[{0}]的注册读兴趣
+endpoint.debug.registerWrite=[{0}]的注册写利息
 endpoint.debug.socket=socket [{0}]
+endpoint.debug.socketTimeout=超时 [{0}]
+endpoint.debug.unlock.fail=尝试在端口[{0}]上解除接受锁定时捕获到异常
+endpoint.debug.unlock.localFail=无法确定[{0}]的本地地址
 endpoint.debug.unlock.localNone=无法解除 [{0}] 的接受器,因为本地地址不可用
+endpoint.duplicateSslHostName=为主机名[{0}]提供了多个SSLHostConfig元素。主机名必须唯一
 endpoint.err.close=抓住异常试图关闭socket
+endpoint.err.handshake=握手失败
 endpoint.err.unexpected=处理套接字时意外错误
+endpoint.executor.fail=执行器拒绝了用于处理的套接字[{0}]
 endpoint.getAttribute=[{0}] 是 [{1}]
 endpoint.init.bind=套接字绑定失败: [{0}] [{1}]
+endpoint.init.bind.inherited=连接器配置为使用继承通道时没有继承通道
+endpoint.init.listen=套接字侦听失败:[{0}][{1}]
 endpoint.init.notavail=APR.不可用
+endpoint.invalidJmxNameSslHost=无法为与主机[{0}]关联的SSLHostConfig生成有效的JMX对象名
 endpoint.invalidJmxNameSslHostCert=对于SSLHostConfigCertificate关联的主机[{0}]和证书类型[{1}],无法生成有效的XML对象名称
 endpoint.jmxRegistrationFailed=未能使用名称[{0}]注册JMX对象
 endpoint.jsse.noSslContext=):找不到主机名[{0}]的SSLContext
+endpoint.launch.fail=无法启动新的可运行文件
+endpoint.nio.keyProcessingError=处理选择键时出错
+endpoint.nio.latchMustBeZero=闩锁必须为0或空
+endpoint.nio.nullLatch=闩锁不能为空
+endpoint.nio.pollerEventError=处理轮询器事件时出错
+endpoint.nio.registerFail=无法用轮询器中的选择器注册套接字。
+endpoint.nio.selectorCloseFail=关闭轮询器时未能关闭选择器
+endpoint.nio.selectorLoopError=选择器循环出错
 endpoint.nio.stopLatchAwaitFail=在预期的时间内,pollers未停止
 endpoint.nio.stopLatchAwaitInterrupted=在等待轮询器停止时,该线程被中断
 endpoint.nio.timeoutCme=处理超时异常. 这段代码已经被重复检查并且没有并发修改发现。如果你能重现这个错误,请提交一个tomcat bug, 提供重现步骤.
+endpoint.nio2.exclusiveExecutor=NIO2连接器需要一个独占的执行器才能在关机时正常运行
 endpoint.noSslHostConfig=没有找到带有hostName[{0}]的SSLHostConfig元素,以匹配连接器[{1}]的默认SSLHostConfigName
 endpoint.noSslHostName=SSL主机中没有被提供主机名
+endpoint.poll.error=意外的轮询器错误
 endpoint.poll.fail=严重轮询器故障(重新启动轮询器)[{0}] [{1}]
+endpoint.poll.initfail=轮询器创建失败。
 endpoint.poll.limitedpollsize=创建轮询器失败,大小:[{0}]
+endpoint.pollerThreadStop=轮询线程未能及时停止。
+endpoint.portOffset.invalid=portOffset的值[{0}]无效,因为portOffset不能为负。
 endpoint.process.fail=分配 socket 处理器出错
 endpoint.processing.fail=运行.套接字处理器出错
+endpoint.rejectedExecution=[{0}]的套接字处理请求被拒绝
 endpoint.removeDefaultSslHostConfig=默认SSLHostConfig(名为[{0}])可能未被移除
 endpoint.sendfile.addfail=发送文件(Sendfile)失败: [{0}] [{1}]
+endpoint.sendfile.closeError=关闭发送文件资源时出错
 endpoint.sendfile.error=未知的sendfile异常。
+endpoint.sendfile.tooMuchData=Sendfile配置为发送比可用数据更多的数据
 endpoint.sendfileThreadStop=sendfile线程无法及时停止
 endpoint.serverSocket.closeFailed=无法为 [{0}] 关闭服务器 socket
 endpoint.setAttribute=设置. [{0}] 到 [{1}]
+endpoint.setAttributeError=无法将属性[{0}]设置为[{1}]
+endpoint.socketOptionsError=设置套接字选项时出错
 endpoint.timeout.err=处理套接字超时出错
+endpoint.unknownSslHostName=此终结点无法识别SSL主机名[{0}]
 endpoint.warn.executorShutdown=与线程池[{0}]关联的执行程序尚未完全关闭。 某些应用程序线程可能仍在运行。
 endpoint.warn.incorrectConnectionCount=连接数不正确,在同一个套接字上调用多个socket.close。
 endpoint.warn.noLocalAddr=无法确定套接字 [{0}] 的本地地址
 endpoint.warn.noLocalName=无法确定 socket [{0}] 的本地主机名
 endpoint.warn.noLocalPort=无法确定套接字 [{0}] 的本地端口
+endpoint.warn.noRemoteAddr=无法确定套接字[{0}]的远程地址
+endpoint.warn.noRemoteHost=无法确定套接字[{0}]的远程主机名
 endpoint.warn.noRemotePort=无法确定 socket [{0}] 的远程端口
 endpoint.warn.noUtilityExecutor=没有公共的executor 被设置时,创建一个.
+endpoint.warn.unlockAcceptorFailed=接收器线程[{0}]解锁失败。强制硬套接字关闭。
 
+jsse.invalid_truststore_password=提供的信任存储密码无法用于解锁和/或验证信任存储。正在重试使用空密码访问信任存储,该密码将跳过验证。
+jsse.keystore_load_failed=由于{2},无法加载路径为{1}]的密钥库类型{0}]
 jsse.ssl3=SSLv3 已显式启用。 已知该协议是不安全。
+jsse.tls13.auth=JSSE TLS 1.3实现不支持初始握手后的身份验证,因此与可选的客户端身份验证不兼容
+
+nioBlockingSelector.keyNotRegistered=密钥不再注册
+nioBlockingSelector.possibleLeak=可能的密钥泄漏,正在取消终结器中的密钥
+nioBlockingSelector.processingError=处理选择键操作时出错
+nioBlockingSelector.selectError=选择键时出错
 
 sniExtractor.clientHelloInvalid=ClientHello信息未正常格式化
 sniExtractor.clientHelloTooBig=):ClientHello 没有出现在单个TLS记录中,因此无法提取SNI信息
 
+socket.apr.clientAbort=客户端中止连接。
 socket.apr.closed=与该链接所关联的 socket [{0}] 被关闭
+socket.apr.read.error=从APR/native socket[{1}]中读取带有包装器[{2}]的数据时出现意外错误[{0}]。
+socket.apr.write.error=将数据写入APR/native socket[{1}]时出现意外错误[{0}],包装器为[{2}]。
 socket.closed=与此连接关联的套接字已关闭。
+socket.sslreneg=重新协商SSL连接时出现异常
 
 sslHostConfig.certificate.notype=指定了多个证书,并且至少有一个证书缺少必需的属性类型
 sslHostConfig.certificateVerificationInvalid=证书认证值[{0}]未识别
@@ -94,6 +162,8 @@ sslHostConfig.mismatch=属性[{0}]是在名为[{1}]的SSLHostConfig 上设置的
 sslHostConfig.opensslconf.null=(:忽略设置空OpenSSLConf 的尝试
 sslHostConfig.prefix_missing=协议[{0}]已添加到名为[{1}]的SSLHostConfig 上的协议列表中。检查是否缺少一个+/-前缀。
 
+sslHostConfigCertificate.mismatch=属性[{0}]是在名为[{1}]的SSLHostConfigCertificate上设置的,用于证书存储类型[{2}],但该证书正与类型为[{3}]的存储一起使用。
+
 sslImplementation.cnfe=无法为类 [{0}] 创建SSLImplementation
 
 sslUtilBase.active=活跃的[{0}]是:[{1}]
diff --git a/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
index d1830a6..2e152c2 100644
--- a/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
@@ -13,13 +13,23 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+jsse.alias_no_key_entry=别名[{0}]不标识密钥项
+jsse.excludeProtocol=此JRE支持的SSL协议[{0}]已从Tomcat可用的协议中排除
+jsse.invalidTrustManagerClassName=提供的trustManagerClassName[{0}]未实现javax.net.ssl.TrustManager
+jsse.noCertFile=使用SSL连接器时必须定义SSLHostConfig属性certificateFile
 jsse.noDefaultProtocols=无法确定sslEnabledProtocols的默认值。设置显式值以确保连接器可以启动。
+jsse.noKeys=在密钥存储中找不到私钥的别名
 jsse.openssl.effectiveCiphers=使用的密码:[{0}]
+jsse.openssl.unknownElement=密码字符串中的未知元素:[{0}]。
 jsse.pemParseError=无法从 [{0}] 解析 key
 
 jsseSupport.certTranslationError=错误的转换证书[{0}]
 jsseSupport.clientCertError=尝试从客户端获取证书时出错
 
+jsseUtil.noCrlSupport=truststoreProvider [{0}]不支持certificateRevocationFile配置选项
+jsseUtil.noVerificationDepth=truststoreProvider[{0}]不支持CertificationDepth配置选项
+jsseUtil.trustedCertNotChecked=未检查别名为{0}的受信任证书的有效日期,因为该证书属于未知类型
 jsseUtil.trustedCertNotValid=由于[{2}],别名为[{0}]且DN [{1}]的可信证书无效。 将接受由此可信证书签署的证书
 
+pemFile.noMultiPrimes=PKCS#1证书是多素数格式的,Java不提供从该格式构造RSA私钥对象的API
 pemFile.notValidRFC5915=提供的key文件不符合RFC 5915
diff --git a/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties
index d7fbc35..14342d4 100644
--- a/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties
@@ -16,22 +16,47 @@
 engine.ciphersFailure=获取密码列表失败
 engine.emptyCipherSuite=空密码套件
 engine.engineClosed=引擎已经关闭
+engine.failedCipherSuite=无法启用密码套件[{0}]
+engine.inboundClose=入站在收到对等方的关闭通知之前关闭
+engine.invalidBufferArray=偏移量:[{0}],长度:[{1}](应为:偏移量<=偏移量+长度<=srcs.length[{2}])
 engine.noRestrictSessionCreation=OpenSslEngine不允许限制引擎仅仅去唤醒已经存在的会话
+engine.noSSLContext=没有SSL上下文
 engine.noSession=SSL会话ID不可用
+engine.nullBuffer=空缓冲区
+engine.nullBufferInArray=数组中的空缓冲区
 engine.nullCipherSuite=无加密套件
+engine.nullName=空值名称
+engine.nullValue=空值
 engine.openSSLError=OpenSSL 错误:[{0}] 信息: [{1}]
+engine.oversizedPacket=加密包过大
+engine.unsupportedCipher=不支持的密码套件:[{0}][{1}]。
 engine.unsupportedProtocol=不支持协议 [{0}]
+engine.unverifiedPeer=未经核实的同行
 engine.writeToSSLFailed=写入SSL失败,返回:[{0}]
 
 openssl.X509FactoryError=获取X509工厂实例时出错
 openssl.addedClientCaCert=添加了客户端 CA 证书:[{0}]
+openssl.applyConf=将OpenSSLConfCmd应用于SSL上下文
+openssl.certificateVerificationFailed=证书验证失败
+openssl.checkConf=检查OpenSSLConf
 openssl.doubleInit=SSL环境已经初始化,忽略
 openssl.errApplyConf=无法将OpenSSLConf 应用于SSL 上下文
+openssl.errCheckConf=OpenSSLConf检查期间出错。
 openssl.errMakeConf=无法创建OpenSSLConf上下文
+openssl.errorSSLCtxInit=初始化SSL上下文时出错
 openssl.keyManagerMissing=key管理器未找到
+openssl.makeConf=创建OpenSSLConf上下文
+openssl.nonJsseCertficate=无法使用JSSE密钥管理器处理证书{0}或其私钥{1},该证书将直接提供给OpenSSL
+openssl.nonJsseChain=证书链[{0}]未指定或无效,JSSE需要有效的证书链,因此尝试直接使用OpenSSL
 openssl.trustManagerMissing=没有找到.信任管理者
 
+opensslconf.applyCommand=OpenSSLConf正在应用命令(name[{0}],value[{1}])
+opensslconf.applyFailed=将OpenSSLConf应用于SSL上下文时失败
+opensslconf.checkCommand=OpenSSLConf检查命令(name[{0}],value[{1}])
 opensslconf.checkFailed=检查OpenSSLConf时失败。
+opensslconf.failedCommand=OpenSSLConf失败的命令(名称为{0},值为{1}]),结果为{2}-将被忽略
 opensslconf.finishFailed=OpenSSLConf 配置失败结果为 [{0}]
+opensslconf.noCommandName=OpenSSLConf没有命令名-将被忽略(命令值[{0}])
+opensslconf.resultCommand=OpenSSLConf命令(name[{0}],value[{1}])返回了[{2}]
 
 sessionContext.nullTicketKeys=Null keys
diff --git a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/net/openssl/ciphers/LocalStrings_zh_CN.properties
similarity index 93%
copy from java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
copy to java/org/apache/tomcat/util/net/openssl/ciphers/LocalStrings_zh_CN.properties
index 6ccb66e..59c4c33 100644
--- a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/net/openssl/ciphers/LocalStrings_zh_CN.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-multiCastSender.sendFailed=无法发送多播信息
+converter.mapping=密码套件映射:[{0}]=>[{1}]
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
index fd07877..60d4212 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
@@ -20,5 +20,7 @@ jarScan.classloaderJarScan=从classpath扫描JAR[{0}]
 jarScan.classloaderStart=在类加载器层次结构中扫描JAR
 jarScan.jarUrlStart=正在扫描URL [{0}] 上的JAR文件
 jarScan.webinfclassesFail=无法扫描/WEB-INF/classes
+jarScan.webinflibFail=无法从/WEB-INF/lib扫描JAR[{0}]。
 jarScan.webinflibJarNoScan=没有扫描到/WEB-INF/lib目录下的JAR [{0}]
+jarScan.webinflibJarScan=从/WEB-INF/lib扫描JAR[{0}]
 jarScan.webinflibStart=扫描./WEB-INF/lib 中的JARs
diff --git a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/security/LocalStrings_zh_CN.properties
similarity index 93%
copy from java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
copy to java/org/apache/tomcat/util/security/LocalStrings_zh_CN.properties
index 6ccb66e..7864aaf 100644
--- a/java/org/apache/catalina/ha/backend/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/security/LocalStrings_zh_CN.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-multiCastSender.sendFailed=无法发送多播信息
+concurrentMessageDigest.noDigest=摘要算法不可用
diff --git a/java/org/apache/tomcat/util/threads/res/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/threads/res/LocalStrings_zh_CN.properties
index 543d102..26d70de 100644
--- a/java/org/apache/tomcat/util/threads/res/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/threads/res/LocalStrings_zh_CN.properties
@@ -13,4 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+taskQueue.notRunning=执行器未运行,无法强制命令进入队列
+
+threadPoolExecutor.queueFull=队列容量已满
 threadPoolExecutor.threadStoppedToAvoidPotentialLeak=停止线程[{0}],从而避免context停止后的潜在的内存泄漏
diff --git a/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
index e3c66c5..cb77244 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
@@ -17,37 +17,63 @@ asyncChannelGroup.createFail=无法为WebSocket客户端创建专用的异步通
 
 asyncChannelWrapperSecure.check.notOk=TLS握手返回意外状态[{0}]
 asyncChannelWrapperSecure.check.unwrap=在读取期间将字节写入输出
+asyncChannelWrapperSecure.check.wrap=在写入过程中从输入消耗了字节
 asyncChannelWrapperSecure.closeFail=干净的关闭通道失败
+asyncChannelWrapperSecure.concurrentRead=不允许并发读取操作
+asyncChannelWrapperSecure.concurrentWrite=不允许并发写操作
 asyncChannelWrapperSecure.eof=意外的流结尾
+asyncChannelWrapperSecure.notHandshaking=TLS握手过程中出现意外状态[非握手]
 asyncChannelWrapperSecure.statusUnwrap=unwrap()操作后SSLEngineResult 的意外状态
+asyncChannelWrapperSecure.statusWrap=wrap()操作后SSLEngineResult的意外状态
+asyncChannelWrapperSecure.tooBig=结果[{0}]太大,无法表示为整数
+asyncChannelWrapperSecure.wrongStateRead=尝试完成读取操作时,发现指示正在进行读取的标志为false(应该为true)
+asyncChannelWrapperSecure.wrongStateWrite=尝试完成写操作时,发现指示正在进行写操作的标志为false(应该为true)
 
 backgroundProcessManager.processFailed=后台进程失败
 
 caseInsensitiveKeyMap.nullKey=不允许 Key 是 Null
 
+futureToSendHandler.timeout=等待[{0}[{1}]完成后操作超时。
+
 perMessageDeflate.alreadyClosed=转换器已经关闭且可能永远不会使用
 perMessageDeflate.deflateFailed=无法压缩这个WebSocket压缩结构
 perMessageDeflate.duplicateParameter=重复定义的扩展参数[{0}]
+perMessageDeflate.invalidState=无效状态
 perMessageDeflate.invalidWindowSize=为[{0}]指定了[{1}]大小的无效窗口。 有效值是从8到15(包括8和15)的整数。
+perMessageDeflate.unknownParameter=定义了未知的扩展参数[{0}]
+
+transformerFactory.unsupportedExtension=不支持扩展名[{0}]。
 
+util.invalidMessageHandler=提供的消息处理程序没有onMessage(对象)方法。
 util.invalidType=无法强制值[{0}]转为[{1}]类型(不支持次类型)。
 util.notToken=一个非法的扩展参数被指定为名称[{0}]和值[{0}]
 util.unknownDecoderType=无法识别该解码器类型[{0}]
 
+wsFrame.alreadyResumed=已恢复邮件接收
 wsFrame.alreadySuspended=消息接收已挂起。
+wsFrame.bufferTooSmall=没有异步消息支持,并且缓冲区太小。缓冲区大小:[{0}],消息大小:[{1}]
 wsFrame.byteToLongFail=提供了太多字节([{0}]),转换成一个长的字节。
 wsFrame.closed=在一个关闭的控制帧后受到了一个新的帧.
 wsFrame.controlFragmented=接收到分段的控制帧,但控制帧可能不被分割。
 wsFrame.controlNoFin=发送一个没有设置的控制帧。控制帧不允许使用连续帧。
 wsFrame.controlPayloadTooBig=以大于125字节的最大允许值的大小[{0}]的有效载荷发送控制帧。
 wsFrame.illegalReadState=意外的读状态[{0}]
+wsFrame.invalidOpCode=用无法识别的操作码[{0}]发送了WebSocket帧
+wsFrame.invalidUtf8=接收到无法解码为UTF-8的WebSocket文本帧,因为它包含无效的字节序列
 wsFrame.invalidUtf8Close=接收到一个WebSocket关闭帧,其关闭原因包含无效的UTF-8字节序列
+wsFrame.ioeTriggeredClose=发生不可恢复的IOException,因此连接已关闭。
+wsFrame.messageTooBig=消息的长度为[{0}]个字节,但消息处理程序的限制为[{1}]个字节。
+wsFrame.noContinuation=当需要延续帧时启动了新消息。
 wsFrame.notMasked=客户端帧未被屏蔽,但必须屏蔽所有客户端帧
+wsFrame.oneByteCloseCode=客户端发送了一个包含无效单字节有效负载的关闭帧。
 wsFrame.partialHeaderComplete=接收到WebSocket帧. fin [{0}], rsv [{1}], OpCode [{2}], payload 长度 [{3}]
 wsFrame.sessionClosed=无法处理客户端数据,因为会话已被关闭
+wsFrame.suspendRequested=已请求暂停接收邮件。
 wsFrame.textMessageTooBig=解码的文本消息对于输出缓冲区太大,终结点不支持部分消息
 wsFrame.wrongRsv=对于具有opCode [{1}]的消息,客户端帧将保留位设置为[{0}],此端点不支持
 
+wsFrameClient.ioe=从发送的服务器上读取数据失败
+
 wsHandshakeRequest.invalidUri=字符串  [{0}] 不能用来组成一个有效的URI
 wsHandshakeRequest.unknownScheme=请求中的计划[{0}]未识别
 
@@ -56,30 +82,50 @@ wsRemoteEndpoint.changeType=发送分段消息时,所有片段必须是相同
 wsRemoteEndpoint.closed=由于 WebSocket session 已关闭,消息将不会被发送
 wsRemoteEndpoint.closedDuringMessage=因为 WebSocket session 被关闭,消息的剩余部分将不会被送达
 wsRemoteEndpoint.closedOutputStream=由于OutputStream已关闭,不应该调用此方法。
+wsRemoteEndpoint.closedWriter=此方法不能调用,因为编写器已关闭。
 wsRemoteEndpoint.flushOnCloseFailed=会话关闭后仍然启用批处理消息。无法刷新剩余的批量消息
+wsRemoteEndpoint.invalidEncoder=无法实例化类型为[{0}]的指定编码器
 wsRemoteEndpoint.noEncoder=没有为类 [{0}] 的对象指定编码器
 wsRemoteEndpoint.nullData=无效空的data 参数
+wsRemoteEndpoint.nullHandler=无效的空处理程序参数
 wsRemoteEndpoint.sendInterrupt=当前线程在等待阻塞发送完成时被中断
 wsRemoteEndpoint.tooMuchData=ping或pong不应该发送超过125字节
+wsRemoteEndpoint.writeTimeout=阻塞写入超时
 wsRemoteEndpoint.wrongState=远程 endpoint 处于 [{0}] 状态,是被调用方法的无效状态
 
 wsSession.closed=WebSocket会话[{0}]已关闭,并且在关闭的会话上不能调用任何方法(除了close())
 wsSession.created=创建WebSocket session [{0}]。
 wsSession.doClose=关闭 WebSocket session [{1}]
+wsSession.duplicateHandlerBinary=已配置二进制消息处理程序
 wsSession.duplicateHandlerPong=已经配置了pong消息处理器
 wsSession.duplicateHandlerText=已配置文本消息处理器
+wsSession.flushFailOnClose=会话关闭时刷新批处理邮件失败
 wsSession.instanceNew=endpoint 实例注册失败
+wsSession.invalidHandlerTypePong=一个pong消息处理程序必须实现MessageHandler.Whole
+wsSession.messageFailed=无法写入完整消息,因为WebSocket连接已关闭
+wsSession.removeHandlerFailed=无法删除处理程序[{0}],因为它未在此会话中注册
 wsSession.sendCloseFail=给远程端点发送关闭消息失败,session:[{0}]
+wsSession.timeout=WebSocket会话[{0}]超时已过期
 wsSession.unknownHandler=无法添加消息处理程序[{0}],因为它是针对无法识别的类型[{1}]
+wsSession.unknownHandlerType=无法添加消息处理程序[{0}],因为它被包装为无法识别的类型[{1}]。
 
 wsWebSocketContainer.asynchronousSocketChannelFail=无法打开与服务器的连接
+wsWebSocketContainer.defaultConfiguratorFail=无法创建默认配置程序。
+wsWebSocketContainer.endpointCreateFail=未能创建类型为[{0}]的本地终结点
 wsWebSocketContainer.failedAuthentication=无法处理http响应代码[{0}]。服务器不接受身份验证头。
+wsWebSocketContainer.httpRequestFailed=启动WebSocket连接的HTTP请求失败
 wsWebSocketContainer.invalidExtensionParameters=服务器用客户端无法支持的扩展参数响应
+wsWebSocketContainer.invalidHeader=无法分析HTTP头,因为在[{0}]中没有冒号来分隔头名称和头值。已跳过标题。
+wsWebSocketContainer.invalidStatus=来自服务器[{0}]的HTTP响应不允许HTTP升级到WebSocket
+wsWebSocketContainer.invalidSubProtocol=WebSocket服务器为Sec-WebSocket-Protocol标头返回了多个值
+wsWebSocketContainer.maxBuffer=此实现将缓冲区的最大大小限制为Integer.MAX_VALUE
 wsWebSocketContainer.missingAnnotation=无法使用POJO类[{0}],因为它未添加注解@ClientEndpoint
 wsWebSocketContainer.missingLocationHeader=处理HTTP响应码 [{0}] 失败。响应头缺少Location
 wsWebSocketContainer.missingWWWAuthenticateHeader=无法处理HTTP响应代码[{0}]。 缺少WWW-Authenticate标头作为响应
 wsWebSocketContainer.pathNoHost=URI中未指定主机
+wsWebSocketContainer.pathWrongScheme=不支持方案[{0}]。支持的方案是ws和wss
 wsWebSocketContainer.proxyConnectFail=失败连接到已配置的代理 [{0}]。HTTP 响应码是 [{1}]
+wsWebSocketContainer.redirectThreshold=循环位置头[{0}]检测到/达到最大重定向数[{1}]的最大值[{2}]
 wsWebSocketContainer.sessionCloseFail=ID 为 [{0}] 的session 没有彻底关闭
 wsWebSocketContainer.shutdown=web应用程序正在停止
 wsWebSocketContainer.sslEngineFail=无法创建SSLEngine以支持SSL/TLS连接
diff --git a/java/org/apache/tomcat/websocket/pojo/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/websocket/pojo/LocalStrings_zh_CN.properties
index 4b74f50..3147f4a 100644
--- a/java/org/apache/tomcat/websocket/pojo/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/pojo/LocalStrings_zh_CN.properties
@@ -13,23 +13,33 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+pojoEndpointBase.closeSessionFail=在错误处理期间无法关闭WebSocket会话
 pojoEndpointBase.onCloseFail=):无法为类型为[{0}]的POJO调用POJO端点的onClose方法
 pojoEndpointBase.onError=在错误发生后,没有为[{0}]配置错误处理
+pojoEndpointBase.onErrorFail=无法为类型为[{0}]的POJO调用POJO端点的onError方法
 pojoEndpointBase.onOpenFail=无法为类型为[{0}]的POJO调用POJO端点的onOpen方法
 
 pojoEndpointServer.getPojoInstanceFail=创建类型为 [{0}] 的 POJO 实例失败
 
 pojoMessageHandlerWhole.decodeIoFail=解码消息时出现IO错误
+pojoMessageHandlerWhole.maxBufferSize=此实现支持的最大消息大小为Integer.MAX_VALUE
 
+pojoMethodMapping.decodePathParamFail=未能将路径参数值[{0}]解码为预期的类型[{1}]
 pojoMethodMapping.duplicateAnnotation=类[{1}]上存在的重复注释[{0}]
 pojoMethodMapping.duplicateLastParam=用OnMessage注释的类[{1}]的方法[{0}]上存在多个布尔参数(最后的)
+pojoMethodMapping.duplicateMessageParam=类[{1}]的方法[{0}]上存在多个消息参数,该方法已用OnMessage进行了注释。
 pojoMethodMapping.duplicatePongMessageParam=使用OnMessage注释的类[{1}]的方法[{0}]上存在多个PongMessage参数
+pojoMethodMapping.duplicateSessionParam=类[{1}]的方法[{0}]上存在多个会话参数,该方法使用OnMessage进行了注释
 pojoMethodMapping.invalidDecoder=这个特定类型的解码器[{0}]无法被实例化
 pojoMethodMapping.methodNotPublic=注解方法[{0}]不为公共方法
 pojoMethodMapping.noDecoder=在用onMessage注释的类[{1}]的方法[{0}]上找不到消息参数的解码器。
+pojoMethodMapping.noPayload=用OnMessage注释的类{1}的方法{0}上不存在有效负载参数
 pojoMethodMapping.onErrorNoThrowable=):类[{1}]的方法[{0}]上不存在用OnError注释的抛出参数
 pojoMethodMapping.paramWithoutAnnotation=在类[{2}]的方法[{1}]上找到了类型为[{0}]的参数,该方法没有@PathParam 注释
+pojoMethodMapping.partialInputStream=类[{1}]的方法[{0}]中存在无效的InputStream和boolean参数,该方法使用OnMessage进行了批注
 pojoMethodMapping.partialObject=用onMessage注释的类[{1}]的方法[{0}]中存在无效的对象和布尔参数
+pojoMethodMapping.partialPong=用OnMessage注释的类[{1}]的方法[{0}]上存在无效的PongMessage和布尔参数
+pojoMethodMapping.partialReader=用OnMessage注释的类[{1}]的方法[{0}]中存在无效的读取器和布尔参数
 pojoMethodMapping.pongWithPayload=类[{1}]的方法[{0}]中存在无效的PongMessage 和消息参数,该方法是用onMessage注释的
 
 pojoPathParam.wrongType=不允许将类型[{0}]作为路径参数。用@PathParam注释的参数只能是字符串、Java原语或盒装版本。
diff --git a/java/org/apache/tomcat/websocket/server/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/websocket/server/LocalStrings_zh_CN.properties
index e67db5f..a41b171 100644
--- a/java/org/apache/tomcat/websocket/server/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/server/LocalStrings_zh_CN.properties
@@ -13,19 +13,28 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+serverContainer.addNotAllowed=一旦尝试使用以前注册的终结点之一,就不能再注册其他终结点
 serverContainer.configuratorFail=无法为[{1}]类型的POJO创建类型[{0}]的配置程序
 serverContainer.duplicatePaths=多个端点可能不能发不到同一个路径[{0}]:已经存在的端点[{1}]和新的端点[{2}]
 serverContainer.encoderFail=无法创建[{0}]类型的编码器
 serverContainer.failedDeployment=由于以前的部署失败,不允许将WebSocket终结点部署到主机[{1}]中路径为[{0}]的Web应用程序
+serverContainer.missingAnnotation=无法部署POJO类[{0}],因为它没有用@ServerEndpoint进行注释
 serverContainer.servletContextMissing=没有指定ServletContext
 
 upgradeUtil.incompatibleRsv=指定扩展名具有不兼容的RSV位使用
 
+uriTemplate.duplicateParameter=参数[{0}]在不允许的路径中出现多次
+uriTemplate.emptySegment=路径[{0}]包含一个或多个不允许的空段
 uriTemplate.invalidPath=路径 [{0}] 无效。
+uriTemplate.invalidSegment=段[{0}]在提供的路径[{1}]中无效
 
 wsFrameServer.bytesRead=将[{0}]个字节读入输入缓冲区,准备进行处理
+wsFrameServer.illegalReadState=意外的读取状态[{0}]
 wsFrameServer.onDataAvailable=进入方法
 
+wsHttpUpgradeHandler.closeOnError=由于错误关闭WebSocket连接
+wsHttpUpgradeHandler.destroyFailed=销毁WebSocket HttpUpgradeHandler时无法关闭WebConnection
 wsHttpUpgradeHandler.noPreInit=在容器调用init()之前,必须调用preinit()方法来配置WebSocket HttpUpgradeHandler。通常,这意味着创建WsHttpUpgradeHandler 实例的servlet也应该调用preinit()
+wsHttpUpgradeHandler.serverStop=服务器正在停止
 
 wsRemoteEndpointServer.closeFailed=无法完全关闭ServletOutputStream 连接
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 33af27d..a62169f 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -172,6 +172,11 @@
         Improve the quality and expand the coverage of the French translations
         provided with Apache Tomcat. (remm)
       </add>
+      <add>
+        Expand the coverage of the Chinese translations provided with Apache
+        Tomcat. Contributions provided by winsonzhao, ZhangJieWen and Lee
+        Yazhou. (markt)
+      </add>
     </changelog>
   </subsection>
 </section>
diff --git a/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties b/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties
index a7e0c93..fa9f447 100644
--- a/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties
+++ b/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties
@@ -19,6 +19,7 @@ cookies.name=名.称:
 cookies.no-cookies=你的浏览器未发送任何cookie
 cookies.set=你刚刚将以下cookie发送到你的浏览器:
 cookies.title=cookie示例
+cookies.value=值:
 
 helloworld.title=你好,世界.
 
@@ -32,12 +33,14 @@ requestinfo.label.requesturi=请求 URI (:
 requestinfo.title=请求信息范例
 
 requestparams.firstname=姓:
+requestparams.lastname=姓氏:
 requestparams.no-params=没有参数,请输入一些
 requestparams.params-in-req=参数在请求中.
 requestparams.title=请求参数示例
 
 sessions.adddata=将数据添加到你的会话中
 sessions.created=已创建的:
+sessions.data=以下数据在您的会话中:
 sessions.dataname=会话属性名:
 sessions.datavalue=会话属性值:
 sessions.id=会话ID:


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 01/03: Back-port updates to English strings

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit e6aa9b071b3231d89b7b4d262bed77a2cbe54bb2
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Apr 29 17:40:33 2020 +0100

    Back-port updates to English strings
---
 java/org/apache/catalina/core/LocalStrings.properties | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/core/LocalStrings.properties b/java/org/apache/catalina/core/LocalStrings.properties
index fda5ec3..f257de3 100644
--- a/java/org/apache/catalina/core/LocalStrings.properties
+++ b/java/org/apache/catalina/core/LocalStrings.properties
@@ -68,10 +68,10 @@ applicationServletRegistration.setServletSecurity.ise=Security constraints can''
 
 applicationSessionCookieConfig.ise=Property [{0}] cannot be added to SessionCookieConfig for context [{1}] as the context has been initialised
 
-aprListener.aprDestroy=Failed shutdown of APR based Apache Tomcat Native library
-aprListener.aprInit=The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [{0}]
-aprListener.aprInitDebug=The APR based Apache Tomcat Native library could not be found using names [{0}] on the java.library.path [{1}]. The errors reported were [{2}]
-aprListener.aprInitError=The APR based Apache Tomcat Native library failed to load. The error reported was [{0}]
+aprListener.aprDestroy=Failed shutdown of the Apache Tomcat Native library
+aprListener.aprInit=The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [{0}]
+aprListener.aprInitDebug=The Apache Tomcat Native library could not be found using names [{0}] on the java.library.path [{1}]. The errors reported were [{2}]
+aprListener.aprInitError=The Apache Tomcat Native library failed to load. The error reported was [{0}]
 aprListener.config=APR/OpenSSL configuration: useAprConnector [{0}], useOpenSSL [{1}]
 aprListener.currentFIPSMode=Current FIPS mode: [{0}]
 aprListener.enterAlreadyInFIPSMode=AprLifecycleListener is configured to force entering FIPS mode, but library is already in FIPS mode [{0}]
@@ -83,9 +83,9 @@ aprListener.initializingFIPS=Initializing FIPS mode...
 aprListener.requireNotInFIPSMode=AprLifecycleListener is configured to require the library to already be in FIPS mode, but it was not in FIPS mode
 aprListener.skipFIPSInitialization=Already in FIPS mode; skipping FIPS initialization.
 aprListener.sslInit=Failed to initialize the SSLEngine.
-aprListener.tcnInvalid=An incompatible version [{0}] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [{1}]
-aprListener.tcnValid=Loaded APR based Apache Tomcat Native library [{0}] using APR version [{1}].
-aprListener.tcnVersion=An older version [{0}] of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of [{1}]
+aprListener.tcnInvalid=An incompatible version [{0}] of the Apache Tomcat Native library is installed, while Tomcat requires version [{1}]
+aprListener.tcnValid=Loaded Apache Tomcat Native library [{0}] using APR version [{1}].
+aprListener.tcnVersion=An older version [{0}] of the Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of [{1}]
 aprListener.tooLateForFIPSMode=Cannot setFIPSMode: SSL has already been initialized
 aprListener.tooLateForSSLEngine=Cannot setSSLEngine: SSL has already been initialized
 aprListener.tooLateForSSLRandomSeed=Cannot setSSLRandomSeed: SSL has already been initialized


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 02/03: Update French translations (remm)

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 5b0e1415a282fba4d5043e25e1af4c2865c308ea
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Apr 29 17:41:58 2020 +0100

    Update French translations (remm)
---
 .../org/apache/catalina/connector/LocalStrings_fr.properties |  1 +
 java/org/apache/catalina/manager/LocalStrings_fr.properties  |  1 +
 java/org/apache/catalina/realm/LocalStrings_fr.properties    |  1 +
 java/org/apache/jasper/resources/LocalStrings_fr.properties  | 12 ++++--------
 java/org/apache/naming/LocalStrings_fr.properties            |  2 +-
 java/org/apache/tomcat/util/buf/LocalStrings_fr.properties   |  2 ++
 webapps/docs/changelog.xml                                   |  4 ++++
 7 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/java/org/apache/catalina/connector/LocalStrings_fr.properties b/java/org/apache/catalina/connector/LocalStrings_fr.properties
index dc9c608..3bdbe67 100644
--- a/java/org/apache/catalina/connector/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_fr.properties
@@ -24,6 +24,7 @@ coyoteAdapter.nullRequest=Un dispatch asynchrone peut seulement se produire sur
 
 coyoteConnector.invalidEncoding=L''encodage [{0}] n''est pas reconnu par la JRE. Le connecteur (Connector) continuera à utiliser [{1}]
 coyoteConnector.invalidPort=Le connecteur ne peut pas démarrer, parce que la valeur spécifiée du port [{0}] n''est pas valide
+coyoteConnector.notAsciiSuperset=L''encodage [{0}] n''inclut pas l''ASCII comme requis par la RFC 7230, le connecteur va continuer à utiliser [{1}]
 coyoteConnector.parseBodyMethodNoTrace=La méthode "TRACE" NE PEUT PAS contenir une entité (voir RFC 2616 Section 9.6)
 coyoteConnector.protocolHandlerDestroyFailed=La destruction du gestionnaire de protocole a échoué
 coyoteConnector.protocolHandlerInitializationFailed=L'initialisation du gestionnaire de protocole a échoué
diff --git a/java/org/apache/catalina/manager/LocalStrings_fr.properties b/java/org/apache/catalina/manager/LocalStrings_fr.properties
index fd02ea2..ac83147 100644
--- a/java/org/apache/catalina/manager/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/manager/LocalStrings_fr.properties
@@ -163,6 +163,7 @@ managerServlet.resourcesType=OK - Liste des ressources globales de type [{0}]
 managerServlet.saveFail=ECHEC - La sauvegarde de la configuration a échoué : [{0}]
 managerServlet.saved=OK - Configuration serveur sauvegardée
 managerServlet.savedContext=OK - Configuration du contexte [{0}] sauvegardée
+managerServlet.savedContextFail=ECHEC - L''enregistrement de la configuration du Contexte [{0}] a échoué
 managerServlet.serverInfo=OK - Informations sur le serveur\n\
 Version de Tomcat : [{0}]\n\
 Nom de l''OS : [{1}]\n\
diff --git a/java/org/apache/catalina/realm/LocalStrings_fr.properties b/java/org/apache/catalina/realm/LocalStrings_fr.properties
index e8ae559..53642c5 100644
--- a/java/org/apache/catalina/realm/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/realm/LocalStrings_fr.properties
@@ -20,6 +20,7 @@ combinedRealm.authSuccess=Authentifié l''utilisateur [{0}] avec le domaine [{1}
 combinedRealm.getPassword=La méthode getPassword() ne doit jamais être appelée
 combinedRealm.getPrincipal=La méthode getPrincipal() ne devrait jamais être appelée
 combinedRealm.realmStartFail=Impossible de démarrer le royaume [{0}]
+combinedRealm.setCredentialHandler=Un CredentialHandler a été défini sur une instance de CombinedRealm (ou une sous classe de CombinedRealm), et CombinedRealm ne supporte pas de CredentialHandler
 combinedRealm.unexpectedMethod=Un appel de méthode inattendu à été effectué sur le royaumes combiné
 
 credentialHandler.invalidStoredCredential=Le royaume a fourni des identifiants [{0}] invalides à comparer avec ceux fournis par le client
diff --git a/java/org/apache/jasper/resources/LocalStrings_fr.properties b/java/org/apache/jasper/resources/LocalStrings_fr.properties
index 5718f2a..f795476 100644
--- a/java/org/apache/jasper/resources/LocalStrings_fr.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_fr.properties
@@ -356,8 +356,7 @@ et où les options sont :\n\
 \    -threadCount <count>  Nombre de threads à utiliser pour la compilation\n\
 \                          ("2.0C" veut dire deux threads par cœur)\n
 jspc.warning.tldInWebInfLib=Les fichiers TLDs ne devraient pas être placés dans /WEB-INF/lib
-jspc.webfrg.footer=\n\
-</web-fragment>\n\
+jspc.webfrg.footer=</web-fragment>\n\
 \n
 jspc.webfrg.header=<?xml version="1.0" encoding="{0}"?>\n\
 <web-fragment xmlns="http://xmlns.jcp.org/xml/ns/javaee"\n\
@@ -372,20 +371,17 @@ jspc.webfrg.header=<?xml version="1.0" encoding="{0}"?>\n\
 Crée automatiquement par JspC de Apache Tomcat.\n\
 -->\n\
 \n
-jspc.webinc.footer=\n\
-<!--\n\
+jspc.webinc.footer=<!--\n\
 Fin du contenu généré automatiquement par JspC de Apache Tomcat.\n\
 -->\n\
 \n
-jspc.webinc.header=\n\
-<!--\n\
+jspc.webinc.header=<!--\n\
 Créé automatiquement par JspC de Apache Tomcat.\n\
 -->\n\
 \n
 jspc.webinc.insertEnd=<!-- Fin des mappings des Servlets JSPC -->
 jspc.webinc.insertStart=<!-- Début des mappings des Servlets JSPC -->
-jspc.webxml.footer=\n\
-</web-app>\n\
+jspc.webxml.footer=</web-app>\n\
 \n
 jspc.webxml.header=<?xml version="1.0" encoding="{0}"?>\n\
 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"\n\
diff --git a/java/org/apache/naming/LocalStrings_fr.properties b/java/org/apache/naming/LocalStrings_fr.properties
index 33dd57d..eb297c8 100644
--- a/java/org/apache/naming/LocalStrings_fr.properties
+++ b/java/org/apache/naming/LocalStrings_fr.properties
@@ -27,4 +27,4 @@ namingContext.readOnly=Le Contexte est en lecture seule
 
 selectorContext.methodUsingName=Appel de la méthode [{0}] avec le nom [{1}]
 selectorContext.methodUsingString=Appel de la méthode [{0}] avec la String [{1}]
-selectorContext.noJavaUrl=Ce Contexte doit être accédé par une URL commençant par 'java:'
+selectorContext.noJavaUrl=Ce Contexte doit être accédé par une URL commençant par 'java :'
diff --git a/java/org/apache/tomcat/util/buf/LocalStrings_fr.properties b/java/org/apache/tomcat/util/buf/LocalStrings_fr.properties
index e99f693..ba593d9 100644
--- a/java/org/apache/tomcat/util/buf/LocalStrings_fr.properties
+++ b/java/org/apache/tomcat/util/buf/LocalStrings_fr.properties
@@ -22,6 +22,8 @@ byteBufferUtils.cleaner=Impossible d'utiliser le nettoyeur de ByteBuffers direct
 
 chunk.overflow=Le tampon a débordé et aucun receveur n''a été défini, la limite est de [{0}] et la taille du tampon est [{1}]
 
+encodedSolidusHandling.invalid=La valeur [{0}] n''est pas reconnue
+
 hexUtils.fromHex.nonHex=L'entrée doit être uniquement des chiffres héxadécimaux
 hexUtils.fromHex.oddDigits=L'entrée doit contenir un nombre pair de chiffres héxadécimaux
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f5cb42f..33af27d 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -168,6 +168,10 @@
         Refactor bulk addition to collections to use <code>addAll()</code>
         rather than a loop. Pull request provided by Lars Grefer. (markt)
       </scode>
+      <add>
+        Improve the quality and expand the coverage of the French translations
+        provided with Apache Tomcat. (remm)
+      </add>
     </changelog>
   </subsection>
 </section>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org