Tôi đã tạo bộ điều khiển này, bộ điều khiển này sẽ được sử dụng để gửi email. Tôi cần truy cập i18n để gửi email được bản địa hóa.Grails: Cách truy cập i18n từ bộ điều khiển hoặc dịch vụ?
class MailController {
MessageSource messageSource
static transactional = false
public void sendEmail() {
String name = "some name..."
String subject = message(code:"somemessagekey", args:[name])
// do some fancy stuff here...
}
}
Có file i18n sau đó (nằm trong thư mục i18n):
file name: messages.properties
content: somemessagekey = Blabla {0} - blablabla
Sau khi tôi chạy này, nó ném (trong một thử nghiệm tích hợp):
groovy.lang.MissingPropertyException: No such property: messageSource for class: org.codehaus.groovy.grails.support.MockApplicationContext
Tôi trong số các ý tưởng làm thế nào để xử lý nội địa hoá trong bộ điều khiển (tôi cũng đã thử nó trong một dịch vụ, nhưng điều đó thậm chí còn phức tạp hơn).
bạn không cần phải gọi g.message()? –
Tại sao tôi nên làm như vậy? Tôi đã không tìm thấy thông tin nào về "g". –