Add new options for scn script to disable chat message multiple language support

This commit is contained in:
2025-09-26 13:24:29 +08:00
parent f5a124b084
commit 903747071d
4 changed files with 23 additions and 2 deletions

View File

@@ -233,6 +233,10 @@ pub struct Arg {
/// Whether to handle title in Kirikiri SCN script.
pub kirikiri_title: bool,
#[cfg(feature = "kirikiri")]
#[arg(long, global = true, action = ArgAction::SetTrue, visible_alias = "kr-chat-no-multilang")]
/// Disable multi-language support for Kirikiri chat messages. (for Kirikiri SCN script.)
pub kirikiri_chat_no_multilang: bool,
#[cfg(feature = "kirikiri")]
#[arg(long, global = true, action = ArgAction::SetTrue, visible_alias = "kr-no-empty-lines", visible_alias = "kirikiri-no-empty-lines")]
/// Remove empty lines in Kirikiri KS script.
pub kirikiri_remove_empty_lines: bool,

View File

@@ -2736,6 +2736,8 @@ fn main() {
pgd_fake_compress: !arg.pgd_compress,
#[cfg(feature = "softpal")]
softpal_add_message_index: arg.softpal_add_message_index,
#[cfg(feature = "kirikiri")]
kirikiri_chat_multilang: !arg.kirikiri_chat_no_multilang,
});
match &arg.command {
args::Command::Export { input, output } => {

View File

@@ -117,6 +117,7 @@ pub struct ScnScript {
chat_json: Option<Arc<HashMap<String, String>>>,
custom_yaml: bool,
title: bool,
chat_multilang: bool,
}
impl ScnScript {
@@ -154,6 +155,7 @@ impl ScnScript {
chat_json: config.kirikiri_chat_json.clone(),
custom_yaml: config.custom_yaml,
title: config.kirikiri_title,
chat_multilang: config.kirikiri_chat_multilang,
})
}
}
@@ -214,7 +216,11 @@ impl Script for ScnScript {
let mut comu = if self.export_chat {
Some(ExportMes::new(
self.chat_key.clone().unwrap_or("comumode".to_string()),
language.clone(),
if self.chat_multilang {
language.clone()
} else {
None
},
))
} else {
None
@@ -441,7 +447,11 @@ impl Script for ScnScript {
json,
replacement,
self.chat_key.clone().unwrap_or("comumode".to_string()),
language.clone(),
if self.chat_multilang {
language.clone()
} else {
None
},
)
});
for (i, scene) in scenes.members_mut().enumerate() {

View File

@@ -465,6 +465,11 @@ pub struct ExtraConfig {
#[cfg(feature = "softpal")]
/// Whether to add message index to Softpal src script when exporting.
pub softpal_add_message_index: bool,
#[cfg(feature = "kirikiri")]
#[default(true)]
/// Enable multi-language support for Kirikiri chat messages. Default is true.
/// Note: This requires [Self::kirikiri_language_index] and [Self::kirikiri_languages] to be set correctly.
pub kirikiri_chat_multilang: bool,
}
#[derive(Clone, Copy, Debug, ValueEnum, PartialEq, Eq, PartialOrd, Ord)]