Skip to content

Instantly share code, notes, and snippets.

@jolros
Created November 7, 2013 08:12
Show Gist options
  • Save jolros/7350904 to your computer and use it in GitHub Desktop.
Save jolros/7350904 to your computer and use it in GitHub Desktop.
Diff between an upgraded Grails 2.0.0 -> 2.3.1 project and a new 2.3.1 project, or why detailed migration notes matter in code-copying web frameworks
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:10:36 PST 2013
< app.grails.version=2.0.0
---
> #Thu Nov 07 00:10:56 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