2016-06-20 125 views
3

私の現在のプロジェクトでは、文字列にプロパティファイルを使用しています。これらの文字列は、MessageFormatを使用して「書式設定」されます。残念ながら、MessagFormatは一重引用符を扱い、多くのアポストロフィを使用するフランス語などの言語では少しの障害になります。例えばMessageFormatでシングルクォートを使用する方法

、我々はこのエントリ

login.userUnknown=User {0} does not exist 

これはフランス語に翻訳されても、我々が得る持っているとします

login.userUnknown=L'utilisateur {0} n'existe pas 

これを、MessageFormatのが好きではないが...

そして、私は、二重引用符を使用しなければならない、すなわち、次のように好きではない:

login.userUnknown=L''utilisateur {0} n''existe pas 

私が好きではない理由は、どこでもスペルチェックエラーが発生するからです。

質問:下記の指示に代わるものを探していますが、引用符を二重にする必要はありませんが、依然として位置的なプレースホルダ({0}、{1} ...)を使用しています。私が使うことができるものは他にありますか?

MessageFormat.format(Messages.getString("login.userUnkown"), username); 
+0

これはエラーでした:私は実際には 'MessageFormat'を意味しました。 – AbVog

答えて

1

いいえ私たちがjavadocに従ってそれを行う方法は他にありません。回避策として

A single quote itself must be represented by doubled single quotes '' throughout a String

、あなたがプログラムでそれをやってreplace("'", "''")を使用するか、この特定のユースケースのためにあなたが代わりにアポストロフィ文字を使用することができである、それは単一引用符を使用するよりも、実際に、より正しいだろうされて行うことができます。

関連する問題