Liferay 常用基础类 —— com.liferay.portal.language.LanguageUtil

位置:com.liferay.portal.language.LanguageUtil

作用:
在从request 里获取当前页面的语言信息,用于网页的国际化处理。

常用方法的解析:
  • 获取当前页的语言类型
通常服务端,从Web 获取参数,当实现页面跳转或者请求转发时,会传送一个LanguageId 用于标识当前的页面是应用于那种语言。通常会应用到以下方法。

public static String getLanguageId( ActionRequest req )
        throws PortalException, SystemException
{
        ActionRequestImpl reqImpl = ( ActionRequestImpl ) req;
        return getLanguageId( reqImpl.getHttpServletRequest() );
}

public static String getLanguageId( RenderRequest req )
        throws PortalException, SystemException
{
        RenderRequestImpl reqImpl = ( RenderRequestImpl )req;
        return getLanguageId( reqImpl.getHttpServletRequest() );
}

public static String getLanguageId( HttpServletRequest req )
 {
        String languageId = ParamUtil.getString(req, "languageId");
        if ( Validator.isNotNull( languageId ) )
        {
            return languageId;
        }

        Locale locale = ( Locale ) req.getSession().getAttribute( Globals.LOCALE_KEY );

        if (locale == null)
       {
            languageId = CookieUtil.get( req.getCookies(), CookieKeys.GUEST_LANGUAGE_ID );
            if ( Validator.isNotNull( languageId ) )
            {
                locale = LocaleUtil.fromLanguageId( languageId );
            }
        }

        return LocaleUtil.toLanguageId( locale );
 }



  • 获取当前可用的语言类型
public static Locale[ ] getAvailableLocales()
由于LanguageUtil 类中的实例 _locales 存放了当前可用的语言类型,调用该函数将返回当前可用的Locale 数组。Liferay 的Language UI 以及实现国际化Portlet 开发时使用到该方法,如language 选择的下拉菜单的实现:

<select name = "<portlet:namespace />languageId"
              onChange="<portlet:namespace/>changeLanguageView();" >
              <%
                     Locale[] locales = LanguageUtil.getAvailableLocales();
                     for ( int i = 0; i < locales.length; i++ ) {
              %>

             <option <%= ( languageId.equals( LocaleUtil.toLanguageId( locales[i] ) ) ) ? "selected" : "" %>
                                     value="<%= LocaleUtil.toLanguageId( locales[i] ) %>" >
                    <%= locales[i].getDisplayName( locales[i] ) %>
             </option>

              <%
                      }
              %>
</select>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值