Grails: чтение комплекта ресурсов - PullRequest
4 голосов
/ 31 января 2012

Я попытался получить список сообщений / переводов из пакета ресурсов, но это не удалось (выдает исключение).Приложение работает на Tomcat из IDEA:

Locale locale = new Locale("en");
ResourceBundle bundle = ResourceBundle.getBundle('i18n/dictionary', locale);

Что здесь не так.i18n / dictionary находится на пути к классам.Возможно, 'i18n / dictionary' неверно.

Я могу получить источник сообщения, но не могу получить ключи от этого (SPRING) объекта:

def messageSource = grailsAttributes.getApplicationContext().getBean("messageSource");

1 Ответ

1 голос
/ 31 января 2012

Путь к ресурсу был неполным.Если вам нужна таблица перевода на внешнем интерфейсе, возможно, вам пригодится следующий контроллер:

class ClientMessagesController {

def index = {
    Locale locale = session.getAttribute('locale') ?: new Locale("en");
    ResourceBundle bundle = ResourceBundle.getBundle('\\grails-app\\i18n\\clientMessages', locale);

    def sep = '';
    def sb = new StringBuilder();
    sb.append('<script type="text/javascript">\n');
    sb.append('_i18n = {\n');
    bundle.getKeys().each {key ->
        sb.append(sep);
        sb.append(key.replace('.', '_'));
        sb.append(': "');
        sb.append(bundle.getString(key).replace('"', '&quot;'));
        sb.append('"\n');
        sep = ',';
    }
    sb.append('};\n</script>\n')
    render(text: sb.toString());
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...