0

次のように定義されたナビゲーターにいくつかの異なるタブがあります:(クライアント固有のドメインを削除しました)

<s:NavigatorContent xmlns:fx="http://ns.adobe.com/mxml/2009" 
                    xmlns:s="library://ns.adobe.com/flex/spark" 
                    xmlns:mx="library://ns.adobe.com/flex/mx"
                    xmlns:container="com.*****.shop.admin.container.*"
                    width="100%" height="100%"
                    implements="com.*****.common.container.IScreen"
                    xmlns:services="com.****.shop.admin.services.*"
                    label="Service Types">

さまざまなロケール用のリソース バンドルがあります。en_US は次のようになります。

ServicesScreen.label=Service Types

私がこれをやろうとすると、うまくいきません:

...    
... 
label="{resourceManager.getString('resources','ServicesScreen.label')}"

リソース バンドル エントリを取得する代わりに、GUI に次のような奇妙なものが表示されます。

Shop0.ShopSkin9._ShopSkin_Group1.contentScroller.ScrollerSkin13.contentGroup.vsMain.AdminView154.SkinnableContainerSkin159.contentGroup.subNavItems.opCodeScreen

私のリソースバンドルは、フォーム入力フィールドの横にあるラベルなど、他のケースでも機能します...ただし、コードはコンパイルされ、実際にはエラーはスローされません (コンパイル時または実行時)。値を変数に割り当てて、その変数をラベル フィールドで使用しようとしましたが、コンパイル エラーが発生しました。

コンポーネントの作成完了時にセッターメソッドを呼び出してみましたが、それでも問題は解決しませんでした。

タブ ラベルをローカライズするにはどうすればよいですか? また、実行時に動的にローカライズできますか?

御時間ありがとうございます!

4

1 に答える 1

0

クレジットはSunil Dに送られますが、私はこれに自己回答すると思います。テスト中に以前に機能しなかった理由はわかりません。最初に何かを見逃したに違いありませんが、ここに行きます. 最初に追加しました:

creationComplete="init(event)">

そして、そのメソッド本体で私がやった:

    protected function init(event:FlexEvent):void
    {
        this.label = resourceManager.getString('resources','opCodeScreen.title');
    }

そして、それは魅力のように機能します。正直なところ、今朝まったく同じテストを行ったと確信していますが、そうではないと思います。スニール コメントを回答にしたい場合は、先に進んで受け入れます。

編集: 実行時にテキストを変更し、currentStateChangeaforementionned メソッドを呼び出すことを追加します

乾杯!

于 2013-01-10T19:02:31.403 に答える