概要
ASP.NET MVC5で多言語Webサービス作り、JavaScript内のメッセージもリソースファイルの値を表示するようにした話。
cshtmlにてonload時にオブジェクト作成&オブジェクトのmessageプロパティにバインドさせたいキーとリソースファイルの値をセットすることで対応した。
はじめに
仕事で作っているサービスが海外展開も視野に入れているため多言語対応が必須です。.Netはそのへんも準備していくれていて、リソースファイルを対応言語分作ればいいとのこと。cshtmlはリソースファイルからのバインドに成功しましたが、どうもJavaScriptは無理っぽそう。(単なるJavaScriptなので.Net F/Wからしたら知ったこっちゃないんでしょうね、多分)
が、更新ボタン押下時の終了メッセージなどはJavaScript側で出力しています。当然こちらの内容も多言語で表示しなければなりません。
対応方法
下記の方法で対応しました。
@cshtml
ロード時にメッセージ出力用のオブジェクトを生成
メッセージ出力オブジェクトにリソースファイルの内容を設定
<script> $(function () { var message = {}; // 多言語対応(Resourceファイル)の反映はJavaScriptでは行えないため、cshtmlにて行う message.error = '@HttpContext.GetGlobalResourceObject("Resource", "Message_Error")'; }); </script>
@JavaScriptファイル内
- メッセージ出力時はメッセージ出力オブジェクトの該当プロパティを使う
alert(message.error);
0 件のコメント :
コメントを投稿