2012-02-11 13 views
0

jqueryを使用してasp.net Webアプリケーションを開発しました。私たちは動的にhtml.egを作成したjavascriptファイルにすべてのロジックを入れました。 RecentItemContents + = "このストアにはまだアイテムがリストされていません! 「このストアにはまだアイテムがリストされていません」というローカライズが必要です。これを行うにはどうすればよいでしょうか。javascriptファイル内で動的に作成されたHTMLコントロールをローカライズする方法はありますか?

+0

私の最初の衝動は 'RecentItemContents + = noItemsListedMsg;'であり、 'noItemsListedMsg'(と他のメッセージ定数)をどこかに集中して(おそらく別のJSファイルに)定義します。私の2番目のインパルスは、サーバサイドの定数で本質的に同じことをすることです... – nnnnnn

+0

あなたが実際に必要としたのは、入力中に提案されたリンクを読むことでした。 [this one](http://stackoverflow.com/questions/104022/localize-strings-in-javascript)右の「関連する」セクションのリンクをお読みください。私はあなたが答えを見つけることができると確信しています。 –

答えて

0

これまで、サーバーサイドの配列(アソシエイティブ)を登録しています。次に、関連する配列エントリを使用します。

RecentItemContents += stringValues["NoItems"]; 

とサーバ側... ...あまりにも私の頭のオフ

clientScript.RegisterArray("StringValues", ....); 

免責事項:私は、正確な構文サーバー側を思い出すことができません。

0

最も柔軟な解決策は、すべての文字列メッセージを関数呼び出しに変換することです。たとえば:「歓迎、良い一日」は、関数呼び出しwelcomeMessage()に置き換えてください。それが変数よりも優れているか、マップに格納するのは、一度メソッドになると制限がないことを意味し、任意の範囲でカスタマイズすることができます。あなたはそれを遅延ロードすることができます。単に文字列を返すだけで、変数のように動作させることさえできます。

これらをオブジェクトにグループ化し、それらにユニバーサルプロパティを指定することができます。たとえば、メッセージの論理単位ごとに独立したxmlファイルにi18nデータがあるとします。そのオブジェクトがxmlを解析するようにすることができ、各メソッド呼び出しは、解析されたxmlデータからデータを返します。

関連する問題