情報応用演習Ⅰ(2024)

【T4a】モデルとビューの連携(前編)(7/7)

プロジェクトタイプASP.NET Core Web アプリ(Model-View-Controller)
プロジェクト名T4a
ソリューション名PIT4
ターゲットフレームワーク.NET 8.0(長期的なサポート)
最上位レベルのステートメントを使用しない使用する(チェックオフ)
注意
  • 本ページの作業内容は 前のページまでの続き になっていることに注意せよ.
    • 先に前のページまでをすべて読み,指示されている作業を済ませてから本ページを読むこと.
    • プロジェクトの作成作業については準備作業を参照せよ.

4a-7. デフォルトの検証メッセージの日本語化

さて,現在の ASP.NET Core では指定しない限りデフォルトのエラーメッセージは英語となってしまう(_).われわれ技術者は 英語のメッセージであっても気にせずに内容を読み取るべきであるが,このウェブアプリを使用するエンドユーザーにとってはこれは不便である. そこでこれらのエラーメッセージを部分的に日本語化するライブラリを用意した.以下の手順でインストールしよう. このライブラリはこの授業独自のパッケージソース(≒ライブラリの置き場所)に置いてあるので,NuGetを設定してパッケージソースを 追加する必要がある.以下の手順でこの作業を行おう.

  • 【手順】NuGetのパッケージソースに''knzw.tech''を追加する
    1. Visual Studio を起動し,「ツール」→「オプション」をクリックする(_).
      • 「オプション」ダイアログが開く(_).
    2. 「オプション」ダイアログで,以下のように操作する.
      1. 「NuGetパッケージマネージャー」→「パッケージソース」を開きボタンをクリックする(_).
      2. 項目が追加されるので,以下のように入力して「更新」ボタンをクリックする(_).
      3. _のように表示されれば完了である.
        • 「OK」ボタンをクリックして「オプション」ダイアログを閉じる.
Nugetパッケージソースの設定

上記の作業をしたら,NuGetを使って以下のパッケージをインストールしよう.ただし画面右上の「パッケージソース」を knzw.techに変更する必要がある(NuGetについてはチュートリアル【T2d】を参照せよ).

  • KnzwTech.AspNetCore.ResourceBasedLocalization.ja
KnzwTech.AspNetCore.ResourceBasedLocalization.jaのインストール

このパッケージをインストールしたうえで Program.cs に_に示す内容を追記しよう.

Program.csの変更内容
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using KnzwTech.AspNetCore.ResourceBasedLocalization;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews(opt => opt.EnableDefaultErrorMessagesFromResource());

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

ここまで入力したら実行してみよう. 先ほどと同様に入力欄の内容を空にしてから「送信」ボタンをクリックすると, _のように日本語でメッセージが表示されるはずである.

実行結果
このライブラリについての注意

KnzwTech.AspNetCore.ResourceBasedLocalization.jaパッケージはこの授業のために作成したものである. このライブラリはややアドホックな方法で実装されているため,将来的には使用できなくなるかもしれない. ASP.NET Core のデフォルトの検証エラーメッセージの国際化対応に関して,.NET 8.0 に取り込むか否か議論は なされたようであるが結局取り込まれなかった(参考).

なお手動設定したエラーメッセージであれば容易にローカライズ可能である→Globalization and localization in ASP.NET Core - Microsoft Docs

このライブラリについての注意 : 閉じる

ここまでを確認できたら1つ目のチュートリアルは完了である. 次に進む前に,混乱を防ぐため Visual Studio のエディタをすべて閉じておこう.Visual Studio のいずれかのエディタのタブを右クリックして 「すべててのドキュメントを閉じる」をクリックすれば,エディタをすべて閉じることができる

Last updated on 2024-04-24
Published on 2024-04-24

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.