2016-11-07 6 views
0

私たちの現在のプロジェクトは、ASP.Net MVC with Razorにあります。 いくつかのthousendの翻訳でResXファイルを使用しています。 C#とAsp.netカミソリこれは、HTMLと非常に簡単ですで :TypescriptでC#-Ressources(ResXファイル)を使用する最も良い方法は?

<div>@Ressources.Local.Test</div> 

今、私はJavaScriptを書いたとき、私はnormalyこのようなカミソリでCSHTMLファイル内にこれをやった:

が、作品
<script>alert('@Ressources.Local.Test');</script> 

少し醜いようだ...

数週間前、私たちはTypescriptをスタードし、もちろん(ほぼ)すべてのJavaScriptコードをTSファイルに除外した。私たちが活字体へのC#からressourcesを取得するには、ここで見つける

唯一の解決策は、「ハック」することです:

var ressourceTest = "@Ressource.Local.Test"; 

私たちはちょうどjavascriptの変数を含むいるressources.cshtmlファイルを作りました

まず、このressource.cshtmlを_layout.cshtmlにロードします。 追加、我々は自己を持っている私たちのprojectDeclarions.d.tsに活字するJavaScriptからジャンプして、この変数のための自作declarionが必要になります。

var ressourceTest:string; 

そして今、我々は我々のtypescriptファイルのtest.tsでressourceを使用することができます。

alert(ressourceTest); 

あなたは「ハック」または「回避策」取り組んでいるが、likly数thousendのressourcesのために私たちを殺すように見える見ることができるように...それは維持期間と作業が高い、手作りの...

もっと良いアイデアを教えてください。

答えて

0

私はこれについていくつかの良いアイデアを見てきました。

JSONエンドポイントをMVCアプリケーションに提供して、翻訳のチャンクを与えることができます。どのように細かくしたいのかを決めますが、本質的にJSONは翻訳や一連の翻訳をシリアル化して送り返します。これは何百ものものと大きなビューを詰めるのを避けるでしょう。

もう1つの方法として、翻訳をビューに配置して文脈上で利用できるようにする方法があります。だから、あなたは、サーバーにいくつかのAJAX呼び出しをトリガーするために使用されているボタンを持っていたあなたは「更新が働い」か、属性をインラインに置くことができる「更新に失敗しました」と言う必要がある...

<button ... data-msg-success="Saved OK" data-msg-failed="A problem occurred" /> 

そして、あなたならばこれらの属性にリソースを設定できます。

+0

おかげさまで、HTMLレンダリングの最後のアイデアはすべての場所で簡単にできるわけではありませんが、あなたのjsonアイデアは妥当と思われます...これがもう少し機能する方法を説明できますか? –

関連する問題