kana

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2019 License: MIT Imports: 4 Imported by: 12

README

Build Status go report card

kana

A golang library to convert hiragana to romaji, katakana to romaji, romaji to hiragana and romaji to katakana.

Installation

Simply install with go get:

go get github.com/gojp/kana

Usage

To use kana, you'll have to import it:

import "github.com/gojp/kana"
...
k := kana.NewKana()

kana can do many things. It can convert hiragana or katakana to romaji:

s := kana.KanaToRomaji("バナナ") // -> banana
s = kana.KanaToRomaji("かんじ") // -> kanji

It can convert romaji to hiragana or katakana:

s := kana.RomajiToHiragana("kanji") // -> かんじ
s = kana.RomajiToKatakana("banana") // -> バナナ

It can tell you whether strings are written with kana, kanji or latin characters:

kana.IsLatin("banana") // -> true
kana.IsLatin("バナナ") // -> false

kana.IsKana("banana") // -> false
kana.IsKana("バナナ") // -> true

kana.IsKanji("banana") // -> false
kana.IsKanji("減少") // -> true

It can also normalize a given romaji string to a more standardized form (from the form given by Google Translate, for example):

kana.NormalizeRomaji("Myūjikku") // -> myu-jikku
kana.NormalizeRomaji("shitsuree") // -> shitsurei

Please feel free to use, contribute, and enjoy! You can also see this in action at nihongo.io.

Contributors

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HiraganaTable = `` /* 705-byte string literal not displayed */

HiraganaTable maps romaji to hiragana

View Source
var KatakanaTable = `` /* 755-byte string literal not displayed */

KatakanaTable maps romaji to katakana

Functions

func Initialize

func Initialize()

Initialize builds the Hiragana + Katakana trie. Because there is no overlap between the hiragana and katakana sets, they both use the same trie without conflict. Nice bonus!

func IsHiragana

func IsHiragana(s string) bool

IsHiragana returns true if the string contains only hiragana

func IsKana

func IsKana(s string) bool

IsKana returns true if the string contains only kana

func IsKanji

func IsKanji(s string) bool

IsKanji return strue if the string contains only kanji

func IsKatakana

func IsKatakana(s string) bool

IsKatakana returns true if the string contains only katakana

func IsLatin

func IsLatin(s string) bool

IsLatin returns true if the string contains only Latin characters

func KanaToRomaji

func KanaToRomaji(kana string) (romaji string)

KanaToRomaji converts a kana string to its romaji form

func NormalizeRomaji

func NormalizeRomaji(s string) (romaji string)

NormalizeRomaji transforms romaji input to one specific standard form, which should be as close as possible to hiragana so that this library gives correct output when transforming to hiragana/katakana

func RomajiToHiragana

func RomajiToHiragana(romaji string) (hiragana string)

RomajiToHiragana converts a romaji string to its hiragana form

func RomajiToKatakana

func RomajiToKatakana(romaji string) (katakana string)

RomajiToKatakana converts a romaji string to its katakana form

Types

type Trie

type Trie struct {
	// contains filtered or unexported fields
}

Trie is a trie data structure

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL