雑文発散

追記
過去の日記

2016-11-30 [長年日記]

[] 11月が終わったということは、転職して11ヶ月が過ぎたということ

「この1年で成果が出せたのか?」という自問自答がいよいよ本格化してきている。

でも、残り1ヶ月で画期的な成果が出せる訳でもないので、この先もこれまで続けてきたことを地道に継続するのみかなとも思う。

(特にオチもない、ただの感想だ)


2016-11-29 [長年日記]

[Crowi] react-i18next の使い方の理解が少し進んだ

[i18next.com](http://i18next.com] のドキュメントを読み進めていくうちに、404 を見つけたので pull request を投げた。そして取り込まれた。

このドキュメントサイトは、Gatsby という「Markdown などの plain text を React でくるんで、リッチなインターフェイスを持ったサイトを作るシステム」を使っていた。全く知らなかったけど、GitHub Star が 6000 を超えてたりするので、有名なヤツみたいだ。

それはそれとして、手元で react-i18next がうまく動かないなーと思っていた原因がわかった。

react-i18next を使う React コンポーネントを export するときの記述が間違っていたのだ。

import React from 'react';
import { translate } from 'react-i18next';

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    const { t } = this.props;
    return (
      <div>{ t('WANT TO TRANSLATE SENTENCE') }</div>
    );
  }
}

// export default MyComponent; // これだとダメ
export default translate()(MyComponent); // こっちが正解

次は各言語用の定義ファイルをどうやって読むか。React コンポーネント側から xhr で取得する方法( i18next-xhr-backend )があるので、それを使ってリクエストを投げるのが良いのかなと思っている。


2016-11-28 [長年日記]

[Crowi] React で国際化対応が可能になるはずの react-i18next に悩んでいる

昨日の「Crowi の国際化対応に i18next を使ってみた」の続き。

Crowi は Express + Swig による HTML テンプレートに React コンポーネントを組み入れた構成になっていて、昨日の作業では「HTML テンプレート」部分の国際化について対応を進めていた。

React コンポーネント部分でも国際化が必要になってくるので、いまは react-i18next を調べている。

npm install react-i18next を実行して、サンプルを見ながら実装を試しているけど、いまひとつピンと来なくて、うまくいかない。

もうちょっと調べよう。


2016-11-27 [長年日記]

[Crowi] Crowi の国際化対応に i18next を使ってみた

いまの会社では「US 市場で勝とう!」という思いが強く、海外にも拠点を作っている。会社に JOIN してくる人たちも国際色豊かになっていて、全員が日本語を理解する訳ではない。そういう中で Crowi を使っているのだけど、残念ながら Crowi には日本語で書かれた UI が多い。おそらく彼ら彼女らには使いにくいだろう。

「US で勝つ」ためには、そういう「些細な使いにくさ」が邪魔をしちゃダメだなと思って、少し前からメッセージの国際化手段を考えていた。でも、別の機能の実装もしていて、なかなか時間が取れなかったのだけど、ようやくその「別の機能」の実装に目処がついて、国際化対応をマジメに考えた。

「node i18n」あたりで検索して、良さそうなライブラリを探したところ、i18next にたどり着いた。

サイトにはイマドキっぽいライブラリのアイコン画像も並んでいるし、GitHub リポジトリの Star の数もかなりある。commit も継続的にあるし、これなら大丈夫かなと思って選択してみた。

そして作ってみた pull request がこれ。

ユーザーが日々触る部分の UI は国際化したつもり。言語の切り替えはブラウザの言語設定に依存していて、変更用の UI は今のところ存在していない。

あとは管理者系の UI と React コンポーネント部分の UI の国際化かな。React 部分は英語でのメッセージが多いので、ここは逆に日本語化もしたいところ。


2016-11-26 [長年日記]

[Emacs] Emacs で PlantUML なら puml-mode ではなく plantuml-mode

しばらく前に「Emacs で PlantUML + puml-mode を使ってみた」という日記を書いたのだけど、そこで記載していた puml-mode の GitHub リポジトリを見に行くと、いきなり大きく「DEPRECATED」の文字が。

ええっと思いつつ、README を読んで見ると「これからは plantuml-mode を使って」みたいなことが書いてある。

ということで、Cask で plantuml-mode をインストールして、各種設定変更をして利用開始。変更といっても、puml- の prefix を plantuml- に変えるだけで済んだ。