ユーザロケールを切り替える
また「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)メソッドで自由にロケールを設定できる。もちろんロケールはユーザセッション毎に設定される。