Как использовать интернационализацию XML-файла (i18n) с Grails - PullRequest
0 голосов
/ 01 октября 2009

Мне нужно использовать файл XML для хранения каждой пары ключ / значение, используемой моим приложением (вместо обычного файла свойств).

Grails по умолчанию использует файл свойств для обработки интернационализации.

Что я могу сделать, чтобы настроить Grails для чтения информации об интернационализации в XML-файле?

Спасибо

1 Ответ

2 голосов
/ 05 октября 2009

На самом деле, в скриптах Grails есть ошибка. При упаковке Grails будет копировать только файлы .properties, расположенные в папке / grails-app / i18n . Ваши XML-файлы будут игнорироваться.

Чтобы исправить это, вы можете вручную отредактировать файл {grails-sources} /scripts/_GrailsPackage.groovy.

Искать:

if(config.grails.enable.native2ascii) {
    profile("converting native message bundles to ascii") {
        ant.native2ascii(src:"${basedir}/grails-app/i18n",
                         dest:i18nDir,
                         includes:"*.properties",
                         encoding:"UTF-8")
    }
}
else {
    ant.copy(todir:i18nDir) {
        fileset(dir:"${basedir}/grails-app/i18n", includes:"*.properties")
    }
}

И заменить на:

if(config.grails.enable.native2ascii) {
    profile("converting native message bundles to ascii") {
        ant.native2ascii(src:"${basedir}/grails-app/i18n",
                         dest:i18nDir,
                         includes:"*.properties, *.xml",
                         encoding:"UTF-8")
    }
}
else {
    ant.copy(todir:i18nDir) {
        fileset(dir:"${basedir}/grails-app/i18n", includes:"*.properties, *.xml")
    }
}

Он скопирует ваши сообщения * .xml в путь ресурсов вашего приложения Grails при следующем запуске. Вы можете использовать messages.xml в качестве отправной точки - он должен учитывать Java DTD.

Использование в ваших представлениях будет работать так же, как и в файлах messages.properties.

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