ASP.NET MVC5でJavascriptの多言語対応

概要

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 件のコメント :

コメントを投稿