use ferrous_opencc::OpenCC;
use ferrous_opencc::config::BuiltinConfig;
use std::sync::LazyLock;
static S2T_CONVERTER: LazyLock<OpenCC> =
LazyLock::new(|| OpenCC::from_config(BuiltinConfig::S2t).expect("failed to load S2t config"));
static T2S_CONVERTER: LazyLock<OpenCC> =
LazyLock::new(|| OpenCC::from_config(BuiltinConfig::T2s).expect("failed to load T2s config"));
pub fn to_simplified(text: &str) -> String {
T2S_CONVERTER.convert(text)
}
pub fn to_traditional(text: &str) -> String {
S2T_CONVERTER.convert(text)
}
pub fn to_simplified_forced(text: &str) -> String {
let converted = to_simplified(text)
.replace('藉', "借")
.replace('咀', "嘴")
.replace('昇', "升")
.replace('髒', "脏");
to_simplified(&converted)
}