Grails, как изменить текущую локаль

Я хотел бы знать, как любой достойный программист мог записать код без добавления отступа, сделано ли это в IDE, vi, Блокноте, на электронной доске, или на постэтом. Расположение с отступом кода должно произойти естественно. Я не перезвонил бы ему, если бы то, что он возвратил, выглядело примерно так (я просто копирую реализацию прочь Википедии, фокус находится на отсутствии добавления отступа):

struct Node{
data
next
prev
}
struct List{
Node firstNode
Node lastNode
}
function insertAfter(List list, Node node, Node newNode) {
newNode.prev := node
newNode.next := node.next
if node.next = null
list.lastNode := newNode
else
node.next.prev := newNode
node.next := newNode
}
function insertBefore(List list, Node node, Node newNode) {
newNode.prev := node.prev
newNode.next := node
if node.prev is null
list.firstNode := newNode
else
node.prev.next := newNode
node.prev    := newNode
}
function remove(List list, Node node){
if node.prev = null
list.firstNode := node.next
else
node.prev.next := node.next
if node.next = null
list.lastNode := node.prev
else
node.next.prev := node.prev
destroy node
}
22
задан Charles Sprayberry 29 January 2012 в 00:02
поделиться

2 ответа

According to the chapter 10. Internationalization of the Grails documentation, Grails supports i18n out of the box and you should indeed be able to change the locale using the lang parameter:

By default the user locale is detected from the incoming Accept-Language header. However, you can provide users the capability to switch locales by simply passing a parameter called lang to Grails as a request parameter:

/book/list?lang=de

Grails will automatically switch the user locale and store it in a cookie so subsequent requests will have the new header.

But sometimes you may want to preset the default language because not all your applications will be in english. To do this, all you have to do is to set your localeResolver in your resources.groovy spring configuration file as shown below:

beans = {
   localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
      defaultLocale = new Locale("de","DE")
      java.util.Locale.setDefault(defaultLocale)
   }
}

Now, without more details, I can't say why using the lang parameter isn't working in your case. Just in case, how do you know that the locale is still en_US?.

27
ответ дан 29 November 2019 в 04:29
поделиться

Вы пытаетесь изменить locale в корневом URL-адресе приложения (например, http: // localhost: 8080 / myapp /? lang = de )?

В базовой настройке Grails попытка изменить языковой стандарт в корневом URL-адресе приложения не работает. Grails меняет языковой стандарт в localChangeInterceptor , который вызывается перед вызовом всех контроллеров. Когда вы обращаетесь к корневому URL-адресу приложения, контроллер не вызывается, как можно увидеть в UrlMappings по умолчанию.

Вот почему изменение языкового стандарта в корневом URL-адресе приложения не работает. Если вы попытаетесь изменить URL-адрес в каком-либо контроллере, это сработает.

Текущая локаль сохраняется под ключом org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME в сеансе http.

6
ответ дан 29 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: