Skip to content

Instantly share code, notes, and snippets.

@jolros
Created November 7, 2013 08:31
Show Gist options
  • Save jolros/7351121 to your computer and use it in GitHub Desktop.
Save jolros/7351121 to your computer and use it in GitHub Desktop.
Diff between two untouched Grails projects. One created under Grails 2.3.1, and one created under Grails 2.0.0 and upgraded sequentially through the following grails versions: 2.0.1 2.0.2 2.0.3 2.0.4 2.1.0 2.1.1 2.1.2 2.1.3 2.2.0 2.2.4 2.3.0 2.3.1 The project name is "whoopy" and the recursive diff is shown below. This is why detailed migration …
diff -r 2.0.0/whoopy/.classpath 2.3.1/whoopy/.classpath
0a1
> <?xml version="1.0" encoding="UTF-8"?>
2,13c3,18
< <classpathentry kind="src" path="src/java"/>
< <classpathentry kind="src" path="src/groovy"/>
< <classpathentry kind="src" path="grails-app/conf"/>
< <classpathentry kind="src" path="grails-app/controllers"/>
< <classpathentry kind="src" path="grails-app/domain"/>
< <classpathentry kind="src" path="grails-app/services"/>
< <classpathentry kind="src" path="grails-app/taglib"/>
< <classpathentry kind="src" path="test/integration"/>
< <classpathentry kind="src" path="test/unit"/>
< <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
< <classpathentry kind="con" path="com.springsource.sts.grails.core.CLASSPATH_CONTAINER"/>
< <classpathentry kind="output" path="web-app/WEB-INF/classes"/>
---
> <classpathentry kind="src" path="src/java"/>
> <classpathentry kind="src" path="src/groovy"/>
> <classpathentry excluding="spring/" kind="src" path="grails-app/conf"/>
> <classpathentry kind="src" path="grails-app/conf/spring"/>
> <classpathentry kind="src" path="grails-app/controllers"/>
> <classpathentry kind="src" path="grails-app/domain"/>
> <classpathentry kind="src" path="grails-app/i18n"/>
> <classpathentry kind="src" path="grails-app/services"/>
> <classpathentry kind="src" path="grails-app/taglib"/>
> <classpathentry kind="src" path="grails-app/utils"/>
> <classpathentry kind="src" path="grails-app/views"/>
> <classpathentry kind="src" path="test/integration"/>
> <classpathentry kind="src" path="test/unit"/>
> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> <classpathentry kind="con" path="org.grails.ide.eclipse.core.CLASSPATH_CONTAINER"/>
> <classpathentry kind="output" path="target/eclipseclasses"/>
diff -r 2.0.0/whoopy/.project 2.3.1/whoopy/.project
15c15
< <nature>com.springsource.sts.grails.core.nature</nature>
---
> <nature>org.grails.ide.eclipse.core.nature</nature>
Only in 2.0.0/whoopy: .settings
diff -r 2.0.0/whoopy/application.properties 2.3.1/whoopy/application.properties
2,3c2,3
< #Thu Nov 07 00:22:26 PST 2013
< app.grails.version=2.0.0
---
> #Thu Nov 07 00:24:06 PST 2013
> app.grails.version=2.3.1
5d4
< app.servlet.version=2.5
diff -r 2.0.0/whoopy/grails-app/conf/BuildConfig.groovy 2.3.1/whoopy/grails-app/conf/BuildConfig.groovy
1c1
< grails.servlet.version = "2.5" // Change depending on target container compliance (2.5 or 3.0)
---
> grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
4a5
> grails.project.work.dir = "target/work"
8a10,24
> grails.project.fork = [
> // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
> // compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
>
> // configure settings for the test-app JVM, uses the daemon by default
> test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
> // configure settings for the run-app JVM
> run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
> // configure settings for the run-war JVM
> war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
> // configure settings for the Console UI JVM
> console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
> ]
>
> grails.project.dependency.resolver = "maven" // or ivy
12c28
< // uncomment to disable ehcache
---
> // specify dependency exclusions here; for example, uncomment this to disable ehcache:
16a33
> legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility
19a37
>
21a40
> mavenLocal()
24,28c43
<
< // uncomment these to enable remote dependency resolution from public Maven repositories
< //mavenCentral()
< //mavenLocal()
< //mavenRepo "http://snapshots.repository.codehaus.org"
---
> // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
33,34d47
< dependencies {
< // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
36c49,51
< // runtime 'mysql:mysql-connector-java:5.1.16'
---
> dependencies {
> // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
> // runtime 'mysql:mysql-connector-java:5.1.24'
40,42c55,56
< runtime ":hibernate:$grailsVersion"
< runtime ":jquery:1.7.1"
< runtime ":resources:1.1.5"
---
> // plugins for the build system only
> build ":tomcat:7.0.42"
44c58,70
< build ":tomcat:$grailsVersion"
---
> // plugins for the compile step
> compile ":scaffolding:2.0.1"
> compile ':cache:1.1.1'
>
> // plugins needed at runtime but not for compilation
> runtime ":hibernate:3.6.10.2" // or ":hibernate4:4.1.11.2"
> runtime ":database-migration:1.3.5"
> runtime ":jquery:1.10.2"
> runtime ":resources:1.2.1"
> // Uncomment these (or add new ones) to enable additional resources capabilities
> //runtime ":zipped-resources:1.0.1"
> //runtime ":cached-resources:1.1"
> //runtime ":yui-minify-resources:0.1.5"
diff -r 2.0.0/whoopy/grails-app/conf/Config.groovy 2.3.1/whoopy/grails-app/conf/Config.groovy
1,2c1,3
< // locations to search for config files that get merged into the main config
< // config files can either be Java properties files or ConfigSlurper scripts
---
> // locations to search for config files that get merged into the main config;
> // config files can be ConfigSlurper scripts, Java properties files, or classes
> // in the classpath in ConfigSlurper format
13d13
<
15,29c15,32
< grails.mime.file.extensions = true // enables the parsing of file extensions from URLs into the request format
< grails.mime.use.accept.header = false
< grails.mime.types = [ html: ['text/html','application/xhtml+xml'],
< xml: ['text/xml', 'application/xml'],
< text: 'text/plain',
< js: 'text/javascript',
< rss: 'application/rss+xml',
< atom: 'application/atom+xml',
< css: 'text/css',
< csv: 'text/csv',
< all: '*/*',
< json: ['application/json','text/json'],
< form: 'application/x-www-form-urlencoded',
< multipartForm: 'multipart/form-data'
< ]
---
>
> // The ACCEPT header will not be used for content negotiation for user agents containing the following strings (defaults to the 4 major rendering engines)
> grails.mime.disable.accept.header.userAgents = ['Gecko', 'WebKit', 'Presto', 'Trident']
> grails.mime.types = [
> all: '*/*',
> atom: 'application/atom+xml',
> css: 'text/css',
> csv: 'text/csv',
> form: 'application/x-www-form-urlencoded',
> html: ['text/html','application/xhtml+xml'],
> js: 'text/javascript',
> json: ['application/json', 'text/json'],
> multipartForm: 'multipart/form-data',
> rss: 'application/rss+xml',
> text: 'text/plain',
> hal: ['application/hal+json','application/hal+xml'],
> xml: ['text/xml', 'application/xml']
> ]
36a40,41
> // Legacy setting for codec used to encode data with ${}
> grails.views.default.codec = "html"
38,40c43,66
< // The default codec used to encode data with ${}
< grails.views.default.codec = "none" // none, html, base64
< grails.views.gsp.encoding = "UTF-8"
---
> // The default scope for controllers. May be prototype, session or singleton.
> // If unspecified, controllers are prototype scoped.
> grails.controllers.defaultScope = 'singleton'
>
> // GSP settings
> grails {
> views {
> gsp {
> encoding = 'UTF-8'
> htmlcodec = 'xml' // use xml escaping instead of HTML4 escaping
> codecs {
> expression = 'html' // escapes values inside ${}
> scriptlet = 'html' // escapes output from scriptlets in GSPs
> taglib = 'none' // escapes output from taglibs
> staticparts = 'none' // escapes output from static template parts
> }
> }
> // escapes all not-encoded output at final stage of outputting
> filteringCodecForContentType {
> //'text/html' = 'html'
> }
> }
> }
>
42,43d67
< // enable Sitemesh preprocessing of GSP pages
< grails.views.gsp.sitemesh.preprocess = true
59,60c83,84
< // enable query caching by default
< grails.hibernate.cache.queries = true
---
> // configure auto-caching of queries by default (if false you can cache individual queries with 'cache: true')
> grails.hibernate.cache.queries = false
62d85
< // set per-environment serverURL stem for creating absolute links
75,76c98
< // Example of changing the log pattern for the default console
< // appender:
---
> // Example of changing the log pattern for the default console appender:
82,84c104,106
< error 'org.codehaus.groovy.grails.web.servlet', // controllers
< 'org.codehaus.groovy.grails.web.pages', // GSP
< 'org.codehaus.groovy.grails.web.sitemesh', // layouts
---
> error 'org.codehaus.groovy.grails.web.servlet', // controllers
> 'org.codehaus.groovy.grails.web.pages', // GSP
> 'org.codehaus.groovy.grails.web.sitemesh', // layouts
86,89c108,111
< 'org.codehaus.groovy.grails.web.mapping', // URL mapping
< 'org.codehaus.groovy.grails.commons', // core / classloading
< 'org.codehaus.groovy.grails.plugins', // plugins
< 'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
---
> 'org.codehaus.groovy.grails.web.mapping', // URL mapping
> 'org.codehaus.groovy.grails.commons', // core / classloading
> 'org.codehaus.groovy.grails.plugins', // plugins
> 'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
diff -r 2.0.0/whoopy/grails-app/conf/DataSource.groovy 2.3.1/whoopy/grails-app/conf/DataSource.groovy
9,10c9,11
< cache.use_query_cache = true
< cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
---
> cache.use_query_cache = false
> cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
> // cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
11a13
>
17c19
< url = "jdbc:h2:mem:devDb;MVCC=TRUE"
---
> url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
23c25
< url = "jdbc:h2:mem:testDb;MVCC=TRUE"
---
> url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
29,30c31
< url = "jdbc:h2:prodDb;MVCC=TRUE"
< pooled = true
---
> url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
38c39
< testOnReturn=true
---
> testOnReturn=false
39a41
> jdbcInterceptors="ConnectionState"
diff -r 2.0.0/whoopy/grails-app/conf/UrlMappings.groovy 2.3.1/whoopy/grails-app/conf/UrlMappings.groovy
4,8c4,8
< "/$controller/$action?/$id?"{
< constraints {
< // apply constraints here
< }
< }
---
> "/$controller/$action?/$id?(.${format})?"{
> constraints {
> // apply constraints here
> }
> }
10,11c10,11
< "/"(view:"/index")
< "500"(view:'/error')
---
> "/"(view:"/index")
> "500"(view:'/error')
diff -r 2.0.0/whoopy/grails-app/i18n/messages_cs_CZ.properties 2.3.1/whoopy/grails-app/i18n/messages_cs_CZ.properties
1,55c1,55
< default.doesnt.match.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neodpovídá požadovanému vzoru [{3}]
< default.invalid.url.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní URL
< default.invalid.creditCard.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní číslo kreditní karty
< default.invalid.email.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní emailová adresa
< default.invalid.range.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
< default.invalid.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
< default.invalid.max.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální povolenou hodnotu [{3}]
< default.invalid.min.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální povolená hodnota [{3}]
< default.invalid.max.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální velikost [{3}]
< default.invalid.min.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální velikost [{3}]
< default.invalid.validator.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neprošla validací
< default.not.inlist.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není obsažena v seznamu [{3}]
< default.blank.message=Položka [{0}] třídy [{1}] nemůže být prázdná
< default.not.equal.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] nemůže být stejná jako [{3}]
< default.null.message=Položka [{0}] třídy [{1}] nemůže být prázdná
< default.not.unique.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] musí být unikátní
<
< default.paginate.prev=Předcházející
< default.paginate.next=Následující
< default.boolean.true=Pravda
< default.boolean.false=Nepravda
< default.date.format=dd. MM. yyyy HH:mm:ss z
< default.number.format=0
<
< default.created.message={0} {1} vytvořeno
< default.updated.message={0} {1} aktualizováno
< default.deleted.message={0} {1} smazáno
< default.not.deleted.message={0} {1} nelze smazat
< default.not.found.message={0} nenalezen s id {1}
< default.optimistic.locking.failure=Jiný uživatel aktualizoval záznam {0}, právě když byl vámi editován
<
< default.home.label=Domů
< default.list.label={0} Seznam
< default.add.label=Přidat {0}
< default.new.label=Nový {0}
< default.create.label=Vytvořit {0}
< default.show.label=Ukázat {0}
< default.edit.label=Editovat {0}
<
< default.button.create.label=Vytvoř
< default.button.edit.label=Edituj
< default.button.update.label=Aktualizuj
< default.button.delete.label=Smaž
< default.button.delete.confirm.message=Jste si jistý?
<
< # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
< typeMismatch.java.net.URL=Položka {0} musí být validní URL
< typeMismatch.java.net.URI=Položka {0} musí být validní URI
< typeMismatch.java.util.Date=Položka {0} musí být validní datum
< typeMismatch.java.lang.Double=Položka {0} musí být validní desetinné číslo
< typeMismatch.java.lang.Integer=Položka {0} musí být validní číslo
< typeMismatch.java.lang.Long=Položka {0} musí být validní číslo
< typeMismatch.java.lang.Short=Položka {0} musí být validní číslo
< typeMismatch.java.math.BigDecimal=Položka {0} musí být validní číslo
< typeMismatch.java.math.BigInteger=Položka {0} musí být validní číslo
\ No newline at end of file
---
> default.doesnt.match.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neodpovídá požadovanému vzoru [{3}]
> default.invalid.url.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní URL
> default.invalid.creditCard.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní číslo kreditní karty
> default.invalid.email.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní emailová adresa
> default.invalid.range.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
> default.invalid.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
> default.invalid.max.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální povolenou hodnotu [{3}]
> default.invalid.min.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální povolená hodnota [{3}]
> default.invalid.max.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální velikost [{3}]
> default.invalid.min.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální velikost [{3}]
> default.invalid.validator.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neprošla validací
> default.not.inlist.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není obsažena v seznamu [{3}]
> default.blank.message=Položka [{0}] třídy [{1}] nemůže být prázdná
> default.not.equal.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] nemůže být stejná jako [{3}]
> default.null.message=Položka [{0}] třídy [{1}] nemůže být prázdná
> default.not.unique.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] musí být unikátní
>
> default.paginate.prev=Předcházející
> default.paginate.next=Následující
> default.boolean.true=Pravda
> default.boolean.false=Nepravda
> default.date.format=dd. MM. yyyy HH:mm:ss z
> default.number.format=0
>
> default.created.message={0} {1} vytvořeno
> default.updated.message={0} {1} aktualizováno
> default.deleted.message={0} {1} smazáno
> default.not.deleted.message={0} {1} nelze smazat
> default.not.found.message={0} nenalezen s id {1}
> default.optimistic.locking.failure=Jiný uživatel aktualizoval záznam {0}, právě když byl vámi editován
>
> default.home.label=Domů
> default.list.label={0} Seznam
> default.add.label=Přidat {0}
> default.new.label=Nový {0}
> default.create.label=Vytvořit {0}
> default.show.label=Ukázat {0}
> default.edit.label=Editovat {0}
>
> default.button.create.label=Vytvoř
> default.button.edit.label=Edituj
> default.button.update.label=Aktualizuj
> default.button.delete.label=Smaž
> default.button.delete.confirm.message=Jste si jistý?
>
> # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
> typeMismatch.java.net.URL=Položka {0} musí být validní URL
> typeMismatch.java.net.URI=Položka {0} musí být validní URI
> typeMismatch.java.util.Date=Položka {0} musí být validní datum
> typeMismatch.java.lang.Double=Položka {0} musí být validní desetinné číslo
> typeMismatch.java.lang.Integer=Položka {0} musí být validní číslo
> typeMismatch.java.lang.Long=Položka {0} musí být validní číslo
> typeMismatch.java.lang.Short=Položka {0} musí být validní číslo
> typeMismatch.java.math.BigDecimal=Položka {0} musí být validní číslo
> typeMismatch.java.math.BigInteger=Položka {0} musí být validní číslo
diff -r 2.0.0/whoopy/grails-app/i18n/messages_de.properties 2.3.1/whoopy/grails-app/i18n/messages_de.properties
1,55c1,55
< default.doesnt.match.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] entspricht nicht dem vorgegebenen Muster [{3}]
< default.invalid.url.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige URL
< default.invalid.creditCard.message=Das Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige Kreditkartennummer
< default.invalid.email.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige E-Mail Adresse
< default.invalid.range.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
< default.invalid.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
< default.invalid.max.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist größer als der Höchstwert von [{3}]
< default.invalid.min.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist kleiner als der Mindestwert von [{3}]
< default.invalid.max.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] übersteigt den Höchstwert von [{3}]
< default.invalid.min.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] unterschreitet den Mindestwert von [{3}]
< default.invalid.validator.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist ungültig
< default.not.inlist.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht in der Liste [{3}] enthalten.
< default.blank.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht leer sein
< default.not.equal.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nicht gleich [{3}] sein
< default.null.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht null sein
< default.not.unique.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nur einmal vorkommen
<
< default.paginate.prev=Vorherige
< default.paginate.next=Nächste
< default.boolean.true=Wahr
< default.boolean.false=Falsch
< default.date.format=dd.MM.yyyy HH:mm:ss z
< default.number.format=0
<
< default.created.message={0} {1} wurde angelegt
< default.updated.message={0} {1} wurde geändert
< default.deleted.message={0} {1} wurde gelöscht
< default.not.deleted.message={0} {1} konnte nicht gelöscht werden
< default.not.found.message={0} mit der id {1} wurde nicht gefunden
< default.optimistic.locking.failure=Ein anderer Benutzer hat das {0} Object geändert während Sie es bearbeitet haben
<
< default.home.label=Home
< default.list.label={0} Liste
< default.add.label={0} hinzufügen
< default.new.label={0} anlegen
< default.create.label={0} anlegen
< default.show.label={0} anzeigen
< default.edit.label={0} bearbeiten
<
< default.button.create.label=Anlegen
< default.button.edit.label=Bearbeiten
< default.button.update.label=Aktualisieren
< default.button.delete.label=Löschen
< default.button.delete.confirm.message=Sind Sie sicher?
<
< # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
< typeMismatch.java.net.URL=Die Eigenschaft {0} muss eine gültige URL sein
< typeMismatch.java.net.URI=Die Eigenschaft {0} muss eine gültige URI sein
< typeMismatch.java.util.Date=Die Eigenschaft {0} muss ein gültiges Datum sein
< typeMismatch.java.lang.Double=Die Eigenschaft {0} muss eine gültige Zahl sein
< typeMismatch.java.lang.Integer=Die Eigenschaft {0} muss eine gültige Zahl sein
< typeMismatch.java.lang.Long=Die Eigenschaft {0} muss eine gültige Zahl sein
< typeMismatch.java.lang.Short=Die Eigenschaft {0} muss eine gültige Zahl sein
< typeMismatch.java.math.BigDecimal=Die Eigenschaft {0} muss eine gültige Zahl sein
< typeMismatch.java.math.BigInteger=Die Eigenschaft {0} muss eine gültige Zahl sein
\ No newline at end of file
---
> default.doesnt.match.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] entspricht nicht dem vorgegebenen Muster [{3}]
> default.invalid.url.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige URL
> default.invalid.creditCard.message=Das Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige Kreditkartennummer
> default.invalid.email.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige E-Mail Adresse
> default.invalid.range.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
> default.invalid.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
> default.invalid.max.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist größer als der Höchstwert von [{3}]
> default.invalid.min.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist kleiner als der Mindestwert von [{3}]
> default.invalid.max.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] übersteigt den Höchstwert von [{3}]
> default.invalid.min.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] unterschreitet den Mindestwert von [{3}]
> default.invalid.validator.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist ungültig
> default.not.inlist.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht in der Liste [{3}] enthalten.
> default.blank.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht leer sein
> default.not.equal.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nicht gleich [{3}] sein
> default.null.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht null sein
> default.not.unique.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nur einmal vorkommen
>
> default.paginate.prev=Vorherige
> default.paginate.next=Nächste
> default.boolean.true=Wahr
> default.boolean.false=Falsch
> default.date.format=dd.MM.yyyy HH:mm:ss z
> default.number.format=0
>
> default.created.message={0} {1} wurde angelegt
> default.updated.message={0} {1} wurde geändert
> default.deleted.message={0} {1} wurde gelöscht
> default.not.deleted.message={0} {1} konnte nicht gelöscht werden
> default.not.found.message={0} mit der id {1} wurde nicht gefunden
> default.optimistic.locking.failure=Ein anderer Benutzer hat das {0} Object geändert während Sie es bearbeitet haben
>
> default.home.label=Home
> default.list.label={0} Liste
> default.add.label={0} hinzufügen
> default.new.label={0} anlegen
> default.create.label={0} anlegen
> default.show.label={0} anzeigen
> default.edit.label={0} bearbeiten
>
> default.button.create.label=Anlegen
> default.button.edit.label=Bearbeiten
> default.button.update.label=Aktualisieren
> default.button.delete.label=Löschen
> default.button.delete.confirm.message=Sind Sie sicher?
>
> # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
> typeMismatch.java.net.URL=Die Eigenschaft {0} muss eine gültige URL sein
> typeMismatch.java.net.URI=Die Eigenschaft {0} muss eine gültige URI sein
> typeMismatch.java.util.Date=Die Eigenschaft {0} muss ein gültiges Datum sein
> typeMismatch.java.lang.Double=Die Eigenschaft {0} muss eine gültige Zahl sein
> typeMismatch.java.lang.Integer=Die Eigenschaft {0} muss eine gültige Zahl sein
> typeMismatch.java.lang.Long=Die Eigenschaft {0} muss eine gültige Zahl sein
> typeMismatch.java.lang.Short=Die Eigenschaft {0} muss eine gültige Zahl sein
> typeMismatch.java.math.BigDecimal=Die Eigenschaft {0} muss eine gültige Zahl sein
> typeMismatch.java.math.BigInteger=Die Eigenschaft {0} muss eine gültige Zahl sein
diff -r 2.0.0/whoopy/grails-app/i18n/messages_es.properties 2.3.1/whoopy/grails-app/i18n/messages_es.properties
37c37
< default.show.label=Mostar {0}
---
> default.show.label=Mostrar {0}
diff -r 2.0.0/whoopy/grails-app/i18n/messages_fr.properties 2.3.1/whoopy/grails-app/i18n/messages_fr.properties
1,19c1,19
< default.doesnt.match.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne correspond pas au pattern [{3}]
< default.invalid.url.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une URL valide
< default.invalid.creditCard.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas un numéro de carte de crédit valide
< default.invalid.email.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une adresse e-mail valide
< default.invalid.range.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
< default.invalid.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
< default.invalid.max.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
< default.invalid.min.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
< default.invalid.max.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
< default.invalid.min.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
< default.invalid.validator.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas valide
< default.not.inlist.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne fait pas partie de la liste [{3}]
< default.blank.message=La propriété [{0}] de la classe [{1}] ne peut pas être vide
< default.not.equal.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne peut pas être égale à [{3}]
< default.null.message=La propriété [{0}] de la classe [{1}] ne peut pas être nulle
< default.not.unique.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] doit être unique
<
< default.paginate.prev=Précédent
< default.paginate.next=Suivant
---
> default.doesnt.match.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne correspond pas au pattern [{3}]
> default.invalid.url.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une URL valide
> default.invalid.creditCard.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas un numéro de carte de crédit valide
> default.invalid.email.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une adresse e-mail valide
> default.invalid.range.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
> default.invalid.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
> default.invalid.max.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
> default.invalid.min.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
> default.invalid.max.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
> default.invalid.min.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
> default.invalid.validator.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas valide
> default.not.inlist.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne fait pas partie de la liste [{3}]
> default.blank.message=La propriété [{0}] de la classe [{1}] ne peut pas être vide
> default.not.equal.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne peut pas être égale à [{3}]
> default.null.message=La propriété [{0}] de la classe [{1}] ne peut pas être nulle
> default.not.unique.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] doit être unique
>
> default.paginate.prev=Précédent
> default.paginate.next=Suivant
diff -r 2.0.0/whoopy/grails-app/i18n/messages_it.properties 2.3.1/whoopy/grails-app/i18n/messages_it.properties
1,19c1,55
< default.doesnt.match.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non corrisponde al pattern [{3}]
< default.invalid.url.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un URL valido
< default.invalid.creditCard.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un numero di carta di credito valido
< default.invalid.email.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un indirizzo email valido
< default.invalid.range.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo valido da [{3}] a [{4}]
< default.invalid.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo di dimensioni valide da [{3}] a [{4}]
< default.invalid.max.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
< default.invalid.min.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
< default.invalid.max.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
< default.invalid.min.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
< default.invalid.validator.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è valida
< default.not.inlist.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è contenuta nella lista [{3}]
< default.blank.message=La proprietà [{0}] della classe [{1}] non può essere vuota
< default.not.equal.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non può essere uguale a [{3}]
< default.null.message=La proprietà [{0}] della classe [{1}] non può essere null
< default.not.unique.message=La proprietà [{0}] della classe [{1}] con valore [{2}] deve essere unica
<
< default.paginate.prev=Precedente
< default.paginate.next=Successivo
\ No newline at end of file
---
> default.doesnt.match.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non corrisponde al pattern [{3}]
> default.invalid.url.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un URL valido
> default.invalid.creditCard.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un numero di carta di credito valido
> default.invalid.email.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un indirizzo email valido
> default.invalid.range.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo valido da [{3}] a [{4}]
> default.invalid.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo di dimensioni valide da [{3}] a [{4}]
> default.invalid.max.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
> default.invalid.min.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
> default.invalid.max.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
> default.invalid.min.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
> default.invalid.validator.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è valida
> default.not.inlist.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è contenuta nella lista [{3}]
> default.blank.message=La proprietà [{0}] della classe [{1}] non può essere vuota
> default.not.equal.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non può essere uguale a [{3}]
> default.null.message=La proprietà [{0}] della classe [{1}] non può essere null
> default.not.unique.message=La proprietà [{0}] della classe [{1}] con valore [{2}] deve essere unica
>
> default.paginate.prev=Precedente
> default.paginate.next=Successivo
> default.boolean.true=Vero
> default.boolean.false=Falso
> default.date.format=dd/MM/yyyy HH:mm:ss z
> default.number.format=0
>
> default.created.message={0} {1} creato
> default.updated.message={0} {1} aggiornato
> default.deleted.message={0} {1} eliminato
> default.not.deleted.message={0} {1} non può essere eliminato
> default.not.found.message={0} non trovato con id {1}
> default.optimistic.locking.failure=Un altro utente ha aggiornato questo {0} mentre si era in modifica
>
> default.home.label=Home
> default.list.label={0} Elenco
> default.add.label=Aggiungi {0}
> default.new.label=Nuovo {0}
> default.create.label=Crea {0}
> default.show.label=Mostra {0}
> default.edit.label=Modifica {0}
>
> default.button.create.label=Crea
> default.button.edit.label=Modifica
> default.button.update.label=Aggiorna
> default.button.delete.label=Elimina
> default.button.delete.confirm.message=Si è sicuri?
>
> # Data binding errors. Usa "typeMismatch.$className.$propertyName per la personalizzazione (es typeMismatch.Book.author)
> typeMismatch.java.net.URL=La proprietà {0} deve essere un URL valido
> typeMismatch.java.net.URI=La proprietà {0} deve essere un URI valido
> typeMismatch.java.util.Date=La proprietà {0} deve essere una data valida
> typeMismatch.java.lang.Double=La proprietà {0} deve essere un numero valido
> typeMismatch.java.lang.Integer=La proprietà {0} deve essere un numero valido
> typeMismatch.java.lang.Long=La proprietà {0} deve essere un numero valido
> typeMismatch.java.lang.Short=La proprietà {0} deve essere un numero valido
> typeMismatch.java.math.BigDecimal=La proprietà {0} deve essere un numero valido
> typeMismatch.java.math.BigInteger=La proprietà {0} deve essere un numero valido
diff -r 2.0.0/whoopy/grails-app/i18n/messages_ja.properties 2.3.1/whoopy/grails-app/i18n/messages_ja.properties
1,55c1,55
< default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。
< default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なURLではありません。
< default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なクレジットカード番号ではありません。
< default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なメールアドレスではありません。
< default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。
< default.invalid.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]以内を指定してください。
< default.invalid.max.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
< default.invalid.min.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
< default.invalid.max.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
< default.invalid.min.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
< default.invalid.validator.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、カスタムバリデーションを通過できません。
< default.not.inlist.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]リスト内に存在しません。
< default.blank.message=[{1}]クラスのプロパティ[{0}]の空白は許可されません。
< default.not.equal.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]と同等ではありません。
< default.null.message=[{1}]クラスのプロパティ[{0}]にnullは許可されません。
< default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既に使用されています。
<
< default.paginate.prev=戻る
< default.paginate.next=次へ
< default.boolean.true=はい
< default.boolean.false=いいえ
< default.date.format=yyyy/MM/dd HH:mm:ss z
< default.number.format=0
<
< default.created.message={0}(id:{1})を作成しました。
< default.updated.message={0}(id:{1})を更新しました。
< default.deleted.message={0}(id:{1})を削除しました。
< default.not.deleted.message={0}(id:{1})は削除できませんでした。
< default.not.found.message={0}(id:{1})は見つかりませんでした。
< default.optimistic.locking.failure=この{0}は編集中に他のユーザによって先に更新されています。
<
< default.home.label=ホーム
< default.list.label={0}リスト
< default.add.label={0}を追加
< default.new.label={0}を新規作成
< default.create.label={0}を作成
< default.show.label={0}詳細
< default.edit.label={0}を編集
<
< default.button.create.label=作成
< default.button.edit.label=編集
< default.button.update.label=更新
< default.button.delete.label=削除
< default.button.delete.confirm.message=本当に削除してよろしいですか?
<
< # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
< typeMismatch.java.net.URL={0}は有効なURLでなければなりません。
< typeMismatch.java.net.URI={0}は有効なURIでなければなりません。
< typeMismatch.java.util.Date={0}は有効な日付でなければなりません。
< typeMismatch.java.lang.Double={0}は有効な数値でなければなりません。
< typeMismatch.java.lang.Integer={0}は有効な数値でなければなりません。
< typeMismatch.java.lang.Long={0}は有効な数値でなければなりません。
< typeMismatch.java.lang.Short={0}は有効な数値でなければなりません。
< typeMismatch.java.math.BigDecimal={0}は有効な数値でなければなりません。
< typeMismatch.java.math.BigInteger={0}は有効な数値でなければなりません。
---
> default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。
> default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なURLではありません。
> default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なクレジットカード番号ではありません。
> default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なメールアドレスではありません。
> default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。
> default.invalid.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]以内を指定してください。
> default.invalid.max.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
> default.invalid.min.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
> default.invalid.max.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
> default.invalid.min.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
> default.invalid.validator.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、カスタムバリデーションを通過できません。
> default.not.inlist.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]リスト内に存在しません。
> default.blank.message=[{1}]クラスのプロパティ[{0}]の空白は許可されません。
> default.not.equal.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]と同等ではありません。
> default.null.message=[{1}]クラスのプロパティ[{0}]にnullは許可されません。
> default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既に使用されています。
>
> default.paginate.prev=戻る
> default.paginate.next=次へ
> default.boolean.true=はい
> default.boolean.false=いいえ
> default.date.format=yyyy/MM/dd HH:mm:ss z
> default.number.format=0
>
> default.created.message={0}(id:{1})を作成しました。
> default.updated.message={0}(id:{1})を更新しました。
> default.deleted.message={0}(id:{1})を削除しました。
> default.not.deleted.message={0}(id:{1})は削除できませんでした。
> default.not.found.message={0}(id:{1})は見つかりませんでした。
> default.optimistic.locking.failure=この{0}は編集中に他のユーザによって先に更新されています。
>
> default.home.label=ホーム
> default.list.label={0}リスト
> default.add.label={0}を追加
> default.new.label={0}を新規作成
> default.create.label={0}を作成
> default.show.label={0}詳細
> default.edit.label={0}を編集
>
> default.button.create.label=作成
> default.button.edit.label=編集
> default.button.update.label=更新
> default.button.delete.label=削除
> default.button.delete.confirm.message=本当に削除してよろしいですか?
>
> # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
> typeMismatch.java.net.URL={0}は有効なURLでなければなりません。
> typeMismatch.java.net.URI={0}は有効なURIでなければなりません。
> typeMismatch.java.util.Date={0}は有効な日付でなければなりません。
> typeMismatch.java.lang.Double={0}は有効な数値でなければなりません。
> typeMismatch.java.lang.Integer={0}は有効な数値でなければなりません。
> typeMismatch.java.lang.Long={0}は有効な数値でなければなりません。
> typeMismatch.java.lang.Short={0}は有効な数値でなければなりません。
> typeMismatch.java.math.BigDecimal={0}は有効な数値でなければなりません。
> typeMismatch.java.math.BigInteger={0}は有効な数値でなければなりません。
Only in 2.3.1/whoopy/grails-app/i18n: messages_nb.properties
Only in 2.3.1/whoopy/grails-app/i18n: messages_pl.properties
diff -r 2.0.0/whoopy/grails-app/i18n/messages_pt_PT.properties 2.3.1/whoopy/grails-app/i18n/messages_pt_PT.properties
1,34c1,34
< #
< # translation by miguel.ping@gmail.com, based on pt_BR translation by Lucas Teixeira - lucastex@gmail.com
< #
<
< default.doesnt.match.message=O campo [{0}] da classe [{1}] com o valor [{2}] não corresponde ao padrão definido [{3}]
< default.invalid.url.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um URL válido
< default.invalid.creditCard.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um número válido de cartão de crédito
< default.invalid.email.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um endereço de email válido.
< default.invalid.range.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está dentro dos limites de valores válidos de [{3}] a [{4}]
< default.invalid.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] está fora dos limites de tamanho válido de [{3}] a [{4}]
< default.invalid.max.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o valor máximo [{3}]
< default.invalid.min.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o valor mínimo [{3}]
< default.invalid.max.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o tamanho máximo de [{3}]
< default.invalid.min.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o tamanho mínimo de [{3}]
< default.invalid.validator.message=O campo [{0}] da classe [{1}] com o valor [{2}] não passou na validação
< default.not.inlist.message=O campo [{0}] da classe [{1}] com o valor [{2}] não se encontra nos valores permitidos da lista [{3}]
< default.blank.message=O campo [{0}] da classe [{1}] não pode ser vazio
< default.not.equal.message=O campo [{0}] da classe [{1}] com o valor [{2}] não pode ser igual a [{3}]
< default.null.message=O campo [{0}] da classe [{1}] não pode ser vazio
< default.not.unique.message=O campo [{0}] da classe [{1}] com o valor [{2}] deve ser único
<
< default.paginate.prev=Anterior
< default.paginate.next=Próximo
<
< # Mensagens de erro em atribuição de valores. Use "typeMismatch.$className.$propertyName" para personalizar(eg typeMismatch.Book.author)
< typeMismatch.java.net.URL=O campo {0} deve ser um URL válido.
< typeMismatch.java.net.URI=O campo {0} deve ser um URI válido.
< typeMismatch.java.util.Date=O campo {0} deve ser uma data válida
< typeMismatch.java.lang.Double=O campo {0} deve ser um número válido.
< typeMismatch.java.lang.Integer=O campo {0} deve ser um número válido.
< typeMismatch.java.lang.Long=O campo {0} deve ser um número valido.
< typeMismatch.java.lang.Short=O campo {0} deve ser um número válido.
< typeMismatch.java.math.BigDecimal=O campo {0} deve ser um número válido.
< typeMismatch.java.math.BigInteger=O campo {0} deve ser um número válido.
---
> #
> # translation by miguel.ping@gmail.com, based on pt_BR translation by Lucas Teixeira - lucastex@gmail.com
> #
>
> default.doesnt.match.message=O campo [{0}] da classe [{1}] com o valor [{2}] não corresponde ao padrão definido [{3}]
> default.invalid.url.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um URL válido
> default.invalid.creditCard.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um número válido de cartão de crédito
> default.invalid.email.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um endereço de email válido.
> default.invalid.range.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está dentro dos limites de valores válidos de [{3}] a [{4}]
> default.invalid.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] está fora dos limites de tamanho válido de [{3}] a [{4}]
> default.invalid.max.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o valor máximo [{3}]
> default.invalid.min.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o valor mínimo [{3}]
> default.invalid.max.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o tamanho máximo de [{3}]
> default.invalid.min.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o tamanho mínimo de [{3}]
> default.invalid.validator.message=O campo [{0}] da classe [{1}] com o valor [{2}] não passou na validação
> default.not.inlist.message=O campo [{0}] da classe [{1}] com o valor [{2}] não se encontra nos valores permitidos da lista [{3}]
> default.blank.message=O campo [{0}] da classe [{1}] não pode ser vazio
> default.not.equal.message=O campo [{0}] da classe [{1}] com o valor [{2}] não pode ser igual a [{3}]
> default.null.message=O campo [{0}] da classe [{1}] não pode ser vazio
> default.not.unique.message=O campo [{0}] da classe [{1}] com o valor [{2}] deve ser único
>
> default.paginate.prev=Anterior
> default.paginate.next=Próximo
>
> # Mensagens de erro em atribuição de valores. Use "typeMismatch.$className.$propertyName" para personalizar(eg typeMismatch.Book.author)
> typeMismatch.java.net.URL=O campo {0} deve ser um URL válido.
> typeMismatch.java.net.URI=O campo {0} deve ser um URI válido.
> typeMismatch.java.util.Date=O campo {0} deve ser uma data válida
> typeMismatch.java.lang.Double=O campo {0} deve ser um número válido.
> typeMismatch.java.lang.Integer=O campo {0} deve ser um número válido.
> typeMismatch.java.lang.Long=O campo {0} deve ser um número valido.
> typeMismatch.java.lang.Short=O campo {0} deve ser um número válido.
> typeMismatch.java.math.BigDecimal=O campo {0} deve ser um número válido.
> typeMismatch.java.math.BigInteger=O campo {0} deve ser um número válido.
diff -r 2.0.0/whoopy/grails-app/i18n/messages_ru.properties 2.3.1/whoopy/grails-app/i18n/messages_ru.properties
1,31c1,31
< default.doesnt.match.message=Значение [{2}] поля [{0}] класса [{1}] не соответствует образцу [{3}]
< default.invalid.url.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым URL-адресом
< default.invalid.creditCard.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым номером кредитной карты
< default.invalid.email.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым e-mail адресом
< default.invalid.range.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в допустимый интервал от [{3}] до [{4}]
< default.invalid.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) не попадает в допустимый интервал от [{3}] до [{4}]
< default.invalid.max.message=Значение [{2}] поля [{0}] класса [{1}] больше чем максимально допустимое значение [{3}]
< default.invalid.min.message=Значение [{2}] поля [{0}] класса [{1}] меньше чем минимально допустимое значение [{3}]
< default.invalid.max.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) больше чем максимально допустимый размер [{3}]
< default.invalid.min.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) меньше чем минимально допустимый размер [{3}]
< default.invalid.validator.message=Значение [{2}] поля [{0}] класса [{1}] не допустимо
< default.not.inlist.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в список допустимых значений [{3}]
< default.blank.message=Поле [{0}] класса [{1}] не может быть пустым
< default.not.equal.message=Значение [{2}] поля [{0}] класса [{1}] не может быть равно [{3}]
< default.null.message=Поле [{0}] класса [{1}] не может иметь значение null
< default.not.unique.message=Значение [{2}] поля [{0}] класса [{1}] должно быть уникальным
<
< default.paginate.prev=Предыдушая страница
< default.paginate.next=Следующая страница
<
< # Ошибки при присвоении данных. Для точной настройки для полей классов используйте
< # формат "typeMismatch.$className.$propertyName" (например, typeMismatch.Book.author)
< typeMismatch.java.net.URL=Значение поля {0} не является допустимым URL
< typeMismatch.java.net.URI=Значение поля {0} не является допустимым URI
< typeMismatch.java.util.Date=Значение поля {0} не является допустимой датой
< typeMismatch.java.lang.Double=Значение поля {0} не является допустимым числом
< typeMismatch.java.lang.Integer=Значение поля {0} не является допустимым числом
< typeMismatch.java.lang.Long=Значение поля {0} не является допустимым числом
< typeMismatch.java.lang.Short=Значение поля {0} не является допустимым числом
< typeMismatch.java.math.BigDecimal=Значение поля {0} не является допустимым числом
< typeMismatch.java.math.BigInteger=Значение поля {0} не является допустимым числом
---
> default.doesnt.match.message=Значение [{2}] поля [{0}] класса [{1}] не соответствует образцу [{3}]
> default.invalid.url.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым URL-адресом
> default.invalid.creditCard.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым номером кредитной карты
> default.invalid.email.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым e-mail адресом
> default.invalid.range.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в допустимый интервал от [{3}] до [{4}]
> default.invalid.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) не попадает в допустимый интервал от [{3}] до [{4}]
> default.invalid.max.message=Значение [{2}] поля [{0}] класса [{1}] больше чем максимально допустимое значение [{3}]
> default.invalid.min.message=Значение [{2}] поля [{0}] класса [{1}] меньше чем минимально допустимое значение [{3}]
> default.invalid.max.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) больше чем максимально допустимый размер [{3}]
> default.invalid.min.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) меньше чем минимально допустимый размер [{3}]
> default.invalid.validator.message=Значение [{2}] поля [{0}] класса [{1}] не допустимо
> default.not.inlist.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в список допустимых значений [{3}]
> default.blank.message=Поле [{0}] класса [{1}] не может быть пустым
> default.not.equal.message=Значение [{2}] поля [{0}] класса [{1}] не может быть равно [{3}]
> default.null.message=Поле [{0}] класса [{1}] не может иметь значение null
> default.not.unique.message=Значение [{2}] поля [{0}] класса [{1}] должно быть уникальным
>
> default.paginate.prev=Предыдушая страница
> default.paginate.next=Следующая страница
>
> # Ошибки при присвоении данных. Для точной настройки для полей классов используйте
> # формат "typeMismatch.$className.$propertyName" (например, typeMismatch.Book.author)
> typeMismatch.java.net.URL=Значение поля {0} не является допустимым URL
> typeMismatch.java.net.URI=Значение поля {0} не является допустимым URI
> typeMismatch.java.util.Date=Значение поля {0} не является допустимой датой
> typeMismatch.java.lang.Double=Значение поля {0} не является допустимым числом
> typeMismatch.java.lang.Integer=Значение поля {0} не является допустимым числом
> typeMismatch.java.lang.Long=Значение поля {0} не является допустимым числом
> typeMismatch.java.lang.Short=Значение поля {0} не является допустимым числом
> typeMismatch.java.math.BigDecimal=Значение поля {0} не является допустимым числом
> typeMismatch.java.math.BigInteger=Значение поля {0} не является допустимым числом
diff -r 2.0.0/whoopy/grails-app/i18n/messages_th.properties 2.3.1/whoopy/grails-app/i18n/messages_th.properties
1,55c1,55
< default.doesnt.match.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบที่กำหนดไว้ใน [{3}]
< default.invalid.url.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบ URL
< default.invalid.creditCard.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบหมายเลขบัตรเครดิต
< default.invalid.email.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบอีเมล์
< default.invalid.range.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีค่าที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
< default.invalid.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีขนาดที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
< default.invalid.max.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าเกิดกว่าค่ามากสุด [{3}]
< default.invalid.min.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าน้อยกว่าค่าต่ำสุด [{3}]
< default.invalid.max.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดเกินกว่าขนาดมากสุดของ [{3}]
< default.invalid.min.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดต่ำกว่าขนาดต่ำสุดของ [{3}]
< default.invalid.validator.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ผ่านการทวนสอบค่าที่ตั้งขึ้น
< default.not.inlist.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้อยู่ในรายการต่อไปนี้ [{3}]
< default.blank.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็นค่าว่างได้
< default.not.equal.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่สามารถเท่ากับ [{3}] ได้
< default.null.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็น null ได้
< default.not.unique.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] จะต้องไม่ซ้ำ (unique)
<
< default.paginate.prev=ก่อนหน้า
< default.paginate.next=ถัดไป
< default.boolean.true=จริง
< default.boolean.false=เท็จ
< default.date.format=dd-MM-yyyy HH:mm:ss z
< default.number.format=0
<
< default.created.message=สร้าง {0} {1} เรียบร้อยแล้ว
< default.updated.message=ปรับปรุง {0} {1} เรียบร้อยแล้ว
< default.deleted.message=ลบ {0} {1} เรียบร้อยแล้ว
< default.not.deleted.message=ไม่สามารถลบ {0} {1}
< default.not.found.message=ไม่พบ {0} ด้วย id {1} นี้
< default.optimistic.locking.failure=มีผู้ใช้ท่านอื่นปรับปรุง {0} ขณะที่คุณกำลังแก้ไขข้อมูลอยู่
<
< default.home.label=หน้าแรก
< default.list.label=รายการ {0}
< default.add.label=เพิ่ม {0}
< default.new.label=สร้าง {0} ใหม่
< default.create.label=สร้าง {0}
< default.show.label=แสดง {0}
< default.edit.label=แก้ไข {0}
<
< default.button.create.label=สร้าง
< default.button.edit.label=แก้ไข
< default.button.update.label=ปรับปรุง
< default.button.delete.label=ลบ
< default.button.delete.confirm.message=คุณแน่ใจหรือไม่ ?
<
< # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
< typeMismatch.java.net.URL=คุณสมบัติ '{0}' จะต้องเป็นค่า URL ที่ถูกต้อง
< typeMismatch.java.net.URI=คุณสมบัติ '{0}' จะต้องเป็นค่า URI ที่ถูกต้อง
< typeMismatch.java.util.Date=คุณสมบัติ '{0}' จะต้องมีค่าเป็นวันที่
< typeMismatch.java.lang.Double=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Double
< typeMismatch.java.lang.Integer=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Integer
< typeMismatch.java.lang.Long=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Long
< typeMismatch.java.lang.Short=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Short
< typeMismatch.java.math.BigDecimal=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigDecimal
< typeMismatch.java.math.BigInteger=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigInteger
---
> default.doesnt.match.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบที่กำหนดไว้ใน [{3}]
> default.invalid.url.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบ URL
> default.invalid.creditCard.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบหมายเลขบัตรเครดิต
> default.invalid.email.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบอีเมล์
> default.invalid.range.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีค่าที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
> default.invalid.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีขนาดที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
> default.invalid.max.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าเกิดกว่าค่ามากสุด [{3}]
> default.invalid.min.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าน้อยกว่าค่าต่ำสุด [{3}]
> default.invalid.max.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดเกินกว่าขนาดมากสุดของ [{3}]
> default.invalid.min.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดต่ำกว่าขนาดต่ำสุดของ [{3}]
> default.invalid.validator.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ผ่านการทวนสอบค่าที่ตั้งขึ้น
> default.not.inlist.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้อยู่ในรายการต่อไปนี้ [{3}]
> default.blank.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็นค่าว่างได้
> default.not.equal.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่สามารถเท่ากับ [{3}] ได้
> default.null.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็น null ได้
> default.not.unique.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] จะต้องไม่ซ้ำ (unique)
>
> default.paginate.prev=ก่อนหน้า
> default.paginate.next=ถัดไป
> default.boolean.true=จริง
> default.boolean.false=เท็จ
> default.date.format=dd-MM-yyyy HH:mm:ss z
> default.number.format=0
>
> default.created.message=สร้าง {0} {1} เรียบร้อยแล้ว
> default.updated.message=ปรับปรุง {0} {1} เรียบร้อยแล้ว
> default.deleted.message=ลบ {0} {1} เรียบร้อยแล้ว
> default.not.deleted.message=ไม่สามารถลบ {0} {1}
> default.not.found.message=ไม่พบ {0} ด้วย id {1} นี้
> default.optimistic.locking.failure=มีผู้ใช้ท่านอื่นปรับปรุง {0} ขณะที่คุณกำลังแก้ไขข้อมูลอยู่
>
> default.home.label=หน้าแรก
> default.list.label=รายการ {0}
> default.add.label=เพิ่ม {0}
> default.new.label=สร้าง {0} ใหม่
> default.create.label=สร้าง {0}
> default.show.label=แสดง {0}
> default.edit.label=แก้ไข {0}
>
> default.button.create.label=สร้าง
> default.button.edit.label=แก้ไข
> default.button.update.label=ปรับปรุง
> default.button.delete.label=ลบ
> default.button.delete.confirm.message=คุณแน่ใจหรือไม่ ?
>
> # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
> typeMismatch.java.net.URL=คุณสมบัติ '{0}' จะต้องเป็นค่า URL ที่ถูกต้อง
> typeMismatch.java.net.URI=คุณสมบัติ '{0}' จะต้องเป็นค่า URI ที่ถูกต้อง
> typeMismatch.java.util.Date=คุณสมบัติ '{0}' จะต้องมีค่าเป็นวันที่
> typeMismatch.java.lang.Double=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Double
> typeMismatch.java.lang.Integer=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Integer
> typeMismatch.java.lang.Long=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Long
> typeMismatch.java.lang.Short=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Short
> typeMismatch.java.math.BigDecimal=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigDecimal
> typeMismatch.java.math.BigInteger=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigInteger
diff -r 2.0.0/whoopy/grails-app/i18n/messages_zh_CN.properties 2.3.1/whoopy/grails-app/i18n/messages_zh_CN.properties
1,18c1,18
< default.blank.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3A\u7A7A
< default.doesnt.match.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E\u5B9A\u4E49\u7684\u6A21\u5F0F [{3}]\u4E0D\u5339\u914D
< default.invalid.creditCard.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4FE1\u7528\u5361\u53F7
< default.invalid.email.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684\u7535\u5B50\u90AE\u4EF6\u5730\u5740
< default.invalid.max.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
< default.invalid.max.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
< default.invalid.min.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
< default.invalid.min.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
< default.invalid.range.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
< default.invalid.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
< default.invalid.url.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684URL
< default.invalid.validator.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u672A\u80FD\u901A\u8FC7\u81EA\u5B9A\u4E49\u7684\u9A8C\u8BC1
< default.not.equal.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E[{3}]\u4E0D\u76F8\u7B49
< default.not.inlist.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5217\u8868\u7684\u53D6\u503C\u8303\u56F4\u5185
< default.not.unique.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u5FC5\u987B\u662F\u552F\u4E00\u7684
< default.null.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3Anull
< default.paginate.next=\u4E0B\u9875
< default.paginate.prev=\u4E0A\u9875
---
> default.blank.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3A\u7A7A
> default.doesnt.match.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E\u5B9A\u4E49\u7684\u6A21\u5F0F [{3}]\u4E0D\u5339\u914D
> default.invalid.creditCard.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4FE1\u7528\u5361\u53F7
> default.invalid.email.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684\u7535\u5B50\u90AE\u4EF6\u5730\u5740
> default.invalid.max.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
> default.invalid.max.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
> default.invalid.min.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
> default.invalid.min.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
> default.invalid.range.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
> default.invalid.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
> default.invalid.url.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684URL
> default.invalid.validator.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u672A\u80FD\u901A\u8FC7\u81EA\u5B9A\u4E49\u7684\u9A8C\u8BC1
> default.not.equal.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E[{3}]\u4E0D\u76F8\u7B49
> default.not.inlist.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5217\u8868\u7684\u53D6\u503C\u8303\u56F4\u5185
> default.not.unique.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u5FC5\u987B\u662F\u552F\u4E00\u7684
> default.null.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3Anull
> default.paginate.next=\u4E0B\u9875
> default.paginate.prev=\u4E0A\u9875
diff -r 2.0.0/whoopy/grails-app/views/error.gsp 2.3.1/whoopy/grails-app/views/error.gsp
1c1
< <!doctype html>
---
> <!DOCTYPE html>
4c4
< <title>Grails Runtime Exception</title>
---
> <title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title>
6c6
< <link rel="stylesheet" href="${resource(dir: 'css', file: 'errors.css')}" type="text/css">
---
> <g:if env="development"><link rel="stylesheet" href="${resource(dir: 'css', file: 'errors.css')}" type="text/css"></g:if>
9c9,16
< <g:renderException exception="${exception}" />
---
> <g:if env="development">
> <g:renderException exception="${exception}" />
> </g:if>
> <g:else>
> <ul class="errors">
> <li>An error has occurred</li>
> </ul>
> </g:else>
11c18
< </html>
\ No newline at end of file
---
> </html>
diff -r 2.0.0/whoopy/grails-app/views/index.gsp 2.3.1/whoopy/grails-app/views/index.gsp
1c1
< <!doctype html>
---
> <!DOCTYPE html>
32a33,36
> #status li {
> line-height: 1.3;
> }
>
49a54
> line-height: 1.5;
57a63
> line-height: 1.3;
84c90
< <li>Groovy version: ${org.codehaus.groovy.runtime.InvokerHelper.getVersion()}</li>
---
> <li>Groovy version: ${GroovySystem.getVersion()}</li>
diff -r 2.0.0/whoopy/grails-app/views/layouts/main.gsp 2.3.1/whoopy/grails-app/views/layouts/main.gsp
1c1
< <!doctype html>
---
> <!DOCTYPE html>
18c18
< <r:layoutResources />
---
> <r:layoutResources />
26c26
< <r:layoutResources />
---
> <r:layoutResources />
28c28
< </html>
\ No newline at end of file
---
> </html>
Only in 2.3.1/whoopy: grailsw
Only in 2.3.1/whoopy: grailsw.bat
diff -r 2.0.0/whoopy/web-app/WEB-INF/applicationContext.xml 2.3.1/whoopy/web-app/WEB-INF/applicationContext.xml
3,5c3,4
< xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
< xsi:schemaLocation="
< http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
---
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
32a32,33
>
> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" />
Only in 2.3.1/whoopy/web-app/WEB-INF/tld: spring-form.tld
diff -r 2.0.0/whoopy/web-app/WEB-INF/tld/spring.tld 2.3.1/whoopy/web-app/WEB-INF/tld/spring.tld
1,11c1,9
< <?xml version="1.0" encoding="ISO-8859-1" ?>
< <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<
< <taglib>
<
< <tlib-version>1.1.1</tlib-version>
<
< <jsp-version>1.2</jsp-version>
<
< <short-name>Spring</short-name>
<
---
> <?xml version="1.0" encoding="UTF-8"?>
> <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
> version="2.0">
>
> <description>Spring Framework JSP Tag Library</description>
> <tlib-version>3.0</tlib-version>
> <short-name>spring</short-name>
14,16d11
< <description>Spring Framework JSP Tag Library. Authors: Rod Johnson, Juergen Hoeller</description>
<
<
18,22d12
<
< <name>htmlEscape</name>
< <tag-class>org.springframework.web.servlet.tags.HtmlEscapeTag</tag-class>
< <body-content>JSP</body-content>
<
27c17,19
<
---
> <name>htmlEscape</name>
> <tag-class>org.springframework.web.servlet.tags.HtmlEscapeTag</tag-class>
> <body-content>JSP</body-content>
28a21,22
> <description>Set the default value for HTML escaping, to be put
> into the current PageContext.</description>
33d26
<
36d28
<
38,42d29
<
< <name>escapeBody</name>
< <tag-class>org.springframework.web.servlet.tags.EscapeBodyTag</tag-class>
< <body-content>JSP</body-content>
<
48c35,37
<
---
> <name>escapeBody</name>
> <tag-class>org.springframework.web.servlet.tags.EscapeBodyTag</tag-class>
> <body-content>JSP</body-content>
49a39,40
> <description>Set HTML escaping for this tag, as boolean value. Overrides the
> default HTML escaping setting for the current page.</description>
54d44
<
55a46,47
> <description>Set JavaScript escaping for this tag, as boolean value.
> Default is false.</description>
60d51
<
63d53
<
65,69d54
<
< <name>message</name>
< <tag-class>org.springframework.web.servlet.tags.MessageTag</tag-class>
< <body-content>JSP</body-content>
<
75c60,62
<
---
> <name>message</name>
> <tag-class>org.springframework.web.servlet.tags.MessageTag</tag-class>
> <body-content>JSP</body-content>
76a64,77
> <description>A MessageSourceResolvable argument (direct or through JSP EL).
> Fits nicely when used in conjunction with Spring's own validation error
> classes which all implement the MessageSourceResolvable interface. For
> example, this allows you to iterate over all of the errors in a form,
> passing each error (using a runtime expression) as the value of this
> 'message' attribute, thus effecting the easy display of such error
> messages.</description>
> <name>message</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>The code (key) to use when looking up the message.
> If code is not provided, the text attribute will be used.</description>
81d81
<
82a83,86
> <description>Set optional message arguments for this tag, as a
> (comma-)delimited String (each String argument can contain JSP EL),
> an Object array (used as argument array), or a single Object (used
> as single argument).</description>
87d90
<
88a92,101
> <description>The separator character to be used for splitting the
> arguments string value; defaults to a 'comma' (',').</description>
> <name>argumentSeparator</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>Default text to output when a message for the given code
> could not be found. If both text and code are not set, the tag will
> output null.</description>
93d105
<
94a107,109
> <description>The string to use when binding the result to the page,
> request, session or application scope. If not specified, the result
> gets outputted to the writer (i.e. typically directly to the JSP).</description>
99d113
<
100a115,117
> <description>The scope to use when exporting the result to a variable.
> This attribute is only used when var is also set. Possible values are
> page, request, session and application.</description>
105d121
<
106a123,124
> <description>Set HTML escaping for this tag, as boolean value.
> Overrides the default HTML escaping setting for the current page.</description>
111d128
<
112a130
> <description>Set JavaScript escaping for this tag, as boolean value. Default is false.</description>
117d134
<
120d136
<
122,126d137
<
< <name>theme</name>
< <tag-class>org.springframework.web.servlet.tags.ThemeTag</tag-class>
< <body-content>JSP</body-content>
<
132c143,145
<
---
> <name>theme</name>
> <tag-class>org.springframework.web.servlet.tags.ThemeTag</tag-class>
> <body-content>JSP</body-content>
133a147,154
> <description>A MessageSourceResolvable argument (direct or through JSP EL).</description>
> <name>message</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>The code (key) to use when looking up the message.
> If code is not provided, the text attribute will be used.</description>
138d158
<
139a160,163
> <description>Set optional message arguments for this tag, as a
> (comma-)delimited String (each String argument can contain JSP EL),
> an Object array (used as argument array), or a single Object (used
> as single argument).</description>
144d167
<
145a169,178
> <description>The separator character to be used for splitting the
> arguments string value; defaults to a 'comma' (',').</description>
> <name>argumentSeparator</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>Default text to output when a message for the given code
> could not be found. If both text and code are not set, the tag will
> output null.</description>
150d182
<
151a184,186
> <description>The string to use when binding the result to the page,
> request, session or application scope. If not specified, the result
> gets outputted to the writer (i.e. typically directly to the JSP).</description>
156d190
<
157a192,194
> <description>The scope to use when exporting the result to a variable.
> This attribute is only used when var is also set. Possible values are
> page, request, session and application.</description>
162d198
<
163a200,201
> <description>Set HTML escaping for this tag, as boolean value.
> Overrides the default HTML escaping setting for the current page.</description>
168d205
<
169a207
> <description>Set JavaScript escaping for this tag, as boolean value. Default is false.</description>
174d211
<
177d213
<
179,183d214
<
< <name>hasBindErrors</name>
< <tag-class>org.springframework.web.servlet.tags.BindErrorsTag</tag-class>
< <body-content>JSP</body-content>
<
189c220,222
<
---
> <name>hasBindErrors</name>
> <tag-class>org.springframework.web.servlet.tags.BindErrorsTag</tag-class>
> <body-content>JSP</body-content>
194d226
<
195a228,230
> <description>The name of the bean in the request, that needs to be
> inspected for errors. If errors are available for this bean, they
> will be bound under the 'errors' key.</description>
200d234
<
201a236,237
> <description>Set HTML escaping for this tag, as boolean value.
> Overrides the default HTML escaping setting for the current page.</description>
206d241
<
209d243
<
211,215d244
<
< <name>nestedPath</name>
< <tag-class>org.springframework.web.servlet.tags.NestedPathTag</tag-class>
< <body-content>JSP</body-content>
<
219c248,250
<
---
> <name>nestedPath</name>
> <tag-class>org.springframework.web.servlet.tags.NestedPathTag</tag-class>
> <body-content>JSP</body-content>
224d254
<
225a256,258
> <description>Set the path that this tag should apply. E.g. 'customer'
> to allow bind paths like 'address.street' rather than
> 'customer.address.street'.</description>
230d262
<
233d264
<
235,239d265
<
< <name>bind</name>
< <tag-class>org.springframework.web.servlet.tags.BindTag</tag-class>
< <body-content>JSP</body-content>
<
245c271,273
<
---
> <name>bind</name>
> <tag-class>org.springframework.web.servlet.tags.BindTag</tag-class>
> <body-content>JSP</body-content>
250d277
<
251a279,282
> <description>The path to the bean or bean property to bind status
> information for. For instance account.name, company.address.zipCode
> or just employee. The status object will exported to the page scope,
> specifically for this bean or bean property</description>
256d286
<
257a288
> <description>Set whether to ignore a nested path, if any. Default is to not ignore.</description>
262d292
<
263a294,295
> <description>Set HTML escaping for this tag, as boolean value. Overrides
> the default HTML escaping setting for the current page.</description>
268d299
<
271d301
<
273,277d302
<
< <name>transform</name>
< <tag-class>org.springframework.web.servlet.tags.TransformTag</tag-class>
< <body-content>JSP</body-content>
<
282c307
< (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml).
---
> (i.e. by HtmlEscapeTag or a 'defaultHtmlEscape' context-param in web.xml).
284c309,311
<
---
> <name>transform</name>
> <tag-class>org.springframework.web.servlet.tags.TransformTag</tag-class>
> <body-content>JSP</body-content>
285a313,315
> <description>The value to transform. This is the actual object you want
> to have transformed (for instance a Date). Using the PropertyEditor that
> is currently in use by the 'spring:bind' tag.</description>
290d319
<
291a321,323
> <description>The string to use when binding the result to the page,
> request, session or application scope. If not specified, the result gets
> outputted to the writer (i.e. typically directly to the JSP).</description>
296d327
<
297a329,331
> <description>The scope to use when exported the result to a variable.
> This attribute is only used when var is also set. Possible values are
> page, request, session and application.</description>
301a336,343
> <attribute>
> <description>Set HTML escaping for this tag, as boolean value. Overrides
> the default HTML escaping setting for the current page.</description>
> <name>htmlEscape</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> </tag>
302a345,372
> <tag>
> <description>URL tag based on the JSTL c:url tag. This variant is fully
> backwards compatible with the standard tag. Enhancements include support
> for URL template parameters.</description>
> <name>url</name>
> <tag-class>org.springframework.web.servlet.tags.UrlTag</tag-class>
> <body-content>JSP</body-content>
> <attribute>
> <description>The URL to build. This value can include template place holders
> that are replaced with the URL encoded value of the named parameter. Parameters
> must be defined using the param tag inside the body of this tag.</description>
> <name>value</name>
> <required>true</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>Specifies a remote application context path. The default is the
> current application context path.</description>
> <name>context</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>The name of the variable to export the URL value to.</description>
> <name>var</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
303a374,383
> <description>The scope for the var. 'application', 'session', 'request' and
> 'page' scopes are supported. Defaults to page scope. This attribute has no
> effect unless the var attribute is also defined.</description>
> <name>scope</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>Set HTML escaping for this tag, as a boolean value. Overrides the
> default HTML escaping setting for the current page.</description>
307a388,415
> <attribute>
> <description>Set JavaScript escaping for this tag, as a boolean value.
> Default is false.</description>
> <name>javaScriptEscape</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> </tag>
>
> <tag>
> <description>Parameter tag based on the JSTL c:param tag. The sole purpose is to
> support params inside the spring:url tag.</description>
> <name>param</name>
> <tag-class>org.springframework.web.servlet.tags.ParamTag</tag-class>
> <body-content>JSP</body-content>
> <attribute>
> <description>The name of the parameter.</description>
> <name>name</name>
> <required>true</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>The value of the parameter.</description>
> <name>value</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> </tag>
308a417,454
> <tag>
> <description>Evaluates a Spring expression (SpEL) and either prints the result or assigns it to a variable.</description>
> <name>eval</name>
> <tag-class>org.springframework.web.servlet.tags.EvalTag</tag-class>
> <body-content>JSP</body-content>
> <attribute>
> <description>The expression to evaluate.</description>
> <name>expression</name>
> <required>true</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>The name of the variable to export the evaluation result to.</description>
> <name>var</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>The scope for the var. 'application', 'session', 'request' and
> 'page' scopes are supported. Defaults to page scope. This attribute has no
> effect unless the var attribute is also defined.</description>
> <name>scope</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>Set HTML escaping for this tag, as a boolean value. Overrides the
> default HTML escaping setting for the current page.</description>
> <name>htmlEscape</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
> <attribute>
> <description>Set JavaScript escaping for this tag, as a boolean value. Default is false.</description>
> <name>javaScriptEscape</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
diff -r 2.0.0/whoopy/web-app/css/main.css 2.3.1/whoopy/web-app/css/main.css
6a7,10
> h1, h2, h3, h4, h5, h6 {
> line-height: 1.1;
> }
>
309a314,315
> margin-left: 0;
> margin-right: 0;
328c334
< padding: 0.5em;
---
> padding: 0.25em;
356,357c362,363
< background: transparent url(../images/skin/exclamation.png) 0 50% no-repeat;
< text-indent: 22px;
---
> background: transparent url(../images/skin/exclamation.png) 0.5em 50% no-repeat;
> text-indent: 2.2em;
361,362c367,368
< background: transparent url(../images/skin/information.png) 0 50% no-repeat;
< text-indent: 22px;
---
> background: transparent url(../images/skin/information.png) 0.5em 50% no-repeat;
> text-indent: 2.2em;
569a576,580
> .ie6 .buttons input.delete, .ie6 .buttons input.edit, .ie6 .buttons input.save,
> .ie7 .buttons input.delete, .ie7 .buttons input.edit, .ie7 .buttons input.save {
> padding-left: 36px;
> }
>
Only in 2.0.0/whoopy/web-app/images: grails_logo.jpg
Only in 2.0.0/whoopy/web-app/images: leftnav_btm.png
Only in 2.0.0/whoopy/web-app/images: leftnav_midstretch.png
Only in 2.0.0/whoopy/web-app/images: leftnav_top.png
Only in 2.3.1/whoopy: wrapper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment