Repository: BYVoid/OpenCC (2020-06-29T04:38:48Z)

Issue:
硷=>鹼/礆
《通用規範漢字表》規定「碱<=>鹼」，無「硷」字；但過去的《簡化字總表》定義「硷<=>鹼」，而無「碱」字。

目前的轉換表是「硷<=>礆」和「鹼<=>碱」，但「礆」字不常用（《通用規範漢字表》及《簡化字總表》皆無此字），而過去可能有許多文本按《簡化字總表》把「鹼」簡化為「硷」，因此簡轉繁時把「硷」轉為「鹼」正確的機率應該比轉為「礆」高。

總上所述，現提案把 STCharacters.txt 改為「硷=>鹼/礆」；TSCharacters.txt 為方便兼容及除錯也改成「鹼=>碱/硷」（不過如果大家認為既然《通用規範漢字表》不建議「鹼=>硷」就不需要「鹼=>硷」也可以）。


Discussion:
中國大陸是用「碱」，沒見過「硷」字，所以我認為不需要「硷」。
我是認為簡轉繁最好互相對應，以免使用者認為有錯。繁轉簡不加「硷」也可以，但建議文檔好好寫一下（放在 st_multi.txt?）
其實《通用規範漢字表》是把「碱」和「鹼」視為異體關係，而 OpenCC 一般是不處理異體的，但台灣明顯以「鹼」為主，幾乎不使用「碱」（香港的情況有待當地人提供）。不曉得是否因此也要把「碱<=>鹼」移到 TWVariants.txt？
按我的理解，因為 OpenCC 標準是用「鹼」，既然台灣也是用「鹼」，那麼就不需要「碱<=>鹼」這條轉換
所以 OpenCC 有時會以《通用規範漢字表》的繁體字為標準，有時又以異體字為標準？這樣可能會有點尷尬……。

或許應該要寫個文檔把 OpenCC 標準與中國標準不同的字列出來，比如取「麪」不取「麵」，取「鱷」不取「𩺑」、取「鹼」不取「碱」等等，否則以後可能會有很多爭議。

> 或許應該要寫個文檔把 OpenCC 標準與中國標準不同的字列出來，比如取「麪」不取「麵」，取「鱷」不取「𩺑」、取「鹼」不取「碱」等等，否則以後可能會有很多爭議。

雖然確實沒有文檔明説，但這個其實就是 `STCharacters.txt`。

> 所以 OpenCC 有時會以《通用規範漢字表》的繁體字為標準，有時又以異體字為標準？這樣可能會有點尷尬……。

因為 OpenCC 標準的「正體」與中國大陸確定的「正體」（依據《通用規範漢字表》）不一定相同。

我個人理解，OpenCC 標準的「正體」是綜合考慮了中國大陸標準、台灣標準、香港標準所定義的「正體」後，選取最符合字理或字源者作為 OpenCC 標準的「正體」（但也有一些例外，BYVoid 表示可以理解為 OpenCC 自訂了一套不嚴格的標準），因此 OpenCC 標準的「正體」不同於中國大陸標準的「正體」。
> 我個人理解，OpenCC 標準的「正體」是綜合考慮了中國大陸標準、台灣標準、香港標準所定義的「正體」後，選取最符合字理或字源者作為 OpenCC 標準的「正體」（但也有一些例外，BYVoid 表示可以理解為 OpenCC 自訂了一套不嚴格的標準），因此 OpenCC 標準的「正體」不同於中國大陸標準的「正體」。

這我明白。但就是因此，才需要文檔寫明哪些字是刻意不採用中國標準，否則很難確定是不是錯誤。像前面的幾個問題「唇/脣」、「秘/祕」，究竟是因為 OpenCC 使用了自己的標準，或是錯誤地轉換了不該轉換的異體字？




如需继续讨论「碱」、「硷」的问题可到 https://github.com/BYVoid/OpenCC/pull/461#issuecomment-4587707334
本 issue 先关闭了。



Patch:
diff --git a/data/dictionary/STCharacters.txt b/data/dictionary/STCharacters.txt
index 1ea3dc57c..c31f9e51f 100644
--- a/data/dictionary/STCharacters.txt
+++ b/data/dictionary/STCharacters.txt
@@ -1248,7 +1248,12 @@
 硚	礄
 确	確 确
 硵	磠
-硷	礆
+# 傳統上，「礆」是「險」的異體字。1950 年代中國化學界曾試圖區分「鹼」與「碱」，
+# 分別對應 base 與 alkali 含義。1964 年《簡化字總表》曾規定「鹼」簡化為「硷」；
+# 據《簡化字總表》的類推簡化原則「僉」簡化為「佥」，「礆」簡化為「硷」或可類推；
+# 「礆」亦見於個別相關文獻。後來普遍只用「碱」。2013 年《通用規範漢字表》以
+# 「碱」為規範字，「鹼」為異體字，「礆」、「硷」則未錄。
+硷	硷 礆 鹼
 碍	礙
 碛	磧
 碜	磣
diff --git a/data/dictionary/TSCharacters.txt b/data/dictionary/TSCharacters.txt
index e7ea5a978..f50fb4da1 100644
--- a/data/dictionary/TSCharacters.txt
+++ b/data/dictionary/TSCharacters.txt
@@ -1744,7 +1744,8 @@
 磽	硗
 磾	䃅
 礄	硚
-礆	硷
+# 參見 STCharacters.txt 中「硷」的注釋。
+礆	礆 硷
 礎	础
 礐	𬒈
 # @tofu-risk: not covered by PingFang/Source Han baseline: 𥐟 U+2541F


Test patch:
diff --git a/test/testcases/testcases.json b/test/testcases/testcases.json
index 0ec8c28e3..ec711ff7e 100755
--- a/test/testcases/testcases.json
+++ b/test/testcases/testcases.json
@@ -1238,6 +1238,16 @@
         "s2twp": "異菸鹼醯酸"
       }
     },
+    {
+      "id": "BYVoid_OpenCC_PR_461_jian_s2t",
+      "input": "中国曾把碱写作硷，只有可溶于水的无机碱才叫碱，现已不再区分",
+      "expected": {
+        "s2t": "中國曾把鹼寫作硷，只有可溶於水的無機鹼才叫鹼，現已不再區分",
+        "s2tw": "中國曾把鹼寫作硷，只有可溶於水的無機鹼才叫鹼，現已不再區分",
+        "s2twp": "中國曾把鹼寫作硷，只有可溶於水的無機鹼才叫鹼，現已不再區分",
+        "s2hk": "中國曾把鹼寫作硷，只有可溶於水的無機鹼才叫鹼，現已不再區分"
+      }
+    },
     {
       "id": "BYVoid_OpenCC_Issue_1275_amino_acid_s2x",
       "input": "氨基酸 丙氨酸 精氨酸 天冬酰胺 天门冬酰胺 天冬氨酸 天门冬氨酸 胱氨酸 谷氨酸 谷氨酰胺 甘氨酸 组氨酸 异亮氨酸 亮氨酸 赖氨酸 甲硫氨酸 苯丙氨酸 脯氨酸 丝氨酸 苏氨酸 色氨酸 酪氨酸 缬氨酸",