Lyrics translator
Sallyn's personal collection of reusable coding agent skills
npx -y skills add Sallyn0225/sallyn-skill --skill lyrics-translatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Turn Japanese song lyrics into polished Chinese lyrics under the faithfulness-expressiveness-elegance (信达雅) principles: read the whole song, pick a Chinese style matching its emotion and theme, draft a line-by-line translation, have a subagent review the draft, then revise before delivery. Use this skill whenever the user wants a Japanese song's lyrics rendered in Chinese, however they phrase it — 翻译歌词 / 歌词翻译 / 翻成中文 / 给我一个中文版 / 弄成中文版 / 想知道这首歌唱的是什么, or quality asks like 求信达雅 / 不要机翻腔 / 翻得有味道一点. Trigger it even when the request is terse or implicit: the user pastes Japanese lyrics into the chat, names a Japanese song or artist, or just gives a lyric file path (.txt/.lrc, the filename often a Japanese or romaji song title like 夜に駆ける.txt / hana_no_uta.lrc / jpn_lemon.txt) — a lyrics file plus a wish for Chinese is enough, the user need not say "日语" or "翻译" explicitly. Covers every genre with Japanese lyrics: J-pop, anime, vocaloid/UTAU, idol, enka, rock, folk. Do NOT use for lyrics in other languages, subtitle/news/prose translation, adding furigana/romaji, transcribing audio, writing original lyrics, or fixing .lrc timestamps.
SKILL.md
10.4 KB, as published. Nobody here has run it
lyrics-translator
把日语歌词翻译为中文歌词。流程之所以分四步(通读定调 → 初译 → 子代理复核 → 修订交付),是因为歌词和普通文本不同:它是一个整体的艺术品,有统一的情感基调和风格。拿到歌词就逐行翻,每一行单看都对,拼起来却风格涣散、情感曲线断裂。所以先通读全曲、确定风格,再动笔;译完再让一双"没有参与翻译的眼睛"挑毛病,最后修订交付。
Step 0: 输入与输出约定
输入: 歌词文件,常见 .txt / .lrc。
- 用户给了路径 → 直接读
- 用户只是说"翻译这首歌"没给路径 → 在当前目录找歌词文件;找不到就问,不要瞎猜
- 用户直接在对话里粘贴了歌词 → 先存成
.txt文件(用歌名或合理的名字命名),再走流程,这样最终交付物有处可放
输出: 与原文件同目录,纯中文译文:
yozora.txt→yozora_zh.txtハルカ_jpn.txt→ハルカ_zh.txt(已有语言后缀则替换)track01.lrc→track01_zh.lrc(.lrc的时间标签[mm:ss.xx]原样保留,只翻译标签后的文本)
如果用户要日中对照版,在 _zh 文件之外另出 <主名>_对照.txt(一行日文、一行中文、段间空行)。默认不出。
Step 1: 通读与定调
先把整首歌词读完,再决定任何事。 这一步的产出是一段"风格定位"判断,它会贯穿初译、复核、修订三步,所以值得认真做。
通读时弄清楚:
- 情感色彩: 全曲基调(哀伤/热血/温柔/愤怒/俏皮…),以及情感曲线——很多歌主歌压抑、副歌爆发,或结尾反转,译文要能跟住这条曲线
- 思想主题: 这首歌到底在说什么?失恋、告别、自我和解、对世界的宣战……主题决定关键词的分量
- 叙述视角: 谁在唱、对谁唱。日语歌词大量省略主语,人称(我/你/他)必须根据全曲叙事统一判断,不能逐句猜
- 原文语体: 口语还是文语?有没有古语、方言、外来语轰炸?原文的语体是风格判断最硬的依据
- 结构: 主歌/副歌/桥段划分,重复段在哪里(重复段必须用统一译法)
背景信息: 如果从文件名或歌词内容能认出具体歌曲(动画/游戏/偶像企划的歌往往和剧情强绑定,剧情会改变歌词的理解),可以快速 WebSearch 确认出处和创作背景。认不出就凭文本翻,不要编造背景。
选定风格: 用一两句话写下风格定位和理由,例如:"原文为口语体、主题是少年向世界证明自己,副歌情绪外放——采用直白有力的现代语,短句为主,避免文雅辞藻"。可选的风格方向(开放清单,仅供启发):诗化抒情、古风雅言、直白口语、热血少年、摇滚冷峻、民谣温暖、演歌沧桑、电波俏皮。风格服务于歌,不是炫技——判断依据永远是原文的语体和情感,而不是"哪种风格显得译者厉害"。
如果用户明确指定了风格,用户优先,跳过自动判断(但仍要写下风格定位,供复核环节对照)。
Step 2: 初译 — 信达雅怎么落地
逐行翻译全曲。三个准则在歌词语境下的具体含义:
信(忠实) — 忠实的对象是意象、情感和叙事,不是字面语序。
- 原文的意象(月、雨、车站、未送出的信)一个都不丢,也不擅自替换成"更美的"中文意象
- 不要"翻译升级":原文平实就译得平实,不要替作者抒情;同样不要降级,把浓烈的句子译淡
- 暧昧是日语歌词的核心手法。原文故意不说破的(那个人是死了还是走了?这是爱情还是友情?),译文同样保持开放,不要替听众解读
- 拿不准的多义句,选择与全曲主题一致的那个读法
达(通顺) — 译文要像中文歌词,不是翻译稿。
- 自检方法:遮住原文,单读中文。如果出现"的"字连串、欧化长定语、"虽然…但是"这类显式逻辑词(歌词的逻辑通常是隐含的),就是翻译腔,重写
- 中文比日语紧凑,译文行一般应比原文行短。凝练优先,一行歌词不要塞成一行散文
- 不强行押韵:顺手能押就押,为了韵脚牺牲信或达就是丢了西瓜捡芝麻
雅(风格) — 雅不等于堆辞藻,口语摇滚译成四字成语连发恰恰是不雅。雅 = 措辞精准、贴合 Step 1 选定的风格,并且全曲统一。另外,当原文有规整的音数律(如七五调、文语对句)时,译文宜用相对工整的句式呼应——不是机械对齐字数,而是让读者能感到原文的节奏感;原文本身松散口语的,不要强行工整。
技术性约定:
- 行数对应: 一行对一行,不合并、不拆分,空行(段落分隔)原样保留——用户可能拿译文去做字幕或对照排版
- 重复段一致: 副歌每次出现用同一译法;但若原文重复段本身有微妙改动(歌词常用手法:最后一遍副歌换一个词),译文必须体现这个改动
- 拟声词、呼喊(la la la、oh oh、ah)原样保留
- 原文中夹杂的英语行通常原样保留(日语歌词的英语句是风格的一部分),除非用户要求全译
- 双关与文字游戏: 优先保"意",中文实在无法兼顾时,正常翻译并在交付汇报里说明,不在译文里加注释
- 标题也要译,交付时给出"原题 / 译题"
Step 3: 子代理复核
初译完成后,不要直接交付。让一个没有参与翻译过程的代理来审,因为译者对自己刚写下的句子有惯性盲区——这正是要派 subagent 而不是自己再读一遍的原因。
- 有
Agent工具: 派一个 subagent(general-purpose 即可),prompt 用下面的模板 - 没有(本 skill 被外层 subagent 调用、或环境不支持): 主代理自审,但要换一种读法——按模板里同样的三维清单逐行对照审一遍,而不是凭印象扫一遍
复核 prompt 模板
你是一名挑剔的歌词翻译审校,审读一首日语歌词的中文翻译初稿。
你没有参与翻译,这正是你的价值:不带惯性地逐行挑问题。
本曲风格定位(译者的判断,供你对照): <Step 1 的风格定位及理由>
日语原文:
<全文>
中文初译:
<全文>
从三个维度逐行对照审读:
1. 信 — 误译、漏译、意象丢失或被替换、过度发挥(译者自己加戏)、原文的暧昧被说破
2. 达 — 翻译腔、不像中文歌词的句子、行长失衡、节奏拖沓
3. 雅 — 与风格定位不符的措辞、辞藻堆砌或过于寡淡、重复段译法不一致
要求:
- 逐行对照,不要只扫大意
- 宁可苛刻,不要客气;但每条意见必须落到具体某一行,说清为什么是问题、怎么改更好
- 整体做得好的方面也简要说明,帮助译者判断哪些不要动
- 没有问题就明确说"未发现需要修改的问题",不要硬凑意见
返回格式:
## 总评
<两三句,信/达/雅各一句>
## 逐条意见
- [第 N 行] [信|达|雅] 原文「…」译作「…」: <问题> → 建议: <改法>
Step 4: 修订与交付
拿到复核意见后,逐条评估,不盲从。复核者的优势是没有惯性盲区,劣势是对全曲风格统一性的沉浸不如主译——有的局部建议单看更好,放进全曲反而破坏统一。所以:
- 指出硬伤(误译、漏译、人称错误)的意见 → 基本都该采纳
- 风格和措辞类意见 → 用 Step 1 的风格定位做仲裁:贴合定位就采纳,偏离就驳回
- 驳回的重要意见,在交付汇报里说一句理由,让用户知道这里曾有过权衡
修订完成后,用 Write 写出最终译文文件(按 Step 0 的命名规则),然后在对话里向用户汇报。汇报的价值在于给用户译文文件里看不到的东西——主题情感的解读、风格选择的理由、翻译时的权衡;所以不要在汇报里重贴译文全文(用户自己会打开文件),需要讨论具体句子时只引用那一两行:
## 交付
- 译文文件: <路径>
- 标题: <原题> / <译题>
- 主题与情感: <一两句,这首歌在说什么、情感基调和曲线如何>
- 风格定位: <一两句,选了什么风格、为什么>
- 复核摘要: 复核共提出 N 条意见,采纳 M 条。主要修改: <一两条最有代表性的>;主要驳回: <如有,一句理由>
- 译注: <双关、典故、无法保留的文字游戏、需要向用户说明的取舍;没有就省略本行>
边界情况
.lrc带重复时间标签(一行多个[mm:ss]): 标签全部保留,文本只译一次- 多个歌词文件: 一次只处理一首;用户没指明时问清先处理哪个
- 歌词整段是英语或中文: 不在本 skill 范围,如实告诉用户;日语为主、夹杂少量外语行的正常处理
- 罗马音歌词(romaji): 先确认用户是否有日文原文,罗马音歧义太多,直接翻容易错;实在只有罗马音就翻,但在交付汇报里注明风险
- 用户要求"可以唱的"译配版(对音节数): 这超出默认范围,音节对齐会大幅牺牲信达,需要用户明确要求才做,且在汇报里说明取舍
文件结构
lyrics-translator/
├── SKILL.md 本文件
└── evals/
├── evals.json 测试用例
└── fixtures/ 测试用日语歌词(原创,避免版权问题)