kuroshiro是一款十分方便使用的日文转换注音工具,主要针对日文文本,进行到平假名、片假名及罗马字的转换,并支持注音假名、送假名 (旁注音)等注音模式。
其他说明语言:English, 日本語, 简体中文, 繁體中文, Esperanto。
你可以在这里查看在线演示。
- 日文文本 => 平假名、片假名、罗马字
- 支持注音假名和送假名
- 🆕支持多种语素解析器
- 🆕支持多种罗马字体系
- 实用日语工具
在开始工作之前,请先确认各插件的环境兼容性
解析器 | Node.js支持 | 浏览器支持 | 仓库 | 开发者 |
---|---|---|---|---|
Kuromoji | ✓ | ✓ | kuroshiro-analyzer-kuromoji | Hexen Qi |
Mecab | ✓ | ✗ | kuroshiro-analyzer-mecab | Hexen Qi |
Yahoo Web API | ✓ | ✗ | kuroshiro-analyzer-yahoo-webapi | Hexen Qi |
首先使用npm包管理器进行安装:
$ npm install kuroshiro
加载kuroshiro库:
同时支持ES6 Module import
和 CommonJS require
import Kuroshiro from "kuroshiro";
实例化:
const kuroshiro = new Kuroshiro();
使用一个解析器实例来初始化kuroshiro (请参考API说明):
// 在这个示例中,首先npm install并import导入kuromoji解析器
import KuromojiAnalyzer from "kuroshiro-analyzer-kuromoji";
// ...
// 初始化
// 这里使用了async/await, 你同样也可以使用Promise
await kuroshiro.init(new KuromojiAnalyzer());
进行转换操作:
const result = await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
将dist/kuroshiro.min.js
加入到你的工程 (你需要先后执行npm install
和npm run build
,以把它构建出来),并在HTML中加入:
<script src="url/to/kuroshiro.min.js"></script>
在这个示例中, 你还需要引入kuroshiro-analyzer-kuromoji.min.js
。具体获取方法请参考kuroshiro-analyzer-kuromoji
<script src="url/to/kuroshiro-analyzer-kuromoji.min.js"></script>
实例化:
var kuroshiro = new Kuroshiro();
使用一个解析器实例来初始化kuroshiro,然后进行转换操作:
kuroshiro.init(new KuromojiAnalyzer({ dictPath: "url/to/dictFiles" }))
.then(function () {
return kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
})
.then(function(result){
console.log(result);
})
示例
const kuroshiro = new Kuroshiro();
使用一个解析器实例来初始化kuroshiro。你需要首先导入并初始化一个解析器。你可以使用上面提到的已实现的解析器插件。关于解析器的初始化方法请参照相应解析器的文档说明。
参数
analyzer
- 解析器实例。
示例
await kuroshiro.init(new KuromojiAnalyzer());
转换指定的字符串到指定的音节文字(可在选项中配置注音模式等设置)。
参数
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
时生效。有关这一参数的更多信息, 请见 罗马字体系
示例
// normal (标准模式)
kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// 结果:かんじとれたらてをつなごう、かさなるのはじんせいのライン and レミリアさいこう!
// spaced (空格分组)
kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// 结果:かんじとれ たら て を つなご う 、 かさなる の は じんせい の ライン and レミ リア さいこう !
// okurigana (送假名)
kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// 结果: 感(かん)じ取(と)れたら手(て)を繋(つな)ごう、重(かさ)なるのは人生(じんせい)のライン and レミリア最高(さいこう)!
// furigana (注音假名) kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"furigana", to:"hiragana"}); // 结果: 感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!
示例
const result = Kuroshiro.Util.isHiragana("あ"));
判断输入字符是否是平假名。
判断输入字符是否是片假名。
判断输入字符是否是假名。
判断输入字符是否是日文汉字。
判断输入字符是否是日文。
检查输入字符串中是否含有平假名。
检查输入字符串中是否含有片假名。
检查输入字符串中是否含有假名。
检查输入字符串中是否含有日文汉字。
检查输入字符串中是否含有日文。
转换输入假名字符串至平假名。
转换输入假名字符串至片假名。
转换输入假名字符串至罗马字。参数system
可选值为"nippon"
, "passport"
, "hepburn"
(默认值: "hepburn")。
kuroshiro支持三种罗马字体系。
nippon
: 日本式罗马字。参照 ISO 3602 Strict。
passport
: 护照式罗马字。 参照日本外务省发布的 日文罗马字对照表。
hepburn
: 平文罗马字。参照 BS 4812 : 1972。
想快速了解这些罗马字体系的不同,可参考这个实用的网页。
完全自动化进行注音假名到罗马字的直接转换是不可能的,这是因为一般的注音假名都缺乏正确的发音信息,可以参考 なぜ フリガナでは ダメなのか?。
因此kuroshiro在进行直接的注音假名->罗马字转换(使用任何罗马字体系)时,不会处理长音。(但长音符会被处理)
例如,当进行假名"こうし"到罗马字的转换时,对于nippon
, passport
, hepburn
三种罗马字体系,你会分别得到"kousi", "koushi", "koushi"这几个结果
汉字->罗马字的转换无论使用注音假名模式与否都 不受 此逻辑影响。
请查阅文档 CONTRIBUTING.
- kuromoji
- wanakana
MIT