包详细信息

kuroshiro

hexenq15.7kMIT1.2.0

kuroshiro is a Japanese language library for converting Japanese sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported.

Japanese, language, convert, converter

自述文件

kuroshiro

Kuroshiro

Build Status Coverage Status npm version Join the chat at https://gitter.im/hexenq/kuroshiro 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, 日本語, 简体中文, 繁體中文, Esperanto.

Ekzempla Paĝo

Vidi la ekzemplan paĝon ĉi tie.

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 or personigitaj iloj)
  • 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|Hexen Qi| |Mecab|✓|✗|kuroshiro-analyzer-mecab|Hexen Qi| |Yahoo Web API|✓|✗|kuroshiro-analyzer-yahoo-webapi|Hexen Qi|

Uzado

Node.js (aŭ per "module bundler"-ilo (kiel Webpack))

Instali per npm pako-administrilo:

$ npm install kuroshiro

Ŝargi la kodotekon:

Subtenas ambaŭ "ES6 Module" import kaj "CommonJS" require

import Kuroshiro from "kuroshiro";

Generi:

const kuroshiro = new Kuroshiro();

Iniciati kuroshiro kun genero de analizilo (Rigardu la dokumenton apidoc por vidi pli da informo):

// 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:

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:

<script src="url/to/kuroshiro.min.js"></script>

Por fari kiel en ĉi ekzemplo, vi devas ankaŭ inkluzivi kuroshiro-analyzer-kuromoji.min.js kiu vi povas preni ĉe kuroshiro-analyzer-kuromoji

<script src="url/to/kuroshiro-analyzer-kuromoji.min.js"></script>

Ŝargi:

var kuroshiro = new Kuroshiro();

Iniciati kuroshiro per ŝargo de analizilo, poste konverti:

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

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 skribita supre. Bonvole rigardu la analizilan dokumentaron por vidi instrukciojn.

Argumentoj

  • analyzer - Instanco de Analizilo.

Ekzemploj

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

Ekzemploj

// normal
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// rezulto:かんじとれたらてをつなごう、かさなるのはじんせいのライン and レミリアさいこう!
// spaced
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// rezulto:かんじとれ たら て を つなご う 、 かさなる の は じんせい の ライン   and   レミ リア さいこう !
// okurigana
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// rezulto: 感(かん)じ取(と)れたら手(て)を繋(つな)ごう、重(かさ)なるのは人生(じんせい)のライン and レミリア最高(さいこう)!
// furigana
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"furigana", to:"hiragana"});
// rezulto: <ruby>感<rp>(</rp><rt>かん</rt><rp>)</rp></ruby>じ<ruby>取<rp>(</rp><rt>と</rt><rp>)</rp></ruby>れたら<ruby>手<rp>(</rp><rt>て</rt><rp>)</rp></ruby>を<ruby>繋<rp>(</rp><rt>つな</rt><rp>)</rp></ruby>ごう、<ruby>重<rp>(</rp><rt>かさ</rt><rp>)</rp></ruby>なるのは<ruby>人生<rp>(</rp><rt>じんせい</rt><rp>)</rp></ruby>のライン and レミリア<ruby>最高<rp>(</rp><rt>さいこう</rt><rp>)</rp></ruby>!

Utilaĵoj

Ekzemploj

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.

passport: Passport-shiki sistemo. Rigardu Japanese romanization table de la "Japana Ministerio de Eksteraj Aferoj".

hepburn: Hepburn sistemo. Rigardu BS 4812 : 1972.

Por vidi la malsamecoj de la tri sistemoj, rigardu webpage.

Informo pri Romaĝia Konvertado

Ne eblas tute konverti furigana precize al romaĝio ĉar furigana ne enhavas kompletan prononcan informon, (Rigardu なぜ フリガナでは ダメなのか?) 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.

Inspiroj

  • kuromoji
  • wanakana

Licenco

MIT

更新日志

1.2.0 (2021-6-7)

Bug Fixes

  • fix errors occurring when converting っ to romaji (#61)
  • fix wrong regex pattern (#60)

Dependencies

  • Upgrade to babel 7
  • Update other dependencies

Documents

  • Add ready to use code in readme
  • Add Esperanto docs

Miscellaneous

  • Add husky and lint-staged for pre-commit check

1.1.2 (2018-10-19)

Bug Fixes

  • fix conversion bug when handling chōon with passport-shiki romanization (#47)
  • fix kanji->romaji conversion bug when using nippon-shiki/hepburn-shiki romanization (#46)

Test

  • Update test specification

Miscellaneous

  • Update docs, add notice for romaji conversion

1.1.1 (2018-08-28)

Bug Fixes

  • Handle invalid parameter when initializing kuroshiro

Test

  • Update test specification

1.1.0 (2018-08-13)

Feature

  • Add support for multiple romanization systems

Bug Fixes

  • Add babel-runtime dependency which used by commonjs distribution

Test

  • Update test specification

Miscellaneous

  • Update docs

1.0.0 (2018-08-07)

Bump deps

  • Update kuroshiro-analyzer-kuromoji to version ^1.1.0

Miscellaneous

  • Update docs

1.0.0-rc.2 (2018-08-05)

Miscellaneous

  • Update docs

1.0.0-rc.1 (2018-07-26)

BREAKING CHANGE

  • Seperate morphological analyzer from phonetic notation logic to enable the new feature listed below
  • Embrace ES8/ES2017 to use async/await functions
  • Use ES6 Module instead of CommonJS
  • Refactor project structure

Feature

  • Ability to use different morphological analyzers (ready-made or customized)

Repo Name Change

  • kuroshiro.js is renamed kuroshiro for avoiding confusion between the names of kuroshiro and its plugins.

Miscellaneous

  • Add CONTRIBUTING.md
  • Add README.jp.md
  • Update documents

0.2.4 (2018-05-23)

Bug Fixes

  • Fix misparing when kana is between kanji (#31)

0.2.3 (2018-05-17)

Miscellaneous

  • Update .npmignore file

0.2.2 (2018-05-17)

Bug Fixes

  • Fix simple character conversion problem (#28)

0.2.1 (2018-01-24)

Miscellaneous

  • Fix coverage report problem

0.2.0 (2018-01-24)

Bug Fixes

  • Fix it would replace from first 'src' when getting full path of 'kuromoji/dict' (#19)

Usability

  • Add typescript typings (#21)

Bump deps

  • Update dependencies

Miscellaneous

  • Add README.zh-tw.md
  • Modify distribution logic
  • Other trivial modifications

0.1.5 (2017-06-05)

Bug Fixes

  • Fix wrong pairing of kanji and phonetic notation (reported in #10)

0.1.4 (2017-05-25)

Bug Fixes

  • Fix wrong recognition when encountering katakana-kanji-mixed tokens (#9)

0.1.3 (2017-01-10)

Usability

  • Make param callback of init function optional

0.1.2 (2016-08-22)

Bump deps

  • Update dependencies in package.json

Miscellaneous

  • Update README.md and README.zh-cn.md