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;
    }
}
相关推荐
2601_9621066414 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice14 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
独隅15 小时前
WebStorm macOS 安装调优与实战效能全景
ide·macos·webstorm
2601_9621066415 小时前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
杨凯凡15 小时前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理
T_Wizard16 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
hai_android16 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
斯维赤16 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
aiks_yuan19 小时前
Java CPU 100% 怎么排查:JDK 11 起 jstack 自带线程 CPU 时间,不用再 top -H 换算十六进制(JDK 8、11、17 实测)
java
Flynn Liang20 小时前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices