I cookie ci aiutano a fornire i nostri servizi.

Utilizzando tali servizi, accetti l'utilizzo dei cookie da parte nostra. Per saperne di piu'

Approvo

In un precedente articolo (Localizzazione del testo via Javascript) abbiamo visto come localizzare il testo via Javascript, con la limitazione che le traduzioni erano quelle di portale e non quelle della portlet custom.

Vediamo ora come localizzare il testo all'interno della classe Java di una portlet custom.

Durante una qualsiasi fase di elaborazione all'interno di una portlet (ossia della classe Java che rappresenta la portlet) può essere necessario generare dei messaggi in lingua da visualizzare nei log oppure in pagina.

Abbiamo già visto come usare la classe LanguageUtil messa a disposizione da Liferay:

LanguageUtil.get(pageContext, "sample-text");

Peccato che all'interno della classe il contesto di pagina non sia disponibile...

Ma il problema è facilmente risolvibile utilizzando un altro metodo della suddetta classe LanguageUtil grazie al quale sarà possibile recuperare sia le traduzioni di portale che le traduzioni specifiche di una portlet custom:

ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
// Utilizzando solamente il locale si recuperano le traduzioni di portale String text1 = LanguageUtil.get(themeDisplay.getLocale(), "no-entries-were-found");
// Utilizzando anche la configurazione della portlet si recuperano le traduzioni della portlet String text2 = LanguageUtil.get(getPortletConfig(), themeDisplay.getLocale(), "this-is-a-custom-message");