Skip to content

澄清 OpenCC 中 “t”(OpenCC 标准繁体)的语义,并避免将 s2t.json 作为面向用户的默认配置 #1001

Closed

Description

@frankslin

说明

在 OpenCC 的实际使用中,s2t.json 经常被当作“简体转繁体”的默认配置直接用于用户界面。

但这里的 t 实际上是 OpenCC 内部使用的标准繁体中间态,并不对应任何现实地区的书写规范(如台湾或香港),主要用于转换流程中的规范化与规则复用。

这一点目前在文档和示例中不够明显,容易导致长期误用。

影响

  • 终端用户常感觉 s2t.json 的输出“不自然”
  • 下游库和示例代码无意中强化了错误默认值
  • t / tw / twp / hk 之间的语义差异不够清晰

建议

这是一个文档与使用指引层面的问题,不涉及行为变更:

  • 明确说明 t 是 OpenCC 的内部标准繁体形式,不建议直接用于用户展示
  • 在示例和文档中,建议面向用户的默认配置使用 s2tw.json / s2twp.json / s2hk.json
  • 避免将 s2t.json 作为“简体转繁体”的通用示例

相关 PR

已有一个相关的说明性改动在此仓库等待 review: frankslin#4

相關 issues

Activity

  1. lotem commented on Jan 2, 2026

    @lotem
    Collaborator

    t 是傳統漢字。
    就是現實中的傳統漢字,有據可查。
    港臺標準有專門的配置文件。

  2. frankslin commented on Jan 2, 2026

    @frankslin
    CollaboratorAuthor

    感谢回复!我了解 OpenCC 项目提供了 s2t.json,s2tw.json,s2twp.json 与 s2hk.json 四种「简转繁」的配置文件,不过不了解这些配置的具体使用场景建议,以及各转换链路的具体区别。这使我得难以决定如何提交某些特定的修正请求。

    具体而言,我遇到的不符合预期的结果如 #909 已經提過的「台」与「臺」的问题。這四種配置中,只有 s2hk.json 会将「台湾」转换成我希望的「台灣」。(我不是在这里讨论「某个具体的字应怎么转换」,而是想知道:如果我来修改转换表以达到我希望的效果,从哪里改最合理、能最大限度地避免预期之外的回归。)

    研究后发现,s2t.json 的转换链路目前是其余几种转换模式的基础。这四种配置的分词表全部相同,转换链路各自为:

    • s2t.json:STPhrases → STCharacters
    • s2tw.json:STPhrases → STCharacters → TWVariants
    • s2twp.json:STPhrases → STCharacters → TWPhrases → TWVariants
    • s2hk.json:STPhrases → STCharacters → HKVariants

    也就是说,一旦 s2t.json (即 STPhrases + STCharacters)决定将「台」转成「臺」,其余几种配置目前只能通过 Variants 表反向转回以补救。s2hk.json 即在 HKVariants 中包含了 「臺」转回「台」 的逻辑。但 TWVariants 中则没有这样做;我不清楚加在这里是不是最合适的。

    我想,更理想的做法或许是把 STPhrases + STCharacters 拆分为「无争议的」和「有争议的」两部分。「无争议的」的继续保留在s2tw.json 等配置文件中,而「有争议的」则让这些文件跳过去,这样或可避免「来回转」的麻烦。

  3. danny0838 commented on Jan 2, 2026

    @danny0838
    Contributor

    OpenCC 應該是優先選擇轉換成當地標準,而臺灣的官方標準就是「臺」,雖然很多人習慣用「台」,甚至官方網站內文也常用「台」,二者已幾乎通用。

    至於 s2hk 選擇「台」是因為香港以「台」作為標準,「臺」反而視為異體字,至少《香港小學學習字詞表》是這樣寫的:

    Image

    對於這種「非標準,但實際上常用,也比較接地氣的用字」,恐怕不是 OpenCC 官方詞典能處理的範圍,最多加個次位備選即「臺 => 臺 台」,但 OpenCC 本身對一對多轉換支援不好,實際上還是不會轉,而且如果接受這做法,未來可能有一大堆字都要提供異體字作為備選,會涉及很大的詞典更動,ByVoid 當初說異體字問題要另外考慮 (#492),結果到現在還沒下文XD。

    如有相關需求,大概只能自建詞典處理了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions