willnet/gimei - GitHubgimei は、日本人の名前や、日本の住所をランダムに返すライブラリです。テストの時などに使います。似たようなライブラリにfakerがあります。fakerはとても優れたライブラリで、多言語対応もしていますが、ふりがな(フリガナ)は流石に対応していません。gimei ふりがな(及びフリガナ)に対応しています。
https://github.com/willnet/gimei
オリジナルは ruby gems です。
mattn/go-gimei - GitHubgolang port of gimei
https://github.com/mattn/go-gimei
作者の方に ok を貰ったのでデータも同梱しています。使い方もほぼ同じです。
package main
import (
"fmt"
"github.com/mattn/go-gimei"
)
func main() {
name := gimei.NewName()
fmt.Println(name) // 斎藤 陽菜
fmt.Println(name.Kanji()) // 斎藤 陽菜
fmt.Println(name.Hiragana()) // さいとう はるな
fmt.Println(name.Katakana()) // サイトウ ハルナ
fmt.Println(name.Last.Kanji()) // 斎藤
fmt.Println(name.Last.Hiragana()) // さいとう
fmt.Println(name.Last.Katakana()) // サイトウ
fmt.Println(name.First.Kanji()) // 陽菜
fmt.Println(name.First.Hiragana()) // はるな
fmt.Println(name.First.Katakana()) // ハルナ
fmt.Println(name.IsMale()) // false
male := gimei.NewMale()
fmt.Println(male) // 小林 顕士
fmt.Println(male.IsMale()) // true
fmt.Println(male.IsFemale()) // false
address := gimei.NewAddress()
fmt.Println(address) // 岡山県大島郡大和村稲木町
fmt.Println(address.Kanji()) // 岡山県大島郡大和村稲木町
fmt.Println(address.Hiragana()) // おかやまけんおおしまぐんやまとそんいなぎちょう
fmt.Println(address.Katakana()) // オカヤマケンオオシマグンヤマトソンイナギチョウ
fmt.Println(address.Prefecture) // 岡山県
fmt.Println(address.Prefecture.Kanji()) // 岡山県
fmt.Println(address.Prefecture.Hiragana()) // おかやまけん
fmt.Println(address.Prefecture.Katakana()) // オカヤマケン
fmt.Println(address.Town) // 大島郡大和村
fmt.Println(address.Town.Kanji()) // 大島郡大和村
fmt.Println(address.Town.Hiragana()) // おおしまぐんやまとそん
fmt.Println(address.Town.Katakana()) // オオシマグンヤマトソン
fmt.Println(address.City) // 稲木町
fmt.Println(address.City.Kanji()) // 稲木町
fmt.Println(address.City.Hiragana()) // いなぎちょう
fmt.Println(address.City.Katakana()) // イナギチョウ
prefecture := gimei.NewPrefecture()
fmt.Println(prefecture) // 青森県
}
注意点としては漢字の名前に対して読みが複数ある場合もあります。例えば上記の「陽菜」だと「はな」と「はるな」の2つがあります。Stringer の実装は漢字出力にしています。テストの際にお役立て下さい。