Create the following bean (assuming that your lang param is called "lang"):
class LangAwareUrlMappingsHolderFactoryBean extends UrlMappingsHolderFactoryBean {
@Override
public UrlMappingsHolder getObject() throws Exception {
def obj = super.object
obj.DEFAULT_CONTROLLER_PARAMS = [UrlMapping.CONTROLLER, UrlMapping.ACTION, "lang"] as Set
obj
}
}
And adjust the resources.groovy:
"org.grails.internal.URL_MAPPINGS_HOLDER"(LangAwareUrlMappingsHolderFactoryBean) { bean ->
bean.lazyInit = true
}
And you'll get
/en/book/list?offset=10
instead of
/book/list?offset=10&lang=en