純 C# 版本的 OpenCC 函式庫,無任何 NuGet 套件依賴。
dotnet add package OpenCCsrc/OpenCC/:函式庫原始碼tests/OpenCC.Tests/:xUnit 單元測試examples/:完整使用者範例與逐一說明OpenCC.sln:解決方案檔,便於一鍵建置與測試
請參考 examples/,內含基本轉換、不套用詞彙轉換、不同簡繁詞庫差異、自訂詞典與 HTML/XML 轉換範例。
using OpenCC;
var converter = OpenCC.Converter("cn", "tw2");
Console.WriteLine(converter("汉语")); // 漢語tw2 的「台/臺」規則:日常用語用「台」(台北、舞台、電視台),「颱」「檯」不變(颱風、櫃檯),正式名稱保留「臺」(國立臺灣大學、臺北市政府、新臺幣)。輸入寫成「台」的正式名稱也會統一成「臺」。tw2 轉回其他地區時不會把「台」改回「臺」,所以 tw → tw2 → tw 不保證能還原原文。白名單來源是 opencc-js 的 src/custom/TW2TaiProperNouns.js,字典資料是 TW2Tai/TW2TaiRev,用 opencc-js 的 tools/gen-tw2-tai.mjs 產生。
using OpenCC;
var converter = OpenCC.CustomConverter(new[]
{
new DictEntry("香蕉", "banana"),
new DictEntry("蘋果", "apple"),
});
Console.WriteLine(converter("我喜歡吃香蕉和蘋果"));using OpenCC;
var converter = OpenCC.CustomConverter("香蕉 banana|蘋果 apple|梨 pear");
Console.WriteLine(converter("香蕉 蘋果 梨"));using OpenCC;
var customDict = new[]
{
new DictEntry("“", "「"),
new DictEntry("”", "」"),
};
var converter = OpenCC.ConverterFactory(
OpenCC.Locale.From.Cn,
OpenCC.Locale.To.Tw.Concat(new[] { Dict.FromEntries(customDict) })
);
Console.WriteLine(converter("悟空道:“师父又来了。”"));HtmlConverter 以 System.Xml.Linq 為基礎,適用於 XML 或可解析為 XML 的 HTML 片段。
using System.Xml.Linq;
using OpenCC;
var converter = OpenCC.Converter("hk", "cn");
var doc = XDocument.Parse("<html lang='zh-HK'><body><p lang='zh-HK'>漢語</p></body></html>");
var htmlConverter = OpenCC.HtmlConverter(converter, doc, "zh-HK", "zh-CN");
htmlConverter.Convert();
Console.WriteLine(doc.ToString());
htmlConverter.Restore();dotnet pack src/OpenCC/OpenCC.csproj -c Release產出的 .nupkg 會在 src/OpenCC/bin/Release/。
MIT
tw2 / twp 的共用詞彙規則、語境限制、測試結果與效能對照,請見 台灣詞彙品質說明。