, , , . LocaleContextHolder , RequestContextUtils. JavaScript. , ( Grails 2.1.2):
import org.springframework.web.servlet.support.RequestContextUtils
import grails.converters.JSON
class I18nController {
def strings() {
ResourceBundle clientMessages = ResourceBundle.getBundle("com.example.ClientMessages",
RequestContextUtils.getLocale(request),
Thread.currentThread().contextClassLoader)
render clientMessages as JSON
}
}
JSON , , . BootStrap.groovy init:
JSON.registerObjectMarshaller(ResourceBundle) { bundle ->
def returnObject = [:]
bundle.keys.each {
returnObject."${it}" = bundle.getString(it)
}
returnObject
}
, , , javascript . src/java/com/example/ClientMessages.properties.
size.small=Small
size.wide=Wide
size.large=Large
, myapp/i18n/strings, JSON :
{"size.small":"Small","size.wide":"Wide","size.large":"Large"}
, , javascript , grails i18n. , g: message . - i18n , .