kuroshiro is a Japanese language library for converting Japanese sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported.
npm install kuroshiro-enhancesh
$ npm install kuroshiro
`
載入kuroshiro庫:
同時支持ES6 Module import 和 CommonJS require
`js
import Kuroshiro from "kuroshiro";
`
實例化:
`js
const kuroshiro = new Kuroshiro();
`
使用一個解析器實例來初始化kuroshiro (請參考API說明):
`js
// 在這個示例中,首先npm install並import導入kuromoji解析器
import KuromojiAnalyzer from "kuroshiro-analyzer-kuromoji";
// ...
// 初始化
// 這裡使用了async/await, 你同樣也可以使用Promise
await kuroshiro.init(new KuromojiAnalyzer());
`
進行轉換操作:
`js
const result = await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
`
$3
將dist/kuroshiro.min.js加入到你的工程 (你需要先後執行npm install和npm run build,以把它構建出來),並在HTML中加入:
`html
`
在這個示例中, 你還需要引入kuroshiro-analyzer-kuromoji.min.js。具體獲取方法請參考kuroshiro-analyzer-kuromoji
`html
`
實例化:
`js
var kuroshiro = new Kuroshiro();
`
使用一個解析器實例來初始化kuroshiro,然後進行轉換操作:
`js
kuroshiro.init(new KuromojiAnalyzer({ dictPath: "url/to/dictFiles" }))
.then(function () {
return kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
})
.then(function(result){
console.log(result);
})
`
API說明
$3
__示例__
`js
const kuroshiro = new Kuroshiro();
`
$3
#### init(analyzer)
使用一個解析器實例來初始化kuroshiro。你需要首先導入並初始化一個解析器。你可以使用上面提到的已實現的解析器插件。關於解析器的初始化方法請參照相應解析器的文檔說明。
__參數__
* analyzer - 解析器實例。
__示例__
`js
await kuroshiro.init(new KuromojiAnalyzer());
`
#### convert(str, [options])
轉換指定的字元串到指定的音節文字(可在選項中配置注音模式等設置)。
__參數__
* str - 將被轉換的字元串。
options - 可選* 轉換選項,見下表。
| 選項 | 類型 | 默認值 | 描述 |
|---|---|---|---|
| to | String | 'hiragana' | 目標音節文字
hiragana (平假名),
katakana (片假名),
romaji (羅馬字) |
| mode | String | 'normal' | 轉換模式
normal (標準模式),
spaced (空格分組),
okurigana (送假名),
furigana (注音假名) |
| romajiSystem* | String | "hepburn" | 羅馬字體系
nippon (日本式),
passport (護照式),
hepburn (平文式) |
| delimiter_start | String | '(' | 分隔符 (起始) |
| delimiter_end | String | ')' | 分隔符 (結束) |
*: romajiSystem參數僅當to參數設置為romaji時生效。有關這一參數的更多信息, 請見 羅馬字體系
__示例__
`js
// normal (標準模式)
kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// 結果:かんじとれたらてをつなごう、かさなるのはじんせいのライン and レミリアさいこう!
`
`js
// spaced (空格分組)
kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// 結果:かんじとれ たら て を つなご う 、 かさなる の は じんせい の ライン and レミ リア さいこう !
`
`js
// okurigana (送假名)
kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// 結果: 感(かん)じ取(と)れたら手(て)を繋(つな)ごう、重(かさ)なるのは人生(じんせい)のライン and レミリア最高(さいこう)!
`
// furigana (注音假名)
kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"furigana", to:"hiragana"});
// 結果: 感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!
$3
__示例__
`js
const result = Kuroshiro.Util.isHiragana("あ"));
`
#### isHiragana(char)
判斷輸入字元是否是平假名。
#### isKatakana(char)
判斷輸入字元是否是片假名。
#### isKana(char)
判斷輸入字元是否是假名。
#### isKanji(char)
判斷輸入字元是否是日文漢字。
#### isJapanese(char)
判斷輸入字元是否是日文。
#### hasHiragana(str)
檢查輸入字元串中是否含有平假名。
#### hasKatakana(str)
檢查輸入字元串中是否含有片假名。
#### hasKana(str)
檢查輸入字元串中是否含有假名。
#### hasKanji(str)
檢查輸入字元串中是否含有日文漢字。
#### hasJapanese(str)
檢查輸入字元串中是否含有日文。
#### kanaToHiragna(str)
轉換輸入假名字元串至平假名。
#### kanaToKatakana(str)
轉換輸入假名字元串至片假名。
#### kanaToRomaji(str, system)
轉換輸入假名字元串至羅馬字。參數system可選值為"nippon", "passport", "hepburn" (默認值: "hepburn")。
羅馬字體系
kuroshiro支持三種羅馬字體系。
nippon: 日本式羅馬字。參照 ISO 3602 Strict。
passport: 護照式羅馬字。 參照日本外務省發布的 日文羅馬字對照表。
hepburn: 平文羅馬字。參照 BS 4812 : 1972。
想快速了解這些羅馬字體系的不同,可參考這個實用的網頁。
$3
完全自動化進行注音假名到羅馬字的直接轉換是不可能的,這是因為一般的注音假名都缺乏正確的發音信息,可以參考 なぜ フリガナでは ダメなのか?。
因此kuroshiro在進行直接的注音假名->羅馬字轉換(使用任何羅馬字體系)時,不會處理長音。(但長音符會被處理)
例如,當進行假名"こうし"到羅馬字的轉換時,對於nippon, passport, hepburn`三種羅馬字體系,你會分別得到"kousi", "koushi", "koushi"這幾個結果