ユーザロケールを切り替える

また「Ymirではどうするのか考えてみた」シリーズ。

ちょっと前にseasar-user MLで「ブラウザロケールを変更せずにユーザロケールを切り替えたい」という質問が出ていたのでYmirではどうするのか考えてみた。

Ymirはコアにロケールの管理機能を持っている。ロケールの管理を行なっているのはorg.seasar.ymir.LocaleManagerインタフェースの実装クラス。
ユーザロケールを切り替えたい場合はこのLocaleManagerを使って操作を行なう。

LocaleManagerインスタンスは、Seasarの流儀と同じくSetterを用意しておけば自動的にDIされる。

public void setLocaleManager(LocaleManager localeManager) {
    localeManager_ = localeManager;
}

あとはLocaleManager#setLocale(Locale)メソッドで自由にロケールを設定できる。もちろんロケールはユーザセッション毎に設定される。