Намерих този страхотен gant скрипт на http://blog.armbruster-it.de/2010/07/getting-a-list-of-all-i18n-properties-used-in-a-grails-application/ Благодаря Стефан!
Описание: създайте списък на всички i18n свойства, използвани в groovy код и gsp шаблони
def properties = []
new File(".").eachFileRecurse {
if (it.file) {
switch (it) {
case ~/.*\.groovy/:
def matcher = it.text =~ /code:\s*["'](.*?)["']/
matcher.each { properties << it[1] }
break
case ~/.*\.gsp/:
def matcher = it.text =~ /code=["'](.*?)["']/
matcher.each { properties << it[1] }
break
}
}
}
println properties.sort().unique().join("\n")
Опитах се да го разширя по следния начин. Да кажем, че имаме някои свойства на съобщението като:
message(code: 'product.label', default: 'Product')
Това, което искаме да имаме като резултат от скрипта, нещо като:
product.label=Product
Опитах се да добавя някакво условие към регулярния израз:
def matcher = it.text =~ /code=["'](.*?)["'] | default=\s*["'](.*?)["']/
и да го попълните в свойства. Но тъй като регулярният израз не намира двойки части "код и по подразбиране", това няма да работи.
Някаква идея как да промените регулярния израз или целия скрипт, за да направите това?