grails国际化在index.gsp中有效吗?

grails国际化在index.gsp中有效吗?,grails,internationalization,Grails,Internationalization,如果键入以下内容,则web应用程序的语言会正确更改: http://localhost:8080/yourCoolWebApp/behappy/list?lang=en http://localhost:8080/yourCoolWebApp/smile/list?lang=es 但如果我们键入一个没有控制器的uri,则显示的语言是默认语言。index.gsp就是这种情况。如果我们键入以下代码,则显示的语言始终为默认语言: http://localhost:8080/?lang=en http

如果键入以下内容,则web应用程序的语言会正确更改:

http://localhost:8080/yourCoolWebApp/behappy/list?lang=en
http://localhost:8080/yourCoolWebApp/smile/list?lang=es
但如果我们键入一个没有控制器的uri,则显示的语言是默认语言。index.gsp就是这种情况。如果我们键入以下代码,则显示的语言始终为默认语言:

http://localhost:8080/?lang=en
http://localhost:8080/?lang=es
,标记为无法修复,存在解决方案。我试图实现它。我更改了我的
UrlMappings.groovy的以下行:

"/"(view:"/index")
name contact: "/contact"(view:"contact")
作者:

但是,在grails清理之后,
index.gsp
始终保持默认语言

我还有另一个没有控制器的视图,因此在
UrlMappings.groovy
中也有以下代码行:

"/"(view:"/index")
name contact: "/contact"(view:"contact")
我改变了它:

name contact: "/contact"(view:"contact", controller:"foo")
我得到一个:
请求的资源不可用
(/webAlojamientoUCA/WEB-INF/grails-app/views/foo/contacto.jsp)

我正在使用Grails2.2.4

是的,您需要创建/拥有控制器

差不多

URL映射

"/"(controller: 'index')
和控制器

class IndexController {

    def index() {
    }
}

和view${appName}/grails app/views/index/index.gsp

您是否在“foo”中定义了操作“contact”?普惠制存在吗?i18n需要通过控制器层,因此您在创建操作的正确路径上。@SérgioMichels:gsp存在,控制器不存在(这就是为什么我在
UrlMappings
中定义了它)。因此,在这种情况下,我们可以创建一个控制器联系人,其中只有一个空动作联系人。您通常如何处理index.gsp。你也有控制器吗?以我的经验,“…?lang=en”不起作用…没有多少帮助,但我放弃了。@chelder是的,你需要创建控制器。@marko我使用lang属性,它可以工作,但前提是你有一个控制器。这正是你提到的bug@chelderI guess@dmahapatro中提到的。可能是我把控制器命名为“foo”而感到困惑。不管怎样,我认为现在每个人都更清楚地看到了同样的问题。