0

here で説明されている i18n を行う Uibinder の方法があります。
次に、GWT i18n に関するこの提案があります。

最初の解決策でいくつかの問題が発生しているため、別の方法を検討しています。両方の方法の長所と短所を知りたいので、どちらを選択すべきかがわかります。
お知らせ下さい。

4

1 に答える 1

4

最初の解決策は非常に冗長で、特定のフォルダーにローカリゼーション ファイルを配置する必要があり、悪夢のようなものとして説明されていますが、(ランタイム) 変数を含むテキストをサポートしています。2 番目のソリューションは、メッセージ内の変数をサポートしていませんが、はるかに簡単に使用できます。

2 番目のソリューションは、2 つのユース ケースをサポートします。これは、彼らが両方のソリューションを探す方法です。

平文:

解決策 1:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
    ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
    ui:generateLocales="default">
  <div><ui:msg key="helloWorld" description="Greeting">Hello, world.</ui:msg></div>
</ui:UiBinder>

解決策 2:

<ui:with field='i18n' type='x.y.client.i18n.MyMessages' />
....
<div><ui:text from="{i18n.helloWorld}" /></div>

ソリューション 1 では、タグ内のテキストがデフォルトのテキストになり、説明は description 属性にあります。MyMessages2 番目のソリューションでは、それを拡張するインターフェイス クラスに追加しますMessages

静的メソッドの引数:

解決策 1:

<th title="Gross receipts">
  <ui:attribute ui:name='title' ui:description='Tooltip text for gross column'/>
  ...
</th>

解決策 2:

<th title="{i18n.grossReceiptsTitle}">...</th>

ソリューション 2 では、引数を渡すなどのメッセージのより高度な使用法はできませんが、いつでもフォールバックして、initWidget呼び出し後にコンストラクターにそれらを追加できます。

于 2012-07-26T16:03:51.477 に答える