Add name table support

This commit is contained in:
2025-05-21 12:48:09 +08:00
parent 99210a19cf
commit a073b72f6f
7 changed files with 80 additions and 1 deletions

View File

@@ -3,3 +3,4 @@ pub mod encoding;
#[cfg(windows)]
mod encoding_win;
pub mod files;
pub mod name_replacement;

View File

@@ -0,0 +1,28 @@
use crate::types::*;
use anyhow::Result;
use std::collections::HashMap;
pub fn read_csv(path: &str) -> Result<HashMap<String, String>> {
let mut reader = csv::ReaderBuilder::new()
.has_headers(true)
.from_path(path)?;
let mut map = HashMap::new();
for result in reader.deserialize() {
let record: NameTableCell = result?;
if record.jp_name.is_empty() || record.cn_name.is_empty() {
continue;
}
map.insert(record.jp_name, record.cn_name);
}
Ok(map)
}
pub fn replace_message(mes: &mut Vec<Message>, name_table: &HashMap<String, String>) {
for message in mes.iter_mut() {
if let Some(name) = &message.name {
if let Some(replace_name) = name_table.get(name) {
message.name = Some(replace_name.clone());
}
}
}
}