2013-03-08 8 views
7

私は、おそらく言語ローカリゼーションを必要とする意図で作成されたMVC 4アプリケーションを使用しています。そのため、.resxファイルが大量に使用され、プロジェクト全体に参照が埋め込まれています。明らかになったように、このアプリは英語圏のユーザーだけが使用し、実際に他の言語はロードされていませんでした。私たちが今持っているのは、ページにテキストを配置し、言語は、.jsファイルやDB内の参照データなどのリソースファイルに直接アクセスできない場所にハードコードされています。言語ローカリゼーションを.resxファイルから自動的にリバースエンジニアリングすることはできますか?

多くのコピーと貼り付けが行われていないため、リソースファイルから英語の値を抽出し、その参照をビューに置き換える自動化された方法はありますか?完璧な世界にはこれを行うためのツールがあります。確かにという概念的にのようなものはありますか?

答えて

1

スクリプトを作成する必要があります。私は、O2 Platform AST操作Mono.CecilとモノラルCecil APIで同様のことをしました。

あなたは私の使用して小規模なプロジェクトを与える場合は(RESXファイルとMVCのビュー)必要なことができます私はあなたに

1

をコードスニペットの例を表示することができます私はこれの世話をするだろう何かを見ていません。私の最初の考えは、ほとんどの「すぐに使える」ソリューションで提示できるローカリゼーションの問題が原因です。

これは遠くにフェッチされているかもしれませんが、それはショットを与えます。リソースファイルを保持するアセンブリをロードし、プロジェクト内のすべてのファイルをループし、リソースキーを値に置き換えるC#アプリケーションを記述できますか?

あなたが言ったように、スクリプト化することは可能ですが、これは私の心の中でタスクを完了するのが最も簡単で最も重大な方法のようです。あなたが話しているリソースの数によっては、明らかに、コピー/ペーストする方が簡単で安全かもしれません。

0

衛星アセンブリ..すべてのアプリケーションリソースをプロジェクトに配置している場合は、実装するデフォルト以外の言語を作成します。たとえば、fr_ca.ErrorMsg | en_gb.ErrorMsgおよびen_Us.ErrorMsg。デフォルトの言語はメインのThread.CultureInfoで指定できます。en_usの場合は、すべてのエントリが必要なen_usファイルを入力し、その他のリソースはデフォルトのresource-> en_usに存在しない場合にのみロードされます。

+0

問題は、ローカライゼーションを追加しないで_remove_できるかどうかです。 –

+0

私は事前に謝罪します。ローカリゼーションの削除、既存のローカリゼーションがある場合は、デフォルトの言語リソースを使用して残りを削除します。またはアプリケーションから言語リソースを削除し、そこから再構築してください:( –

関連する問題