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 be0d580eee72aed615171ae7068be2b168d9bdd5
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Aug 15 14:54:59 2019 +0100

    Add Simplified Chinese translations
---
 build.xml                                          |  10 ++
 java/javax/el/LocalStrings_zh_CN.properties        |  50 ++++++++
 java/javax/servlet/LocalStrings_zh_CN.properties   |  22 ++++
 .../servlet/http/LocalStrings_zh_CN.properties     |  23 ++++
 .../authenticator/LocalStrings_zh_CN.properties    |  45 +++++++
 .../jaspic/LocalStrings_zh_CN.properties           |  25 ++++
 .../connector/LocalStrings_zh_CN.properties        |  41 +++++++
 .../catalina/core/LocalStrings_zh_CN.properties    | 103 ++++++++++++++++
 .../catalina/deploy/LocalStrings_zh_CN.properties  |  20 +++
 .../catalina/filters/LocalStrings_zh_CN.properties |  35 ++++++
 .../ha/authenticator/LocalStrings_zh_CN.properties |  16 +++
 .../ha/deploy/LocalStrings_zh_CN.properties        |  28 +++++
 .../ha/session/LocalStrings_zh_CN.properties       |  37 ++++++
 .../catalina/ha/tcp/LocalStrings_zh_CN.properties  |  23 ++++
 .../catalina/loader/LocalStrings_zh_CN.properties  |  32 +++++
 .../catalina/manager/LocalStrings_zh_CN.properties |  77 ++++++++++++
 .../manager/host/LocalStrings_zh_CN.properties     |  57 +++++++++
 .../catalina/mapper/LocalStrings_zh_CN.properties  |  20 +++
 .../catalina/realm/LocalStrings_zh_CN.properties   |  49 ++++++++
 .../security/LocalStrings_zh_CN.properties         |  16 +++
 .../servlets/LocalStrings_zh_CN.properties         |  28 +++++
 .../catalina/session/LocalStrings_zh_CN.properties |  42 +++++++
 .../catalina/startup/LocalStrings_zh_CN.properties |  72 +++++++++++
 .../tribes/group/LocalStrings_zh_CN.properties     |  18 +++
 .../interceptors/LocalStrings_zh_CN.properties     |  53 ++++++++
 .../tribes/io/LocalStrings_zh_CN.properties        |  23 ++++
 .../tribes/jmx/LocalStrings_zh_CN.properties       |  17 +++
 .../membership/LocalStrings_zh_CN.properties       |  28 +++++
 .../tribes/tipis/LocalStrings_zh_CN.properties     |  27 +++++
 .../tribes/transport/LocalStrings_zh_CN.properties |  20 +++
 .../transport/bio/LocalStrings_zh_CN.properties    |  26 ++++
 .../transport/nio/LocalStrings_zh_CN.properties    |  33 +++++
 .../tribes/util/LocalStrings_zh_CN.properties      |  18 +++
 .../catalina/users/LocalStrings_zh_CN.properties   |  24 ++++
 .../catalina/util/LocalStrings_zh_CN.properties    |  29 +++++
 .../catalina/valves/LocalStrings_zh_CN.properties  |  60 +++++++++
 .../webresources/LocalStrings_zh_CN.properties     |  27 +++++
 .../apache/coyote/LocalStrings_zh_CN.properties    |  31 +++++
 .../coyote/ajp/LocalStrings_zh_CN.properties       |  22 ++++
 .../coyote/http11/LocalStrings_zh_CN.properties    |  32 +++++
 .../http11/filters/LocalStrings_zh_CN.properties   |  24 ++++
 .../http11/upgrade/LocalStrings_zh_CN.properties   |  22 ++++
 .../coyote/http2/LocalStrings_zh_CN.properties     |  55 +++++++++
 .../jasper/resources/LocalStrings_zh_CN.properties | 135 +++++++++++++++++++++
 .../apache/naming/LocalStrings_zh_CN.properties    |  21 ++++
 .../naming/factory/LocalStrings_zh_CN.properties   |  16 +++
 .../dbcp/dbcp2/LocalStrings_zh_CN.properties       |  20 +++
 .../tomcat/util/LocalStrings_zh_CN.properties      |  23 ++++
 .../tomcat/util/buf/LocalStrings_zh_CN.properties  |  16 +++
 .../util/compat/LocalStrings_zh_CN.properties      |  16 +++
 .../descriptor/web/LocalStrings_zh_CN.properties   |  27 +++++
 .../util/digester/LocalStrings_zh_CN.properties    |  16 +++
 .../tomcat/util/http/LocalStrings_zh_CN.properties |  24 ++++
 .../util/http/parser/LocalStrings_zh_CN.properties |  27 +++++
 .../tomcat/util/net/LocalStrings_zh_CN.properties  |  67 ++++++++++
 .../util/net/jsse/LocalStrings_zh_CN.properties    |  22 ++++
 .../util/net/openssl/LocalStrings_zh_CN.properties |  34 ++++++
 .../tomcat/util/scan/LocalStrings_zh_CN.properties |  22 ++++
 .../tomcat/websocket/LocalStrings_zh_CN.properties |  56 +++++++++
 .../websocket/pojo/LocalStrings_zh_CN.properties   |  25 ++++
 .../websocket/server/LocalStrings_zh_CN.properties |  25 ++++
 res/maven/mvn-pub.xml                              |   2 +-
 res/maven/tomcat-i18n-zh-CN.pom                    |  35 ++++++
 webapps/docs/changelog.xml                         |   4 +
 .../WEB-INF/classes/LocalStrings_zh_CN.properties  |  38 ++++++
 65 files changed, 2130 insertions(+), 1 deletion(-)

diff --git a/build.xml b/build.xml
index 863f2be..aeeb2b0 100644
--- a/build.xml
+++ b/build.xml
@@ -909,6 +909,16 @@
       <zipfileset file="${tomcat.manifests}/default.license"
         fullpath="META-INF/LICENSE" />
     </jar>
+    <jar jarfile="${tomcat.build}/lib/tomcat-i18n-zh-CN.jar"
+      manifest="${tomcat.manifests}/default.manifest">
+      <fileset dir="${tomcat.classes}">
+        <include name="**/LocalStrings_zh_CN.properties" />
+      </fileset>
+      <zipfileset file="${tomcat.manifests}/default.notice"
+        fullpath="META-INF/NOTICE" />
+      <zipfileset file="${tomcat.manifests}/default.license"
+        fullpath="META-INF/LICENSE" />
+    </jar>
 
   </target>
 
diff --git a/java/javax/el/LocalStrings_zh_CN.properties 
b/java/javax/el/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..99ab703
--- /dev/null
+++ b/java/javax/el/LocalStrings_zh_CN.properties
@@ -0,0 +1,50 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+beanNameELResolver.beanReadOnly=名称为[{0}]的bean只读
+
+elProcessor.defineFunctionInvalidClass=类[{0}]不是公共的
+elProcessor.defineFunctionInvalidMethod=类[{1}]的方法[{0}]不是公共静态方法
+elProcessor.defineFunctionInvalidParameterList=类[{2}]的方法[{1}]的参数列表[{0}]无效
+elProcessor.defineFunctionInvalidParameterTypeName=类[{2}]的方法[{1}]的参数类型[{0}]无效
+elProcessor.defineFunctionNoMethod=无法找到类[{1}]的公共静态方法[{0}]
+elProcessor.defineFunctionNullParams=一个或多个输入参数为null
+
+expressionFactory.cannotCreate=无法创建类型为[{0}]的表达式工厂
+expressionFactory.readFailed=无法读取[{0}]
+
+importHandler.ambiguousImport=无法导入类[{0}],因为它与已导入的[{1}]冲突
+importHandler.ambiguousStaticImport=无法处理静态导入[{0}],因为它与已导入的[{1}]冲突
+importHandler.classNotFound=无法导入类[{0}],因为无法找到它
+importHandler.invalidClass=类[{0}]必须是公共的和非抽象的,并且不能是接口
+importHandler.invalidClassNameForStatic=为 static import [{1}] 指定的类 [{0}] 不可用
+importHandler.invalidStaticName=导入 [{0}] 的静态方法或字段名称必须包含类
+importHandler.staticNotFound=导入[{2}]的类[{1}]中找不到静态导入[{0}]
+
+lambdaExpression.tooFewArgs=仅为至少需要[{1}]个参数的lambda表达式提供了[{0}]个参数
+
+objectNotAssignable=无法将类型为[{0}]的对象添加到[{1}]类型的对象数组中
+propertyNotFound=类型[{0}]上找不到属性[{1}]
+propertyNotReadable=属性[{1}]在类型[{0}]上不可读
+propertyNotWritable=属性[{1}]在类型[{0}]上不可写
+propertyReadError=在类型[{0}]上读取[{1}]时出错
+propertyWriteError=在类型[{0}]上写入[{1}]时出错
+
+staticFieldELResolver.methodNotFound=在类[{1}]上找不到名为[{0}]的匹配的公共静态方法
+staticFieldELResolver.notFound=在类[{1}]上找不到名为[{0}]的公共静态字段
+staticFieldELResolver.notWriteable=不允许写入静态字段(当前情况中为类[{1}]上的字段[{0}])
+
+util.method.ambiguous=无法找到明确的方法:{0}.{1}({2})
+util.method.notfound=找不到方法:{0}.{1}({2})
diff --git a/java/javax/servlet/LocalStrings_zh_CN.properties 
b/java/javax/servlet/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..7fc4358
--- /dev/null
+++ b/java/javax/servlet/LocalStrings_zh_CN.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+err.not_iso8859_1=不是ISO 8859-1字符:[{0}]
+
+httpConstraintElement.invalidRolesDeny=使用 DENY 时可能未指定角色
+
+httpMethodConstraintElement.invalidMethod=无效的HTTP.方法
+
+value.true=true
diff --git a/java/javax/servlet/http/LocalStrings_zh_CN.properties 
b/java/javax/servlet/http/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..c471410
--- /dev/null
+++ b/java/javax/servlet/http/LocalStrings_zh_CN.properties
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+err.cookie_name_blank=Cookie名称不能为null或零长度
+err.io.short_read=短.读
+
+http.method_delete_not_supported=此URL不支持Http方法DELETE
+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
diff --git 
a/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..e4d7a05
--- /dev/null
+++ b/java/org/apache/catalina/authenticator/LocalStrings_zh_CN.properties
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+authenticator.certificates=此请求中没有客户端证书链
+authenticator.changeSessionId=在身份验证时, 会话 ID 从 [{0} 更改为 [{1}]
+authenticator.check.found=已通过身份验证 [{0}]
+authenticator.check.sso=未经过身份验证但找到了SSO会话ID [{0}]。尝试重新验证。
+authenticator.formlogin=对表单登录页的直接引用无效
+authenticator.jaspicCleanSubjectFail=清除 JASPIC 主题失败
+authenticator.jaspicSecureResponseFail=在JASPIC处理期间无法保证响应
+authenticator.jaspicServerAuthContextFail=失败的获取一个JASPIC  ServerAuthContext 实例
+authenticator.loginFail=登录失败
+authenticator.manager=初始化信任管理器异常
+authenticator.noAuthHeader=客户端未发送授权请求头
+authenticator.notContext=配置错误:必须被附属于一个上下文
+authenticator.requestBodyTooBig=请求正文太大,无法在身份验证过程中进行缓存
+authenticator.sessionExpired=已超出登录过程所允许的时间。 
如果您希望继续,则必须单击两次后退并重新单击您请求的链接或先关闭然后重新打开浏览器
+authenticator.tomcatPrincipalLogoutFail=使用TomcatPrincipal实例注销失败
+authenticator.unauthorized=无法使用提供的凭据进行身份验证
+
+basicAuthenticator.invalidCharset=只允许值为null、空字符串或UTF-8
+
+digestAuthenticator.cacheRemove=已从客户端 nonce 
缓存中删除有效条目,以便为新条目腾出空间。重播攻击现在是可能的。为防止重播攻击的可能性,请降低nonceValidity或增加nonceCacheSize。此类型的进一步警告将被抑制5分钟。
+
+singleSignOn.debug.cookieCheck=SSO检查SSO cookie
+singleSignOn.debug.cookieNotFound=SSO没有找到SSO cookie
+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}]失效
+
+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
new file mode 100644
index 0000000..b7f1fa3
--- /dev/null
+++ 
b/java/org/apache/catalina/authenticator/jaspic/LocalStrings_zh_CN.properties
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+authConfigFactoryImpl.zeroLengthAppContext=:)应用上下文名称的长度为0是无效的
+authConfigFactoryImpl.zeroLengthMessageLayer=零长度的消息层名称是无效的
+
+jaspicAuthenticator.authenticate=通过JASPIC验证[{0}]的请求
+
+persistentProviderRegistrations.deleteFail=无法删除临时文件[{0}]
+persistentProviderRegistrations.existsDeleteFail=临时文件[{0}]已存在且无法删除
+persistentProviderRegistrations.moveFail=无法将[{0}]移至[{1}]
+
+simpleServerAuthConfig.noModules=“没有配置ServerAuthModules”
diff --git a/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..b6c2c69
--- /dev/null
+++ b/java/org/apache/catalina/connector/LocalStrings_zh_CN.properties
@@ -0,0 +1,41 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+coyoteAdapter.checkRecycled.response=遇到非回收的相应并强行回收。
+coyoteAdapter.debug=变量[{0}]的值为[{1}]。
+coyoteAdapter.parsePathParam=无法使用编码[{0}]解析地址参数,url中的该地址参数将被忽略
+
+coyoteConnector.invalidEncoding=编码 [{0}] 不能被 JRE 识别,Connector 将继续使用 [{1}]
+coyoteConnector.invalidPort=连接器不能启动,因为指定的端口 [{0}]无效
+coyoteConnector.protocolHandlerInstantiationFailed=协议处理程序实例化失败
+coyoteConnector.protocolHandlerPauseFailed=协议处理程序暂停失败
+coyoteConnector.protocolHandlerStopFailed=协议处理程序.停止失败
+
+coyoteInputStream.nbNotready=在非阻塞模式下,只有之前的读数据完成,并且isReady()方法返回true,你才可以使用 
ServletInputStream 读取数据
+
+coyoteRequest.changeSessionId=无法更改 session ID。 没有与此请求关联的 session。
+coyoteRequest.filterAsyncSupportUnknown=无法确定是否有任何过滤器不支持异步处理
+coyoteRequest.gssLifetimeFail=为用户主体 [{0}] 获取剩余生命期失败
+coyoteRequest.noMultipartConfig=由于没有提供multi-part配置,无法处理parts
+coyoteRequest.setAttribute.namenull=不能在一个空的名字上调用setAttribute
+
+coyoteResponse.encoding.invalid=JRE无法识别编码[{0}]
+coyoteResponse.sendRedirect.note=<html><body><p>重定向到<a 
href="{0}">{0}</a></p></body></html>
+
+request.asyncNotSupported=当前链的筛选器或servlet不支持异步操作。
+
+requestFacade.nullRequest=请求对象已被回收,不再与此facade关联
+
+responseFacade.nullResponse=响应对象已被回收,不再与此外观关联
diff --git a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..f4fa870
--- /dev/null
+++ b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
@@ -0,0 +1,103 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+applicationContext.addJspFile.iae=JSP 文件 [{0}] 不可用
+applicationContext.addListener.iae.cnfe=无法创建类型为 [{0}] 的实例
+applicationContext.addListener.iae.wrongType=指定的类型[{0}]不是预期的侦听器类型之一
+applicationContext.addRole.ise=上下文被初始化后,角色不能再被添加到[{0}]中
+applicationContext.attributeEvent=属性事件监听器引发的异常
+applicationContext.invalidServletName=由于servlet名称[{0}]无效,无法添加对应servlet的定义。
+applicationContext.mapping.error=映射中.的错误
+applicationContext.setAttribute.namenull=Name 不能为 null
+applicationContext.setSessionTracking.iae.ssl=为上下文 [{0}] 请求的 session 跟踪模式包括 
SSL 和至少一种其他模式。 SSL可能未配置其他模式。
+applicationContext.setSessionTracking.ise=当上下文正在运行,无法设置上下文[{0}]的会话跟踪模式
+
+applicationDispatcher.specViolation.response=原始的ServletResponse或包装后的ServletResponse未传递给RequestDispatcher,原因:违反了SRV.8.2和SRV.14.2.5.1\n\
+\n
+
+applicationFilterConfig.release=失败的销毁过滤器类型为[{1}]名称为[{0}]
+
+applicationFilterRegistration.nullInitParams=由于name和(或)value为null,无法为过滤器设置初始化参数。name为
 [{0}],value为 [{1}]
+
+applicationPushBuilder.methodNotToken=HTTP方法必须是令牌(token),但 [{0}] 包含非令牌字符
+
+aprListener.aprInitError=基于APR的本地库加载失败.错误报告为[{0}]
+aprListener.initializeFIPSSuccess=成功的进入FIPS 模式
+aprListener.initializingFIPS=初始化FIPS模式...
+aprListener.tooLateForSSLRandomSeed=无法设置 SSLRandomSeed:SSL已经初始化
+
+containerBase.backgroundProcess.unexpectedThreadDeath=后台线程[{0}]意外结束
+containerBase.nullName=容器名称不能为null
+containerBase.threadedStartFailed=子容器启动失败
+
+defaultInstanceManager.invalidInjection=方法资源注入注解无效
+defaultInstanceManager.restrictedContainerServlet=禁止访问类 [{0}]。 它是一个受限制的类(实现了 
ContainerServlet 接口)。 必须将 Web 应用程序配置为特权才能加载它
+defaultInstanceManager.restrictedListenersResource=无法找到RestrictedListener的配置文件[{0}]
+
+filterChain.filter=Filter 执行抛出一个异常
+
+naming.addEnvEntry=添加环境条目 [{0}]
+naming.addResourceEnvRef=添加资源环境引用 [{0}]
+naming.invalidEnvEntryType=环境条目[{0}]没有一个有效哦的类型
+naming.namingContextCreationFailed=创建上下文名称失败
+naming.wsdlFailed=未找到 wsdl 文件:[{0}]
+
+standardContext.backgroundProcess.resources=异常处理资源[{0}] 后台进程
+standardContext.cookieProcessor.null=不允许将上下文的CookieProcessor 设置为null
+standardContext.errorPage.required=ErrorPage不能为null
+standardContext.errorPage.warning=警告:在Servlet 2.4中,错误页位置 [{0}] 必须以"/"开头
+standardContext.filterMap.either=过滤器映射必须指定 <url-pattern> 或 <servlet-name>
+standardContext.filterMap.name=Filter mapping 指定了一个未知的 filter名称 [{0}]
+standardContext.filterMap.pattern=过滤器映射中的<url-pattern> [{0}] 无效
+standardContext.filterStart=启动过滤器异常
+standardContext.invalidWrapperClass=[{0}] 不是StandardWrapper的子类
+standardContext.isUnavailable=此应用程序目前不可用
+standardContext.listenerStart=异常将上下文初始化事件发送到类的侦听器实例.[{0}]
+standardContext.loginConfig.errorPage=表单错误页[{0}]必须以"/"开始
+standardContext.loginConfig.errorWarning=警告:Servlet 2.4中,表单错误页[{0}]必须以"/"开始
+standardContext.loginConfig.loginPage=表单登录页面 [{0}] 必须以''/''开头
+standardContext.managerFail=会话管理器无法启动
+standardContext.namingResource.init.fail=未能初始化新的命名资源
+standardContext.notStarted=名为[{0}]的上下文还没有被启动
+standardContext.parameter.duplicate=重复的上下文初始化参数[{0}]
+standardContext.predestroy.duplicate=类 [{0}] 的 @PreDestroy 方法定义重复
+standardContext.resourcesStart=启动静态资源出错
+standardContext.resourcesStop=停止静态资源时出错
+standardContext.securityConstraint.mixHttpMethod=在相同的web资源集合中不允许混用: 
<http-method> 和 <http-method-omission>
+standardContext.securityConstraint.pattern=安全约束中的<url-pattern> [{0}] 无效
+standardContext.servletFail=启动时无法加载一个或多个Servlet。 全部的详细信息可在相应的容器日志文件中找到
+standardContext.stop.asyncWaitInterrupted=等待卸载延迟毫秒以完成飞行中的异步请求时收到中断。上下文停止将继续,不会有进一步的延迟。
+standardContext.stoppingContext=异常停止的上下文使用名为[{0}]
+standardContext.unknownCookieEncoding=为setCookieEncoding(String)指定了未知编码[{0}],因此将使用默认的UTF-8。
+
+standardContextValve.acknowledgeException=以100(继续)响应确认请求失败
+
+standardEngine.notParent=引擎不能有父容器
+
+standardHost.noContext=没有配置上下文来处理此请求
+standardHost.notContext=主机的子节点必须有上下文
+
+standardServer.accept.timeout=在调用accept()方法之后,侦听shutdown命令的套接字经历了意外的超时[{0}]毫秒。 
这是bug 56684的一个例子?
+standardServer.storeConfig.notAvailable=没有将StoreConfig实现注册为名为[{0}]的MBean,因此无法保存配置。合适的MBean通常通过StoreConfigLifecycleListener注册。
+
+standardService.engine.stopFailed=失败停止关联的引擎
+
+standardWrapper.destroyInstance=servlet[{0}]实例管理销毁(destroy) 抛出异常
+standardWrapper.isUnavailable=Servlet [{0}]当前不可用。
+standardWrapper.notChild=Wrapper容器内部不允许有子容器。
+standardWrapper.notFound=Servlet [{0}] 不可用
+standardWrapper.unloading=无法分配servlet [{0}],因为它没有被加载
+
+threadLocalLeakPreventionListener.containerEvent.error=异常处理容器事件[{0}]
diff --git a/java/org/apache/catalina/deploy/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/deploy/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..471ab8b
--- /dev/null
+++ b/java/org/apache/catalina/deploy/LocalStrings_zh_CN.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+namingResources.cleanupCloseSecurity=无法检索容器[{2}]中的资源[{1}]的方法[{0}],因此没有对该资源进行清理
+namingResources.ejbLookupLink=EJB的引用[{0}]同时指定了ejb-link和lookup-name
+namingResources.envEntryLookupValue=环境参数 [{0}] 指定查询名称和值
+namingResources.mbeanDestroyFail=失败的销毁命名资源[{0}]为MBean
+namingResources.resourceTypeFail=名为[{0}]的JNDI资源是类型[{1}],但是该类型与为该资源配置的注入目标的类型不一致
diff --git a/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..13bd995
--- /dev/null
+++ b/java/org/apache/catalina/filters/LocalStrings_zh_CN.properties
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+corsFilter.invalidPreflightMaxAge=无法解析 preflightMaxAge
+corsFilter.nullRequest=HttpServletRequest 对象为空
+corsFilter.nullRequestType=CORSRequestType对象为空(null)
+corsFilter.onlyHttp=CORS不支持非HTTP请求或响应
+
+csrfPrevention.invalidRandomClass=不能使用class [{0}]创建随机源.
+
+expiresFilter.noExpirationConfiguredForContentType=没有为 content-type [{0}] 
找到过期配置
+expiresFilter.startingPointInvalid=在指令[{1}]中无效的起点(访问|现在|修改|a<秒>|m<秒>)[{0}]
+expiresFilter.unsupportedStartingPoint=不支持的起始点 [{0}]
+expiresFilter.useMatchingConfiguration=对内容类型[{2}]返回[{3}]使用[{0}]匹配[{1}]
+
+http.403=禁止访问指定资源 [{0}] 。
+
+httpHeaderSecurityFilter.clickjack.invalid=\n\
+\ 为防咔嗒顶部标题指定了无效值[{0}]
+
+remoteCidrFilter.noRemoteIp=客户端没有 IP 地址。请求被拒绝。
+
+requestFilter.deny=基于属性:[{1}],[{0}]的请求被拒绝。
diff --git 
a/java/org/apache/catalina/ha/authenticator/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/ha/authenticator/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..f4f5ddf
--- /dev/null
+++ b/java/org/apache/catalina/ha/authenticator/LocalStrings_zh_CN.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+clusterSingleSignOn.clusterLoad.fail=在集群加载时, 集群单点登录异常
diff --git a/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..4cc5075
--- /dev/null
+++ b/java/org/apache/catalina/ha/deploy/LocalStrings_zh_CN.properties
@@ -0,0 +1,28 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+farmWarDeployer.hostOnly=FarmWarDeployer 只有做为 host cluster 的子元素是才生效
+farmWarDeployer.modInstall=从 [{1}] 安装 webapp [{0}]
+farmWarDeployer.modInstallFail=无法安装 WAR 文件
+farmWarDeployer.msgIoe=无法读取服务器场部署文件消息。
+farmWarDeployer.msgRxUndeploy=从路径[{0}]接收未部署群集
+farmWarDeployer.removeFailRemote=本地从[{0}]删除失败,其他经理有app在服务!
+farmWarDeployer.removeLocalFail=无法移除WAR文件
+farmWarDeployer.servicingUndeploy=正在处理应用程序[{0}],无法从备份群集节点中删除它
+farmWarDeployer.undeployEnd=从[{0}]取消部署完成。
+farmWarDeployer.undeployLocal=不能部署本地上下文[{0}]
+
+warWatcher.cantListWatchDir=无法列出WatchDir文件夹 [{0}] 中的文件:检查该路径是否为目录且应用具有读取权限。
+warWatcher.checkingWar=检查 WAR 文件 [{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
new file mode 100644
index 0000000..3f73ff4
--- /dev/null
+++ b/java/org/apache/catalina/ha/session/LocalStrings_zh_CN.properties
@@ -0,0 +1,37 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+backupManager.noCluster=没有与此上下文关联的集群:[{0}]
+backupManager.stopped=管理者[{0}]正在停止。
+
+deltaManager.createSession.newSession=用id[{0}]创建一个扩展会话(DeltaSession),总数为 [{1}]
+deltaManager.foundMasterMember=复制主master 成员在上下文中被发现.\n
+deltaManager.loading.cnfe=加载持久化会话 [{0}] 时出现ClassNotFoundException
+deltaManager.loading.ioe=加载持久 session 时出现 IOException:[{0}]
+deltaManager.noSessionState=管理者[{0}]:没有收到[{1}]发送的会话状态,在[{2}]毫秒之后超时。
+deltaManager.receiveMessage.allSessionDataAfter=Manager [{0}]: session 状态反序列化
+deltaManager.receiveMessage.allSessionDataBegin=管理者[{0}]:接收到所有会话数据状态
+deltaManager.receiveMessage.delta.unknown=管理器[{0}]:未知会话的接收会话增量[{1}]
+deltaManager.receiveMessage.expired=管理器[{0}]: 接收到的会话 [{1}] 已过期。
+deltaManager.receiveMessage.unloadingBegin=管理器[{0}]: 开始卸载会话
+deltaManager.sendMessage.newSession=\ 管理器 [{0}] 发送新的会话 [{1}]
+deltaManager.unableSerializeSessionID=无法序列化会话ID [{0}]
+deltaManager.unloading.ioe=当保存永久回话:[{0}] 时,抛出 IOException
+
+deltaRequest.removeUnable=不能移除元素
+deltaRequest.showPrincipal=Principal [{0}] 和session [{1}]产生关联。
+deltaRequest.wrongPrincipalClass=ClusterManager仅支持GenericPrincipal。 
你的Realm使用的Principal类为[{0}]。
+
+jvmRoute.notFoundManager=没有在 [{0}] 找到Cluster Manager
diff --git a/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..1e06d3e
--- /dev/null
+++ b/java/org/apache/catalina/ha/tcp/LocalStrings_zh_CN.properties
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ReplicationValve.filter.failure=无法编译 filter = [{0}]
+ReplicationValve.session.found=上下文[{0}]:找到会话[{1}]但它不是ClusterSession。
+
+simpleTcpCluster.clustermanager.notImplement=连接器 [{0}] 不能继承 
ClusterManager,除非集群被停止。
+simpleTcpCluster.member.addFailed=无法连接到复制系统。
+simpleTcpCluster.member.disappeared=收到成员消失:[{0}]
+simpleTcpCluster.member.removeFailed=无法从复制系统中移除集群节点
+simpleTcpCluster.stopUnable=无法停止集群
diff --git a/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..9140be0
--- /dev/null
+++ b/java/org/apache/catalina/loader/LocalStrings_zh_CN.properties
@@ -0,0 +1,32 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+webappClassLoader.addTransformer=将类文件转换器[{0}]添加到Web应用程序[{1}]。
+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.clearReferencesResourceBundlesCount=从Web应用[{1}]的缓存中删除了[{0}] 
ResourceBundle引用
+webappClassLoader.clearReferencesResourceBundlesFail=无法清除Web应用程序 [{0}] 
的ResourceBundle引用
+webappClassLoader.jarsRemoved=一个或多个 JAR 已被从 Web 应用程序 [{0}] 中删除
+webappClassLoader.jdbcRemoveFailed=Web应用程序 [{0}] 的JDBC驱动程序注销失败
+webappClassLoader.readError=资源读取错误:不能加载 [{0}].
+webappClassLoader.superCloseFail=调用父类的close()方法出现异常。
+webappClassLoader.validationErrorJarPath=无法验证名称为 [{0}] 的 JAR 条目
+webappClassLoader.wrongVersion=(无法载入的.类 [{0}])
+
+webappLoader.copyFailure=无法复制资源
+webappLoader.mkdirFailure=无法创建目标目录以复制资源
+webappLoader.setContext.ise=当加载器启动的时候设置上下文是不被允许的
diff --git a/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..427d327
--- /dev/null
+++ b/java/org/apache/catalina/manager/LocalStrings_zh_CN.properties
@@ -0,0 +1,77 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+htmlManagerServlet.appsAvailable=运行中
+htmlManagerServlet.appsExpire=过期会话
+htmlManagerServlet.appsName=显示.名称
+htmlManagerServlet.appsPath=路径
+htmlManagerServlet.appsReload=重新加载
+htmlManagerServlet.appsSessions=会话
+htmlManagerServlet.appsTasks=命令
+htmlManagerServlet.configReloadButton=重复读
+htmlManagerServlet.configSslHostName=TLS 主机名字(可选)
+htmlManagerServlet.configSslReloadTitle=重新读取 TLS 配置文件
+htmlManagerServlet.connectorStateBytesSent=发送.字节:
+htmlManagerServlet.connectorStateProcessingTime=处理时间:
+htmlManagerServlet.connectorStateTableTitleClientForw=客户端(转发)
+htmlManagerServlet.connectorStateTableTitleRequest=请求
+htmlManagerServlet.connectorStateTableTitleTime=时间
+htmlManagerServlet.connectorStateTableTitleVHost=虚拟主机
+htmlManagerServlet.connectorStateThreadCount=当前线程数:
+htmlManagerServlet.deployButton=:)部署
+htmlManagerServlet.deployServer=服务器上.部署的目录或WAR文件
+htmlManagerServlet.deployTitle=部署
+htmlManagerServlet.deployUploadNoFile=失败 - 文件上传失败,没有文件
+htmlManagerServlet.deployUploadWarExists=失败 - War文件 [{0}] 已存在于服务器上
+htmlManagerServlet.deployWar=WAR文件或文件夹路径:
+htmlManagerServlet.diagnosticsLeak=检查Web应用程序是否在停止、重新加载或取消部署时导致内存泄漏
+htmlManagerServlet.diagnosticsSslConnectorCertsText=列出已配置的TLS虚拟主机以及各自的证书链
+htmlManagerServlet.diagnosticsSslConnectorCipherButton=密.码
+htmlManagerServlet.diagnosticsTitle=诊断
+htmlManagerServlet.expire.unit=分钟
+htmlManagerServlet.helpHtmlManager=HTML管理器帮助
+htmlManagerServlet.jvmFreeMemory=剩余内存:
+htmlManagerServlet.jvmTableTitleMaximum=最大.值
+htmlManagerServlet.jvmTableTitleMemoryPool=内存.池
+htmlManagerServlet.jvmTotalMemory=总内存
+htmlManagerServlet.manager=管理器
+htmlManagerServlet.noManager=-
+htmlManagerServlet.noVersion=未指定
+htmlManagerServlet.serverHostname=主机名
+htmlManagerServlet.serverIPAddress=IP地址
+htmlManagerServlet.serverJVMVersion=JVM.版本
+htmlManagerServlet.serverOSName=OS.名称
+htmlManagerServlet.serverTitle=服务器信息
+htmlManagerServlet.serverVersion=Tomcat.版本
+
+managerServlet.alreadyContext=失败 - 应用程序已存在于路径 [{0}]
+managerServlet.deployFailed=FAIL - 在上下文路径[{0}]下部署应用失败
+managerServlet.deployed=OK - 以应用path [{0}] 部署应用
+managerServlet.findleaksNone=OK - 没有发现内存泄漏
+managerServlet.mkdirFail=失败 - 无法创建目录 [{0}]
+managerServlet.noCommand=失败 - 未指定命令
+managerServlet.noGlobal=失败 - 没有可用的全局 JNDI 资源
+managerServlet.notSslConnector=不允许SSL连接
+managerServlet.objectNameFail=FAIL - 不能将为Manager Servlet 注册 object name  [{0}]
+managerServlet.postCommand=失败 - 尝试通过GET请求使用命令[{0}],但需要POST
+managerServlet.resourcesAll=OK - 列出所有类型的全部资源
+managerServlet.resourcesType=OK - [{0}]类型全局资源列入清单
+managerServlet.saveFail=失败 - 配置保存失败:[{0}]
+managerServlet.sslConnectorCiphers=OK - Connector/SSL 密码.信息
+managerServlet.sslReloadFail=FAIL - 重新加载TLS配制失败
+managerServlet.trustedCertsNotConfigured=没有为此虚拟主机配置受信任的证书
+managerServlet.undeployed=OK - 未部署的应用位于上下文路径[{0}]
+managerServlet.unknownCommand=FAIL - 未知命令 [{0}]
+managerServlet.vminfo=OK - VM信息
diff --git 
a/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..d5b2c0b
--- /dev/null
+++ b/java/org/apache/catalina/manager/host/LocalStrings_zh_CN.properties
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+hostManagerServlet.addFailed=失败 - 添加主机 [{0}] 失败
+hostManagerServlet.addSuccess=确定-添加主机[{0}]
+hostManagerServlet.alreadyStarted=失败 - Host[{0}]已经启动。
+hostManagerServlet.configBaseCreateFail=失败 - 无法识别主机[{0}]的基础配置
+hostManagerServlet.listed=OK - 已列出Host
+hostManagerServlet.listitem=[{0}]:[{1}]
+hostManagerServlet.managerXml=FAIL - 无法安装manager.xml
+hostManagerServlet.noCommand=失败 - 未指定命令
+hostManagerServlet.persist=持久化: 正在持久化当前配置
+hostManagerServlet.persistFailed=失败 - 无法持久化配置
+hostManagerServlet.persisted=OK - 配置持久化了.
+hostManagerServlet.remove=移除:正在移除主机 [{0}]
+hostManagerServlet.removeFailed=失败 - 无法移除主机 [{0}]
+hostManagerServlet.removeSuccess=确定-已删除主机[{0}]
+hostManagerServlet.startFailed=失败 - 无法启动主机 [{0}]
+hostManagerServlet.started=OK - 主机 [{0}] 已启动
+hostManagerServlet.stopFailed=失败 - 无法停止主机 [{0}]
+hostManagerServlet.stopped=OK - 主机 [{0}] 已停止
+hostManagerServlet.unknownCommand=FAIL - 未知命令 [{0}]
+
+htmlHostManagerServlet.addAppBase=应用程序库:
+htmlHostManagerServlet.addAutoDeploy=自动.部署
+htmlHostManagerServlet.addCopyXML=拷贝XML
+htmlHostManagerServlet.addDeployOnStartup=启动.部署
+htmlHostManagerServlet.addHost=主机
+htmlHostManagerServlet.addManager=管理 App
+htmlHostManagerServlet.addTitle=添加.虚拟主机
+htmlHostManagerServlet.helpHtmlManagerFile=../docs/html-host-manager-howto.html
+htmlHostManagerServlet.helpManagerFile=../docs/host-manager-howto.html
+htmlHostManagerServlet.hostAliases=主机别名
+htmlHostManagerServlet.hostName=主机名
+htmlHostManagerServlet.hostsPersist=持久化
+htmlHostManagerServlet.hostsRemove=移除
+htmlHostManagerServlet.hostsStop=停止
+htmlHostManagerServlet.manager=主机.管理器
+htmlHostManagerServlet.persistTitle=持久化配置
+htmlHostManagerServlet.serverOSArch=OS 架构
+htmlHostManagerServlet.serverTitle=服务器信息
+htmlHostManagerServlet.title=Tomcat虚拟主机管理员
+
+statusServlet.complete=服务器全部状态
+statusServlet.title=服务器状态
diff --git a/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..bfacd5b
--- /dev/null
+++ b/java/org/apache/catalina/mapper/LocalStrings_zh_CN.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+mapper.addHostAlias.success=为虚拟主机 [{1}] 注册了别名 [{0}]
+
+mapperListener.pauseContext=根据服务需要,注册内容[{0}]已经重新加载
+mapperListener.registerWrapper=为服务Service[{2}]在上下文Context[{1}]注册Wrapper[{0}]
+mapperListener.unregisterHost=在域[{1}]中.,不能注册主机[{0}]为服务[{2}]
diff --git a/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..fc4e09a
--- /dev/null
+++ b/java/org/apache/catalina/realm/LocalStrings_zh_CN.properties
@@ -0,0 +1,49 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+combinedRealm.authFail=无法使用域[{1}]对用户[{0}]进行身份验证
+
+dataSourceRealm.getPassword.exception=获取用户名[{0}]对应的密码失败。
+dataSourceRealm.getRoles.exception=:)检索角色[{0}]异常
+
+jaasCallback.username=返回用户名 [{0}]
+
+jaasRealm.authenticateSuccess=用户名 [{0}] 已被成功认证为身份 [{1}] -- 主体也已创建
+jaasRealm.failedLogin=由于登录失败,用户名 [{0}] 无法授权
+jaasRealm.loginContextCreated=为用户名创建的JAAS 登陆上下文[{0}]
+jaasRealm.loginException=登录异常,认证用户名  [{0}]
+
+jndiRealm.authenticateFailure=用户名[{0}]没有成功认证
+jndiRealm.authenticateSuccess=用户名[{0}]成功认证
+jndiRealm.cipherSuites=启用 [{0}] 作为 TLS 连接的加密套件。
+jndiRealm.exception=执行认证异常
+jndiRealm.open=打开目录服务器链接异常
+
+lockOutRealm.authLockedUser=尝试对锁定的用户[{0}]进行身份验证
+
+memoryRealm.loadExist=内存数据库文件[{0}]无法读取
+memoryRealm.loadPath=从内存数据库文件 [{0}] 加载用户
+memoryRealm.readXml=读取内存数据库文件时出现异常
+
+pbeCredentialHandler.invalidKeySpec=无法生成基于密码的密钥
+
+realmBase.authenticateFailure=用户名 [{0}] 认证失败
+realmBase.createUsernameRetriever.ClassCastException=类[{0}] 
不是一个X509UsernameRetriever.
+realmBase.digest=对用户凭证摘要发生错误
+realmBase.forbidden=已拒绝访问所请求的资源
+realmBase.hasRoleFailure=用户[{0}]没有角色[{1}]
+realmBase.hasRoleSuccess=用户名[{0}] 有角色[{1}]
+
+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
new file mode 100644
index 0000000..53f7274
--- /dev/null
+++ b/java/org/apache/catalina/security/LocalStrings_zh_CN.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SecurityListener.checkUmaskSkip=无法确定权限。这表示 Tomcat 正在 Windows 上运行,所以跳过权限检查。
diff --git a/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..3b8cf09
--- /dev/null
+++ b/java/org/apache/catalina/servlets/LocalStrings_zh_CN.properties
@@ -0,0 +1,28 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cgiServlet.expandFail=在路径[{0}] 到[{1}] 展开脚本失败.
+cgiServlet.find.location=在 [{0}] 查找文件
+cgiServlet.runHeaderReaderFail=I/O 问题关闭请求头读操作
+cgiServlet.runInvalidStatus=无效状态 [{0}]
+cgiServlet.runOutputStreamFail=关闭输出流时发生I/O问题
+cgiServlet.runReaderInterrupt=对于标准错误的读线程,中断并等待。
+
+defaultServlet.blockExternalSubset=用名称[{0}]和baseURI[{1}]阻止对外部子集的访问
+
+directory.filename=文件名
+directory.size=大小
+
+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
new file mode 100644
index 0000000..6aa9503
--- /dev/null
+++ b/java/org/apache/catalina/session/LocalStrings_zh_CN.properties
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+JDBCStore.missingDataSourceName=没有给出有效的 JNDI 名称。
+JDBCStore.saving=保存Session [{0}] 到数据库 [{1}]
+
+fileStore.deleteFailed=无法删除阻止创建会话存储位置的文件 [{0}]
+
+managerBase.contextNull=使用 Manager 之前,必须将 Context 设置为非 null 值
+managerBase.createSession.ise=createSession:活跃session过多
+
+persistentManager.deserializeError=错误反序列化会话[{0}]: [{1}]
+persistentManager.storeKeysException=不能从 session存储中获取session ID 的列表,假设存储为空
+persistentManager.storeSizeException=无法确定 session 存储区的会话数,假定存储区为空
+persistentManager.swapIn=在表单存储中,交换会话[{0}]
+persistentManager.swapMaxIdle=交换会话[{0}]以存储,空闲为[{1}]秒
+persistentManager.swapTooManyActive=太多活跃会话,替换闲置 [{1}] 秒的会话 [{0}]
+
+standardManager.loading.exception=加载持久化会话时发生异常
+standardManager.managerLoad=从持久化存储加载会话发生异常
+standardManager.managerUnload=卸载会话到持久存储的异常
+
+standardSession.getIdleTime.ise=getIdleTime: 已失效的会话
+standardSession.getLastAccessedTime.ise=getLastAccessedTime: 会话已失效
+standardSession.getValueNames.ise=getValueNames:会话已经失效
+standardSession.logoutfail=当回话将过期登出用户异常
+standardSession.notDeserializable=无法反序列化会话 [{1}] 的属性 [{0}]
+standardSession.notSerializable=不能序列化会话[{1}]的属性[{0}]
+standardSession.removeAttribute.ise=删除属性:会话已失效
+standardSession.sessionEvent=会话时间监听抛出异常
diff --git a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..cf2586f
--- /dev/null
+++ b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
@@ -0,0 +1,72 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+catalina.serverStartFail=所必需的服务组件启动失败,所以无法启动Tomcat
+
+contextConfig.altDDNotFound=未找到 alt-dd 文件 [{0}]
+contextConfig.applicationStart=正在解析应用程序 web.xml 文件 [{0}]
+contextConfig.applicationUrl=无法确定应用程序 web.xml 的URL
+contextConfig.authenticatorConfigured=为方法 [{0}] 配置了验证器
+contextConfig.authenticatorMissing=不能配置一个认证为方法[{0}]
+contextConfig.badUrl=不能处理上下文描述符[{0}]
+contextConfig.cce=生命周期事件数据对象[{0}] 不是一个上下文
+contextConfig.contextMissing=缺少 context.xml:[{0}]
+contextConfig.defaultMissing=未找到全局 web.xml
+contextConfig.defaultPosition=发生在 [{0}] 行 [{1}] 列
+contextConfig.fixDocBase=上下文[{0}]的异常修复docBase
+contextConfig.init=上下文配置: 正在初始化
+contextConfig.inputStreamWebResource=不能处理注释的Web资源[{0}]
+contextConfig.jspFile.error=JSP文件[{0}]必须以''/''开头。
+contextConfig.processAnnotationsDir.debug=使用注解 [{0}]扫描目录中的类文件
+contextConfig.processAnnotationsWebDir.debug=扫描 web 应用程序目录下含有 [{0}] 注解的 class 
文件
+contextConfig.role.auth=在标签<auth-constraint>的子标签<security-role>中没有定义角色名[{0}]
+contextConfig.role.runas=<run-as> 中使用的安全角色名 [{0}],未在 <security-role> 中定义
+
+engineConfig.cce=生命周期事件数据对象[{0}]不是一个引擎(Engine)
+engineConfig.stop=配置引擎,处理进程停止。
+
+expandWar.copy=错误的拷贝[{0}] to [{1}]
+expandWar.createFailed=无法创建文件夹[{0}]。
+expandWar.deleteFailed=[{0}] 无法被彻底删除。其余残留文件可能会导致问题
+expandWar.deleteOld=发现一个展开的目录[{0}],它的最后修改时间与关联的WAR不一致.它将被删除.
+expandWar.missingJarEntry=无法获得 JarEntry [{0}] 的输入流 - WAR 文件是否已损坏?
+
+hostConfig.appBase=主机[{0}]的应用程序基础[{1}]不存在或不是目录。deployOnStartUp和autoDebug已设置为false,以防止部署错误。其他错误仍然可能发生。
+hostConfig.deployDir=把web 应用程序部署到目录 [{0}]
+hostConfig.deployWar.error=部署 Web 应用程序 archive [{0}] 时出错
+hostConfig.docBaseUrlInvalid=所提供的部署目录无法用URL来表示
+hostConfig.expanding=扩展已发现的 web 应用程序 archive
+hostConfig.stop=:)Host配置:停止处理
+
+tomcat.addWebapp.conflictChild=无法在[{0}]处部署到上下文路径[{1}],因为存在上下文[{2}]
+tomcat.addWebapp.conflictFile=由于现有文件[{2}]的存在,无法在[{0}]将战争部署到上下文路径[{1}]
+tomcat.homeDirMakeFail=无法创建用作主目录的目录 [{0}]
+
+userConfig.database=加载用户数据库异常
+userConfig.deploying=正在部署用户 web 应用程序
+userConfig.error=为用户 [{0}]部署web应用发生错误
+userConfig.start=用户配置:处理开始
+
+versionLoggerListener.catalina.home=CATALINA_HOME:         {0}
+versionLoggerListener.java.home=Java 环境变量:             {0}
+versionLoggerListener.os.arch=结.造:          {0}
+versionLoggerListener.os.version=OS.版本:            {0}
+versionLoggerListener.prop=系统属性:       {0} = {1}
+versionLoggerListener.serverInfo.server.built=Server.构建:          {0}
+versionLoggerListener.serverInfo.server.version=Server.服务器版本:        {0}
+versionLoggerListener.vm.vendor=JVM.供应商:            {0}
+versionLoggerListener.vm.version=JVM 版本:           {0}
+
+webAnnotationSet.invalidInjection=方法资源注入注解无效。
diff --git 
a/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..0ed42a4
--- /dev/null
+++ b/java/org/apache/catalina/tribes/group/LocalStrings_zh_CN.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+channelCoordinator.invalid.startLevel=启动级别无效,有效级别为:SND_RX_SEQ,SND_TX_SEQ,MBR_TX_SEQ,MBR_RX_SEQ
+
+groupChannel.listener.alreadyExist=侦听器已存在:[{0}][{1}]
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
new file mode 100644
index 0000000..7ce09fc
--- /dev/null
+++ 
b/java/org/apache/catalina/tribes/group/interceptors/LocalStrings_zh_CN.properties
@@ -0,0 +1,53 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+domainFilterInterceptor.member.refused=成员被拒绝加入集群 cluster[{0}]
+domainFilterInterceptor.message.refused=从集群[{0}]中接收的消息被拒绝
+
+encryptInterceptor.decrypt.error.short-message=解密消息失败: 结尾消息提前结束
+encryptInterceptor.encrypt.failed=无法加密信息
+encryptInterceptor.tcpFailureDetector.ordering=加密拦截器必须位于TCP故障检测器的上游。请重新订购加密拦截器,将其列在通道拦截器管道中的TCP故障检测器之前。
+
+messageDispatchInterceptor.queue.full=异步队列已满,达到 [{0}] 字节的限制,当前:[{1}] 字节
+messageDispatchInterceptor.unableAdd.queue=无法将消息添加到异步队列,队列 bug?
+messageDispatchInterceptor.warning.optionflag=警告!你正在覆盖异步选项标志,这将禁用其它程序可能用到的 
Channel.SEND_OPTIONS_ASYNCHRONOUS。
+
+nonBlockingCoordinator.memberAlive.failed=无法执行成员活动检查,猜测成员下线。
+nonBlockingCoordinator.processCoordinationMessage.failed=处理协调消息时出错。 可能是致命的。
+
+staticMembershipInterceptor.no.failureDetector=没有TcpFailureDetector。 
自动检测静态成员无法正常工作。 通过在TcpFailureDetector下定义StaticMembershipInterceptor,可以自动检测静态成员。
+staticMembershipInterceptor.no.pingInterceptor=在没有TcpPingInterceptor的情况下,静态成员的健康检查不会正常工作。只有定义了TcpPingInterceptor,才能使健康检查正常进行。
+staticMembershipInterceptor.sendShutdown.failed=关闭通知失败。
+
+tcpFailureDetector.failureDetection.failed=无法进行失败监测,假定成员宕机。[{0}]
+tcpFailureDetector.heartbeat.failed=TCP心跳检测器无法执行心跳
+tcpFailureDetector.still.alive=验证完成。成员 [{0}] 仍然存活
+
+tcpPingInterceptor.ping.failed=无法发送 TCP ping
+tcpPingInterceptor.pingFailed.pingThread=不能从ping 线程发送ping
+
+throughputInterceptor.report=吞吐量拦截器 报告[\n\
+\   传输消息: {0} 消息数.\n\
+\   发送: {1} MB(总共)\n\
+\   发送: {2} MB (应用)\n\
+\   耗时: {3} 秒\n\
+\   传输速率: {4}MB/sec (总共)\n\
+\   传输速率: {5}MB/sec (应用)\n\
+\  错误消息: {6}\n\
+\  接收消息: {7} 消息数\n\
+\  接收速率: {8} MB/sec (从第一个消息开始)\n\
+\  收到: {9}MB]
+
+twoPhaseCommitInterceptor.heartbeat.failed=无法在两阶段提交拦截器上执行心跳。
diff --git a/java/org/apache/catalina/tribes/io/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/io/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..b21c8b7
--- /dev/null
+++ b/java/org/apache/catalina/tribes/io/LocalStrings_zh_CN.properties
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+objectReader.retrieveFailed.socketReceiverBufferSize=无法检索套接字接收器缓冲区大小,设置为默认43800字节。
+
+replicationStream.conflict=和非公开接口类加载器冲突
+
+xByteBuffer.no.package=XByteBuffer中不存在数据包
+xByteBuffer.size.larger.buffer=大小比现有缓冲区大。
+xByteBuffer.unableCreate=不能创建数据包, buffer 太小
+xByteBuffer.wrong.class=消息对应类不符合要求。 它应该实现Serializable,而不是:[{0}]。
diff --git a/java/org/apache/catalina/tribes/jmx/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/jmx/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..15bf911
--- /dev/null
+++ b/java/org/apache/catalina/tribes/jmx/LocalStrings_zh_CN.properties
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+jmxRegistry.no.domain=未指定JMX域
+jmxRegistry.registerJmx.failed=无法注册名称为 [{1}] 的对象 [{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
new file mode 100644
index 0000000..669640b
--- /dev/null
+++ b/java/org/apache/catalina/tribes/membership/LocalStrings_zh_CN.properties
@@ -0,0 +1,28 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+mcastService.missing.property=McastService:缺少必需属性 [{0}]。
+
+mcastServiceImpl.invalid.startLevel=无效的启动级别。只接受以下级别:Channel.MBR_RX_SEQ或 
Channel.MBR_TX_SEQ
+mcastServiceImpl.recovery=家族成员,运行恢复线程,广播不是功能。
+mcastServiceImpl.recovery.stopFailed=恢复线程未能停止成员服务。
+mcastServiceImpl.send.running=McastService.send已经运行
+mcastServiceImpl.unable.join=无法加入多播组,请确保你的系统已启用多播。
+mcastServiceImpl.unableReceive.broadcastMessage=无法接收广播消息。
+
+memberImpl.large.payload=负载太大对于处理许多...
+memberImpl.notEnough.bytes=成员包中的字节不够。
+
+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
new file mode 100644
index 0000000..d3dad73
--- /dev/null
+++ b/java/org/apache/catalina/tribes/tipis/LocalStrings_zh_CN.properties
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+abstractReplicatedMap.broadcast.noReplies=广播收到0回复,可能是超时了。
+abstractReplicatedMap.leftOver.ignored=消息[{0}]被忽略
+abstractReplicatedMap.transferState.noReplies=传输状态,0响应,也许是超时。
+abstractReplicatedMap.unable.get=无法复制 AbstractReplicatedMap.get 操作的数据
+abstractReplicatedMap.unableSend.startMessage=无法发送map启动消息。
+
+lazyReplicatedMap.unableReplicate.proxy=不能复制proxy key:[{0}]到备份:[{1}]. 原因是:[{2}]
+
+mapMessage.deserialize.error.value=MapMessage.value的反序列化误差
+
+replicatedMap.relocate.complete=map 条目的重定位在 [{0}] ms内完成。
+replicatedMap.unable.relocate=不能为一个新的备份节点重启定位[{0}]
diff --git 
a/java/org/apache/catalina/tribes/transport/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/tribes/transport/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..ad0dcc5
--- /dev/null
+++ b/java/org/apache/catalina/tribes/transport/LocalStrings_zh_CN.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+PooledSender.senderDisconnectFail=与 sender 断开连接失败
+
+receiverBase.bind.failed=对内容类型[{2}]返回[{3}]使用[{0}]匹配[{1}]
+receiverBase.socket.bind=服务器套接字接收器绑定到:[{0}]
+receiverBase.unable.bind=无法绑定套接字端口:{{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
new file mode 100644
index 0000000..31947bd
--- /dev/null
+++ 
b/java/org/apache/catalina/tribes/transport/bio/LocalStrings_zh_CN.properties
@@ -0,0 +1,26 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bioReceiver.socket.closeFailed=socket.关闭失败
+bioReceiver.threadpool.fail=线程池可以初始化。侦听器未启动
+
+bioReplicationTask.messageDataReceived.error=错误抛出,来自于消息数据收到
+bioReplicationTask.reader.closeFailed=无法关闭reader
+bioReplicationTask.socket.closeFailed=无法关闭套接字
+bioReplicationTask.unable.service=不能服务bio套接字
+
+bioSender.ack.missing=不能读确认表格:[{0}] {1,number,integer}] in {2,number,integer} 
毫秒, 失去socket连接, 重试连接.
+bioSender.ack.wrong=在本地端口[{0}:{1,number,integer}]读取10个字节后丢失正确的ACK
+bioSender.send.again=再次发送数据到 [{0}:{1,number,integer}]
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
new file mode 100644
index 0000000..3a87d15
--- /dev/null
+++ 
b/java/org/apache/catalina/tribes/transport/nio/LocalStrings_zh_CN.properties
@@ -0,0 +1,33 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nioReceiver.alreadyStarted=ServerSocketChannel已经被启动
+nioReceiver.cleanup.fail=无法清除关闭的选择器
+nioReceiver.clientDisconnect=复制客户端已断开连接,轮询密钥时出错。忽略客户端。
+nioReceiver.run.fail=不能允许复制监听器
+nioReceiver.start.fail=无法启动集群接收器
+nioReceiver.stop.fail=无法关闭集群接收的选择器
+nioReceiver.threadpool.fail=ThreadPool 无法初始化。 监听器未启动。
+
+nioReplicationTask.error.register.key=错误的注册key被读取了
+nioReplicationTask.process.clusterMsg.failed=处理集群消息失败
+nioReplicationTask.unable.ack=不能通过channel发送ack,channel已经断开?[{0}]
+
+nioSender.unknown.state=数据处于未知状态。readyOps = [{0}]
+
+parallelNioSender.send.failed=并行的NIO.发送失败。
+parallelNioSender.sendFailed.attempt=发送失败,尝试: [{0}] 最大: [{1}]
+
+pooledParallelSender.sender.disconnected=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
new file mode 100644
index 0000000..6a1fa8e
--- /dev/null
+++ b/java/org/apache/catalina/tribes/util/LocalStrings_zh_CN.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+arrays.keyoffset.outOfBounds=key的偏移.超出了界限。
+
+executorFactory.not.running=执行器没有运行,无法强制把命令送入队列
diff --git a/java/org/apache/catalina/users/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..1a72890
--- /dev/null
+++ b/java/org/apache/catalina/users/LocalStrings_zh_CN.properties
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+memoryUserDatabase.fileClose=关闭 [{0}] 失败
+memoryUserDatabase.fileDelete=无法删除 [{0}]
+memoryUserDatabase.notPersistable=用户数据库不可持久化 - 对目录没有写入权限
+memoryUserDatabase.nullRole=指定的角色名为Null或着长度为0。角色将被忽略,
+memoryUserDatabase.readOnly=用户数据库已被设为只读。修改无法保存
+memoryUserDatabase.reloadError=从更新后的源 [{1}] 重新加载内存用户数据库 [{0}] 时出错
+memoryUserDatabase.renameNew=无法将新文件重命名为 [{0}]
+memoryUserDatabase.renameOld=原文件无法改名为[{0}]
+memoryUserDatabase.restoreOrig=无法往原始文件中保存[{0}]
diff --git a/java/org/apache/catalina/util/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..34a3987
--- /dev/null
+++ b/java/org/apache/catalina/util/LocalStrings_zh_CN.properties
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+customObjectInputStream.logRequired=使用日志记录进行类名过滤需要一个有效的日志记录器
+customObjectInputStream.nomatch=类不能匹配合适的表达式,因为类被允许反序列化
+
+extensionValidator.extension-not-found-error=ExtensionValidator[{0}][{1}]: 
请求的拓展[{2}]未找到。
+extensionValidator.web-application-manifest=web 应用程序清单
+
+introspection.classLoadFailed=加载 class [{0}] 失败
+
+lifecycleBase.initFail=初始化组件[{0}]失败。
+
+netmask.cidrNegative=CIDR [{0}]为负数。
+netmask.invalidAddress=地址 [{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
new file mode 100644
index 0000000..ccbedc6
--- /dev/null
+++ b/java/org/apache/catalina/valves/LocalStrings_zh_CN.properties
@@ -0,0 +1,60 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+accessLogValve.closeFail=关闭访问日志文件失败
+accessLogValve.invalidLocale=无法将区域设置设为 [{0}]
+accessLogValve.invalidPortType=端口类型 [{0}] 无效,使用服务器(本地)端口
+accessLogValve.openFail=无法打开访问日志文件[{0}]。
+accessLogValve.rotateFail=失败的循环切割访问日志.
+
+errorReportValve.description=描述
+errorReportValve.exceptionReport=异常报告
+errorReportValve.message=消息
+errorReportValve.rootCauseInLogs=主要问题的全部 stack 信息可以在 server logs 里查看
+errorReportValve.unknownReason=未知的原因
+
+http.400.reason=错误的请求
+http.401.reason=未经授权的
+http.402.desc=这个状态码时为未来使用预留的.
+http.403.desc=服务器理解该请求但拒绝授权。
+http.403.reason=被禁止
+http.404.reason=未找到
+http.405.desc=请求行中接收的方法由源服务器知道,但目标资源不支持
+http.407.reason=代理需要认证
+http.412.desc=在服务器上测试时,请求头字段中给出的一个或多个条件被评估为false。
+http.412.reason=前置条件失败
+http.413.reason=有效载荷过大
+http.415.desc=源服务器拒绝服务请求,因为有效负载的格式在目标资源上此方法不支持。
+http.415.reason=不支持的媒体类型
+http.416.reason=范围不满足
+http.417.reason=期望的失败
+http.421.desc=请求被定向到一台无法响应的服务器
+http.423.desc=源或目标资源的方法被锁
+http.423.reason=已锁定
+http.426.reason=需要升级
+http.428.desc=原始服务器要求请求是有条件的。
+http.429.reason=请求过多
+http.431.reason=请求头的字段太大
+http.500.desc=服务器遇到一个意外的情况,阻止它完成请求。
+http.502.desc=服务器在充当网关或代理时, 在尝试完成请求时, 从它访问的入站服务器收到无效响应。
+http.503.desc=由于临时过载或计划维护,服务器当前无法处理请求,这可能会在一些延迟后得到缓解。
+http.505.reason=HTTP 版本不支持
+http.507.reason=存储空间.不足
+http.510.reason=没有.扩展
+http.511.desc=客户端需要进行身份验证才能获得网络访问权限。
+
+remoteCidrValve.noRemoteIp=客户端没有IP地址。请求被拒绝。
+
+requestFilterValve.deny=根据[{1}]配置拒绝[{0}]的请求
diff --git 
a/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties 
b/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..acbf500
--- /dev/null
+++ b/java/org/apache/catalina/webresources/LocalStrings_zh_CN.properties
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cache.addFail=无法将位于[{0}]的资源添加到Web应用程序[{1}]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 
请考虑增加缓存的最大空间。
+
+extractingRoot.targetFailed=无法为提取的 JAR 文件创建目录 [{0}]
+
+fileResource.getUrlFail=不能决定一个url 为资源[{0}]
+
+jarResource.getUrlFail=无法确定JAR[{1}]中的资源[{0}]的URL
+
+standardRoot.checkStateNotStarted=如果当前未启动资源,则可能无法访问这些资源
+standardRoot.createUnknownType=无法为未知类型[{0}]创建WebResourceSet。
+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
new file mode 100644
index 0000000..e83ba61
--- /dev/null
+++ b/java/org/apache/coyote/LocalStrings_zh_CN.properties
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+abstractConnectionHandler.ioexception.debug=正常的 IOException,忽略
+abstractConnectionHandler.processorPop=从缓存中弹出的处理器[{0}]
+
+abstractProcessor.fallToDebug=注意:进一步出现的请求解析错误将在DEBUG级别进行记录。
+abstractProcessor.hostInvalid=[{0}] 是无效主机
+abstractProcessor.httpupgrade.notsupported=此协议不支持HTTP升级(upgrade)。
+abstractProcessor.socket.ssl=获取SSL属性异常
+
+abstractProtocolHandler.destroy=正在摧毁协议处理器 [{0}]
+abstractProtocolHandler.init=初始化协议处理器 [{0}]
+abstractProtocolHandler.start=开始协议处理句柄[{0}]
+
+asyncStateMachine.invalidAsyncState=调用[{0}]对于具有异步状态[{1}]的请求无效
+
+response.notNonBlocking=当响应尚未进入非阻塞模式时,调用 isReady() 无效
+response.writeListenerSet=非阻塞的写监听已经被设置.
diff --git a/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties 
b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..d028884
--- /dev/null
+++ b/java/org/apache/coyote/ajp/LocalStrings_zh_CN.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ajpmessage.null=不能赋空值
+ajpmessage.overflow=在缓冲区[{1}]位置添加[{0}]字节时发生溢出错误
+
+ajpprocessor.failedsend=失败的发送AJP消息
+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
new file mode 100644
index 0000000..87091e8
--- /dev/null
+++ b/java/org/apache/coyote/http11/LocalStrings_zh_CN.properties
@@ -0,0 +1,32 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+http11processor.header.parse=解析 HTTP 请求 header 错误
+http11processor.request.inconsistentHosts=请求行中指定的主机与主机头不一致。
+http11processor.request.invalidUserInfo=HTTP 请求包含带有无效 userinfo 的绝对 URI
+http11processor.request.prepare=准备请求时出错
+http11processor.request.process=错误的处理请求
+http11processor.response.finish=错误完成相应
+http11processor.socket.info=获取socket信息异常
+
+iib.available.readFail=尝试确定数据是否可用时,非阻塞读取失败
+iib.eof.error=套接字读取到意外的EOF
+iib.filter.npe=你不能添加空过滤器(null)
+iib.invalidheader=HTTP header行 [{0}] 不符合RFC 7230并且已被忽略。
+iib.invalidmethod=在方法名称中发现无效的字符串, HTTP 方法名必须是有效的符号.
+iib.readtimeout=从套接字读取数据超时
+
+iob.failedwrite=写入.失败
+iob.illegalreset=response 在提交后不允许被重置
diff --git 
a/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties 
b/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..39528a8
--- /dev/null
+++ b/java/org/apache/coyote/http11/filters/LocalStrings_zh_CN.properties
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+chunkedInputFilter.eos=读取请求主体时流的意外结束
+chunkedInputFilter.eosTrailer=读取 trailer 头时出现意外的流结束
+chunkedInputFilter.error=没有数据可用由于先前的错误
+chunkedInputFilter.invalidCrlfCRCR=无效的结束的行序列(CRCR)
+chunkedInputFilter.invalidCrlfNoCR=无效的行尾结束符序列(LF前缺少CR)
+chunkedInputFilter.maxExtension=超过最大扩展数
+chunkedInputFilter.maxTrailer=超过最大数
+
+inputFilter.maxSwallow=最大吞咽数据大小超出异常
diff --git 
a/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties 
b/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..c87178b
--- /dev/null
+++ b/java/org/apache/coyote/http11/upgrade/LocalStrings_zh_CN.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+upgrade.sis.isFinished.ise=当 ServletInputStream 不处于非阻塞模式时调用 isFinished() 
是非法的(即必须首先调用 setReadListener())
+upgrade.sis.read.closed=InputStream 已被关闭
+upgrade.sis.readListener.set=在同一个upgraded连接上调用多次setReadListener()函数是非法的
+upgrade.sos.write.closed=输出流已被关闭
+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
new file mode 100644
index 0000000..86c7d28
--- /dev/null
+++ b/java/org/apache/coyote/http2/LocalStrings_zh_CN.properties
@@ -0,0 +1,55 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+abstractStream.windowSizeInc=连接 [{0}], 流 [{1}], 增加流量控制窗口[{2}] 到 [{3}]
+
+connectionPrefaceParser.mismatch=请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符。
+
+connectionSettings.debug=连接[{0}],参数类型[{1}]设置为[{2}]
+connectionSettings.headerTableSizeLimit=连接 [{0}],尝试将 header 表大小设置为 [{1}],但限制为 
16k
+connectionSettings.maxFrameSizeInvalid=连接[{0}],请求的最大帧大小[{1}]在[{2}]到[{3}]的允许范围之外
+
+hpack.invalidCharacter=代码点[{1}]处的Unicode字符[{0}]无法编码,因为它超出了允许的0到255范围。
+
+hpackdecoder.tableSizeUpdateNotAtStart=任何表大小的更新都必须在头块开始时发送。
+
+http2Parser.headers.wrongStream=连接[{0}], 头部信息对于流[{1}]正在进行但对于流[{2}]的一帧已经收到了。
+http2Parser.nonZeroPadding=连接[{0}],流[{1}],非零填充
+http2Parser.processFrameData.window=连接[{0}],客户端发送的数据比流窗口允许的多
+http2Parser.processFrameHeaders.decodingDataLeft=数据在HPACK解码后依然保留 - 它本应该被消费掉
+http2Parser.processFramePriority.invalidPayloadSize=以[{0}]无效的有效负载大小接收的优先级帧(应该是5)
+http2Parser.processFramePushPromise=请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符\n\
+\n
+
+stream.inputBuffer.readTimeout=等待从客户端读取数据超时
+stream.inputBuffer.reset=流.重置
+stream.writeTimeout=等待客户端增加流控制窗口以允许写入流数据的超时
+
+streamProcessor.cancel=连接到[{0}],Stream [{1}],
+streamProcessor.service.error=请求处理期间出错
+
+streamStateMachine.invalidReset=连接[{0}],流[{1}],状态[{2}],在这种状态下不允许重置
+
+upgradeHandler.ioerror=连接[{0}]
+upgradeHandler.pingFailed=对客户端发送ping 链接失败.
+upgradeHandler.socketCloseFailed=关闭 socket 错误
+upgradeHandler.stream.even=\ 请求了新的远程流ID[{0}],但所有远程流都必须使用奇数标识符\n\
+\n
+upgradeHandler.tooMuchOverhead=连接[{0}],开销过大,连接将关闭
+upgradeHandler.upgrade=连接[{0}], HTTP/1.1 升级到流[1]
+upgradeHandler.writeBody=连接 [{0}],数据流[{1}], 数据长度[{2}]
+upgradeHandler.writeHeaders=连接 [{0}],流 [{1}]
+
+writeStateMachine.ise=处于 [{1}] 状态时调用 [{0}()] 方法是非法的
diff --git a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties 
b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..313c485
--- /dev/null
+++ b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
@@ -0,0 +1,135 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+jasper.error.emptybodycontent.nonempty=根据 TLD,[{0}] 标签必须为空,但不是
+
+jsp.error.action.isnottagfile=[{0}]行为只能用于标签文件
+jsp.error.attempt_to_clear_flushed_buffer=错误:尝试清空已刷新的缓冲区
+jsp.error.attribute.deferredmix=不能在同一属性值中同时使用 ${} 和 #{} EL 表达式
+jsp.error.attribute.noequal=期望的符号是等号
+jsp.error.attribute.noescape=属性值[{0}]引用[{1}],在值内使用时必须被转义。
+jsp.error.attribute.nowhitespace=JSP 规范要求一个属性名字前有空格
+jsp.error.bad.scratch.dir=你指定的 scratchDir:[{0}] 不可用。
+jsp.error.bad_attribute=属性[{0}]无效为tag[{1}] 通过TLD
+jsp.error.beans.noproperty=在[{1}]类型bean中找不到任何有关属性[{0}]的信息
+jsp.error.beans.nullbean=尝试获取一个bean 操作在一个空对象上.
+jsp.error.compiler=没有可用的Java编译器
+jsp.error.corresponding.servlet=生成的servlet错误:\n
+jsp.error.could.not.add.taglibraries=不能增加一个或者多个tag 库.
+jsp.error.data.file.processing=处理文件 [{0}] 错误
+jsp.error.el.template.deferred=#{...} 不允许出现在模板文本中
+jsp.error.fallback.invalidUse=jsp:fallback必须是jsp:plugin的直接子代
+jsp.error.file.cannot.read=无法读取文件 [{0}]
+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.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.required=如果使用 jsp:attribute,则必须使用 jsp:body 为 [{0}] 指定标记正文。
+jsp.error.jspelement.missing.name=XML强制性约束:属性name缺失。
+jsp.error.jspoutput.doctypenamesystem=&lt;jsp:output&gt;: 
'doctype-root-element' 和 'doctype-system' 必须一起出现
+jsp.error.jsproot.version.invalid=版本号 [{0}] 
无效,版本号必须是"1.2"、"2.0"、"2.1"、"2.2"、"2.3"中的一个
+jsp.error.lastModified=无法确定文件 [{0}] 的最后修改日期
+jsp.error.loadclass.taghandler=无法为TAG [{1}]加载标记处理程序类[{0}]
+jsp.error.location=行.: [{0}], 列: [{1}]
+jsp.error.mandatory.attribute=[{0}]: 强制性属性 [{1}] 缺失。
+jsp.error.nested.jspbody=JSP:体标准动作不能嵌套在另一个jsp:body 或者 jsp:属性标准动作中
+jsp.error.nested_jsproot=嵌套的&lt;jsp:root&gt;
+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.not.in.template=在模板文本体中, [{0}] 是不允许的.
+jsp.error.outputfolder=无输出目录
+jsp.error.overflow=错误:JSP缓冲区溢出
+jsp.error.page.conflict.errorpage=页指令:不同值的多次出现“errorPage”的非法值(旧:[{0}],新:[{1}])
+jsp.error.page.invalid.deferredsyntaxallowedasliteral=页面指令:deferredSyntaxAllowedAsLiteral的值无效
+jsp.error.page.invalid.iselignored=页面指令:忽略的无效值
+jsp.error.page.invalid.session=页面提示:session值无效
+jsp.error.page.multi.pageencoding=页指令不能有多次出现的页编码
+jsp.error.param.invalidUse=jsp:param 
不能在jsp:include、jsp:forward或jsp:params等元素外使用
+jsp.error.paramexpected=使用“name”和“value”属性期望“jsp:param”标准操作
+jsp.error.parse.xml=无法解析 XML 文件 [{0}]
+jsp.error.parse.xml.invalidPublicId=无效的 PUBLIC ID: [{0}]
+jsp.error.plugin.wrongRootElement=[{0}] 中的根元素的名称与 [{1}] 的不同
+jsp.error.prolog_pagedir_encoding_mismatch=指定在XML语言[{0}]的网页编码是不同于指定在网页的指令[{1}]。
+jsp.error.quotes.unterminated=未终结的引号
+jsp.error.scripting.variable.missing_name=无法从属性[{0}]确定脚本变量名称
+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.invalid.trimdirectivewhitespaces=TAG指令:trimDirectiveWhitespaces的值无效
+jsp.error.tagfile.nameFrom.badAttribute=\n\
+\ 
属性指令(在行[{1}]中声明并且其name属性为[{0}],此name-from-attribute属性的值)必须是java.lang.String类型,是“required”而不是一个“rtexprvalue”。
+jsp.error.taglibDirective.absUriCannotBeResolved=无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[{0}]
+jsp.error.taglibDirective.missing.location='uri'和'tagdir' 属性均未指定。
+jsp.error.taglibDirective.uriInvalid=为标签库[{0}]提供的URI不是有效的URI
+jsp.error.teiclass.instantiation=无法加载或实例化TagExtraInfo类:[{0}]。
+jsp.error.tld.mandatory.element.missing=TLD [{1}] 中强制 TLD 元素 [{0}] 不存在或为空
+jsp.error.unable.deleteClassFile=无法删除class文件
+jsp.error.unable.load=无法加载JSP的相关类
+jsp.error.unable.renameClassFile=无法重命名类文件
+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.unsupported.encoding=不支持的编码:[{0}]
+jsp.error.variable.either.name=必须在变量指令中指定 name-given 或 name-from-attribute 属性
+jsp.error.xml.badStandardAction=无效、标准的action: [{0}]
+jsp.exception=在 [{1}] 行处理 [{0}] 时发生异常
+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_unload_check=在context[{0}]中检查未加载的jsp,jsp总共:[{1}]队列长度[{2}]
+jsp.tldCache.noTldSummary=至少有一个JAR被扫描用于TLD但尚未包含TLD。 
为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
+jsp.tldCache.tldInDir=在目录 [{0}]中找到了TLD文件。
+jsp.warning.compiler.classfile.delete.fail.unknown=删除生成的class文件失败
+jsp.warning.displaySourceFragment=警告:displaySourceFragment初始化参数时参数值无效,将使用默认的值“true”
+jsp.warning.dumpSmap=警告:初始化堆内存的值无效。将使用“false”的默认值
+jsp.warning.enablePooling=警告:initParam enablePooling的值无效。将使用默认值“true”
+jsp.warning.fork=警告:initParam的值无效。将使用“true”的默认值
+
+jspc.delete.fail=无法删除文件 [{0}]
+jspc.error.fileDoesNotExist=文件参数 [{0}] 不存在
+jspc.webfrg.footer=\n\
+</web-fragment>\n\
+\n
+jspc.webinc.footer=\n\
+<!--\n\
+由Apache Tomcat JSPC自动创建的内容结束。\n\
+-->\n\
+\n
+jspc.webinc.header=\n\
+<!--\n\
+由 Apache Tomcat JspC 自动生成。\n\
+-->\n\
+\n
+jspc.webinc.insertEnd=<!-- JSPC servlet 映射结束 -->
+jspc.webinc.insertStart=<!-- JSPC servlet 映射开始 -->
+jspc.webxml.footer=\n\
+</web-app>\n\
+\n
+
+org.apache.jasper.compiler.TldCache.servletContextNull=提供的 ServletContext 为 
null
+org.apache.jasper.servlet.TldScanner.webxmlAdd=从资源路径[{0} ]加载URI[{1}]的TLD
+org.apache.jasper.servlet.TldScanner.webxmlFailPathDoesNotExist=无法使用路径 [{0}] 和 
URI [{1}] 处理TLD。指定的路径不存在。
+
+xmlParser.skipBomFail=解析XML输入流时,跳过BOM失败。
diff --git a/java/org/apache/naming/LocalStrings_zh_CN.properties 
b/java/org/apache/naming/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..6c651d2
--- /dev/null
+++ b/java/org/apache/naming/LocalStrings_zh_CN.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+contextBindings.unknownContext=未知.上下文名:[{0}]
+
+namingContext.contextExpected=上下文Context未绑定名称name
+namingContext.failResolvingReference=解析引用时意外异常
+
+selectorContext.methodUsingName=用[{1}]的name属性调用方法[{0}]
diff --git a/java/org/apache/naming/factory/LocalStrings_zh_CN.properties 
b/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..e98790a
--- /dev/null
+++ b/java/org/apache/naming/factory/LocalStrings_zh_CN.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+resourceLinkFactory.nullType=引用全局资源 [{1}] 的本地资源链接 [{0}] 未指定所需的属性类型
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/dbcp/dbcp2/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..d981065
--- /dev/null
+++ b/java/org/apache/tomcat/dbcp/dbcp2/LocalStrings_zh_CN.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+poolableConnection.validate.fastFail=此连接上预先抛出了致命的 SQLException。
+
+poolingDataSource.factoryConfig=PoolableConnectionFactory 未连接到连接池。请调用 
setPool() 修复此配置。
+
+swallowedExceptionLogger.onSwallowedException=一个内部对象池吞并了一个异常。
diff --git a/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..9e68c80
--- /dev/null
+++ b/java/org/apache/tomcat/util/LocalStrings_zh_CN.properties
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+diagnostics.threadDumpTitle=打印全部线程
+diagnostics.vmInfoClassCompilation=:)class汇编
+diagnostics.vmInfoClassLoading=类加载中
+diagnostics.vmInfoLogger=日志记录器(Logger)信息
+diagnostics.vmInfoOs=操作系统信息
+diagnostics.vmInfoRuntime=运行时信息
+diagnostics.vmInfoSystem=系统.属性
+diagnostics.vmInfoThreadCounts=线程数
diff --git a/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..94a1a52
--- /dev/null
+++ b/java/org/apache/tomcat/util/buf/LocalStrings_zh_CN.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+uDecoder.convertHexDigit.notHex=[{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
new file mode 100644
index 0000000..c37fc6f
--- /dev/null
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+jreCompat.noApplicationProtocol=Java 运行时不支持 
SSLEngine.getApplicationProtocol()。要使用该功能你必须使用 Java 9。
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
new file mode 100644
index 0000000..df1fe90
--- /dev/null
+++ b/java/org/apache/tomcat/util/descriptor/web/LocalStrings_zh_CN.properties
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+filterDef.invalidFilterName=过滤器定义中的<filter-name> [{0}] 无效。
+
+webRuleSet.nameCount=<name>元素只能出现1次
+webRuleSet.postconstruct.duplicate=class [{0}] 有重复的 post 构造方法声明
+
+webXml.duplicateFilter=重复的过滤器名称 [{0}]
+webXml.duplicateServletMapping=名为 [{0}]和 [{1}] 
的servlet不能映射为一个url模式(url-pattern) [{2}]
+webXml.mergeConflictDisplayName=显示名称在多个片段中被定义,这些片段包含不同的值,包括位于[{1}]的[{0}]的片段。
+webXml.mergeConflictSessionCookieName=会话cookie名称在多个具有不同值的片段中定义不一致,包括位于 [{1}] 
的片段 [{0}]
+webXml.mergeConflictSessionTimeout=会话超时以不同值的多个片段不一致地定义,这些片段包括位于[{1}]的具有名称[{0}]的片段。
+webXml.mergeConflictSessionTrackingMode=会话跟踪模式在多个片段中定义不一致,包括位于[{1}]的名称为[{0}]的片段
+webXml.version.unknown=未知版本字符串 [{0}]。将使用默认版本。
diff --git a/java/org/apache/tomcat/util/digester/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/digester/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..fa98acf
--- /dev/null
+++ b/java/org/apache/tomcat/util/digester/LocalStrings_zh_CN.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+digester.failedToUpdateAttributes=属性[{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
new file mode 100644
index 0000000..7bd2e38
--- /dev/null
+++ b/java/org/apache/tomcat/util/http/LocalStrings_zh_CN.properties
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cookies.invalidCookieToken=Cookie:cookie无效。值不是令牌或引用值
+cookies.invalidSpecial=Cookies:未知特殊的Cookie
+
+parameters.copyFail=无法创建以调试日志记录为目的的原始参数值的副本
+parameters.decodeFail.debug=字符解码失败.参数 [{0}]和值 [{1}]被忽略
+parameters.fallToDebug=注:将在DEBUG级别记录更多参数错误。
+parameters.maxCountFail.fallToDebug=注意:更多的错误信息只在debug级别日志中记录
+
+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
new file mode 100644
index 0000000..636751f
--- /dev/null
+++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_zh_CN.properties
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cookie.valueNotPresent=<不存在>
+
+http.illegalCharacterIpv4=字符[{0}]为非法的IPv4地址。
+http.illegalCharacterIpv6=字符[{0}]为非法的IPv6地址。
+http.invalidHextet=hextet无效。 hextet必须包含4个或更少的十六进制字符。
+http.invalidLeadingZero=非零的IPv4字符可能不包含前导零。
+http.invalidOctet=无效字符[{0}].IPv4字符的有效范围为0~255。
+http.noClosingBracket=ipv6 地址缺失一个闭合的圆括号
+http.singleColonEnd=IPv6地址不能以单个“.”结尾。
+http.singleColonStart=一个IPv6地址也许不是以单个冒号":"开头的。
+http.tooManyColons=IPv6地址不能包含超过2个连续冒号字符。
+http.tooManyDoubleColons=一个IPv6地址只能包含一个 '::' 序列。
diff --git a/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..f370f95
--- /dev/null
+++ b/java/org/apache/tomcat/util/net/LocalStrings_zh_CN.properties
@@ -0,0 +1,67 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+channel.nio.ssl.closing=频道处于正在关闭(closing)的状态
+channel.nio.ssl.foundHttp=找到一个明文HTTP请求,它应该是一个加密的TLS连接
+channel.nio.ssl.invalidCloseState=无效的关闭状态,不会发送网络数据。
+channel.nio.ssl.sniDefault=无法缓冲足够的数据来确定请求的SNI主机名。使用默认值
+channel.nio.ssl.sniHostName=连接 [{0}]
+channel.nio.ssl.timeoutDuringHandshake=握手期间超时。
+channel.nio.ssl.unwrapFail=无法解包数据,无效状态 [{0}]
+channel.nio.ssl.unwrapFailResize=由于缓冲区太小无法解包数据,无效状态 [{0}]
+
+endpoint.apr.applyConf=正将OpenSSLConfCmd应用在SSL Context上。
+endpoint.apr.checkConf=检查配置OpenSSLConf
+endpoint.apr.errApplyConf=不能对SSL上下文应用OpenSSLConf  配置
+endpoint.apr.errMakeConf=无法创建OpenSSLConf 上下文
+endpoint.apr.pollAddInvalid=无效企图向一个轮询器中添加一个套接字[{0}]
+endpoint.apr.tooManyCertFiles=证书文件配置超过了
+endpoint.debug.channelCloseFail=关闭频道失败
+endpoint.debug.destroySocket=将销毁socket [{0}]
+endpoint.debug.socket=socket [{0}]
+endpoint.debug.socketCloseFail=关闭 socket 失败
+endpoint.debug.unlock.localNone=无法解除 [{0}] 的接受器,因为本地地址不可用
+endpoint.err.close=抓住异常试图关闭socket
+endpoint.err.unexpected=处理套接字时意外错误
+endpoint.init.notavail=APR.不可用
+endpoint.invalidJmxNameSslHostCert=对于SSLHostConfigCertificate关联的主机[{0}]和证书类型[{1}],无法生成有效的XML对象名称
+endpoint.nio.stopLatchAwaitInterrupted=在等待轮询器停止时,该线程被中断
+endpoint.nio.timeoutCme=处理超时异常. 这段代码已经被重复检查并且没有并发修改发现。如果你能重现这个错误,请提交一个tomcat 
bug, 提供重现步骤.
+endpoint.noSslHostConfig=没有找到带有hostName[{0}]的SSLHostConfig元素,以匹配连接器[{1}]的默认SSLHostConfigName
+endpoint.noSslHostName=SSL主机中没有被提供主机名
+endpoint.process.fail=分配 socket 处理器出错
+endpoint.processing.fail=运行.套接字处理器出错
+endpoint.removeDefaultSslHostConfig=默认SSLHostConfig(名为[{0}])可能未被移除
+endpoint.sendfile.addfail=发送文件(Sendfile)失败: [{0}] [{1}]
+endpoint.sendfile.error=未知的sendfile异常。
+endpoint.serverSocket.closeFailed=无法为 [{0}] 关闭服务器 socket
+endpoint.setAttribute=设置. [{0}] 到 [{1}]
+endpoint.timeout.err=处理套接字超时出错
+endpoint.warn.incorrectConnectionCount=连接数不正确,在同一个套接字上调用多个socket.close。
+endpoint.warn.noLocalAddr=无法确定套接字 [{0}] 的本地地址
+endpoint.warn.noLocalName=无法确定 socket [{0}] 的本地主机名
+endpoint.warn.noLocalPort=无法确定套接字 [{0}] 的本地端口
+endpoint.warn.noRemotePort=无法确定 socket [{0}] 的远程端口
+
+jsse.ssl3=SSLv3 已显式启用。 已知该协议是不安全。
+
+socket.apr.closed=与该链接所关联的 socket [{0}] 被关闭
+
+sslHostConfig.certificate.notype=指定了多个证书,并且至少有一个证书缺少必需的属性类型
+sslHostConfig.fileNotFound=配置文件 [{0}] 不存在
+
+sslImplementation.cnfe=无法为类 [{0}] 创建SSLImplementation
+
+sslUtilBase.noneSupported=SSL引擎不支持指定的[{0}]:[{1}]
diff --git a/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..514bc76
--- /dev/null
+++ b/java/org/apache/tomcat/util/net/jsse/LocalStrings_zh_CN.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+jsse.exceptionOnClose=无法关闭套接字
+jsse.invalid_ssl_conf=SSL configuration i无效,原因为 [{0}]。
+jsse.noDefaultCiphers=无法确定 [{0}] 的密码默认值。 设置显式值以确保连接器可以启动。
+jsse.pemParseError=无法从 [{0}] 解析 key
+
+jsseSupport.certTranslationError=错误的转换证书[{0}]
+jsseSupport.clientCertError=尝试从客户端获取证书时出错
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
new file mode 100644
index 0000000..aaeda54
--- /dev/null
+++ b/java/org/apache/tomcat/util/net/openssl/LocalStrings_zh_CN.properties
@@ -0,0 +1,34 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+engine.ciphersFailure=获取密码列表失败
+engine.emptyCipherSuite=空密码套件
+engine.engineClosed=引擎已经关闭
+engine.handshakeFailure=握手失败:[{0}]
+engine.noSession=SSL会话ID不可用
+engine.openSSLError=OpenSSL 错误:[{0}] 信息: [{1}]
+engine.writeToSSLFailed=写入SSL失败,返回:[{0}]
+
+keyManager.nullCertificateChain=证书链.为空
+
+openssl.X509FactoryError=获取X509工厂实例时出错
+openssl.addedClientCaCert=添加了客户端 CA 证书:[{0}]
+openssl.errMakeConf=无法创建OpenSSLConf上下文
+openssl.trustManagerMissing=没有找到.信任管理者
+
+opensslconf.checkFailed=检查OpenSSLConf时失败。
+opensslconf.finishFailed=OpenSSLConf 配置失败结果为 [{0}]
+
+sessionContext.nullTicketKeys=Null keys
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
new file mode 100644
index 0000000..ec2638d
--- /dev/null
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+jarScan.classloaderFail=在多级类加载器中扫描[{0}]失败
+jarScan.classloaderJarNoScan=跳过classpath路径[{0}]下的jar包扫描。
+jarScan.classloaderStart=在类加载器层次结构中扫描JAR
+jarScan.jarUrlStart=正在扫描URL [{0}] 上的JAR文件
+jarScan.webinfclassesFail=无法扫描/WEB-INF/classes
+jarScan.webinflibJarNoScan=没有扫描到/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
new file mode 100644
index 0000000..19ea675
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
@@ -0,0 +1,56 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+asyncChannelWrapperSecure.eof=意外的流结尾
+
+caseInsensitiveKeyMap.nullKey=不允许 Key 是 Null
+
+perMessageDeflate.deflateFailed=无法压缩这个WebSocket压缩结构
+
+util.notToken=一个非法的扩展参数被指定为名称[{0}]和值[{0}]
+util.unknownDecoderType=无法识别该解码器类型[{0}]
+
+wsFrame.byteToLongFail=提供了太多字节([{0}]),转换成一个长的字节。
+wsFrame.closed=在一个关闭的控制帧后受到了一个新的帧.
+wsFrame.controlFragmented=接收到分段的控制帧,但控制帧可能不被分割。
+wsFrame.controlNoFin=发送一个没有设置的控制帧。控制帧不允许使用连续帧。
+wsFrame.partialHeaderComplete=接收到WebSocket帧. fin [{0}], rsv [{1}], OpCode 
[{2}], payload 长度 [{3}]
+wsFrame.sessionClosed=无法处理客户端数据,因为会话已被关闭
+wsFrame.wrongRsv=对于具有opCode [{1}]的消息,客户端帧将保留位设置为[{0}],此端点不支持
+
+wsHandshakeRequest.invalidUri=字符串  [{0}] 不能用来组成一个有效的URI
+
+wsRemoteEndpoint.acquireTimeout=当前消息没有在指定的超时内完全发送
+wsRemoteEndpoint.changeType=发送分段消息时,所有片段必须是相同类型的。
+wsRemoteEndpoint.closed=由于 WebSocket session 已关闭,消息将不会被发送
+wsRemoteEndpoint.closedDuringMessage=因为 WebSocket session 被关闭,消息的剩余部分将不会被送达
+wsRemoteEndpoint.flushOnCloseFailed=会话关闭后仍然启用批处理消息。无法刷新剩余的批量消息
+wsRemoteEndpoint.noEncoder=没有为类 [{0}] 的对象指定编码器
+wsRemoteEndpoint.nullData=无效空的data 参数
+wsRemoteEndpoint.tooMuchData=ping或pong不应该发送超过125字节
+wsRemoteEndpoint.wrongState=远程 endpoint 处于 [{0}] 状态,是被调用方法的无效状态
+
+wsSession.created=创建WebSocket session [{0}]。
+wsSession.doClose=关闭 WebSocket session [{1}]
+wsSession.duplicateHandlerText=已配置文本消息处理器
+wsSession.instanceNew=endpoint 实例注册失败
+
+wsWebSocketContainer.asynchronousSocketChannelFail=无法打开与服务器的连接
+wsWebSocketContainer.missingLocationHeader=处理HTTP响应码 [{0}] 失败。响应头缺少Location
+wsWebSocketContainer.missingWWWAuthenticateHeader=无法处理HTTP响应代码[{0}]。 
缺少WWW-Authenticate标头作为响应
+wsWebSocketContainer.pathNoHost=URI中未指定主机
+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
new file mode 100644
index 0000000..370535e
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/pojo/LocalStrings_zh_CN.properties
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+pojoEndpointServer.getPojoInstanceFail=创建类型为 [{0}] 的 POJO 实例失败
+
+pojoMessageHandlerWhole.decodeIoFail=解码消息时出现IO错误
+
+pojoMethodMapping.duplicateAnnotation=类[{1}]上存在的重复注释[{0}]
+pojoMethodMapping.duplicateLastParam=用OnMessage注释的类[{1}]的方法[{0}]上存在多个布尔参数(最后的)
+pojoMethodMapping.invalidDecoder=这个特定类型的解码器[{0}]无法被实例化
+pojoMethodMapping.noDecoder=在用onMessage注释的类[{1}]的方法[{0}]上找不到消息参数的解码器。
+
+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
new file mode 100644
index 0000000..7f65c7e
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/server/LocalStrings_zh_CN.properties
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+serverContainer.failedDeployment=由于以前的部署失败,不允许将WebSocket终结点部署到主机[{1}]中路径为[{0}]的Web应用程序
+serverContainer.pojoDeploy=POJO 类 [{0}] 在 ServletContext [{2}] 中部署到路径 [{1}]
+serverContainer.servletContextMissing=没有指定ServletContext
+
+upgradeUtil.incompatibleRsv=指定扩展名具有不兼容的RSV位使用
+
+uriTemplate.invalidPath=路径 [{0}] 无效。
+
+wsFrameServer.bytesRead=将[{0}]个字节读入输入缓冲区,准备进行处理
+wsFrameServer.onDataAvailable=进入方法
diff --git a/res/maven/mvn-pub.xml b/res/maven/mvn-pub.xml
index 03f0f23..ef99aea 100644
--- a/res/maven/mvn-pub.xml
+++ b/res/maven/mvn-pub.xml
@@ -303,7 +303,7 @@
     <doMavenDeployNoSrc artifactId="tomcat-i18n-ja"/>
     <doMavenDeployNoSrc artifactId="tomcat-i18n-ko"/>
     <doMavenDeployNoSrc artifactId="tomcat-i18n-ru"/>
-
+    <doMavenDeployNoSrc artifactId="tomcat-i18n-zh-CN"/>
     <!-- Extras jars -->
     <doMavenDeploy artifactId="tomcat-catalina-jmx-remote"
         groupId="org.apache.tomcat.extras"
diff --git a/res/maven/tomcat-i18n-zh-CN.pom b/res/maven/tomcat-i18n-zh-CN.pom
new file mode 100644
index 0000000..de53ab5
--- /dev/null
+++ b/res/maven/tomcat-i18n-zh-CN.pom
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+  http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.tomcat</groupId>
+  <artifactId>tomcat-i18n-zh-CN</artifactId>
+  <version>@MAVEN.DEPLOY.VERSION@</version>
+  <description>Simplified Chinese translations</description>
+  <url>https://tomcat.apache.org/</url>
+  <licenses>
+    <license>
+      <name>Apache License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+</project>
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index c8279f7..96e92c2 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -75,6 +75,10 @@
       <add>
         Add Korean translations to the standard Tomcat distribution. (markt)
       </add>
+      <add>
+        Add Simplifed Chinese translations to the standard Tomcat distribution.
+        (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
new file mode 100644
index 0000000..694b3fd
--- /dev/null
+++ b/webapps/examples/WEB-INF/classes/LocalStrings_zh_CN.properties
@@ -0,0 +1,38 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cookies.make-cookie=创建一个发送到你的浏览器的cookie
+cookies.name=名.称:
+cookies.no-cookies=你的浏览器未发送任何cookie
+cookies.set=你刚刚将以下cookie发送到你的浏览器:
+
+helloworld.title=你好,世界.
+
+requestheader.title=请求 Header 示例
+
+requestinfo.label.method=方法:
+requestinfo.label.protocol=协议:
+requestinfo.label.remoteaddr=远程地址:
+requestinfo.title=请求信息范例
+
+requestparams.firstname=姓:
+requestparams.no-params=没有参数,请输入一些
+requestparams.params-in-req=参数在请求中.
+requestparams.title=请求参数示例
+
+sessions.adddata=将数据添加到你的会话中
+sessions.id=会话ID:
+sessions.lastaccessed=最后访问:
+sessions.title=会话.示例


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

Reply via email to