为Grails应用程序执行国际化时出错

为Grails应用程序执行国际化时出错,grails,internationalization,Grails,Internationalization,我正在为我的Grails应用程序进行国际化,这是在我的域中: category (nullable:false, inList:Holders.config.categories) 在Config.groovy文件中: categories=['cat1', 'cat2', 'cat3'] 这是messages.properties文件中的内容: ads.category.cat1=category 1 ads.category.cat2=category 2 ads.category

我正在为我的Grails应用程序进行国际化,这是在我的域中:

category (nullable:false, inList:Holders.config.categories)
Config.groovy
文件中:

categories=['cat1', 'cat2', 'cat3']
这是
messages.properties
文件中的内容:

 ads.category.cat1=category 1
 ads.category.cat2=category 2
 ads.category.cat3=category 3 
显示视图中的内容:

<g:if test="${adsInstance?.category}">
            <li class="fieldcontain">
                <span id="category-label" class="property-label"><g:message code="ads.category.label" default="Category" /></span>

                    <span class="property-value" aria-labelledby="category-label"><g:fieldValue   bean="${adsInstance}" field="category"/></span>

            </li>
            </g:if>

  • 显示正确单词的所有视图,除了
    show
    显示
    cat1
    (这是在配置文件中找到的内容)以及数据库中保存的内容,因为它假定显示和保存
    消息中的内容。属性
    文件
    类别1
    。如何修复此问题?

    使用

    <g:message code="ads.category.${adsInstance.category}" />
    
    
    
    而不是

    <g:fieldValue bean="${adsInstance}" field="category"/>
    
    
    
    使用

    
    
    而不是

    <g:fieldValue bean="${adsInstance}" field="category"/>
    
    
    
    请提供显示功能的查看代码。@MamyKryzysKryzysKryzysKryzys我编辑了原始的后期请提供显示功能的查看代码。@MamyKryzysKryzysKryzys我编辑了原始的后期伟大,在视图中工作,但是DB部分呢?如果将其保存为类别1而不是cat1,则不会工作(我说的是转换视图)再也没有了。此外,如果已经将转换后的字段保存到db,那么在视图中使用translation有什么意义?为什么不在从db获取字段时使用beforeValidate()?您的意思是使用
    beforeValidate()吗
    从数据库中获取字段时不进行翻译?是的,这是一种可能性。在数据库中存储翻译后的字段是毫无意义的。或者我可以更改
    类别=['cat1'、'cat2'、'cat3']
    要想成为有意义的东西,那么如果我能从数据库中执行任何查询,你认为如何?很好,在视图中工作,但是数据库部分呢?如果将其保存为category 1而不是cat1,它将不起作用(我指的是转换视图)此外,如果您已经将已翻译字段保存到数据库中,那么在视图中使用translation有什么意义?从数据库中获取字段时为什么不使用beforeValidate()?您的意思是使用beforeValidate()吗
    在从DB获取字段时不进行翻译?是的,这是一种可能性。在DB中存储翻译后的字段是毫无意义的。或者我可以将
    类别=['cat1'、'cat2'、'cat3']
    更改为有意义的内容,那么如果我可以从DB中执行任何查询,你认为如何?