@dawn-studio/zh-convert (中文(简体) )
Dawn Studio应用的中文脚本转换: 简化 传统 (口口口口口口口口口口口口口口口口口口口口口口口口口口相口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口 取自 OpenMusic 的战斗测试 zh-convert + 键 i18n/detect 模块.
默认引擎 : tongwen-core + 键 tongwen-dict (两者都是麻省理工学院)——被宣布为真正的依赖,自动安装. 自0.5.0起,还有一个 选入 OpenCC 引擎 (基于配置,见下文). 此套件添加了房屋层 :
- 懒惰,被纪念的口袋 通过动态
import()—— ~72 KB s2t /~22 KB t2s表不要在初始捆绑中,最多一次取出. - 同步手柄 (单位:千美元)
s2tConvertLineSync, (中文(简体) ),t2sConvertLineSync),一经发热就发表——"不发"先出. - 同上文 s2t 合并 ——tongwen's s2t sparating table 在简化上键入,所以一个已经-传统-QQ的 s2t 直接错过了短语和per-char地图 → → (~). 合并后折叠为先被简化后,再由每个代码点在t2s改变字符的地方保留出源拼写.
- 永不掷出 任何进口/建造/转换失败都会降解为身份,从不丢弃.
- 日本警卫 ——kana/hangul-first分类符指日语行(kana sent)从未被错误地传统化.
安装
npm i @dawn-studio/zh-convert
快开始
import {
lockScriptSync, // force one line into a script — the entry point most apps want
warmScript, // await dict builds so the first render doesn't flash
s2tConvertLines, // batch Simplified → Traditional (position-aligned)
t2sConvertLines, // batch Traditional → Simplified
isChineseLine, // predicate: safe to convert offline?
detectLang, // pure classifier: en | zh-Hant | zh-Hans | ja | ko
shouldTranslate, // per-text-unit "should this be translated?" decision
} from '@dawn-studio/zh-convert';
// 1. Warm early (e.g. app boot) when the target is Traditional:
await warmScript('zh-Hant');
// 2. Force any upstream text into the user's script — Chinese only, everything
// else passes through untouched, never throws, never returns null:
lockScriptSync('周杰伦', 'zh-Hant'); // → '周杰倫'
lockScriptSync('周杰倫', 'zh-Hant'); // → '周杰倫' (idempotent — source spelling kept)
lockScriptSync('こんにちは', 'zh-Hant'); // → 'こんにちは' (Japanese untouched)
批量转换( 语言, 搜索结果) :
await s2tConvertLines(['头发', '', '简体中文']); // → ['頭髮', '', '簡體中文']
await t2sConvertLines(['止戰之殤']); // → ['止战之殇']
渲染回路的不闪烁同步路径——返回 null 直到温暖:
import { warmS2T, s2tConvertLineSync } from '@dawn-studio/zh-convert';
warmS2T(); // fire-and-forget at boot
// ... in render:
const text = s2tConvertLineSync(name) ?? name;
API 密码
| 导出 | 说明 |
|---|---|
lockScriptSync(text, target, opts?) | 强制一行进入 'zh-Hant'编号 :'zh-Hans'永远不扔,永远不废. 用这个. |
warmScript(target) | 等待 dict 构建锁定目标需要 。 绝不拒绝. |
s2tConvertLines(lines, opts?) | 批次s2t,位置相接,空白保存. |
t2sConvertLines(lines, opts?) | 批t2s,位置相通. 不对已简化的输入操作 . |
s2tConvertLineSync(text) | 同步 s2t( 密码合并) . null 直到温暖。 门打开 isChineseLine 先说. |
t2sConvertLineSync(text) | 同步 t2s . null 直到温暖. |
warmS2T() 编号 : warmT2S() | 火而忘热者. |
isChineseLine(text) | true 仅用于检测到的中文——卡纳/汉古尔线返回 false。 。 。 . |
detectLang(text) | 纯分类器 − 'en' | 'zh-Hant' | 'zh-Hans' | 'ja' | 'ko'. Kana/Hangul战胜了汉;模糊的汉字默认为 'zh-Hant'。 。 。 . |
shouldTranslate(text, target, whitelist) | 每单位翻译决定;中文目标总是通过转换器的路径(在小字符集上检测不可靠). |
convertWithConfig(text, config, opts?) | OpenCC 路径. 基于Async的配置转换(每行警卫+保护). 绝不放弃失败的身份. |
convertWithConfigSync(text, config, opts?) | OpenCC 路径. 温暖时同步转换; null 在寒冷的时候 没有警卫——门先入. |
warmConfig(config) | OpenCC 路径. 等待一个配置的懒惰建筑。 绝不拒绝. |
isConfigWarm(config) | OpenCC 路径. 配置的同步控件是否准备好 . |
OPENCC_CONFIGS 编号 : openccConfig(name) | OpenCC 路径. 预设的配置表 / 查找( 未知名称返回到 s2t) (中文(简体) ). |
OpenCC引擎(0.5.0+)-基于配置的转换
模拟 打开CC预设 配置 系统——与上游OpenCC和 在线转换器 (单位:千美元)?config=s2t) (中文(简体) ). 以 opencc-js (OpenCC的纯-JavaScript端口;取自OpenCC数据的词典,MIT和Apache-2.0)- 没有 官员 opencc npm 软件包,是本地的加通,不能在浏览器或边缘运行.
import { convertWithConfig, convertWithConfigSync, warmConfig, OPENCC_CONFIGS } from '@dawn-studio/zh-convert';
await convertWithConfig('鼠标', 's2twp'); // → '滑鼠' (Taiwan phrases)
await convertWithConfig('軟體', 'tw2sp'); // → '软件' (Mainland phrases)
await warmConfig('s2t'); // warm the sync handle…
convertWithConfigSync('汉字', 's2t'); // → '漢字' (null while cold)
或通过 OpenCC 路由已有的 API ConvertOptions数字 :
await s2tConvertLines(['鼠标'], { engine: 'opencc', config: 's2twp' }); // → ['滑鼠']
lockScriptSync('汉字', 'zh-Hant', { engine: 'opencc' }); // sync handle — warmConfig('s2t') first; cold → identity
默认引擎保留 tongwen; OpenCC 严格选入. OpenCC 路径保留每所房子的保证:懒惰的每个配置加载(动态) import(),从来没有在初始捆绑),永不扔出身份回落,同一个中国唯一的后卫,以及 PROTECTED_WORDS 保护( 在 OpenCC 路径上, cars 也永远不会变成有区别的; QQ 仍然有效) .
配置表(上游 OpenCC 名称 QX opencc- js locales)
粗略的脚本锁等同物 : zh-Hant ≈ s2t, (中文(简体) ), zh-Hans ≈ t2s - 区域概况s2tw, (中文(简体) ), s2hk,.)另外规范了区域变体/句子,而脚本锁是故意不这样做的.
| 配置 | 从 至 | 含义 |
|---|---|---|
s2t | (单位:千美元) | 简化 ~ 传统(开放CC标准) |
t2s | 页:1 | 传统(开放CC标准) → 简化 |
s2tw | (单位:千美元) | 简化-传统(台湾标准) |
tw2s | w-克纳 | 传统(台湾)——简化 |
s2hk | (单位:千克) | 简化 ~ 传统 (香港标准) |
hk2s | (单位:千克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克 | 传统(香港) • 简化 |
s2twp | (单位:千美元) | 简化了 ~ 传统 (台湾,有台湾语:鼠标→滑鼠,软件→軟體) |
tw2sp | w-克纳 | 传统(台湾) → 简化(有内地语: ) |
t2tw | 页:1 | 传统(开放CC标准) → 传统(台湾) |
tw2t | 页:1 | 传统(台湾) • 传统(开放CC标准) |
t2hk | 页:1 | 传统(开放CC标准) • 传统(香港) |
hk2t | (单位:千美元) | 传统(香港)-传统(开放CC标准) |
s2hkp | (单位:千美元) | 简化了 ~ 传统 (香港,有香港语短语) |
hk2sp | (单位:千美元) | 传统(香港) → 简化(有内地语;上游:仍在发展) |
转换选项——每个旋钮,您的呼叫
lockScriptSync, (中文(简体) ), s2tConvertLines 财务报告和审定财务报表 t2sConvertLines 全部接受可选
opts: ConvertOptions。没有硬码显示一个合理的应用程序想要改变:
import { lockScriptSync, type ConvertOptions } from '@dawn-studio/zh-convert';
// The "Chinese only" rule is just the default guard — replace it freely:
lockScriptSync('こんにちは世界', 'zh-Hant'); // → unchanged (default guard)
lockScriptSync('简体', 'zh-Hant', { guard: () => true }); // → '簡體' (allow all)
lockScriptSync('简体', 'zh-Hant', { guard: (t) => t !== '简体' }); // → '简体' (skip this line)
await s2tConvertLines(['简体', '头发'], { guard: isChineseLine }); // explicit default
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
guard | (text: string) => boolean | isChineseLine | 拒绝的行经没有改变。 默认是kana/hangul-first分类器——它已经对混合语言文本做了正确的事情. |
protectedWords | readonly string[] | —— 说 | 添加到 PROTECTED_WORDS。 。 。 . |
engine | 'tongwen' | 'opencc' | 'tongwen' | 转换引擎. 'opencc' (一) 直接引导合成分批转换器; lockScriptSync 使用温暖的 OpenCC 同步手柄( cold ) . |
config | OpenCCConfigName | 's2t' 编号 : 't2s' 每个入境点 | OpenCC 配置名称; 只当 engine: 'opencc'。 。 。 . |
页:1
- 引擎与归属:通格文词典为MIT(通格文/通格文-ditt;OpenCC词典由OpenCC数据出自Opencc-js(开克-js为MIT和Apache-2.0;OpenCC数据为Apache-2.0). 这个包本身是Apache-2.0.
- s2t和t2s 命令已经建立 单独 ——只收发t2s的调用者从不下载s2t的148KB短语表.
- 深度进口
tongwen-core/esm/*(不是顶级指数):指数 eval-time 引用 DOM 全球NodeFilter扔到没有DOM的地方. - 已知默认后卫的上限:与 零卡纳 (pure kanji)检测为中文并会被转换. 覆盖
guard如果你的手术需要更严格的检查.
许可证
阿帕奇 - 2.0