diff --git a/crates/emmylua_ls/src/handlers/initialized/locale.rs b/crates/emmylua_ls/src/handlers/initialized/locale.rs index 2952f1539..dfdbbd235 100644 --- a/crates/emmylua_ls/src/handlers/initialized/locale.rs +++ b/crates/emmylua_ls/src/handlers/initialized/locale.rs @@ -2,7 +2,15 @@ use log::info; use lsp_types::InitializeParams; pub fn set_ls_locale(params: &InitializeParams) -> Option<()> { - let locale: String = params.locale.clone()?; + let mut locale: String = params.locale.clone()?; + + // 如果传递的`locale`包含`-`, 则转换为`_`且后面的字母大写 + if locale.contains("-") { + let parts = locale.split("-").collect::>(); + if parts.len() == 2 { + locale = format!("{}_{}", parts[0], parts[1].to_uppercase()); + } + } info!("set locale: {}", locale); emmylua_parser::set_locale(&locale);