grails视图中的多语言

grails视图中的多语言,grails,internationalization,Grails,Internationalization,我正在使用多语言grails应用程序(英语和阿拉伯语),我希望当用户选择阿拉伯语时,视图的标签将位于页面的右侧,而英语标签将位于左侧,如何实现这一点 谢谢您可以通过messages.properties文件在grails中使用国际化,您可以在文件中定义消息签名,并且可以通过URL上的?lang=es访问这些文件,您可能需要两个文件,一个是英语文件,另一个是阿拉伯语文件 例如,在messages.properties中定义: vendor.link.dashboardLink = Vendor D

我正在使用多语言grails应用程序(英语和阿拉伯语),我希望当用户选择阿拉伯语时,视图的标签将位于页面的右侧,而英语标签将位于左侧,如何实现这一点


谢谢

您可以通过messages.properties文件在grails中使用国际化,您可以在文件中定义消息签名,并且可以通过URL上的?lang=es访问这些文件,您可能需要两个文件,一个是英语文件,另一个是阿拉伯语文件

例如,在messages.properties中定义:

vendor.link.dashboardLink = Vendor Dashboard
在GSP页面上,您可以通过以下方式访问:

<g:message code="vendor.link.dashboardLink" />


您可以在grails doc上找到更多关于内部化的信息,请查看

如果视图之间的差异超出了简单的字符串替换,我建议根据区域设置使用不同的视图集:

控制器代码示例:

import org.springframework.web.servlet.support.RequestContextUtils as RCU

class ExampleController {
    final static String englishLanguageCode = new Locale('en').getLanguage()
    final static String arabicLanguageCode = new Locale('ar').getLanguage()

    def differentViews() {
        def currentLocale = RCU.getLocale(request)

        switch(currentLocale.language) {
            case englishLanguageCode:
                render view: 'englishView'
                break
            case arabicLanguageCode:
                render view: 'arabicView'
                break
            default:
                // pick a default view or error page, etc.
        }
    }
}