Я нашел этот замечательный сценарий Ганта в http://blog.armbruster -it.de / 2010/07 / получение списка всех свойств i18n, используемых в приложении grails / Спасибо, Стефан!
Описание: создать список всех свойств 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")
Я попытался расширить его следующим образом. Допустим, у нас есть свойства сообщения soem, такие как:
message(code: 'product.label', default: 'Product')
То, что мы хотим иметь в качестве выходных данных скрипта, примерно так:
product.label=Product
Я попытался добавить условие в регулярное выражение:
def matcher = it.text =~ /code=["'](.*?)["'] | default=\s*["'](.*?)["']/
и заполнить его свойствами. Но так как регулярное выражение не находит пары «код и стандартные» -части, это не сработает.
Есть идеи, как изменить регулярное выражение или весь скрипт, чтобы сделать это?