2016-08-29 14 views
0

フランス語でUnicode値を出力する必要があるという点で、liferay 6.2で1つのサンプルポートレットを作成しました。言語翻訳がliferayで機能していない6.2

私はsrcフォルダにlanguage_fr_FR.propertiesファイルを作成しました。私のJSPページには値が表示されています。 JSPで

results.noresults   = No r\u00E9sultats (language_fr_FR.prop) 

JSPページ

<liferay-ui:message key="results.noresults"/> 

このユニコード変換はLiferayの中で実行されたクラスやメソッドからのrsultatsが

誰も私に教えていないしてくださいすることができ のようなメッセージを取得しています。

答えて

0

何らかの理由で、Liferayの言語プロパティファイルは、通常のJavaエンコーディングISO-8859-1(またはエスケープ文字)ではなく、UTF-8でエンコードする必要があります。

これは実際には予想されるエンコードであることをIDEに説得するのが難しい場合もありますが、機能します。

+0

ありがとう...私はユニコードを解析するための1つのメソッドを作成しました。ここでは、デフォルトの解析メソッドがPropertiesUtil.javaクラスを呼び出す場所を知りたいと思います。ソースコードです。 –

+0

こんにちはオラフ、あなたは教えてくださいクラスまたはメソッドは、このユニコード翻訳liferayで実行している...私はこのコードでオーバーライドしたいので、下のコードはうまくいきます... String string = StringEscapeUtils.unescapeJava( "Tout s \ u00E9 lectionner/d \ u00E9 lectionner "); –

+0

を推測する以外に、頭の上からではなく、この動作を変更するにはextプラグインが必要です。 extプラグインを作成する場合は、とにかく開胸手術を行い、コードに精通している必要があります。 Language *で始まるクラスを気にしてください。少なくとも、プロパティファイルの読み込み先には近いはずです。とにかくextを作成するための内部的な動作についてかなり理解する必要があります(読んでください:この単純な目的のためにそうしないことをお勧めします)。 –

0

正しいプロパティファイルがあることを確認する1つの方法は、xx.properties.nativeに書き込むことです。エンコードに関係なく、ビルド時にnative2asciiタスクを呼び出します。その結果、ASCII以外の文字がUnicodeとしてエンコードされたファイルになります。 地域文字でxxx.propertiesに直接書き込む場合は、UTF-8エンコーディングを使用する必要があります。また、IDEは自動的に時々自動的にそれを行わないようにする必要があります。 Liferay IDEは、最後のバージョンのプロパティファイルを編集するためにUTF-8を使用しているため、プロパティファイルに通常のフランス語のみを書き込んで、Unicodeへの翻訳を忘れる必要があります。とにかくそれは理論です。私はこれでいくつかの頭痛を抱えてきた。

+0

ありがとう...私は、ユニコードを解析する1つのメソッドを作成しました。私は、デフォルトの解析メソッドがPropertiesUtil.javaクラスを呼び出す場所を知りたいと思います。ソースコードです。 –