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

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

commit d4d994225bf16489ef5bcde1e5d0b399f030f625
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Nov 6 12:12:15 2019 +0000

    Expand coverage and quality of Simplified Chinese translations
    
    Contributions provided by rpo130, Mason Shen, leeyazhou, winsonzhao,
    qingshi huang, Lay and Shucheng Hou.
---
 java/javax/el/LocalStrings_zh_CN.properties        |  4 +--
 .../servlet/http/LocalStrings_zh_CN.properties     |  1 +
 .../authenticator/LocalStrings_zh_CN.properties    |  7 +++++
 .../jaspic/LocalStrings_zh_CN.properties           |  1 +
 .../connector/LocalStrings_zh_CN.properties        |  9 ++++++
 .../catalina/core/LocalStrings_zh_CN.properties    | 32 ++++++++++++++++++++++
 .../catalina/filters/LocalStrings_zh_CN.properties | 15 ++++++++--
 .../ha/deploy/LocalStrings_zh_CN.properties        |  3 ++
 .../ha/session/LocalStrings_zh_CN.properties       | 10 +++++++
 .../catalina/loader/LocalStrings_zh_CN.properties  |  5 ++++
 .../manager/host/LocalStrings_zh_CN.properties     |  2 +-
 .../catalina/mapper/LocalStrings_zh_CN.properties  |  2 ++
 .../catalina/mbeans/LocalStrings_zh_CN.properties  |  2 ++
 .../catalina/realm/LocalStrings_zh_CN.properties   |  5 ++++
 .../servlets/LocalStrings_zh_CN.properties         |  2 ++
 .../catalina/session/LocalStrings_zh_CN.properties |  8 ++++++
 .../catalina/startup/LocalStrings_zh_CN.properties | 13 +++++++++
 .../tribes/group/LocalStrings_zh_CN.properties     |  4 +++
 .../interceptors/LocalStrings_zh_CN.properties     |  4 +++
 .../membership/LocalStrings_zh_CN.properties       | 11 +++++++-
 .../tribes/tipis/LocalStrings_zh_CN.properties     |  5 ++++
 .../transport/bio/LocalStrings_zh_CN.properties    |  4 +++
 .../transport/nio/LocalStrings_zh_CN.properties    |  5 ++++
 .../tribes/util/LocalStrings_zh_CN.properties      |  1 +
 .../catalina/util/LocalStrings_zh_CN.properties    |  6 ++++
 .../catalina/valves/LocalStrings_zh_CN.properties  | 15 ++++++++++
 .../valves/rewrite}/LocalStrings_zh_CN.properties  |  3 +-
 .../webresources/LocalStrings_zh_CN.properties     |  7 +++++
 .../apache/coyote/LocalStrings_zh_CN.properties    |  3 ++
 .../coyote/ajp/LocalStrings_zh_CN.properties       |  1 +
 .../coyote/http11/LocalStrings_zh_CN.properties    |  5 ++++
 .../http11/filters/LocalStrings_zh_CN.properties   |  1 +
 .../http11/upgrade/LocalStrings_zh_CN.properties   |  4 +++
 .../coyote/http2/LocalStrings_zh_CN.properties     | 17 ++++++++++++
 .../jasper/resources/LocalStrings_zh_CN.properties | 31 ++++++++++++++++++---
 .../apache/naming/LocalStrings_zh_CN.properties    |  4 +++
 .../naming/factory/LocalStrings_zh_CN.properties   |  5 ++++
 .../tomcat/util/LocalStrings_zh_CN.properties      |  1 +
 .../tomcat/util/buf/LocalStrings_zh_CN.properties  |  5 ++++
 .../util/compat/LocalStrings_zh_CN.properties      |  2 ++
 .../LocalStrings_zh_CN.properties                  |  3 +-
 .../descriptor/web/LocalStrings_zh_CN.properties   | 10 +++++++
 .../tomcat/util/http/LocalStrings_zh_CN.properties |  5 ++++
 .../util/http/parser/LocalStrings_zh_CN.properties |  3 ++
 .../util/modeler/LocalStrings_zh_CN.properties     |  1 -
 .../tomcat/util/net/LocalStrings_zh_CN.properties  | 19 ++++++++++++-
 .../util/net/jsse/LocalStrings_zh_CN.properties    |  1 +
 .../util/net/openssl/LocalStrings_zh_CN.properties |  4 +++
 .../tomcat/util/scan/LocalStrings_zh_CN.properties |  1 +
 .../tomcat/websocket/LocalStrings_zh_CN.properties | 17 ++++++++++++
 .../websocket/pojo/LocalStrings_zh_CN.properties   |  6 ++++
 .../websocket/server/LocalStrings_zh_CN.properties |  6 ++++
 webapps/docs/changelog.xml                         |  6 ++++
 .../WEB-INF/classes/LocalStrings_zh_CN.properties  |  1 +
 54 files changed, 332 insertions(+), 16 deletions(-)

diff --git a/java/javax/el/LocalStrings_zh_CN.properties 
b/java/javax/el/LocalStrings_zh_CN.properties
index 99ab703..7b409ee 100644
--- a/java/javax/el/LocalStrings_zh_CN.properties
+++ b/java/javax/el/LocalStrings_zh_CN.properties
@@ -28,7 +28,7 @@ expressionFactory.readFailed=无法读取[{0}]
 importHandler.ambiguousImport=无法导入类[{0}],因为它与已导入的[{1}]冲突
 importHandler.ambiguousStaticImport=无法处理静态导入[{0}],因为它与已导入的[{1}]冲突
 importHandler.classNotFound=无法导入类[{0}],因为无法找到它
-importHandler.invalidClass=类[{0}]必须是公共的和非抽象的,并且不能是接口
+importHandler.invalidClass=类[{0}]必须是公共的、非抽象的、非接口且(对于Java 9+)在一个导出包
 importHandler.invalidClassNameForStatic=为 static import [{1}] 指定的类 [{0}] 不可用
 importHandler.invalidStaticName=导入 [{0}] 的静态方法或字段名称必须包含类
 importHandler.staticNotFound=导入[{2}]的类[{1}]中找不到静态导入[{0}]
@@ -43,7 +43,7 @@ propertyReadError=在类型[{0}]上读取[{1}]时出错
 propertyWriteError=在类型[{0}]上写入[{1}]时出错
 
 staticFieldELResolver.methodNotFound=在类[{1}]上找不到名为[{0}]的匹配的公共静态方法
-staticFieldELResolver.notFound=在类[{1}]上找不到名为[{0}]的公共静态字段
+staticFieldELResolver.notFound=(Java  9+导出)类[{1}]上找不到名为[{0}]的公共静态字段
 staticFieldELResolver.notWriteable=不允许写入静态字段(当前情况中为类[{1}]上的字段[{0}])
 
 util.method.ambiguous=无法找到明确的方法:{0}.{1}({2})
diff --git a/java/javax/servlet/http/LocalStrings_zh_CN.properties 
b/java/javax/servlet/http/LocalStrings_zh_CN.properties
index fbbd569..4e8f6b2 100644
--- a/java/javax/servlet/http/LocalStrings_zh_CN.properties
+++ b/java/javax/servlet/http/LocalStrings_zh_CN.properties
@@ -22,3 +22,4 @@ http.method_get_not_supported=此URL不支持Http方法GET
 http.method_not_implemented=这个servlet没有为这个URI实现方法[{0}]
 http.method_post_not_supported=此URL不支持Http方法POST
 http.method_put_not_supported=此URL不支持HTTP方法PUT
+http.non_http=没有HTTP请求或响应
diff --git 
a/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
index 75cbdb7..c2daba3 100644
--- a/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
@@ -34,13 +34,20 @@ basicAuthenticator.invalidCharset=只允许值为null、空字符串或UTF-8
 
 digestAuthenticator.cacheRemove=已从客户端 nonce 
缓存中删除有效条目,以便为新条目腾出空间。重播攻击现在是可能的。为防止重播攻击的可能性,请降低nonceValidity或增加nonceCacheSize。此类型的进一步警告将被抑制5分钟。
 
+formAuthenticator.noErrorPage=没有为上下文[{0}]中的表单身份验证定义错误页
+
+singleSignOn.debug.associate=SSO将应用程序会话[{1}]与SSO会话[{0}]关联
 singleSignOn.debug.cookieCheck=SSO检查SSO cookie
 singleSignOn.debug.cookieNotFound=SSO没有找到SSO cookie
+singleSignOn.debug.deregisterFail=SSO撤销登记SSO会话[{0}]失败,因为缓存中不包含这个SSO会话
+singleSignOn.debug.hasPrincipal=找到以前经过身份验证的主体[{0}]
+singleSignOn.debug.invoke=SSO为[{0}]处理请求
 singleSignOn.debug.principalCheck=SSO为SSO会话[{0}]寻找缓存的Principal
 singleSignOn.debug.principalFound=SSO 找到了带着认证类型的缓存代理
 singleSignOn.debug.removeSession=SSO 从 SSO session [{1}] 中删除应用程序会话 [{0}]
 singleSignOn.debug.update=SSO 更新SSO 会话[{0}] 对认证 类型[{1}]
 singleSignOn.sessionExpire.hostNotFound=因为 Host 丢失,SSO 无法使 session [{0}] 失效
 singleSignOn.sessionExpire.managerError=由于会话管理器在检索会话时抛出异常,导致单点登录无法使会话[{0}]失效
+singleSignOn.sessionExpire.managerNotFound=SSO无法使会话[{0}]过期,因为找不到管理器
 
 spnegoAuthenticator.authHeaderNoToken=客户端发送的协商授权 header 未包含 token
diff --git 
a/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties
index b7f1fa3..04485b4 100644
--- 
a/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties
+++ 
b/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+authConfigFactoryImpl.load=从[{0}]加载持久化提供者注册信息
 authConfigFactoryImpl.zeroLengthAppContext=:)应用上下文名称的长度为0是无效的
 authConfigFactoryImpl.zeroLengthMessageLayer=零长度的消息层名称是无效的
 
diff --git a/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
index edf59b3..b8fb290 100644
--- a/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+coyoteAdapter.authorize=(:使用Tomcat的领域授权用户[{0}]
 coyoteAdapter.checkRecycled.response=遇到非回收的相应并强行回收。
 coyoteAdapter.debug=变量[{0}]的值为[{1}]。
 
@@ -21,20 +22,28 @@ coyoteConnector.invalidPort=连接器不能启动,因为指定的端口 [{0}]
 coyoteConnector.parseBodyMethodNoTrace=方法TRACE禁止包含实体(详情查看RFC 2616 章节 9.6)
 coyoteConnector.protocolHandlerInstantiationFailed=协议处理程序实例化失败
 coyoteConnector.protocolHandlerPauseFailed=协议处理程序暂停失败
+coyoteConnector.protocolHandlerStartFailed=协议处理器启动失败
 coyoteConnector.protocolHandlerStopFailed=协议处理程序.停止失败
 
 coyoteInputStream.nbNotready=在非阻塞模式下,只有之前的读数据完成,并且isReady()方法返回true,你才可以使用 
ServletInputStream 读取数据
 
+coyoteRequest.attributeEvent=属性事件侦听器引发的异常
+coyoteRequest.authenticate.ise=):提交响应后无法调用authenticate()
 coyoteRequest.changeSessionId=无法更改 session ID。 没有与此请求关联的 session。
 
coyoteRequest.chunkedPostTooLarge=由于请求参数数据太大,导致参数不能解析。因为当前请求是块状请求,后续也不会处理。如果应用程序需要接收大的POST请求,可以使用连接器的maxPostSize解决它。
 coyoteRequest.filterAsyncSupportUnknown=无法确定是否有任何过滤器不支持异步处理
 coyoteRequest.gssLifetimeFail=为用户主体 [{0}] 获取剩余生命期失败
+coyoteRequest.maxPostSizeExceeded=):大多部分请求包含的参数数据(不包括上载的文件)超过了关联连接器上设置的maxPostSize
 的限制
 coyoteRequest.noMultipartConfig=由于没有提供multi-part配置,无法处理parts
 coyoteRequest.sendfileNotCanonical=无法确定指定用于sendfile的文件[{0}]的规范名称
+coyoteRequest.sessionCreateCommitted=提交响应后无法创建会话
 coyoteRequest.sessionEndAccessFail=在回收请求时,异常触发了对会话的结束访问。
 coyoteRequest.setAttribute.namenull=不能在一个空的名字上调用setAttribute
+coyoteRequest.uploadLocationInvalid=临时上传路径[{0}]无效
 
 coyoteResponse.encoding.invalid=JRE无法识别编码[{0}]
+coyoteResponse.getWriter.ise=当前响应已经调用了方法getOutputStream()
+coyoteResponse.reset.ise=已经提交响应后无法调用reset()
 coyoteResponse.sendError.ise=响应提交后无法调用sendError()
 coyoteResponse.sendRedirect.note=<html><body><p>重定向到<a 
href="{0}">{0}</a></p></body></html>
 
diff --git a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
index 23ce5f1..c9f85a1 100644
--- a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
@@ -17,33 +17,46 @@ applicationContext.addJspFile.iae=JSP 文件 [{0}] 不可用
 applicationContext.addListener.iae.cnfe=无法创建类型为 [{0}] 的实例
 applicationContext.addListener.iae.wrongType=指定的类型[{0}]不是预期的侦听器类型之一
 applicationContext.addRole.ise=上下文被初始化后,角色不能再被添加到[{0}]中
+applicationContext.addServlet.ise=无法将servlet添加到上下文[{0}]中,因为该上下文已初始化
 applicationContext.attributeEvent=属性事件监听器引发的异常
+applicationContext.invalidFilterName=由于筛选器名称[{0}]无效,无法添加筛选器定义。
 applicationContext.invalidServletName=由于servlet名称[{0}]无效,无法添加对应servlet的定义。
 applicationContext.mapping.error=映射中.的错误
+applicationContext.resourcePaths.iae=路径[{0}]不以“/”字符开头
 applicationContext.setAttribute.namenull=Name 不能为 null
+applicationContext.setSessionTimeout.ise=(:无法为上下文[{0}]设置会话超时,因为该上下文已初始化
 applicationContext.setSessionTracking.iae.ssl=为上下文 [{0}] 请求的 session 跟踪模式包括 
SSL 和至少一种其他模式。 SSL可能未配置其他模式。
 applicationContext.setSessionTracking.ise=当上下文正在运行,无法设置上下文[{0}]的会话跟踪模式
 
+applicationDispatcher.serviceException=Servlet[{0}]的Servlet.service()抛出异常
 
applicationDispatcher.specViolation.response=原始的ServletResponse或包装后的ServletResponse未传递给RequestDispatcher,原因:违反了SRV.8.2和SRV.14.2.5.1\n\
 \n
 
+applicationFilterConfig.preDestroy=):为类型为[{1}]的名为[{0}]的筛选器调用preDestroy 失败
 applicationFilterConfig.release=失败的销毁过滤器类型为[{1}]名称为[{0}]
 
 
applicationFilterRegistration.nullInitParams=由于name和(或)value为null,无法为过滤器设置初始化参数。name为
 [{0}],value为 [{1}]
 
 applicationPushBuilder.methodNotToken=HTTP方法必须是令牌(token),但 [{0}] 包含非令牌字符
 
+applicationServletRegistration.setServletSecurity.iae=为部署到名为[{1}]的上下文的Servlet[{0}]指定的空约束
+
 aprListener.aprInitError=基于APR的本地库加载失败.错误报告为[{0}]
+aprListener.config=APR/OpenSSL配置:useAprConnector[{0}],useOpenSSL[{1}]
+aprListener.enterAlreadyInFIPSMode=AprLifecycleListener 
配置为强制进入FIPS模式,但库已处于FIPS模式[{0}]
 aprListener.initializeFIPSSuccess=成功的进入FIPS 模式
 aprListener.initializingFIPS=初始化FIPS模式...
 aprListener.tcnVersion=安装了基于APR的Apache Tomcat 
Native库的旧版本[{0}],而Tomcat建议使用[{1}]的最低版本
 aprListener.tooLateForFIPSMode=无法设置FIPSMode:SSL已初始化
 aprListener.tooLateForSSLRandomSeed=无法设置 SSLRandomSeed:SSL已经初始化
 
+asyncContextImpl.noAsyncDispatcher=从ServletContext 返回的调度程序不支持异步调度
+asyncContextImpl.request.ise=调用方法complete()后或者任意一个dispatch()方法调用后,调用getRequest()方法是非法的
 asyncContextImpl.requestEnded=AsyncContext关联的请求已经完成处理。
 
 containerBase.backgroundProcess.cluster=异常处理集群[{0}]后台进程
 containerBase.backgroundProcess.unexpectedThreadDeath=后台线程[{0}]意外结束
+containerBase.backgroundProcess.valve=处理阀门[{0}]后台进程异常
 containerBase.nullName=容器名称不能为null
 containerBase.threadedStartFailed=子容器启动失败
 
@@ -54,19 +67,26 @@ 
defaultInstanceManager.restrictedListenersResource=无法找到RestrictedListene
 
 filterChain.filter=Filter 执行抛出一个异常
 
+jreLeakListener.classToInitializeFail=在tomcat启动期间未能加载类[{0}],以防止可能的内存泄漏。
+
 naming.addEnvEntry=添加环境条目 [{0}]
 naming.addResourceEnvRef=添加资源环境引用 [{0}]
 naming.invalidEnvEntryType=环境条目[{0}]没有一个有效哦的类型
 naming.jmxRegistrationFailed=注册到JMX失败:[{0}]
 naming.namingContextCreationFailed=创建上下文名称失败
+naming.unbindFailed=解绑对象[{0}]失败
 naming.wsdlFailed=未找到 wsdl 文件:[{0}]
 
 standardContext.applicationListener=配置应用程序监听器[{0}]错误
+standardContext.applicationSkipped=由于以前的错误,已跳过安装应用程序侦听器
+standardContext.backgroundProcess.loader=异常处理加载程序[{0}]后台进程
 standardContext.backgroundProcess.resources=异常处理资源[{0}] 后台进程
 standardContext.cookieProcessor.null=不允许将上下文的CookieProcessor 设置为null
+standardContext.duplicateListener=当前上下文已经配置了监听器[{0}],重复的定义将被忽略。
 standardContext.errorPage.required=ErrorPage不能为null
 standardContext.errorPage.warning=警告:在Servlet 2.4中,错误页位置 [{0}] 必须以"/"开头
 standardContext.extensionValidationError=尝试校验必需的应用程序扩展时发生错误
+standardContext.filterFail=一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到
 standardContext.filterMap.either=过滤器映射必须指定 <url-pattern> 或 <servlet-name>
 standardContext.filterMap.name=Filter mapping 指定了一个未知的 filter名称 [{0}]
 standardContext.filterMap.pattern=过滤器映射中的<url-pattern> [{0}] 无效
@@ -74,9 +94,11 @@ standardContext.filterStart=启动过滤器异常
 standardContext.invalidWrapperClass=[{0}] 不是StandardWrapper的子类
 standardContext.isUnavailable=此应用程序目前不可用
 standardContext.listenerStart=异常将上下文初始化事件发送到类的侦听器实例.[{0}]
+standardContext.listenerStop=例外情况发送上下文删除事件[{0}],以便列表实例
 standardContext.loginConfig.errorPage=表单错误页[{0}]必须以"/"开始
 standardContext.loginConfig.errorWarning=警告:Servlet 2.4中,表单错误页[{0}]必须以"/"开始
 standardContext.loginConfig.loginPage=表单登录页面 [{0}] 必须以''/''开头
+standardContext.loginConfig.loginWarning=警告:在Servlet 2.4 中 Form 登录页[{0}] 必须以 
"/" 开头
 standardContext.manager=配置类为[{0}]的管理器
 standardContext.managerFail=会话管理器无法启动
 standardContext.namingResource.init.fail=未能初始化新的命名资源
@@ -92,24 +114,34 @@ standardContext.servletFail=启动时无法加载一个或多个Servlet。 全
 standardContext.startingContext=启动Context[{0}]出现异常
 
standardContext.stop.asyncWaitInterrupted=等待卸载延迟毫秒以完成飞行中的异步请求时收到中断。上下文停止将继续,不会有进一步的延迟。
 standardContext.stoppingContext=异常停止的上下文使用名为[{0}]
+standardContext.threadBindingListenerError=上下文[{0}]配置的线程绑定监听器发生错误
+standardContext.urlPattern.patternWarning=警告:在Servlet 2.4中,URL模式[{0}]必须以“/”开头
+standardContext.workCreateException=无法从目录[{0}]和catalina_home[{1}]中为上下文[{2}]确定绝对工作目录
 standardContext.workCreateFail=无法为上下文[{1}]创建工作目录[{0}]
+standardContext.workPath=获取上下文[{0}]的工作路径时发生异常
 
 standardContextValve.acknowledgeException=以100(继续)响应确认请求失败
 
+standardEngine.jvmRouteFail=无法从系统属性设置引擎的jvmRoute 属性
 standardEngine.notParent=引擎不能有父容器
 
 standardHost.noContext=没有配置上下文来处理此请求
 standardHost.notContext=主机的子节点必须有上下文
+standardHost.nullName=主机名是必需的
 
 standardServer.accept.timeout=在调用accept()方法之后,侦听shutdown命令的套接字经历了意外的超时[{0}]毫秒。 
这是bug 56684的一个例子?
 
standardServer.storeConfig.notAvailable=没有将StoreConfig实现注册为名为[{0}]的MBean,因此无法保存配置。合适的MBean通常通过StoreConfigLifecycleListener注册。
 
 standardService.engine.stopFailed=失败停止关联的引擎
+standardService.stop.name=正在停止服务[{0}]
 
+standardWrapper.allocate=分配一个servlet实例错误
 standardWrapper.destroyInstance=servlet[{0}]实例管理销毁(destroy) 抛出异常
+standardWrapper.instantiate=实例化Servlet类[{0}]异常
 standardWrapper.isUnavailable=Servlet [{0}]当前不可用。
 standardWrapper.notChild=Wrapper容器内部不允许有子容器。
 standardWrapper.notFound=Servlet [{0}] 不可用
+standardWrapper.serviceException=在路径为[{1}]的上下文中,servlet[{0}]的Servlet.service()引发异常
 standardWrapper.unloading=无法分配servlet [{0}],因为它没有被加载
 
 threadLocalLeakPreventionListener.containerEvent.error=异常处理容器事件[{0}]
diff --git a/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
index be687e8..d4b0bff 100644
--- a/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
@@ -17,20 +17,31 @@ corsFilter.invalidPreflightMaxAge=无法解析 preflightMaxAge
 corsFilter.nullRequest=HttpServletRequest 对象为空
 corsFilter.nullRequestType=CORSRequestType对象为空(null)
 corsFilter.onlyHttp=CORS不支持非HTTP请求或响应
+corsFilter.wrongType1=期望类型为[{0}]的HttpServletRequest对象
+corsFilter.wrongType2=期望类型为[{0}]或[{1}]的HttpServletRequest对象
 
 csrfPrevention.invalidRandomClass=不能使用class [{0}]创建随机源.
 
+expiresFilter.invalidDurationNumber=指令[{1}]中的持续时间(数字)[{0}]无效
+expiresFilter.noDurationFound=在指令[{0}]中找不到持续时间
 expiresFilter.noExpirationConfigured=请求[{0}],其响应状态为[{1}]内容类型[{2}],未配置到期日期
 expiresFilter.noExpirationConfiguredForContentType=没有为 content-type [{0}] 
找到过期配置
+expiresFilter.responseAlreadyCommited=请求[{0}],无法对已提交的响应应用ExpiresFilter。
 expiresFilter.startingPointInvalid=在指令[{1}]中无效的起点(访问|现在|修改|a<秒>|m<秒>)[{0}]
+expiresFilter.startingPointNotFound=起始点(access|now|modification|a<seconds>|m<seconds>)未在指令[{0}]中找到
 expiresFilter.unsupportedStartingPoint=不支持的起始点 [{0}]
+expiresFilter.useDefaultConfiguration=对内容类型[{1}]使用默认的[{0}]返回[{2}]
 expiresFilter.useMatchingConfiguration=对内容类型[{2}]返回[{3}]使用[{0}]匹配[{1}]
 
+filterbase.noSuchProperty=未为[{1}]类型的筛选器定义属性[{0}]
+
 http.403=禁止访问指定资源 [{0}] 。
 
-httpHeaderSecurityFilter.clickjack.invalid=\n\
-\ 为防咔嗒顶部标题指定了无效值[{0}]
+httpHeaderSecurityFilter.clickjack.invalid=为防咔嗒顶部标题指定了无效值[{0}]
 
 remoteCidrFilter.noRemoteIp=客户端没有 IP 地址。请求被拒绝。
 
+remoteIpFilter.invalidHostHeader=HTTP头 [{1}]中,为Host找到一个无效值 [{0}]
+remoteIpFilter.invalidHostWithPort=HTTP头 [{1}]中的Host值 [{0}]包含一个被忽略的端口号
+
 requestFilter.deny=基于属性:[{1}],[{0}]的请求被拒绝。
diff --git a/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
index 3fb38bd..0fbf775 100644
--- a/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
@@ -14,6 +14,7 @@
 # limitations under the License.
 
 farmWarDeployer.hostOnly=FarmWarDeployer 只有做为 host cluster 的子元素是才生效
+farmWarDeployer.mbeanNameFail=无法为引擎[{0}]和主机[{1}]构造MBean对象名
 farmWarDeployer.modInstall=从 [{1}] 安装 webapp [{0}]
 farmWarDeployer.modInstallFail=无法安装 WAR 文件
 farmWarDeployer.msgIoe=无法读取服务器场部署文件消息。
@@ -22,7 +23,9 @@ farmWarDeployer.msgRxUndeploy=从路径[{0}]接收未部署群集
 farmWarDeployer.removeFailLocal=从[{0}]本地移除失败
 farmWarDeployer.removeFailRemote=本地从[{0}]删除失败,其他经理有app在服务!
 farmWarDeployer.removeLocalFail=无法移除WAR文件
+farmWarDeployer.renameFail=将 [{0}] 重命名为 [{1}] 失败
 farmWarDeployer.sendFragment=将群集战争片段路径[{0}],战争[{1}]发送到[{2}]
+farmWarDeployer.servicingDeploy=应用程序[{0}]正在服务。再次触摸WAR文件[{1}]!
 farmWarDeployer.servicingUndeploy=正在处理应用程序[{0}],无法从备份群集节点中删除它
 farmWarDeployer.undeployEnd=从[{0}]取消部署完成。
 farmWarDeployer.undeployLocal=不能部署本地上下文[{0}]
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 0c63eb3..faf301f 100644
--- a/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
@@ -18,12 +18,17 @@ backupManager.startFailed=启动BackupManager: [{0}]失败
 backupManager.startUnable=无法启动BackupManager: [{0}]
 backupManager.stopped=管理者[{0}]正在停止。
 
+deltaManager.createMessage.access=管理器[{0}]:创建会话为会话[{1}]存取消息
+deltaManager.createMessage.delta=管理器[{0}] ):为会话[{1}]创建增量请求消息
+deltaManager.createMessage.expire=管理器[{0}] (:为会话[{1}]创建会话过期消息
 deltaManager.createSession.newSession=用id[{0}]创建一个扩展会话(DeltaSession),总数为 [{1}]
 deltaManager.foundMasterMember=复制主master 成员在上下文中被发现.\n
 deltaManager.loading.cnfe=加载持久化会话 [{0}] 时出现ClassNotFoundException
 deltaManager.loading.ioe=加载持久 session 时出现 IOException:[{0}]
+deltaManager.managerLoad=从永久存储加载会话时发生异常
 deltaManager.noContextManager=管理器[{0}]:回复[{1}]发送的“获取所有会话数据”消息,在[{2}] 
ms后收到“无匹配的上下文管理器”消息
 deltaManager.noSessionState=管理者[{0}]:没有收到[{1}]发送的会话状态,在[{2}]毫秒之后超时。
+deltaManager.receiveMessage.accessed=管理器[{0}]:接收会话为会话[{1}]存取消息
 deltaManager.receiveMessage.allSessionDataAfter=Manager [{0}]: session 状态反序列化
 deltaManager.receiveMessage.allSessionDataBegin=管理者[{0}]:接收到所有会话数据状态
 deltaManager.receiveMessage.delta.unknown=管理器[{0}]:未知会话的接收会话增量[{1}]
@@ -31,6 +36,7 @@ deltaManager.receiveMessage.expired=管理器[{0}]: 接收到的会话 [{1}] 已
 deltaManager.receiveMessage.unloadingBegin=管理器[{0}]: 开始卸载会话
 deltaManager.registerCluster=将管理器[{0}]注册到名为[{2}]的集群元素[{1}]
 deltaManager.sendMessage.newSession=\ 管理器 [{0}] 发送新的会话 [{1}]
+deltaManager.sessionReceived=管理器[{0}];在[{1}]发送的会话状态在[{2}]毫秒内收到。
 deltaManager.unableSerializeSessionID=无法序列化会话ID [{0}]
 deltaManager.unloading.ioe=当保存永久回话:[{0}] 时,抛出 IOException
 
@@ -43,3 +49,7 @@ deltaSession.writeSession=writeObject()存储会话[{0}]
 jvmRoute.changeSession=会话从[{0}]切换到[{1}]
 jvmRoute.missingJvmRouteAttribute=没有配置引擎jvmRoute属性!
 jvmRoute.notFoundManager=没有在 [{0}] 找到Cluster Manager
+jvmRoute.set.orignalsessionid=在请求属性[{0}]值:[{1}]处设置原始会话ID
+jvmRoute.valve.started=JvmRouteBinderValve 启动
+
+standardSession.setAttribute.namenull=setAttribute:名称属性不能为空
diff --git a/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
index f6cff43..8471d25 100644
--- a/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
@@ -14,14 +14,19 @@
 # limitations under the License.
 
 webappClassLoader.addTransformer=将类文件转换器[{0}]添加到Web应用程序[{1}]。
+webappClassLoader.addTransformer.illegalArgument=Web应用程序[{0}]试图添加空类文件转换器。
 webappClassLoader.checkThreadLocalsForLeaks.badValue=无法确定类型为 [{0}] 的值的字符串表示形式
 webappClassLoader.checkThreadLocalsForLeaks.unknown=:)未知
 webappClassLoader.checkThreadLocalsForLeaksNone=web应用程序 [{0}] 
创建了1个ThreadLocal变量(键:[{2}] (类型[{1}]) ,值:[{4}](类型[{3}]) )。键仅被ThreadLocal 
Map弱引用,所以不是内存泄露。
 webappClassLoader.clearJdbc=Web应用程序 [{0}] 注册了JDBC驱动程序 [{1}],但在Web应用程序停止时无法注销它。 
为防止内存泄漏,JDBC驱动程序已被强制取消注册。
+webappClassLoader.getThreadGroupError=无法获得线程组[{0}]的父级。不可能检查所有线程是否存在潜在的内存泄漏。
 webappClassLoader.jarsRemoved=一个或多个 JAR 已被从 Web 应用程序 [{0}] 中删除
 webappClassLoader.jdbcRemoveFailed=Web应用程序 [{0}] 的JDBC驱动程序注销失败
 webappClassLoader.readError=资源读取错误:不能加载 [{0}].
+webappClassLoader.stackTrace=Web应用程序[{0}]似乎启动了一个名为[{1}]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[{2}]
+webappClassLoader.stopped=非法访问:此Web应用程序实例已停止。无法加载[{0}]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
 webappClassLoader.superCloseFail=调用父类的close()方法出现异常。
+webappClassLoader.transformError=检测错误:无法转换类[{0}],因为它的类文件格式是不合法的。
 webappClassLoader.warnTimerThread=Web应用程序[{0}]似乎已通过java.util.Timer 
API启动了名为[{1}]的TimerThread,但未能将其停止。 为防止内存泄漏,计时器(以及相关联的线程)已被强制取消。
 webappClassLoader.wrongVersion=(无法载入的.类 [{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 06fd955..c9cccbc 100644
--- a/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
@@ -65,7 +65,7 @@ 
htmlHostManagerServlet.helpHtmlManagerFile=../docs/html-host-manager-howto.html
 htmlHostManagerServlet.helpManager=主机管理器帮助
 htmlHostManagerServlet.helpManagerFile=../docs/host-manager-howto.html
 htmlHostManagerServlet.hostAliases=主机别名
-htmlHostManagerServlet.hostName=主机名
+htmlHostManagerServlet.hostName=主机名称
 htmlHostManagerServlet.hostTasks=命令
 htmlHostManagerServlet.hostThis=主机管理器已安装 - 命令不可用
 htmlHostManagerServlet.hostsRemove=移除
diff --git a/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
index 2e7f2d8..c2765f8 100644
--- a/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
@@ -18,4 +18,6 @@ mapper.addHostAlias.success=为虚拟主机 [{1}] 注册了别名 [{0}]
 mapperListener.pauseContext=根据服务需要,注册内容[{0}]已经重新加载
 mapperListener.registerHost=这域名[{1}]注册主机[{0}],服务:[{2}]
 mapperListener.registerWrapper=为服务Service[{2}]在上下文Context[{1}]注册Wrapper[{0}]
+mapperListener.unregisterContext=注销服务[{1}]的上下文[{0}]
 mapperListener.unregisterHost=在域[{1}]中.,不能注册主机[{0}]为服务[{2}]
+mapperListener.unregisterWrapper=在上下文[{1}]中注销服务[{2}]的包装程序[{0}]
diff --git a/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties
index 1440a1e..0cb4d5c 100644
--- a/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/mbeans/LocalStrings_zh_CN.properties
@@ -13,4 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+jmxRemoteLifecycleListener.createRegistryFailed=无法使用端口[{1}]为[{0}]服务器创建RMI注册表
+jmxRemoteLifecycleListener.createServerFailed=无法为[{0}]服务器创建JMX连接器服务器或启动失败
 jmxRemoteLifecycleListener.invalidURL=为[{0}]服务器[{1}]请求的JMX服务URL无效
diff --git a/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
index 55d6740..2a38fa7 100644
--- a/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
@@ -26,10 +26,14 @@ jaasRealm.failedLogin=由于登录失败,用户名 [{0}] 无法授权
 jaasRealm.loginContextCreated=为用户名创建的JAAS 登陆上下文[{0}]
 jaasRealm.loginException=登录异常,认证用户名  [{0}]
 
+jdbcRealm.authenticateFailure=用户名称[{0}]未校验成功
+jdbcRealm.open=打开数据库连接时发生异常
+
 jndiRealm.authenticateFailure=用户名[{0}]没有成功认证
 jndiRealm.authenticateSuccess=用户名[{0}]成功认证
 jndiRealm.cipherSuites=启用 [{0}] 作为 TLS 连接的加密套件。
 jndiRealm.exception=执行认证异常
+jndiRealm.negotiatedTls=使用协议[{0}]协商的TLS连接
 jndiRealm.open=打开目录服务器链接异常
 
 lockOutRealm.authLockedUser=尝试对锁定的用户[{0}]进行身份验证
@@ -37,6 +41,7 @@ lockOutRealm.authLockedUser=尝试对锁定的用户[{0}]进行身份验证
 memoryRealm.loadExist=内存数据库文件[{0}]无法读取
 memoryRealm.loadPath=从内存数据库文件 [{0}] 加载用户
 memoryRealm.readXml=读取内存数据库文件时出现异常
+memoryRealm.xmlFeatureEncoding=配置Digester以允许XML文件中的java编码名称的异常。只支持IANA编码名称。
 
 pbeCredentialHandler.invalidKeySpec=无法生成基于密码的密钥
 
diff --git a/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
index 8913ebf..bf9b9a0 100644
--- a/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
@@ -16,6 +16,7 @@
 cgiServlet.expandFail=在路径[{0}] 到[{1}] 展开脚本失败.
 cgiServlet.expandOk=从路径[{0}]到[{1}]扩展脚本
 cgiServlet.find.location=在 [{0}] 查找文件
+cgiServlet.find.path=在相对于CGI位置[{1}]的路径[{0}]处请求的CGI脚本
 cgiServlet.runHeaderReaderFail=I/O 问题关闭请求头读操作
 cgiServlet.runInvalidStatus=无效状态 [{0}]
 cgiServlet.runOutputStreamFail=关闭输出流时发生I/O问题
@@ -23,6 +24,7 @@ cgiServlet.runReaderInterrupt=对于标准错误的读线程,中断并等待
 cgiServlet.runStdErrFail=I/O标准错误问题
 
 defaultServlet.blockExternalSubset=用名称[{0}]和baseURI[{1}]阻止对外部子集的访问
+defaultServlet.noResources=找不到静态资源
 
 directory.filename=文件名
 directory.size=大小
diff --git a/java/org/apache/catalina/session/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
index 06d37b6..b6f7033 100644
--- a/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
@@ -13,9 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+JDBCStore.checkConnectionClassNotFoundException=找不到 JDBC 驱动程序类 [{0}]
+JDBCStore.checkConnectionDBClosed=数据库连接为空或已关闭。正在尝试重新连接。
 JDBCStore.checkConnectionDBReOpenFail=重新打开数据库失败,数据库可能已经宕机。
+JDBCStore.checkConnectionSQLException=发生 SQL 异常 [{0}]
+JDBCStore.loading=正在从数据库[{1}]加载会话[{0}]
 JDBCStore.missingDataSourceName=没有给出有效的 JNDI 名称。
 JDBCStore.saving=保存Session [{0}] 到数据库 [{1}]
+JDBCStore.wrongDataSource=无法打开 JNDI 数据源 [{0}]
 
 fileStore.deleteFailed=无法删除阻止创建会话存储位置的文件 [{0}]
 
@@ -33,11 +38,14 @@ persistentManager.swapTooManyActive=太多活跃会话,替换闲置 [{1}] 秒的
 standardManager.loading.exception=加载持久化会话时发生异常
 standardManager.managerLoad=从持久化存储加载会话发生异常
 standardManager.managerUnload=卸载会话到持久存储的异常
+standardManager.unloading.nosessions=没有要卸载的持久会话
 
+standardSession.attributeEvent=会话属性事件侦听器引发异常
 standardSession.getAttributeNames.ise=getAttributeNames:会话已失效
 standardSession.getCreationTime.ise=getCreataionTime:会话已经无效
 standardSession.getIdleTime.ise=getIdleTime: 已失效的会话
 standardSession.getLastAccessedTime.ise=getLastAccessedTime: 会话已失效
+standardSession.getThisAccessedTime.ise=getThisAccessedTime:会话已经失效
 standardSession.getValueNames.ise=getValueNames:会话已经失效
 standardSession.logoutfail=当回话将过期登出用户异常
 standardSession.notDeserializable=无法反序列化会话 [{1}] 的属性 [{0}]
diff --git a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
index fe9f3f9..69e59d0 100644
--- a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+catalina.noCluster=由于[{0}]未找到群集Ruleset。已禁用群集配置。
 catalina.serverStartFail=所必需的服务组件启动失败,所以无法启动Tomcat
 
 contextConfig.altDDNotFound=未找到 alt-dd 文件 [{0}]
@@ -57,6 +58,9 @@ contextConfig.stop=ContextConfig:停止处理
 contextConfig.unavailable=由于之前的错误,标记当前应用程序不可用
 contextConfig.unknownUrlProtocol=注解解析过程中,URL协议[{0}]未识别。忽略URL[{1}]。
 contextConfig.urlPatternValue=类文件[{1}]的urlPatterns和值属性上同时设置了注解[{0}]
+contextConfig.xmlSettings=上下文[{0}]将解析web.xml和web-fragment.xml文件,验证为:[{1}],命名空间感知为(:[{2}]
+
+embedded.notmp=在[{0}]找不到指定的临时文件夹
 
 engineConfig.cce=生命周期事件数据对象[{0}]不是一个引擎(Engine)
 engineConfig.stop=配置引擎,处理进程停止。
@@ -69,13 +73,20 @@ expandWar.illegalPath=归档[{0}]格式错误,将被忽略:条目包含非
 expandWar.missingJarEntry=无法获得 JarEntry [{0}] 的输入流 - WAR 文件是否已损坏?
 
 
hostConfig.appBase=主机[{0}]的应用程序基础[{1}]不存在或不是目录。deployOnStartUp和autoDebug已设置为false,以防止部署错误。其他错误仍然可能发生。
+hostConfig.context.remove=移除上下文[{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.deployDir=把web 应用程序部署到目录 [{0}]
 hostConfig.deployWar.error=部署 Web 应用程序 archive [{0}] 时出错
 hostConfig.deployWar.hiddenDir=将忽略目录[{0}],因为WAR [{1}]优先,unpackWAR为false
+hostConfig.deployWar.threaded.error=等待WAR文件的多线程部署完成时出错
 hostConfig.docBaseUrlInvalid=所提供的部署目录无法用URL来表示
+hostConfig.expand.error=解压WEB应用程序文件[{0}]时异常
 hostConfig.ignorePath=忽略appBase中的路径[{0}]以进行自动部署
 hostConfig.jmx.unregister=移除注册上下文[{0}]失败
+hostConfig.start=HostConfig: 开始处理
 hostConfig.stop=:)Host配置:停止处理
 
 tomcat.addWebapp.conflictChild=无法在[{0}]处部署到上下文路径[{1}],因为存在上下文[{2}]
@@ -83,6 +94,7 @@ tomcat.addWebapp.conflictFile=由于现有文件[{2}]的存在,无法在[{0}]
 tomcat.homeDirMakeFail=无法创建用作主目录的目录 [{0}]
 
 userConfig.database=加载用户数据库异常
+userConfig.deploy.threaded.error=等待用户目录的多线程部署完成时出错
 userConfig.deploying=正在部署用户 web 应用程序
 userConfig.error=为用户 [{0}]部署web应用发生错误
 userConfig.start=用户配置:处理开始
@@ -93,6 +105,7 @@ 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}
diff --git 
a/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
index d67a4c3..87f528a 100644
--- a/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
@@ -17,4 +17,8 @@ channelCoordinator.alreadyStarted=通道已经启动,级别:[{0}]
 
channelCoordinator.invalid.startLevel=启动级别无效,有效级别为:SND_RX_SEQ,SND_TX_SEQ,MBR_TX_SEQ,MBR_RX_SEQ
 
 groupChannel.listener.alreadyExist=侦听器已存在:[{0}][{1}]
+groupChannel.noDestination=没有指定目的地
+groupChannel.nullMessage=无法发送空消息
+groupChannel.optionFlag.conflict=拦截器选项标志冲突:[{0}]
+groupChannel.unable.deserialize=无法反序列化消息:[{0}]
 groupChannel.unable.sendHeartbeat=无法通过Tribes拦截器堆栈发送心跳。 会再试一次。
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 39faafa..1d91d41 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
@@ -17,7 +17,9 @@ domainFilterInterceptor.member.refused=成员被拒绝加入集群 cluster[{0}]
 domainFilterInterceptor.message.refused=从集群[{0}]中接收的消息被拒绝
 
 encryptInterceptor.decrypt.error.short-message=解密消息失败: 结尾消息提前结束
+encryptInterceptor.decrypt.failed=无法解密信息
 encryptInterceptor.encrypt.failed=无法加密信息
+encryptInterceptor.init.failed=初始化EncryptInterceptor失败
 
encryptInterceptor.tcpFailureDetector.ordering=加密拦截器必须位于TCP故障检测器的上游。请重新订购加密拦截器,将其列在通道拦截器管道中的TCP故障检测器之前。
 
 messageDispatchInterceptor.errorMessage.failed=无法回传错误信息
@@ -25,6 +27,7 @@ messageDispatchInterceptor.queue.full=异步队列已满,达到 [{0}] 字节
 messageDispatchInterceptor.unableAdd.queue=无法将消息添加到异步队列,队列 bug?
 messageDispatchInterceptor.warning.optionflag=警告!你正在覆盖异步选项标志,这将禁用其它程序可能用到的 
Channel.SEND_OPTIONS_ASYNCHRONOUS。
 
+nonBlockingCoordinator.heartbeat.inconsistency=心跳发现不一致,重新启动选举
 nonBlockingCoordinator.memberAlive.failed=无法执行成员活动检查,猜测成员下线。
 nonBlockingCoordinator.processCoordinationMessage.failed=处理协调消息时出错。 可能是致命的。
 
@@ -35,6 +38,7 @@ staticMembershipInterceptor.sendShutdown.failed=关闭通知失败。
 tcpFailureDetector.failureDetection.failed=无法进行失败监测,假定成员宕机。[{0}]
 tcpFailureDetector.heartbeat.failed=TCP心跳检测器无法执行心跳
 tcpFailureDetector.member.disappeared=认证完成。成员消失[{0}]
+tcpFailureDetector.memberDisappeared.verify=(:收到的membermissed[{0}]消息。将验证。
 tcpFailureDetector.still.alive=验证完成。成员 [{0}] 仍然存活
 tcpFailureDetector.suspectMember.alive=验证可疑成员服务器还活着。[{0}]
 
diff --git 
a/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties
index a45f68a..4dccbea 100644
--- a/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties
@@ -13,12 +13,20 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+McastService.parseSoTimeout=无法解析SoTimeout:[{0}]
+McastService.payload=无法发送负载更新
+
 mcastService.missing.property=McastService:缺少必需属性 [{0}]。
 
 mcastServiceImpl.bind=尝试将多播套接字绑定到 [{0}:{1}]
+mcastServiceImpl.bind.failed=绑定到多播地址失败。仅绑定到端口。
+mcastServiceImpl.error.receiving=接收mcast包时出错。睡眠500毫秒
 mcastServiceImpl.invalid.startLevel=无效的启动级别。只接受以下级别:Channel.MBR_RX_SEQ或 
Channel.MBR_TX_SEQ
+mcastServiceImpl.invalid.stopLevel=无效的停止级别。只有Channel.MBR_RX_SEQ和Channel.MBR_TX_SEQ是可接受的级别
 mcastServiceImpl.recovery=家族成员,运行恢复线程,广播不是功能。
 mcastServiceImpl.recovery.stopFailed=恢复线程未能停止成员服务。
+mcastServiceImpl.recovery.successful=成员身份恢复成功。
+mcastServiceImpl.send.failed=无法发送多播信息
 mcastServiceImpl.send.running=McastService.send已经运行
 mcastServiceImpl.setInterface=设置多宿主多播接口为:[{0}]
 mcastServiceImpl.setSoTimeout=设置集群多播超时时间:[{0}]
@@ -26,7 +34,8 @@ mcastServiceImpl.setTTL=设置集群多播TTL:[{0}]
 mcastServiceImpl.unable.join=无法加入多播组,请确保你的系统已启用多播。
 mcastServiceImpl.unableReceive.broadcastMessage=无法接收广播消息。
 
-memberImpl.large.payload=负载太大对于处理许多...
+memberImpl.large.payload=负载太大以至于难以处理
 memberImpl.notEnough.bytes=成员包中的字节不够。
+memberImpl.package.small=成员包太小以至于不能校验。
 
 staticMember.invalid.uuidLength=UUID必须正好是16个字节,而不是:[{0}]
diff --git 
a/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
index 6e33954..4bf1c9a 100644
--- a/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
@@ -15,14 +15,19 @@
 
 abstractReplicatedMap.broadcast.noReplies=广播收到0回复,可能是超时了。
 abstractReplicatedMap.leftOver.ignored=消息[{0}]被忽略
+abstractReplicatedMap.member.disappeared=成员[{0}]已消失。相关的映射项将重新定位到新节点。
 abstractReplicatedMap.transferState.noReplies=传输状态,0响应,也许是超时。
 abstractReplicatedMap.unable.get=无法复制 AbstractReplicatedMap.get 操作的数据
+abstractReplicatedMap.unable.relocate=无法将[{0}]重新定位到新的备份节点
 abstractReplicatedMap.unableSelect.backup=无法选择备用节点
 abstractReplicatedMap.unableSend.startMessage=无法发送map启动消息。
+abstractReplicatedMap.unableStart=无法启动复制Map
 
 lazyReplicatedMap.unableReplicate.proxy=不能复制proxy key:[{0}]到备份:[{1}]. 原因是:[{2}]
 
+mapMessage.deserialize.error.key=反序列化MapMessage主键失败
 mapMessage.deserialize.error.value=MapMessage.value的反序列化误差
 
+replicatedMap.member.disappeared=成员[{0}]消失,关联的键值实体会重新关联到一个新的节点。
 replicatedMap.relocate.complete=map 条目的重定位在 [{0}] ms内完成。
 replicatedMap.unable.relocate=不能为一个新的备份节点重启定位[{0}]
diff --git 
a/java/org/apache/catalina/tribes/transport/bio/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/transport/bio/LocalStrings_zh_CN.properties
index 379e6fc..8b8900d 100644
--- 
a/java/org/apache/catalina/tribes/transport/bio/LocalStrings_zh_CN.properties
+++ 
b/java/org/apache/catalina/tribes/transport/bio/LocalStrings_zh_CN.properties
@@ -21,8 +21,12 @@ bioReplicationTask.reader.closeFailed=无法关闭reader
 bioReplicationTask.socket.closeFailed=无法关闭套接字
 bioReplicationTask.unable.service=不能服务bio套接字
 
+bioSender.ack.eof=在本地端口[{0}:{1,number,integer}]达到EOF
 bioSender.ack.missing=不能读确认表格:[{0}] {1,number,integer}] in {2,number,integer} 
毫秒, 失去socket连接, 重试连接.
 bioSender.ack.wrong=在本地端口[{0}:{1,number,integer}]读取10个字节后丢失正确的ACK
 bioSender.closeSocket=发件人关闭套接字到[{0}:{1,number,integer}](关闭计数{2,数字,整数})
+bioSender.fail.AckReceived=收到一个失败的 ack 
):org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA
 bioSender.openSocket=发件人打开套接字到[{0}:{1,number,integer}](打开计数{2,数字,整数})
 bioSender.send.again=再次发送数据到 [{0}:{1,number,integer}]
+
+pooledMultiSender.unable.retrieve.sender=无法获取数据发送器,超时([{0}] ms)错误
diff --git 
a/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties
index a00ec84..25b12ec 100644
--- 
a/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties
+++ 
b/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties
@@ -20,13 +20,17 @@ nioReceiver.requestError=NioReceiver无法处理请求
 nioReceiver.run.fail=不能允许复制监听器
 nioReceiver.start.fail=无法启动集群接收器
 nioReceiver.stop.fail=无法关闭集群接收的选择器
+nioReceiver.stop.threadRunning=NioReceiver线程没有及时停止。关闭选择器时可能会观察到错误。
 nioReceiver.threadpool.fail=ThreadPool 无法初始化。 监听器未启动。
 
 nioReplicationTask.error.register.key=错误的注册key被读取:[{0}]
 nioReplicationTask.process.clusterMsg.failed=处理集群消息失败
 nioReplicationTask.unable.ack=不能通过channel发送ack,channel已经断开?[{0}]
 
+nioSender.datagram.already.established=数据报通道已经建立。连接可能正在进行中。
 nioSender.not.connected=NioSender未连接,这是不应该发生的。
+nioSender.sender.disconnected=发件人已断开连接,无法处理选择密钥。
+nioSender.unable.receive.ack=无法接收确认消息。已到达套接字通道上的EOF。
 nioSender.unknown.state=数据处于未知状态。readyOps = [{0}]
 
 parallelNioSender.send.fail.retrying=成员发送失败:[{0}]; 设置为怀疑并重试。
@@ -35,4 +39,5 @@ parallelNioSender.sendFailed.attempt=发送失败,尝试: [{0}] 最大: [{1}]
 parallelNioSender.sender.disconnected.sendFailed=发送失败且sender已断开连接,不再重试。
 
 pooledParallelSender.sender.disconnected=sender 未连接。
+pooledParallelSender.unable.open=无法打开nio选择器。
 pooledParallelSender.unable.retrieveSender=无法从sender池中获取一个sender
diff --git a/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
index 3e13106..f2c0ce9 100644
--- a/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
@@ -17,3 +17,4 @@ arrays.keyoffset.outOfBounds=key的偏移.超出了界限。
 arrays.length.outOfBounds=当前key下没有足够的元素,长度越界
 
 executorFactory.not.running=执行器没有运行,无法强制把命令送入队列
+executorFactory.queue.full=队列已满
diff --git a/java/org/apache/catalina/util/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
index f652bef..fae92c5 100644
--- a/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
@@ -23,9 +23,15 @@ extensionValidator.web-application-manifest=web 应用程序清单
 
 introspection.classLoadFailed=加载 class [{0}] 失败
 
+lifecycleBase.alreadyStarted=在调用start()之后,在组件[{0}]上调用start()方法。第二个电话将被忽略。
+lifecycleBase.destroyStopFail=在失败组件[{0}]上调用Stop()以触发清理,但也失败了
 lifecycleBase.initFail=初始化组件[{0}]失败。
+lifecycleBase.setState=设置状态从[{0}]到[{1}]
+
+lifecycleMBeanBase.registerFail=在组件初始化期间,无法注册名为{1}的对象{0}]
 
 netmask.cidrNegative=CIDR [{0}]为负数。
 netmask.invalidAddress=地址 [{0}] 无效
 
+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 7c6c464..a5aa356 100644
--- a/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
@@ -18,10 +18,12 @@ accessLogValve.invalidLocale=无法将区域设置设为 [{0}]
 accessLogValve.invalidPortType=端口类型 [{0}] 无效,使用服务器(本地)端口
 accessLogValve.openFail=无法打开访问日志文件[{0}]。
 accessLogValve.rotateFail=失败的循环切割访问日志.
+accessLogValve.writeFail=无法写入日志消息[{0}]
 
 errorReportValve.description=描述
 errorReportValve.exceptionReport=异常报告
 errorReportValve.message=消息
+errorReportValve.note=):注意
 errorReportValve.rootCauseInLogs=主要问题的全部 stack 信息可以在 server logs 里查看
 errorReportValve.unknownReason=未知的原因
 
@@ -46,25 +48,36 @@ http.408.reason=请求超时
 http.409.desc=由于和目标资源对当前状态发生冲突,所以请求无法完成。
 http.409.reason=冲突
 http.410.desc=原始服务器上不再可以访问目标资源,并且此条件可能是永久性的。
+http.411.reason=所需长度
 http.412.desc=在服务器上测试时,请求头字段中给出的一个或多个条件被评估为false。
 http.412.reason=前置条件失败
 http.413.reason=有效载荷过大
 http.414.desc=服务器拒绝为请求提供服务,因为请求目标比服务器愿意解释的要长。
 http.415.desc=源服务器拒绝服务请求,因为有效负载的格式在目标资源上此方法不支持。
 http.415.reason=不支持的媒体类型
+http.416.desc=(:请求的范围头字段中的任何范围都没有与选定资源的当前范围重叠,或者请求的范围集由于无效范围或小范围或重叠范围的过度请求而被拒绝。
 http.416.reason=范围不满足
+http.417.desc=(:至少有一个入站服务器无法满足请求的Expect头字段中给定的期望。
 http.417.reason=期望的失败
 http.421.desc=请求被定向到一台无法响应的服务器
 http.423.desc=源或目标资源的方法被锁
 http.423.reason=已锁定
+http.424.desc=这个方法不能在这个资源上执行,因为请求操作依赖另一个操作,但是另一个操作失败了。
+http.424.reason=失败的依赖项
+http.426.desc=服务器拒绝使用当前协议执行请求,但可能愿意在客户端升级到其他协议后执行。
 http.426.reason=需要升级
 http.428.desc=原始服务器要求请求是有条件的。
 http.429.reason=请求过多
 http.431.reason=请求头的字段太大
+http.451.desc=服务器出于法律原因拒绝了此请求。
 http.500.desc=服务器遇到一个意外的情况,阻止它完成请求。
 http.502.desc=服务器在充当网关或代理时, 在尝试完成请求时, 从它访问的入站服务器收到无效响应。
 http.503.desc=由于临时过载或计划维护,服务器当前无法处理请求,这可能会在一些延迟后得到缓解。
+http.504.desc=服务器在充当网关或代理时,没有从上游服务器接收到完成请求所需访问的及时响应。
+http.504.reason=网关超时
 http.505.reason=HTTP 版本不支持
+http.506.desc=服务器内部配置错误:选取的变体资源配置为自身去处理透明的内容协商,因此在协商进程中不是一个合适的终点。
+http.507.desc=无法对资源执行该方法,因为服务器无法存储成功完成请求所需的表示。
 http.507.reason=存储空间.不足
 http.510.reason=没有.扩展
 http.511.desc=客户端需要进行身份验证才能获得网络访问权限。
@@ -77,3 +90,5 @@ requestFilterValve.configInvalid=为Remote [Addr | Host]阀门提供了一个或
 requestFilterValve.deny=根据[{1}]配置拒绝[{0}]的请求
 
 sslValve.invalidProvider=与此{[0}]请求关联的连接器上指定的SSL提供程序无效。 无法处理证书数据。
+
+stuckThreadDetectionValve.notifyStuckThreadDetected=线程[{0}](id=[{6}])已处于活动状态[{1}]毫秒(自[{2}]起),以便为[{4}]提供相同的请求,并且可能被卡住(此StuckThreadDetectionValve的配置阈值为[{5}]秒)。总共有{3}个线程受此阀监视,可能被卡住。
diff --git a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/valves/rewrite/LocalStrings_zh_CN.properties
similarity index 93%
copy from java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
copy to java/org/apache/catalina/valves/rewrite/LocalStrings_zh_CN.properties
index 519a3cd..bbd2934 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/valves/rewrite/LocalStrings_zh_CN.properties
@@ -13,5 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-modules.readDescriptorsError=读取描述文件出错
-
+rewriteValve.readError=读取配置时发生异常
diff --git 
a/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
index 792ac78..85ba73f 100644
--- a/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
@@ -13,6 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+abstractArchiveResourceSet.setReadOnlyFalse=基于存档的WebResourceSets 
如基于jar的WebResourceSets 硬编码为只读,并且不能配置为读写
+
 cache.addFail=无法将位于[{0}]的资源添加到Web应用程序[{1}]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 
请考虑增加缓存的最大空间。
 
 dirResourceSet.notDirectory=基本和内部路径[{0}] {1} [{2}]指定的目录不存在。
@@ -20,9 +22,14 @@ dirResourceSet.notDirectory=基本和内部路径[{0}] {1} [{2}]指定的目录
 extractingRoot.jarFailed=解压JAR文件[{0}]失败
 extractingRoot.targetFailed=无法为提取的 JAR 文件创建目录 [{0}]
 
+fileResource.getCanonicalPathFail=不能判断资源的标准路径[{0}]
 fileResource.getUrlFail=不能决定一个url 为资源[{0}]
 
+jarResource.getInputStreamFail=无法获取JAR[{1}]中的资源文件[{0}]的一个InputStream
+
 standardRoot.checkStateNotStarted=如果当前未启动资源,则可能无法访问这些资源
 standardRoot.createUnknownType=无法为未知类型[{0}]创建WebResourceSet。
+standardRoot.invalidPathNormal=资源路径[{0}]已规范化为无效的[{1}]
+standardRoot.lockedFile=Web应用程序[{0}]无法关闭通过以下堆栈跟踪打开的文件[{1}]
 standardRoot.noContext=尚未为WebResourceRoot配置上下文
 standardRoot.startInvalidMain=指定的主资源集 [{0}] 无效
diff --git a/java/org/apache/coyote/LocalStrings_zh_CN.properties 
b/java/org/apache/coyote/LocalStrings_zh_CN.properties
index 816027c..06c4902 100644
--- a/java/org/apache/coyote/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/LocalStrings_zh_CN.properties
@@ -15,6 +15,8 @@
 
 abstractConnectionHandler.ioexception.debug=正常的 IOException,忽略
 abstractConnectionHandler.processorPop=从缓存中弹出的处理器[{0}]
+abstractConnectionHandler.socketexception.debug=(:SocketException是正常的,忽略
+abstractConnectionHandler.upgradeCreate=为套接字包装程序[{1}]创建了升级处理器[{0}]
 
 abstractProcessor.fallToDebug=注意:更多的请求解析错误将以DEBUG级别日志进行记录。
 abstractProcessor.hostInvalid=[{0}] 是无效主机
@@ -24,6 +26,7 @@ abstractProcessor.socket.ssl=获取SSL属性异常
 abstractProtocolHandler.destroy=正在摧毁协议处理器 [{0}]
 abstractProtocolHandler.init=初始化协议处理器 [{0}]
 abstractProtocolHandler.start=开始协议处理句柄[{0}]
+abstractProtocolHandler.stop=正在停止ProtocolHandler [{0}]
 
 asyncStateMachine.invalidAsyncState=调用[{0}]对于具有异步状态[{1}]的请求无效
 
diff --git a/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties 
b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
index d69f014..b15b9fb 100644
--- a/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
@@ -16,6 +16,7 @@
 ajpmessage.null=不能赋空值
 ajpmessage.overflow=在缓冲区[{1}]位置添加[{0}]字节时发生溢出错误
 
+ajpprocessor.certs.fail=):证书转换失败
 ajpprocessor.header.error=头部信息解析失败
 
 ajpprotocol.noUpgrade=AJP 不支持升级。[{0}] 的升级协议配置被忽略。
diff --git a/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties 
b/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
index 74776f4..53cc01f 100644
--- a/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
@@ -13,9 +13,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+abstractHttp11Protocol.alpnConfigured=[{0}]连接器已配置为支持通过ALPN与[{1}]协商。
+
 http11processor.header.parse=解析 HTTP 请求 header 错误
 http11processor.request.inconsistentHosts=请求行中指定的主机与主机头不一致。
+http11processor.request.invalidScheme=HTTP请求包含具有无效方案的绝对URL
 http11processor.request.invalidUserInfo=HTTP 请求包含带有无效 userinfo 的绝对 URI
+http11processor.request.noHostHeader=http/1.1请求没有提供主机头
 http11processor.request.prepare=准备请求时出错
 http11processor.request.process=错误的处理请求
 http11processor.response.finish=错误完成相应
@@ -30,4 +34,5 @@ iib.parseheaders.ise.error=意外状态:已解析标头。 缓冲池不回收
 iib.readtimeout=从套接字读取数据超时
 
 iob.failedwrite=写入.失败
+iob.failedwrite.ack=无法发送HTTP 100继续响应
 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 39528a8..b9ecd33 100644
--- a/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties
@@ -18,6 +18,7 @@ chunkedInputFilter.eosTrailer=读取 trailer 头时出现意外的流结束
 chunkedInputFilter.error=没有数据可用由于先前的错误
 chunkedInputFilter.invalidCrlfCRCR=无效的结束的行序列(CRCR)
 chunkedInputFilter.invalidCrlfNoCR=无效的行尾结束符序列(LF前缺少CR)
+chunkedInputFilter.invalidCrlfNoData=无效的行尾序列(没有可读取的数据)
 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 c87178b..c8e935c 100644
--- a/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
@@ -14,9 +14,13 @@
 # limitations under the License.
 
 upgrade.sis.isFinished.ise=当 ServletInputStream 不处于非阻塞模式时调用 isFinished() 
是非法的(即必须首先调用 setReadListener())
+upgrade.sis.onErrorFail=对注册的readlistener的错误处理触发了这个进一步的错误,该错误被吞入
 upgrade.sis.read.closed=InputStream 已被关闭
+upgrade.sis.read.ise=在非阻塞模式下调用任何read()方法而不首先通过调用isready()检查是否有可用的数据是非法的
 upgrade.sis.readListener.set=在同一个upgraded连接上调用多次setReadListener()函数是非法的
+upgrade.sos.onErrorFail=对注册的WriteListener 的错误处理触发了这个进一步的错误,该错误被吞入
 upgrade.sos.write.closed=输出流已被关闭
+upgrade.sos.write.ise=在非阻塞模式下调用任何写()方法都是非法的,而无需首先检查是否有可用的空间,只需调用isreadi()
 upgrade.sos.writeListener.null=对setWriteListener()传递null是非法的
 
 upgradeProcessor.unexpectedState=因传入套接字状态为[{0}]而意外关闭升级连接
diff --git a/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties 
b/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties
index 1ea4638..b2a7ff1 100644
--- a/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties
+++ b/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties
@@ -13,11 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+abstractStream.windowSizeDec=连接[{0}],流[{1}],将流控制窗口减少[{2}]到[{3}]
 abstractStream.windowSizeInc=连接 [{0}], 流 [{1}], 增加流量控制窗口[{2}] 到 [{3}]
+abstractStream.windowSizeTooBig=连接[{0}],流[{1}],窗口大小从[{2}]增加到[{3}],超过了允许的最大值
 
 connectionPrefaceParser.mismatch=请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符。
 
 connectionSettings.debug=连接[{0}],参数类型[{1}]设置为[{2}]
+connectionSettings.enablePushInvalid=连接[{0}],请求的enable push[{1}]值不是允许的值之一(零或一)
 connectionSettings.headerTableSizeLimit=连接 [{0}],尝试将 header 表大小设置为 [{1}],但限制为 
16k
 connectionSettings.maxFrameSizeInvalid=连接[{0}],请求的最大帧大小[{1}]在[{2}]到[{3}]的允许范围之外
 connectionSettings.unknown=连接[{0}],标识为[{1}]和值为[{2}]的未知设置被忽略
@@ -25,18 +28,24 @@ connectionSettings.unknown=连接[{0}],标识为[{1}]和值为[{2}]的未知
 frameType.checkPayloadSize=对帧类型[{1}]来说,负载[{0}]是无效的
 frameType.checkStream=无效的帧类型[{0}]
 
+hpack.integerEncodedOverTooManyOctets=HPACK 可变长度整数编码过多的八位字节,最大值为[{0}]
 hpack.invalidCharacter=代码点[{1}]处的Unicode字符[{0}]无法编码,因为它超出了允许的0到255范围。
 
 hpackdecoder.tableSizeUpdateNotAtStart=任何表大小的更新都必须在头块开始时发送。
 
+http2Parser.headerLimitCount=连接[{0}],流[{1}],标题太多
 http2Parser.headerLimitSize=连接[{0}],Stream[{1}],总的头信息尺寸太大
 http2Parser.headers.wrongStream=连接[{0}], 头部信息对于流[{1}]正在进行但对于流[{2}]的一帧已经收到了。
 http2Parser.nonZeroPadding=连接[{0}],流[{1}],非零填充
 http2Parser.preface.invalid=出现无效连接
+http2Parser.processFrame.unexpectedType=需要帧类型[{0}],但收到帧类型[{1}]
 http2Parser.processFrameData.window=连接[{0}],客户端发送的数据比流窗口允许的多
 http2Parser.processFrameHeaders.decodingDataLeft=数据在HPACK解码后依然保留 - 它本应该被消费掉
+http2Parser.processFrameHeaders.payload=连接:[{0}],流:[{1}],正在处理[{1}]大小的头文件负载
+http2Parser.processFramePriority.invalidParent=连接[{0}],流[{1}],流可能不依赖于自身
 http2Parser.processFramePushPromise=请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符\n\
 \n
+http2Parser.swallow.debug=连接:[{0}],流:[{1}],吞下[{2}]字节
 
 stream.closed=连接[{0}],流[{1}],一旦关闭就无法写入流
 stream.header.debug=连接[{0}],流[{1}],HTTP标头[{2}],值[{3}]
@@ -46,13 +55,19 @@ stream.inputBuffer.readTimeout=等待从客户端读取数据超时
 stream.inputBuffer.reset=流.重置
 stream.inputBuffer.signal=读线程在等待时,数据被添加到inBuffer中。 发信号通知该线程继续
 stream.reprioritisation.debug=连接[{0}],流[{1}],独占[{2}],父[{3}],权重[{4}]
+stream.reset.fail=连接[{0}],流[{1}],重置流失败
 stream.writeTimeout=等待客户端增加流控制窗口以允许写入流数据的超时
 
 streamProcessor.cancel=连接到[{0}],Stream [{1}],
 streamProcessor.error.connection=连接[{0}],Stream[{0}],处理中发生错误,对连接来说是致命的。
 streamProcessor.service.error=请求处理期间出错
 
+streamStateMachine.debug.change=(:连接[{0}],流[{1}],状态从[{2}]更改为[{3}]
+
 upgradeHandler.allocate.left=连接[{0}],流[{1}],[{2}]字节未分配 - 尝试分配给子项
+upgradeHandler.allocate.recipient=(:连接[{0}],流[{1}],潜在接收者[{2}],权重为[{3}]
+upgradeHandler.goaway.debug=连接[{0}],离开,最后的流[{1}],错误码[{2}],调试数据[{3}]
+upgradeHandler.init=连接[{0}],状态[{1}]
 upgradeHandler.ioerror=连接[{0}]
 upgradeHandler.pingFailed=对客户端发送ping 链接失败.
 upgradeHandler.prefaceReceived=连接[{0}],从客户端收到连接准备。
@@ -65,8 +80,10 @@ upgradeHandler.stream.even=\ 请求了新的远程流ID[{0}],但所有远程
 \n
 upgradeHandler.tooMuchOverhead=连接[{0}],开销过大,连接将关闭
 upgradeHandler.upgrade=连接[{0}], HTTP/1.1 升级到流[1]
+upgradeHandler.upgrade.fail=):连接[{0}],http/1.1升级失败
 upgradeHandler.upgradeDispatch.entry=条目,连接[{0}],SocketStatus [{1}]
 upgradeHandler.upgradeDispatch.exit=退出,连接[{0}], SocketState[{1}]
+upgradeHandler.windowSizeTooBig=连接[{0}],流[{1}],窗口太大
 upgradeHandler.writeBody=连接 [{0}],数据流[{1}], 数据长度[{2}]
 upgradeHandler.writeHeaders=连接 [{0}],流 [{1}]
 
diff --git a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties 
b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
index fbecd9d..47272c1 100644
--- a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
@@ -16,8 +16,11 @@
 jasper.error.emptybodycontent.nonempty=根据 TLD,[{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.deferredmix=不能在同一属性值中同时使用 ${} 和 #{} EL 表达式
+jsp.error.attribute.duplicate=属性限定名在元素中必须是唯一的
 jsp.error.attribute.noequal=期望的符号是等号
 jsp.error.attribute.noescape=属性值[{0}]引用[{1}],在值内使用时必须被转义。
 jsp.error.attribute.nowhitespace=JSP 规范要求一个属性名字前有空格
@@ -26,10 +29,13 @@ jsp.error.bad_attribute=属性[{0}]无效为tag[{1}] 通过TLD
 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.compiler=没有可用的Java编译器
+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.deferredvaluetypewithoutdeferredvalue=如果“deferredValue”的值不是“true”的话,不能指定一个值类型
 jsp.error.duplicate.name.jspattribute=标准或自定义操作中指定的属性[{0}]也显示为随附的jsp:属性中name属性的值
 jsp.error.el.template.deferred=#{...} 不允许出现在模板文本中
 jsp.error.el_interpreter_class.instantiation=加载或实例化ELInterpreter类[{0}]失败
@@ -39,21 +45,27 @@ jsp.error.file.not.found=文.件[{0}] 未找到
 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.tagdir=标签文件目录 [{0}] 不以"/WEB-INF/tags"开头
 jsp.error.invalid.version=为标签 [{0}] 定义了无效的 JSP 版本号
 jsp.error.ise_on_clear=当缓存大小等于0时调用clear()函数是非法的
 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.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.nonemptybody=&lt;jsp:output&gt;不能有正文
 jsp.error.jsproot.version.invalid=版本号 [{0}] 
无效,版本号必须是"1.2"、"2.0"、"2.1"、"2.2"、"2.3"中的一个
 jsp.error.jsptext.badcontent='&lt;',当出现在&lt; jsp:text&gt;的主体中时,必须封装在CDATA中
 jsp.error.lastModified=无法确定文件 [{0}] 的最后修改日期
+jsp.error.library.invalid=根据库[{0}](:[{1}],jsp页无效
 jsp.error.loadclass.taghandler=无法为TAG [{1}]加载标记处理程序类[{0}]
 jsp.error.location=行.: [{0}], 列: [{1}]
 jsp.error.mandatory.attribute=[{0}]: 强制性属性 [{1}] 缺失。
 jsp.error.missing_attribute=根据TLD或标记文件,标记[{1}]必须使用属性[{0}]
+jsp.error.nested.jspattribute=jsp:attribute标准操作不能嵌套在另一个jsp:attribute标准操作中
 jsp.error.nested.jspbody=JSP:体标准动作不能嵌套在另一个jsp:body 或者 jsp:属性标准动作中
 jsp.error.nested_jsproot=嵌套的&lt;jsp:root&gt;
 jsp.error.no.scratch.dir=JSP引擎未配置scratch文件夹。\n\
@@ -65,16 +77,21 @@ jsp.error.outputfolder=无输出目录
 jsp.error.overflow=错误:JSP缓冲区溢出
 
jsp.error.page.conflict.contenttype=Page指令:非法出现多次出现的''contentType''具有不同的值(old:[{0}],new:[{1}])
 jsp.error.page.conflict.errorpage=页指令:不同值的多次出现“errorPage”的非法值(旧:[{0}],新:[{1}])
+jsp.error.page.conflict.language=页指令:多次出现不同值的“语言”(旧:[{0}],新:[{1}])
 
jsp.error.page.conflict.session=Page指令:多次出现具有不同值的''session''非法(old:[{0}],new:[{1}])
+jsp.error.page.conflict.trimdirectivewhitespaces=页面指令:违法出现多个有不同的值(旧值:[{0}],新值:[{1}])的''trimDirectiveWhitespaces''
 
jsp.error.page.invalid.deferredsyntaxallowedasliteral=页面指令:deferredSyntaxAllowedAsLiteral的值无效
 jsp.error.page.invalid.import=网页指令:无效引用
 jsp.error.page.invalid.iselignored=页面指令:忽略的无效值
 jsp.error.page.invalid.session=页面提示:session值无效
 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.invalidUse=参数jsp:params必须是jsp:plugin的直接孩子参数
 jsp.error.parse.xml=无法解析 XML 文件 [{0}]
+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.prolog_config_encoding_mismatch=XML prolog 
[{0}]中指定的页面编码与jsp-property-group [{1}]中指定的页面编码不同
@@ -86,10 +103,13 @@ jsp.error.simpletag.badbodycontent=对于一下简单的标记符,用于类[{0
 jsp.error.single.line.number=JSP文件:[{1}] 的第 [{0}] 行发生了一个错误
 jsp.error.stream.close.failed=流.关闭失败
 jsp.error.stream.closed=流.关闭
+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.trimdirectivewhitespaces=TAG指令:trimDirectiveWhitespaces的值无效
-jsp.error.tagfile.nameFrom.badAttribute=\n\
-\ 
属性指令(在行[{1}]中声明并且其name属性为[{0}],此name-from-attribute属性的值)必须是java.lang.String类型,是“required”而不是一个“rtexprvalue”。
+jsp.error.tagdirective.badbodycontent=标签指令中的无效的内容体[{0}]
+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.taglibDirective.absUriCannotBeResolved=无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[{0}]
 jsp.error.taglibDirective.missing.location='uri'和'tagdir' 属性均未指定。
@@ -99,15 +119,16 @@ 
jsp.error.teiclass.instantiation=无法加载或实例化TagExtraInfo类:[{0}]
 jsp.error.text.has_subelement=&LT; JSP:文本&GT; 不得有任何子元素
 jsp.error.tld.fn.invalid.signature=TLD中函数签名的语法无效。 标签库:[{0}],功能:[{1}]
 jsp.error.tld.mandatory.element.missing=TLD [{1}] 中强制 TLD 元素 [{0}] 不存在或为空
+jsp.error.tlv.invalid.page=):[{0}]和[{1}]的TagLibraryValidator的验证错误消息
 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.unknown_attribute_type=\n\
-\ 属性[{0}]的未知属性类型[{1}]。
+jsp.error.unknown_attribute_type=属性[{0}]的未知属性类型[{1}]。
 jsp.error.unsupported.encoding=不支持的编码:[{0}]
+jsp.error.variable.both.name=不能在变量指令的属性属性中同时指定给定的名称和名称
 jsp.error.variable.either.name=必须在变量指令中指定 name-given 或 name-from-attribute 属性
 jsp.error.xml.badStandardAction=无效、标准的action: [{0}]
 jsp.exception=在 [{1}] 行处理 [{0}] 时发生异常
@@ -115,6 +136,7 @@ jsp.info.ignoreSetting=因为 SecurityManager 被启用,忽略 [{1}] 的 
[{0}]
 jsp.message.jsp_added=增加JSP 为路径[{0}]为上下文[{1}]的队列
 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.tldCache.noTldSummary=至少有一个JAR被扫描用于TLD但尚未包含TLD。 
为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
 jsp.tldCache.tldInDir=在目录 [{0}]中找到了TLD文件。
@@ -123,6 +145,7 @@ 
jsp.warning.displaySourceFragment=警告:displaySourceFragment初始化参数
 jsp.warning.dumpSmap=警告:初始化堆内存的值无效。将使用“false”的默认值
 jsp.warning.enablePooling=警告:initParam enablePooling的值无效。将使用默认值“true”
 jsp.warning.fork=警告:initParam的值无效。将使用“true”的默认值
+jsp.warning.noJarScanner=警告:ServletContext中没有设置org.apache.tomcat.JarScaner。回到默认的JarScaner实现。
 
 jspc.delete.fail=无法删除文件 [{0}]
 jspc.error.fileDoesNotExist=文件参数 [{0}] 不存在
diff --git a/java/org/apache/naming/LocalStrings_zh_CN.properties 
b/java/org/apache/naming/LocalStrings_zh_CN.properties
index 6c651d2..7bae775 100644
--- a/java/org/apache/naming/LocalStrings_zh_CN.properties
+++ b/java/org/apache/naming/LocalStrings_zh_CN.properties
@@ -13,9 +13,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+contextBindings.noContextBoundToCL=没有绑定到此类加载器的命名上下文
+contextBindings.noContextBoundToThread=没有绑定到此线程的命名上下文
 contextBindings.unknownContext=未知.上下文名:[{0}]
 
 namingContext.contextExpected=上下文Context未绑定名称name
 namingContext.failResolvingReference=解析引用时意外异常
 
 selectorContext.methodUsingName=用[{1}]的name属性调用方法[{0}]
+selectorContext.methodUsingString=使用字符串[{1}]调用方法[{0}]
+selectorContext.noJavaUrl=必须通过java:url访问此上下文
diff --git a/java/org/apache/naming/factory/LocalStrings_zh_CN.properties 
b/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
index 6bfb29f..fb99e01 100644
--- a/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
+++ b/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
@@ -13,7 +13,12 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+factoryBase.factoryClassError=无法加载资源工厂类
+factoryBase.factoryCreationError=无法创建资源工厂实例
+factoryBase.instanceCreationError=无法创建资源实例
+
 lookupFactory.createFailed=无法创建JNDI查找工厂类实例
+lookupFactory.loadFailed=无法加载JNDI查找工厂类
 lookupFactory.typeMismatch=期望JNDI引用[{0}]的类型为[{1}],但查找[{2}]返回类型为[{3}]的对象
 
 resourceLinkFactory.nullType=引用全局资源 [{1}] 的本地资源链接 [{0}] 未指定所需的属性类型
diff --git a/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
index 9e68c80..08527ee 100644
--- a/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
@@ -16,6 +16,7 @@
 diagnostics.threadDumpTitle=打印全部线程
 diagnostics.vmInfoClassCompilation=:)class汇编
 diagnostics.vmInfoClassLoading=类加载中
+diagnostics.vmInfoGarbageCollectors=垃圾收集器[{0}]
 diagnostics.vmInfoLogger=日志记录器(Logger)信息
 diagnostics.vmInfoOs=操作系统信息
 diagnostics.vmInfoRuntime=运行时信息
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 0d7c874..3424dbb 100644
--- a/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
@@ -13,4 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+asn1Parser.lengthInvalid=无效长度 [{0}]字节报告,但是输入数据的长度是 [{1}]字节
+asn1Parser.tagMismatch=期望找到值 [{0}]但是却找到值 [{1}]
+
+hexUtils.fromHex.nonHex=输入只能由十六进制数字组成
+
 uDecoder.urlDecode.conversionError=使用编码[{1}]解码[{0}]失败
diff --git a/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties
index fb12e92..2d0583e 100644
--- a/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties
@@ -14,5 +14,7 @@
 # limitations under the License.
 
 jre9Compat.invalidModuleUri=提供的模块URI [{0}]无法转换为JarScanner要处理的URL
+jre9Compat.javaPre9=类未找到,所以假设代码运行在pre-Java 8虚拟机上
+jre9Compat.unexpected=创建对Java 9类的依赖和方法失败
 
 jreCompat.noApplicationProtocol=Java 运行时不支持 
SSLEngine.getApplicationProtocol()。要使用该功能你必须使用 Java 9。
diff --git a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/descriptor/LocalStrings_zh_CN.properties
similarity index 86%
copy from java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
copy to java/org/apache/tomcat/util/descriptor/LocalStrings_zh_CN.properties
index 519a3cd..37298fe 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/descriptor/LocalStrings_zh_CN.properties
@@ -13,5 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-modules.readDescriptorsError=读取描述文件出错
-
+digesterFactory.missingSchema=XML模型[{0}]未找到,如果XML校验功能开启了的话,这很可能终止XML校验
diff --git 
a/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties
index 267723b..bcc8e04 100644
--- a/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties
@@ -16,15 +16,25 @@
 filterDef.invalidFilterName=过滤器定义中的<filter-name> [{0}] 无效。
 
 
securityConstraint.uncoveredHttpOmittedMethod=对于URL模式[{0}]的安全性约束,将发现HTTP方法[{1}]。
+securityConstraint.uncoveredHttpOmittedMethodFix=添加url模式为[{0}]的安全约束以拒绝使用未覆盖的http方法[{1}]的访问
 
+webRuleSet.absoluteOrdering=<绝对值排序>元素在web片段xml中无效,将被忽略。
 webRuleSet.nameCount=<name>元素只能出现1次
 webRuleSet.postconstruct.duplicate=class [{0}] 有重复的 post 构造方法声明
 
+webXml.duplicateEnvEntry=重复的env-entry 名 [{0}]
 webXml.duplicateFilter=重复的过滤器名称 [{0}]
 webXml.duplicateServletMapping=名为 [{0}]和 [{1}] 
的servlet不能映射为一个url模式(url-pattern) [{2}]
 webXml.mergeConflictDisplayName=显示名称在多个片段中被定义,这些片段包含不同的值,包括位于[{1}]的[{0}]的片段。
+webXml.mergeConflictFilter=筛选器[{0}]在多个片段中定义不一致,包括位于[{2}]的名为[{1}]的片段
+webXml.mergeConflictOrder=片段相对顺序包含循环引用。这可以通过在web.xml中使用绝对排序来解决。
+webXml.mergeConflictServlet=Servlet[{0}]在多个片段中的定义不一致,包括位于[{2}]的名为[{1}]的片段
 webXml.mergeConflictSessionCookieName=会话cookie名称在多个具有不同值的片段中定义不一致,包括位于 [{1}] 
的片段 [{0}]
 
webXml.mergeConflictSessionTimeout=会话超时以不同值的多个片段不一致地定义,这些片段包括位于[{1}]的具有名称[{0}]的片段。
 webXml.mergeConflictSessionTrackingMode=会话跟踪模式在多个片段中定义不一致,包括位于[{1}]的名称为[{0}]的片段
 webXml.reservedName=使用保留名称[{0}]检测到web.xml文件。 此片段将忽略name元素。
+webXml.unrecognisedPublicId=对于web.xml文件,公共ID[{0}]不匹配任何已知的公共ID‘,因此无法识别版本。
 webXml.version.unknown=未知版本字符串 [{0}]。将使用默认版本。
+webXml.wrongFragmentName=在web.xml绝对排序标签上使用了错误的片段名[{0}]!
+
+webXmlParser.applicationPosition=出现在第 [{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 6362387..331826a 100644
--- a/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
@@ -15,12 +15,17 @@
 
 cookies.invalidCookieToken=Cookie:cookie无效。值不是令牌或引用值
 cookies.invalidSpecial=Cookies:未知特殊的Cookie
+cookies.maxCountFail=检测到超过Cookie最大允许的数量[{0}]
+
+headers.maxCountFail=检测到超过了允许设置的最大header 数[{0}]
 
 parameters.bytes=开始处理输入[{0}]
 parameters.copyFail=无法创建以调试日志记录为目的的原始参数值的副本
 parameters.decodeFail.debug=字符解码失败.参数 [{0}]和值 [{1}]被忽略
+parameters.emptyChunk=忽略空参数块
 parameters.fallToDebug=注:更多的参数错误将以DEBUG级别日志进行记录。
 parameters.maxCountFail=检测到单个请求([{0}])的最大请求参数数(GET加POST)。 超出此限制的任何参数都被忽略。 
要更改此限制,请在Connector上设置maxParameterCount属性。
 parameters.maxCountFail.fallToDebug=注意:更多的错误信息只在debug级别日志中记录
+parameters.noequal=):参数从位置[{0}]开始,到位置[{1}]结束,值为[{2}],后面没有“=”字符
 
 rfc6265CookieProcessor.invalidPath=这个cookie被指定了一个无效的路径 [{0}]
diff --git 
a/java/org/apache/tomcat/util/http/parser/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/http/parser/LocalStrings_zh_CN.properties
index 636751f..9cbb9c2 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
@@ -15,11 +15,14 @@
 
 cookie.valueNotPresent=<不存在>
 
+http.closingBracket=在非IPv6主机名中找到了右括号']'。
 http.illegalCharacterIpv4=字符[{0}]为非法的IPv4地址。
 http.illegalCharacterIpv6=字符[{0}]为非法的IPv6地址。
 http.invalidHextet=hextet无效。 hextet必须包含4个或更少的十六进制字符。
+http.invalidIpv4Location=IPv6地址在无效位置包含嵌入的IPv4地址。
 http.invalidLeadingZero=非零的IPv4字符可能不包含前导零。
 http.invalidOctet=无效字符[{0}].IPv4字符的有效范围为0~255。
+http.invalidSegmentEndState=状态[{0}]对于段的结尾无效。
 http.noClosingBracket=ipv6 地址缺失一个闭合的圆括号
 http.singleColonEnd=IPv6地址不能以单个“.”结尾。
 http.singleColonStart=一个IPv6地址也许不是以单个冒号":"开头的。
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 519a3cd..623a146 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/modeler/LocalStrings_zh_CN.properties
@@ -14,4 +14,3 @@
 # limitations under the License.
 
 modules.readDescriptorsError=读取描述文件出错
-
diff --git a/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
index 4f3c7c2..481e7b9 100644
--- a/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
@@ -13,10 +13,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-channel.nio.ssl.closing=频道处于正在关闭(closing)的状态
+channel.nio.ssl.appOutputNotEmpty=应用程序输出缓冲区仍包含数据。数据可能会丢失。
+channel.nio.ssl.closing=通道处于关闭状态
+channel.nio.ssl.eofDuringHandshake=握手期间EOF
 channel.nio.ssl.foundHttp=找到一个明文HTTP请求,它应该是一个加密的TLS连接
 channel.nio.ssl.invalidCloseState=无效的关闭状态,不会发送网络数据。
 channel.nio.ssl.notHandshaking=握手认证期间NOT_HANDSHAKING
+channel.nio.ssl.remainingDataDuringClose=网络缓冲区中的剩余数据,无法发送SSL关闭消息,套接字仍将关闭
 channel.nio.ssl.sniDefault=无法缓冲足够的数据来确定请求的SNI主机名。使用默认值
 channel.nio.ssl.sniHostName=连接[{0}]中提取的SNI主机名称是[{1}]
 channel.nio.ssl.timeoutDuringHandshake=握手期间超时。
@@ -24,11 +27,15 @@ channel.nio.ssl.unexpectedStatusDuringWrap=握手WRAP期间出现意外状态[{0
 channel.nio.ssl.unwrapFail=无法解包数据,无效状态 [{0}]
 channel.nio.ssl.unwrapFailResize=由于缓冲区太小无法解包数据,无效状态 [{0}]
 
+endpoint.alpn.negotiated=使用ALPN协商的[{0}]协议
 endpoint.apr.applyConf=正将OpenSSLConfCmd应用在SSL Context上。
 endpoint.apr.checkConf=检查配置OpenSSLConf
 endpoint.apr.errApplyConf=不能对SSL上下文应用OpenSSLConf  配置
 endpoint.apr.errMakeConf=无法创建OpenSSLConf 上下文
+endpoint.apr.failSslContextMake=无法创建SSLContext。检查AprLifecycleListener中的SSLEngine
 是否已启用,AprLifecycleListener是否已正确初始化,以及是否已指定有效的SSLProtocol
 endpoint.apr.invalidSslProtocol=为SSLProtocol属性提供了无效值[{0}]
+endpoint.apr.maxConnections.running=):APR终结点在运行时不支持MaxConnections的设置。[{0}]的现有值将继续使用。
+endpoint.apr.maxConnections.unlimited=APR终结点不支持无限连接。[{0}]的现有值将继续使用。
 endpoint.apr.pollAddInvalid=无效企图向一个轮询器中添加一个套接字[{0}]
 endpoint.apr.tooManyCertFiles=证书文件配置超过了
 endpoint.debug.channelCloseFail=关闭频道失败
@@ -39,8 +46,11 @@ endpoint.debug.unlock.localNone=无法解除 [{0}] 的接受器,因为本地
 endpoint.err.close=抓住异常试图关闭socket
 endpoint.err.unexpected=处理套接字时意外错误
 endpoint.getAttribute=[{0}] 是 [{1}]
+endpoint.init.bind=套接字绑定失败: [{0}] [{1}]
 endpoint.init.notavail=APR.不可用
 
endpoint.invalidJmxNameSslHostCert=对于SSLHostConfigCertificate关联的主机[{0}]和证书类型[{1}],无法生成有效的XML对象名称
+endpoint.jmxRegistrationFailed=未能使用名称[{0}]注册JMX对象
+endpoint.jsse.noSslContext=):找不到主机名[{0}]的SSLContext
 endpoint.nio.stopLatchAwaitInterrupted=在等待轮询器停止时,该线程被中断
 endpoint.nio.timeoutCme=处理超时异常. 这段代码已经被重复检查并且没有并发修改发现。如果你能重现这个错误,请提交一个tomcat 
bug, 提供重现步骤.
 
endpoint.noSslHostConfig=没有找到带有hostName[{0}]的SSLHostConfig元素,以匹配连接器[{1}]的默认SSLHostConfigName
@@ -64,11 +74,18 @@ endpoint.warn.noRemotePort=无法确定 socket [{0}] 的远程端口
 
 jsse.ssl3=SSLv3 已显式启用。 已知该协议是不安全。
 
+sniExtractor.clientHelloTooBig=):ClientHello 没有出现在单个TLS记录中,因此无法提取SNI信息
+
 socket.apr.closed=与该链接所关联的 socket [{0}] 被关闭
+socket.closed=与此连接关联的套接字已关闭。
 
 sslHostConfig.certificate.notype=指定了多个证书,并且至少有一个证书缺少必需的属性类型
 sslHostConfig.fileNotFound=配置文件 [{0}] 不存在
+sslHostConfig.mismatch=属性[{0}]是在名为[{1}]的SSLHostConfig 
上设置的,用于[{2}]配置语法,但SSLHostConfig 正与[{3}]配置语法一起使用
+sslHostConfig.opensslconf.null=(:忽略设置空OpenSSLConf 的尝试
+sslHostConfig.prefix_missing=协议[{0}]已添加到名为[{1}]的SSLHostConfig 
上的协议列表中。检查是否缺少一个+/-前缀。
 
 sslImplementation.cnfe=无法为类 [{0}] 创建SSLImplementation
 
 sslUtilBase.noneSupported=SSL引擎不支持指定的[{0}]:[{1}]
+sslUtilBase.skipped=某些指定的[{0}]不受SSL引擎支持,已被跳过:[{1}]
diff --git a/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
index 7b9e41e..c79e7fe 100644
--- a/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+jsse.noDefaultProtocols=无法确定sslEnabledProtocols的默认值。设置显式值以确保连接器可以启动。
 jsse.openssl.effectiveCiphers=使用的密码:[{0}]
 jsse.pemParseError=无法从 [{0}] 解析 key
 
diff --git 
a/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties
index 92e1245..89d339c 100644
--- a/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties
@@ -17,12 +17,16 @@ engine.ciphersFailure=获取密码列表失败
 engine.emptyCipherSuite=空密码套件
 engine.engineClosed=引擎已经关闭
 engine.noSession=SSL会话ID不可用
+engine.nullCipherSuite=无加密套件
 engine.openSSLError=OpenSSL 错误:[{0}] 信息: [{1}]
+engine.unsupportedProtocol=不支持协议 [{0}]
 engine.writeToSSLFailed=写入SSL失败,返回:[{0}]
 
 openssl.X509FactoryError=获取X509工厂实例时出错
 openssl.addedClientCaCert=添加了客户端 CA 证书:[{0}]
+openssl.errApplyConf=无法将OpenSSLConf 应用于SSL 上下文
 openssl.errMakeConf=无法创建OpenSSLConf上下文
+openssl.keyManagerMissing=key管理器未找到
 openssl.trustManagerMissing=没有找到.信任管理者
 
 opensslconf.checkFailed=检查OpenSSLConf时失败。
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 ec2638d..9e4c257 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
@@ -15,6 +15,7 @@
 
 jarScan.classloaderFail=在多级类加载器中扫描[{0}]失败
 jarScan.classloaderJarNoScan=跳过classpath路径[{0}]下的jar包扫描。
+jarScan.classloaderJarScan=从classpath扫描JAR[{0}]
 jarScan.classloaderStart=在类加载器层次结构中扫描JAR
 jarScan.jarUrlStart=正在扫描URL [{0}] 上的JAR文件
 jarScan.webinfclassesFail=无法扫描/WEB-INF/classes
diff --git a/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
index bcb0742..59340f2 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
@@ -13,7 +13,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+asyncChannelGroup.createFail=无法为WebSocket客户端创建专用的异步通道组,这是防止复杂类加载程序环境(如JavaEE容器)中内存泄漏所必需的
+
+asyncChannelWrapperSecure.check.notOk=TLS握手返回意外状态[{0}]
+asyncChannelWrapperSecure.check.unwrap=在读取期间将字节写入输出
+asyncChannelWrapperSecure.closeFail=干净的关闭通道失败
 asyncChannelWrapperSecure.eof=意外的流结尾
+asyncChannelWrapperSecure.statusUnwrap=unwrap()操作后SSLEngineResult 的意外状态
+
+backgroundProcessManager.processFailed=后台进程失败
 
 caseInsensitiveKeyMap.nullKey=不允许 Key 是 Null
 
@@ -24,13 +32,18 @@ perMessageDeflate.invalidWindowSize=为[{0}]指定了[{1}]大小的无效窗口
 util.notToken=一个非法的扩展参数被指定为名称[{0}]和值[{0}]
 util.unknownDecoderType=无法识别该解码器类型[{0}]
 
+wsFrame.alreadySuspended=消息接收已挂起。
 wsFrame.byteToLongFail=提供了太多字节([{0}]),转换成一个长的字节。
 wsFrame.closed=在一个关闭的控制帧后受到了一个新的帧.
 wsFrame.controlFragmented=接收到分段的控制帧,但控制帧可能不被分割。
 wsFrame.controlNoFin=发送一个没有设置的控制帧。控制帧不允许使用连续帧。
+wsFrame.controlPayloadTooBig=以大于125字节的最大允许值的大小[{0}]的有效载荷发送控制帧。
+wsFrame.illegalReadState=意外的读状态[{0}]
+wsFrame.invalidUtf8Close=接收到一个WebSocket关闭帧,其关闭原因包含无效的UTF-8字节序列
 wsFrame.notMasked=客户端帧未被屏蔽,但必须屏蔽所有客户端帧
 wsFrame.partialHeaderComplete=接收到WebSocket帧. fin [{0}], rsv [{1}], OpCode 
[{2}], payload 长度 [{3}]
 wsFrame.sessionClosed=无法处理客户端数据,因为会话已被关闭
+wsFrame.textMessageTooBig=解码的文本消息对于输出缓冲区太大,终结点不支持部分消息
 wsFrame.wrongRsv=对于具有opCode [{1}]的消息,客户端帧将保留位设置为[{0}],此端点不支持
 
 wsHandshakeRequest.invalidUri=字符串  [{0}] 不能用来组成一个有效的URI
@@ -51,8 +64,12 @@ wsSession.created=创建WebSocket session [{0}]。
 wsSession.doClose=关闭 WebSocket session [{1}]
 wsSession.duplicateHandlerText=已配置文本消息处理器
 wsSession.instanceNew=endpoint 实例注册失败
+wsSession.unknownHandler=无法添加消息处理程序[{0}],因为它是针对无法识别的类型[{1}]
 
 wsWebSocketContainer.asynchronousSocketChannelFail=无法打开与服务器的连接
+wsWebSocketContainer.failedAuthentication=无法处理http响应代码[{0}]。服务器不接受身份验证头。
+wsWebSocketContainer.invalidExtensionParameters=服务器用客户端无法支持的扩展参数响应
+wsWebSocketContainer.missingAnnotation=无法使用POJO类[{0}],因为它未添加注解@ClientEndpoint
 wsWebSocketContainer.missingLocationHeader=处理HTTP响应码 [{0}] 失败。响应头缺少Location
 wsWebSocketContainer.missingWWWAuthenticateHeader=无法处理HTTP响应代码[{0}]。 
缺少WWW-Authenticate标头作为响应
 wsWebSocketContainer.pathNoHost=URI中未指定主机
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 2fcfc60..b36519e 100644
--- a/java/org/apache/tomcat/websocket/pojo/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/pojo/LocalStrings_zh_CN.properties
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+pojoEndpointBase.onCloseFail=):无法为类型为[{0}]的POJO调用POJO端点的onClose方法
 pojoEndpointBase.onOpenFail=无法为类型为[{0}]的POJO调用POJO端点的onOpen方法
 
 pojoEndpointServer.getPojoInstanceFail=创建类型为 [{0}] 的 POJO 实例失败
@@ -23,6 +24,11 @@ pojoMethodMapping.duplicateAnnotation=类[{1}]上存在的重复注释[{0}]
 pojoMethodMapping.duplicateLastParam=用OnMessage注释的类[{1}]的方法[{0}]上存在多个布尔参数(最后的)
 
pojoMethodMapping.duplicatePongMessageParam=使用OnMessage注释的类[{1}]的方法[{0}]上存在多个PongMessage参数
 pojoMethodMapping.invalidDecoder=这个特定类型的解码器[{0}]无法被实例化
+pojoMethodMapping.methodNotPublic=注解方法[{0}]不为公共方法
 pojoMethodMapping.noDecoder=在用onMessage注释的类[{1}]的方法[{0}]上找不到消息参数的解码器。
+pojoMethodMapping.onErrorNoThrowable=):类[{1}]的方法[{0}]上不存在用OnError注释的抛出参数
+pojoMethodMapping.paramWithoutAnnotation=在类[{2}]的方法[{1}]上找到了类型为[{0}]的参数,该方法没有@PathParam
 注释
+pojoMethodMapping.partialObject=用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 2514775..e67db5f 100644
--- a/java/org/apache/tomcat/websocket/server/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/server/LocalStrings_zh_CN.properties
@@ -14,6 +14,8 @@
 # limitations under the License.
 
 serverContainer.configuratorFail=无法为[{1}]类型的POJO创建类型[{0}]的配置程序
+serverContainer.duplicatePaths=多个端点可能不能发不到同一个路径[{0}]:已经存在的端点[{1}]和新的端点[{2}]
+serverContainer.encoderFail=无法创建[{0}]类型的编码器
 
serverContainer.failedDeployment=由于以前的部署失败,不允许将WebSocket终结点部署到主机[{1}]中路径为[{0}]的Web应用程序
 serverContainer.servletContextMissing=没有指定ServletContext
 
@@ -23,3 +25,7 @@ uriTemplate.invalidPath=路径 [{0}] 无效。
 
 wsFrameServer.bytesRead=将[{0}]个字节读入输入缓冲区,准备进行处理
 wsFrameServer.onDataAvailable=进入方法
+
+wsHttpUpgradeHandler.noPreInit=在容器调用init()之前,必须调用preinit()方法来配置WebSocket 
HttpUpgradeHandler。通常,这意味着创建WsHttpUpgradeHandler 实例的servlet也应该调用preinit()
+
+wsRemoteEndpointServer.closeFailed=无法完全关闭ServletOutputStream 连接
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 7e20e16..aa2ac78 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -155,6 +155,12 @@
         Expand the coverage and quality of the Korean translations provided
         with Apache Tomcat. (woonsan)
       </add>
+      <add>
+        Expand the coverage and quality of the Simplified Chinese translations
+        provided with Apache Tomcat. Contributions provided by rpo130, Mason
+        Shen, leeyazhou, winsonzhao, qingshi huang, Lay and Shucheng Hou.
+        (markt)
+      </add>
     </changelog>
   </subsection>
 </section>
diff --git a/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties 
b/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties
index 694b3fd..a6cf2aa 100644
--- a/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties
+++ b/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties
@@ -25,6 +25,7 @@ requestheader.title=请求 Header 示例
 requestinfo.label.method=方法:
 requestinfo.label.protocol=协议:
 requestinfo.label.remoteaddr=远程地址:
+requestinfo.label.requesturi=请求 URI (:
 requestinfo.title=请求信息范例
 
 requestparams.firstname=姓:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to