LoginSignup
4
3

More than 3 years have passed since last update.

Kibanaを日本語化

Last updated at Posted at 2019-04-12

はじめに

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が分になっちゃったりとか、いらんとこ翻訳してくれやがるので面倒・・・)しているので、まだまだおかしなところがあるかもしれないけど、ま、自分で見る分にはなんとかできているようです。

最後に

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

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3