You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2019/07/30 14:26:35 UTC

[tomcat] 02/04: Align with 8.5.x: i18n improvements

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

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

commit a8db40e5af495da0d854bf670e1e25d7198edff9
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Jul 30 15:14:20 2019 +0100

    Align with 8.5.x: i18n improvements
---
 .../org/apache/catalina/filters/ExpiresFilter.java |  5 +-
 java/org/apache/catalina/filters/FilterBase.java   |  2 +-
 .../catalina/filters/LocalStrings.properties       | 50 +++++++++--------
 .../catalina/filters/LocalStrings_es.properties    | 47 +++++++++-------
 .../catalina/filters/LocalStrings_fr.properties    | 51 ++++++++++++++++-
 .../catalina/filters/LocalStrings_ja.properties    | 65 ++++++++++++++++++++++
 ...gs_fr.properties => LocalStrings_ru.properties} |  6 +-
 .../apache/catalina/filters/RemoteIpFilter.java    |  8 ++-
 .../apache/catalina/filters/WebdavFixFilter.java   | 15 ++---
 9 files changed, 188 insertions(+), 61 deletions(-)

diff --git a/java/org/apache/catalina/filters/ExpiresFilter.java b/java/org/apache/catalina/filters/ExpiresFilter.java
index 983fabb..b4dce2e 100644
--- a/java/org/apache/catalina/filters/ExpiresFilter.java
+++ b/java/org/apache/catalina/filters/ExpiresFilter.java
@@ -1055,9 +1055,8 @@ public class ExpiresFilter extends FilterBase {
             try {
                 ints[i] = Integer.parseInt(intAsString);
             } catch (NumberFormatException e) {
-                throw new RuntimeException("Exception parsing number '" + i +
-                        "' (zero based) of comma delimited list '" +
-                        commaDelimitedInts + "'");
+                throw new RuntimeException(sm.getString("expiresFilter.numberError",
+                        Integer.valueOf(i), commaDelimitedInts));
             }
         }
         return ints;
diff --git a/java/org/apache/catalina/filters/FilterBase.java b/java/org/apache/catalina/filters/FilterBase.java
index 5b438d6..9360c91 100644
--- a/java/org/apache/catalina/filters/FilterBase.java
+++ b/java/org/apache/catalina/filters/FilterBase.java
@@ -32,7 +32,7 @@ import org.apache.tomcat.util.res.StringManager;
  */
 public abstract class FilterBase implements Filter {
 
-    protected static final StringManager sm = StringManager.getManager(Constants.Package);
+    protected static final StringManager sm = StringManager.getManager(FilterBase.class);
 
     protected abstract Log getLogger();
 
diff --git a/java/org/apache/catalina/filters/LocalStrings.properties b/java/org/apache/catalina/filters/LocalStrings.properties
index 01d1a6a..41a4bef 100644
--- a/java/org/apache/catalina/filters/LocalStrings.properties
+++ b/java/org/apache/catalina/filters/LocalStrings.properties
@@ -25,28 +25,29 @@ corsFilter.wrongType2=Expects a HttpServletRequest object of type [{0}] or [{1}]
 
 csrfPrevention.invalidRandomClass=Unable to create Random source using class [{0}]
 
-expiresFilter.exceptionProcessingParameter=Exception processing configuration parameter "{0}":"{1}"
-expiresFilter.expirationHeaderAlreadyDefined=Request "{0}" with response status "{1}" content-type "{2}", expiration header already defined
-expiresFilter.filterInitialized=Filter initialized with configuration {0}
-expiresFilter.invalidDurationNumber=Invalid duration (number) "{0}" in directive "{1}"
-expiresFilter.invalidDurationUnit=Invalid duration unit (years|months|weeks|days|hours|minutes|seconds) "{0}" in directive "{1}"
-expiresFilter.noDurationFound=Duration not found in directive "{0}"
-expiresFilter.noDurationUnitAfterAmount=Duration unit not found after amount "{0}" in directive "{1}"
-expiresFilter.noExpirationConfigured=Request "{0}" with response status "{1}" content-type "{2}", no expiration configured
-expiresFilter.noExpirationConfiguredForContentType=No Expires configuration found for content-type "{0}"
-expiresFilter.responseAlreadyCommited=Request "{0}", can not apply ExpiresFilter on already committed response.
-expiresFilter.setExpirationDate=Request "{0}" with response status "{1}" content-type "{2}", set expiration date {3}
-expiresFilter.skippedStatusCode=Request "{0}" with response status "{1}" content-type "{1}", skip expiration header generation for given status
-expiresFilter.startingPointInvalid=Invalid starting point (access|now|modification|a<seconds>|m<seconds>) "{0}" in directive "{1}"
-expiresFilter.startingPointNotFound=Starting point (access|now|modification|a<seconds>|m<seconds>) not found in directive "{0}"
-expiresFilter.unknownParameterIgnored=Unknown parameter "{0}" with value "{1}" is ignored !
-expiresFilter.unsupportedStartingPoint=Unsupported startingPoint "{0}"
-expiresFilter.useDefaultConfiguration=Use default {0} for content-type "{1}" returns {2}
-expiresFilter.useMatchingConfiguration=Use {0} matching "{1}" for content-type "{2}" returns {3}
-
-filterbase.noSuchProperty=The property "{0}" is not defined for filters of type "{1}"
-
-http.403=Access to the specified resource ({0}) has been forbidden.
+expiresFilter.exceptionProcessingParameter=Exception processing configuration parameter [{0}]:[{1}]
+expiresFilter.expirationHeaderAlreadyDefined=Request [{0}] with response status [{1}] content-type [{2}], expiration header already defined
+expiresFilter.filterInitialized=Filter initialized with configuration [{0}]
+expiresFilter.invalidDurationNumber=Invalid duration (number) [{0}] in directive [{1}]
+expiresFilter.invalidDurationUnit=Invalid duration unit (years|months|weeks|days|hours|minutes|seconds) [{0}] in directive [{1}]
+expiresFilter.noDurationFound=Duration not found in directive [{0}]
+expiresFilter.noDurationUnitAfterAmount=Duration unit not found after amount [{0}] in directive [{1}]
+expiresFilter.noExpirationConfigured=Request [{0}] with response status [{1}] content-type [{2}], no expiration configured
+expiresFilter.noExpirationConfiguredForContentType=No Expires configuration found for content-type [{0}]
+expiresFilter.numberError=Exception parsing number at position [{0}] (zero based) in comma delimited list [{1}]
+expiresFilter.responseAlreadyCommited=Request [{0}], cannot apply ExpiresFilter on already committed response.
+expiresFilter.setExpirationDate=Request [{0}] with response status [{1}] content-type [{2}], set expiration date [{3}]
+expiresFilter.skippedStatusCode=Request [{0}] with response status [{1}] content-type [{1}], skip expiration header generation for given status
+expiresFilter.startingPointInvalid=Invalid starting point (access|now|modification|a<seconds>|m<seconds>) [{0}] in directive [{1}]
+expiresFilter.startingPointNotFound=Starting point (access|now|modification|a<seconds>|m<seconds>) not found in directive [{0}]
+expiresFilter.unknownParameterIgnored=Unknown parameter [{0}] with value [{1}] is ignored !
+expiresFilter.unsupportedStartingPoint=Unsupported startingPoint [{0}]
+expiresFilter.useDefaultConfiguration=Use default [{0}] for content-type [{1}] returns [{2}]
+expiresFilter.useMatchingConfiguration=Use [{0}] matching [{1}] for content-type [{2}] returns [{3}]
+
+filterbase.noSuchProperty=The property [{0}] is not defined for filters of type [{1}]
+
+http.403=Access to the specified resource [{0}] has been forbidden.
 
 httpHeaderSecurityFilter.clickjack.invalid=An invalid value [{0}] was specified for the anti click-jacking header
 httpHeaderSecurityFilter.committed=Unable to add HTTP headers since response is already committed on entry to the HTTP header security Filter
@@ -54,6 +55,11 @@ httpHeaderSecurityFilter.committed=Unable to add HTTP headers since response is
 remoteCidrFilter.invalid=Invalid configuration provided for [{0}]. See previous messages for details.
 remoteCidrFilter.noRemoteIp=Client does not have an IP address. Request denied.
 
+remoteIpFilter.invalidNumber=Illegal number for parameter [{0}]: [{1}]
+
 requestFilter.deny=Denied request for [{0}] based on property [{1}]
 
 restCsrfPreventionFilter.invalidNonce=CSRF nonce validation failed
+
+webDavFilter.xpProblem=WebdavFixFilter: the XP-x64-SP2 client is known not to work with WebDAV Servlet
+webDavFilter.xpRootContext=WebdavFixFilter: the XP-x64-SP2 client will only work with the root context
diff --git a/java/org/apache/catalina/filters/LocalStrings_es.properties b/java/org/apache/catalina/filters/LocalStrings_es.properties
index f60df73..cf6199c 100644
--- a/java/org/apache/catalina/filters/LocalStrings_es.properties
+++ b/java/org/apache/catalina/filters/LocalStrings_es.properties
@@ -15,23 +15,30 @@
 
 addDefaultCharset.unsupportedCharset=El conjunto especificado de caracteres [{0}] no se encuentra soportado
 
-csrfPrevention.invalidRandomClass=No pude crear fuente al azar usando la clase [{0}]
-
-expiresFilter.exceptionProcessingParameter=Excepción al procesar parámetro de configuración "{0}":"{1}"
-expiresFilter.expirationHeaderAlreadyDefined=Ya se ha definido cabecera de expiración para el requerimiento "{0}" con status de respuesta "{1}" y content-type "{2}"
-expiresFilter.filterInitialized=Filtro inicializado con configuración {0}
-expiresFilter.noExpirationConfigured=No se ha configurado expiración para el requerimiento "{0}" con status de respuesta "{1}" y content-type "{2}"
-expiresFilter.noExpirationConfiguredForContentType=No se ha hallado configuración de Expiración para content-type "{0}"
-expiresFilter.responseAlreadyCommited=El requerimiento "{0}", no puede aplicar ExpiresFilter en respuesta ya acometida.
-expiresFilter.setExpirationDate=El requerimiento "{0}" con status de respuesta "{1}" y content-type "{2}", pone fecha de expiración a {3}
-expiresFilter.skippedStatusCode=Generación de cabecera de expiración saltada para el requerimiento "{0}" con status de respuesta "{1}" y content-type "{2}"
-expiresFilter.startingPointInvalid=Punto de arranque inválido (access|now|modification|a<seconds>|m<seconds>) "{0}" en la directiva "{1}"
-expiresFilter.startingPointNotFound=Punto de Arranque (access|now|modification|a<seconds>|m<seconds>) no hallado en la directiva "{0}"
-expiresFilter.unknownParameterIgnored=¡Se ignora el parámetro desconocido "{0}" con valor "{1}" especificado!
-expiresFilter.unsupportedStartingPoint=No soportado startingPoint "{0}"
-expiresFilter.useDefaultConfiguration=El uso de {0} por defecto para content-type "{1}" devuelve {2}
-expiresFilter.useMatchingConfiguration=El Uso de {0} coincidente con "{1}" para content-type "{2}" devuelve {3}
-
-filterbase.noSuchProperty=La propiedad "{0}" no está definida para los filtros del tipo "{1}"
-
-http.403=El acceso al recurso especificado ({0}) ha sido prohibido.
+corsFilter.invalidPreflightMaxAge=Incapáz de procesar preflightMaxAge
+corsFilter.nullRequestType=Objeto CORSRequestType es nulo\n
+
+csrfPrevention.invalidRandomClass=No se puede crear fuente aleatórea usando la clase [{0}]
+
+expiresFilter.exceptionProcessingParameter=Excepción al procesar parámetro de configuración [{0}]:[{1}]
+expiresFilter.expirationHeaderAlreadyDefined=Ya se ha definido cabecera de expiración para el requerimiento [{0}] con status de respuesta [{1}] y content-type [{2}]
+expiresFilter.filterInitialized=Filtro inicializado con configuración [{0}]
+expiresFilter.noExpirationConfigured=No se ha configurado expiración para el requerimiento [{0}] con status de respuesta [{1}] y content-type [{2}]
+expiresFilter.noExpirationConfiguredForContentType=No se ha hallado configuración de Expiración para content-type [{0}]
+expiresFilter.responseAlreadyCommited=El requerimiento [{0}], no puede aplicar ExpiresFilter en respuesta ya acometida.
+expiresFilter.setExpirationDate=El requerimiento [{0}] con status de respuesta [{1}] y content-type [{2}], pone fecha de expiración a [{3}]
+expiresFilter.skippedStatusCode=Generación de cabecera de expiración saltada para el requerimiento [{0}] con status de respuesta [{1}] y content-type [{2}]
+expiresFilter.startingPointInvalid=Punto de arranque inválido (access|now|modification|a<seconds>|m<seconds>) [{0}] en la directiva [{1}]
+expiresFilter.startingPointNotFound=Punto de Arranque (access|now|modification|a<seconds>|m<seconds>) no hallado en la directiva [{0}]
+expiresFilter.unknownParameterIgnored=¡Se ignora el parámetro desconocido [{0}] con valor [{1}] especificado!
+expiresFilter.unsupportedStartingPoint=startingPoint [{0}] no soportado
+expiresFilter.useDefaultConfiguration=El uso de [{0}] por defecto para content-type [{1}] devuelve [{2}]
+expiresFilter.useMatchingConfiguration=El Uso de [{0}] coincidente con [{1}] para content-type [{2}] devuelve [{3}]
+
+filterbase.noSuchProperty=La propiedad [{0}] no está definida para los filtros del tipo [{1}]
+
+http.403=El acceso al recurso especificado [{0}] ha sido prohibido.
+
+httpHeaderSecurityFilter.clickjack.invalid=An invalid value [{0}] was specified for the anti click-jacking header
+
+requestFilter.deny=Solicitud [{0}] denegada debido a propiedad [{1}]
diff --git a/java/org/apache/catalina/filters/LocalStrings_fr.properties b/java/org/apache/catalina/filters/LocalStrings_fr.properties
index 0bfcd68..e2bfee6 100644
--- a/java/org/apache/catalina/filters/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/filters/LocalStrings_fr.properties
@@ -13,4 +13,53 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-http.403=L''accès à la ressource demandée ({0}) a été interdit.
+addDefaultCharset.unsupportedCharset=Le jeu de caractères [{0}] spécifié n''est pas supporté
+
+corsFilter.invalidPreflightMaxAge=Incapable d'analyser "preflightMaxAge"
+corsFilter.invalidSupportsCredentials=Il est interdit de configurer supportsCredentials=[true] alors que allowedOrigins=[*]
+corsFilter.nullRequest=L'objet HttpServletRequest est nul
+corsFilter.nullRequestType=L'objet CORSRequestType est nul
+corsFilter.onlyHttp=CORS ne supporte pas des requêtes ou des réponses non HTTP
+corsFilter.wrongType1=Attente d''un objet HttpServletRequest de type [{0}]
+corsFilter.wrongType2=Attendu un object HttpServletRequest de type [{0}] ou [{1}]
+
+csrfPrevention.invalidRandomClass=Impossible de créer une source aléatoire ("Random source") à l''aide de la classe [{0}]
+
+expiresFilter.exceptionProcessingParameter=Erreur lors du traitement du paramètre de configuration [{0}]:[{1}]
+expiresFilter.expirationHeaderAlreadyDefined=Requête [{0}] de statut de réponse [{1}] et de type de contenu ("content-type") [{2}], en-tête d''expiration déjà défini
+expiresFilter.filterInitialized=Le filtre a été initialisé avec la configuration [{0}]
+expiresFilter.invalidDurationNumber=Durée (nombre) invalide [{0}] dans la directive [{1}]
+expiresFilter.invalidDurationUnit=Unité de durée invalide (years|months|weeks|days|hours|minutes|seconds) [{0}] dans la directive [{1}]
+expiresFilter.noDurationFound=La durée n''a pas été trouvée dans la directive [{0}]
+expiresFilter.noDurationUnitAfterAmount=L''unité de durée n''a pas été trouvée après le nombre [{0}] dans la directive [{1}]
+expiresFilter.noExpirationConfigured=Requête [{0}] avec statut de réponse [{1}] et content-type [{2}], pas d''expiration configurée
+expiresFilter.noExpirationConfiguredForContentType=La configuration "Expires" pour le type de contenu [{0}] n''est pas trouvée.
+expiresFilter.numberError=Erreur lors de l''analyse du nombre à la position [{0}] (basée sur zéro) de la liste délimitée par une virgule [{1}]
+expiresFilter.responseAlreadyCommited=Impossible d''appliquer le ExpiresFilter pour la requête [{0}] car la réponse a déjà été envoyée
+expiresFilter.setExpirationDate=La requête [{0}] avec le status de réponse [{1}] content-type [{2}], a fixé la date d''expiration [{3}]
+expiresFilter.skippedStatusCode=La requête [{0}] avec le code de réponse [{1}] content-type [{2}], l''en-tête expiration ne sera pas généré pour ce statut
+expiresFilter.startingPointInvalid=Point de départ invalide (access|now|modification|a<secondes>|m<secondes>) [{0}] dans la directive [{1}]\n
+expiresFilter.startingPointNotFound=Le point de départ (access|now|modification|a<seconds>|m<seconds>) n''est pas présent dans la directive [{0}]
+expiresFilter.unknownParameterIgnored=Le paramètre inconnu [{0}] dont la valeur est [{1}] est ignoré
+expiresFilter.unsupportedStartingPoint=startingPoint [{0}] non supporté.
+expiresFilter.useDefaultConfiguration=Utilisation du défaut [{0}] pour le content-type [{1}] qui renvoie [{2}]
+expiresFilter.useMatchingConfiguration=Utilisation de [{0}], satisfaisant [{1}] pour le content-type [{2}] et retournant [{3}]
+
+filterbase.noSuchProperty=La propriété [{0}] n''est pas définie pour les filtres du type [{1}]
+
+http.403=L''accès à la ressource demandée [{0}] a été interdit.
+
+httpHeaderSecurityFilter.clickjack.invalid=Une valeur invalide [{0}] a été spécifiée pour le header "anti click-jacking"
+httpHeaderSecurityFilter.committed=Impossible d'ajouter les en-têtes HTTP car la réponse a déjà été envoyée avant l'invocation du filtre de sécurité des en-têtes
+
+remoteCidrFilter.invalid=Une configuration invalide a été fournie pour [{0}], voir les précédents messages pour les détails
+remoteCidrFilter.noRemoteIp=Le client n'a pas d'adresse IP.  Requête rejetée.
+
+remoteIpFilter.invalidNumber=Nombre invalide pour le paramètre [{0}]: [{1}]
+
+requestFilter.deny=Requête refusée pour [{0}] basée sur la propriété [{1}]
+
+restCsrfPreventionFilter.invalidNonce=La validation du nonce de CSRF a échouée
+
+webDavFilter.xpProblem=WebdavFixFilter: le client de XP-x64-SP2 est réputé ne pas fonctionner avec le Servlet WebDAV
+webDavFilter.xpRootContext=WebdavFixFilter: le client de XP-x64-SP2 ne peut fonctionner que le le contexte racine
diff --git a/java/org/apache/catalina/filters/LocalStrings_ja.properties b/java/org/apache/catalina/filters/LocalStrings_ja.properties
new file mode 100644
index 0000000..1f6de03
--- /dev/null
+++ b/java/org/apache/catalina/filters/LocalStrings_ja.properties
@@ -0,0 +1,65 @@
+# 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.
+
+addDefaultCharset.unsupportedCharset=指定された文字セット[{0}]はサポートされていません。
+
+corsFilter.invalidPreflightMaxAge=preflightMaxAgeを解析出来ません
+corsFilter.invalidSupportsCredentials=allowedOrigins = [*]の場合、supportsCredentials = [true]を設定することはできません。
+corsFilter.nullRequest=HttpServletRequestオブジェクトがnullです
+corsFilter.nullRequestType=CORSRequestType オブジェクトが null です。
+corsFilter.onlyHttp=CORSは非HTTPリクエストまたはレスポンスをサポートしていません。
+corsFilter.wrongType1=[{0}]型のHttpServletRequestオブジェクトが必要です
+corsFilter.wrongType2=[{0}]型または[{1}]型のHttpServletRequest オブジェクトが必要です。
+
+csrfPrevention.invalidRandomClass=乱数生成器クラス [{0}] のインスタンスが作成できませんでした。
+
+expiresFilter.exceptionProcessingParameter=構成パラメータ[{0}]:[{1}]処理中の例外
+expiresFilter.expirationHeaderAlreadyDefined=レスポンスステータス[{1}]がコンテンツタイプ[{2}]のリクエスト[{0}、expirationヘッダーがすでに定義されています。
+expiresFilter.filterInitialized=設定[{0}]で初期化されたFilter
+expiresFilter.invalidDurationNumber=ディレクティブ[{1}]の無効な期間(number)[{0}]
+expiresFilter.invalidDurationUnit=  ディレクティブ[{1}]で期間ユニットが無効です。(years|months|weeks|days|hours|minutes|seconds) [{0}] \n
+expiresFilter.noDurationFound=ディレクティブ[{0}]にDuration が見つかりません
+expiresFilter.noDurationUnitAfterAmount=ディレクティブ[{1}]のamount[{0}]の後にDuration 単位が見つかりません。
+expiresFilter.noExpirationConfigured=リクエスト [{0}] に対するレスポンスは応答コード [{1} コンテントタイプ [{2}] です。有効期限は未設定です。
+expiresFilter.noExpirationConfiguredForContentType=Content-Type [{0}] に有効期限が設定されていません。
+expiresFilter.numberError=カンマ区切りリスト [{1}] の [{0}] 番目(ゼロ開始)の数値を解析中の例外
+expiresFilter.responseAlreadyCommited=リクエスト[{0}]は、すでにコミットされたレスポンスに対してExpiresFilterを適用できません。
+expiresFilter.setExpirationDate=レスポンスステータス[{1}]のコンテンツタイプ[{2}]、有効期限[{3}]を設定するリクエスト[{0}]
+expiresFilter.skippedStatusCode=レスポンスステータス[{1}] content-type [{1}]のリクエスト[{0}]、指定されたステータスのexpiration ヘッダーの生成をスキップします。
+expiresFilter.startingPointInvalid=ディレクティブ[{1}]の無効な開始点(access|now|modification|a<seconds>|m<seconds>)[{0}]
+expiresFilter.startingPointNotFound=ディレクティブ[{0}]に開始点(access|now|modification|a<seconds>|m<seconds>)が見つかりません
+expiresFilter.unknownParameterIgnored=値[{1}]を持つ未知のパラメータ[{0}]は無視されます!
+expiresFilter.unsupportedStartingPoint=[{0}] は未対応の開始点です。
+expiresFilter.useDefaultConfiguration=コンテンツタイプ[{1}]にデフォルト[{0}]を使用すると[{2}]が返されます。
+expiresFilter.useMatchingConfiguration=content-type[{2}]が[{3}]を返すため、[{1}]と一致する[{0}]を使用します
+
+filterbase.noSuchProperty=[{1}]タイプのフィルタにはプロパティ[{0}]が定義されていません。
+
+http.403=指定されたリソース [{0}] へのアクセスは拒否されました。
+
+httpHeaderSecurityFilter.clickjack.invalid=アンチクリックジャッキングヘッダーに不正な値 [{0}] が指定されました。
+httpHeaderSecurityFilter.committed=HTTPヘッダーセキュリティフィルターへの入力時に既に応答がコミットされているため、HTTPヘッダーを追加できません。
+
+remoteCidrFilter.invalid=[{0}] に不正な値が指定されました。詳細は直前のメッセージを参照してください。
+remoteCidrFilter.noRemoteIp=クライアントは IP アドレスを持っていません。リクエストを拒否します。
+
+remoteIpFilter.invalidNumber=パラメータ[{0}]: [{1}]に不正な番号があります。
+
+requestFilter.deny=プロパティ [{1}] に従い  [{0}] へのリクエストを拒否しました。
+
+restCsrfPreventionFilter.invalidNonce=CSRF nonce の検証に失敗しました。
+
+webDavFilter.xpProblem=WebdavFixFilter:XP-x64-SP2クライアントはWebDAVサーブレットで動作しないことが知られています
+webDavFilter.xpRootContext=WebdavFixFilter:XP-x64-SP2クライアントはルートコンテキストでのみ動作します
diff --git a/java/org/apache/catalina/filters/LocalStrings_fr.properties b/java/org/apache/catalina/filters/LocalStrings_ru.properties
similarity index 71%
copy from java/org/apache/catalina/filters/LocalStrings_fr.properties
copy to java/org/apache/catalina/filters/LocalStrings_ru.properties
index 0bfcd68..07bc422 100644
--- a/java/org/apache/catalina/filters/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/filters/LocalStrings_ru.properties
@@ -13,4 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-http.403=L''accès à la ressource demandée ({0}) a été interdit.
+corsFilter.invalidPreflightMaxAge=Невозможно обработать значение preflightMaxAge
+
+csrfPrevention.invalidRandomClass=Невозможно создать Случайный источник с помощью [{0}]
+
+http.403=Доступ к ресурсу [{0}] был запрещён.
diff --git a/java/org/apache/catalina/filters/RemoteIpFilter.java b/java/org/apache/catalina/filters/RemoteIpFilter.java
index 2830ac7..b399854 100644
--- a/java/org/apache/catalina/filters/RemoteIpFilter.java
+++ b/java/org/apache/catalina/filters/RemoteIpFilter.java
@@ -46,6 +46,7 @@ import org.apache.catalina.AccessLog;
 import org.apache.catalina.Globals;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.res.StringManager;
 
 /**
  * <p>
@@ -656,7 +657,8 @@ public class RemoteIpFilter implements Filter {
 
     // Log must be non-static as loggers are created per class-loader and this
     // Filter may be used in multiple class loaders
-    private final Log log = LogFactory.getLog(RemoteIpFilter.class); // must not be static
+    private final Log log = LogFactory.getLog(RemoteIpFilter.class);
+    protected static final StringManager sm = StringManager.getManager(RemoteIpFilter.class);
 
     protected static final String PROTOCOL_HEADER_PARAMETER = "protocolHeader";
 
@@ -1014,7 +1016,7 @@ public class RemoteIpFilter implements Filter {
             try {
                 setHttpServerPort(Integer.parseInt(filterConfig.getInitParameter(HTTP_SERVER_PORT_PARAMETER)));
             } catch (NumberFormatException e) {
-                throw new NumberFormatException("Illegal " + HTTP_SERVER_PORT_PARAMETER + " : " + e.getMessage());
+                throw new NumberFormatException(sm.getString("remoteIpFilter.invalidNumber", HTTP_SERVER_PORT_PARAMETER, e.getLocalizedMessage()));
             }
         }
 
@@ -1022,7 +1024,7 @@ public class RemoteIpFilter implements Filter {
             try {
                 setHttpsServerPort(Integer.parseInt(filterConfig.getInitParameter(HTTPS_SERVER_PORT_PARAMETER)));
             } catch (NumberFormatException e) {
-                throw new NumberFormatException("Illegal " + HTTPS_SERVER_PORT_PARAMETER + " : " + e.getMessage());
+                throw new NumberFormatException(sm.getString("remoteIpFilter.invalidNumber", HTTPS_SERVER_PORT_PARAMETER, e.getLocalizedMessage()));
             }
         }
     }
diff --git a/java/org/apache/catalina/filters/WebdavFixFilter.java b/java/org/apache/catalina/filters/WebdavFixFilter.java
index 93608b8..ce9630d 100644
--- a/java/org/apache/catalina/filters/WebdavFixFilter.java
+++ b/java/org/apache/catalina/filters/WebdavFixFilter.java
@@ -27,6 +27,8 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.tomcat.util.res.StringManager;
+
 /**
  * Filter that attempts to force MS WebDAV clients connecting on port 80 to use
  * a WebDAV client that actually works. Other workarounds that might help
@@ -59,8 +61,7 @@ import javax.servlet.http.HttpServletResponse;
  */
 public class WebdavFixFilter implements Filter {
 
-    private static final String LOG_MESSAGE_PREAMBLE =
-        "WebdavFixFilter: Detected client problem: ";
+    protected static final StringManager sm = StringManager.getManager(WebdavFixFilter.class);
 
     /* Start string for all versions */
     private static final String UA_MINIDIR_START =
@@ -110,12 +111,11 @@ public class WebdavFixFilter implements Filter {
         } else if (ua.startsWith(UA_MINIDIR_5_2_3790)) {
             // XP 64-bit SP2
             if (!"".equals(httpRequest.getContextPath())) {
-                log(request,
-                        "XP-x64-SP2 clients only work with the root context");
+                request.getServletContext().log(sm.getString("webDavFilter.xpRootContext"));
             }
             // Namespace issue maybe
             // see http://greenbytes.de/tech/webdav/webdav-redirector-list.html
-            log(request, "XP-x64-SP2 is known not to work with WebDAV Servlet");
+            request.getServletContext().log(sm.getString("webDavFilter.xpProblem"));
 
             chain.doFilter(request, response);
         } else {
@@ -141,9 +141,4 @@ public class WebdavFixFilter implements Filter {
         return location.toString();
     }
 
-    private void log(ServletRequest request, String msg) {
-        StringBuilder builder = new StringBuilder(LOG_MESSAGE_PREAMBLE);
-        builder.append(msg);
-        request.getServletContext().log(builder.toString());
-    }
 }


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