Standard
- .NET Core SDK 5.0
- Bản xem trước cộng đồng Visual Studio 2019
Khởi tạo dự án
Tệp index.cshtml
1 2 3 4 5 6 7 8 9 10 11 | @inject Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer localizer @{ ViewData["Title"] = "Home Page"; } <div class="text-center"> <h1 class="display-4">@localizer["HelloWorld"]</h1> <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p> </div> |
Tệp Startup.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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <span class="token keyword">using</span> <span class="token namespace">Microsoft <span class="token punctuation">.</span> AspNetCore <span class="token punctuation">.</span> Builder</span> <span class="token punctuation">;</span> <span class="token keyword">using</span> <span class="token namespace">Microsoft <span class="token punctuation">.</span> AspNetCore <span class="token punctuation">.</span> Hosting</span> <span class="token punctuation">;</span> <span class="token keyword">using</span> <span class="token namespace">Microsoft <span class="token punctuation">.</span> AspNetCore <span class="token punctuation">.</span> Mvc <span class="token punctuation">.</span> Razor</span> <span class="token punctuation">;</span> <span class="token keyword">using</span> <span class="token namespace">Microsoft <span class="token punctuation">.</span> Extensions <span class="token punctuation">.</span> Configuration</span> <span class="token punctuation">;</span> <span class="token keyword">using</span> <span class="token namespace">Microsoft <span class="token punctuation">.</span> Extensions <span class="token punctuation">.</span> DependencyInjection</span> <span class="token punctuation">;</span> <span class="token keyword">using</span> <span class="token namespace">Microsoft <span class="token punctuation">.</span> Extensions <span class="token punctuation">.</span> Hosting</span> <span class="token punctuation">;</span> <span class="token keyword">namespace</span> <span class="token namespace">Localization</span> <span class="token punctuation">{</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Startup</span> <span class="token punctuation">{</span> <span class="token keyword">public</span> <span class="token function">Startup</span> <span class="token punctuation">(</span> <span class="token class-name">IConfiguration</span> configuration <span class="token punctuation">)</span> <span class="token punctuation">{</span> Configuration <span class="token operator">=</span> configuration <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">public</span> <span class="token return-type class-name">IConfiguration</span> Configuration <span class="token punctuation">{</span> <span class="token keyword">get</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">public</span> <span class="token return-type class-name"><span class="token keyword">void</span></span> <span class="token function">ConfigureServices</span> <span class="token punctuation">(</span> <span class="token class-name">IServiceCollection</span> services <span class="token punctuation">)</span> <span class="token punctuation">{</span> services <span class="token punctuation">.</span> <span class="token function">AddLocalization</span> <span class="token punctuation">(</span> opt <span class="token operator">=></span> <span class="token punctuation">{</span> opt <span class="token punctuation">.</span> ResourcesPath <span class="token operator">=</span> <span class="token string">"Resources"</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> services <span class="token punctuation">.</span> <span class="token function">AddMvc</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> <span class="token function">AddViewLocalization</span> <span class="token punctuation">(</span> LanguageViewLocationExpanderFormat <span class="token punctuation">.</span> Suffix <span class="token punctuation">)</span> <span class="token punctuation">.</span> <span class="token function">AddDataAnnotationsLocalization</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> services <span class="token punctuation">.</span> <span class="token function">AddControllersWithViews</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">public</span> <span class="token return-type class-name"><span class="token keyword">void</span></span> <span class="token function">Configure</span> <span class="token punctuation">(</span> <span class="token class-name">IApplicationBuilder</span> app <span class="token punctuation">,</span> <span class="token class-name">IWebHostEnvironment</span> env <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> env <span class="token punctuation">.</span> <span class="token function">IsDevelopment</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> app <span class="token punctuation">.</span> <span class="token function">UseDeveloperExceptionPage</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> app <span class="token punctuation">.</span> <span class="token function">UseExceptionHandler</span> <span class="token punctuation">(</span> <span class="token string">"/Home/Error"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> app <span class="token punctuation">.</span> <span class="token function">UseHsts</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> app <span class="token punctuation">.</span> <span class="token function">UseHttpsRedirection</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> app <span class="token punctuation">.</span> <span class="token function">UseStaticFiles</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> app <span class="token punctuation">.</span> <span class="token function">UseRouting</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> app <span class="token punctuation">.</span> <span class="token function">UseAuthorization</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token class-name"><span class="token keyword">var</span></span> supportedCultures <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token punctuation">[</span> <span class="token punctuation">]</span> <span class="token punctuation">{</span> <span class="token string">"en"</span> <span class="token punctuation">,</span> <span class="token string">"vi"</span> <span class="token punctuation">}</span> <span class="token punctuation">;</span> <span class="token class-name"><span class="token keyword">var</span></span> localizationOptions <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">RequestLocalizationOptions</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> <span class="token function">SetDefaultCulture</span> <span class="token punctuation">(</span> supportedCultures <span class="token punctuation">[</span> <span class="token number">0</span> <span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> <span class="token function">AddSupportedCultures</span> <span class="token punctuation">(</span> supportedCultures <span class="token punctuation">)</span> <span class="token punctuation">.</span> <span class="token function">AddSupportedUICultures</span> <span class="token punctuation">(</span> supportedCultures <span class="token punctuation">)</span> <span class="token punctuation">;</span> app <span class="token punctuation">.</span> <span class="token function">UseRequestLocalization</span> <span class="token punctuation">(</span> localizationOptions <span class="token punctuation">)</span> <span class="token punctuation">;</span> app <span class="token punctuation">.</span> <span class="token function">UseEndpoints</span> <span class="token punctuation">(</span> endpoints <span class="token operator">=></span> <span class="token punctuation">{</span> endpoints <span class="token punctuation">.</span> <span class="token function">MapControllerRoute</span> <span class="token punctuation">(</span> <span class="token named-parameter punctuation">name</span> <span class="token punctuation">:</span> <span class="token string">"default"</span> <span class="token punctuation">,</span> <span class="token named-parameter punctuation">pattern</span> <span class="token punctuation">:</span> <span class="token string">"{controller=Home}/{action=Index}/{id?}"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
Mã nguồn: https://github.com/donhuvy/aspnetcore5_localization