
Product
Introducing Repository Access Permissions and Custom Roles
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.
A TypeScript library for converting Chinese characters to Wade-Giles romanization
將中文字轉換為威妥瑪拼音的 TypeScript 函式庫。
npm install use-wg
直接透過 npx 使用:
# 基本用法
npx use-wg "台灣" # 輸出: t'ai²-wan¹
# URL 安全模式
npx use-wg "台灣" --url-safe # 輸出: tai-wan
# 聲調格式
npx use-wg "高雄" --tone number # 輸出: kao1-hsiung2
npx use-wg "高雄" --tone none # 輸出: kao-hsiung
# 從 stdin 讀取
echo "台灣" | npx use-wg
# JSON 輸出(含分段資訊)
npx use-wg "台灣" --json
# 拼音轉換模式
npx use-wg --pinyin "zhong1" # 輸出: chung¹
| 選項 | 簡寫 | 說明 | 預設值 |
|---|---|---|---|
--url-safe | -u | 輸出 URL 安全格式 | false |
--tone <format> | -t | 聲調格式: superscript, number, none | superscript |
--separator <sep> | -s | 音節分隔符號 | - |
--capitalize | -c | 首字母大寫 | false |
--json | -j | 輸出 JSON 格式 | false |
--pinyin | -p | 拼音轉威妥瑪模式 | false |
import { toWadeGiles } from "use-wg";
// 基本轉換
toWadeGiles("台灣").text; // "t'ai²-wan¹"
toWadeGiles("台北").text; // "t'ai²-pei³"
toWadeGiles("高雄").text; // "kao¹-hsiung²"
// 上標聲調(預設)
toWadeGiles("高雄", { toneFormat: "superscript" }).text; // "kao¹-hsiung²"
// 數字聲調
toWadeGiles("高雄", { toneFormat: "number" }).text; // "kao1-hsiung2"
// 無聲調
toWadeGiles("高雄", { toneFormat: "none" }).text; // "kao-hsiung"
產生僅包含 ASCII 字元的輸出,適用於網址、檔案名稱和識別碼:
toWadeGiles("台灣", { urlSafe: true }).text; // "tai-wan"
toWadeGiles("氣功", { urlSafe: true }).text; // "chi-kung"
URL 安全模式會自動:
ü 轉換為 u')-)轉換器能智慧處理混合文字:
toWadeGiles("Hello 世界!").text; // "Hello shih⁴-chieh⁴!"
toWadeGiles("iPhone 手機 Pro").text; // "iPhone shou³-chi¹ Pro"
toWadeGiles("2024年").text; // "2024nien²"
toWadeGiles("台北", {
toneFormat: "superscript", // 'superscript' | 'number' | 'none'
separator: "-", // 音節分隔符號
preserveNonChinese: true, // 保留非中文字元
capitalize: false, // 首字母大寫
polyphoneMode: "auto", // 'auto' | 'all'
urlSafe: false, // 僅 ASCII 輸出
});
import { pinyinToWadeGiles } from "use-wg";
pinyinToWadeGiles("zhong1"); // "chung¹"
pinyinToWadeGiles("guo2"); // "kuo²"
pinyinToWadeGiles("qi4"); // "ch'i⁴"
import { containsChinese } from "use-wg";
containsChinese("Hello 世界"); // true
containsChinese("Hello World"); // false
取得詳細的轉換資訊:
const result = toWadeGiles("台北");
console.log(result.text); // "t'ai²-pei³"
console.log(result.segments);
// [
// { original: "台", pinyin: "tai2", wadeGiles: "t'ai", tone: 2 },
// { original: "北", pinyin: "bei3", wadeGiles: "pei", tone: 3 }
// ]
主要轉換規則:
| 漢語拼音 | 威妥瑪拼音 | 範例 |
|---|---|---|
| b → p | ba → pa | 八 bā → pa¹ |
| p → p' | pa → p'a | 怕 pà → p'a⁴ |
| d → t | da → ta | 大 dà → ta⁴ |
| t → t' | ta → t'a | 他 tā → t'a¹ |
| g → k | ga → ka | 高 gāo → kao¹ |
| k → k' | ka → k'a | 看 kàn → k'an⁴ |
| j → ch | ji → chi | 雞 jī → chi¹ |
| q → ch' | qi → ch'i | 氣 qì → ch'i⁴ |
| x → hs | xi → hsi | 西 xī → hsi¹ |
| zh → ch | zhi → chih | 知 zhī → chih¹ |
| z → ts | zi → tzu | 子 zǐ → tzu³ |
| c → ts' | ci → tz'u | 次 cì → tz'u⁴ |
| r → j | ri → jih | 日 rì → jih⁴ |
| si → ss | si → ssu | 四 sì → ssu⁴ |
toWadeGiles(text, options?)將中文文字轉換為威妥瑪拼音。
參數:
text (string) - 要轉換的中文文字options (WadeGilesOptions) - 選用的設定選項回傳值: WadeGilesResult
pinyinToWadeGiles(pinyin, options?)將拼音音節轉換為威妥瑪拼音。
參數:
pinyin (string) - 帶有選用聲調數字的拼音音節options ({ toneFormat?: ToneFormat }) - 選用的聲調格式回傳值: string
containsChinese(text)檢查字串是否包含中文字元。
參數:
text (string) - 要檢查的文字回傳值: boolean
type ToneFormat = "superscript" | "number" | "none";
interface WadeGilesOptions {
toneFormat?: ToneFormat; // 預設: 'superscript'
separator?: string; // 預設: '-'
preserveNonChinese?: boolean; // 預設: true
capitalize?: boolean; // 預設: false
polyphoneMode?: "auto" | "all"; // 預設: 'auto'
urlSafe?: boolean; // 預設: false
}
interface WadeGilesResult {
text: string;
segments: WadeGilesSegment[];
}
interface WadeGilesSegment {
original: string;
pinyin: string;
wadeGiles: string;
tone?: number;
alternatives?: string[];
}
執行效能測試:npm run benchmark
| 測試 | 輸入 | 平均時間 (ms) | 每秒運算次數 |
|---|---|---|---|
| 短文字 (2 字) | 台灣 | 0.0037 | 273,321 |
| 中等長度 (8 字) | 這是一個測試句子 | 0.0108 | 92,664 |
| 長文字 (11 字) | 台北市信義區忠孝東路四段 | 0.0150 | 66,465 |
| 中英混合 | Hello 世界! This is a test 測試 | 0.0063 | 159,867 |
| 含數字 | 2024年台灣之旅 | 0.0064 | 157,288 |
| URL 安全(短) | 台灣 | 0.0031 | 318,489 |
| URL 安全(混合) | My 台灣 Trip 2024年 | 0.0057 | 176,106 |
平均:約 180,000 次/秒
# 安裝相依套件
npm install
# 執行測試
npm test
# 建置
npm run build
# 型別檢查
npm run type-check
MIT License - 詳見 LICENSE 檔案。
Gary Lai - @imgarylai
FAQs
A TypeScript library for converting Chinese characters to Wade-Giles romanization
The npm package use-wg receives a total of 112 weekly downloads. As such, use-wg popularity was classified as not popular.
We found that use-wg demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.