职场潜台词翻译器
一个娱乐向的双向翻译器:
- 解读:黑话 → 人话。给出「真实意思 / 危险指数 / 体面应对」。
- 包装:人话 → 黑话。把真心话包装成能直接粘进微信的体面话。
自带离线词典和纯 Node 脚本(零依赖),无网络也能跑。
资源位置
本 skill 的目录就是 base 目录:
data/phrases.json— 黑话词典(99 条,解读用)data/replies.json— 反向包装库(22 条,含三档语气)+ 万能体面话模板scripts/translate.mjs— 命令行翻译器(零依赖)
脚本路径一律用绝对路径调用,例如
node <skill-base-dir>/scripts/translate.mjs "原话"。
怎么用
1. 解读(最常用)
node <base>/scripts/translate.mjs "这个需求很简单,你今晚能搞定吧"
输出:原话、命中片段、真意、危险指数(█ 进度条 + 等级)、体面应对。
长句会逐层拆解——一句话里叠了「画饼 + 派活 + 加班」,会全部列出来。
加 --json 拿结构化结果,方便你自己再加工:
node <base>/scripts/translate.mjs --json "共渡难关"
2. 包装(反向翻译)
node <base>/scripts/translate.mjs --encode "我不想加班"
输出:真心话、体面版、小贴士。没命中时会给几条万能体面话。
3. 词典速查
node <base>/scripts/translate.mjs --dict # 全部
node <base>/scripts/translate.mjs --dict 加班 # 按关键词过滤
4. 战绩统计
node <base>/scripts/translate.mjs --stats
记录翻译过多少句、最高危险指数、最难顶的一句话。
5. 教它新词条
词典没收录时,用 --add 加进去(写进用户数据目录的 learned.json,不动仓库文件):
node <base>/scripts/translate.mjs --add \
--patterns "你这个月底前给我" \
--literal "你这个月底前给我" \
--real "要求你在不调整排期的情况下压缩工期,风险你担。" \
--danger 4 \
--reply "收到,我先把现有范围和工作量列出来,跟您确认要砍哪块。"
--patterns 可以逗号分隔写多个(不带标点,脚本会做归一化匹配)。
6. 三档语气
同一句话,三种硬度。默认中性:
node <base>/scripts/translate.mjs --encode --tone all "我不想加班"
node <base>/scripts/translate.mjs --tone hard "共渡难关"
mild委婉:留台阶、请求式neutral中性:默认,就事论事hard强硬:划边界、要书面结论
--tone all 一次给三档,让用户自己挑。用户没说语气时,默认中性;
如果用户明显在气头上或反复被同一个话术坑,主动给一版 hard。
7. 场景过滤
node <base>/scripts/translate.mjs --dict --scene client # 只看客户话术
node <base>/scripts/translate.mjs --scene interview "你还有什么问题吗"
可用场景:boss hr interview colleague client jargon money overtime night blame。
不确定用哪个就别加,全量匹配更不容易漏。
8. 只要那一句(方便复制)
node <base>/scripts/translate.mjs --copy --tone all "共渡难关"
去掉所有标题和装饰,只输出能直接粘进微信的句子。
9. 随便来一句
不带参数时,随机抽一条词条当"今日职场预报"。
10. 数据自检
node <base>/scripts/translate.mjs --selftest
校验 id 唯一性、危险值范围、pattern 重复、以及"词条能否被自己的 pattern 命中"。
改了词典就跑一下,非零退出码表示有问题。
没命中时怎么办(你自己翻译)
脚本是词典匹配,覆盖不了长句和全新话术。没有命中或命中不理想时,由你按下面的风格指南直接翻译,不要只说"词典里没有"就结束。
风格指南
- 真意要落到利益上:时间、钱、责任、权力、风险。不要写"对方可能在暗示什么",直接写他会让你付出什么。
- 一句话,不超过 40 字,主语明确,别绕。
- 危险指数按"是否让你无偿付出或替你埋锅"打分:
- 1 安全 · 2 有点味 · 3 开始不对劲 · 4 快跑 · 5 已进入雷区 - 应对必须是能直接发出去的话:不阴阳、不硬刚、留退路、把球踢回对方(要资源、要口径、要书面结论)。
- 给语气留余地:默认给中性版;用户在被同一个话术反复坑、或明显需要划边界时,补一版强硬版(
--tone hard);
需要维护关系时给委婉版。别只给一版就完事。 - 可以毒舌,不许人身攻击。可以戳破话术,不能骂人、不能教用户对抗或摆烂。
- 别编事实:不确定的动机用"大概率""看起来像",不要断言对方违法或恶意。
- 长句里可能叠了好几层话术,逐层拆开讲——脚本的「还听出了 N 层意思」就是干这个的。
输出格式
用中文,结构固定:
原话|……
真意|……
危险|███░░ 3/5 开始不对劲
应对|……
需要三档语气时:
应对·委婉|……
应对·中性|……
应对·强硬|……
需要多条时用小标题分段。
加词条:两种方式,别选错
| 方式 | 写到哪里 | 适合 |
|---|---|---|
直接编辑 data/phrases.json |
词典本体 | 想永久生效、想分享给别人 |
--add ... |
用户数据目录的 learned.json |
临时补一条、不想动仓库文件 |
改完词典跑一次 --selftest。用户说"以后都按这个来",用第一种。
边界
- 这是娱乐和自我保护工具,不是事实判断,别当作职场决策、背调或法律依据。
- 不要把真实姓名、公司名、聊天记录原文粘进词典文件里。
- 用户明显情绪化时,先共情一句,再翻译,别只顾着玩梗。
示例
用户:老板说"年轻人要多锻炼,这个项目你来牵头吧",这什么意思?
你:先跑脚本 → node <base>/scripts/translate.mjs "年轻人要多锻炼,这个项目你来牵头吧",拿到主命中「年轻人要多锻炼」,
再按风格指南补一条针对"牵头"的解读(牵头 = 责任归你,资源和决策权不一定给),合成最终回答。