ローカライズメッセージを java のプロパティファイルを使って表示する場合、apostrophe の取り扱いで、問題が起こる事があります。前からある注意点なのですが、最近もまた同じもので引っかかってしまいました。
MessageFormat クラス の String 中での単一引用符(') のエスケープの仕方がちょっと変わっていて、単一引用符(') を2つ重ねて('')エスケープします。ResourceBundle を使って property ファイルから翻訳メッセージを拾い、MessageFormat を使って表示する場合に、このエスケープ処理を property ファイル中でしておく必要があります。Unicode を指定して他の似た文字(\u2032 や \u2018, \u2019)を使う方法もありますが、UTF-8 以外の ISO-8859-1 等で表示する場合がある時は、該当する文字が 8859-1 のキャラクターセットにないので使えません。
逆に MessageFormat クラスを使わずに、ResourceBundle で得たメッセージを表示する場合は、単一引用符はそのまま表示されますので、どの単一引用符でも2つ重ねておけばいいということでもありません。
MessageFormat クラス の「警告」の所には、ローカライズ対象メッセージにコメントを書いておいて翻訳者に知らせるように書いてありますね。
中括弧({}) を使ったメッセージの場合は、MessageFormat を使っている場合が多いでしょうから、これを目安にしてエラーを検出する手もあります。
あと、Java Script の中で ResourceBundle を使って property ファイルから翻訳された文字を使う場合も翻訳には気をつける必要があります。単一引用符(') などの特殊文字が翻訳された文字列の中だけに現れると、そこで Java Script が hang することがあります。単一引用符だけでなく、改行文字(\n)なども、適切にエスケープしてあげないと、望みの表示が得られなくなります。