0

私はこのようなことをしたい:

<head>
  <title>
    #set($windowTitleKey = $tiles.insertAttribute({'name':'window_title_key', 'ignore': true}))      
    #set($translatedPageName = "#springMessage($windowTitleKey)")        
    #springMessageText("SEO_page_title_default", [$translatedPageName])
  </title>
</head>

最初の「set」行は機能し、springMessageText 行も機能します。

この行は機能しません: #set($translatedPageName = "#springMessage($windowTitleKey)") $translatedPageName を に設定し$springMacroRequestContext.getMessage($code)ます。

ネストされた翻訳の目標を達成する別の方法は何ですか?

4

2 に答える 2

0

カスタムヘルパーをコーディングする必要がありました。なんて面倒。いつかVelocityを完全に放棄することを楽しみにしています.

速度ビュー:

#set($windowTitleKey = $tiles.insertAttribute({'name':'window_title_key', 'ignore': true}))
#set($translatedPageName = $TranslationsHelper.getTranslation("$windowTitleKey"))
#springMessageText("SEO_window_title_default", ["$translatedPageName"])

TranslationsHelper.java 内:

    public class TranslationsHelper extends ReloadableResourceBundleMessageSource
    {    
            public static String getTranslation(String messageKey, Object[] args)
            {
                    MessageSource ms = getMessageSource();
                    Locale locale = LocaleContextHolder.getLocale();
                    return ms.getMessage(messageKey, args, locale);
            }
            public static MessageSource getMessageSource()
            {
                    WebApplicationContext webAppContext = ContextLoader.getCurrentWebApplicationContext();
                    return (MessageSource) webAppContext.getBean("messageSource");        
            }
    }
于 2013-10-25T21:08:47.407 に答える