То, что я представлю ниже, о плагине i18n-asset-pipeline
grails, который выполняет ту же работу, что и jquery.i18n.properties.js
, как таковой. Возможно, вы найдете несколько реализаций jquery.i18n.properties.js
на Grails Portal Plugin . Я не совсем уверен, что вы будете счастливы с моим предложением. Тем не менее, я бы сказал, что использование этого плагина поможет нам минимизировать усилия по поддержке и вызову тега lib g:message
в как представлений Grails, так и внешних файлов JavaScript .
Если вы чувствуете себя уверенно, играя с i18n-asset-pipeline
, пожалуйста, присмотритесь к его документации . Ниже приведены краткие шаги ребенка, которые я делал с grails 2.5.6
.
Шаг 1: Объявите плагин в BuildConfig.groovy
plugins {
...
runtime 'org.grails.plugins:i18n-asset-pipeline:1.0.6'
...
}
Шаг 2. Определите свойства своих сообщений в соответствующих файлах
В сообщениях Resource Bundle в каталоге grails-app/i18n
вы добавляете файлы с интересующими вас языками, такие как messages_fr.properties
, messages_vi.properties
и т. Д. Чтобы продемонстрировать, как это работает, я welcome.message
просто отображаю приветственное сообщение на индексная страница в этих файлах messages_{fr,es,vi}.properties
.
Шаг 3: Определите i18n
файлов в assets/javascripts/i18n
каталоге
Сначала запустив приложение, вы увидите этот каталог. Создание одного и того же набора файлов, т.е. messages.i18n
, messages_{es,fr,vi}.i18n
. Внутри этих файлов мы просто помещаем свойства, которые были добавлены в messages_{es,fr,vi}.properties
файлы, или свойства, которые вы хотите отображать только на определенных языках.
Шаг 4: Установите язык по умолчанию (необязательно)
Оставление следующего фрагмента в grails-app/conf/spring/resources.groovy
файле
beans = {
localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
defaultLocale = new Locale("fr", "FR")
java.util.Locale.setDefault(defaultLocale)
}
}
Шаг 5: Как использовать плагин i18n
В представлениях мы можем загрузить настройки по умолчанию для языка i18n и отобразить свойства сообщений в соответствии с этими строками.
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Demo | BioModels</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="layout" content="main"/>
<script>
</script>
<g:set var="locale" value="${session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE'}"/>
<asset:i18n locale="${locale}"/>
</head>
<body>
<h2><g:message code="welcome.message"/> </h2>
</body>
</html>
Шаг 6: Тестирование
Откройте вкладку в вашем веб-браузере, получив вашу страницу, например, http://localhost:8900/i18ndemo/demo/
, она отобразит содержимое свойства welcome.message
на языке по умолчанию, который был установлен в resources.groovy
. Если вы хотите сразу переключиться на другие языки, введите ?lang=es
после предыдущего URL. Это выглядит как http://localhost:8900/i18ndemo/demo/?lang=es
Пройдя через эти шаги, я полагаю, что вы получите свою потребность.
Пример проекта также был помещен в найденный битбакет здесь .
Надеюсь, этот ответ поможет вам решить вашу проблему.