Add arguments to dump to m3t files without add quote in translated lines

This commit is contained in:
2025-11-09 23:02:54 +08:00
parent e49f0b1920
commit a61d43441f
3 changed files with 9 additions and 6 deletions

View File

@@ -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<i32>,
/// Do not add quote to translated text when exporting to m3t files.
pub m3t_no_quote: bool,
#[command(subcommand)]
/// Command
pub command: Command,

View File

@@ -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)?;

View File

@@ -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");