当前位置: 首页 > news >正文

idea插件开发,如何获取idea设置的系统语言

手打不易,如果转摘,请注明出处!
注明原文:https://zhangxiaofan.blog.csdn.net/article/details/145578160 


版本要求

大于 2024.3

错误用法

网上有的说使用:UIUtil

com.intellij.util.ui.UIUtil

代码示例(作者使用报错) 

import com.intellij.util.ui.UIUtil;

public class LanguageCheck {
    public static void checkLanguage() {
        // 获取当前语言
        Language currentLanguage = UIUtil.getCurrentLanguage();
        
        // 判断语言
        if ("zh_CN".equals(currentLanguage.getBaseLanguage())) {
            System.out.println("当前语言是中文");
        } else if ("en".equals(currentLanguage.getBaseLanguage())) {
            System.out.println("当前语言是英文");
        } else {
            System.out.println("当前语言是其他语言");
        }
    }
}

有的说使用:IdeBundle

com.intellij.ide.IdeBundle

代码示例(作者使用报错)  

import com.intellij.ide.IdeBundle;
import java.util.Locale;

// 获取 IDE 的当前语言设置
Locale ideLocale = IdeBundle.getResourceBundle().getLocale();
String language = ideLocale.getLanguage();

if ("zh".equals(language)) {
    // 中文环境
} else {
    // 默认英文或其他语言
}

正确使用

类:DynamicBundle

com.intellij.DynamicBundle

参考官方文档:

https://github.com/JetBrains/intellij-sdk-docs/commit/2348b44d101e8b8f3e24e32a5592711b3c898e7b

import com.intellij.DynamicBundle;

import java.util.Locale;

public enum LanguageUtil {
    ;
    /**
     * 当前IDEA的语言
     */
    public static String getLanguage() {
        Locale locale = DynamicBundle.getLocale();
        return locale.getLanguage();
    }
    
    /**
     * 是否为中文
     */
    public static boolean isChinese() {
        boolean isChinese = false;
        try {
            Locale locale = DynamicBundle.getLocale();
            Locale chinese = Locale.CHINESE;
            // 如果是中文
            if (locale.equals(chinese) || locale.getLanguage().equalsIgnoreCase(chinese.getLanguage())) {
                isChinese = true;
            }
        } catch (Exception ex) {
            // TODO
        }
        return isChinese;
    }
}

相关文章:

  • 电脑变慢、游戏卡顿,你的SSD固态可能快坏了!
  • 2024 CyberHost 语音+图像-视频
  • nodejs安装以及安装nvm控制nodejs版本教程
  • 30天开发操作系统 第 20 天 -- API
  • ESXi安装【真机和虚拟机】(超详细)
  • Docker 的安装与环境配置
  • 在nodejs中使用RabbitMQ(六)sharding消息分片
  • Pandas数据填充(fill)中的那些坑:避免机器学习中的数据泄露
  • Arduino 第四章:数字输出 —— 深入解析引脚差异与 LED 顺序点亮实践
  • 人生的转折点反而迷失了方向
  • 分布式技术
  • 【C++】C++-教师信息管理系统(含源码+数据文件)【独一无二】
  • LabVIEW用户界面设计原则
  • 【Elasticsearch】文本分析Text analysis概述
  • 面向 Data+AI 的新一代智能数仓平台
  • 实现Tree 树形控件的鼠标拖拽功能
  • USB Flash闪存驱动器安全分析(第一部分)
  • java nio 原理 非阻塞IO Netty
  • sql注入中information_schema被过滤的问题
  • Android车机DIY开发之软件篇(十二) AOSP12下载编译
  • 水利部将联合最高检开展黄河流域水生态保护专项行动
  • 许峰已任江苏省南京市副市长
  • 广东省副省长刘红兵跨省任湖南省委常委、宣传部部长
  • 云南铁路:打造“铁路+金融+产业”融合发展生态
  • 北京发布今年第四轮拟供商品住宅用地清单,共计5宗22公顷
  • 贵州茅台一季度净利268亿元增长11.56%,系列酒营收增近两成