問題タブ [messageformat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
107 参照

java - 名前付きメッセージ パラメータ

MessageFormat次のような状況で、インデックス付きパラメーターによく使用していました。

次の形式のメッセージを処理する必要がある状況に遭遇しました。

そのため、値はインデックス化されなくなり、プレースホルダーは文字列になります。この状況をどのように処理し、のような同じ機能を持たせることができMessageFormatますか? MessageFormatパラメータがインデックス化されていない場合、解析例外をスローします。

ありがとうございました。

0 投票する
1 に答える
410 参照

java - Java MessageFormat 文字列の検証

翻訳中の Play 2 アプリに取り組んでいます。Play はMessageFormat舞台裏で Java を使用しているため、かなりの数のプロパティ値があります。

my.interface.key={0,choice,0#{0} families|1#1 family|1<{0,number,integer} families}

これの翻訳を次の形式で受け取りました。

my.interface.key={0,choix,0#{0} familles|1#1 famille|1<{0,nombre,entier} familles}

明らかでない場合、その一部は翻訳されていないはずですが、間違いは時々発生します。これで十分ですが、アプリが実行時にIllegalArgumentException: unknown format type at ...例外でクラッシュする前に、これらの文字列を検証する方法が必要であると確信しています。できれば Git コミット フック、または SBT ビルド タスクを使用します。

もし私がこれを自分でハックするなら、おそらくこれらのプロパティファイルを読み込んで、それぞれの値について実行MessageFormat.format(value)が失敗しないことをチェックするツールを作るでしょう。

理想的には、Perl (または Python) スクリプトを介してこれを行うことができます。悲しいことに、私が見つけることができる唯一の非 Java ライブラリである CPAN のText::MessageFormatは、複数形など、最もエラーが発生しやすい形式をサポートしていないようです。

飛び込む前に、既存のツールに基づいてより賢明なアプローチを提案できる人はいますか?

0 投票する
4 に答える
243 参照

ruby - Java MessageFormat に相当する Ruby はありますか?

次の形式の文字列があります。

Hello {0}, today is {1} and the time is {2}. Will you be eating {3}?

array を指定する["sir", "Monday", "12:00", "tacos"]と、この文字列は次のようにフォーマットする必要があります。

Hello sir, today is Monday and the time is 12:00. Will you be eating tacos?

Rubyには、これを行うための何らかの組み込みメソッドがありますか? それとも宝石はありますか?それとも、弦を交換するだけですか?

編集: これらの文字列を編集することは許可されていないことを付け加えておきます。したがって、sprintf のようなソリューションは機能しません。

0 投票する
1 に答える
441 参照

java - MessageFormat での「引数の構文が正しくありません」

htmlの助けを借りて満たされたこの構文を取得しましたMessageFormat

私が電話した場合:

私は得る:

styleセクションがなければ、すべて正常に動作します。属性keyword内で使用しましたか?style

ありがとうございます。

ステファン

0 投票する
1 に答える
758 参照

java - 一重引用符のエスケープに関する MessageFormat.format の問題

バグを見つけたと思います。ただし、どこにあるのかわからず、それを修正するための最良の方法についての提案を探しています。

これは、SQL ビュー スクリプトを作成するコードです。

私の理解では、シングルティックをダブルティックでエスケープする方法がわかります。'''' は結果の文字列で '' になります。

このコードを Android エミュレーターで実行すると、次の文字列が得られます。

実際のデバイスで実行すると、次のようになります。

どこかのバグのようです。スクリプトの 3 行目は、'' と ''' の違いを示しています

0 投票する
0 に答える
113 参照

java - java.util.MessageFormat、java.util.Formatter、および java.time.*/etc の相互作用

以前に同様の質問があったことは知っていますが、まったく同じではありません...ローカライズされた構成文字列の推奨される方法は何ですか? java.util.Formatter とショートカット、または java.text.MessageFormat を使用しますか? Javaチュートリアルでは後者を推奨していることを知っています。しかし、特に java.text.MessageFormat が新しい java.time API をサポートしていないようで、これは非常に残念なことです。

0 投票する
2 に答える
806 参照

java - 英語以外のメッセージを解析するときの MessageFormat 解析エラー

私のアプリケーションは、XSD ファイルに基づいて XML を検証します。この検証の結果はエラー メッセージです。これをユーザーに表示するために、java.text.MessageFormat を使用してこのエラー メッセージを解析します。問題は、メッセージが英語の場合は正常に解析できますが、メッセージがポルトガル語 (ブラジル) の場合は次のエラーが返されることです。

これが私のコードです:

}

別の場所を指定して ResourceBundle を取得し、MessageFormat をインスタンス化しようとしましたが、いずれも機能しませんでした。

前もって感謝します。

ギエルメ

0 投票する
1 に答える
363 参照

sockets - アプリケーション層プロトコル - 異なるサイズのパケット

Instant Messaging のために、TCP の上に独自のアプリケーション層プロトコルを定義したとします。メッセージにはパケット構造を使用しました。対称 (AES) および非対称 (RSA) 暗号化を使用しているため、異なるメッセージ タイプに対して異なるパケット サイズを取得します。今私の質問に。

単一のアプリケーション層パケットを受信したことをソケットから読み取る方法は? どのサイズを指定すればよいですか?

前もって感謝します。

私は2つのアプローチを念頭に置いています。

  1. 実際のパケット サイズを表す一定量のバイトを TCP ストリームから読み取り、最後に、以前に収集されたバイト サイズをストリームから再度読み取ります。

  2. ストリームから最大パケット サイズを読み取ります。取得したバイトの実際のサイズを確認し、それがどのメッセージ タイプであったかを判断します。

さて、より一般的な質問です。パケット サイズ、暗号化方式、受信者、送信者などのメタデータを提供する必要がありますか? はいの場合、これらのメタデータも暗号化する必要がありますか?