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

手打不易,如果转摘,请注明出处!

注明原文:https://zhangxiaofan.blog.csdn.net/article/details/145578160


版本要求

大于 2024.3

错误用法

网上有的说使用:UIUtil

复制代码
com.intellij.util.ui.UIUtil

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

java 复制代码
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

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

java 复制代码
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

java 复制代码
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;
    }
}
相关推荐
腻害兔6 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社7 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
2501_916008897 小时前
iOS应用开发工具全面解析:如何选择与优化开发效率
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
萧瑟余晖8 小时前
JDK 26 新特性详解
java·开发语言
马优晨8 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
维天说11 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane199412 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了13 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品13 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘13 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts