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)

起動確認

起動してみます。

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

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

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

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

最後に

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