Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hexenq/kuroshiro
Japanese language library for converting Japanese sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported.
https://github.com/hexenq/kuroshiro
furigana hepburn hiragana japanese kana kanji katakana kuromoji mecab okurigana romaji
Last synced: 2 months ago
JSON representation
Japanese language library for converting Japanese sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported.
- Host: GitHub
- URL: https://github.com/hexenq/kuroshiro
- Owner: hexenq
- License: mit
- Created: 2016-01-03T09:16:40.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-06-07T19:20:29.000Z (about 2 years ago)
- Last Synced: 2024-01-07T18:03:43.028Z (6 months ago)
- Topics: furigana, hepburn, hiragana, japanese, kana, kanji, katakana, kuromoji, mecab, okurigana, romaji
- Language: JavaScript
- Homepage: https://kuroshiro.org
- Size: 28.9 MB
- Stars: 723
- Watchers: 16
- Forks: 87
- Open Issues: 46
-
Metadata Files:
- Readme: README.eo-eo.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Lists
- awesome-acg - kuroshiro - Japanese language utility mainly for converting Kanji-mixed sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported. [English] (Tools)
README
![kuroshiro](https://kuroshiro.org/kuroshiro.png)
# Kuroshiro
[![Build Status](https://travis-ci.org/hexenq/kuroshiro.svg?branch=master)](https://travis-ci.org/hexenq/kuroshiro)
[![Coverage Status](https://coveralls.io/repos/hexenq/kuroshiro/badge.svg)](https://coveralls.io/r/hexenq/kuroshiro)
[![npm version](https://badge.fury.io/js/kuroshiro.svg)](http://badge.fury.io/js/kuroshiro)
[![Join the chat at https://gitter.im/hexenq/kuroshiro](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/hexenq/kuroshiro)
[![License](https://img.shields.io/github/license/lassjs/lass.svg)](LICENSE)la Kuroshiro estas Japanalingvo kodlibrejo por konverti Japanajn frazojn al Hiraganao, Katakanao aŭ Romaĝio, kaj ankaŭ subtenas furiganaon kaj okuriganaon.
*Legi ĉi tion per aliaj lingvoj: [English](README.md), [日本語](README.jp.md), [简体中文](README.zh-cn.md), [繁體中文](README.zh-tw.md), [Esperanto](README.eo-eo.md).*
## Ekzempla Paĝo
Vidi la ekzemplan paĝon [ĉi tie](https://kuroshiro.org/#demo).## Elementoj
- Japanalingva Frazo => Hiraganao, Katakanao aŭ Romaĝio
- Furiganao kaj okuriganao modoj
- 🆕Multaj lingvastrukturaj metodoj
- 🆕Multaj romanaskriptkonvertaj sistemoj
- Utilaj Japanalingvaj iloj## Gravaj Ŝanĝoj je 1.x
- Aparta lingvasttrukturametoda ilo kaj fonetika notacia logiko por eblegi la uzaton de multaj lingvastrukturaj metodoj. ([finitaj iloj](#ready-made-analyzer-plugins) or [personigitaj iloj](CONTRIBUTING.md#how-to-submit-new-analyzer-plugins))
- ES8/ES2017 por uzi "async/await" funkciojn
- Uzu la modulon ES6 anstataŭ CommonJS
## Finitaj Analizilaj (Lingvastrukturaj) Iloj
*Antaŭ uzi ilon, bonvolu certiĝi pri mediakongrueco*
| Analizilo | Node.js Uzadeblo | Retumilo Uzadeblo | Plugin Repo | Programisto |
|---|---|---|---|---|
|Kuromoji|✓|✓|[kuroshiro-analyzer-kuromoji](https://github.com/hexenq/kuroshiro-analyzer-kuromoji)|[Hexen Qi](https://github.com/hexenq)|
|Mecab|✓|✗|[kuroshiro-analyzer-mecab](https://github.com/hexenq/kuroshiro-analyzer-mecab)|[Hexen Qi](https://github.com/hexenq)|
|Yahoo Web API|✓|✗|[kuroshiro-analyzer-yahoo-webapi](https://github.com/hexenq/kuroshiro-analyzer-yahoo-webapi)|[Hexen Qi](https://github.com/hexenq)|## Uzado
### Node.js (aŭ per "module bundler"-ilo (kiel Webpack))
Instali per npm pako-administrilo:
```sh
$ npm install kuroshiro
```
Ŝargi la kodotekon:*Subtenas ambaŭ "ES6 Module" `import` kaj "CommonJS" `require`*
```js
import Kuroshiro from "kuroshiro";
```Generi:
```js
const kuroshiro = new Kuroshiro();
```Iniciati kuroshiro kun genero de analizilo (Rigardu la dokumenton [apidoc](#initanalyzer) por vidi pli da informo):
```js
// Por ĉi tiu ekzemplo, vi devus fari npm install kaj importi la "kuromoji" analizilon unue.
import KuromojiAnalyzer from "kuroshiro-analyzer-kuromoji";// ...
// Ŝargi
// Ĉi tio uzas async/await, sed vi ankaŭ povus uzi Promise
await kuroshiro.init(new KuromojiAnalyzer());
```Konverti frazon:
```js
const result = await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
```
### Retumilo
Aldoni `dist/kuroshiro.min.js` al via "frontend-a projekto" (vi povas antaŭe kompili la originalan kodon per `npm run build` post `npm install`), kaj en via HTML:
```html```
Por fari kiel en ĉi ekzemplo, vi devas ankaŭ inkluzivi `kuroshiro-analyzer-kuromoji.min.js` kiu vi povas preni ĉe [kuroshiro-analyzer-kuromoji](https://github.com/hexenq/kuroshiro-analyzer-kuromoji)
```html```
Ŝargi:
```js
var kuroshiro = new Kuroshiro();
```Iniciati kuroshiro per ŝargo de analizilo, poste konverti:
```js
kuroshiro.init(new KuromojiAnalyzer({ dictPath: "url/to/dictFiles" }))
.then(function () {
return kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
})
.then(function(result){
console.log(result);
})
```## API
### Konstruilo
__Ekzemploj__```js
const kuroshiro = new Kuroshiro();
```### Instancometodoj
#### init(analyzer)
Iniciati kuroshiro per instanco de analizilo. Vi devus unue importi analizilon kaj iniciati ĝin. Vi povas uzi la [finitaj-iloj](#ready-made-analyzer-plugins) skribita supre. Bonvole rigardu la analizilan dokumentaron por vidi instrukciojn.__Argumentoj__
* `analyzer` - Instanco de Analizilo.
__Ekzemploj__
```js
await kuroshiro.init(new KuromojiAnalyzer());
```#### convert(str, [options])
Konverti frazon al cela skribsistemo (kun agordoj)__Argumentoj__
* `str` - Konvertvola Frazo.
* `options` - *Optional* kuroshiro havas multajn frazajn konvertagordojn.| Agordoj | Tipo | Defaŭlto | Informo |
|---|---|---|---|
| to | String | "hiragana" | Target syllabary [`hiragana`, `katakana`, `romaji`] |
| mode | String | "normal" | Convert mode [`normal`, `spaced`, `okurigana`, `furigana`] |
| romajiSystem* | String | "hepburn" | Romanization system [`nippon`, `passport`, `hepburn`] |
| delimiter_start | String | "(" | Delimiter(Start) |
| delimiter_end | String | ")" | Delimiter(End) |**: Param `romajiSystem` estas uzata sole kiam parametro `to` estas `romaji`. Por vidi plie, rigardu [Romanaskriptkonvertaj Sistemoj](#romanization-system)*
__Ekzemploj__
```js
// normal
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// rezulto:かんじとれたらてをつなごう、かさなるのはじんせいのライン and レミリアさいこう!
``````js
// spaced
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// rezulto:かんじとれ たら て を つなご う 、 かさなる の は じんせい の ライン and レミ リア さいこう !
``````js
// okurigana
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// rezulto: 感(かん)じ取(と)れたら手(て)を繋(つな)ごう、重(かさ)なるのは人生(じんせい)のライン and レミリア最高(さいこう)!
```
// furigana
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"furigana", to:"hiragana"});
// rezulto: 感(かん)じ取(と)れたら手(て)を繋(つな)ごう、重(かさ)なるのは人生(じんせい)のライン and レミリア最高(さいこう)!### Utilaĵoj
__Ekzemploj__
```js
const result = Kuroshiro.Util.isHiragana("あ"));
```
#### isHiragana(char)
Determini se enigita litero estas hiragana.#### isKatakana(char)
Determini se enigita litero estas katakana.#### isKana(char)
Determini se enigita litero estas kana.#### isKanji(char)
Determini se enigita litero estas kanĵio.#### isJapanese(char)
Determini se enigita litero estas Japanolingva.#### hasHiragana(str)
Determini se enigita frazo enhavas hiraganan.#### hasKatakana(str)
Determini se enigita frazo enhavas katakanan.#### hasKana(str)
Determini se enigita frazo enhavas kanan.#### hasKanji(str)
Determini se enigita frazo enhavas kanĵion.#### hasJapanese(str)
Determini se enigita frazo enhavas Japanolingvajn Frazojn.#### kanaToHiragna(str)
Konverti enigitan kanan frazon al hiragana#### kanaToKatakana(str)
Konverti enigitan kanan frazon al katakana.#### kanaToRomaji(str, system)
Konverti enigitan kanan frazon al romaĝio. Param `system` povas enhavi `"nippon"`, `"passport"`, `"hepburn"` (Defaŭlta: "hepburn").## Romanaskriptkonvertaj Sistemoj
kuroshiro povas uzi tri da Romanaskriptkonvertajn Sistemojn.`nippon`: Nippon-shiki sistemo. Rigardu [ISO 3602 Strict](http://www.age.ne.jp/x/nrs/iso3602/iso3602.html).
`passport`: Passport-shiki sistemo. Rigardu [Japanese romanization table](https://www.ezairyu.mofa.go.jp/passport/hebon.html) de la "Japana Ministerio de Eksteraj Aferoj".
`hepburn`: Hepburn sistemo. Rigardu [BS 4812 : 1972](https://archive.is/PiJ4).
Por vidi la malsamecoj de la tri sistemoj, rigardu [webpage](http://jgrammar.life.coocan.jp/ja/data/rohmaji2.htm).
### Informo pri Romaĝia Konvertado
Ne eblas tute konverti __furigana__ precize al __romaĝio__ ĉar furigana ne enhavas kompletan prononcan informon, (Rigardu [なぜ フリガナでは ダメなのか?](https://green.adam.ne.jp/roomazi/onamae.html#naze)) do kuroshiro ne konvertas chōon dum konvertado el furigana (kana) -> romaĝio je ĉiom da sistemoj (Sed, Chōonpu ĉiam konvertas)*Ekzemple, vi vidos "kousi", "koushi", "koushi" dum kana konvertado de "こうし" al romaĝio
kiam vi uzas `nippon`, `passport`, `hepburn` sistemojn respektive*Kanĝip -> romaĝio konvertado __ne estas afektita__.
## Kontribui
Rigardu [CONTRIBUTING](CONTRIBUTING.md).## Inspiroj
- kuromoji
- wanakana## Licenco
MIT