diff --git a/build.xml b/build.xml
index a0151b331..92071853f 100644
--- a/build.xml
+++ b/build.xml
@@ -36,7 +36,7 @@
-
+
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/blocks/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/blocks/messages_es.properties
new file mode 100755
index 000000000..84d7355ab
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/blocks/messages_es.properties
@@ -0,0 +1,11 @@
+block.empty=Bloque {0} vacío.
+block.nested=Evitar bloques anidados.
+block.noStmt=Debe tener al menos una sentencia.
+
+line.alone=''{0}'' debería estar solo en una línea.
+line.new=''{0}'' debería estar en una nueva línea.
+line.previous=''{0}'' debería estar en la línea anterior.
+line.same=''{0}'' debería estar en la misma línea.
+
+needBraces=La construcción ''{0}'' debe usar '''{}'' (llaves).
+
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/messages_es.properties
new file mode 100755
index 000000000..f416940c3
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/messages_es.properties
@@ -0,0 +1,84 @@
+array.trailing.comma=El array debería llevar una coma al final.
+
+assignment.inner.avoid=Deben evitarse las asignaciones internas.
+
+covariant.equals=equals covariante sin sobrescribir equals(java.lang.Object).
+
+doublechecked.locking.avoid=La construcción double-checked locking es incorrecta y debe evitarse.
+
+empty.statement=Sentencia vacía.
+
+equals.noHashCode=Definición de ''equals()'' sin la correspondiente definición de ''hashCode()''.
+
+final.variable=La variable ''{0}'' debe declararse final.
+
+hidden.field=''{0}'' oculta un campo.
+
+illegal.token=El uso de ''{0}'' no esta permitido.
+
+illegal.token.text=El texto del token coincide con el patrón ilegal ''{0}''.
+
+instantiation.avoid=Debería evitarse la instanciación de {0}.
+
+inline.conditional.avoid=Evitar los condicionales en línea.
+
+magic.number=''{0}'' es un número mágico.
+
+missing.super.call=El método ''{0}'' debería llamar a ''super.{0}''.
+missing.switch.default=switch sin etiqueta \"default\".
+
+multiple.string.literal=La cadena {0} aparece {1} veces en el fichero.
+
+redundant.throws.classInfo=No se puede obtener la información de clase de {0}.
+redundant.throws.duplicate=Sentencia throws redundante: ''{0}'' aparece más de una vez.
+redundant.throws.subclass=Sentencia throws redundante: ''{0}'' es una subclase de ''{1}''.
+redundant.throws.unchecked=Sentencia throws redundante: ''{0}'' es una excepción no comprobada.
+
+simplify.boolreturn=Se puede eliminar la lógica condicional.
+simplify.expression=Se puede simplificar la expresión.
+
+nested.if.depth=La profundidad de if-else anidados es {0,number,integer} (máximo permitido es {1,number,integer}).
+nested.try.depth=La profundidad de try anidados es {0,number,integer} (máximo permitido es {1,number,integer}).
+
+string.literal.equality=Las cadenas literales deben compararse usando equals(), no ''{0}''.
+
+illegal.catch=Capturar la excepción ''{0}'' no está permitido.
+missing.package.declaration=Falta la declaración de paquete.
+
+junit.method.name=El método ''{0}'' debería llamarse ''{1}''.
+junit.method.return.type=El método ''{0}'' debe declararse con tipo de retorno {1}.
+junit.method.parameters=El método ''{0}'' debe declararse sin parámetros.
+junit.method.public.and.static=El método ''{0}'' debe declararse static.
+junit.method.protected.or.public=El método ''{0}'' debe ser public o protected.
+junit.method.static=El método ''{0}'' no debería ser static.
+
+return.count=El número de sentencias return es {0,number,integer} (máximo permitido es {1,number,integer}).
+
+illegal.type=La declaración de variables, valores de retorno o parámetros de tipo ''{0}'' no está permitida.
+
+declaration.order.constructor=Definición de constructor en orden incorrecto.
+declaration.order.method=Definición de método en orden incorrecto.
+declaration.order.static=Definición de variable static en orden incorrecto.
+declaration.order.instance=Definición de variable de instancia en orden incorrecto.
+declaration.order.access=Definición de acceso a variable en orden incorrecto.
+
+parameter.assignment=No esta permitida la asignación del parámetro ''{0}''.
+
+modified.control.variable=Se modifica la variable de control ''{0}''.
+
+explicit.init=La variable ''{0}'' se inicializa explicitamente a ''{1}'' (valor por defecto para su tipo).
+default.comes.last=La etiqueta default debe ser la última etiqueta en el switch.
+missing.ctor=La clase debería definir un constructor.
+fall.through=Caída desde la etiqueta anterior en la sentencia switch.
+require.this.variable=La referencia a la variable de instancia ''{0}'' necesita \"this.\".
+require.this.unfound.variable=No se puede encontrar la declaración de ''{0}''.
+require.this.method=La llamada al método ''{0}'' necesita \"this.\".
+multiple.variable.declarations=Sólo se permite una definición de variable por línea.
+multiple.variable.declarations.comma=Cada declaración de variable debe estar en su línea.
+
+unnecessary.paren.assign=Paréntesis innecesarios alrededor de la parte derecha de una asignación.
+unnecessary.paren.expr=Paréntesis innecesarios alrededor de la expresión.
+unnecessary.paren.ident=Paréntesis innecesarios alrededor del identificador ''{0}''.
+unnecessary.paren.literal=Paréntesis innecesarios alrededor del literal ''{0}''.
+unnecessary.paren.return=Paréntesis innecesarios alrededor del valor de retorno.
+unnecessary.paren.string=Paréntesis innecesarios alrededor de la cadena {0}.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/design/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/design/messages_es.properties
new file mode 100755
index 000000000..0aee407d8
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/design/messages_es.properties
@@ -0,0 +1,6 @@
+design.forExtension=El método ''{0}'' no está diseñado para ser extendido - necesita ser abstracto, final o vacío.
+final.class=La clase {0} debería declararse final.
+interface.type=Los interfaces deberían describir tipos y por tanto tener métodos.
+variable.notPrivate=La variable ''{0}'' debe ser privada y tener métodos de acceso.
+mutable.exception=El campo ''{0}'' debe declararse final.
+throws.count=El número de throws es {0,number,integer} (máximo permitido es {1,number,integer}).
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/duplicates/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/duplicates/messages_es.properties
new file mode 100755
index 000000000..27b4491c3
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/duplicates/messages_es.properties
@@ -0,0 +1 @@
+duplicates.lines=Se encontraron {0} líneas duplicadas en {1}, comenzando en la línea {2}
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/header/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/header/messages_es.properties
new file mode 100755
index 000000000..5ddaa6a1d
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/header/messages_es.properties
@@ -0,0 +1,2 @@
+header.missing=Falta una cabecera - no hay líneas suficientes en el fichero.
+header.mismatch=La línea no coincide con la línea de cabecera esperada ''{0}''.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/imports/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/imports/messages_es.properties
new file mode 100755
index 000000000..dd1753bcf
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/imports/messages_es.properties
@@ -0,0 +1,8 @@
+import.avoidStar=Usar la importación con ''.*'' debería evitarse - {0}.
+import.duplicate=import duplicado en la línea {0,number,integer} - {1}.
+import.illegal=Importación de un paquete ilegal - {0}.
+import.lang=Importación redundante del paquete java.lang - {0}.
+import.same=Importación redundante del mismo paquete - {0}.
+import.unused=import no usado - {0}.
+import.ordering=Orden incorrecto para el import ''{0}''.
+import.separation=''{0}'' debería separarse de los import previos.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/indentation/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/indentation/messages_es.properties
new file mode 100755
index 000000000..b1b10c620
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/indentation/messages_es.properties
@@ -0,0 +1,2 @@
+indentation.error={0} en el nivel de sangrado {1} no está al nivel correcto, {2}
+indentation.child.error={0} el descendiente en el nivel de sangrado {1} no está al nivel correcto, {2}
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/messages_es.properties
new file mode 100755
index 000000000..d99540938
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/messages_es.properties
@@ -0,0 +1,19 @@
+abstract.bean=El bean de entidad ''{0}'' no debe ser abstracto.
+hasfinalize.bean={0} no debe definir el método ''finalize()''.
+hasthrows.bean=El método ''{0}'' no debe hacer throw de ''{1}''.
+illegalmodifier.bean={0} no debe tener el modificador ''{1}''.
+illegalmodifiermethod.bean=El método ''{0}'' no debe tener el modificador ''{1}''.
+illegalthrows.bean=El método ''{0}'' no debe hacer throw de ''{1}''.
+missingmethod.bean={0} debe tener el método ''{1}''.
+missingthrows.bean=El método ''{0}'' debe hacer throw de ''{1}''.
+nonabstract.bean=El bean de entidad ''{0}'' debe ser abstracto.
+nonfinalstatic.bean=El campo estático ''{0}'' debe ser final.
+nonpublicconstructor.bean={0} debe tener un constructor público sin parámetros.
+nonpublic.bean={0} debe ser público.
+nonpublicmethod.bean=El método ''{0}'' debe ser público.
+nonvoidmethod.bean=El método ''{0}'' debe ser void.
+paramcount.bean=El método ''{0}'' debe tener {1} parametro(s).
+thisparameter.bean=No pasar ''this'' como parámetro.
+thisreturn.bean=No retornar ''this''.
+unmatchedejbcreate.bean=El método ''{0}'' debe tener un método ''{1}'' coincidente.
+voidmethod.bean=El método ''{0}'' debe retornar algo distinto de void.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_es.properties
new file mode 100755
index 000000000..f07178304
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_es.properties
@@ -0,0 +1,16 @@
+javadoc.classInfo=No se puede obtener la información de clase para {0} etiqueta ''{1}''.
+javadoc.expectedTag=Se esperaba la etiqueta {0} para ''{1}''.
+javadoc.extrahtml=Se encontró una etiqueta HTML extra: {0}
+javadoc.incompleteTag=Se encontró una etiqueta HTML incompleta: {0}
+javadoc.missing=Falta el comentario Javadoc.
+javadoc.noperiod=La primera frase debería finalizar con un punto.
+javadoc.packageHtml=Falta el fichero de documentación del paquete.
+javadoc.return.duplicate=Etiqueta @return duplicada.
+javadoc.return.expected=Se esperaba la etiqueta @return.
+javadoc.unclosedhtml=Se encontró una etiqueta HTML sin cerrar: {0}
+javadoc.unusedTag=Etiqueta {0} no usada en ''{1}''.
+javadoc.unusedTagGeneral=Etiqueta Javadoc no usada.
+javadoc.empty=Hay una sección de descripción vacía en el Javadoc.
+
+type.missingTag=Al comentario Javadoc le falta una etiqueta {0}.
+type.tagFormat=El comentario Javadoc {0} debe coincidir con el patrón ''{1}''.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/messages_es.properties
new file mode 100755
index 000000000..c2551ac9d
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/messages_es.properties
@@ -0,0 +1,23 @@
+noNewlineAtEOF=El fichero no termina con un retorno de carro.
+
+todo.match=El comentario coincide con el formato to-do ''{0}''.
+
+upperEll=Debería usar ''L'' mayúscula.
+
+
+
+illegal.regexp=La línea coincide con el patrón ilegal ''{0}''.
+required.regexp=El patron requerido ''{0}'' falta en el fichero.
+
+
+translation.missingKey=La clave ''{0}'' falta.
+
+missing.switch.default=switch sin etiqueta \"default\".
+
+uncommented.main=Se encotró un método main sin comentar.
+
+descendant.token.min=El recuento {0} para ''{2}'' descendientes ''{3}'' es menor que el mínimo {1}.
+descendant.token.max=El recuento {0} para ''{2}'' descendientes ''{3}'' excede el máximo {1}.
+
+final.parameter=El parámetro {0} debería ser final.
+trailing.comments=No usar comentarios de final de línea.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/metrics/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/metrics/messages_es.properties
new file mode 100755
index 000000000..1231b479d
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/metrics/messages_es.properties
@@ -0,0 +1,30 @@
+booleanExpressionComplexity=La complejidad de la expresión lógica es {0,number,integer} (máxima permitida es {1,number,integer}).
+classDataAbstractionCoupling=El acoplamiento abstracto de datos entre clases es {0,number,integer} (máximo permitida es {1,number,integer}) clases {2}.
+classFanOutComplexity=La complejidad Fan-Out de clase es {0,number,integer} (máxima permitida es {1,number,integer}).
+cyclomaticComplexity=La complejidad ciclomática es {0,number,integer} (máxima permitida es {1,number,integer}).
+duplicateLiteral=No estan permitidas instancias duplicadas del literal ''{0}''.
+finalField=El campo ''{0}'' debería declararse final.
+illegalAbstractClassName=El nombre ''{0}'' debe coincidir con el patrón ''{1}''.
+illegalCatch=No está permitido capturar la excepción ''{0}''.
+illegalThrows=No está permitido lanzar la excepción ''{0}''.
+illegalToken=No está permitido usar ''{0}''.
+illegalType=No está permitido declarar variables, valores de retorno o parámetros de tipo ''{0}''.
+junit.methodName=El método ''{0}'' debería llamarse ''{1}''
+junit.methodParameters=El método ''{0}'' debería declararse sin parámetros.
+junit.methodPublicAndStatic=El método ''{0}'' debería declararse static.
+junit.methodPublicOrProtected=El método {0} debería declararse public o protected
+junit.methodReturnType=El método ''{0}'' debería declararse con tipo de retorno void.
+mutableException=El campo ''{0}'' debe declararse final.
+nestedIfDepth=La profundidad de if-else anidados es {0,number,integer} (máxima permitida es {1,number,integer}).
+nestedTryDepth=La profundidad de try anidados es {0,number,integer} (máxima permitida es {1,number,integer}).
+npathComplexity=La complejidad NPath es {0,number,integer} (máxima permitida es {1,number,integer}).
+packageDeclaration=Falta la declaración de paquete.
+parameterAssignment=No está permitido asignar al parámetro ''{0}''.
+returnCount=El número de sentencias return es {0,number,integer} (máximo permitido es {1,number,integer}).
+returnFromCatch=No esta permitido return desde un catch.
+returnFromFinally=No esta permitido return desde un finally.
+throwsCount=El número de throw es {0,number,integer} (máximo permitido es {1,number,integer}).
+unusedVariable=La variable ''{0}'' no se usa nunca.
+ncss.method=El NCSS para este método es {0,number,integer} (máximo permitido es {1,number,integer}).
+ncss.class=El NCSS para esta clase es {0,number,integer} (máximo permitido es {1,number,integer}).
+ncss.file=El NCSS para este fichero es {0,number,integer} (máximo permitido es {1,number,integer}).
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/modifier/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/modifier/messages_es.properties
new file mode 100755
index 000000000..a5b950d62
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/modifier/messages_es.properties
@@ -0,0 +1,4 @@
+redundantModifier=Modificador ''{0}'' redundante.
+annotation.order=El modificador de anotación ''{0}'' no precede a los modificadores normales.
+
+mod.order=Modificador ''{0}'' desordenado según las sugerencias de la JLS.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/naming/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/naming/messages_es.properties
new file mode 100755
index 000000000..c95e1679a
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/naming/messages_es.properties
@@ -0,0 +1,2 @@
+name.invalidPattern=El nombre ''{0}'' debe coincidir con el patrón ''{1}''.
+illegal.abstract.class.name=El nombre ''{0}'' debe coincidir con el patrón ''{1}''.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/sizes/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/sizes/messages_es.properties
new file mode 100755
index 000000000..1be61f034
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/sizes/messages_es.properties
@@ -0,0 +1,7 @@
+executableStatementCount=El número de sentencias ejecutables es {0,number,integer} (máximo permitido es {1,number,integer}).
+maxLen.file=El tamaño del fichero es {0,number,integer} líneas (máximas permitidas {1,number,integer}).
+maxLen.method=El tamaño del método es {0,number,integer} líneas (máximas permitidas {1,number,integer}).
+maxLen.anonInner=El tamaño de la clase interna anónima es {0,number,integer} líneas (máximas permitidas {1,number,integer}).
+maxLineLen=La línea es mayor de {0,number,integer} caracteres.
+maxParam=Más de {0,number,integer} parámetros.
+
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/whitespace/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/whitespace/messages_es.properties
new file mode 100755
index 000000000..4e9d9ae20
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/whitespace/messages_es.properties
@@ -0,0 +1,11 @@
+containsTab=La línea contiene un carácter de tabulación.
+
+line.alone=''{0}'' debería estar solo en una línea.
+line.new=''{0}'' debería estar en una línea nueva.
+line.previous=''{0}'' debería estar en la línea anterior.
+line.same=''{0}'' debería estar en la misma línea.
+
+ws.followed=''{0}'' está seguido de espacios en blanco.
+ws.notFollowed=''{0}'' no está seguido de espacio en blanco.
+ws.notPreceded=''{0}'' no está precedido de espacio en blanco.
+ws.preceded=''{0}'' está precedido de espacio en blanco.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/messages_es.properties b/src/checkstyle/com/puppycrawl/tools/checkstyle/messages_es.properties
new file mode 100755
index 000000000..b3a4870c4
--- /dev/null
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/messages_es.properties
@@ -0,0 +1,9 @@
+general.fileNotFound=¡Fichero no encontrado!
+general.exception=Ocurrió una excepción - {0}
+
+#
+# for DefaultLogger.java
+#
+DefaultLogger.addException=Error auditando {0}
+DefaultLogger.auditStarted=Comenzando auditoría...
+DefaultLogger.auditFinished=Auditoría concluida.
diff --git a/src/xdocs/releasenotes.xml b/src/xdocs/releasenotes.xml
index 2fd8c39f5..6e9ed5f25 100755
--- a/src/xdocs/releasenotes.xml
+++ b/src/xdocs/releasenotes.xml
@@ -10,6 +10,30 @@
+
+ New features:
+
+
+ -
+ Added Spanish translation of messages. Thanks to Ricardo Mones
+ (patch 1250329).
+
+
+
+ Fixed Bugs:
+
+
+
+ Other improvements:
+
+
+
+
+