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/05/04 16:54:06 UTC

[tomcat] 06/06: Backport updates to Chinese translations

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

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

commit 1b75434a8e0137107436d5deef8338a50437ad76
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon May 4 17:53:35 2020 +0100

    Backport updates to Chinese translations
---
 java/javax/el/LocalStrings_zh_CN.properties        |   1 +
 java/javax/servlet/LocalStrings_zh_CN.properties   |   1 +
 .../servlet/http/LocalStrings_zh_CN.properties     |   2 +
 .../authenticator/LocalStrings_zh_CN.properties    |  16 +++
 .../connector/LocalStrings_zh_CN.properties        |  24 +++++
 .../catalina/core/LocalStrings_zh_CN.properties    | 105 +++++++++++++++++-
 .../catalina/deploy/LocalStrings_zh_CN.properties  |   3 +
 .../catalina/filters/LocalStrings_zh_CN.properties |  19 ++++
 .../ha/deploy/LocalStrings_zh_CN.properties        |  19 ++++
 .../ha/session/LocalStrings_zh_CN.properties       |  28 +++++
 .../catalina/ha/tcp/LocalStrings_zh_CN.properties  |  10 ++
 .../catalina/loader/LocalStrings_zh_CN.properties  |  20 ++++
 .../catalina/manager/LocalStrings_zh_CN.properties |   3 +-
 .../manager/host/LocalStrings_zh_CN.properties     |   2 +-
 .../catalina/realm/LocalStrings_zh_CN.properties   |  35 ++++++
 .../security/LocalStrings_zh_CN.properties         |   6 ++
 .../servlets/LocalStrings_zh_CN.properties         |  19 ++++
 .../catalina/session/LocalStrings_zh_CN.properties |  27 ++++-
 .../catalina/startup/LocalStrings_zh_CN.properties |  59 +++++++---
 .../interceptors/LocalStrings_zh_CN.properties     |   3 +
 .../tribes/tipis/LocalStrings_zh_CN.properties     |   1 +
 .../tribes/util}/LocalStrings_zh_CN.properties     |   2 +-
 .../catalina/users/LocalStrings_zh_CN.properties   |   3 +
 .../catalina/util/LocalStrings_zh_CN.properties    |  15 +++
 .../catalina/valves/LocalStrings_zh_CN.properties  |  39 +++++++
 .../apache/coyote/LocalStrings_zh_CN.properties    |   5 +
 .../coyote/ajp/LocalStrings_zh_CN.properties       |   4 +
 .../coyote/http11/LocalStrings_zh_CN.properties    |   8 ++
 .../http11/filters/LocalStrings_zh_CN.properties   |   2 +
 .../http11/upgrade/LocalStrings_zh_CN.properties   |   4 +
 .../jasper/resources/LocalStrings_zh_CN.properties | 119 +++++++++++++++++++--
 .../apache/naming/LocalStrings_zh_CN.properties    |   5 +
 .../naming/factory/LocalStrings_zh_CN.properties   |   7 ++
 .../webservices}/LocalStrings_zh_CN.properties     |   2 +-
 .../tomcat/util/LocalStrings_zh_CN.properties      |   5 +
 .../tomcat/util/buf/LocalStrings_zh_CN.properties  |   5 +
 .../util/descriptor/LocalStrings_zh_CN.properties  |   5 +
 .../tomcat/util/http/LocalStrings_zh_CN.properties |   4 +
 .../util/http/parser/LocalStrings_zh_CN.properties |   3 +
 .../util/modeler/LocalStrings_zh_CN.properties     |   1 +
 .../tomcat/util/scan/LocalStrings_zh_CN.properties |   2 +
 .../tomcat/websocket/LocalStrings_zh_CN.properties |  40 +++++++
 .../websocket/pojo/LocalStrings_zh_CN.properties   |  10 ++
 .../websocket/server/LocalStrings_zh_CN.properties |   6 ++
 .../WEB-INF/classes/LocalStrings_zh_CN.properties  |   3 +
 45 files changed, 673 insertions(+), 29 deletions(-)

diff --git a/java/javax/el/LocalStrings_zh_CN.properties b/java/javax/el/LocalStrings_zh_CN.properties
index 1803a07..b2b2585 100644
--- a/java/javax/el/LocalStrings_zh_CN.properties
+++ b/java/javax/el/LocalStrings_zh_CN.properties
@@ -14,6 +14,7 @@
 # limitations under the License.
 
 expressionFactory.cannotCreate=无法创建类型为[{0}]的表达式工厂
+expressionFactory.cannotFind=找不到类型为[{0}]的ExpressionFactory
 expressionFactory.readFailed=无法读取[{0}]
 
 objectNotAssignable=无法将类型为[{0}]的对象添加到[{1}]类型的对象数组中
diff --git a/java/javax/servlet/LocalStrings_zh_CN.properties b/java/javax/servlet/LocalStrings_zh_CN.properties
index 7fc4358..60310f3 100644
--- a/java/javax/servlet/LocalStrings_zh_CN.properties
+++ b/java/javax/servlet/LocalStrings_zh_CN.properties
@@ -19,4 +19,5 @@ httpConstraintElement.invalidRolesDeny=使用 DENY 时可能未指定角色
 
 httpMethodConstraintElement.invalidMethod=无效的HTTP.方法
 
+value.false=否
 value.true=true
diff --git a/java/javax/servlet/http/LocalStrings_zh_CN.properties b/java/javax/servlet/http/LocalStrings_zh_CN.properties
index fbbd569..8a3b99e 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 69fd28a..0dc5906 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=对表单登录页的直接引用无效
@@ -31,23 +33,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/connector/LocalStrings_zh_CN.properties b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
index f12fdbc..b2830bf 100644
--- a/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
@@ -13,37 +13,61 @@
 # 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=异步分派只能在现有请求上发生
 coyoteAdapter.parsePathParam=无法使用编码[{0}]解析地址参数,url中的该地址参数将被忽略
 
 coyoteConnector.invalidPort=连接器不能启动,因为指定的端口 [{0}]无效
+coyoteConnector.notAsciiSuperset=编码[{0}]不是RFC 7230要求的ASCII超集。连接器将继续使用[{1}]
 coyoteConnector.parseBodyMethodNoTrace=方法TRACE禁止包含实体(详情查看RFC 2616 章节 9.6)
+coyoteConnector.protocolHandlerDestroyFailed=协议处理程序销毁失败
+coyoteConnector.protocolHandlerInitializationFailed=协议处理程序初始化失败
 coyoteConnector.protocolHandlerInstantiationFailed=协议处理程序实例化失败
 coyoteConnector.protocolHandlerPauseFailed=协议处理程序暂停失败
+coyoteConnector.protocolHandlerResumeFailed=协议处理程序恢复失败
 coyoteConnector.protocolHandlerStartFailed=协议处理器启动失败
 coyoteConnector.protocolHandlerStopFailed=协议处理程序.停止失败
 
+coyoteRequest.alreadyAuthenticated=此请求已通过身份验证
 coyoteRequest.attributeEvent=属性事件侦听器引发的异常
 coyoteRequest.authenticate.ise=):提交响应后无法调用authenticate()
 coyoteRequest.changeSessionId=无法更改 session ID。 没有与此请求关联的 session。
 coyoteRequest.chunkedPostTooLarge=由于请求参数数据太大,导致参数不能解析。因为当前请求是块状请求,后续也不会处理。如果应用程序需要接收大的POST请求,可以使用连接器的maxPostSize解决它。
+coyoteRequest.getContextPath.ise=找不到规范上下文路径[{0}]与用户代理[{1}]提供的URI之间的匹配项。
+coyoteRequest.getInputStream.ise=已为此请求调用getReader()
 coyoteRequest.getReader.ise=当前请求已经调用过方法getInputStream()
 coyoteRequest.gssLifetimeFail=为用户主体 [{0}] 获取剩余生命期失败
 coyoteRequest.maxPostSizeExceeded=):大多部分请求包含的参数数据(不包括上载的文件)超过了关联连接器上设置的maxPostSize 的限制
+coyoteRequest.parseParameters=处理发布的参数时引发异常
+coyoteRequest.postTooLarge=未分析参数,因为发布的数据太大。如果应用程序应接受大型post,请使用连接器的maxPostSize属性来解决此问题。
 coyoteRequest.sendfileNotCanonical=无法确定指定用于sendfile的文件[{0}]的规范名称
 coyoteRequest.sessionCreateCommitted=提交响应后无法创建会话
 coyoteRequest.sessionEndAccessFail=在回收请求时,异常触发了对会话的结束访问。
 coyoteRequest.setAttribute.namenull=不能在一个空的名字上调用setAttribute
+coyoteRequest.uploadCreate=根据servlet[{1}]的要求创建临时上载位置[{0}]
+coyoteRequest.uploadCreateFail=无法创建上载位置[{0}]
 coyoteRequest.uploadLocationInvalid=临时上传路径[{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.streamClosed=关闭的流。
 
 request.asyncNotSupported=当前链的筛选器或servlet不支持异步操作。
+request.fragmentInDispatchPath=调度路径[{0}]中的片段已被删除
+request.notAsync=如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyncStarted()返回false)
 
 requestFacade.nullRequest=请求对象已被回收,不再与此facade关联
 
diff --git a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
index 2b88e05..79779a5 100644
--- a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
@@ -13,74 +13,132 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+applicationContext.addFilter.ise=无法将筛选器添加到上下文[{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.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}]中的片段已被删除
+
 applicationServletRegistration.setServletSecurity.iae=为部署到名为[{1}]的上下文的Servlet[{0}]指定的空约束
+applicationServletRegistration.setServletSecurity.ise=无法将安全性约束添加到已部署到名称为[{1}]的上下文的servlet [{0}]中,因为上下文已被初始化
+
+applicationSessionCookieConfig.ise=无法将属性{0}添加到上下文{1}的sessioncokieconfig中,因为该上下文已初始化
 
 aprListener.aprInitError=基于APR的本地库加载失败.错误报告为[{0}]
+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.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.realm=异常处理领域[{0}]后台进程
 containerBase.backgroundProcess.unexpectedThreadDeath=后台线程[{0}]意外结束
 containerBase.backgroundProcess.valve=处理阀门[{0}]后台进程异常
 containerBase.nullName=容器名称不能为null
 containerBase.threadedStartFailed=子容器启动失败
+containerBase.threadedStopFailed=停止期间子容器失败
 
 defaultInstanceManager.invalidInjection=方法资源注入注解无效
+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执行抛出一个异常
 
 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}]失败
 
+noPluggabilityServletContext.notAllowed=Servlet 3.0规范的第4.4节不允许从未在web.xml,web-fragment.xml文件中定义或未用@WebListener注释的ServletContextListener调用此方法。
+
 standardContext.applicationListener=配置应用程序监听器[{0}]错误
 standardContext.applicationSkipped=由于以前的错误,已跳过安装应用程序侦听器
+standardContext.backgroundProcess.instanceManager=异常处理实例管理器[{0}]后台进程
 standardContext.cluster.noManager=未发现管理器。检查是否需要集群管理器。集群配置:[{0}],应用程序分配:[{1}]
+standardContext.configurationFail=一个或多个组件将上下文标记为未正确配置
 standardContext.duplicateListener=当前上下文已经配置了监听器[{0}],重复的定义将被忽略。
+standardContext.errorPage.error=错误页面位置[{0}]必须以“ /”开头
 standardContext.errorPage.required=ErrorPage不能为null
 standardContext.errorPage.warning=警告:在Servlet 2.4中,错误页位置 [{0}] 必须以"/"开头
 standardContext.extensionValidationError=尝试校验必需的应用程序扩展时发生错误
@@ -94,22 +152,37 @@ 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.startFailed=由于之前的错误,Context[{0}]启动失败
 standardContext.startingContext=启动Context[{0}]出现异常
 standardContext.stop.asyncWaitInterrupted=等待卸载延迟毫秒以完成飞行中的异步请求时收到中断。上下文停止将继续,不会有进一步的延迟。
@@ -125,23 +198,53 @@ standardEngine.jvmRouteFail=无法从系统属性设置引擎的jvmRoute 属性
 standardEngine.notHost=Engine的子节点必须是一个Host
 standardEngine.notParent=引擎不能有父容器
 
+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.invalidShutdownCommand=收到无效的关闭命令[{0}]
+standardServer.shutdownViaPort=通过关闭端口接收到有效的关闭命令。正在停止服务器实例。
+standardServer.storeConfig.contextError=存储上下文[{0}]配置时出错
+standardServer.storeConfig.error=存储服务器配置时出错
 
+standardService.start.name=正在启动服务[{0}]
 standardService.stop.name=正在停止服务[{0}]
 
 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.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/deploy/LocalStrings_zh_CN.properties b/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
index 7bdb390..cd87218 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,12 @@
 # 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.hostOnly=FarmWarDeployer 只有做为 host cluster 的子元素是才生效
+farmWarDeployer.hostParentEngine=FarmWarDeployer只能在[{0}]的父级是引擎时工作!
 farmWarDeployer.mbeanNameFail=无法为引擎[{0}]和主机[{1}]构造MBean对象名
 farmWarDeployer.modInstall=从 [{1}] 安装 webapp [{0}]
 farmWarDeployer.modInstallFail=无法安装 WAR 文件
@@ -23,17 +27,32 @@ 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.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 a0d41fb..cf4fb1e 100644
--- a/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
@@ -19,38 +19,66 @@ backupManager.startUnable=无法启动BackupManager: [{0}]
 backupManager.stopped=管理者[{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.showPrincipal=Principal [{0}] 和session [{1}]产生关联。
 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 ce89c6e..71d3626 100644
--- a/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties
@@ -13,8 +13,18 @@
 # 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)。
diff --git a/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
index 1e30d80..eea15d6 100644
--- a/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
@@ -13,16 +13,30 @@
 # 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.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.javaseClassLoaderNull=j2seClassLoader属性不能为空
 webappClassLoader.jdbcRemoveFailed=Web应用程序 [{0}] 的JDBC驱动程序注销失败
+webappClassLoader.loadedByThisOrChildFail=无法完全检查[{0}]实例中的条目,看上下文[{1}]中是否存在潜在的内存泄漏
 webappClassLoader.readError=资源读取错误:不能加载 [{0}].
+webappClassLoader.removeTransformer=已从web应用程序[{1}]中删除类文件转换器[{0}]。
 webappClassLoader.stopThreadFail=为web应用程序[{1}]终止线程[{0}]失败
 webappClassLoader.stopTimerThreadFail=无法终止名为[{0}]的TimerThread,web应用程序:[{1}]
 webappClassLoader.stopped=非法访问:此Web应用程序实例已停止。无法加载[{0}]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
@@ -31,5 +45,11 @@ webappClassLoader.validationErrorJarPath=无法验证名称为 [{0}] 的 JAR 条
 webappClassLoader.warnTimerThread=Web应用程序[{0}]似乎已通过java.util.Timer API启动了名为[{1}]的TimerThread,但未能将其停止。 为防止内存泄漏,计时器(以及相关联的线程)已被强制取消。
 webappClassLoader.wrongVersion=(无法载入的.类 [{0}])
 
+webappClassLoaderParallel.registrationFailed=将org.apache.catalina.loader.ParallelWebappClassLoader注册为能够并行加载类失败
+
 webappLoader.copyFailure=无法复制资源
+webappLoader.deploy=将类存储库部署到工作目录[{0}]
 webappLoader.mkdirFailure=无法创建目标目录以复制资源
+webappLoader.reloadable=无法将可重载属性设置为[{0}]
+webappLoader.starting=启动此加载程序
+webappLoader.stopping=停止此加载程序
diff --git a/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties b/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
index 2f5e882..fae4f75 100644
--- a/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
@@ -76,7 +76,7 @@ htmlManagerServlet.jvmTableTitleMemoryPool=内存.池
 htmlManagerServlet.jvmTableTitleTotal=总共
 htmlManagerServlet.jvmTableTitleType=类型
 htmlManagerServlet.jvmTableTitleUsed=已用
-htmlManagerServlet.jvmTotalMemory=总内存
+htmlManagerServlet.jvmTotalMemory=总内存:
 htmlManagerServlet.list=应用程序列表
 htmlManagerServlet.manager=管理器
 htmlManagerServlet.messageLabel=消息:
@@ -101,6 +101,7 @@ htmlManagerServlet.serverVersion=Tomcat.版本
 htmlManagerServlet.title=Tomcat Web应用程序管理者
 
 jmxProxyServlet.noBeanFound=无法找到名为[{0}]的MBean对象
+jmxProxyServlet.noOperationOnBean=在对象名为{2}的操作{0}中找不到参数为{1}]的操作{0},该操作是{3}
 
 managerServlet.alreadyContext=失败 - 应用程序已存在于路径 [{0}]
 managerServlet.deleteFail=失败 - 不能删除[{0}]。这个文件一直存在会出现问题。
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 05a1a12..987a1e0 100644
--- a/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
@@ -54,7 +54,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/realm/LocalStrings_zh_CN.properties b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
index da2ac01..4805fb0 100644
--- a/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
@@ -13,36 +13,64 @@
 # 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.unexpectedMethod=对组合域上的方法进行了意外调用
 
+dataSourceRealm.authenticateFailure=用户名[{0}]未成功验证
+dataSourceRealm.authenticateSuccess=用户名[{0}]已成功通过身份验证。
+dataSourceRealm.close=关闭数据库连接时发生异常
 dataSourceRealm.exception=认证异常
 dataSourceRealm.getPassword.exception=获取用户名[{0}]对应的密码失败。
 dataSourceRealm.getRoles.exception=:)检索角色[{0}]异常
 
 jaasCallback.username=返回用户名 [{0}]
 
+jaasRealm.accountExpired=由于帐户过期,用户名[{0}]未通过身份验证
 jaasRealm.authenticateFailure=用户 [{0}] 认证失败
 jaasRealm.authenticateSuccess=用户名 [{0}] 已被成功认证为身份 [{1}] -- 主体也已创建
+jaasRealm.beginLogin=使用应用程序[{1}的LoginContext为用户名[{0}]请求JAASRealm登录
+jaasRealm.checkPrincipal=正在检查主体[{0}[{1}]
+jaasRealm.credentialExpired=由于凭据过期,用户名[{0}]未通过身份验证
 jaasRealm.failedLogin=由于登录失败,用户名 [{0}] 无法授权
 jaasRealm.loginContextCreated=为用户名创建的JAAS 登陆上下文[{0}]
 jaasRealm.loginException=登录异常,认证用户名  [{0}]
+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}]秒后从失败的用户缓存中删除,以将缓存大小保持在限制集内
 
+memoryRealm.authenticateFailure=用户名[{0}]未成功通过身份验证
 memoryRealm.authenticateSuccess=用户名称[{0}]认证成功
 memoryRealm.loadExist=内存数据库文件[{0}]无法读取
 memoryRealm.loadPath=从内存数据库文件 [{0}] 加载用户
@@ -51,10 +79,17 @@ memoryRealm.xmlFeatureEncoding=配置Digester以允许XML文件中的java编码
 
 realmBase.algorithm=无效的消息摘要算法[{0}]
 realmBase.authenticateFailure=用户名 [{0}] 认证失败
+realmBase.authenticateSuccess=用户名[{0}]已成功通过身份验证
 realmBase.createUsernameRetriever.ClassCastException=类[{0}] 不是一个X509UsernameRetriever.
+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}]
 
+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..9d1c47d 100644
--- a/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
@@ -13,22 +13,41 @@
 # 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.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.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 a362627..b082234 100644
--- a/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
@@ -18,44 +18,67 @@ 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.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.loading=正在加载[{0}]持久化会话
+persistentManager.serializeError=错误的序列化会话 [{0}]:[{1}]
 persistentManager.storeKeysException=不能从 session存储中获取session ID 的列表,假设存储为空
 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.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:会话已经无效
 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/startup/LocalStrings_zh_CN.properties b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
index 7053c31..a5483d8 100644
--- a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
@@ -13,10 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+catalina.configFail=无法从[{0}]加载服务器配置
 catalina.noCluster=由于[{0}]未找到群集Ruleset。已禁用群集配置。
 catalina.serverStartFail=所必需的服务组件启动失败,所以无法启动Tomcat
+catalina.shutdownHookFail=关闭挂钩在尝试停止服务器时遇到错误
+catalina.stopServer=未配置关闭端口。通过OS信号关闭服务器。服务器未关闭。
 
 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}]
@@ -48,10 +52,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:停止处理
@@ -63,7 +69,8 @@ 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}]。
@@ -71,48 +78,74 @@ expandWar.deleteFailed=[{0}] 无法被彻底删除。其余残留文件可能会
 expandWar.illegalPath=归档[{0}]格式错误,将被忽略:条目包含非扩展到[{2}]的非法路径[{1}],因为它超出了定义的docBase [{3}]
 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.localDocBaseSpecified=(:在主机appBase 中指定了docBase [{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}]
+
+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类型
 
 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/tribes/group/interceptors/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/group/interceptors/LocalStrings_zh_CN.properties
index 046e7ec..84439d2 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
@@ -13,8 +13,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+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故障检测器之前。
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 0097340..271174d 100644
--- a/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+lazyReplicatedMap.unableReplicate.backup=无法将备份密钥:[{0}]复制到备份:[{1}]。原因:[{2}]
 lazyReplicatedMap.unableReplicate.proxy=不能复制proxy key:[{0}]到备份:[{1}]. 原因是:[{2}]
 
 replicatedMap.member.disappeared=成员[{0}]消失,关联的键值实体会重新关联到一个新的节点。
diff --git a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties b/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
similarity index 88%
copy from java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
copy to java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
index 623a146..ce175a3 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-modules.readDescriptorsError=读取描述文件出错
+uuidGenerator.createRandom=使用[{0}]创建用于UUID生成的SecureRandom实例花费了[{1}]毫秒。
diff --git a/java/org/apache/catalina/users/LocalStrings_zh_CN.properties b/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
index 5f8358b..834c503 100644
--- a/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
@@ -15,8 +15,11 @@
 
 memoryUserDatabase.fileNotFound=指定用户数据库[{0}]未找到
 memoryUserDatabase.notPersistable=用户数据库不可持久化 - 对目录没有写入权限
+memoryUserDatabase.nullGroup=指定的组名为空或零长度。将忽略组。
 memoryUserDatabase.nullRole=指定的角色名为Null或着长度为0。角色将被忽略,
 memoryUserDatabase.nullUser=Null或者零长度的用户名称,忽略这个用户。
 memoryUserDatabase.readOnly=用户数据库已被设为只读。修改无法保存
 memoryUserDatabase.renameNew=无法将新文件重命名为 [{0}]
 memoryUserDatabase.renameOld=原文件无法改名为[{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 cb17f90..ad710fb 100644
--- a/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
@@ -13,17 +13,28 @@
 # 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}],将使用系统默认字符集。
 
 errorReportValve.description=描述
+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=未知的原因
 
 http.400.desc=由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。
@@ -47,11 +58,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=(:请求的范围头字段中的任何范围都没有与选定资源的当前范围重叠,或者请求的范围集由于无效范围或小范围或重叠范围的过度请求而被拒绝。
@@ -59,6 +74,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=这个方法不能在这个资源上执行,因为请求操作依赖另一个操作,但是另一个操作失败了。
@@ -66,31 +84,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/coyote/LocalStrings_zh_CN.properties b/java/org/apache/coyote/LocalStrings_zh_CN.properties
index 733f5dc..a2f68b8 100644
--- a/java/org/apache/coyote/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/LocalStrings_zh_CN.properties
@@ -13,7 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+abstractConnectionHandler.error=读取请求时出错,忽略
 abstractConnectionHandler.ioexception.debug=正常的 IOException,忽略
+abstractConnectionHandler.oome=无法完成请求的处理
 abstractConnectionHandler.socketexception.debug=(:SocketException是正常的,忽略
 
 abstractProcessor.fallToDebug=注意:更多的请求解析错误将以DEBUG级别日志进行记录。
@@ -21,6 +23,9 @@ abstractProcessor.hostInvalid=[{0}] 是无效主机
 
 abstractProtocolHandler.destroy=正在摧毁协议处理器 [{0}]
 abstractProtocolHandler.init=初始化协议处理器 [{0}]
+abstractProtocolHandler.pause=暂停ProtocolHandler[{0}]
+abstractProtocolHandler.resume=正在恢复ProtocolHandler[{0}]
+abstractProtocolHandler.setAttribute=使用值[{1}]设置属性[{0}]
 abstractProtocolHandler.start=开始协议处理句柄[{0}]
 abstractProtocolHandler.stop=正在停止ProtocolHandler [{0}]
 
diff --git a/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
index a7dd421..dc0b6b9 100644
--- a/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
@@ -13,13 +13,17 @@
 # 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.failedsend=失败的发送AJP消息
 ajpprocessor.header.error=头部信息解析失败
+ajpprocessor.header.tooLong=已收到长度为[{0}]的头消息,但packetSize仅为[{1}]
 ajpprocessor.request.prepare=准备请求错误
 ajpprocessor.request.process=处理请求错误
 
diff --git a/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties b/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
index 101a584..aed1a1d 100644
--- a/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
@@ -13,23 +13,31 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+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.eof.error=套接字读取到意外的EOF
+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.requestheadertoolarge.error=请求头太大
 
 iob.responseheadertoolarge.error=尝试将更多数据写入响应标头,而不是缓冲区中有可用空间。 增加连接器上的maxHttpHeaderSize或将更少的数据写入响应头。
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 15f4986..3e35ba7 100644
--- a/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
@@ -14,6 +14,10 @@
 # limitations under the License.
 
 upgrade.sis.isFinished.ise=当 ServletInputStream 不处于非阻塞模式时调用 isFinished() 是非法的(即必须首先调用 setReadListener())
+upgrade.sis.isReady.ise=当ServletInputStream未处于非阻塞模式时,调用isReady()是非法的(即必须首先调用setReadListener())
 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.writeListener.null=对setWriteListener()传递null是非法的
+upgrade.sos.writeListener.set=对于同一个升级的连接,多次调用setWriteListener()是非法的
diff --git a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
index fbb301a..483f0f6 100644
--- a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
@@ -15,65 +15,113 @@
 
 jasper.error.emptybodycontent.nonempty=根据 TLD,[{0}] 标签必须为空,但不是
 
+jsp.engine.info=Jasper JSP{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.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.classname=无法从.class文件确定类名
+jsp.error.coerce_to_type=无法将值[{2}]强制为属性[{0}]的类型[{1}]。
+jsp.error.compilation=编译文件时出错:[{0}[{1}]
 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.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.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.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.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.noFunction=无法使用指定的前缀找到函数[{0}]
+jsp.error.noFunctionMethod=在类{2}中找不到函数{1}的方法{0}]
+jsp.error.non_null_tei_and_var_subelems=标记{0}有一个或多个变量子元素和返回一个或多个变量信息的TagExtraInfo类
 jsp.error.not.in.template=在模板文本体中, [{0}] 是不允许的.
 jsp.error.outputfolder=无输出目录
 jsp.error.overflow=错误:JSP缓冲区溢出
@@ -103,87 +151,140 @@ jsp.error.page.multi.pageencoding=页指令不能有多次出现的页编码
 jsp.error.page.noSession=无法访问不参与任何会话的页中的会话作用域
 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.plugin.wrongRootElement=[{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.scripting.variable.missing_name=无法从属性[{0}]确定脚本变量名称
+jsp.error.security=上下文的安全初始化失败
+jsp.error.servlet.destroy.failed=JSP页面的Servlet.destroy()期间出现异常
+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.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_jar=丢失了包含TLD的JAR资源[{0}]
+jsp.error.tld.unable_to_get_jar=无法获取包含TLD:[{1}]的JAR资源[{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.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.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.noTldSummary=至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
+jsp.warning.bad.urlpattern.propertygroup=web.xml中url模式子元素中的值[{0}]错误
+jsp.warning.checkInterval=警告:initParam checkInterval的值无效。将使用默认值“300”秒
+jsp.warning.classDebugInfo=警告:initParam classdebuginfo的值无效。将使用默认值“false”
+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.fork=警告:initParam的值无效。将使用“true”的默认值
+jsp.warning.genchararray=警告:initParam genstringascharray的值无效。将使用默认值“false”
+jsp.warning.jspIdleTimeout=警告:initParam jspIdleTimeout的值无效。将使用默认值“-1”
+jsp.warning.keepgen=警告:initParam keepgenerated的值无效。将使用默认值“false”
+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.suppressSmap=警告:suppressSmap的初始化参数无效。将使用默认值“false”
+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.fileDoesNotExist=文件参数 [{0}] 不存在
-jspc.webfrg.footer=\n\
-</web-fragment>\n\
+jspc.error.generalException=错误文件[{0}]生成以下常规异常:
+jspc.generation.result=生成在[{1}]毫秒内完成,出现[{0}]个错误
+jspc.implicit.uriRoot=uriRoot隐式设置为[{0}]
+jspc.webfrg.footer=</web-fragment>\n\
 \n
-jspc.webinc.footer=\n\
-<!--\n\
+jspc.webinc.footer=<!--\n\
 由Apache Tomcat JSPC自动创建的内容结束。\n\
 -->\n\
 \n
-jspc.webinc.header=\n\
-<!--\n\
+jspc.webinc.header=<!--\n\
 由 Apache Tomcat JspC 自动生成。\n\
 -->\n\
 \n
 jspc.webinc.insertEnd=<!-- JSPC servlet 映射结束 -->
 jspc.webinc.insertStart=<!-- JSPC servlet 映射开始 -->
-jspc.webxml.footer=\n\
-</web-app>\n\
+jspc.webxml.footer=</web-app>\n\
 \n
 
+org.apache.jasper.compiler.ELParser.invalidQuotesForStringLiteral=字符串文本[{0}]无效。它必须包含在单引号或双引号中。
+org.apache.jasper.compiler.ELParser.invalidQuoting=表达式[{0}]无效。在带引号的字符串中,只有[],['']和[“]可以用[]转义。
+
 xmlParser.skipBomFail=解析XML输入流时,跳过BOM失败。
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/tomcat/util/modeler/LocalStrings_zh_CN.properties b/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
similarity index 93%
copy from java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
copy to java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
index 623a146..08d3248 100644
--- a/java/org/apache/tomcat/util/modeler/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.
 
-modules.readDescriptorsError=读取描述文件出错
+serviceProxy.portNotFound=找不到端口组件ref[{0}]
diff --git a/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
index 6a3d8d9..fc1e6b7 100644
--- a/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
@@ -18,8 +18,13 @@ 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功能
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 6d0140e..6863c23 100644
--- a/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
@@ -13,5 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+b2cConverter.unknownEncoding=不支持字符编码[{0}]
+
 uDecoder.convertHexDigit.notHex=[{0}] 不是十六进制数字
+uDecoder.eof=文件结尾(EOF)
+uDecoder.noSlash=不允许使用编码的斜杠字符
 uDecoder.urlDecode.conversionError=使用编码[{1}]解码[{0}]失败
+uDecoder.urlDecode.missingDigit=无法解码[{0}],因为%字符必须后跟两个十六进制数字。
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/tomcat/util/http/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
index 0176bac..ab661ef 100644
--- a/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+cookies.fallToDebug=␣注意:将在调试级别记录进一步出现的Cookie错误。
 cookies.invalidCookieToken=Cookie:cookie无效。值不是令牌或引用值
 cookies.invalidSpecial=Cookies:未知特殊的Cookie
 cookies.maxCountFail=检测到超过Cookie最大允许的数量[{0}]
@@ -22,8 +23,11 @@ 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}],后面没有“=”字符
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 caa6cbb..7f249be 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
@@ -14,6 +14,8 @@
 # limitations under the License.
 
 http.closingBracket=在非IPv6主机名中找到了右括号']'。
+http.illegalAfterIpv6=不允许字符[{0}]跟随主机名中的IPv6地址。
+http.illegalCharacterDomain=字符[{0}]在域名中永远无效。
 http.illegalCharacterIpv4=字符[{0}]为非法的IPv4地址。
 http.illegalCharacterIpv6=字符[{0}]为非法的IPv6地址。
 http.invalidCharacterDomain.afterColon=字符 [{0}] 在域名中的冒号后无效。
@@ -35,3 +37,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 623a146..01e2a23 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
@@ -13,4 +13,5 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+modules.digesterParseError=分析注册表数据时出错
 modules.readDescriptorsError=读取描述文件出错
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 9a0b85d..3dab0f6 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
@@ -18,5 +18,7 @@ jarScan.classloaderJarNoScan=跳过classpath路径[{0}]下的jar包扫描。
 jarScan.classloaderJarScan=从classpath扫描JAR[{0}]
 jarScan.classloaderStart=在类加载器层次结构中扫描JAR
 jarScan.jarUrlStart=正在扫描URL [{0}] 上的JAR文件
+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/tomcat/websocket/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
index 246d8fa..a829fb0 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
@@ -16,34 +16,55 @@
 asyncChannelGroup.createFail=无法为WebSocket客户端创建专用的异步通道组,这是防止复杂类加载程序环境(如JavaEE容器)中内存泄漏所必需的
 
 asyncChannelWrapperSecure.closeFail=干净的关闭通道失败
+asyncChannelWrapperSecure.concurrentRead=不允许并发读取操作
+asyncChannelWrapperSecure.concurrentWrite=不允许并发写操作
 asyncChannelWrapperSecure.eof=意外的流结尾
 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.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.bufferTooSmall=没有异步消息支持,并且缓冲区太小。缓冲区大小:[{0}],消息大小:[{1}]
 wsFrame.byteToLongFail=提供了太多字节([{0}]),转换成一个长的字节。
 wsFrame.closed=在一个关闭的控制帧后受到了一个新的帧.
 wsFrame.controlFragmented=接收到分段的控制帧,但控制帧可能不被分割。
 wsFrame.controlNoFin=发送一个没有设置的控制帧。控制帧不允许使用连续帧。
 wsFrame.controlPayloadTooBig=以大于125字节的最大允许值的大小[{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.textMessageTooBig=解码的文本消息对于输出缓冲区太大,终结点不支持部分消息
 wsFrame.wrongRsv=对于具有opCode [{1}]的消息,客户端帧将保留位设置为[{0}],此端点不支持
 
+wsFrameClient.ioe=从发送的服务器上读取数据失败
+
 wsHandshakeRequest.invalidUri=字符串  [{0}] 不能用来组成一个有效的URI
 wsHandshakeRequest.unknownScheme=请求中的计划[{0}]未识别
 
@@ -51,29 +72,48 @@ 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.tooMuchData=ping或pong不应该发送超过125字节
 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..44a3589 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,25 @@
 # 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.onDataAvailable=进入方法
 
+wsHttpUpgradeHandler.destroyFailed=销毁WebSocket HttpUpgradeHandler时无法关闭WebConnection
 wsHttpUpgradeHandler.noPreInit=在容器调用init()之前,必须调用preinit()方法来配置WebSocket HttpUpgradeHandler。通常,这意味着创建WsHttpUpgradeHandler 实例的servlet也应该调用preinit()
 
 wsRemoteEndpointServer.closeFailed=无法完全关闭ServletOutputStream 连接
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