Blog มาจดๆไว้ก่อนครับ พอดีลองทำ Blazor WASM มาเป็น Utility เล็กๆ ช่วยงาน แล้วที่นี้ ดันเจอปัญหาว่าบางเครื่องทำงานได้ปกติ แต่บางเครื่องไม่ได้ เมื่อเข้า Web Developer tools จะเจอ Error เต็มๆตามนี้ครับ
blazor.webassembly.js:1 ManagedError: AggregateException_ctor_DefaultMessage (Blazor detected a change in the application's culture that is not supported with the current project configuration. To change culture dynamically during startup, set <BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData> in the application's project file.) callEntryPoint @ blazor.webassembly.js:1 await in callEntryPoint qt @ blazor.webassembly.js:1 await in qt Yt @ blazor.webassembly.js:1 sn @ blazor.webassembly.js:1 (anonymous) @ blazor.webassembly.js:1 (anonymous) @ blazor.webassembly.js:1
สำหรับทางแก้ไข
เอาตาม Error Message มันแนะนำครับ ใน csproj เพิ่ม เพื่อที่ตอน Bundle มันจะได้ใส่ตัว icu_xx ของภาษา (พวก icudt.dat, icudt_CJK.dat, icudt_EFIGS.dat เป็นต้น) ลงไปให้ครับ  
<BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
ปัญหาว่าบางเครื่องทำงานได้ปกติ แต่บางเครื่องไม่ได้
จากที่ลองมา และอ่าน Doc ของ microsoft ปกติเวลา Client ยิง Request ไป มันจะมีส่วน Accept-Language header ซึ่งตัว Web Browser มันอ้งอิงตามภาษาที่แสดงผล และส่งกับ Request ด้วย
เคสที่เจอ ปัญหาตัว wasm มัน Bundle มาเฉพาะ en-US พอเจอเครื่องที่กำหนดเมนูภาษาไทยแล้วไป มันเลยส่งไปเป็น th-Th ตอน Render ก็เลยระเบิดตุ้มที่ฝั่ง Client ส่วนขา Server ไม่มี Log บอกอะไร เลยต้องมาดูในส่วน Web Developer tools ครับ ถ้าเราอยากรู้ว่าส่งอะไร ลองไปดูได้จาก Tab "Network" > Header จะมีส่วนของ

en-US,en;q=0.9
หรือ ถ้ามีภาษาไทย
th-TH,th;q=0.9,en-US;q=0.8,en;q=0.7
แต่เครื่องที่ผมเจอ th-TH,th;q=0.9
มาอธิบายสักนิดต่อ th-TH,th;q=0.9,en-US;q=0.8,en;q=0.7
th-TH= ภาษาไทย ประเทศไทย (priority สูงสุด)th;q=0.9= ภาษาไทย (ไม่ระบุประเทศ, priority ถัดลงมา)en-US;q=0.8= ภาษาอังกฤษ (USA, priority รองลงมา)en;q=0.7= ภาษาอังกฤษ (ทั่วไป, priority ต่ำสุด ถ้าไม่มีจะหาอันนี้ให้เจอ)
จบไปอีกปัญหานึงในวันนี้ครับ Happy Coding
Reference
- https://learn.microsoft.com/en-us/aspnet/core/blazor/globalization-localization
 - https://stackoverflow.com/questions/70710924/change-culture-info-blazor-web-assembly-display-name-issue
 - https://blazor.syncfusion.com/documentation/common/localization
 - https://docs.devexpress.com/Blazor/401564/common-concepts/localization
 
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.



