## 说明 在 OpenCC 的实际使用中,`s2t.json` 经常被当作“简体转繁体”的默认配置直接用于用户界面。 但这里的 `t` 实际上是 OpenCC 内部使用的**标准繁体中间态**,并不对应任何现实地区的书写规范(如台湾或香港),主要用于转换流程中的规范化与规则复用。 这一点目前在文档和示例中不够明显,容易导致长期误用。 ## 影响 * 终端用户常感觉 `s2t.json` 的输出“不自然” * 下游库和示例代码无意中强化了错误默认值 * `t` / `tw` / `twp` / `hk` 之间的语义差异不够清晰 ## 建议 这是一个文档与使用指引层面的问题,不涉及行为变更: * 明确说明 `t` 是 OpenCC 的内部标准繁体形式,不建议直接用于用户展示 * 在示例和文档中,建议面向用户的默认配置使用 `s2tw.json` / `s2twp.json` / `s2hk.json` * 避免将 `s2t.json` 作为“简体转繁体”的通用示例 ## 相关 PR 已有一个相关的说明性改动在此仓库等待 review: https://github.com/frankslin/OpenCC/pull/4 ## 相關 issues * https://github.com/BYVoid/OpenCC/issues/909
Activity
lotem commentedon Jan 2, 2026
t是傳統漢字。就是現實中的傳統漢字,有據可查。
港臺標準有專門的配置文件。
frankslin commentedon Jan 2, 2026
感谢回复!我了解 OpenCC 项目提供了
s2t.json,s2tw.json,s2twp.json与s2hk.json四种「简转繁」的配置文件,不过不了解这些配置的具体使用场景建议,以及各转换链路的具体区别。这使我得难以决定如何提交某些特定的修正请求。具体而言,我遇到的不符合预期的结果如 #909 已經提過的「台」与「臺」的问题。這四種配置中,只有
s2hk.json会将「台湾」转换成我希望的「台灣」。(我不是在这里讨论「某个具体的字应怎么转换」,而是想知道:如果我来修改转换表以达到我希望的效果,从哪里改最合理、能最大限度地避免预期之外的回归。)研究后发现,
s2t.json的转换链路目前是其余几种转换模式的基础。这四种配置的分词表全部相同,转换链路各自为:s2t.json:STPhrases → STCharacterss2tw.json:STPhrases → STCharacters → TWVariantss2twp.json:STPhrases → STCharacters → TWPhrases → TWVariantss2hk.json:STPhrases → STCharacters → HKVariants也就是说,一旦
s2t.json(即 STPhrases + STCharacters)决定将「台」转成「臺」,其余几种配置目前只能通过 Variants 表反向转回以补救。s2hk.json即在HKVariants中包含了 「臺」转回「台」 的逻辑。但 TWVariants 中则没有这样做;我不清楚加在这里是不是最合适的。我想,更理想的做法或许是把 STPhrases + STCharacters 拆分为「无争议的」和「有争议的」两部分。「无争议的」的继续保留在
s2tw.json等配置文件中,而「有争议的」则让这些文件跳过去,这样或可避免「来回转」的麻烦。danny0838 commentedon Jan 2, 2026
OpenCC 應該是優先選擇轉換成當地標準,而臺灣的官方標準就是「臺」,雖然很多人習慣用「台」,甚至官方網站內文也常用「台」,二者已幾乎通用。
至於 s2hk 選擇「台」是因為香港以「台」作為標準,「臺」反而視為異體字,至少《香港小學學習字詞表》是這樣寫的:
對於這種「非標準,但實際上常用,也比較接地氣的用字」,恐怕不是 OpenCC 官方詞典能處理的範圍,最多加個次位備選即「臺 => 臺 台」,但 OpenCC 本身對一對多轉換支援不好,實際上還是不會轉,而且如果接受這做法,未來可能有一大堆字都要提供異體字作為備選,會涉及很大的詞典更動,ByVoid 當初說異體字問題要另外考慮 (#492),結果到現在還沒下文XD。
如有相關需求,大概只能自建詞典處理了。