moji

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2018 License: MIT Imports: 1 Imported by: 9

README

go-moji

Build Status Go Report Card GoDoc

This package provides a Go interface for converting between Zenkaku (全角 i.e. full-width) and Hankaku (半角 i.e. half-width) characters (mostly for Japanese). The library has been largely influenced by niwaringo/moji the JavaScript implementation.

For detailed information of the API, see the documents.

Installation

Use go get:

$ go get github.com/ktnyt/go-moji

Requirements

This package has only been tested on Go >= 1.8. Beware when using lower versions.

Example

package main

import (
	"fmt"

	"github.com/ktnyt/moji"
)

func main() {
	s := "ABC ABC あがぱ アガパ アガパ"

	// Convert Zenkaku Eisuu to Hankaku Eisuu
	fmt.Println(moji.Convert(s, moji.ZE, moji.HE))

	// Convert Hankaku Eisuu to Zenkaku Eisuu
	fmt.Println(moji.Convert(s, moji.HE, moji.ZE))

	// Convert HiraGana to KataKana
	fmt.Println(moji.Convert(s, moji.HG, moji.KK))

	// Convert KataKana to HiraGana
	fmt.Println(moji.Convert(s, moji.KK, moji.HG))

	// Convert Zenkaku Katakana to Hankaku Katakana
	fmt.Println(moji.Convert(s, moji.ZK, moji.HK))

	// Convert Hankaku Katakana to Zenkaku Katakana
	fmt.Println(moji.Convert(s, moji.HK, moji.ZK))

	// Convert Zenkaku Space to Hankaku Space
	fmt.Println(moji.Convert(s, moji.ZS, moji.HS))

	// Convert Hankaku Space to Zenkaku Space
	fmt.Println(moji.Convert(s, moji.HS, moji.ZS))
}

Copyright (C) 2018 by Kotone Itaya kotone@sfc.keio.ac.jp

go-moji is released under the terms of the MIT License. See LICENSE for details.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HE = NewRangeDictionary(0x0021, 0x007e)

HE defines the Hankaku Eisuu (i.e. half width english text) Dictionary

View Source
var HG = NewRangeDictionary(0x3041, 0x3096)

HG defines the HiraGana Dictionary

View Source
var HK = NewDictionary([]string{
	"ガ", "ギ", "グ", "ゲ", "ゴ",
	"ザ", "ジ", "ズ", "ゼ", "ゾ",
	"ダ", "ヂ", "ヅ", "デ", "ド",
	"バ", "パ", "ビ", "ピ", "ブ", "プ", "ベ", "ペ", "ボ", "ポ",
	"ヷ", "ヺ", "ヴ",
	"。", "「", "」", "、", "・", "ー", "゙", "゚",
	"ア", "イ", "ウ", "エ", "オ",
	"カ", "キ", "ク", "ケ", "コ",
	"サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト",
	"ナ", "ニ", "ヌ", "ネ", "ノ",
	"ハ", "ヒ", "フ", "ヘ", "ホ",
	"マ", "ミ", "ム", "メ", "モ",
	"ヤ", "ユ", "ヨ",
	"ラ", "リ", "ル", "レ", "ロ",
	"ワ", "ヲ", "ン",
	"ァ", "ィ", "ゥ", "ェ", "ォ",
	"ャ", "ュ", "ョ", "ッ",
})

HK defines the Hankaku Katakana (i.e. half width katakana) Dictionary

View Source
var HS = NewDictionary([]string{" ", stringify(0x00a0)})

HS defines the Hankaku Space (i.e. half width space) Dictionary

View Source
var KK = NewRangeDictionary(0x30a1, 0x30f6)

KK defines the KataKana Dictionary

View Source
var ZE = NewRangeDictionary(0xff01, 0xff5e)

ZE defines the Zenkaku Eisuu (i.e. full width english text) Dictionary

View Source
var ZK = NewDictionary([]string{
	"ガ", "ギ", "グ", "ゲ", "ゴ",
	"ザ", "ジ", "ズ", "ゼ", "ゾ",
	"ダ", "ヂ", "ヅ", "デ", "ド",
	"バ", "パ", "ビ", "ピ", "ブ", "プ", "ベ", "ペ", "ボ", "ポ",
	"ヷ", "ヺ", "ヴ",
	"。", "「", "」", "、", "・", "ー", "゛", "゜",
	"ア", "イ", "ウ", "エ", "オ",
	"カ", "キ", "ク", "ケ", "コ",
	"サ", "シ", "ス", "セ", "ソ",
	"タ", "チ", "ツ", "テ", "ト",
	"ナ", "ニ", "ヌ", "ネ", "ノ",
	"ハ", "ヒ", "フ", "ヘ", "ホ",
	"マ", "ミ", "ム", "メ", "モ",
	"ヤ", "ユ", "ヨ",
	"ラ", "リ", "ル", "レ", "ロ",
	"ワ", "ヲ", "ン",
	"ァ", "ィ", "ゥ", "ェ", "ォ",
	"ャ", "ュ", "ョ", "ッ",
})

ZK defines the Zenkaku Katakana (i.e. full width katakana) Dictionary

View Source
var ZS = NewDictionary([]string{stringify(0x3000), stringify(0x3000)})

ZS defines the Zenkaku Space (i.e. full width space) Dictionary

Functions

func Convert

func Convert(s string, from, to Dictionary) string

Convert a string between two Dictionaries

Types

type Dictionary

type Dictionary interface {
	Encode([]MaybeIndex) string
	Decode(string) []MaybeIndex
}

Dictionary defines an interface for mapping between a string and index

func NewDictionary

func NewDictionary(d []string) Dictionary

NewDictionary creates a dictionary from the given string slice

func NewRangeDictionary

func NewRangeDictionary(s, e rune) Dictionary

NewRangeDictionary creates a dictionary from the given range

type MaybeIndex

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

MaybeIndex may be an index or a rune

Jump to

Keyboard shortcuts

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