問題タブ [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 投票する
2 に答える
923 参照

internationalization - select を messageformat で使用する

PHP でMessageFormat (intl拡張機能の一部)を使用しています。拡張機能は ICU 4.6.1 を使用します。

ただし、問題は PHP にはありません。

最初のトークンを決定して、文字列の一部をフォーマットしたいと思います{0}

  • {0}がの場合0、テキストはa
  • の場合1、テキストはb
  • 他のすべてのケースでは、テキストはc

pluralこれは, =0forケースで実行できることは理解してい0ますが、私のテストではうまくいかないようです。これはおそらく、オフセットとカスタムの複数形が 4.8 で導入されたためです。

したがって、次を使用してそれを達成しようとしていselectます:

しかし、何らかの理由で、メッセージ フォーマッタは上記をフォーマットできず、返されましたfalse(フォーマットできませんでした)。

これはなぜですか?構文に問題はありますか?


クイック更新: 掘り下げた後、select を使用して数字で始まる値を一致させることはできないようです。これを回避する方法はありますか?

別の更新: ICU 49.1.2 およびintl3.0.0a2 に更新されました。=0、などを使用できるようになり=1ましたが、これは機能しなくなりました (以前は機能していました):

これが機能する場所:

0 投票する
5 に答える
11770 参照

java - JTableを使用してMessageFormatで複数のヘッダー行を印刷する方法

と呼ばれるテーブルがtableあり、そのテーブルにはデータが入力されています。また、これMessageFormatを印刷するためのヘッダーとして使用したいヘッダーもあります。JTableMessageFormat

ヘッダーに3行を印刷したいのですが、1つは製品、ジョブ、タスク用です。

私がこれを印刷する方法tableは次のようです:

ヘッダーを3行に分けて印刷する方法がわからないようです。を使用し\nて新しい行を作成しようとしましたが、うまくいかないようです。

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

jsf - メッセージバンドルを使用した JSF のローカリゼーションと複数形化

アプリケーションの出力をローカライズするために、メッセージ バンドルを使用しています。複数形を追加したいのですが、メッセージ プロパティ ファイルとメッセージ パラメータを使用してそれを実現する方法はありますか?

そんな感じ:

結果として:

0 豆、1 豆、2 豆、...

もちろん、この形式label.bean={0} beanはカウントに対して機能しますが、の値に応じて複数の「s」を取得するにはどうすればよい{0}ですか?

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

java - {0} と {0,number,integer} の違いは何ですか

私は Java のMessageFormatユーティリティについてもっと理解しようとしています。私たちのコードベースや他の場所の例では、 と の両方{0}{0,number,integer}数値に使用されていますが、どちらが望ましいかはわかりません。

違いを印刷する簡単なテスト:

出力:

{0}これは私を驚かせました。どちらかといえば、 が数値に対して何もせず、{0,number,integer}適切にローカライズすることを期待していたからです。代わりに、両方ともローカライズされますが、明示的な形式は常に en_US ローカライズを使用しているようです。

リンクされたドキュメントによると、明示的な形式が使用{0}されている間、取得されます。しかし、それらを直接呼び出すと (出力の最後の列)、両方とも同じように見え、両方とも正しくローカライズされます。NumberFormat.getInstance(getLocale())NumberFormat.getIntegerInstance(getLocale())

ここで何が欠けていますか?

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

java - メッセージフォーマットが機能しない

使用時にメッセージ形式がこの文字列で機能しない理由を理解できませんhtml.format({"something","someotherthing"});

0 投票する
3 に答える
1983 参照

java - Java MessageFormat - インデックスの値を置き換える

私はこのような文字列を持っています:

0 番目と 3 番目のインデックスの値を最初に置き換える必要があります。後で、1 番目と 2 番目のインデックスが (既に部分的にフォーマットされた文字列で) 置き換えられ、最終的に使用されます。

私はChoiceFormatを少しいじりましたが、それをMessageFormatクラスでパイプして、目的を達成することができませんでした。

どんなポインタでも大歓迎です!

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

java - 適切な複数形による Java 国際化 (i18n)

Java の標準 i18n システムを複数形の ChoiceFormat クラスとともに使用するつもりでしたが、一部の言語 (ポーランド語など) の複雑な複数形ルールを処理できないことに気付きました。英語に似た言語しか扱っていないのでは、ちょっともったいないですよね。

正しい複数形を実現するには、どのようなオプションがありますか? それらを使用することの長所と短所は何ですか?

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

php - MessageFormat 文字列のパラメーターをオプションにすることはできますか?

MessageFormatterクラスを使用して、翻訳された文字列をフォーマットし、エンド ユーザーに表示しています。

問題は、HTML マークアップを最終結果に挿入する必要があることです。たとえば、文字列は だけかもしれませんPeter liked a photoが、最終結果にマークアップを含める必要があります。

多くの調査を行った後、特にこれらの質問は

私はこのアプローチを使用することにしました:

どこ:

これは、少し面倒であることに加えて、かなりうまく機能しています。ただし、マークアップをリソース バンドル文字列に含めたくない主な理由は、HTML タグなしで文字列を返したい場合があるためです。

問題は、1 つのパラメーター (Peter) を に渡すだけでMessageFormatter、パラメーターが不足していると不平を言うことです。

私ができる回避策の1つは、これを渡すことです({1}to{5}は空の文字列になります):

ただし、これは非常に面倒で、あまり良い方法ではありません。

とにかく、メッセージ形式の文字列でパラメーターをオプションとしてマークすることはできますか (基本的に、パラメーターの値が渡されない場合はパラメーターを無視するだけです)。

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

php - MessageFormat を使用して、引数の最後の子音に依存する韓国語の文字列をローカライズする