没有前后端分离的情况

ResourceBundleUtils是一个用于处理国际化资源文件的工具类,提供根据key获取value的方法。如果key不存在,则返回key本身。同时,类中包含构建ResourceBundle对象的逻辑,考虑了不同Locale的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    很多项目都会需要处理国际化的问题,所以整理了以下三种情况国际化的处理方式(这里列举的是没有前后端分离的情况,如果项vue等框架可以查看相关国际化处理方式)。

     第一种:js

             目前主流的都是使用jQuery.i18n.properties,jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web[网页](https://www.weishangxiangce.com/)前端的国际化。

/**
*

  • @className: ResourceBundleUtils

  • @classDescription:国际化资源文件获取

  • @author shiqiang.li

  • @create_date: 2019年6月17日 下午6:35:42

  • @update_date:
    */
    public class ResourceBundleUtils {
    private static Logger logger = LoggerFactory.getLogger(ResourceBundleUtils.class);

    /**

    • 根据key获取国际化文件对应的value,如果不存在对应的key,返回key值

    • @param key

    • @return
      */
      public static String getResourceBundleString(String key, Locale locale) {
      String retrunStr = null;
      if (StringUtils.isBlank(key)) {
      logger.warn(“ResourceBundleUtils getResourceBundleDString key is null”);
      return retrunStr;
      }

      key = ResourceKeyConstant.REOURCE_HEAD.concat(ResourceKeyConstant.REOURCE_DOT).concat(key);
      ResourceBundle resourceBundle = buildResourceBundle(locale);
      try {
      // 存在对应key就获取返回,没有则返回key
      if (resourceBundle.containsKey(key)) {
      retrunStr = resourceBundle.getString(key);
      }
      } catch (Exception e) {
      logger.error(“ResourceBundleUtils getResourceBundleDString throw e:{}”, e);
      }

      return retrunStr;
      }

    /**

    • 根据key获取国际化文件对应的value,如果不存在对应的key

    • @param resourceBundle

    • @param key

    • @return
      */
      public static String getResourceBundleString(ResourceBundle resourceBundle, String key) {
      String retrunStr = null;
      if (StringUtils.isBlank(key)) {
      logger.warn(“ResourceBundleUtils getResourceBundleDString key is null”);
      return retrunStr;
      }

      if (resourceBundle == null) {
      logger.warn(“ResourceBundle is null”);
      return retrunStr;
      }

      key = ResourceKeyConstant.REOURCE_HEAD.concat(ResourceKeyConstant.REOURCE_DOT).concat(key);
      try {
      // 存在对应key就获取返回,没有则返回key
      if (resourceBundle.containsKey(key)) {
      retrunStr = resourceBundle.getString(key);
      // retrunStr = new String(resourceBundle.getString(key).getBytes(“ISO-8859-1”),
      // “UTF8”);
      }
      } catch (Exception e) {
      logger.error(“ResourceBundleUtils getResourceBundleDString throw e:{}”, e);
      }

      return retrunStr;
      }

    /**

    • 构建国际化对象

    • @return
      */
      public static ResourceBundle buildResourceBundle(Locale locale) {
      // 根据语言类型,进行国际化处理
      ResourceBundle resourceBundle = null;
      try {
      if (locale != null) {
      resourceBundle = ResourceBundle.getBundle(ResourceKeyConstant.REOURCE_FILE_NAME, locale);
      } else {
      resourceBundle = ResourceBundle.getBundle(ResourceKeyConstant.REOURCE_FILE_NAME,
      new Locale(“en”, “US”));
      }
      } catch (MissingResourceException m) {
      logger.error(“get resourceBundle is error–>{}”, m.getMessage(), m);
      }

      return resourceBundle;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值