Skip to content
doggy8088Public

About

純 C# 版本的 OpenCC 函式庫,無任何 NuGet 套件依賴。

Topics

Resources

Stars

87 stars

Watchers

0 watching

Forks

Repository files navigation

OpenCC for C#

純 C# 版本的 OpenCC 函式庫,無任何 NuGet 套件依賴。

安裝

dotnet add package OpenCC

專案結構

  • src/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("悟空道:“师父又来了。”"));

HTML / XML 轉換 (XDocument)

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();

NuGet 封裝

dotnet pack src/OpenCC/OpenCC.csproj -c Release

產出的 .nupkg 會在 src/OpenCC/bin/Release/。

License

MIT

台灣詞彙品質改善

tw2 / twp 的共用詞彙規則、語境限制、測試結果與效能對照,請見 台灣詞彙品質說明。

About

純 C# 版本的 OpenCC 函式庫,無任何 NuGet 套件依賴。

Topics

Resources

Stars

87 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages