0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SpringBootで国際化対応した際に特定ロケールが翻訳されずハマる

Last updated at Posted at 2019-02-06

この記事は業務でSpringBootアプリケーションを国際化した際に、特定ロケールのメッセージプロパティファイルが認識されずハマった記録です。なお、SpringBootの詳細な説明はたくさんあるので省略します。

環境

  • SpringBoot 1.5.19
  • Java 1.8.0
  • CentOS release 6.9 (Final)

前提条件

先方の要望でロケールの識別はURIに含めるケース(問題とは直接関係ないですがハマり街道の伏線なので)
英語 : http://example.jp/en/foo
韓国 : http://example.jp/ko/foo
台湾 : http://example.jp/zh_tw/foo
etc...

なぜ?

結論からいうと、locale -aで表示されるリストのロケール名をプロパティファイル名にする必要があるということです。前提条件で伏線としたURIの言語コード(小文字)をそのままファイル名に使ったことが問題でした。

誤 messages_zh_tw.properties
正 messages_zh_TW.properties

ローカル開発環境はmacでしたが、そこでは小文字でも問題なくファイルを認識していたんですね。何故macは問題なかったのかはこちらが参考になりました。

最後に

改めて記事にすると単なる凡ミスじゃーんという感じですが、解決にそこそこ時間を割いた問題でした。ニッチだと思いますがいつか誰かの助けになれば幸いです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?