Edited at

Kibanaを日本語化


はじめに

Kibana 6.7から国際化の機能が入って、まず最初に中国語での表示ができるようになりました。

じゃ日本語化は?というと、7.1まで待たなきゃいけないそうです X-<

機構は入っているんですし、マルチバイトもOKなはずです!

なきゃ、自分で何とかすればいいんです!

-> 7.2以上で日本語リソースが追加されました!


日本語化への道


どうやって表示する?

どうやって国際化するかといえば、設定i18n.localeにロケールを設定するのと、x-pack/plugins/translations/translationsに日本語メッセージのファイルを置くだけです。

設定は良いとして、日本語メッセージのファイルはどう作れば良いんでしょうか・・・


日本語メッセージファイルの作成

まずは中国語のメッセージファイルを確認します。

https://github.com/elastic/kibana/blob/master/x-pack/plugins/translations/translations/zh-CN.json

にあるファイルを見ると、こんな感じになっています。


zh-CN.json

{

(snip)
"messages": {
"common.ui.aggResponse.allDocsTitle": "所有文档",
(snip)
}
}

messagesにメッセージのキーと翻訳されたメッセージの組がだーっと記載されています。

ですが、デフォルトのメッセージは、

https://github.com/elastic/kibana/blob/master/src/legacy/ui/public/agg_response/point_series/_fake_x_aspect.js#L22-L32

にあるように、コード中に埋め込まれています。


_fake_x_aspect.js

export function makeFakeXAspect() {

return {
accessor: -1,
title: i18n.translate('common.ui.aggResponse.allDocsTitle', {
defaultMessage: 'All docs'
}),
params: {
defaultValue: '_all',
},
format: {}
};
}

Javaのロケールごとのリソースのように、enリソースのメッセージが切り出されてればいいんですけど、そんなこともなさそうです。

仕方ないので、泥臭くzh-CN.jsonからキーを抜き出して、コード中からキーを検索して取り出したメッセージから、元となるファイルを作ります。

#やり方はいろいろあるでしょうし、そのうち正式版が出るでしょうから、ここでは特にやり方は書きません。

#メッセージは、1行に収まっているものもあれば複数行で+つかって結合されていたり、ダブルクォートでくくってたり、シングルクォートだったり、バッククォートだったり、途中にクォート入ってたり・・・もうね、正規表現考えるのが面倒で機械的にやるのが面倒。


出来上がったロケールファイルを組み込む

と、ここまでは6.7をベースにやってたんですが、7.0が出ちゃったので途中から7.0用に変更してつくりました。

というのはさて置き・・・

ファイルを組み込んでみます。


RPMの場合

RPMでインストールしている場合は、/usr/share/kibana/node_modules/x-pack/plugins/translations/translationsに出来上がったファイルを配置します。

ファイルは、まぁ、ja-JP.jsonとでもしておきます(てか、これしかないか・・・)。

そして、/etc/kibana/kibana.ymli18n.locale: "ja-JP"を設定して起動します。


Dockerの場合

docker-composeで起動しているのであれば、docker-compose.ymlに以下のような設定を追加します。

8.0の場合は、マウントパスが/usr/share/kibana/x-pack/plugins/translations/translations/ja-JP.jsonとなるようです。


docker-compose.yml

service:

(snip)
kibana:
(snip)
environment:
- I18N_LOCALE="ja-JP"
volumes:
- /path/to/ja-JP.json:/usr/share/kibana/node_modules/x-pack/plugins/translations/translations/ja-JP.json
(snip)


起動確認

起動してみます。

ホーム画面はこんな感じ。

Screenshot_2019-04-12 Kibana.png

ビジュアライズの作成画面とか、

Screenshot_2019-04-12 Kibana(1).png

インデックスの管理画面とか。

Screenshot_2019-04-12 Kibana(2).png

翻訳自体はGoogle翻訳してから、変な翻訳を修正(msをミズとか、max/minのminが分になっちゃったりとか、いらんとこ翻訳してくれやがるので面倒・・・)しているので、まだまだおかしなところがあるかもしれないけど、ま、自分で見る分にはなんとかできているようです。


最後に

さっくり表示できるので、とっとと本家でも出してほしいなぁ・・・