From a61d43441f52e42b35b6770bb32b62f918530ed3 Mon Sep 17 00:00:00 2001 From: lifegpc Date: Sun, 9 Nov 2025 23:02:54 +0800 Subject: [PATCH] Add arguments to dump to m3t files without add quote in translated lines --- src/args.rs | 2 ++ src/main.rs | 9 +++++---- src/output_scripts/m3t.rs | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/args.rs b/src/args.rs index 8ba8a78..c883a38 100644 --- a/src/args.rs +++ b/src/args.rs @@ -570,6 +570,8 @@ pub struct Arg { #[arg(short = 'X', long)] /// Exit code when all jobs failed. By default, this is same as exit_code. This can override exit_code when all jobs failed. pub exit_code_all_failed: Option, + /// Do not add quote to translated text when exporting to m3t files. + pub m3t_no_quote: bool, #[command(subcommand)] /// Command pub command: Command, diff --git a/src/main.rs b/src/main.rs index 8b0cf9e..ce3f9d6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -633,7 +633,8 @@ pub fn export_script( | types::OutputScriptType::M3ta | types::OutputScriptType::M3tTxt => { let enc = get_output_encoding(arg); - let s = output_scripts::m3t::M3tDumper::dump(&data); + let s = + output_scripts::m3t::M3tDumper::dump(&data, arg.m3t_no_quote); let b = match utils::encoding::encode_string(enc, &s, false) { Ok(b) => b, Err(e) => { @@ -816,7 +817,7 @@ pub fn export_script( | types::OutputScriptType::M3ta | types::OutputScriptType::M3tTxt => { let enc = get_output_encoding(arg); - let s = output_scripts::m3t::M3tDumper::dump(&mes); + let s = output_scripts::m3t::M3tDumper::dump(&mes, arg.m3t_no_quote); let b = match utils::encoding::encode_string(enc, &s, false) { Ok(b) => b, Err(e) => { @@ -1225,7 +1226,7 @@ pub fn export_script( | types::OutputScriptType::M3ta | types::OutputScriptType::M3tTxt => { let enc = get_output_encoding(arg); - let s = output_scripts::m3t::M3tDumper::dump(&data); + let s = output_scripts::m3t::M3tDumper::dump(&data, arg.m3t_no_quote); let b = match utils::encoding::encode_string(enc, &s, false) { Ok(b) => b, Err(e) => { @@ -1388,7 +1389,7 @@ pub fn export_script( | types::OutputScriptType::M3ta | types::OutputScriptType::M3tTxt => { let enc = get_output_encoding(arg); - let s = output_scripts::m3t::M3tDumper::dump(&mes); + let s = output_scripts::m3t::M3tDumper::dump(&mes, arg.m3t_no_quote); let b = utils::encoding::encode_string(enc, &s, false)?; let mut f = utils::files::write_file(&f)?; f.write_all(&b)?; diff --git a/src/output_scripts/m3t.rs b/src/output_scripts/m3t.rs index 30b03be..75ca24f 100644 --- a/src/output_scripts/m3t.rs +++ b/src/output_scripts/m3t.rs @@ -190,14 +190,14 @@ pub struct M3tDumper {} impl M3tDumper { /// Dumps the messages in M3T format. - pub fn dump(messages: &[Message]) -> String { + pub fn dump(messages: &[Message], no_quote: bool) -> String { let mut result = String::new(); for message in messages { if let Some(name) = &message.name { result.push_str(&format!("○ NAME: {}\n\n", name)); } result.push_str(&format!("○ {}\n", message.message.replace("\n", "\\n"))); - if message.message.starts_with("「") { + if !no_quote && message.message.starts_with("「") { result.push_str("● 「」\n\n"); } else { result.push_str("●\n\n");